From de4f1cd6548bda6c3c78044820a20421f28f0dbc Mon Sep 17 00:00:00 2001 From: mychidarko Date: Wed, 19 Jul 2023 21:58:30 +0000 Subject: [PATCH 01/65] feat: add leaf form v2 docs --- .vitepress/config.ts | 6 +- src/modules/forms/v/2/index.md | 374 +++++++++++++++++++++++++++++++++ 2 files changed, 377 insertions(+), 3 deletions(-) create mode 100644 src/modules/forms/v/2/index.md diff --git a/.vitepress/config.ts b/.vitepress/config.ts index 60841558..121f5a92 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -266,11 +266,11 @@ const mainSidebar = [ collapsible: true, collapsed: true, items: [ - { text: 'Leaf Forms', link: '/modules/forms/v/1.2/' }, + { text: 'Validation', link: '/modules/forms/v/2/' }, { text: 'Leaf Password', link: '/modules/password/' }, { text: 'Leaf Anchor', link: '/modules/anchor/' }, - { text: 'Leaf Date', link: '/modules/date/' }, - { text: 'Leaf Fetch', link: '/modules/fetch/' }, + { text: 'Date/Time', link: '/modules/date/' }, + { text: 'Data Fetching', link: '/modules/fetch/' }, { text: 'Logging', link: '/docs/tooling/logging' } ] }, diff --git a/src/modules/forms/v/2/index.md b/src/modules/forms/v/2/index.md new file mode 100644 index 00000000..6a4f426f --- /dev/null +++ b/src/modules/forms/v/2/index.md @@ -0,0 +1,374 @@ +# Leaf Form + +During development, you often come accross data that should meet some expectations. For example, a user's email address should be a valid email address. Or a user's password should be at least 8 characters long. Unfortunately, you can't always trust the data you deal with, especially when it comes from the user. That's why you need to validate it. + +Leaf Form is a clean and simple interface that allows you to validate data. It's not a form builder, it's not a form renderer, it's just a simple data validation library. + +## Installation + +You can quickly install Leaf Form using the [Leaf CLI](/cli/): + +```bash +leaf install form +``` + +Or via composer: + +```bash +composer require leafs/form +``` + +## Validating data + +Leaf Form comes with a very handy `validate()` method that allows you to validate data. It takes in two arguments: + +- An array of the data to validate +- The rules to validate the data against + +
+ +```php{11-15} + 'Full Name', + 'email' => 'mail@example.com', + 'password' => 'password', +]; + +$success = Form::validate($data, [ + 'name' => 'text', + 'email' => 'email', + 'password' => 'min:8', +]); + +if ($success) { + // data is valid +} else { + // data is invalid +} +``` + +
+
+ +```php{9-13} + 'Full Name', + 'email' => 'mail@example.com', + 'password' => 'password', +]; + +$success = form()->validate($data, [ + 'name' => 'text', + 'email' => 'email', + 'password' => 'min:8', +]); + +if ($success) { + // data is valid +} else { + // data is invalid +} +``` + +
+ +`validate()` returns a boolean value indicating whether the data is valid or not. If the data is invalid, you can get the errors using the `errors()` method. + +
+ +```php{16} + 'text', + 'email' => 'email', + 'password' => 'min:8', +]); + +if ($success) { + // data is valid +} else { + $errors = Form::errors(); + // data is invalid +} +``` + +
+
+ +```php{12} +validate($data, [ + 'name' => 'text', + 'email' => 'email', + 'password' => 'min:8', +]); + +if ($success) { + // data is valid +} else { + $errors = form()->errors(); + // data is invalid +} +``` + +
+ +## Request Validation + +Leaf allows you to validate request data directly on the request object. Using this method, you will interface with Leaf's request object instead of Leaf form which means you can use it without manually installing Leaf Form. To get started, all you need to do is call `validate()` on the request object. + +
+ +```php{8-12} +post('/register', function() use($app) { + $success = $app->request()->validate([ + 'name' => 'text', + 'email' => 'email', + 'password' => 'min:8', + ]); + + if (!$success) { + $errors = $app->request()->errors(); + } +}); +``` + +
+
+ +```php{4-8} +post('/register', function() { + $success = request()->validate([ + 'name' => 'text', + 'email' => 'email', + 'password' => 'min:8', + ]); + + if (!$success) { + $errors = request()->errors(); + } +}); +``` + +
+ +Note that you don't need to pass in the data to validate. The request object will automatically get the data from the request. + +## Available Rules + +Leaf Form comes with a number of built-in rules that you can use to validate data. Here's a list of all the available rules: + +| Rule | Description | +| --- | --- | +| `required` | The field under validation must be present in the input data and not empty. | +| `email` | The field under validation must be formatted as an e-mail address. | +| `text` | The field under validation must contain only alphabetic characters and spaces. | +| `textOnly` | The field under validation must contain only alphabetic characters (no-spaces). | +| `alpha` | The field under validation must contain only alphabetic characters. | +| `alphaNum` | The field under validation must contain only alpha-numeric characters. | +| `alphaDash` | The field under validation must contain only alpha-numeric characters, underscores, and dashes. | +| `username` | The field under validation must contain only alpha-numeric characters and underscores. | +| `number` | The field under validation must contain only numeric characters. | +| `float` | The field under validation must contain only float values. | +| `date` | The field under validation must be a valid date. | +| `min` | The field under validation must have a minimum value. | +| `max` | The field under validation must have a maximum value. | +| `between` | The field under validation must be between two values in length. | +| `match` | The field under validation must match a value. | +| `contains` | The field under validation must contain a value. | +| `in` | The field under validation must be included in a given list of values. | +| `ip` | The field under validation must be a valid IP address. | +| `ipv4` | The field under validation must be a valid IPv4 address. | +| `ipv6` | The field under validation must be a valid IPv6 address. | +| `url` | The field under validation must be a valid URL. | +| `domain` | The field under validation must be a valid domain. | +| `creditCard` | The field under validation must be a valid credit card number. | +| `phone` | The field under validation must be a valid phone number. | +| `uuid` | The field under validation must be a valid UUID. | +| `slug` | The field under validation must be a valid slug. | +| `json` | The field under validation must be a valid JSON string. | +| `regex` | The field under validation must match a given regular expression. | + +## Passing Parameters To Rules + +Some rules like `min`, `max`, `between`, `match`, `contains`, `in` and `regex` require additional parameters. You can pass these parameters to the rules by separating them with a colon (`:`). + +
+ +```php{2} +Form::validate($data, [ + 'bio' => 'min:10', +]); +``` + +
+
+ +```php{2} +form()->validate($data, [ + 'bio' => 'min:10', +]); +``` + +
+ +Some rules like `between` and `in` require multiple parameters. You can pass these parameters by using an array. + +
+ +```php{2} +Form::validate($data, [ + 'bio' => 'between:[18,30]', +]); +``` + +
+
+ +```php{2} +form()->validate($data, [ + 'bio' => 'between:[18,30]', +]); +``` + +
+ +## Custom Rules + +You can create your own rules using the `addRule()` method or it's alias `rule()`. It takes in three arguments: + +- The name of the rule +- The rule's handler +- The rule's error message + +**Note:** The rule's handler must be either a regular expression or a callable that returns a boolean value. + +
+ +```php{1,3-8} +Form::addRule('isEven', '/^\d*[02468]$/', 'The :attribute must be an even number.'); + +Form::rule('superTest', function ($value) { + // in functions, you can also add the error messages like this + Form::message('superTest', '{field} should be superTest!'); + + return $value === 'superTest'; +}); + +... + + +Form::validate($data, [ + 'age' => 'isEven', +]); +``` + +
+
+ +```php{1,3-8} +form()->rule('isEven', '/^\d*[02468]$/', 'The {field} must be an even number.'); + +form()->rule('superTest', function ($value) { + // in functions, you can also add the error messages like this + form()->message('superTest', '{field} should be superTest!'); + + return $value === 'superTest'; +}); + +... + + +form()->validate($data, [ + 'age' => 'isEven', +]); +``` + +
+ +## Custom Error Messages + +You can customize the error messages for each rule by passing in an array of the rules and their error messages to the `message()` method. The keys of the array should be the names of the rules and the values should be the error messages. + +
+ +```php +Form::message([ + 'required' => '{field} is required', + 'email' => '{field} must be a valid email address', +]); +``` + +
+
+ +```php +form()->message([ + 'required' => '{field} is required', + 'email' => '{field} must be a valid email address', +]); +``` + +
+ +You can also customize the error messages for any rule by passing in the rule's name and the error message to the `message()` method. + +
+ +```php +Form::message('required', '{field} is required'); +``` + +
+
+ +```php +form()->message('required', '{field} is required'); +``` + +
+ +Note the use of `{field}`. This is a mini template that tells leaf to replace `{field}` with the current field. So in this case: + +
+ +```php +Form::message('required', '{field} is required'); +Form::validate($data, [ + 'name' => 'required', +]); +``` + +
+
+ +```php +form()->message('required', '{field} is required'); +form()->validate($data, [ + 'name' => 'required', +]); +``` + +
+ +The error message will be `name is required`. You can also use `{Field}` instead of `{field}` to get the field name with the first letter capitalized. You can also use `{value}` to get the value of the field. From c3ecc339f152edaf2d0a09cc65ea7754c60edd26 Mon Sep 17 00:00:00 2001 From: mychidarko Date: Thu, 20 Jul 2023 08:55:34 +0000 Subject: [PATCH 02/65] feat: link forms v2 --- src/modules/forms/index.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/modules/forms/index.md b/src/modules/forms/index.md index ceede0bd..8dedc1e0 100755 --- a/src/modules/forms/index.md +++ b/src/modules/forms/index.md @@ -4,23 +4,28 @@ Leaf Form contains methods to simply and quickly handle input from the user. ## Installation -You can quickly install leaf forms using the following composer or the leaf cli. +You can quickly install leaf forms using the leaf cli: ```bash -composer require leafs/form +leaf install form ``` -or +Or via composer: ```bash -leaf install form +composer require leafs/form ``` ## Versions There are currently two versions of leaf forms. Click on your version of choice to view it's docs. -- [version 1](/modules/forms/v/1/) +- [version 2](/modules/forms/v/2/) - [version 1.2](/modules/forms/v/1.2/) +- [version 1](/modules/forms/v/1/) + +**If you are not already using leaf forms, it is recommended that you use version 2.** + +## Upgrading You can quickly upgrade by running the installation command above. From f16b1e70962d83c618ba4da98281e991ea32b5e7 Mon Sep 17 00:00:00 2001 From: mychidarko Date: Thu, 20 Jul 2023 08:55:45 +0000 Subject: [PATCH 03/65] feat: add request validation docs --- src/modules/http/v/2/request.md | 47 +++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/modules/http/v/2/request.md b/src/modules/http/v/2/request.md index ce8cdfea..f91befb3 100755 --- a/src/modules/http/v/2/request.md +++ b/src/modules/http/v/2/request.md @@ -407,6 +407,53 @@ request()->postData('description', 'No Description'); +## Validating Request Data new + +Leaf Request now comes with a built-in validator which allows you to validate request data directly on the request object. You don't need to install or configure anything. To get started, all you need to do is call `validate()` on the request object. + +
+ +```php{8-12} +post('/register', function() use($app) { + $success = $app->request()->validate([ + 'name' => 'text', + 'email' => 'email', + 'password' => 'min:8', + ]); + + if (!$success) { + $errors = $app->request()->errors(); + } +}); +``` + +
+
+ +```php{4-8} +post('/register', function() { + $success = request()->validate([ + 'name' => 'text', + 'email' => 'email', + 'password' => 'min:8', + ]); + + if (!$success) { + $errors = request()->errors(); + } +}); +``` + +
+ ## Request Headers and Cookies The request instance also contains methods which allow you retrieve headers and cookies from the incoming request. From 35a319c7f8176ae9a90b7a6eda30da8061eecbd6 Mon Sep 17 00:00:00 2001 From: mychidarko Date: Mon, 24 Jul 2023 19:16:39 +0000 Subject: [PATCH 04/65] chore: update license --- LICENSE | 10 +++++++++- LICENSE.VUEJS | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 LICENSE.VUEJS diff --git a/LICENSE b/LICENSE index 8944fd0b..55b818a7 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 vuejs +Copyright (c) 2023 Michael Darko-Duodu Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -19,3 +19,11 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- +Third party licenses are below +-------------------------------------------------------------------------------- + +Parts of this project's code was based on code from the below repositories: + +- LICENSE.VUEJS https://github.com/vuejs/docs diff --git a/LICENSE.VUEJS b/LICENSE.VUEJS new file mode 100644 index 00000000..8944fd0b --- /dev/null +++ b/LICENSE.VUEJS @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 vuejs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 1607dc122d2c8f7ff6e948bb57e30683822d874d Mon Sep 17 00:00:00 2001 From: mychidarko Date: Wed, 26 Jul 2023 17:28:20 +0000 Subject: [PATCH 05/65] chore: remove past events --- src/events/events.json | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/src/events/events.json b/src/events/events.json index ddb84e63..fe51488c 100644 --- a/src/events/events.json +++ b/src/events/events.json @@ -1,19 +1 @@ -[ - { - "name": "Ask Me Anything Session", - "flyer": "https://pbs.twimg.com/media/F0xKurxWIAAcoU2?format=jpg&name=900x900", - "intro": "Join our first AMA session with Leaf's creator as we talk about features, updates, Leaf's roadmap and so much more", - "date": "2023-03-25T09:30:00.000Z", - "description": [ - "Join our first AMA session with Leaf's creator as we talk about features, updates, Leaf's roadmap and so much more" - ], - "topics": ["Leaf PHP", "PHP", "Discord"], - "region": ["Discord"], - "location": ["Online"], - "website": { - "text": "Discord", - "url": "https://discord.gg/Pkrm9NJPE3" - }, - "contact": "ashley@leafphp.dev" - } -] +[] From 86ecdb4e9f94dc308f6d11c6e99c4d90f9493764 Mon Sep 17 00:00:00 2001 From: mychidarko Date: Wed, 26 Jul 2023 17:29:20 +0000 Subject: [PATCH 06/65] feat: add vite docs --- .vitepress/config.ts | 1 + src/modules/views/index.md | 27 ++++-- src/modules/views/vite/index.md | 165 ++++++++++++++++++++++++++++++++ 3 files changed, 186 insertions(+), 7 deletions(-) create mode 100644 src/modules/views/vite/index.md diff --git a/.vitepress/config.ts b/.vitepress/config.ts index 121f5a92..7505536a 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -293,6 +293,7 @@ const mainSidebar = [ collapsed: true, items: [ { text: 'Introduction', link: '/modules/views/' }, + { text: 'Vite JS', link: '/modules/views/vite/' }, { text: 'Bare UI', link: '/modules/views/bareui/' }, { text: 'Leaf Blade', link: '/modules/views/blade/' }, { text: 'Leaf Veins', link: '/modules/views/veins/' }, diff --git a/src/modules/views/index.md b/src/modules/views/index.md index 939f4240..281ec858 100644 --- a/src/modules/views/index.md +++ b/src/modules/views/index.md @@ -1,12 +1,12 @@ -# Introduction +# Frontend -Over the years, leaf has had suport for many in-built templating engines. Although none of them are shipped with leaf by default any more, leaf still supports all of them. +As a backend inclined framework, leaf has always focused on tooling for building APIs and backend applications. However, as frontend frameworks and libraries have become more popular, leaf has also evolved to support some modern frontend tooling which can be used to build amazing full-stack applications. -::: tip Note That -You can use any templating engine you prefer with leaf, however, these templating engines are specifically created for leaf but can be used outside leaf apps as well. -::: +This section of the docs will cover all the frontend tooling leaf has to offer. -## Engines +## Templating Engines + +Over the years, leaf has had suport for many built-in templating engines. All of these templating engines have first class support in leaf and can be used to build amazing frontend applications. These engines are available as separate packages and can be installed using composer, which means you can use them outside leaf apps as well. Depending on your needs, you may want to go with a particular templating engine. @@ -16,10 +16,23 @@ Depending on your needs, you may want to go with a particular templating engine. | [veins](/modules/views/veins/) | Lightweight but powerful templating engine | | [blade](/modules/views/blade/) | Laravel blade templating engine for leaf | -## BareUI vs Veins vs Blade +### BareUI vs Veins vs Blade | Engine | Speed | Cool Magic | Lightweight | Editor Support | | -------------------------------- | :-----: | :----------: | :-----------: | :------------: | | [bareui](/modules/views/bareui/) | ⚡️ | ❌ | ⚡️ | ⚡️ | | [veins](/modules/views/veins/) | 🔥 | 🔥 | 🔥 | 🔥 | | [blade](/modules/views/blade/) | ❌ | ⚡️ | 🔥 | ⚡️ | + +### Third Party Templating Engines + +Although Leaf has some preferred templating engines, you can use any templating engine you want with leaf. Here are some of the most popular templating engines you can use with leaf: + +- [Twig](https://twig.symfony.com/) +- [Smarty](https://www.smarty.net/) + +You can check out the [third party templating engines](/modules/views/third-party/) section of the docs to learn how to use any templating engine with leaf. + +## Asset Bundling + +[Vite](https://vitejs.dev/) is a modern build tool for frontend applications. It aims to provide a faster and leaner development experience for modern web projects. Leaf allows you to bundle your CSS and JS assets using vite, using the powerful [leaf-vite](/modules/views/vite/) module. diff --git a/src/modules/views/vite/index.md b/src/modules/views/vite/index.md new file mode 100644 index 00000000..88884efc --- /dev/null +++ b/src/modules/views/vite/index.md @@ -0,0 +1,165 @@ +# Asset Bundling + +Vite is a modern build tool for frontend applications. It aims to provide a faster and leaner development experience for modern web projects. Using the Vite module, you can seamlessly bundle your CSS and JS assets using vite. + +## Usage with Leaf MVC + +Leaf MVC and Leaf API come with built-in support for vite, this means you can use vite to bundle your assets without installing any extra packages. You can start your vite server by running: + +```bash +leaf vite:dev +``` + +Or with npm/pnpm/yarn: + +```bash +npm run dev +... +pnpm run dev +... +yarn dev +``` + +From inside your views, you can use the `vite()` helper to load your assets. For example, to load a CSS file, you can do: + +```php + +``` + +You can also just use the path relative to your views directory since vite will automatically look for files in your views directory. For example, if you have a file at `app/views/assets/css/app.css`, you can do: + +```php + +```` + +## Usage with Leaf Core + +Since Leaf's core comes with no prior setup or configuration, you'll need to install and setup the vite module yourself. It's super easy to do this. First, install vite and the vite-leaf plugin: + +```bash +npm i -D vite @leafphp/vite-plugin +``` + +We will also need to install the vite module which will be used to load our assets on the server side: + +```bash +leaf install vite +``` + +Or with composer: + +```bash +composer require leafs/vite +``` + +## Vite Config + +Vite will automatically try to resolve a config file named `vite.config.js` at the project root level. This config file can be used to configure vite, add plugins and more. You can learn more about vite config files [here](https://vitejs.dev/config/). + +The Leaf Vite plugin requires an array of entry points for your application. These may be JavaScript or CSS files, and include preprocessed languages such as TypeScript, JSX, and Sass. + +```js{6-12} +import { defineConfig } from 'vite'; +import leaf from '@leafphp/vite-plugin'; + +export default defineConfig({ + plugins: [ + leaf({ + input: [ + 'path/to/entrypoint.css', + 'path/to/entrypoint.js' + ], + refresh: true + }) + ] +}); +``` + +## Running Vite + +After the vite plugin has been installed and configured, you need to add a script to your `package.json` file to run vite. You can do this by adding the following to your `package.json` file: + +```json +{ + "scripts": { + "dev": "vite", + "build": "vite build" + } +} +``` + +Now, you can start your vite server by running: + +```bash +npm run dev +``` + +Or with the Leaf CLI + +```bash +leaf vite:dev +``` + +## Loading your assets + +The vite module comes with a helper function that can be used to load your assets. This helper function is available as `vite()` and can be used to load your scripts and styles. It takes in 2 parameters: + +- The path to the asset +- The folder to load the asset from (optional, defaults to the assets path in leaf config or `app/views` if not set) + +For example, to load a CSS file, you can do: + +```php + +``` + +To load assets from a folder, you can do: + +```php + +``` + +You can also load multiple assets at once by passing in an array of assets: + +```php + +``` + +The `vite()` helper function will automatically load the correct assets depending on the environment. In development, it will load the assets from the vite server with Hot Module Replacement, while in production, it will load the assets from the build folder. + +## Aliases + +Vite allows you to set up aliases for your assets. This can be done by adding an `alias` key to your vite config. For example, to set up an alias for the `@` symbol, you can do: + +```js{14-18} +import { defineConfig } from 'vite'; +import leaf from '@leafphp/vite-plugin'; + +export default defineConfig({ + plugins: [ + leaf({ + input: [ + 'path/to/entrypoint.css', + 'path/to/entrypoint.js' + ], + refresh: true + }) + ], + resolve: { + alias: { + '@': '/path/to/folder', + } + } +}); +``` + +## Vite + other frameworks + +Vite can be used with any framework. You can learn more about using vite with other frameworks [here](https://vitejs.dev/guide/#scaffolding-your-first-vite-project). We've included in-depth guides on using vite with some of the most popular frameworks: + + From 429ba622a79aa54a005eb90d0c648543fce6c0c6 Mon Sep 17 00:00:00 2001 From: mychidarko Date: Wed, 26 Jul 2023 17:31:06 +0000 Subject: [PATCH 07/65] chore: add beta tag to leaf ui --- src/modules/views/leaf-ui/index.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/modules/views/leaf-ui/index.md b/src/modules/views/leaf-ui/index.md index 2fe47bc3..b87def5b 100644 --- a/src/modules/views/leaf-ui/index.md +++ b/src/modules/views/leaf-ui/index.md @@ -1,7 +1,7 @@ -# Leaf UI - +# Leaf UI Beta + Leaf UI is a PHP library that allows you to build modern web apps and scaffold dynamic and interactive UIs using the same PHP you already know and love. It's fast, easy, and fun. Leaf UI follows the component-based UI paradigm, which makes it simple to build reusable components that sync with the DOM automatically. @@ -58,11 +58,11 @@ use Leaf\UI\Component; class HelloWorld extends Component { public $key = 'HelloWorld'; - public $greeting = "Hello World!"; + public $greeting = 'Hello World!'; public function sayHello() { - $this->greeting = "Hi World!"; + $this->greeting = 'Hi World!'; } public function render() @@ -88,12 +88,12 @@ Now that we have our component, we can use it in our Leaf app. Let's create a ne use Leaf\UI; -require __DIR__ . "/vendor/autoload.php"; -require __DIR__ . "/HelloWorld.php"; // our component +require __DIR__ . '/vendor/autoload.php'; +require __DIR__ . '/HelloWorld.php'; // our component $app = new Leaf\App; -$app->get("/", function() { +$app->get('/', function() { UI::render(new HelloWorld()); }); @@ -109,10 +109,10 @@ $app->run(); use Leaf\UI; -require __DIR__ . "/vendor/autoload.php"; -require __DIR__ . "/HelloWorld.php"; // our component +require __DIR__ . '/vendor/autoload.php'; +require __DIR__ . '/HelloWorld.php'; // our component -app()->get("/", function() { +app()->get('/', function() { UI::render(new HelloWorld()); }); From eb85f52a15e986d30cc02c1174dcf42f95fde1f2 Mon Sep 17 00:00:00 2001 From: mychidarko Date: Fri, 28 Jul 2023 09:25:38 +0000 Subject: [PATCH 08/65] feat: update frontend docs --- package.json | 5 +- pnpm-lock.yaml | 934 +++++++++++++++------------ src/community/team/Member.ts | 2 + src/community/team/TeamMember.vue | 16 +- src/community/team/members-core.json | 19 + src/modules/views/bareui/index.md | 27 + src/modules/views/blade/index.md | 74 ++- src/modules/views/index.md | 8 + src/modules/views/inertia/index.md | 11 + src/modules/views/vite/index.md | 4 +- src/public/sponsors.json | 10 +- 11 files changed, 636 insertions(+), 474 deletions(-) create mode 100644 src/modules/views/inertia/index.md diff --git a/package.json b/package.json index 7fca0248..7b38243b 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "dependencies": { "449.css": "^1.3.0", "@codemirror/lang-php": "^6.0.0", - "@leafphp/docs-theme": "^0.1.2", + "@leafphp/docs-theme": "0.1.2", "@vue/repl": "^1.2.4", "axios": "^0.27.2", "dynamics.js": "^1.1.5", @@ -29,7 +29,8 @@ "@algolia/client-search", "react", "react-dom", - "@types/react" + "@types/react", + "search-insights" ] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 62bf4821..9710656c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3,7 +3,7 @@ lockfileVersion: 5.4 specifiers: 449.css: ^1.3.0 '@codemirror/lang-php': ^6.0.0 - '@leafphp/docs-theme': ^0.1.2 + '@leafphp/docs-theme': 0.1.2 '@types/markdown-it': ^12.2.3 '@types/node': ^16.9.1 '@vue/repl': ^1.2.4 @@ -15,18 +15,18 @@ specifiers: dependencies: 449.css: 1.3.0 - '@codemirror/lang-php': 6.0.0 - '@leafphp/docs-theme': 0.1.2_vue@3.2.37 - '@vue/repl': 1.2.4_vue@3.2.37 + '@codemirror/lang-php': 6.0.1 + '@leafphp/docs-theme': 0.1.2_vue@3.3.4 + '@vue/repl': 1.5.0_vue@3.3.4 axios: 0.27.2 dynamics.js: 1.1.5 - gsap: 3.9.0 + gsap: 3.12.2 vitepress: 0.22.4 - vue: 3.2.37 + vue: 3.3.4 devDependencies: '@types/markdown-it': 12.2.3 - '@types/node': 16.10.3 + '@types/node': 16.18.39 packages: @@ -34,277 +34,351 @@ packages: resolution: {integrity: sha512-tvUMlTo/n5cVP86xsPkD7XevAaf8pSC42A+MCc2zqiJIqHktl0UObY0IXrNg0cAVT4MkzeelYhhsDdA91C7/UQ==} dev: false - /@algolia/autocomplete-core/1.5.2: - resolution: {integrity: sha512-DY0bhyczFSS1b/CqJlTE/nQRtnTAHl6IemIkBy0nEWnhDzRDdtdx4p5Uuk3vwAFxwEEgi1WqKwgSSMx6DpNL4A==} + /@algolia/autocomplete-core/1.9.3_67y5xcme73kko4ndsa6xoshc4y: + resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} dependencies: - '@algolia/autocomplete-shared': 1.5.2 + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3_67y5xcme73kko4ndsa6xoshc4y + '@algolia/autocomplete-shared': 1.9.3_67y5xcme73kko4ndsa6xoshc4y + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + dev: false + + /@algolia/autocomplete-core/1.9.3_algoliasearch@4.19.1: + resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3_algoliasearch@4.19.1 + '@algolia/autocomplete-shared': 1.9.3_algoliasearch@4.19.1 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + dev: false + + /@algolia/autocomplete-plugin-algolia-insights/1.9.3_67y5xcme73kko4ndsa6xoshc4y: + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + peerDependencies: + search-insights: '>= 1 < 3' + peerDependenciesMeta: + search-insights: + optional: true + dependencies: + '@algolia/autocomplete-shared': 1.9.3_67y5xcme73kko4ndsa6xoshc4y + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch dev: false - /@algolia/autocomplete-preset-algolia/1.5.2_2h5cd3pje6xmettsldmuotpuqi: - resolution: {integrity: sha512-3MRYnYQFJyovANzSX2CToS6/5cfVjbLLqFsZTKcvF3abhQzxbqwwaMBlJtt620uBUOeMzhdfasKhCc40+RHiZw==} + /@algolia/autocomplete-plugin-algolia-insights/1.9.3_algoliasearch@4.19.1: + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} peerDependencies: - '@algolia/client-search': ^4.9.1 - algoliasearch: ^4.9.1 + search-insights: '>= 1 < 3' + peerDependenciesMeta: + search-insights: + optional: true + dependencies: + '@algolia/autocomplete-shared': 1.9.3_algoliasearch@4.19.1 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + dev: false + + /@algolia/autocomplete-preset-algolia/1.9.3_67y5xcme73kko4ndsa6xoshc4y: + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' peerDependenciesMeta: '@algolia/client-search': optional: true dependencies: - '@algolia/autocomplete-shared': 1.5.2 - '@algolia/client-search': 4.10.5 - algoliasearch: 4.10.5 + '@algolia/autocomplete-shared': 1.9.3_67y5xcme73kko4ndsa6xoshc4y + '@algolia/client-search': 4.19.1 + algoliasearch: 4.19.1 dev: false - /@algolia/autocomplete-preset-algolia/1.5.2_algoliasearch@4.10.5: - resolution: {integrity: sha512-3MRYnYQFJyovANzSX2CToS6/5cfVjbLLqFsZTKcvF3abhQzxbqwwaMBlJtt620uBUOeMzhdfasKhCc40+RHiZw==} + /@algolia/autocomplete-preset-algolia/1.9.3_algoliasearch@4.19.1: + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} peerDependencies: - '@algolia/client-search': ^4.9.1 - algoliasearch: ^4.9.1 + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' peerDependenciesMeta: '@algolia/client-search': optional: true dependencies: - '@algolia/autocomplete-shared': 1.5.2 - algoliasearch: 4.10.5 + '@algolia/autocomplete-shared': 1.9.3_algoliasearch@4.19.1 + algoliasearch: 4.19.1 dev: false - /@algolia/autocomplete-shared/1.5.2: - resolution: {integrity: sha512-ylQAYv5H0YKMfHgVWX0j0NmL8XBcAeeeVQUmppnnMtzDbDnca6CzhKj3Q8eF9cHCgcdTDdb5K+3aKyGWA0obug==} + /@algolia/autocomplete-shared/1.9.3_67y5xcme73kko4ndsa6xoshc4y: + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + peerDependenciesMeta: + '@algolia/client-search': + optional: true + dependencies: + '@algolia/client-search': 4.19.1 + algoliasearch: 4.19.1 dev: false - /@algolia/cache-browser-local-storage/4.10.5: - resolution: {integrity: sha512-cfX2rEKOtuuljcGI5DMDHClwZHdDqd2nT2Ohsc8aHtBiz6bUxKVyIqxr2gaC6tU8AgPtrTVBzcxCA+UavXpKww==} + /@algolia/autocomplete-shared/1.9.3_algoliasearch@4.19.1: + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + peerDependenciesMeta: + '@algolia/client-search': + optional: true dependencies: - '@algolia/cache-common': 4.10.5 + algoliasearch: 4.19.1 dev: false - /@algolia/cache-common/4.10.5: - resolution: {integrity: sha512-1mClwdmTHll+OnHkG+yeRoFM17kSxDs4qXkjf6rNZhoZGXDvfYLy3YcZ1FX4Kyz0DJv8aroq5RYGBDsWkHj6Tw==} + /@algolia/cache-browser-local-storage/4.19.1: + resolution: {integrity: sha512-FYAZWcGsFTTaSAwj9Std8UML3Bu8dyWDncM7Ls8g+58UOe4XYdlgzXWbrIgjaguP63pCCbMoExKr61B+ztK3tw==} + dependencies: + '@algolia/cache-common': 4.19.1 dev: false - /@algolia/cache-in-memory/4.10.5: - resolution: {integrity: sha512-+ciQnfIGi5wjMk02XhEY8fmy2pzy+oY1nIIfu8LBOglaSipCRAtjk6WhHc7/KIbXPiYzIwuDbM2K1+YOwSGjwA==} + /@algolia/cache-common/4.19.1: + resolution: {integrity: sha512-XGghi3l0qA38HiqdoUY+wvGyBsGvKZ6U3vTiMBT4hArhP3fOGLXpIINgMiiGjTe4FVlTa5a/7Zf2bwlIHfRqqg==} + dev: false + + /@algolia/cache-in-memory/4.19.1: + resolution: {integrity: sha512-+PDWL+XALGvIginigzu8oU6eWw+o76Z8zHbBovWYcrtWOEtinbl7a7UTt3x3lthv+wNuFr/YD1Gf+B+A9V8n5w==} dependencies: - '@algolia/cache-common': 4.10.5 + '@algolia/cache-common': 4.19.1 dev: false - /@algolia/client-account/4.10.5: - resolution: {integrity: sha512-I9UkSS2glXm7RBZYZIALjBMmXSQbw/fI/djPcBHxiwXIheNIlqIFl2SNPkvihpPF979BSkzjqdJNRPhE1vku3Q==} + /@algolia/client-account/4.19.1: + resolution: {integrity: sha512-Oy0ritA2k7AMxQ2JwNpfaEcgXEDgeyKu0V7E7xt/ZJRdXfEpZcwp9TOg4TJHC7Ia62gIeT2Y/ynzsxccPw92GA==} dependencies: - '@algolia/client-common': 4.10.5 - '@algolia/client-search': 4.10.5 - '@algolia/transporter': 4.10.5 + '@algolia/client-common': 4.19.1 + '@algolia/client-search': 4.19.1 + '@algolia/transporter': 4.19.1 dev: false - /@algolia/client-analytics/4.10.5: - resolution: {integrity: sha512-h2owwJSkovPxzc+xIsjY1pMl0gj+jdVwP9rcnGjlaTY2fqHbSLrR9yvGyyr6305LvTppxsQnfAbRdE/5Z3eFxw==} + /@algolia/client-analytics/4.19.1: + resolution: {integrity: sha512-5QCq2zmgdZLIQhHqwl55ZvKVpLM3DNWjFI4T+bHr3rGu23ew2bLO4YtyxaZeChmDb85jUdPDouDlCumGfk6wOg==} dependencies: - '@algolia/client-common': 4.10.5 - '@algolia/client-search': 4.10.5 - '@algolia/requester-common': 4.10.5 - '@algolia/transporter': 4.10.5 + '@algolia/client-common': 4.19.1 + '@algolia/client-search': 4.19.1 + '@algolia/requester-common': 4.19.1 + '@algolia/transporter': 4.19.1 dev: false - /@algolia/client-common/4.10.5: - resolution: {integrity: sha512-21FAvIai5qm8DVmZHm2Gp4LssQ/a0nWwMchAx+1hIRj1TX7OcdW6oZDPyZ8asQdvTtK7rStQrRnD8a95SCUnzA==} + /@algolia/client-common/4.19.1: + resolution: {integrity: sha512-3kAIVqTcPrjfS389KQvKzliC559x+BDRxtWamVJt8IVp7LGnjq+aVAXg4Xogkur1MUrScTZ59/AaUd5EdpyXgA==} dependencies: - '@algolia/requester-common': 4.10.5 - '@algolia/transporter': 4.10.5 + '@algolia/requester-common': 4.19.1 + '@algolia/transporter': 4.19.1 dev: false - /@algolia/client-personalization/4.10.5: - resolution: {integrity: sha512-nH+IyFKBi8tCyzGOanJTbXC5t4dspSovX3+ABfmwKWUYllYzmiQNFUadpb3qo+MLA3jFx5IwBesjneN6dD5o3w==} + /@algolia/client-personalization/4.19.1: + resolution: {integrity: sha512-8CWz4/H5FA+krm9HMw2HUQenizC/DxUtsI5oYC0Jxxyce1vsr8cb1aEiSJArQT6IzMynrERif1RVWLac1m36xw==} dependencies: - '@algolia/client-common': 4.10.5 - '@algolia/requester-common': 4.10.5 - '@algolia/transporter': 4.10.5 + '@algolia/client-common': 4.19.1 + '@algolia/requester-common': 4.19.1 + '@algolia/transporter': 4.19.1 dev: false - /@algolia/client-search/4.10.5: - resolution: {integrity: sha512-1eQFMz9uodrc5OM+9HeT+hHcfR1E1AsgFWXwyJ9Q3xejA2c1c4eObGgOgC9ZoshuHHdptaTN1m3rexqAxXRDBg==} + /@algolia/client-search/4.19.1: + resolution: {integrity: sha512-mBecfMFS4N+yK/p0ZbK53vrZbL6OtWMk8YmnOv1i0LXx4pelY8TFhqKoTit3NPVPwoSNN0vdSN9dTu1xr1XOVw==} dependencies: - '@algolia/client-common': 4.10.5 - '@algolia/requester-common': 4.10.5 - '@algolia/transporter': 4.10.5 + '@algolia/client-common': 4.19.1 + '@algolia/requester-common': 4.19.1 + '@algolia/transporter': 4.19.1 dev: false - /@algolia/logger-common/4.10.5: - resolution: {integrity: sha512-gRJo9zt1UYP4k3woEmZm4iuEBIQd/FrArIsjzsL/b+ihNoOqIxZKTSuGFU4UUZOEhvmxDReiA4gzvQXG+TMTmA==} + /@algolia/logger-common/4.19.1: + resolution: {integrity: sha512-i6pLPZW/+/YXKis8gpmSiNk1lOmYCmRI6+x6d2Qk1OdfvX051nRVdalRbEcVTpSQX6FQAoyeaui0cUfLYW5Elw==} dev: false - /@algolia/logger-console/4.10.5: - resolution: {integrity: sha512-4WfIbn4253EDU12u9UiYvz+QTvAXDv39mKNg9xSoMCjKE5szcQxfcSczw2byc6pYhahOJ9PmxPBfs1doqsdTKQ==} + /@algolia/logger-console/4.19.1: + resolution: {integrity: sha512-jj72k9GKb9W0c7TyC3cuZtTr0CngLBLmc8trzZlXdfvQiigpUdvTi1KoWIb2ZMcRBG7Tl8hSb81zEY3zI2RlXg==} dependencies: - '@algolia/logger-common': 4.10.5 + '@algolia/logger-common': 4.19.1 dev: false - /@algolia/requester-browser-xhr/4.10.5: - resolution: {integrity: sha512-53/MURQEqtK+bGdfq4ITSPwTh5hnADU99qzvpAINGQveUFNSFGERipJxHjTJjIrjFz3vxj5kKwjtxDnU6ygO9g==} + /@algolia/requester-browser-xhr/4.19.1: + resolution: {integrity: sha512-09K/+t7lptsweRTueHnSnmPqIxbHMowejAkn9XIcJMLdseS3zl8ObnS5GWea86mu3vy4+8H+ZBKkUN82Zsq/zg==} dependencies: - '@algolia/requester-common': 4.10.5 + '@algolia/requester-common': 4.19.1 dev: false - /@algolia/requester-common/4.10.5: - resolution: {integrity: sha512-UkVa1Oyuj6NPiAEt5ZvrbVopEv1m/mKqjs40KLB+dvfZnNcj+9Fry4Oxnt15HMy/HLORXsx4UwcthAvBuOXE9Q==} + /@algolia/requester-common/4.19.1: + resolution: {integrity: sha512-BisRkcWVxrDzF1YPhAckmi2CFYK+jdMT60q10d7z3PX+w6fPPukxHRnZwooiTUrzFe50UBmLItGizWHP5bDzVQ==} dev: false - /@algolia/requester-node-http/4.10.5: - resolution: {integrity: sha512-aNEKVKXL4fiiC+bS7yJwAHdxln81ieBwY3tsMCtM4zF9f5KwCzY2OtN4WKEZa5AAADVcghSAUdyjs4AcGUlO5w==} + /@algolia/requester-node-http/4.19.1: + resolution: {integrity: sha512-6DK52DHviBHTG2BK/Vv2GIlEw7i+vxm7ypZW0Z7vybGCNDeWzADx+/TmxjkES2h15+FZOqVf/Ja677gePsVItA==} dependencies: - '@algolia/requester-common': 4.10.5 + '@algolia/requester-common': 4.19.1 dev: false - /@algolia/transporter/4.10.5: - resolution: {integrity: sha512-F8DLkmIlvCoMwSCZA3FKHtmdjH3o5clbt0pi2ktFStVNpC6ZDmY307HcK619bKP5xW6h8sVJhcvrLB775D2cyA==} + /@algolia/transporter/4.19.1: + resolution: {integrity: sha512-nkpvPWbpuzxo1flEYqNIbGz7xhfhGOKGAZS7tzC+TELgEmi7z99qRyTfNSUlW7LZmB3ACdnqAo+9A9KFBENviQ==} dependencies: - '@algolia/cache-common': 4.10.5 - '@algolia/logger-common': 4.10.5 - '@algolia/requester-common': 4.10.5 + '@algolia/cache-common': 4.19.1 + '@algolia/logger-common': 4.19.1 + '@algolia/requester-common': 4.19.1 + dev: false + + /@babel/helper-string-parser/7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} dev: false - /@babel/helper-validator-identifier/7.16.7: - resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} + /@babel/helper-validator-identifier/7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} dev: false - /@babel/parser/7.16.4: - resolution: {integrity: sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==} + /@babel/parser/7.22.7: + resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.18.4 + '@babel/types': 7.22.5 dev: false - /@babel/types/7.18.4: - resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==} + /@babel/types/7.22.5: + resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.16.7 + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 dev: false - /@codemirror/autocomplete/6.0.2_llnkpekosih6zzydzjyjmpxjfm: - resolution: {integrity: sha512-9PDjnllmXan/7Uax87KGORbxerDJ/cu10SB+n4Jz0zXMEvIh3+TGgZxhIvDOtaQ4jDBQEM7kHYW4vLdQB0DGZQ==} + /@codemirror/autocomplete/6.9.0_qi7becxpmtpxam5uuy2ybeeina: + resolution: {integrity: sha512-Fbwm0V/Wn3BkEJZRhr0hi5BhCo5a7eBL6LYaliPjOSwCyfOpnjXY59HruSxOUNV+1OYer0Tgx1zRNQttjXyDog==} peerDependencies: '@codemirror/language': ^6.0.0 '@codemirror/state': ^6.0.0 '@lezer/common': ^1.0.0 dependencies: - '@codemirror/language': 6.2.0 - '@codemirror/state': 6.1.0 - '@codemirror/view': 6.0.2 - '@lezer/common': 1.0.0 + '@codemirror/language': 6.8.0 + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.15.3 + '@lezer/common': 1.0.3 dev: false - /@codemirror/lang-css/6.0.0_@lezer+common@1.0.0: - resolution: {integrity: sha512-jBqc+BTuwhNOTlrimFghLlSrN6iFuE44HULKWoR4qKYObhOIl9Lci1iYj6zMIte1XTQmZguNvjXMyr43LUKwSw==} + /@codemirror/lang-css/6.2.0: + resolution: {integrity: sha512-oyIdJM29AyRPM3+PPq1I2oIk8NpUfEN3kAM05XWDDs6o3gSneIKaVJifT2P+fqONLou2uIgXynFyMUDQvo/szA==} dependencies: - '@codemirror/autocomplete': 6.0.2_llnkpekosih6zzydzjyjmpxjfm - '@codemirror/language': 6.2.0 - '@codemirror/state': 6.1.0 - '@lezer/css': 1.0.0 - transitivePeerDependencies: - - '@lezer/common' + '@codemirror/autocomplete': 6.9.0_qi7becxpmtpxam5uuy2ybeeina + '@codemirror/language': 6.8.0 + '@codemirror/state': 6.2.1 + '@lezer/common': 1.0.3 + '@lezer/css': 1.1.3 dev: false - /@codemirror/lang-html/6.1.0: - resolution: {integrity: sha512-gA7NmJxqvnhwza05CvR7W/39Ap9r/4Vs9uiC0IeFYo1hSlJzc/8N6Evviz6vTW1x8SpHcRYyqKOf6rpl6LfWtg==} + /@codemirror/lang-html/6.4.5: + resolution: {integrity: sha512-dUCSxkIw2G+chaUfw3Gfu5kkN83vJQN8gfQDp9iEHsIZluMJA0YJveT12zg/28BJx+uPsbQ6VimKCgx3oJrZxA==} dependencies: - '@codemirror/autocomplete': 6.0.2_llnkpekosih6zzydzjyjmpxjfm - '@codemirror/lang-css': 6.0.0_@lezer+common@1.0.0 - '@codemirror/lang-javascript': 6.0.1 - '@codemirror/language': 6.2.0 - '@codemirror/state': 6.1.0 - '@lezer/common': 1.0.0 - '@lezer/html': 1.0.0 + '@codemirror/autocomplete': 6.9.0_qi7becxpmtpxam5uuy2ybeeina + '@codemirror/lang-css': 6.2.0 + '@codemirror/lang-javascript': 6.1.9 + '@codemirror/language': 6.8.0 + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.15.3 + '@lezer/common': 1.0.3 + '@lezer/css': 1.1.3 + '@lezer/html': 1.3.6 dev: false - /@codemirror/lang-javascript/6.0.1: - resolution: {integrity: sha512-kjGbBEosl+ozDU5ruDV48w4v3H6KECTFiDjqMLT0KhVwESPfv3wOvnDrTT0uaMOg3YRGnBWsyiIoKHl/tNWWDg==} + /@codemirror/lang-javascript/6.1.9: + resolution: {integrity: sha512-z3jdkcqOEBT2txn2a87A0jSy6Te3679wg/U8QzMeftFt+4KA6QooMwfdFzJiuC3L6fXKfTXZcDocoaxMYfGz0w==} dependencies: - '@codemirror/autocomplete': 6.0.2_llnkpekosih6zzydzjyjmpxjfm - '@codemirror/language': 6.2.0 - '@codemirror/lint': 6.0.0 - '@codemirror/state': 6.1.0 - '@codemirror/view': 6.0.2 - '@lezer/common': 1.0.0 - '@lezer/javascript': 1.0.1 + '@codemirror/autocomplete': 6.9.0_qi7becxpmtpxam5uuy2ybeeina + '@codemirror/language': 6.8.0 + '@codemirror/lint': 6.4.0 + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.15.3 + '@lezer/common': 1.0.3 + '@lezer/javascript': 1.4.5 dev: false - /@codemirror/lang-php/6.0.0: - resolution: {integrity: sha512-96CEjq0xEgbzc6bdFPwILPfZ6m8917JRbh2oPszZJABlYxG4Y+eYjtYkUTDb4yuyjQKyigHoeGC6zoIOYA1NWA==} + /@codemirror/lang-php/6.0.1: + resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==} dependencies: - '@codemirror/lang-html': 6.1.0 - '@codemirror/language': 6.2.0 - '@codemirror/state': 6.1.0 - '@lezer/common': 1.0.0 - '@lezer/php': 1.0.0 + '@codemirror/lang-html': 6.4.5 + '@codemirror/language': 6.8.0 + '@codemirror/state': 6.2.1 + '@lezer/common': 1.0.3 + '@lezer/php': 1.0.1 dev: false - /@codemirror/language/6.2.0: - resolution: {integrity: sha512-tabB0Ef/BflwoEmTB4a//WZ9P90UQyne9qWB9YFsmeS4bnEqSys7UpGk/da1URMXhyfuzWCwp+AQNMhvu8SfnA==} + /@codemirror/language/6.8.0: + resolution: {integrity: sha512-r1paAyWOZkfY0RaYEZj3Kul+MiQTEbDvYqf8gPGaRvNneHXCmfSaAVFjwRUPlgxS8yflMxw2CTu6uCMp8R8A2g==} dependencies: - '@codemirror/state': 6.1.0 - '@codemirror/view': 6.0.2 - '@lezer/common': 1.0.0 - '@lezer/highlight': 1.0.0 - '@lezer/lr': 1.1.0 - style-mod: 4.0.0 + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.15.3 + '@lezer/common': 1.0.3 + '@lezer/highlight': 1.1.6 + '@lezer/lr': 1.3.9 + style-mod: 4.0.3 dev: false - /@codemirror/lint/6.0.0: - resolution: {integrity: sha512-nUUXcJW1Xp54kNs+a1ToPLK8MadO0rMTnJB8Zk4Z8gBdrN0kqV7uvUraU/T2yqg+grDNR38Vmy/MrhQN/RgwiA==} + /@codemirror/lint/6.4.0: + resolution: {integrity: sha512-6VZ44Ysh/Zn07xrGkdtNfmHCbGSHZzFBdzWi0pbd7chAQ/iUcpLGX99NYRZTa7Ugqg4kEHCqiHhcZnH0gLIgSg==} dependencies: - '@codemirror/state': 6.1.0 - '@codemirror/view': 6.0.2 - crelt: 1.0.5 + '@codemirror/state': 6.2.1 + '@codemirror/view': 6.15.3 + crelt: 1.0.6 dev: false - /@codemirror/state/6.1.0: - resolution: {integrity: sha512-qbUr94DZTe6/V1VS7LDLz11rM/1t/nJxR1El4I6UaxDEdc0aZZvq6JCLJWiRmUf95NRAnDH6fhXn+PWp9wGCIg==} + /@codemirror/state/6.2.1: + resolution: {integrity: sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw==} dev: false - /@codemirror/view/6.0.2: - resolution: {integrity: sha512-mnVT/q1JvKPjpmjXJNeCi/xHyaJ3abGJsumIVpdQ1nE1MXAyHf7GHWt8QpWMUvDiqF0j+inkhVR2OviTdFFX7Q==} + /@codemirror/view/6.15.3: + resolution: {integrity: sha512-chNgR8H7Ipx7AZUt0+Kknk7BCow/ron3mHd1VZdM7hQXiI79+UlWqcxpCiexTxZQ+iSkqndk3HHAclJOcjSuog==} dependencies: - '@codemirror/state': 6.1.0 - style-mod: 4.0.0 - w3c-keyname: 2.2.4 + '@codemirror/state': 6.2.1 + style-mod: 4.0.3 + w3c-keyname: 2.2.8 dev: false - /@docsearch/css/3.0.0: - resolution: {integrity: sha512-1kkV7tkAsiuEd0shunYRByKJe3xQDG2q7wYg24SOw1nV9/2lwEd4WrUYRJC/ukGTl2/kHeFxsaUvtiOy0y6fFA==} + /@docsearch/css/3.5.1: + resolution: {integrity: sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==} dev: false - /@docsearch/js/3.0.0: - resolution: {integrity: sha512-j3tUJWlgW3slYqzGB8fm7y05kh2qqrIK1dZOXHeMUm/5gdKE85fiz/ltfCPMDFb/MXF+bLZChJXSMzqY0Ck30Q==} + /@docsearch/js/3.5.1: + resolution: {integrity: sha512-EXi8de5njxgP6TV3N9ytnGRLG9zmBNTEZjR4VzwPcpPLbZxxTLG2gaFyJyKiFVQxHW/DPlMrDJA3qoRRGEkgZw==} dependencies: - '@docsearch/react': 3.0.0 - preact: 10.5.14 + '@docsearch/react': 3.5.1 + preact: 10.16.0 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' - react - react-dom + - search-insights dev: false - /@docsearch/js/3.0.0_jnrnstqxtgz2tat4xqolljlvp4: - resolution: {integrity: sha512-j3tUJWlgW3slYqzGB8fm7y05kh2qqrIK1dZOXHeMUm/5gdKE85fiz/ltfCPMDFb/MXF+bLZChJXSMzqY0Ck30Q==} + /@docsearch/js/3.5.1_4jsek2lsyalrq6ty5qjq5ivsxq: + resolution: {integrity: sha512-EXi8de5njxgP6TV3N9ytnGRLG9zmBNTEZjR4VzwPcpPLbZxxTLG2gaFyJyKiFVQxHW/DPlMrDJA3qoRRGEkgZw==} dependencies: - '@docsearch/react': 3.0.0_jnrnstqxtgz2tat4xqolljlvp4 - preact: 10.5.14 + '@docsearch/react': 3.5.1_4jsek2lsyalrq6ty5qjq5ivsxq + preact: 10.16.0 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' - react - react-dom + - search-insights dev: false - /@docsearch/react/3.0.0: - resolution: {integrity: sha512-yhMacqS6TVQYoBh/o603zszIb5Bl8MIXuOc6Vy617I74pirisDzzcNh0NEaYQt50fVVR3khUbeEhUEWEWipESg==} + /@docsearch/react/3.5.1: + resolution: {integrity: sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==} peerDependencies: - '@types/react': '>= 16.8.0 < 18.0.0' - react: '>= 16.8.0 < 18.0.0' - react-dom: '>= 16.8.0 < 18.0.0' + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' peerDependenciesMeta: '@types/react': optional: true @@ -313,20 +387,21 @@ packages: react-dom: optional: true dependencies: - '@algolia/autocomplete-core': 1.5.2 - '@algolia/autocomplete-preset-algolia': 1.5.2_algoliasearch@4.10.5 - '@docsearch/css': 3.0.0 - algoliasearch: 4.10.5 + '@algolia/autocomplete-core': 1.9.3_algoliasearch@4.19.1 + '@algolia/autocomplete-preset-algolia': 1.9.3_algoliasearch@4.19.1 + '@docsearch/css': 3.5.1 + algoliasearch: 4.19.1 transitivePeerDependencies: - '@algolia/client-search' + - search-insights dev: false - /@docsearch/react/3.0.0_jnrnstqxtgz2tat4xqolljlvp4: - resolution: {integrity: sha512-yhMacqS6TVQYoBh/o603zszIb5Bl8MIXuOc6Vy617I74pirisDzzcNh0NEaYQt50fVVR3khUbeEhUEWEWipESg==} + /@docsearch/react/3.5.1_4jsek2lsyalrq6ty5qjq5ivsxq: + resolution: {integrity: sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==} peerDependencies: - '@types/react': '>= 16.8.0 < 18.0.0' - react: '>= 16.8.0 < 18.0.0' - react-dom: '>= 16.8.0 < 18.0.0' + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' peerDependenciesMeta: '@types/react': optional: true @@ -335,25 +410,39 @@ packages: react-dom: optional: true dependencies: - '@algolia/autocomplete-core': 1.5.2 - '@algolia/autocomplete-preset-algolia': 1.5.2_2h5cd3pje6xmettsldmuotpuqi - '@docsearch/css': 3.0.0 - '@types/react': 17.0.47 - algoliasearch: 4.10.5 + '@algolia/autocomplete-core': 1.9.3_67y5xcme73kko4ndsa6xoshc4y + '@algolia/autocomplete-preset-algolia': 1.9.3_67y5xcme73kko4ndsa6xoshc4y + '@docsearch/css': 3.5.1 + '@types/react': 17.0.62 + algoliasearch: 4.19.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 transitivePeerDependencies: - '@algolia/client-search' + - search-insights + dev: false + + /@esbuild/linux-loong64/0.14.54: + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@jridgewell/sourcemap-codec/1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: false - /@leafphp/docs-theme/0.1.2_vue@3.2.37: + /@leafphp/docs-theme/0.1.2_vue@3.3.4: resolution: {integrity: sha512-0vw1X2R5o9NwYLoMGUP2ipvKVOAW4eqIBOk9BLDOdRb7Iq0lDJA2zvPcxq+lh5efJIYcgL7rJOxrI+XwUfm3hg==} dependencies: - '@algolia/client-search': 4.10.5 - '@docsearch/css': 3.0.0 - '@docsearch/js': 3.0.0_jnrnstqxtgz2tat4xqolljlvp4 - '@types/react': 17.0.47 - '@vueuse/core': 7.7.1_vue@3.2.37 + '@algolia/client-search': 4.19.1 + '@docsearch/css': 3.5.1 + '@docsearch/js': 3.5.1_4jsek2lsyalrq6ty5qjq5ivsxq + '@types/react': 17.0.62 + '@vueuse/core': 7.7.1_vue@3.3.4 body-scroll-lock: 3.1.5 normalize.css: 8.0.1 react: 17.0.2 @@ -361,51 +450,53 @@ packages: shiki: 0.9.15 transitivePeerDependencies: - '@vue/composition-api' + - search-insights - vue dev: false - /@lezer/common/1.0.0: - resolution: {integrity: sha512-ohydQe+Hb+w4oMDvXzs8uuJd2NoA3D8YDcLiuDsLqH+yflDTPEpgCsWI3/6rH5C3BAedtH1/R51dxENldQceEA==} + /@lezer/common/1.0.3: + resolution: {integrity: sha512-JH4wAXCgUOcCGNekQPLhVeUtIqjH0yPBs7vvUdSjyQama9618IOKFJwkv2kcqdhF0my8hQEgCTEJU0GIgnahvA==} dev: false - /@lezer/css/1.0.0: - resolution: {integrity: sha512-616VqgDKumHmYIuxs3tnX1irEQmoDHgF/TlP4O5ICWwyHwLMErq+8iKVuzTkOdBqvYAVmObqThcDEAaaMJjAdg==} + /@lezer/css/1.1.3: + resolution: {integrity: sha512-SjSM4pkQnQdJDVc80LYzEaMiNy9txsFbI7HsMgeVF28NdLaAdHNtQ+kB/QqDUzRBV/75NTXjJ/R5IdC8QQGxMg==} dependencies: - '@lezer/highlight': 1.0.0 - '@lezer/lr': 1.1.0 + '@lezer/highlight': 1.1.6 + '@lezer/lr': 1.3.9 dev: false - /@lezer/highlight/1.0.0: - resolution: {integrity: sha512-nsCnNtim90UKsB5YxoX65v3GEIw3iCHw9RM2DtdgkiqAbKh9pCdvi8AWNwkYf10Lu6fxNhXPpkpHbW6mihhvJA==} + /@lezer/highlight/1.1.6: + resolution: {integrity: sha512-cmSJYa2us+r3SePpRCjN5ymCqCPv+zyXmDl0ciWtVaNiORT/MxM7ZgOMQZADD0o51qOaOg24qc/zBViOIwAjJg==} dependencies: - '@lezer/common': 1.0.0 + '@lezer/common': 1.0.3 dev: false - /@lezer/html/1.0.0: - resolution: {integrity: sha512-wZHBcieArLTxEi198hqRBBHMySzDKo5suWaESdUw0t44IXp01vkSRwX2brG1qBbKdwJ+C6U0iMl00vWNiyAROg==} + /@lezer/html/1.3.6: + resolution: {integrity: sha512-Kk9HJARZTc0bAnMQUqbtuhFVsB4AnteR2BFUWfZV7L/x1H0aAKz6YabrfJ2gk/BEgjh9L3hg5O4y2IDZRBdzuQ==} dependencies: - '@lezer/highlight': 1.0.0 - '@lezer/lr': 1.1.0 + '@lezer/common': 1.0.3 + '@lezer/highlight': 1.1.6 + '@lezer/lr': 1.3.9 dev: false - /@lezer/javascript/1.0.1: - resolution: {integrity: sha512-t7fpf3+gi/jiAtW+Gv734TbKdpPg6b8qATH01/jprW9H2oR++Tb688IHwJvZbk9F4GjpCEv86beuHMpUyC1b5g==} + /@lezer/javascript/1.4.5: + resolution: {integrity: sha512-FmBUHz8K1V22DgjTd6SrIG9owbzOYZ1t3rY6vGEmw+e2RVBd7sqjM8uXEVRFmfxKFn1Mx2ABJehHjrN3G2ZpmA==} dependencies: - '@lezer/highlight': 1.0.0 - '@lezer/lr': 1.1.0 + '@lezer/highlight': 1.1.6 + '@lezer/lr': 1.3.9 dev: false - /@lezer/lr/1.1.0: - resolution: {integrity: sha512-Iad04uVwk1PvSnj25mqj7zEEIRAsasbsTRmVzI0AUTs/+1Dz1//iYAaoLr7A+Xa7bZDfql5MKTxZmSlkYZD3Dg==} + /@lezer/lr/1.3.9: + resolution: {integrity: sha512-XPz6dzuTHlnsbA5M2DZgjflNQ+9Hi5Swhic0RULdp3oOs3rh6bqGZolosVqN/fQIT8uNiepzINJDnS39oweTHQ==} dependencies: - '@lezer/common': 1.0.0 + '@lezer/common': 1.0.3 dev: false - /@lezer/php/1.0.0: - resolution: {integrity: sha512-kFQu/mk/vmjpA+fjQU87d9eimqKJ9PFCa8CZCPFWGEwNnm7Ahpw32N+HYEU/YAQ0XcfmOAnW/YJCEa8WpUOMMw==} + /@lezer/php/1.0.1: + resolution: {integrity: sha512-aqdCQJOXJ66De22vzdwnuC502hIaG9EnPK2rSi+ebXyUd+j7GAX1mRjWZOVOmf3GST1YUfUCu6WXDiEgDGOVwA==} dependencies: - '@lezer/highlight': 1.0.0 - '@lezer/lr': 1.1.0 + '@lezer/highlight': 1.1.6 + '@lezer/lr': 1.3.9 dev: false /@types/linkify-it/3.0.2: @@ -423,129 +514,129 @@ packages: resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} dev: true - /@types/node/16.10.3: - resolution: {integrity: sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==} + /@types/node/16.18.39: + resolution: {integrity: sha512-8q9ZexmdYYyc5/cfujaXb4YOucpQxAV4RMG0himLyDUOEr8Mr79VrqsFI+cQ2M2h89YIuy95lbxuYjxT4Hk4kQ==} dev: true /@types/prop-types/15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} dev: false - /@types/react/17.0.47: - resolution: {integrity: sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==} + /@types/react/17.0.62: + resolution: {integrity: sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw==} dependencies: '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.2 - csstype: 3.1.0 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 dev: false - /@types/scheduler/0.16.2: - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + /@types/scheduler/0.16.3: + resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} dev: false - /@vitejs/plugin-vue/2.3.2_vite@2.9.8+vue@3.2.37: - resolution: {integrity: sha512-umyypfSHS4kQLdYAnJHhaASq7FRzNCdvcRoQ3uYGNk1/M4a+hXUd7ysN7BLhCrWH6uBokyCkFeUAaFDzSaaSrQ==} + /@vitejs/plugin-vue/2.3.4_vite@2.9.16+vue@3.3.4: + resolution: {integrity: sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==} engines: {node: '>=12.0.0'} peerDependencies: vite: ^2.5.10 vue: ^3.2.25 dependencies: - vite: 2.9.8 - vue: 3.2.37 + vite: 2.9.16 + vue: 3.3.4 dev: false - /@vue/compiler-core/3.2.37: - resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} + /@vue/compiler-core/3.3.4: + resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: - '@babel/parser': 7.16.4 - '@vue/shared': 3.2.37 + '@babel/parser': 7.22.7 + '@vue/shared': 3.3.4 estree-walker: 2.0.2 - source-map: 0.6.1 + source-map-js: 1.0.2 dev: false - /@vue/compiler-dom/3.2.37: - resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} + /@vue/compiler-dom/3.3.4: + resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} dependencies: - '@vue/compiler-core': 3.2.37 - '@vue/shared': 3.2.37 + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 dev: false - /@vue/compiler-sfc/3.2.37: - resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} + /@vue/compiler-sfc/3.3.4: + resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} dependencies: - '@babel/parser': 7.16.4 - '@vue/compiler-core': 3.2.37 - '@vue/compiler-dom': 3.2.37 - '@vue/compiler-ssr': 3.2.37 - '@vue/reactivity-transform': 3.2.37 - '@vue/shared': 3.2.37 + '@babel/parser': 7.22.7 + '@vue/compiler-core': 3.3.4 + '@vue/compiler-dom': 3.3.4 + '@vue/compiler-ssr': 3.3.4 + '@vue/reactivity-transform': 3.3.4 + '@vue/shared': 3.3.4 estree-walker: 2.0.2 - magic-string: 0.25.7 - postcss: 8.4.13 - source-map: 0.6.1 + magic-string: 0.30.2 + postcss: 8.4.27 + source-map-js: 1.0.2 dev: false - /@vue/compiler-ssr/3.2.37: - resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} + /@vue/compiler-ssr/3.3.4: + resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} dependencies: - '@vue/compiler-dom': 3.2.37 - '@vue/shared': 3.2.37 + '@vue/compiler-dom': 3.3.4 + '@vue/shared': 3.3.4 dev: false - /@vue/reactivity-transform/3.2.37: - resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} + /@vue/reactivity-transform/3.3.4: + resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} dependencies: - '@babel/parser': 7.16.4 - '@vue/compiler-core': 3.2.37 - '@vue/shared': 3.2.37 + '@babel/parser': 7.22.7 + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 estree-walker: 2.0.2 - magic-string: 0.25.7 + magic-string: 0.30.2 dev: false - /@vue/reactivity/3.2.37: - resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} + /@vue/reactivity/3.3.4: + resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} dependencies: - '@vue/shared': 3.2.37 + '@vue/shared': 3.3.4 dev: false - /@vue/repl/1.2.4_vue@3.2.37: - resolution: {integrity: sha512-qmM4eIFQoz85gmHzBzcDwL0Tq3o1SBtT/HXvq6z6Co42AruKQFqle6LHo/XV9DJA+sPxHAQyBkuMXmokQ4vGsg==} + /@vue/repl/1.5.0_vue@3.3.4: + resolution: {integrity: sha512-qFqKtvA2FM9viYXzbWrpGrL8mDGswsqDsEjfaibr/YOqeza7i49VmO0AKPrOdQDOS2qmq9uV+G6OPX1rGhUSIQ==} peerDependencies: vue: ^3.2.13 dependencies: - vue: 3.2.37 + vue: 3.3.4 dev: false - /@vue/runtime-core/3.2.37: - resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} + /@vue/runtime-core/3.3.4: + resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} dependencies: - '@vue/reactivity': 3.2.37 - '@vue/shared': 3.2.37 + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 dev: false - /@vue/runtime-dom/3.2.37: - resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} + /@vue/runtime-dom/3.3.4: + resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} dependencies: - '@vue/runtime-core': 3.2.37 - '@vue/shared': 3.2.37 - csstype: 2.6.18 + '@vue/runtime-core': 3.3.4 + '@vue/shared': 3.3.4 + csstype: 3.1.2 dev: false - /@vue/server-renderer/3.2.37_vue@3.2.37: - resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} + /@vue/server-renderer/3.3.4_vue@3.3.4: + resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} peerDependencies: - vue: 3.2.37 + vue: 3.3.4 dependencies: - '@vue/compiler-ssr': 3.2.37 - '@vue/shared': 3.2.37 - vue: 3.2.37 + '@vue/compiler-ssr': 3.3.4 + '@vue/shared': 3.3.4 + vue: 3.3.4 dev: false - /@vue/shared/3.2.37: - resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} + /@vue/shared/3.3.4: + resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} dev: false - /@vueuse/core/7.7.1_vue@3.2.37: + /@vueuse/core/7.7.1_vue@3.3.4: resolution: {integrity: sha512-PRRgbATMpoeUmkCEBtUeJgOwtew8s+4UsEd+Pm7MhkjL2ihCNrSqxNVtM6NFE4uP2sWnkGcZpCjPuNSxowJ1Ow==} peerDependencies: '@vue/composition-api': ^1.1.0 @@ -556,12 +647,12 @@ packages: vue: optional: true dependencies: - '@vueuse/shared': 7.7.1_vue@3.2.37 - vue: 3.2.37 - vue-demi: 0.13.1_vue@3.2.37 + '@vueuse/shared': 7.7.1_vue@3.3.4 + vue: 3.3.4 + vue-demi: 0.14.5_vue@3.3.4 dev: false - /@vueuse/shared/7.7.1_vue@3.2.37: + /@vueuse/shared/7.7.1_vue@3.3.4: resolution: {integrity: sha512-rN2qd22AUl7VdBxihagWyhUNHCyVk9IpvBTTfHoLH9G7rGE552X1f+zeCfehuno0zXif13jPw+icW/wn2a0rnQ==} peerDependencies: '@vue/composition-api': ^1.1.0 @@ -572,27 +663,27 @@ packages: vue: optional: true dependencies: - vue: 3.2.37 - vue-demi: 0.13.1_vue@3.2.37 + vue: 3.3.4 + vue-demi: 0.14.5_vue@3.3.4 dev: false - /algoliasearch/4.10.5: - resolution: {integrity: sha512-KmH2XkiN+8FxhND4nWFbQDkIoU6g2OjfeU9kIv4Lb+EiOOs3Gpp7jvd+JnatsCisAZsnWQdjd7zVlW7I/85QvQ==} + /algoliasearch/4.19.1: + resolution: {integrity: sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g==} dependencies: - '@algolia/cache-browser-local-storage': 4.10.5 - '@algolia/cache-common': 4.10.5 - '@algolia/cache-in-memory': 4.10.5 - '@algolia/client-account': 4.10.5 - '@algolia/client-analytics': 4.10.5 - '@algolia/client-common': 4.10.5 - '@algolia/client-personalization': 4.10.5 - '@algolia/client-search': 4.10.5 - '@algolia/logger-common': 4.10.5 - '@algolia/logger-console': 4.10.5 - '@algolia/requester-browser-xhr': 4.10.5 - '@algolia/requester-common': 4.10.5 - '@algolia/requester-node-http': 4.10.5 - '@algolia/transporter': 4.10.5 + '@algolia/cache-browser-local-storage': 4.19.1 + '@algolia/cache-common': 4.19.1 + '@algolia/cache-in-memory': 4.19.1 + '@algolia/client-account': 4.19.1 + '@algolia/client-analytics': 4.19.1 + '@algolia/client-common': 4.19.1 + '@algolia/client-personalization': 4.19.1 + '@algolia/client-search': 4.19.1 + '@algolia/logger-common': 4.19.1 + '@algolia/logger-console': 4.19.1 + '@algolia/requester-browser-xhr': 4.19.1 + '@algolia/requester-common': 4.19.1 + '@algolia/requester-node-http': 4.19.1 + '@algolia/transporter': 4.19.1 dev: false /asynckit/0.4.0: @@ -602,7 +693,7 @@ packages: /axios/0.27.2: resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} dependencies: - follow-redirects: 1.15.1 + follow-redirects: 1.15.2 form-data: 4.0.0 transitivePeerDependencies: - debug @@ -619,16 +710,12 @@ packages: delayed-stream: 1.0.0 dev: false - /crelt/1.0.5: - resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} - dev: false - - /csstype/2.6.18: - resolution: {integrity: sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==} + /crelt/1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} dev: false - /csstype/3.1.0: - resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} + /csstype/3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} dev: false /delayed-stream/1.0.0: @@ -637,11 +724,11 @@ packages: dev: false /dynamics.js/1.1.5: - resolution: {integrity: sha1-uQvcM2Bc7+ZSuEFucB95v27vzjI=} + resolution: {integrity: sha512-c+LHNccaJS67T4Jfk9b/5CwYsZCHmc10+MplWB8WPFyqTMEqOf8MI56Rg0JRILWjtXnjuBO7xmrNevNnPX+NHg==} dev: false - /esbuild-android-64/0.14.38: - resolution: {integrity: sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==} + /esbuild-android-64/0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -649,8 +736,8 @@ packages: dev: false optional: true - /esbuild-android-arm64/0.14.38: - resolution: {integrity: sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==} + /esbuild-android-arm64/0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -658,8 +745,8 @@ packages: dev: false optional: true - /esbuild-darwin-64/0.14.38: - resolution: {integrity: sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==} + /esbuild-darwin-64/0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -667,8 +754,8 @@ packages: dev: false optional: true - /esbuild-darwin-arm64/0.14.38: - resolution: {integrity: sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==} + /esbuild-darwin-arm64/0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -676,8 +763,8 @@ packages: dev: false optional: true - /esbuild-freebsd-64/0.14.38: - resolution: {integrity: sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==} + /esbuild-freebsd-64/0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -685,8 +772,8 @@ packages: dev: false optional: true - /esbuild-freebsd-arm64/0.14.38: - resolution: {integrity: sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==} + /esbuild-freebsd-arm64/0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -694,8 +781,8 @@ packages: dev: false optional: true - /esbuild-linux-32/0.14.38: - resolution: {integrity: sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==} + /esbuild-linux-32/0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -703,8 +790,8 @@ packages: dev: false optional: true - /esbuild-linux-64/0.14.38: - resolution: {integrity: sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==} + /esbuild-linux-64/0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -712,8 +799,8 @@ packages: dev: false optional: true - /esbuild-linux-arm/0.14.38: - resolution: {integrity: sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==} + /esbuild-linux-arm/0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -721,8 +808,8 @@ packages: dev: false optional: true - /esbuild-linux-arm64/0.14.38: - resolution: {integrity: sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==} + /esbuild-linux-arm64/0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -730,8 +817,8 @@ packages: dev: false optional: true - /esbuild-linux-mips64le/0.14.38: - resolution: {integrity: sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==} + /esbuild-linux-mips64le/0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -739,8 +826,8 @@ packages: dev: false optional: true - /esbuild-linux-ppc64le/0.14.38: - resolution: {integrity: sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==} + /esbuild-linux-ppc64le/0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -748,8 +835,8 @@ packages: dev: false optional: true - /esbuild-linux-riscv64/0.14.38: - resolution: {integrity: sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==} + /esbuild-linux-riscv64/0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -757,8 +844,8 @@ packages: dev: false optional: true - /esbuild-linux-s390x/0.14.38: - resolution: {integrity: sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==} + /esbuild-linux-s390x/0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -766,8 +853,8 @@ packages: dev: false optional: true - /esbuild-netbsd-64/0.14.38: - resolution: {integrity: sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==} + /esbuild-netbsd-64/0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -775,8 +862,8 @@ packages: dev: false optional: true - /esbuild-openbsd-64/0.14.38: - resolution: {integrity: sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==} + /esbuild-openbsd-64/0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -784,8 +871,8 @@ packages: dev: false optional: true - /esbuild-sunos-64/0.14.38: - resolution: {integrity: sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==} + /esbuild-sunos-64/0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -793,8 +880,8 @@ packages: dev: false optional: true - /esbuild-windows-32/0.14.38: - resolution: {integrity: sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==} + /esbuild-windows-32/0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -802,8 +889,8 @@ packages: dev: false optional: true - /esbuild-windows-64/0.14.38: - resolution: {integrity: sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==} + /esbuild-windows-64/0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -811,8 +898,8 @@ packages: dev: false optional: true - /esbuild-windows-arm64/0.14.38: - resolution: {integrity: sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==} + /esbuild-windows-arm64/0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -820,40 +907,41 @@ packages: dev: false optional: true - /esbuild/0.14.38: - resolution: {integrity: sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==} + /esbuild/0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.38 - esbuild-android-arm64: 0.14.38 - esbuild-darwin-64: 0.14.38 - esbuild-darwin-arm64: 0.14.38 - esbuild-freebsd-64: 0.14.38 - esbuild-freebsd-arm64: 0.14.38 - esbuild-linux-32: 0.14.38 - esbuild-linux-64: 0.14.38 - esbuild-linux-arm: 0.14.38 - esbuild-linux-arm64: 0.14.38 - esbuild-linux-mips64le: 0.14.38 - esbuild-linux-ppc64le: 0.14.38 - esbuild-linux-riscv64: 0.14.38 - esbuild-linux-s390x: 0.14.38 - esbuild-netbsd-64: 0.14.38 - esbuild-openbsd-64: 0.14.38 - esbuild-sunos-64: 0.14.38 - esbuild-windows-32: 0.14.38 - esbuild-windows-64: 0.14.38 - esbuild-windows-arm64: 0.14.38 + '@esbuild/linux-loong64': 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 dev: false /estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: false - /follow-redirects/1.15.1: - resolution: {integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==} + /follow-redirects/1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -883,8 +971,8 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: false - /gsap/3.9.0: - resolution: {integrity: sha512-YfIBNHJu4UHES1Vj780+sXtQuiD78QQwgJqktaXE9PO9OuXz5l4ETz05pnhxUfJcxJy4SUINXJxT9ZZhuYwU2g==} + /gsap/3.12.2: + resolution: {integrity: sha512-EkYnpG8qHgYBFAwsgsGEqvT1WUidX0tt/ijepx7z8EUJHElykg91RvW1XbkT59T0gZzzszOpjQv7SE41XuIXyQ==} dev: false /has/1.0.3: @@ -894,8 +982,8 @@ packages: function-bind: 1.1.1 dev: false - /is-core-module/2.8.1: - resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} + /is-core-module/2.12.1: + resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} dependencies: has: 1.0.3 dev: false @@ -904,8 +992,8 @@ packages: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false - /jsonc-parser/3.0.0: - resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} + /jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: false /loose-envify/1.4.0: @@ -915,10 +1003,11 @@ packages: js-tokens: 4.0.0 dev: false - /magic-string/0.25.7: - resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} + /magic-string/0.30.2: + resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} + engines: {node: '>=12'} dependencies: - sourcemap-codec: 1.4.8 + '@jridgewell/sourcemap-codec': 1.4.15 dev: false /mime-db/1.52.0: @@ -933,8 +1022,8 @@ packages: mime-db: 1.52.0 dev: false - /nanoid/3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + /nanoid/3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: false @@ -956,21 +1045,22 @@ packages: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false - /postcss/8.4.13: - resolution: {integrity: sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==} + /postcss/8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.4 + nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 dev: false - /preact/10.5.14: - resolution: {integrity: sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==} + /preact/10.16.0: + resolution: {integrity: sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==} dev: false - /prismjs/1.25.0: - resolution: {integrity: sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==} + /prismjs/1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} dev: false /react-dom/17.0.2_react@17.0.2: @@ -995,17 +1085,17 @@ packages: object-assign: 4.1.1 dev: false - /resolve/1.22.0: - resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} + /resolve/1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: - is-core-module: 2.8.1 + is-core-module: 2.12.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: false - /rollup/2.60.2: - resolution: {integrity: sha512-1Bgjpq61sPjgoZzuiDSGvbI1tD91giZABgjCQBKM5aYLnzjq52GoDuWVwT/cm/MCxCMPU8gqQvkj8doQ5C8Oqw==} + /rollup/2.77.3: + resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -1022,8 +1112,8 @@ packages: /shiki/0.9.15: resolution: {integrity: sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==} dependencies: - jsonc-parser: 3.0.0 - vscode-oniguruma: 1.6.2 + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 vscode-textmate: 5.2.0 dev: false @@ -1032,17 +1122,8 @@ packages: engines: {node: '>=0.10.0'} dev: false - /source-map/0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: false - - /sourcemap-codec/1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - dev: false - - /style-mod/4.0.0: - resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} + /style-mod/4.0.3: + resolution: {integrity: sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw==} dev: false /supports-preserve-symlinks-flag/1.0.0: @@ -1055,8 +1136,8 @@ packages: engines: {node: '>=4'} dev: false - /vite/2.9.8: - resolution: {integrity: sha512-zsBGwn5UT3YS0NLSJ7hnR54+vUKfgzMUh/Z9CxF1YKEBVIe213+63jrFLmZphgGI5zXwQCSmqIdbPuE8NJywPw==} + /vite/2.9.16: + resolution: {integrity: sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA==} engines: {node: '>=12.2.0'} hasBin: true peerDependencies: @@ -1071,10 +1152,10 @@ packages: stylus: optional: true dependencies: - esbuild: 0.14.38 - postcss: 8.4.13 - resolve: 1.22.0 - rollup: 2.60.2 + esbuild: 0.14.54 + postcss: 8.4.27 + resolve: 1.22.2 + rollup: 2.77.3 optionalDependencies: fsevents: 2.3.2 dev: false @@ -1084,12 +1165,12 @@ packages: engines: {node: '>=14.0.0'} hasBin: true dependencies: - '@docsearch/css': 3.0.0 - '@docsearch/js': 3.0.0 - '@vitejs/plugin-vue': 2.3.2_vite@2.9.8+vue@3.2.37 - prismjs: 1.25.0 - vite: 2.9.8 - vue: 3.2.37 + '@docsearch/css': 3.5.1 + '@docsearch/js': 3.5.1 + '@vitejs/plugin-vue': 2.3.4_vite@2.9.16+vue@3.3.4 + prismjs: 1.29.0 + vite: 2.9.16 + vue: 3.3.4 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -1097,19 +1178,20 @@ packages: - react - react-dom - sass + - search-insights - stylus dev: false - /vscode-oniguruma/1.6.2: - resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==} + /vscode-oniguruma/1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} dev: false /vscode-textmate/5.2.0: resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} dev: false - /vue-demi/0.13.1_vue@3.2.37: - resolution: {integrity: sha512-xmkJ56koG3ptpLnpgmIzk9/4nFf4CqduSJbUM0OdPoU87NwRuZ6x49OLhjSa/fC15fV+5CbEnrxU4oyE022svg==} + /vue-demi/0.14.5_vue@3.3.4: + resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==} engines: {node: '>=12'} hasBin: true requiresBuild: true @@ -1120,19 +1202,19 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.37 + vue: 3.3.4 dev: false - /vue/3.2.37: - resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} + /vue/3.3.4: + resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} dependencies: - '@vue/compiler-dom': 3.2.37 - '@vue/compiler-sfc': 3.2.37 - '@vue/runtime-dom': 3.2.37 - '@vue/server-renderer': 3.2.37_vue@3.2.37 - '@vue/shared': 3.2.37 + '@vue/compiler-dom': 3.3.4 + '@vue/compiler-sfc': 3.3.4 + '@vue/runtime-dom': 3.3.4 + '@vue/server-renderer': 3.3.4_vue@3.3.4 + '@vue/shared': 3.3.4 dev: false - /w3c-keyname/2.2.4: - resolution: {integrity: sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==} + /w3c-keyname/2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} dev: false diff --git a/src/community/team/Member.ts b/src/community/team/Member.ts index f124977e..9ad76d87 100644 --- a/src/community/team/Member.ts +++ b/src/community/team/Member.ts @@ -22,4 +22,6 @@ export interface Socials { github: string twitter?: string codepen?: string + instagram?: string + linkedin?: string } diff --git a/src/community/team/TeamMember.vue b/src/community/team/TeamMember.vue index a326324d..70e11d8d 100644 --- a/src/community/team/TeamMember.vue +++ b/src/community/team/TeamMember.vue @@ -6,6 +6,7 @@ import { VTIconGitHub, VTIconGlobe, VTIconHeart, + VTIconInstagram, VTIconLink, VTIconLinkedIn, VTIconMapPin, @@ -158,6 +159,15 @@ const avatarUrl = computed(() => {