diff --git a/.github/workflows/contributors.yml b/.github/workflows/contributors.yml deleted file mode 100644 index bc23e188..00000000 --- a/.github/workflows/contributors.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Update Contributors List - -on: - schedule: - - cron: '0 13 * * 1' - workflow_dispatch: - -permissions: - contents: write - -env: - token: ${{ secrets.GITHUB_TOKEN }} - -jobs: - update_contributors_list: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Set executable permissions for the script - run: chmod +x ./get-all.sh - - - name: Run the script - run: | - ./get-all.sh - - - name: Commit changes - run: | - git config user.name github-actions - git config user.email github-actions@github.com - git add . - git commit -m "chore: Update Contributors List" - git push diff --git a/.gitignore b/.gitignore index 39fabdf3..5b657d81 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,31 @@ -/assets/images/*.gvdesign -/_site -.jekyll-cache +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +/public/articles/ +/public/articles.json + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..222861c3 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "tabWidth": 2, + "useTabs": false +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..c0a6e5a4 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/CNAME b/CNAME deleted file mode 100644 index 157af957..00000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -vanillaos.org \ No newline at end of file diff --git a/LICENSE b/LICENSE index 0ad25db4..29ebfa54 100644 --- a/LICENSE +++ b/LICENSE @@ -658,4 +658,4 @@ specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see -. +. \ No newline at end of file diff --git a/README.md b/README.md index 79a35f74..f3dc6a9c 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,77 @@
- - + +
-

This page contains source code of the official Vanilla OS website.

+

This source code is distributed under the AGPL 3.0 +license, while Vanilla OS is a product of fabricators.ltd. +Please note that all assets on this website are owned by fabricators.ltd and +the Vanilla OS Contributors Team.

## Development -To run the Vanilla OS website locally, install [Jekyll](https://jekyllrb.com/docs/), the required plugins and clone this repository: +### CSS Convention + +Our framework follows the [BEM (Block, Element, Modifier)](https://en.bem.info/methodology/quick-start/) +convention for CSS classes. + +Colors are defined in the `assets/css/colors/default.css` and `assets/css/colors/dark.css` +files, they must be unique and not overlap with each other. + +Each new component (block) must be defined in a separate file in the `assets/css/components` +directory and must follow the following structure: + +```css +.block { + /* Color Variables */ + --block-color: var(--color-primary); + --block-element-color: var(--color-secondary); +} + +.block { + /* Block Styles */ + background-color: var(--block-color); +} + +.block-element { + /* Element Styles */ + background-color: var(--block-element-color); + width: 100px; + height: 100px; +} + +.block--modifier { + /* Modifier Styles */ + width: 200px; + height: 200px; +} + +/* Media Queries */ +``` + +### Build and Run + +To run the Vanilla OS website locally, you need to have [Vue.js](https://vuejs.org/) and +[Vite](https://vitejs.dev/) installed. + +#### Build articles index ```bash -# make sure to have the requirements for jekyll installed: Ruby, RubyGems, GCC, Make -gem install jekyll bundler -gem install jekyll-feed jekyll-sitemap -git clone https://github.com/Vanilla-OS/website.git -cd website +npm run generate-articles ``` -Then serve the site locally with: +#### Run the website locally + +This will also build the articles index. + +```bash +npm run dev +``` + +## Production Build + +This will also build the articles index. ```bash -jekyll serve +npm run build ``` diff --git a/_config.yml b/_config.yml deleted file mode 100644 index dd1ffbca..00000000 --- a/_config.yml +++ /dev/null @@ -1,17 +0,0 @@ -title: Vanilla OS -author: Vanilla OS Contributors -email: send@mirko.pm - -assets: /assets -uploads: /uploads - -defaults: - - scope: - path: "" - values: - layout: "default" - -url: "https://vanillaos.org" -plugins: - - jekyll-feed - - jekyll-sitemap diff --git a/_includes/accordion-item.html b/_includes/accordion-item.html deleted file mode 100644 index d5f4cc01..00000000 --- a/_includes/accordion-item.html +++ /dev/null @@ -1,9 +0,0 @@ -
-
-

{{include.title | strip}}

- Click to Expand -
-
- {{include.text}} -
-
diff --git a/_includes/footer.html b/_includes/footer.html deleted file mode 100644 index 5b7692f4..00000000 --- a/_includes/footer.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - diff --git a/_includes/head.html b/_includes/head.html deleted file mode 100644 index 665ac460..00000000 --- a/_includes/head.html +++ /dev/null @@ -1,5 +0,0 @@ -{{ site.title }} {{ page.title }} - - - - diff --git a/_includes/header.html b/_includes/header.html deleted file mode 100644 index b7cf05bf..00000000 --- a/_includes/header.html +++ /dev/null @@ -1,29 +0,0 @@ -
-
- - more_vert - -
-
diff --git a/_includes/posts-listing.html b/_includes/posts-listing.html deleted file mode 100644 index d70c5d0b..00000000 --- a/_includes/posts-listing.html +++ /dev/null @@ -1,23 +0,0 @@ -{% assign post = include.post %} -{% assign date = post.date %} -{% if post.published == true %} - -
- {% if post.thumb != nil %} - - {% endif %} -
-

{{ post.title }}

- -

{{ post.content | strip_html | truncatewords: 32 }}

-
-
- - Read more arrow_forward - -
-
- -{% endif %} \ No newline at end of file diff --git a/_layouts/article.html b/_layouts/article.html deleted file mode 100644 index 3d67b476..00000000 --- a/_layouts/article.html +++ /dev/null @@ -1,23 +0,0 @@ ---- -class: blog -layout: default -tint: true ---- -
-
-
-

{{ page.title }}

-

{{ page.description }}

-
-
-
- -
-
- {{ content }} -
-
- - - - \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index 6394230e..00000000 --- a/_layouts/default.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - {% include head.html %} - - - {% if page.pattern %}
{% endif %} - {% if layout.pattern %}
{% endif %} -
- {% include header.html %} -
{{ content }}
- {% include footer.html %} - - diff --git a/_layouts/page.html b/_layouts/page.html deleted file mode 100644 index cafb744c..00000000 --- a/_layouts/page.html +++ /dev/null @@ -1,21 +0,0 @@ ---- -class: page -layout: default -tint: true ---- -
- {% if page.pattern %}
{% endif %} - {% if layout.pattern %}
{% endif %} -
-
-

{{ page.title }}

-

{{ page.description }}

-
-
-
- -
-
- {{ content }} -
-
\ No newline at end of file diff --git a/_posts/2022-11-01-vanilla-installer.md b/articles/2022-11-01-vanilla-installer.md similarity index 82% rename from _posts/2022-11-01-vanilla-installer.md rename to articles/2022-11-01-vanilla-installer.md index 964154c5..22a513af 100644 --- a/_posts/2022-11-01-vanilla-installer.md +++ b/articles/2022-11-01-vanilla-installer.md @@ -2,6 +2,19 @@ title: "Introducing the Vanilla Installer" description: "Vanilla OS has a whole new installer in GTK4 and libadwaita." date: 2022-10-16 +keywords: + - Vanilla Installer + - GTK4 + - libadwaita + - Calamares + - Crystal Linux + - Jade installer + - Python + - Vanilla OS + - Vanilla First Setup + - Installation process + - GNOME guidelines + - Distinst layout: article published: false comments: true @@ -47,19 +60,19 @@ The **Welcome** screen allows the user to choose between live mode and installation mode. The live mode is used to test the system without installing it, while the installation mode is used to install the system on the device. -![Welcome - Vanilla Installer](/assets/uploads/installer-welcome.png) +![Welcome - Vanilla Installer](/uploads/installer-welcome.png) Once the user has chosen the installation mode, the **Language** screen is shown. In this screen, it is possible to choose the language in which Vanilla OS will be installed. Here a search bar is available to quickly find the language. -![Language - Vanilla Installer](/assets/uploads/installer-language.png) +![Language - Vanilla Installer](/uploads/installer-language.png) The **Keyboard** screen allows the user to choose the keyboard layout that will be used in the system. As for the language, a search bar is available to quickly find the keyboard layout, plus a test area to test the keyboard layout. -![Keyboard - Vanilla Installer](/assets/uploads/installer-keyboard.png) +![Keyboard - Vanilla Installer](/uploads/installer-keyboard.png) The **Timezone** screen allows the user to choose the timezone in which the system will be installed. The timezone is automatically set to the one detected by the @@ -67,11 +80,11 @@ system, but it is possible to change it to another one. Once a region is selected, the zones are automatically filtered. Other than the usual search bar, a preview of the current time is available to quickly test the timezone. -![Timezone - Vanilla Installer](/assets/uploads/installer-timezone.png) +![Timezone - Vanilla Installer](/uploads/installer-timezone.png) The **Partitioning** screen allows the user to choose where to install the system. -![Partitioning - Vanilla Installer](/assets/uploads/installer-partitioning.png) +![Partitioning - Vanilla Installer](/uploads/installer-partitioning.png) Once a disk is selected, it is possible to choose between automatic or manual partitioning. In automatic partitioning, the disk is automatically partitioned @@ -85,28 +98,28 @@ It is also possible to launch the GParted utility to manually partition the disk.
-  Auto Partitioning - Vanilla Installer -  Manual Partitioning - Vanilla Installer -  Confirm Partitioning - Vanilla Installer +  Auto Partitioning - Vanilla Installer +  Manual Partitioning - Vanilla Installer +  Confirm Partitioning - Vanilla Installer
The **User** screen allows the user to set up the user account that will be created in the system. It is possible to choose the Name, Username and Password. Plus a preview of the Adwaita avatar is shown. -![User - Vanilla Installer](/assets/uploads/installer-user.png) +![User - Vanilla Installer](/uploads/installer-user.png) Before starting the installation, a summary of the installation is shown, so the user can check if everything is correct before proceeding. -![Installation - Vanilla Installer](/assets/uploads/installer-confirm.png) +![Installation - Vanilla Installer](/uploads/installer-confirm.png) Finally, the **Installation** screen shows the progress of the installation. Here we placed a tour of the system to show the user what to expect after the installation. It is also possible to toggle the console to see the installation logs. -![Installation - Vanilla Installer](/assets/uploads/installer-installation.png) +![Installation - Vanilla Installer](/uploads/installer-installation.png) ## Testing the new installer diff --git a/_posts/2022-12-18-end-of-winter-wallpaper-competition-2022.md b/articles/2022-12-18-end-of-winter-wallpaper-competition-2022.md similarity index 74% rename from _posts/2022-12-18-end-of-winter-wallpaper-competition-2022.md rename to articles/2022-12-18-end-of-winter-wallpaper-competition-2022.md index 9b8288f7..f5659f61 100644 --- a/_posts/2022-12-18-end-of-winter-wallpaper-competition-2022.md +++ b/articles/2022-12-18-end-of-winter-wallpaper-competition-2022.md @@ -2,6 +2,11 @@ title: "End of Winter Wallpaper Competition 2022" description: "The first Winter Wallpaper Competition has ended. Vote for your favourite wallpaper!" date: 2022-12-18 +keywords: + - Winter Wallpaper Competition + - Wallpaper + - Vanilla OS + - Wallpaper Competition layout: article published: true comments: true @@ -15,31 +20,31 @@ We received more submissions, but only 3 of them met the requirements. Here they ### 1. by 4e6anenk0 -| ![A snowy taiga with a shooting star-like Vanilla OS logo in place of the star in daylight.](/assets/uploads/WWC2022/4e6anenk0-light.png) | +| ![A snowy taiga with a shooting star-like Vanilla OS logo in place of the star in daylight.](/uploads/WWC2022/4e6anenk0-light.png) | |:--:| | *Light variant* | -| ![A melting snowy taiga with a shooting star-like Vanilla OS logo in place of the star at night.](/assets/uploads/WWC2022/4e6anenk0-dark.png) | +| ![A melting snowy taiga with a shooting star-like Vanilla OS logo in place of the star at night.](/uploads/WWC2022/4e6anenk0-dark.png) | |:--:| | *Dark variant* | ### 2. by conquodS -| ![A snowy taiga with dead trees spanning the view in daylight.](/assets/uploads/WWC2022/conquodS-light.png) | +| ![A snowy taiga with dead trees spanning the view in daylight.](/uploads/WWC2022/conquodS-light.png) | |:--:| | *Light variant* | -| ![A snowy taiga with dead trees spanning the view at night.](/assets/uploads/WWC2022/conquodS-dark.png) | +| ![A snowy taiga with dead trees spanning the view at night.](/uploads/WWC2022/conquodS-dark.png) | |:--:| | *Dark variant* | ### 3. by kramo -| ![A frozen lake in a taiga in daylight.](/assets/uploads/WWC2022/kramo-light.png) | +| ![A frozen lake in a taiga in daylight.](/uploads/WWC2022/kramo-light.png) | |:--:| | *Light variant* | -| ![A frozen lake in a taiga at night.](/assets/uploads/WWC2022/kramo-dark.png) | +| ![A frozen lake in a taiga at night.](/uploads/WWC2022/kramo-dark.png) | |:--:| | *Dark variant* | diff --git a/_posts/2022-12-29-vanilla-os-22-10-kinetic.md b/articles/2022-12-29-vanilla-os-22-10-kinetic.md similarity index 91% rename from _posts/2022-12-29-vanilla-os-22-10-kinetic.md rename to articles/2022-12-29-vanilla-os-22-10-kinetic.md index b4e009dd..0ec22210 100644 --- a/_posts/2022-12-29-vanilla-os-22-10-kinetic.md +++ b/articles/2022-12-29-vanilla-os-22-10-kinetic.md @@ -2,6 +2,17 @@ title: "Vanilla OS 22.10 Kinetic is out!" description: "First stable release of Vanilla OS 22.10 Kinetic is released." date: 2022-12-29 +keywords: + - Vanilla OS 22.10 Kinetic + - Stable + - Release + - Vanilla OS + - Apx + - ABRoot + - Smart Updates + - First Setup + - GNOME 43 + - Official Wallpapers layout: article published: true comments: true @@ -27,7 +38,7 @@ itself many goals and is not afraid to put itself out there, proudly displaying its unique technologies such as the Apx sub-system, its own automatic update system, and ABRoot transactions. -![](/assets/uploads/vanilla-os-stable-illustration.webp) +![](/uploads/vanilla-os-stable-illustration.webp) So many terms, so many promises, so much everything. But let's see together, in detail what the strengths of Vanilla OS are, the features that make it unique. @@ -50,7 +61,7 @@ By default, Apx provides a container based on your Linux distribution (Ubuntu 22.10 for Vanilla OS 22.10) and wraps all commands from the distribution’s package manager (apt for Ubuntu). -![The "apx enter" command entering an Ubuntu 22.10 container, with the output of "cat /etc/os-release".](/assets/uploads/vanilla-os-apx.png) +![The "apx enter" command entering an Ubuntu 22.10 container, with the output of "cat /etc/os-release".](/uploads/vanilla-os-apx.png) Nevertheless, you can install packages from other package distributions. For example, using the `--aur` flag, a new container based on Arch Linux will be @@ -60,7 +71,7 @@ will create a new container based on Fedora Linux. Here, apx will manage packages from Fedora’s DNF repository, tightly integrating them with the host system. -![Vanilla Control Center showing the list of installed applications in a "Sub System" tab, "htop". There are also "Drivers" and "Updates" tabs.](/assets/uploads/vanilla-os-apx-control-center.png) +![Vanilla Control Center showing the list of installed applications in a "Sub System" tab, "htop". There are also "Drivers" and "Updates" tabs.](/uploads/vanilla-os-apx-control-center.png) Graphical applications installed inside apx containers are automatically added to the Applications menu as well as the “Open with” menu in the file manager. @@ -97,7 +108,7 @@ We designed this system to take away an annoying task from the user, who simply wants to do their own thing. Updates go through ABRoot transactions and are applied on the next reboot, without taking extra time during boot. -![The Updates tab of the Vanilla Control Center showing the latest update check, weekly updates scheduling set, and "SmartUpdate," where the system will not update if the system is under load or the battery is low.](/assets/uploads/vanilla-os-updates.png) +![The Updates tab of the Vanilla Control Center showing the latest update check, weekly updates scheduling set, and "SmartUpdate," where the system will not update if the system is under load or the battery is low.](/uploads/vanilla-os-updates.png) From the Vanilla Control Center, it is possible to set the update frequency, check when the last one was performed, and turn off Smart Update features. @@ -111,7 +122,7 @@ After the first boot, you will be prompted to complete the installation through a guided process. Here you will be able to make several choices, such as for Dark Mode, Flatpak, AppImage, NVIDIA drivers, and more. -![The first boot prompt for Vanilla OS with a button to confirm beginning setup.](/assets/uploads/vanilla-os-first-setup.png) +![The first boot prompt for Vanilla OS with a button to confirm beginning setup.](/uploads/vanilla-os-first-setup.png) The process is designed to be fast and as minimally invasive as possible. Once complete, you will need to reboot to be able to use your device with Vanilla OS! @@ -125,7 +136,7 @@ ever. We chose to provide GNOME because of its uniqueness and ease of use, which make it the perfect companion to Vanilla OS. -![GNOME 43 with the default Vanilla OS wallpaper.](/assets/uploads/vanilla-os-gnome.png) +![GNOME 43 with the default Vanilla OS wallpaper.](/uploads/vanilla-os-gnome.png) All official Vanilla OS applications are built with GTK4 and Libadwaita to be as consistent as possible with the GNOME experience. @@ -136,7 +147,7 @@ Vanilla OS comes with a set of official wallpapers, designed by our team and community. They are available in high resolution and are designed to best fit with the system. -![A collection of Vanilla OS themed wallpapers.](/assets/uploads/vanilla-os-backgrounds.png) +![A collection of Vanilla OS themed wallpapers.](/uploads/vanilla-os-backgrounds.png) Every wallpaper has a light and a dark version, so you can choose the one that best suits your needs. diff --git a/_posts/2023-01-28-almost-vs-abroot.md b/articles/2023-01-28-almost-vs-abroot.md similarity index 98% rename from _posts/2023-01-28-almost-vs-abroot.md rename to articles/2023-01-28-almost-vs-abroot.md index c68857ac..2319f85a 100644 --- a/_posts/2023-01-28-almost-vs-abroot.md +++ b/articles/2023-01-28-almost-vs-abroot.md @@ -2,6 +2,12 @@ title: "Why we switched from Almost to ABRoot" description: "Explore the advantages and disadvantages of using Almost and ABRoot technologies to achieve immutability." date: 2023-01-28 +keywords: + - Almost + - ABRoot + - Immutability + - Atomicity + - Vanilla OS layout: article published: true comments: true diff --git a/_posts/2023-01-28-apx-the-unconventional-pkg-manager.md b/articles/2023-01-28-apx-the-unconventional-pkg-manager.md similarity index 98% rename from _posts/2023-01-28-apx-the-unconventional-pkg-manager.md rename to articles/2023-01-28-apx-the-unconventional-pkg-manager.md index a2b19a4a..734ca34e 100644 --- a/_posts/2023-01-28-apx-the-unconventional-pkg-manager.md +++ b/articles/2023-01-28-apx-the-unconventional-pkg-manager.md @@ -2,6 +2,13 @@ title: "Apx, an unconventional package manager" description: "Explore apx, the distro-agnostic package manager made by Vanilla OS and Distrobox." date: 2023-01-28 +keywords: + - Apx + - Distrobox + - Podman + - Container + - Package Manager + - Vanilla OS layout: article published: true comments: true diff --git a/_posts/2023-01-31-vso-vanilla-system-operator.md b/articles/2023-01-31-vso-vanilla-system-operator.md similarity index 97% rename from _posts/2023-01-31-vso-vanilla-system-operator.md rename to articles/2023-01-31-vso-vanilla-system-operator.md index 827f827d..2a217730 100644 --- a/_posts/2023-01-31-vso-vanilla-system-operator.md +++ b/articles/2023-01-31-vso-vanilla-system-operator.md @@ -2,6 +2,12 @@ title: "VSO is the Vanilla System Operator" description: "Explore VSO, your teammate in Vanilla OS." date: 2023-01-31 +keywords: + - VSO + - Vanilla System Operator + - Updates + - Automation + - Vanilla OS layout: article published: true comments: true diff --git a/_posts/2023-02-01-pro-cons-rolling-point-release.md b/articles/2023-02-01-pro-cons-rolling-point-release.md similarity index 96% rename from _posts/2023-02-01-pro-cons-rolling-point-release.md rename to articles/2023-02-01-pro-cons-rolling-point-release.md index b5178a64..423f1caa 100644 --- a/_posts/2023-02-01-pro-cons-rolling-point-release.md +++ b/articles/2023-02-01-pro-cons-rolling-point-release.md @@ -2,6 +2,15 @@ title: "Point vs Rolling Release and the modern solutions" description: "Explore the pros and cons of point release vs rolling release." date: 2023-01-31 +keywords: + - Point release + - Rolling release + - Flatpak + - Snap + - AppImage + - Apx + - Distrobox + - Vanilla OS layout: article published: true comments: true diff --git a/_posts/2023-02-03-vanilla-os-core.md b/articles/2023-02-03-vanilla-os-core.md similarity index 95% rename from _posts/2023-02-03-vanilla-os-core.md rename to articles/2023-02-03-vanilla-os-core.md index 81da635e..d21f1194 100644 --- a/_posts/2023-02-03-vanilla-os-core.md +++ b/articles/2023-02-03-vanilla-os-core.md @@ -2,6 +2,14 @@ title: "Vanilla OS Core - A minimal and clean base" description: "An introduction to Vanilla OS Core, a minimal Vanilla OS base." date: 2023-02-03 +keywords: + - Vanilla OS Core + - Vanilla OS + - Core + - Flavors + - GNOME + - KDE + - Vanilla OS KDE Edition layout: article published: true comments: true diff --git a/_posts/2023-02-07-apx-now-supports-nix-packages.md b/articles/2023-02-07-apx-now-supports-nix-packages.md similarity index 94% rename from _posts/2023-02-07-apx-now-supports-nix-packages.md rename to articles/2023-02-07-apx-now-supports-nix-packages.md index d10b3124..bf4d4348 100644 --- a/_posts/2023-02-07-apx-now-supports-nix-packages.md +++ b/articles/2023-02-07-apx-now-supports-nix-packages.md @@ -2,6 +2,14 @@ title: "Nix support in Apx has landed!" description: "Explore Apx's new nix flag to install packages from nix repositories." date: 2023-02-07 +keywords: + - Apx + - Distrobox + - Podman + - Container + - Package Manager + - Vanilla OS + - Nix layout: article published: true comments: true diff --git a/_posts/2023-03-07-vanilla-os-2.0-orchid-initial-work.md b/articles/2023-03-07-vanilla-os-2.0-orchid-initial-work.md similarity index 95% rename from _posts/2023-03-07-vanilla-os-2.0-orchid-initial-work.md rename to articles/2023-03-07-vanilla-os-2.0-orchid-initial-work.md index 03f7b1f2..63affe7c 100644 --- a/_posts/2023-03-07-vanilla-os-2.0-orchid-initial-work.md +++ b/articles/2023-03-07-vanilla-os-2.0-orchid-initial-work.md @@ -2,6 +2,21 @@ title: "Vanilla OS 2.0 Orchid - Initial Work" description: "We are happy to announce Vanilla OS 2.0 Orchid! With significant changes that we'd like to go over, like changing the base to Debian Sid, OCI support in ABRoot and more." date: 2023-03-07 +keywords: + - Vanilla OS 2.0 Orchid + - Vanilla OS + - Orchid + - Apx + - ABRoot + - OCI + - Debian Sid + - Kernel 6 + - GNOME 44 + - Installation + - Post-installation + - Express + - Advanced + - First Setup published: true layout: article comments: true diff --git a/_posts/2023-06-11-vanilla-os-orchid-devlog.md b/articles/2023-06-11-vanilla-os-orchid-devlog.md similarity index 95% rename from _posts/2023-06-11-vanilla-os-orchid-devlog.md rename to articles/2023-06-11-vanilla-os-orchid-devlog.md index 06fdc28f..cf0f4793 100644 --- a/_posts/2023-06-11-vanilla-os-orchid-devlog.md +++ b/articles/2023-06-11-vanilla-os-orchid-devlog.md @@ -3,6 +3,21 @@ title: "Vanilla OS Orchid - Devlog 11 Jun" description: "We are happy to announce the dev log for Vanilla OS 2.0 Orchid! with various exciting updates and changes." published: true date: 2023-06-11 +keywords: + - Vanilla OS 2.0 Orchid + - Vanilla OS + - Orchid + - Apx + - ABRoot + - OCI + - Debian Sid + - Kernel 6 + - GNOME 44 + - Installation + - Post-installation + - Express + - Advanced + - First Setup layout: article comments: true --- @@ -68,7 +83,7 @@ Vanilla OS Orchid consists of 3 main OCI images: [Desktop](https://github.com/Vanilla-OS/desktop-image) is the official system image based on Core. It offers the complete user experience designed for Vanilla OS, including the GNOME desktop and all the graphical tools developed by our team. -![System composition of Vanilla OS, as described above](/assets/uploads/images.webp) +![System composition of Vanilla OS, as described above](/uploads/images.webp) This division allows us to open the doors to every type of flavor, ranging from servers to desktops. It would also allow you to change your base system from Debian to your distribution of choice. @@ -104,9 +119,9 @@ Since Apx v2 is a tool designed for developers and more advanced users, which wi At any time, the user can access the command line to install packages using this subsystem or use the new graphical sideload utility to install Deb packages or Android APKs. -![Installing the Chromium APK using the sideload utility](/assets/uploads/sideload-utility-install.webp) +![Installing the Chromium APK using the sideload utility](/uploads/sideload-utility-install.webp) -![Uninstalling the Chromium APK using the sideload utility](/assets/uploads/sideload-utility-uninstall.webp) +![Uninstalling the Chromium APK using the sideload utility](/uploads/sideload-utility-uninstall.webp) We are working on making the subsystem easier to access by integrating it into GNOME Software. We can't promise this at this time. But it is in our plans. @@ -168,11 +183,11 @@ You can test the platform by visiting [images.vanillaos.org](https://images.vani Like every Linux distribution that sees a new major update, Vanilla OS Orchid has received a new official wallpaper. [Kramo](https://github.com/kra-mo) has been working hard on this. They made a wallpaper highlighting the new light that Orchid brings to Vanilla OS, representing its growth. -![Orchid Wallpaper, light variant: A 2D image of vanilla orchid over a sky-based wallpaper](/assets/uploads/orchid-light.webp) +![Orchid Wallpaper, light variant: A 2D image of vanilla orchid over a sky-based wallpaper](/uploads/orchid-light.webp) The new wallpaper comes in two colors, light and dark, and it represents a vanilla orchid in a pure environment, which embodies the pure essence of Vanilla OS and the desire to provide a simple and relaxing user experience. -![Orchid Wallpaper, dark variant: A 2D image of vanilla orchid over a plant-based wallpaper](/assets/uploads/orchid-dark.webp) +![Orchid Wallpaper, dark variant: A 2D image of vanilla orchid over a plant-based wallpaper](/uploads/orchid-dark.webp) ## Other news @@ -182,11 +197,11 @@ As announced in the previous article, we have been working on changes to support We are also developing an intelligent graphics driver manager based on [Ikaros](https://github.com/Vanilla-OS/ikaros) that suggests driver installations whenever needed, guiding the user without interrupting their workflow. -![Hardware driver utility asking to install the drivers for an HP Laserjet P1102](/assets/uploads/drivers-utility.webp) +![Hardware driver utility asking to install the drivers for an HP Laserjet P1102](/uploads/drivers-utility.webp) Among the various new features we are working on for the installer is a new Recovery mode with easy access to all recovery tools like the terminal, ABRoot recovery, the browser, and more. Additionally, we are working on a recovery partition that allows graphical restoration of one's Vanilla OS installation if anything gets compromised due to external causes. -![The described Recovery Mode with the following menus: Reinstall Vanilla OS, and Advanced Utilities: Disks Utility, Rescue Shell, Web Browser, and Repair File System.](/assets/uploads/recovery-utility.webp) +![The described Recovery Mode with the following menus: Reinstall Vanilla OS, and Advanced Utilities: Disks Utility, Rescue Shell, Web Browser, and Repair File System.](/uploads/recovery-utility.webp) --- diff --git a/_posts/2023-07-05-vanilla-os-orchid-devlog.md b/articles/2023-07-05-vanilla-os-orchid-devlog.md similarity index 90% rename from _posts/2023-07-05-vanilla-os-orchid-devlog.md rename to articles/2023-07-05-vanilla-os-orchid-devlog.md index b60f77ec..113d8a8d 100644 --- a/_posts/2023-07-05-vanilla-os-orchid-devlog.md +++ b/articles/2023-07-05-vanilla-os-orchid-devlog.md @@ -3,6 +3,13 @@ title: "Vanilla OS Orchid - Devlog 5 Jul" description: "We are excited to announce that we have recently completed crucial development of Apx v2, which is now available for testing by everyone." published: true date: 2023-07-05 +keywords: + - Vanilla OS + - Vanilla OS Orchid + - Orchid + - Apx + - Apx v2 + - Apx GUI layout: article comments: true --- @@ -53,14 +60,15 @@ To simplify your initial experimentation with Apx v2, you can access some starte #### Method 2 (automated) -We have created a script that automates the above steps. Make sure you have `git` and `curl` installed. - +We have created a script that automates the above steps. Make sure you have git and curl installed. You can just make the shell script below into an shell script (sh) file or you can `curl` the offical `shell script` by running `bash <(curl -s https://raw.githubusercontent.com/Vanilla-OS/apx/v2/install.sh)` in the command line. You can find the script file [here](https://github.com/Vanilla-OS/apx/blob/v2/install.sh). ```bash #!/bin/bash -WORK_DIR="YOUR_WORK_DIR" # <- edit this path +echo "Please enter or create a working directory:" +read -r WORK_DIR + +mkdir -p "$WORK_DIR" # Creates the working directory if non existing -mkdir -p "$WORK_DIR" cd "$WORK_DIR" curl -LO https://github.com/89luca89/distrobox/archive/refs/tags/1.5.0.2.tar.gz @@ -94,7 +102,7 @@ If you want to try out or test the various package manager and stack creation co But wait, there's more! Vanilla OS Orchid aims to be as user-friendly and general-purpose as possible, and most of our efforts has directed towards achieving that. That's why we have further simplified developers' lives by introducing Apx GUI — a tool that allows you to manage subsystems, stacks, and package managers through a streamlined and intuitive interface. -![Apx GUI](/assets/uploads/apx-gui.webp) +![Apx GUI](/uploads/apx-gui.webp) Apx GUI is designed and created for developers who require working with multiple subsystems simultaneously without relying on the command line or remembering various flags it supports. @@ -112,7 +120,7 @@ Apx GUI eliminates the complexities of command line interaction, making developm In Vanilla OS 22.10, the graphical management of Apx subsystems was part of the [Vanilla Control Center](https://github.com/Vanilla-OS/vanilla-control-center), which also housed other features like updates. -In Vanilla OS Orchid, everything has moved to GNOME Settings, and since subsystem management has moved to Apx GUI, the Vanilla Control Center will be deprecated, meaning it will not be present from the next release onwards. +In Vanilla OS Orchid, everything has moved to GNOME Settings, and since subsystem management has moved to Apx GUI, the Vanilla Control Center will be deprecated, meaning it will not be present in the next major release of Vanilla OS and onwards. ## Bugs and Feedback diff --git a/assets/css/animations.css b/assets/css/animations.css deleted file mode 100644 index a98dbb87..00000000 --- a/assets/css/animations.css +++ /dev/null @@ -1,26 +0,0 @@ -@keyframes bounce-in { - 0% { - transform: scale(0); - opacity: 0; - } - 25% { - transform: scale(1.2); - } - 50% { - transform: translateY(-50%); - } - 75% { - transform: translateY(0%); - } - 100% { - transform: translateY(0%); - opacity: 1; - } - } - - .bounce { - animation: bounce-in 0.75s ease-out; - transform-origin: bottom; - opacity: 1; - } - \ No newline at end of file diff --git a/assets/css/dark.css b/assets/css/dark.css deleted file mode 100644 index 2700d90a..00000000 --- a/assets/css/dark.css +++ /dev/null @@ -1,201 +0,0 @@ -@media (prefers-color-scheme: dark) { - .on-light { - display: none; - } - .on-dark { - display: initial; - } - - body { - background-color: #242424; - color: #fff; - } - - .hero p { - color: #c3c3c3; - } - - .logo { - background-image: url('/assets/images/vanilla-logo-dark.png'); - } - - a { - color: #fff; - } - - a:not(.button):not(.logo):not(.hero-scroll):hover { - color: #FFF; - border-bottom: 1px solid #FFF; - } - - a:hover { - color: #fbbe4e; - } - - .scroll .topbar { - background-color: #242424; - border-bottom-color: #202020; - } - - html::-webkit-scrollbar-track{ - border:7px solid #242424; - background-color:#242424; - } - - html::-webkit-scrollbar-track:hover{ - background-color:#242424; - } - - html::-webkit-scrollbar-thumb{ - background-color:rgb(83, 83, 83) - } - - html::-webkit-scrollbar-thumb:window-inactive{ - background-color:rgb(66, 66, 66) - } - - html::-webkit-scrollbar-thumb:hover{ - background-color:rgb(112, 112, 112) - } - - .hero-bg-text .hero-image::after { - background: none; - } - - .button-pattern::after { - background: #242424fa; - } - - .button:hover { - outline-color: #83838318; - } - - .hero.hero-secondary, - .table-status span { - background-color: #2e2e2e; - } - - .accordion-item.accordion-open { - background-color: #0000002e; - } - - .logo-carousel .logo-carousel-item img { - filter: saturate(0) invert(1); - } - - .media-carousel-item img { - filter: saturate(0) invert(1); - } - - .footer-secondary { - background-color: #2d2d2d; - } - - .footer-primary { - background-color: #181818; - } - - .logo-carousel-item a:hover { - background-color: #2d2d2d; - } - - .body-tint, .body-tint .hero-heading { - background-color: #2d2d2d; - } - - .body-tint main, .contributor-role { - background-color: #242424; - } - - .card, - .blog-posts article { - background-color: #2d2d2d; - border-bottom-color: #363636; - } - - .blog-posts article:hover { - background-color: #181818; - } - - .card-bg-icon { - color: #262626; - } - - table th { - background-color: #2d2d2d; - } - - table td { - border-bottom-color: #2d2d2d; - } - - table tr:nth-child(even) { - background-color: #2d2d2d; - } - - table tr:hover { - background-color: #181818; - } - - .timeline-grayed .timeline-item-content, .timeline-grayed .timeline-label, - .table-status .table-status-discontinued, - .table-status .table-status-replaced-by { - background-color: #282828; - } - - .timeline-green .timeline-item-content, .timeline-green .timeline-label, - .table-status .table-status-done { - background-color: #386662; - } - - .timeline-red .timeline-item-content, .timeline-red .timeline-label { - background-color: #6c2d2d; - } - - .timeline-dimmed-green .timeline-item-content, .timeline-dimmed-green .timeline-label, - .table-status .table-status-final-tests { - background-color: #485453; - } - - .timeline-yellow .timeline-item-content, .timeline-yellow .timeline-label, - .table-status .table-status-wip { - background-color: #6c5d2d; - } - - .timeline-item-content::after { - background-color: #242424; - } - - .timeline.collapsed::after { - background-image: linear-gradient(0deg,#242424,transparent); - } - - .mark { - color: white; - } - - .mark:after { - background-color: #6a5920; - } - - .article-wrapper blockquote { - background-color: #3c3c3c54; - } - - .float.card { - background-color: #3B0066; - text-align: center; - text-wrap: balance; - } - - .float.card a { - border-bottom-color: #fff; - } - - @media screen and (max-width: 1000px) { - .topbar-navigation { - background-color: #2d2d2d; - border-bottom-color: #363636; - } - } -} diff --git a/assets/css/fonts.css b/assets/css/fonts.css deleted file mode 100644 index 29c12a50..00000000 --- a/assets/css/fonts.css +++ /dev/null @@ -1,17 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@100;200;300;400;500;600;700;800;900&display=swap'); -@import url('https://fonts.googleapis.com/icon?family=Material+Icons+Outlined'); -@import url('https://fonts.googleapis.com/css2?family=Pacifico&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100;200;300;400;500;600;700;800;900&display=swap'); - -.font-demo { - font-size: 32px; -} - -.font-pacifico { - font-family: 'Pacifico', cursive; -} - -.color-demo { - padding: 4px; - border-radius: 10px; -} \ No newline at end of file diff --git a/assets/css/index.css b/assets/css/index.css deleted file mode 100644 index 3cfe04ee..00000000 --- a/assets/css/index.css +++ /dev/null @@ -1,5 +0,0 @@ -@import url('/assets/css/fonts.css'); -@import url('/assets/css/style.css'); -@import url('/assets/css/animations.css'); -@import url('/assets/css/mobile.css'); -@import url('/assets/css/dark.css'); \ No newline at end of file diff --git a/assets/css/mobile.css b/assets/css/mobile.css deleted file mode 100644 index fc82bbcf..00000000 --- a/assets/css/mobile.css +++ /dev/null @@ -1,126 +0,0 @@ -@media screen and (max-width: 1000px) { - body { - padding: 0; - } - - .topbar { - position: initial; - z-index: 9; - } - - .hero-center img, .hero-center video { - max-width: 100% !important; - } - - .topbar-wrapper { - justify-content: space-between; - } - - .hero-feature .hero-wrapper,.hero-feature-inverted .hero-wrapper { - flex-direction: column !important; - } - - .hero-bg-text .hero-image { - display: flex; - } - - .hero-bg-text .hero-image .hero-text { - text-align: center; - } - - .hero-bg-text .hero-image img { - opacity: .5!important; - } - - .topbar-navigation { - align-items: center; - padding: 0; - gap: 20px; - flex-direction: column; - height: 0; - overflow: hidden; - position: relative; - background-color: #fff; - position: fixed; - top: 90px; - left: 10px; - right: 10px; - z-index: 999; - } - - .hero h2 { - font-size: 50px; - line-height: 50px; - } - - .logo-carousel { - flex-direction: column; - } - - .footer-areas { - flex-direction: column; - } - - .container { - max-width: initial; - width: initial; - } - - .hero-feature .hero-text { - padding: 0 20px; - flex: 1; - max-width: initial; - align-items: center; - text-align: center; - } - - .hero p { - font-size: 20px; - } - - .cards { - display: flex; - flex-direction: column; - } - - .toast-content { - border-radius: 10px; - text-align: left; - } - - table { - overflow-y: auto; - display: block; - } - - .topbar-navigation-toggler { - display: block; - } - - .topbar-navigation.show { - height: auto; - padding: 20px; - border-radius: 10px; - box-shadow: 0 0 3px 0 #00000021, 0 0 20px 0 #00000033, 0 0 40px 0 #0000001c; - border-bottom: 1px solid #d1d1d1; - } - - .grid-images { - flex-direction: column; - } - - .media-carousel { - flex-direction: column; - gap: 0; - } - - .media-carousel-item { - padding: 20px; - } - - .blog-posts { - display: flex; - flex-direction: column; - } - -} diff --git a/assets/css/style.css b/assets/css/style.css deleted file mode 100644 index 2ddb0497..00000000 --- a/assets/css/style.css +++ /dev/null @@ -1,1247 +0,0 @@ -/* Scrollbar */ -html::-webkit-scrollbar { - background: 0 0; - height: 20px; - width: 20px -} - -html::-webkit-scrollbar-track { - border-radius: 20px; - box-sizing: content-box; - width: 6px; - border: 7px solid #fff; - background-color: #f0f0f0; -} - -html::-webkit-scrollbar-track:hover { - background-color: rgb(224, 224, 224); -} - -html::-webkit-scrollbar-thumb { - background-clip: content-box; - border: 7px solid transparent; - border-radius: 20px; - box-sizing: content-box; - min-height: 30px; - width: 6px; - background-color: #161616; -} - -html::-webkit-scrollbar-thumb:window-inactive { - background-color: rgb(83, 83, 83) -} - -html::-webkit-scrollbar-thumb:hover { - background-color: #000 -} - -/* Animations */ -.topbar, -a, -.accordion-item, -.accordion-text, -.button, -.button *, -.topbar-navigation { - transition: all .2s ease-in-out -} - -.animate-on-scroll { - opacity: 0; -} - -.animating { - opacity: 1; -} - -/* Common */ -body { - margin: 0; - padding: 95px 0 0 0; - font-family: 'Outfit', sans-serif; - overflow-x: hidden; -} - -a { - text-decoration: none; - color: #282828; - border-bottom: 1px dotted #282828; -} - -a:not(.button):not(.logo):not(.hero-scroll):hover { - color: #000; - border-bottom: 1px solid #000; -} - -img { - max-width: 100% -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-weight: 800; - margin: 0; -} - -main { - padding: 0 0 40px 0; - position: relative; - z-index: 1; -} - -/* Light only */ -@media (prefers-color-scheme: light) { - .on-dark { - display: none; - } -} - -/* Logo */ -.logo { - background-image: url('/assets/images/vanilla-logo.png'); - background-size: cover; - width: 122px; - height: 45px; - display: block; - border: 0; -} - -.logo:hover { - opacity: 0.7; -} - -/* Container */ -.container { - max-width: 1200px; - margin: 0 auto; - padding: 0 20px; -} - -.container.small { - max-width: 800px; -} - -/* Topbar */ -.topbar { - padding: 25px 0; - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 2; -} - -.scroll .topbar { - background: white; - padding: 10px; - border-bottom: 1px solid #d1d1d1; - box-shadow: 0 0 3px 0 #00000021, 0 0 20px 0 #00000033, 0 0 40px 0 #0000001c; - z-index: 9; -} - -.topbar-wrapper { - display: flex; - justify-content: space-between; - align-items: center; -} - -.topbar-navigation { - margin: 0; - padding: 0; - display: flex; - gap: 30px; -} - -.topbar-navigation li { - display: block; -} - -.topbar a { - border-bottom: 0; -} - -.topbar-navigation a { - display: block; - padding: 0; - font-size: 18px; - border-bottom: 1px dotted; - border-color: transparent; -} - -.topbar-navigation a:hover, -.topbar-navigation a.active { - font-weight: 600; - border-color: black; -} - -.topbar-navigation-toggler { - display: none; -} - -/* Hero */ - -.hero { - padding: 70px 0; -} - -.hero-main { - height: calc(100vh - 227px); -} - -.hero-center .hero-wrapper { - display: flex; - align-items: stretch; - justify-content: center; - flex-direction: column; - gap: 10px; - text-align: center; -} - -.hero:not(.hero-bg-text).hero-center img, -.hero:not(.hero-bg-text).hero-center video { - max-height: 50vh; -} - -.hero-center { - display: flex; - align-items: center; - justify-content: center; -} - -.hero-scroll { - display: flex; - align-items: center; - gap: 10px; - flex-direction: column; - border-bottom: 0; - font-size: 24px; - font-weight: 400; - margin: 5vh 0 0 0; -} - -.hero-scroll:hover { - border-bottom: 0; -} - -.hero h2 { - font-size: 76px; - line-height: 89px; -} - -.hero p { - font-weight: 400; - font-size: 25px; - line-height: 38px; - color: #3F3B47; - margin: 0 0 40px 0; - z-index: 2; -} - -.hero-text { - display: flex; - flex-direction: column; - align-items: center; - gap: 10px; - flex-wrap: nowrap; -} - -.hero-feature .hero-wrapper { - display: flex; - align-items: center; - justify-content: flex-start; - gap: 20px; -} - -.hero-feature img { - max-width: initial; -} - -.hero-feature .hero-text { - flex: 1 0 auto; - padding: 0 10px 0 58px; - max-width: 600px; - text-align: left; - align-items: flex-start; -} - -.hero-feature .hero-image img { - max-width: 80vw; -} - -.hero-feature .hero-image { - flex: 0 0 auto; - order: 2; -} - -.hero-image.hero-image-card { - flex: 1; - border-radius: 12px; - overflow: hidden; -} - -.hero-image.hero-image-card img { - max-width: 100%; -} - -.hero-image-video-frame { - position: absolute; - left: 86px; - width: 751px; - top: 10px; - border-radius: 8px; -} - -.hero-image { - position: relative; -} - -.hero-feature-inverted .hero-wrapper { - flex-direction: row-reverse; -} - -.hero-bg-text .hero-image { - position: relative; - z-index: -1; - overflow: hidden; - display: flex; - align-items: center; - justify-content: center; -} - -.hero-bg-text .hero-image .hero-text { - position: absolute; - z-index: 1; -} - -.hero-bg-text .hero-image img { - max-width: initial; -} - -.hero-bg-text .hero-image::after { - content: ""; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - background: radial-gradient(transparent 30%, white 100%); -} - -.hero.hero-secondary { - background-color: #F2F1ED; -} - -/* Button */ -.button { - left: 0px; - top: 0px; - background: #101010; - border-radius: 28px; - display: flex; - color: #fff; - align-items: center; - justify-content: center; - padding: 10px 20px; - font-weight: 500; - gap: 10px; - flex-wrap: wrap; - border: 0; - outline: 4px solid transparent; - outline-offset: 2px; -} - -.button:hover { - color: #fff; - outline-color: #00000023; -} - -.button:focus { - background: #191919; - color: #fff; -} - -.button-inline { - display: inline-flex; -} - -.button-large { - font-size: 20px; - padding: 14px 30px; -} - -.button-dimmed { - background-color: #24292F; -} - -.button-pattern { - height: 245px; - background-size: cover; - background-repeat: no-repeat; - display: flex; - align-items: center; - justify-content: center; - position: relative; - margin: -30px 0; -} - -.button-pattern::after { - content: ""; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - background: radial-gradient(transparent 0, white 100%); -} - -.button-pattern .button { - position: relative; - z-index: 1; -} - -.button-dropdown ul { - display: none; - background: #404040; - border-radius: 20px; - color: #fff; - font-size: 17px; - padding: 10px 40px; - margin: 10px 0 10px; -} - -.button-dropdown { - display: flex; - cursor: pointer; - flex-basis: 0; - justify-content: center; - flex-direction: column; -} - -.button-container { - padding: 0 10px; -} - -.button-dropdown.button-dropdown-open ul { - display: block; - flex: 1; -} - -.button-dropdown.button-dropdown-open { - flex-basis: 100%; - margin: -20px 0 0 0; -} - -.button-dropdown ul li { - display: block; -} - -.button-dropdown.button-dropdown-open ul a { - color: #fff; -} - - -/* Marker */ -.marker { - padding: 2px 6px; - border-radius: 6px; -} - -.marker.marker-green { - background-color: #dfffbb; - color: green; - box-shadow: 0 2px 0 #14bd14; -} - -.marker.marker-red { - background-color: #ffbbbb; - color: maroon; - box-shadow: 0 2px 0 #bd1414; -} - -/* Accordion */ -.accordion { - padding: 40px 0; - display: flex; - flex-direction: column; - flex-wrap: nowrap; - align-items: center; - align-content: center; -} - -.accordion-item { - width: 100%; - padding: 20px; - cursor: pointer; - display: flex; - flex-direction: column; - flex: 1; - flex-wrap: nowrap; -} - -.accordion-text { - position: relative; - overflow: hidden; - height: 0; -} - -.accordion-title h3 { - font-size: 23px; - font-weight: 700; -} - -.accordion-item.accordion-open .accordion-text { - height: auto; - padding: 10px 0 0; -} - -.accordion-item.accordion-open { - background-color: #0000000f; - border-radius: 10px; -} - -.accordion-open .accordion-button { - display: none; -} - -/* Logo Carousel */ -.logo-carousel { - padding: 40px 0; - display: flex; - align-items: center; - justify-content: center; - gap: 20px; -} - -.logo-carousel .logo-carousel-item { - display: flex; - align-items: center; - justify-content: center; -} - -.logo-carousel .logo-carousel-item img { - width: 120px; -} - -.logo-carousel-item a { - border-bottom: 0; - height: 57px; - display: flex; - align-items: center; - justify-content: center; - padding: 5px 10px; - border-radius: 10px; -} - -.logo-carousel-item a:hover { - background-color: #f1f0ec; -} - -/* Media carousel */ -.media-carousel { - display: flex; - justify-content: center; - gap: 20px; - flex-wrap: wrap; - flex-direction: row; - max-width: 1200px; -} - -.media-carousel-item img { - height: 30px; - filter: saturate(0); -} - -.media-carousel-item a { - border-bottom: initial; - display: flex; - gap: 25px; - flex-direction: column; - align-items: center; -} - -.media-carousel-item p { - font-size: 19px; -} - -.media-carousel-item p::before { - content: "“"; -} - -.media-carousel-item p::after { - content: "”"; -} - -.media-carousel-new-line { - flex-basis: 100%; - height: 0; -} - -.media-carousel-item { - flex: 1; - max-width: 450px; -} - -/* Footer */ -.footer { - position: relative; - z-index: 0; -} - -.footer-secondary { - background-color: #f2f1ed; -} - -.footer-primary { - background-color: #e4e3df; -} - -.footer-areas { - display: flex; - justify-content: space-between; - align-items: flex-start; - padding: 20px; - gap: 10px; -} - -.footer-area { - padding: 10px; -} - -.footer-area ul { - margin: 20px 0 0 0; - display: flex; - padding: 0; - flex-direction: column; - gap: 10px; -} - -.footer-area ul li { - display: block; -} - -.footer-section:last-of-type { - padding-bottom: 120px; -} - -.footer-section:not(:first-of-type) { - padding-top: 60px; -} - -/* Body Tint */ -.body-tint main { - background-color: #fff; -} - -.body-tint .pattern { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - opacity: .3; - pointer-events: none; -} - - -.body-tint, -.body-tint .hero-heading { - background-color: #F2F1ED; -} - -.body-tint .hero-heading { - margin-bottom: 40px; - position: relative; -} - -.body-tint .hero-heading .pattern { - background-position-y: -95px; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - opacity: .3; -} - -.body-tint .hero-heading .pattern+.hero-wrapper { - position: relative; - z-index: 1; -} - -/* Card */ -.cards { - display: flex; - gap: 30px; - margin: 0 0 30px 0; - flex: 1; -} - -.card { - display: flex; - flex-direction: column; - align-items: center; - flex: 1; - background: white; - padding: 30px; - border-radius: 10px; - box-shadow: 0 0 3px 0 #00000021, 0 0 20px 0 #00000033, 0 0 40px 0 #0000001c; - border-bottom: 1px solid #d1d1d1; - position: relative; - overflow: hidden; -} - -.card h3 { - font-size: 30px; - margin: 0 0 30px 0; -} - -.card .button { - z-index: 1; -} - -.card-bg-icon { - position: absolute; - bottom: -50px; - left: -50px; - color: #ebebeb; -} - -.card-bg-icon span { - font-size: 10em; -} - -/* Blog */ -.blog-posts { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); - gap: 10px; -} - -.blog-posts article { - padding: 20px; - background-color: #f2f1ed; - border-radius: 10px; - display: flex; - flex-direction: column; -} - -.blog-posts article:hover { - background-color: #e4e3df; -} - -.blog-posts article h2 { - font-size: 32px; -} - -.blog-posts article p { - font-size: 18px; - line-height: 28px; -} - -.blog-posts article>div:first-of-type { - flex: 1; -} - -.blog-posts article>div:last-of-type { - display: flex; - justify-content: flex-end; -} - -/* Article */ -.article-button-read { - float: right; -} - -.article-wrapper { - font-size: 22px; - line-height: 36px; -} - -.article-wrapper img { - margin: 0 auto; - display: block; -} - -.grid-images { - display: flex; - align-items: flex-start; - justify-content: center; -} - -.article-wrapper h1::after, -.article-wrapper h2::after, -.article-wrapper h3::after, -.article-wrapper h4::after, -.article-wrapper h5::after, -.article-wrapper h6::after { - content: ""; - background: #ffbf48; - display: block; - height: 4px; - width: 40px; - border-radius: 10px; - margin: 10px 0; -} - -.article-wrapper td img { - display: initial; -} - -.article-wrapper h1 { - font-size: 48px; -} - -.article-wrapper h2 { - font-size: 38px; -} - -.article-wrapper h3 { - font-size: 32px; -} - -.article-wrapper h4 { - font-size: 28px; -} - -.article-wrapper h5 { - font-size: 23px; -} - -.article-wrapper h6 { - font-size: 20px; -} - -.article-wrapper blockquote { - padding: 0 20px; - margin: 20px 0 20px 10px; - background-color: #fefdfb; - font-style: italic; - position: relative; -} - -.article-wrapper blockquote p::before { - content: "“"; - font-size: 60px; - color: #ffbf48; - margin-right: 10px; - position: relative; - top: 10px; -} - -.article-wrapper blockquote p::after { - content: "”"; - font-size: 60px; - color: #ffbf48; - margin-left: 10px; - line-height: 0; - position: relative; - top: 40px; -} - -.article-wrapper blockquote::before { - content: ""; - position: absolute; - top: 0; - left: -10px; - bottom: 0; - width: 4px; - background-color: #ffbf48; - border-radius: 10px; -} - -.article-wrapper hr { - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 2px dashed #c3c3c3; -} - -/* Table */ -table { - width: 100%; - border-collapse: collapse; - border-spacing: 0; - margin: 20px 0; -} - -table th { - background-color: #f2f1ed; - padding: 10px; - text-align: left; -} - -table td { - padding: 10px; - border-bottom: 1px solid #f2f1ed; -} - -table tr:nth-child(even) { - background-color: #f2f1ed; -} - -table tr:hover { - background-color: #e4e3df; -} - -.table-status { - padding: 3px 0; - display: flex; - gap: 10px; -} - -.table-status span { - background: #f2f1ed; - padding: 0 17px; - border-radius: 20px; - font-size: 16px; -} - -/* Code */ -code { - background-color: #c1bce366; - border-radius: 10px; - padding: 0 10px; - color: #292736; -} - -pre.highlight { - border-radius: 10px; - overflow: hidden; - box-shadow: 0 0 3px 0 #00000021, 0 0 20px 0 #00000033, 0 0 40px 0 #0000001c; -} - -/* Timeline */ -.timeline { - position: relative; - padding: 20px 0 20px 20px; -} - -.timeline::before { - content: ""; - position: absolute; - top: 0; - left: 10px; - width: 4px; - height: 100%; - background-color: #000000; - border-radius: 10px; -} - -.timeline .timeline-item { - position: relative; - margin: 0 0 20px 10px; -} - -.timeline-item-content { - padding: 10px 20px; - background-color: #f2f1ed; - position: relative; - border-radius: 10px; - margin: 10px 0 0 0; -} - -.timeline-item-content::after { - content: ""; - position: absolute; - top: -39px; - left: -29px; - width: 14px; - height: 14px; - background: #fff; - border-radius: 100%; - border: 4px solid #000000; -} - -.timeline-item-content h4 { - font-size: 23px; -} - -.timeline-item-content p { - font-size: 18px; - line-height: 28px; -} - -.timeline-label { - font-size: 16px; - line-height: 19px; - background: #f2f1ed; - padding: 5px 10px; - border-radius: 10px; - justify-content: center; - align-items: center; - text-align: center; - font-weight: 600; -} - -.timeline-grayed .timeline-item-content, -.timeline-grayed .timeline-label, -.table-status .table-status-discontinued, -.table-status .table-status-replaced-by { - background-color: #f9f9f9; - color: #959595; -} - -.timeline-green h4::after { - background-color: #009688; -} - -.timeline-green .timeline-item-content, -.timeline-green .timeline-label, -.table-status .table-status-done { - background-color: #b0e7e2; -} - -.timeline-green .timeline-item-content::after { - border-color: #009e88; -} - -.timeline-red h4::after { - background-color: #f44336; -} - -.timeline-red .timeline-item-content, -.timeline-red .timeline-label { - background-color: #f8b9b7; -} - -.timeline-red .timeline-item-content::after { - border-color: #f44336; -} - -.timeline-dimmed-green h4::after { - background-color: #98cfca; -} - -.timeline-dimmed-green .timeline-item-content, -.timeline-dimmed-green .timeline-label, -.table-status .table-status-final-tests { - background-color: #dff5f3; -} - -.timeline-dimmed-green .timeline-item-content::after { - border-color: #75b1a8; -} - -.timeline-yellow h4::after { - background-color: #ffbf48; -} - -.timeline-yellow .timeline-item-content, -.timeline-yellow .timeline-label, -.table-status .table-status-wip { - background-color: #f9e1b9; -} - -.timeline-yellow .timeline-item-content::after { - border-color: #ffbf48; -} - -.timeline.collapsed { - overflow: hidden; - height: 230px; -} - -.timeline-uncollapse { - position: absolute; - bottom: 10px; - left: 0; - right: 0; - top: initial; - margin: 0 auto; - max-width: 120px; - z-index: 9; - font-size: 16px; - font-weight: 600; -} - -.timeline.collapsed::after { - content: ""; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - display: block; - background-image: linear-gradient(0deg, #fff, transparent); -} - -/* Toast */ -.toast { - position: fixed; - bottom: 0; - left: 0; - right: 0; - padding: 20px; - z-index: 999; - text-align: center; - display: flex; - align-items: center; - justify-content: center; -} - -.toast-content { - background-color: #000000a8; - border-radius: 60px; - color: #fff; - padding: 15px 25px; - display: flex; - gap: 10px; - justify-content: center; - align-items: center; - font-size: 18px; - backdrop-filter: blur(10px); -} - -.toast-content p { - margin: 0; -} - -.toast-close { - border: 0; - padding: 0; - background-color: transparent; - color: #fff; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; -} - -/* Video */ -.video { - height: 0; - overflow: hidden; - padding-bottom: 56.25%; - padding-top: 30px; - position: relative; -} - -.video iframe, -.video object, -.video embed { - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} - -/* Markers */ -.mark { - position: relative; -} - -.mark::after { - content: ""; - background: #ffefbe; - position: absolute; - bottom: 6px; - left: 0; - right: 0; - top: 5px; - z-index: -1; -} - -/* Contributors */ -.contributors { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - gap: 20px; - align-items: stretch; -} - -.contributor-item { - flex: 0 1 311px; - text-align: center; - display: flex; - flex-direction: column; - gap: 20px; -} - -.contributor-pic { - display: block; - width: 140px; - height: 140px; - background-size: cover; - border-radius: 100%; -} - -.contributor-info { - display: flex; - flex-direction: column; -} - -.contributor-item.card.main-company::after { - content: ""; - display: block; - position: absolute; - top: -60px; - right: -60px; - background-color: #181819; - width: 120px; - height: 120px; - transform: rotate(45deg); -} - -.contributor-fab { - position: absolute; - top: 11px; - right: 8px; - width: 32px; - z-index: 2; -} - -.contributor-roles { - display: flex; - gap: 5px; - flex-direction: column; - margin: 20px 0; -} - -.contributor-role { - background: #ededed; - padding: 0 15px; - font-size: 17px; - border-radius: 6px; - font-weight: 500; -} - -.contributors.contributors--as-list img { - border-radius: 100%; - width: 100px; - height: 100px; - background-color: #efefef; -} - -.contributors.contributors--as-list img+span { - display: block; - font-weight: 600; - font-size: 18px; -} - -.contributors.contributors--as-list a { - border-bottom-color: transparent; -} - -/* Float */ -.float.card { - padding: 3px; - font-size: 19px; - background-color: #fae5ab; - max-width: 800px; - position: fixed; - bottom: 0; - left: 0; - right: 0; - margin: 0 auto 30px; - z-index: 9; -} - -.float.card a { - font-weight: 600; -} \ No newline at end of file diff --git a/assets/images/fabricators-logo.png b/assets/images/fabricators-logo.png deleted file mode 100644 index e16582c5..00000000 Binary files a/assets/images/fabricators-logo.png and /dev/null differ diff --git a/assets/images/home-desk-apx.svg b/assets/images/home-desk-apx.svg deleted file mode 100644 index e7c6a5f5..00000000 --- a/assets/images/home-desk-apx.svg +++ /dev/null @@ -1,770 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/home-gaming.png b/assets/images/home-gaming.png deleted file mode 100644 index f1d038f1..00000000 Binary files a/assets/images/home-gaming.png and /dev/null differ diff --git a/assets/images/home-open-source-pattern.svg b/assets/images/home-open-source-pattern.svg deleted file mode 100644 index 8a2dd280..00000000 --- a/assets/images/home-open-source-pattern.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/images/home-pkgs.png b/assets/images/home-pkgs.png deleted file mode 100644 index 780b7c45..00000000 Binary files a/assets/images/home-pkgs.png and /dev/null differ diff --git a/assets/images/home-rnote.png b/assets/images/home-rnote.png deleted file mode 100644 index 73cfe909..00000000 Binary files a/assets/images/home-rnote.png and /dev/null differ diff --git a/assets/images/logos/abroot.svg b/assets/images/logos/abroot.svg deleted file mode 100644 index 7b512f7e..00000000 --- a/assets/images/logos/abroot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/images/logos/apx.png b/assets/images/logos/apx.png deleted file mode 100644 index 4284b1c0..00000000 Binary files a/assets/images/logos/apx.png and /dev/null differ diff --git a/assets/images/logos/distrobox.svg b/assets/images/logos/distrobox.svg deleted file mode 100644 index 31c8ba78..00000000 --- a/assets/images/logos/distrobox.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/logos/gnome.svg b/assets/images/logos/gnome.svg deleted file mode 100644 index 9b1c9d58..00000000 --- a/assets/images/logos/gnome.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - TM - - - - \ No newline at end of file diff --git a/assets/images/logos/ubuntu.svg b/assets/images/logos/ubuntu.svg deleted file mode 100644 index d34d6319..00000000 --- a/assets/images/logos/ubuntu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/images/pattern-download.png b/assets/images/pattern-download.png deleted file mode 100644 index dd794788..00000000 Binary files a/assets/images/pattern-download.png and /dev/null differ diff --git a/assets/images/pattern-get-involved.png b/assets/images/pattern-get-involved.png deleted file mode 100644 index ae3f384e..00000000 Binary files a/assets/images/pattern-get-involved.png and /dev/null differ diff --git a/assets/images/pattern-logos.png b/assets/images/pattern-logos.png deleted file mode 100644 index 55c4766a..00000000 Binary files a/assets/images/pattern-logos.png and /dev/null differ diff --git a/assets/images/vanilla-logo-dark.png b/assets/images/vanilla-logo-dark.png deleted file mode 100644 index 6da79f62..00000000 Binary files a/assets/images/vanilla-logo-dark.png and /dev/null differ diff --git a/assets/images/vanilla-logo.png b/assets/images/vanilla-logo.png deleted file mode 100644 index 877c56d6..00000000 Binary files a/assets/images/vanilla-logo.png and /dev/null differ diff --git a/assets/js/accordion.js b/assets/js/accordion.js deleted file mode 100644 index 2fb98e0d..00000000 --- a/assets/js/accordion.js +++ /dev/null @@ -1,15 +0,0 @@ -function loadAccordion() { - const accordionItems = document.querySelectorAll('.accordion-item'); - - accordionItems.forEach(accordionItem => { - accordionItem.addEventListener('click', event => { - accordionItems.forEach(accordionItem => { - accordionItem.classList.remove('accordion-open'); - }); - accordionItem.classList.add('accordion-open'); - }); - } - ); -} - -window.addEventListener('load', loadAccordion); diff --git a/assets/js/animateScroll.js b/assets/js/animateScroll.js deleted file mode 100644 index eeae8a7f..00000000 --- a/assets/js/animateScroll.js +++ /dev/null @@ -1,35 +0,0 @@ -var images = document.querySelectorAll('.animate-on-scroll'); - -function animate() { - images.forEach(function(image) { - var anim = image.getAttribute('data-animation'); - if (isInViewport(image)) { - image.classList.add('animating'); - image.classList.add('animate__animated'); - // image.classList.add('animate__faster'); - image.classList.add(`animate__${anim}`); - } - }); -} - -function isInViewport(element) { - var rect = element.getBoundingClientRect(); - return ( - rect.top >= 0 && - rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) + 1100 - ); -} - -window.addEventListener('load', animate); -window.addEventListener('scroll', animate); - -// smooth scroll -document.querySelectorAll('a[href^="#"]').forEach(anchor => { - anchor.addEventListener('click', function (e) { - e.preventDefault(); - - document.querySelector(this.getAttribute('href')).scrollIntoView({ - behavior: 'smooth' - }); - }); -}); \ No newline at end of file diff --git a/assets/js/button.js b/assets/js/button.js deleted file mode 100644 index dd43dcd0..00000000 --- a/assets/js/button.js +++ /dev/null @@ -1,24 +0,0 @@ -function loadButton() { - const buttons = document.querySelectorAll('.button-dropdown'); - buttons.forEach(button => { - button.addEventListener('click', event => { - buttons.forEach(button => { - button.classList.remove('button-dropdown-open'); - }); - button.classList.add('button-dropdown-open'); - }); - }); -} - -window.addEventListener('click', event => { - const buttons = document.querySelectorAll('.button-dropdown'); - buttons.forEach(button => { - if (!button.contains(event.target)) { - button.classList.remove('button-dropdown-open'); - } - }); -}); - - -window.addEventListener('load', loadButton); - diff --git a/assets/js/contributors.js b/assets/js/contributors.js deleted file mode 100644 index 1f12677a..00000000 --- a/assets/js/contributors.js +++ /dev/null @@ -1,22 +0,0 @@ -function displayContributors(contributors) { - const contributorsContainer = document.querySelector("#contributors"); - - contributors.forEach(contributor => { - const contributorTemplate = ` -
-
-
-

${contributor.name}

-
- ${contributor.roles.map(role => `${role}`).join('')} -
-
- - - - ${contributor.main_company ? 'Works at fabricators.ltd' : ''} -
- `; - contributorsContainer.insertAdjacentHTML("beforeend", contributorTemplate); - }); -} diff --git a/assets/js/menu.js b/assets/js/menu.js deleted file mode 100644 index 24e4239e..00000000 --- a/assets/js/menu.js +++ /dev/null @@ -1,26 +0,0 @@ -const menuElement = document.querySelector(".topbar-navigation"); -const menuTogglerElement = document.querySelector(".topbar-navigation-toggler"); - -function toggleMenu() { - menuElement.classList.toggle("show"); -} - -function closeMenu() { - menuElement.classList.remove("show"); -} - -menuTogglerElement.addEventListener("click", toggleMenu); - -document.addEventListener("click", (event) => { - const isMenuTogglerClicked = menuTogglerElement.contains(event.target); - if (!isMenuTogglerClicked) { - closeMenu(); - } -}); - -document.addEventListener("keyup", (event) => { - const isEscKeyPressed = event.key === "Esc" || event.key === "Escape"; - if (isEscKeyPressed) { - closeMenu(); - } -}); \ No newline at end of file diff --git a/assets/js/releases.js b/assets/js/releases.js deleted file mode 100644 index e54139e1..00000000 --- a/assets/js/releases.js +++ /dev/null @@ -1,28 +0,0 @@ -function getBuilds() { - fetch('https://api.github.com/repos/vanilla-os/os/actions/artifacts') - .then(response => response.json()) - .then(data => { - let builds = document.getElementById('builds_table'); - let html = ''; - data.artifacts.forEach(artifact => { - html += ` - ${artifact.name} - ${new Date(artifact.created_at).toDateString()} - ${formatBytes(artifact.size_in_bytes)} - Download - `; - }); - builds.innerHTML = html; - }); -} - -function formatBytes(bytes, decimals = 2) { - if (bytes === 0) return '0 Bytes'; - - const dm = decimals < 0 ? 0 : decimals; - const i = Math.floor(Math.log(bytes) / Math.log(1024)); - - return parseFloat((bytes / Math.pow(1024, i)).toFixed(dm)) + ' ' + ['Bytes', 'KB', 'MB', 'GB'][i]; -} - -getBuilds(); diff --git a/assets/js/tableStatus.js b/assets/js/tableStatus.js deleted file mode 100644 index 91106d4b..00000000 --- a/assets/js/tableStatus.js +++ /dev/null @@ -1,53 +0,0 @@ -function countStatuses(table) { - var statuses = { - "Done": 0, - "WIP": 0, - "Final tests": 0, - "Discontinued": 0, - "Planned for the future": 0, - "Replaced by": 0 - }; - var rows = table.getElementsByTagName("tr"); - for (var i = 0; i < rows.length; i++) { - var cells = rows[i].getElementsByTagName("td"); - if (cells.length == 2) { - var status = cells[1].innerText; - if (status in statuses) { - statuses[status]++; - } else if (status.startsWith("Replaced by")) { - statuses["Replaced by"]++; - } - } - } - return statuses; -} - -function displayStatuses(table, statuses) { - var div = document.createElement("div"); - div.className = "table-status"; - for (var status in statuses) { - if (statuses[status] > 0) { - var span = document.createElement("span"); - var statusClass = status.toLowerCase().replace(/ /g, "-"); - span.className = "table-status-" + statusClass; - span.innerHTML = "" + status + ": " + statuses[status]; - div.appendChild(span); - } - } - var h3 = table.previousElementSibling; - if (h3.tagName == "H3") { - h3.parentNode.insertBefore(div, h3.nextSibling); - } else { - table.parentNode.insertBefore(div, table); - } -} - -function countAndDisplayStatuses() { - var tables = document.getElementsByTagName("table"); - for (var i = 0; i < tables.length; i++) { - var statuses = countStatuses(tables[i]); - displayStatuses(tables[i], statuses); - } -} - -window.onload = countAndDisplayStatuses; diff --git a/assets/js/timeline.js b/assets/js/timeline.js deleted file mode 100644 index 6b206c82..00000000 --- a/assets/js/timeline.js +++ /dev/null @@ -1,46 +0,0 @@ -function generateTimeline(data, dom) { - const timelineContainer = document.querySelector(dom); - - if (timelineContainer.classList.contains("collapsed")) { - const uncollapseButton = document.createElement("button"); - uncollapseButton.classList.add("button"); - uncollapseButton.classList.add("timeline-uncollapse"); - uncollapseButton.textContent = "Show all"; - uncollapseButton.addEventListener("click", () => { - timelineContainer.classList.toggle("collapsed"); - uncollapseButton.textContent = timelineContainer.classList.contains( - "collapsed" - ) - ? "Show all" - : "Hide"; - }); - timelineContainer.appendChild(uncollapseButton); - } - - data.events.forEach((event) => { - const timelineItem = document.createElement("div"); - timelineItem.classList.add("timeline-item"); - timelineItem.classList.add(event.className || ""); - - const timelineLabel = document.createElement("span"); - timelineLabel.classList.add("timeline-label"); - timelineLabel.textContent = event.date || ""; - - const timelineContent = document.createElement("div"); - timelineContent.classList.add("timeline-item-content"); - - const timelineTitle = document.createElement("h4"); - timelineTitle.textContent = event.title || ""; - - const timelineDescription = document.createElement("p"); - timelineDescription.innerHTML = event.description || ""; - - timelineContent.appendChild(timelineTitle); - timelineContent.appendChild(timelineDescription); - - timelineItem.appendChild(timelineLabel); - timelineItem.appendChild(timelineContent); - - timelineContainer.appendChild(timelineItem); - }); -} diff --git a/assets/js/toast.js b/assets/js/toast.js deleted file mode 100644 index 94c0c87a..00000000 --- a/assets/js/toast.js +++ /dev/null @@ -1,17 +0,0 @@ -class Toast { - static new(message) { - let toast = document.createElement("div"); - toast.classList.add("toast"); - toast.innerHTML = ` -
-

- -
- `; - toast.querySelector(".toast-message").innerHTML = message; - toast.querySelector(".toast-close").addEventListener("click", () => { - toast.remove(); - }); - document.body.appendChild(toast); - } -} diff --git a/assets/js/topBar.js b/assets/js/topBar.js deleted file mode 100644 index d9099594..00000000 --- a/assets/js/topBar.js +++ /dev/null @@ -1,9 +0,0 @@ -var body = document.querySelector('body'); - -window.onscroll = function() { - if (window.pageYOffset > 95) { - body.classList.add('scroll'); - } else { - body.classList.remove('scroll'); - } -} \ No newline at end of file diff --git a/assets/vanilla-contributors-mono.png b/assets/vanilla-contributors-mono.png deleted file mode 100644 index e4e5a1dc..00000000 Binary files a/assets/vanilla-contributors-mono.png and /dev/null differ diff --git a/assets/vanilla-contributors.png b/assets/vanilla-contributors.png deleted file mode 100644 index dd925a12..00000000 Binary files a/assets/vanilla-contributors.png and /dev/null differ diff --git a/blog/index.md b/blog/index.md deleted file mode 100644 index 230ba47e..00000000 --- a/blog/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -tint: true -title: Blog -description: Check out what's happening in Vanilla OS world. ---- - -
-
-
-

Blog.

-

Check out what's happening in Vanilla OS world.

-
-
-
- -{% assign posts = site.posts | sort: "date" | sort: "updated" | reverse %} - -
-
- {% for post in posts %} - {% include posts-listing.html post=post %} - {% endfor %} -
-
diff --git a/code-of-conduct.md b/code-of-conduct.md deleted file mode 100644 index b798f4c0..00000000 --- a/code-of-conduct.md +++ /dev/null @@ -1,137 +0,0 @@ ---- -layout: page -title: Vanilla OS Code of Conduct -description: The Vanilla OS Code of Conduct. ---- - -Vanilla OS follows the GNOME Code of Conduct. - -> Vanilla OS is not affiliated with the GNOME Foundation or the GNOME Project. - -
- -# GNOME Code of Conduct - -Thank you for being a part of the GNOME project. We value your participation and want everyone to have an enjoyable and fulfilling experience. Accordingly, all participants are expected to follow this Code of Conduct, and to show respect, understanding, and consideration to one another. Thank you for helping make this a welcoming, friendly community for everyone. - -## Scope - -This Code of Conduct applies to all online GNOME community spaces, including, but not limited to: - - * Issue tracking systems - bugzilla.gnome.org - * Documentation and tutorials - developer.gnome.org - * Code repositories - git.gnome.org and gitlab.gnome.org - * Mailing lists - mail.gnome.org - * Wikis - wiki.gnome.org - * Chat and forums - irc.gnome.org, discourse.gnome.org, GNOME Telegram channels, and GNOME groups and channels on Matrix.org (including bridges to GNOME IRC channels) - * Community spaces hosted on gnome.org infrastructure - * Any other channels or groups which exist in order to discuss GNOME project activities - -Communication channels and private conversations that are normally out of scope may be considered in scope if a GNOME participant is being stalked or harassed. Social media conversations may be considered in-scope if the incident occurred under a GNOME event hashtag, or when an official GNOME account on social media is tagged, or within any other discussion about GNOME. The GNOME Foundation reserves the right to take actions against behaviors that happen in any context, if they are deemed to be relevant to the GNOME project and its participants. - -All participants in GNOME online community spaces are subject to the Code of Conduct. This includes GNOME Foundation board members, corporate sponsors, and paid employees. This also includes volunteers, maintainers, leaders, contributors, contribution reviewers, issue reporters, GNOME users, and anyone participating in discussion in GNOME online spaces. - -## Reporting an Incident - -If you believe that someone is violating the Code of Conduct, or have -any other concerns, please [contact the Code of Conduct committee](https://wiki.gnome.org/Foundation/CodeOfConduct/ReporterGuide). - -## Our Standards - -The GNOME online community is dedicated to providing a positive experience for everyone, regardless of: - - * age - * body size - * caste - * citizenship - * disability - * education - * ethnicity - * familial status - * gender expression - * gender identity - * genetic information - * immigration status - * level of experience - * nationality - * personal appearance - * pregnancy - * race - * religion - * sex characteristics - * sexual orientation - * sexual identity - * socio-economic status - * tribe - * veteran status - -### Community Guidelines - -Examples of behavior that contributes to creating a positive environment include: - - * **Be friendly.** Use welcoming and inclusive language. - * **Be empathetic.** Be respectful of differing viewpoints and experiences. - * **Be respectful.** When we disagree, we do so in a polite and constructive manner. - * **Be considerate.** Remember that decisions are often a difficult choice between competing priorities. Focus on what is best for the community. Keep discussions around technology choices constructive and respectful. - * **Be patient and generous.** If someone asks for help it is because they need it. When documentation is available that answers the question, politely point them to it. If the question is off-topic, suggest a more appropriate online space to seek help. - * **Try to be concise.** Read the discussion before commenting in order to not repeat a point that has been made. - -### Inappropriate Behavior - -Community members asked to stop any inappropriate behavior are expected to comply immediately. - -We want all participants in the GNOME community have the best possible experience they can. In order to be clear what that means, we've provided a list of examples of behaviors that are inappropriate for GNOME community spaces: - - * **Deliberate intimidation, stalking, or following.** - * **Sustained disruption of online discussion, talks, or other events.** Sustained disruption of events, online discussions, or meetings, including talks and presentations, will not be tolerated. This includes 'Talking over' or 'heckling' event speakers or influencing crowd actions that cause hostility in event sessions. Sustained disruption also includes drinking alcohol to excess or using recreational drugs to excess, or pushing others to do so. - * **Harassment of people who don't drink alcohol.** We do not tolerate derogatory comments about those who abstain from alcohol or other substances. We do not tolerate pushing people to drink, talking about their abstinence or preferences to others, or pressuring them to drink - physically or through jeering. - * **Sexist, racist, homophobic, transphobic, ableist language or otherwise exclusionary language.** This includes deliberately referring to someone by a gender that they do not identify with, and/or questioning the legitimacy of an individual's gender identity. If you're unsure if a word is derogatory, don't use it. This also includes repeated subtle and/or indirect discrimination. - * **Unwelcome sexual attention or behavior that contributes to a sexualized environment.** This includes sexualized comments, jokes or imagery in interactions, communications or presentation materials, as well as inappropriate touching, groping, or sexual advances. Sponsors should not use sexualized images, activities, or other material. Meetup organizing staff and other volunteer organizers should not use sexualized clothing/uniforms/costumes, or otherwise create a sexualized environment. - * **Unwelcome physical contact.** This includes touching a person without permission, including sensitive areas such as their hair, pregnant stomach, mobility device (wheelchair, scooter, etc) or tattoos. This also includes physically blocking or intimidating another person. Physical contact or simulated physical contact (such as emojis like "kiss") without affirmative consent is not acceptable. This includes sharing or distribution of sexualized images or text. - * **Violence or threats of violence.** Violence and threats of violence are not acceptable - online or offline. This includes incitement of violence toward any individual, including encouraging a person to commit self-harm. This also includes posting or threatening to post other people's personally identifying information ("doxxing") online. - * **Influencing or encouraging inappropriate behavior.** If you influence or encourage another person to violate the Code of Conduct, you may face the same consequences as if you had violated the Code of Conduct. - * **Possession of an offensive weapon at a GNOME event.** This includes anything deemed to be a weapon by the event organizers. - -The GNOME community prioritizes marginalized people's safety over privileged people's comfort. The committee will not act on complaints regarding: - - * "Reverse"-isms, including "reverse racism," "reverse sexism," and "cisphobia" - * Reasonable communication of boundaries, such as "leave me alone," "go away," or "I'm not discussing this with you." - * Criticizing racist, sexist, cissexist, or otherwise oppressive behavior or assumptions - * Communicating boundaries or criticizing oppressive behavior in a "tone" you don't find congenial - -The examples listed above are not against the Code of Conduct. If you have questions about the above statements, please [read this document](https://github.com/sagesharp/code-of-conduct-template/blob/master/code-of-conduct/example-reversisms.md#supporting-diversity). - -If a participant engages in behavior that violates this code of conduct, the GNOME Code of Conduct committee may take any action they deem appropriate. Examples of consequences are outlined in the [Committee Procedures Guide](https://wiki.gnome.org/Foundation/CodeOfConduct/CommitteeProcedures). - -## Procedure for Handling Incidents - - * [Reporter Guide](https://wiki.gnome.org/Foundation/CodeOfConduct/ReporterGuide) - - * [Moderator Procedures](https://wiki.gnome.org/Foundation/CodeOfConduct/ModeratorProcedures) - - * [Committee Procedures Guide](https://wiki.gnome.org/Foundation/CodeOfConduct/CommitteeProcedures) - -## License - -The GNOME Online Code of Conduct is licensed under a [Creative Commons Attribution Share-Alike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/) - -![Creative Commons License](http://i.creativecommons.org/l/by-sa/3.0/88x31.png) - -## Attribution - -The GNOME Online Code of Conduct was forked from the example policy from the [Geek Feminism wiki, created by the Ada Initiative and other volunteers](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy), which is under a Creative Commons Zero license. - -Additional language was incorporated and modified from the following Codes of Conduct: - - * [Citizen Code of Conduct](http://citizencodeofconduct.org/) is licensed [Creative Commons Attribution Share-Alike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/). - * [Code of Conduct template](https://github.com/sagesharp/code-of-conduct-template/) is licensed [Creative Commons Attribution Share-Alike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/) by [Otter Tech](https://otter.technology/code-of-conduct-training) - * [Contributor Covenant version 1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct) (licensed [CC BY 4.0](https://github.com/EthicalSource/contributor_covenant/blob/release/LICENSE.md)) - * [Data Carpentry Code of Conduct](https://docs.carpentries.org/topic_folders/policies/index_coc.html) is licensed [Creative Commons Attribution 4.0 License](https://creativecommons.org/licenses/by/4.0/) - * [Django Project Code of Conduct](https://www.djangoproject.com/conduct/) is licensed under a [Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/) - * [Fedora Code of Conduct](http://fedoraproject.org/code-of-conduct) - * [Geek Feminism Anti-harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy) which is under a [Creative Commons Zero license](https://creativecommons.org/publicdomain/zero/1.0/) - * [Previous GNOME Foundation Code of Conduct](https://wiki.gnome.org/action/recall/Foundation/CodeOfConduct/Old) - * [LGBTQ in Technology Slack Code of Conduct](https://lgbtq.technology/coc.html) licensed [Creative Commons Zero](https://creativecommons.org/publicdomain/zero/1.0/) - * [Mozilla Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/) is licensed [Creative Commons Attribution-ShareAlike 3.0 Unported License](https://creativecommons.org/licenses/by-sa/3.0/). - * [Python Mentors Code of Conduct](http://pythonmentors.com/) - * [Speak Up! Community Code of Conduct](http://web.archive.org/web/20141109123859/http://speakup.io/coc.html), licensed under a [Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/) diff --git a/contributors-list.md b/contributors-list.md deleted file mode 100644 index cb18f84d..00000000 --- a/contributors-list.md +++ /dev/null @@ -1,407 +0,0 @@ ---- -layout: page -title: Contributors -description: A list of contributors across all our repositories ---- - -
-

There are 132 unique contributors at the time of indexing.
Thanks ❤️ to everyone who have contributed.

-
- 13r0ck - 13r0ck - - 4e6anenk0 - 4e6anenk0 - - 89luca89 - 89luca89 - - AWildJumpyGame - AWildJumpyGame - - Absolucy - Absolucy - - Aeases - Aeases - - Aiyuh - Aiyuh - - AleVul - AleVul - - AllamC11 - AllamC11 - - Andrew-Geo - Andrew-Geo - - BaerLKR - BaerLKR - - Bohne13 - Bohne13 - - Cealica - Cealica - - D-Maxwell - D-Maxwell - - D3vil0p3r - D3vil0p3r - - EncryptedEasty - EncryptedEasty - - FalseDev - FalseDev - - Francisco-Vivas - Francisco-Vivas - - GabsEdits - GabsEdits - - Hannor-Smith - Hannor-Smith - - Heus-Sueh - Heus-Sueh - - ItzSwirlz - ItzSwirlz - - JMarcosHP - JMarcosHP - - JnBenites - JnBenites - - JonasLoos - JonasLoos - - JrSchmidtt - JrSchmidtt - - Kaitul - Kaitul - - Kakujeetoz - Kakujeetoz - - Khayasen - Khayasen - - MasterGeekMX - MasterGeekMX - - MonsterObserver - MonsterObserver - - MrNarsus - MrNarsus - - Muqtxdir - Muqtxdir - - Murattut - Murattut - - N00byKing - N00byKing - - NorwayFun - NorwayFun - - OpenSauce04 - OpenSauce04 - - PureTryOut - PureTryOut - - SKBotNL - SKBotNL - - Silenc3IsGold3n - Silenc3IsGold3n - - SkyWolf369 - SkyWolf369 - - ThatOneCalculator - ThatOneCalculator - - TheEvilSkeleton - TheEvilSkeleton - - ThePenguinUser - ThePenguinUser - - TheReyzer - TheReyzer - - abuhuraira0099 - abuhuraira0099 - - alinpr18 - alinpr18 - - andibing - andibing - - axtloss - axtloss - - azu0609 - azu0609 - - b4xsh0r - b4xsh0r - - beganovich - beganovich - - benstone326 - benstone326 - - bittin - bittin - - bketelsen - bketelsen - - brs17 - brs17 - - btkostner - btkostner - - cassidyjames - cassidyjames - - cat-master21 - cat-master21 - - crawfxrd - crawfxrd - - cybik - cybik - - daudix-UFO - daudix-UFO - - davidmhewitt - davidmhewitt - - dch82 - dch82 - - djordan2 - djordan2 - - duch3201 - duch3201 - - ecseditamas - ecseditamas - - eyenpi - eyenpi - - flipflop97 - flipflop97 - - fnogcps - fnogcps - - gallegonovato - gallegonovato - - gnaygnil - gnaygnil - - gnu-ewm - gnu-ewm - - gonzoknows - gonzoknows - - gregorni - gregorni - - gsantoss1 - gsantoss1 - - henriquepicanco - henriquepicanco - - hozza - hozza - - hugok79 - hugok79 - - ids1024 - ids1024 - - indicozy - indicozy - - isantop - isantop - - ivt1989 - ivt1989 - - jackpot51 - jackpot51 - - jacobgkau - jacobgkau - - jim3692 - jim3692 - - josefkelly - josefkelly - - joshjo - joshjo - - kangurek-kao - kangurek-kao - - kbdharun - kbdharun - - kra-mo - kra-mo - - lakejason0 - lakejason0 - - leoscc - leoscc - - leviport - leviport - - lvllaby - lvllaby - - marcleonschulz - marcleonschulz - - matbme - matbme - - mattcc23 - mattcc23 - - maulanalmifa - maulanalmifa - - mirkobrombin - mirkobrombin - - mks-h - mks-h - - mmstick - mmstick - - mrvladus - mrvladus - - mt-gitlocalize - mt-gitlocalize - - nclm - nclm - - noahdotpy - noahdotpy - - openarun - openarun - - orowith2os - orowith2os - - pietrodicaprio - pietrodicaprio - - plasmus777 - plasmus777 - - raphaeldenni - raphaeldenni - - rhcalderon - rhcalderon - - rubenhorn - rubenhorn - - ryonakano - ryonakano - - sherichev - sherichev - - shubhsharma19 - shubhsharma19 - - spaceguybob - spaceguybob - - starcoat - starcoat - - teh404guy - teh404guy - - theMackabu - theMackabu - - thednp - thednp - - tintou - tintou - - tkbremnes - tkbremnes - - tshepang - tshepang - - uniartisan - uniartisan - - vega-d - vega-d - - vjr - vjr - - vladdoster - vladdoster - - voxelin - voxelin - - wesleybertipaglia - wesleybertipaglia - - zedtux - zedtux - - zerng07 - zerng07 -
-

This list is updated every week.

-
diff --git a/dev-builds.md b/dev-builds.md deleted file mode 100644 index 09376885..00000000 --- a/dev-builds.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -pattern: /assets/images/pattern-download.png -layout: page -title: Download Vanilla OS Dev Builds -description: Download Vanilla OS development builds ---- - -## Production Use - -Please note that those builds may not represent the final product. They are not guaranteed to be stable and may contain bugs. If you want to use Vanilla OS on your daily driver, please consider downloading the [stable release](/download) instead. - -## Development Builds - -Development builds are not necessarily tested and may contain bugs. If you want to help us test Vanilla OS, please consider joining our [ Discord server](https://discord.gg/3cD2Q7Ht3S) before downloading the ISO, and report any bugs you find. - -### Builds - -The following builds may not include all features that are planned for the stable release. They are not guaranteed to be stable and may contain bugs. - -
- diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/faq.md b/faq.md deleted file mode 100644 index 84c60b13..00000000 --- a/faq.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -layout: page -title: FAQ -description: Frequently Answered Asked Questions about Vanilla OS. ---- - -
-
- {% capture title %} Why Ubuntu Based? {% endcapture %} - {% capture answer %} -

Vanilla OS aims to be a stable and compatible distribution. Ubuntu is a distribution that respects both of these canons, being updated with strict control, without having to give up functionality and security.

- {% endcapture %} - {% include accordion-item.html open=true title=title text=answer %} - - {% capture title %} Why not a rolling release? {% endcapture %} - {% capture answer %} -

Vanilla OS aims to be a stable and compatible distribution. Ubuntu is a distribution that respects both of these canons, being updated with strict control, without having to give up functionality and security.

-

Thanks to Flatpak, Snap and Appimage, the user can always have the latest version of the applications they use, without having to wait for the next release of Vanilla OS.

- {% endcapture %} - {% include accordion-item.html title=title text=answer %} - - {% capture title %} Why not OStree or [put_name_here]? {% endcapture %} - {% capture answer %} -

Vanilla OS uses an A/B structure (ABRoot), which transacts updates atomically between two root micro partitions. The benefits of this system are the guarantee that the system is altered only when the entire transaction is successful (concept of atomicity), furthermore, the double root partition structure allows you to roll back to the previous state, directly from your boot, you will always have a home to come back to.

-

This structure, unlike others, is compatible with already existing distributions and does not require a complex setup and allows easy re-initialization of the system without data loss.

- {% endcapture %} - {% include accordion-item.html title=title text=answer %} - - {% capture title %} Is it suitable for beginners and non-technical users? {% endcapture %} - {% capture answer %} -

We want Vanilla to be a maintenance-free beginner-friendly OS. In fact, we have already simplified driver installation. However, for now, it's still recommended to have some prior experience with Linux-based operating systems.

- {% endcapture %} - {% include accordion-item.html title=title text=answer %} - - {% capture title %} Can I install it alongside another OS (dual boot)? {% endcapture %} - {% capture answer %} -

Currently, Vanilla OS can only be installed to a whole disk. Manual partitioning will be available shortly.

- {% endcapture %} - {% include accordion-item.html title=title text=answer %} - - {% capture title %} Is Nvidia supported? {% endcapture %} - {% capture answer %} -

Yes, if you have an Nvidia card, you'll be prompted to install proprietary Nvidia drivers during the first setup. This includes support for Optimus laptops.

- {% endcapture %} - {% include accordion-item.html title=title text=answer %} - - {% capture title %} How to install software? {% endcapture %} - {% capture answer %} -

Vanilla OS provides optional support for Flatpak, AppImage, and soon Snap. We recommend you use any of these three for regular application installation. We also have our own package manager, apx. You can use it from the terminal to install Ubuntu, Fedora, or Arch Linux packages inside containers. Installing packages onto the host system is not advised, but if you need to — use ABRoot.

- {% endcapture %} - {% include accordion-item.html title=title text=answer %} - - {% capture title %} How to run installed packages? {% endcapture %} - {% capture answer %} -

Graphical applications installed with Flatpak, Snap, or apx will be available in the Applications menu. To run an application from the terminal, use `flatpak run` or `apx run` commands or just the name of the binary if it's installed as a Snap.

-

AppImages can be run by double-clicking the AppImage file, but make sure to give it executable permission first (Properties -> Executable as Program).

- {% endcapture %} - {% include accordion-item.html title=title text=answer %} - - {% capture title %} Is there any telemetry? {% endcapture %} - {% capture answer %} -

No, we don't care about your data. Ours is better.

- {% endcapture %} - {% include accordion-item.html title=title text=answer %} -
-
diff --git a/get-all.sh b/get-all.sh deleted file mode 100755 index 56b8b18a..00000000 --- a/get-all.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash - -echo "Starting the script." -echo "This script will fetch a lot of repositories." -echo - -owner="Vanilla-OS" - -# set -x - -echo "Fetching repositories..." -mapfile -t repositories < <( - curl -s -H "Authorization: token $token" "https://api.github.com/orgs/$owner/repos" | - jq -r '.[].name' -) - -all_contributors=() - -for repository in "${repositories[@]}"; do - mapfile -t contributors < <( - curl -s -H "Authorization: token $token" "https://api.github.com/repos/$owner/$repository/contributors" | - jq -r '.[] | "\(.login):\(.id)"' | - grep -Ev 'weblate|dependabot' - ) - - if [[ ${#contributors[@]} -gt 0 ]]; then - unique_contributors=() - mapfile -t unique_contributors < <(printf '%s\n' "${contributors[@]}" | sort -u) - all_contributors+=("${unique_contributors[@]}") - fi -done - -echo "Making the combined unique contributors list..." -unique_all_contributors=() -mapfile -t unique_all_contributors < <( - printf '%s\n' "${all_contributors[@]}" | sort -u | grep -Ev 'weblate|dependabot' -) - -# Sort the unique_all_contributors array alphabetically -IFS=$'\n' sorted_unique_all_contributors=($(sort <<<"${unique_all_contributors[*]}")) -unset IFS -unique_all_contributors=("${sorted_unique_all_contributors[@]}") - -# Generate the output string -output=$(cat < -

There are ${#unique_all_contributors[@]} unique contributors at the time of indexing.
Thanks ❤️ to everyone who have contributed.

-
-EOF -) - -# Append contributors to the output string -for contributor in "${unique_all_contributors[@]}"; do - login=$(echo "$contributor" | cut -d':' -f1) - id=$(echo "$contributor" | cut -d':' -f2) - output+=$(cat < - ${login} - ${login} - -EOF -) -done - - -# Append the closing part of the output string -output+=$(cat < -

This list is updated every week.

-
-EOF -) - -# Write the output to a file -echo -e "$output" > contributors-list.md diff --git a/get-involved.md b/get-involved.md deleted file mode 100644 index 3096cbd0..00000000 --- a/get-involved.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -pattern: /assets/images/pattern-get-involved.png -layout: page -title: Get Involved with Vanilla OS -description: Everything we do is Open Source. You can contribute in many ways. ---- - -
-
-
-
-
- translate -
-

Translations

-

Translate Vanilla OS into your language or improve existing translations to make it more accessible to everyone.

- Translate -
-
-
- code -
-

Development

-

Contribute to the development of Vanilla OS by suggesting new features, reporting bugs or contributing code.

- Development -
-
-
-
-
- auto_stories -
-

Documentation

-

Good documentation is essential for users and developers to understand how to use Vanilla OS. Help us improve it.

- Documentation -
-
-
- help_outline -
-

Support

-

Help other users to get the most out of Vanilla OS. Answer questions on our Discord server, help with bug reports and more.

- Support -
-
-
-
-
- monetization_on -
-

Funding

-

Like other projects, Vanilla OS has some costs to cover. You can help us with a donation or by becoming a sponsor.

- Donate -
-
-
- auto_stories -
-

Handbook

-

Contribute guides and tutorials to help others get the most out of their Vanilla OS installation.

- Handbook -
-
-
-
diff --git a/index.html b/index.html new file mode 100644 index 00000000..63cf81db --- /dev/null +++ b/index.html @@ -0,0 +1,80 @@ + + + + + + + + + + Vanilla OS + + + + +
+ + + + + + + + + \ No newline at end of file diff --git a/index.md b/index.md deleted file mode 100644 index f93082fd..00000000 --- a/index.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -title: -description: Vanilla OS is an Immutable Linux-based distribution which aims to provide a vanilla GNOME experience. ---- -
-
-

Coming soon: Orchid, with rebase to Debian!

-
-
- - -
-
-
-

Up to Date.

-

Designed to last over time and always be faithful to you.

-

Vanilla OS is an immutable and atomic Ubuntu-based distribution that receives updates at the right time without sacrificing security or functionality.

-
-
-
- -
-
-
-

Work.

-

Your faithful colleague by day.

-

Vanilla OS is designed to be a reliable and productive operating system for your daily work. The GNOME Desktop is the perfect environment for your daily tasks, with a clean and intuitive interface. Everything is at your fingertips.

-

Vanilla OS is ready to meet your needs whether you are a developer, designer, student or simple user, thanks to a wide range of applications.

-
-
- -
-
-
- -
-
-
-

Play.

-

Your teammate by night.

-

Play your favourite games without worrying about setting up your device. Vanilla OS offers the latest stable Linux kernel, ensuring support for the latest hardware and performance improvements.

-

Setting up your GPU won't be an issue thanks to integrated driver management. Whether it's an AMD®, Intel®, or NVIDIA® GPU, if a driver is needed, all you have to do is launch the driver manager and follow the instructions. It's that simple.

-
-
- -
-
-
- -
-
-
- -
-

Complete.

-

Access a large catalogue of applications.

-
-
-
-
- -
-
-
-

Choice.

-

Your system, your choices.

-

Vanilla OS is an operating system that respects your choices. You are always in control.

-

At the initial start, you can choose which package format(s) you want to use in Vanilla OS (Flatpak, Nix, Appimage ...). You choose, and Vanilla OS will take care of the rest, allowing you to get started without any difficulties.

-
-
- -
-
-
- -
-
-
-

Immutable...

-

...but also not.

-

Vanilla OS is an immutable operating system. Core parts of the system are locked down to prevent unwanted changes or corruption caused by third-party applications or faulty updates. Some paths such as the home and configuration directories are still writable, allowing the user to keep and modify their files and application data.

-

Core components are updated via controlled and atomic transactions, which are only applied when successful and made available on reboot.

-

Need to install a component into the core system? At any time you can open a transactional shell, make your changes, and let the system apply them automatically.

- - Learn More chevron_right - -
-
- - A simple terminal app showing the commands “apx install nice-stuff” and “abroot exec apt install nice-stuff” -
-
-
- -
-
-
-

Free & Open Source.

-

You don't have to, and will never have to pay.

-

Vanilla OS is built on free and open-source software which does not require any payment to be used.

-

All system components are free and open source, meaning the code is available for your review, contribution, or forking.

- -
-
-
- -
-
-
-

Frequently Asked Questions

-

Here are some of the most common questions we get asked.

-
- {% capture title %} Why Ubuntu Based? {% endcapture %} - {% capture answer %} -

Vanilla OS aims to be a stable and compatible distribution. Ubuntu is a distribution that respects both of these canons, being updated with strict control without having to give up functionality and security.

- {% endcapture %} - {% include accordion-item.html open=true title=title text=answer %} - - {% capture title %} Why not a rolling release? {% endcapture %} - {% capture answer %} -

Vanilla OS aims to be a stable and compatible distribution, and Ubuntu is a distribution that respects our design philosophies.

-

Thanks to Flatpak, Nix, and Appimage, the user can always have the latest version of the applications they use, without having to wait for the next release of Vanilla OS.

- {% endcapture %} - {% include accordion-item.html title=title text=answer %} - - {% capture title %} Why not OStree or [put_name_here]? {% endcapture %} - {% capture answer %} -

Vanilla OS uses an A/B structure (ABRoot), which transacts updates atomically between two root micro partitions. The benefits of this system are a guarantee that the system is altered only when the entire transaction is successful (concept of atomicity), as well as allowing you to roll back to the previous state, meaning you will always have a home to come back to if something goes wrong.

-

This structure, unlike others, is compatible with already existing distributions and does not require a complex setup, allowing easy re-initialization of the system without data loss.

- {% endcapture %} - {% include accordion-item.html title=title text=answer %} -
- - Learn More chevron_right - -
-
-
- -
-
-
-

Technologies

-

Vanilla OS is made possible by the following technologies.

- - All trademarks are the property of their respective owners. -
-
-
- - diff --git a/assets/dark.png b/logo-white.png similarity index 100% rename from assets/dark.png rename to logo-white.png diff --git a/assets/light.png b/logo.png similarity index 100% rename from assets/light.png rename to logo.png diff --git a/logos.md b/logos.md deleted file mode 100644 index eca91b9a..00000000 --- a/logos.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -pattern: /assets/images/pattern-logos.png -layout: page -title: Vanilla OS Logo -description: Vanilla OS resources and logos. ---- - -## The Idea -The Vanilla OS logo wants to remain visually **simple** yet **distinctive**. - -The entire project aims for maximum simplicity, keeping the user experience as clean as possible without imposing any unnecessary customization that could alter the user experience designed for the software that comes with Vanilla OS, e.g. GNOME. - -## The Logo -Our logo is distributed in 2 variants: the **logotype** and the **icon**, both in `PNG` and `SVG` formats with an optional inverted version. - -
-
-
-
- Vanilla OS Logo Text -
-

The Vanilla OS logo in text format.

- - PNG - SVG -
- expand_more - -
-
-
-
- Vanilla OS Icon -
-

The Vanilla OS icon.

- - PNG - SVG -
- expand_more - -
-
-
-
-
-
- -## Font -The font used for the logo is [**Pacifico**](https://fonts.google.com/specimen/Pacifico) by Vernon Adams, Jacques Le Bailly, Botjo Nikoltchev, Ani Petrova. - -An example of the font used for the logo. - -The font is licensed under the [Open Font License](https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL). - -## Colors -The colors used for the logo are Black and Yellow Orange. We may combine these colors with others to highlight content. See the full table below: - -| Name | Purpose | Hex | -| --- | --- | --- | -| Black | Main color | #000000 | -| Yellow Orange | Accent color | #FFBF48 | -| White | Inv. main color | #FFFFFF | -| Cararra | Misc. color | #F2F1ED | -| Westar | Misc. color | #E4E3DF | diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..d4d041a2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4997 @@ +{ + "name": "vanillaos-website", + "version": "2.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "vanillaos-website", + "version": "2.0.0", + "dependencies": { + "@types/marked": "^5.0.1", + "@vueuse/head": "^1.1.26", + "js-yaml": "^4.1.0", + "marked": "^5.1.1", + "slugify": "^1.6.6", + "vue": "^3.2.47", + "vue-router": "^4.1.6" + }, + "devDependencies": { + "@types/node": "^18.17.0", + "@vitejs/plugin-vue": "^4.0.0", + "@vue/tsconfig": "^0.1.3", + "glob": "^10.3.3", + "npm-run-all": "^4.1.5", + "ts-node": "^10.9.1", + "typescript": "~4.8.4", + "vite": "^4.1.4", + "vue-tsc": "^1.2.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.16.tgz", + "integrity": "sha512-gCHjjQmA8L0soklKbLKA6pgsLk1byULuHe94lkZDzcO3/Ta+bbeewJioEn1Fr7kgy9NWNFy/C+MrBwC6I/WCug==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.16.tgz", + "integrity": "sha512-wsCqSPqLz+6Ov+OM4EthU43DyYVVyfn15S4j1bJzylDpc1r1jZFFfJQNfDuT8SlgwuqpmpJXK4uPlHGw6ve7eA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.16.tgz", + "integrity": "sha512-ldsTXolyA3eTQ1//4DS+E15xl0H/3DTRJaRL0/0PgkqDsI0fV/FlOtD+h0u/AUJr+eOTlZv4aC9gvfppo3C4sw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.16.tgz", + "integrity": "sha512-aBxruWCII+OtluORR/KvisEw0ALuw/qDQWvkoosA+c/ngC/Kwk0lLaZ+B++LLS481/VdydB2u6tYpWxUfnLAIw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.16.tgz", + "integrity": "sha512-6w4Dbue280+rp3LnkgmriS1icOUZDyPuZo/9VsuMUTns7SYEiOaJ7Ca1cbhu9KVObAWfmdjUl4gwy9TIgiO5eA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.16.tgz", + "integrity": "sha512-x35fCebhe9s979DGKbVAwXUOcTmCIE32AIqB9CB1GralMIvxdnMLAw5CnID17ipEw9/3MvDsusj/cspYt2ZLNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.16.tgz", + "integrity": "sha512-YM98f+PeNXF3GbxIJlUsj+McUWG1irguBHkszCIwfr3BXtXZsXo0vqybjUDFfu9a8Wr7uUD/YSmHib+EeGAFlg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.16.tgz", + "integrity": "sha512-b5ABb+5Ha2C9JkeZXV+b+OruR1tJ33ePmv9ZwMeETSEKlmu/WJ45XTTG+l6a2KDsQtJJ66qo/hbSGBtk0XVLHw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.16.tgz", + "integrity": "sha512-XIqhNUxJiuy+zsR77+H5Z2f7s4YRlriSJKtvx99nJuG5ATuJPjmZ9n0ANgnGlPCpXGSReFpgcJ7O3SMtzIFeiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.16.tgz", + "integrity": "sha512-no+pfEpwnRvIyH+txbBAWtjxPU9grslmTBfsmDndj7bnBmr55rOo/PfQmRfz7Qg9isswt1FP5hBbWb23fRWnow==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.16.tgz", + "integrity": "sha512-Zbnczs9ZXjmo0oZSS0zbNlJbcwKXa/fcNhYQjahDs4Xg18UumpXG/lwM2lcSvHS3mTrRyCYZvJbmzYc4laRI1g==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.16.tgz", + "integrity": "sha512-YMF7hih1HVR/hQVa/ot4UVffc5ZlrzEb3k2ip0nZr1w6fnYypll9td2qcoMLvd3o8j3y6EbJM3MyIcXIVzXvQQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.16.tgz", + "integrity": "sha512-Wkz++LZ29lDwUyTSEnzDaaP5OveOgTU69q9IyIw9WqLRxM4BjTBjz9un4G6TOvehWpf/J3gYVFN96TjGHrbcNQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.16.tgz", + "integrity": "sha512-LFMKZ30tk78/mUv1ygvIP+568bwf4oN6reG/uczXnz6SvFn4e2QUFpUpZY9iSJT6Qpgstrhef/nMykIXZtZWGQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.16.tgz", + "integrity": "sha512-3ZC0BgyYHYKfZo3AV2/66TD/I9tlSBaW7eWTEIkrQQKfJIifKMMttXl9FrAg+UT0SGYsCRLI35Gwdmm96vlOjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.16.tgz", + "integrity": "sha512-xu86B3647DihHJHv/wx3NCz2Dg1gjQ8bbf9cVYZzWKY+gsvxYmn/lnVlqDRazObc3UMwoHpUhNYaZset4X8IPA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.16.tgz", + "integrity": "sha512-uVAgpimx9Ffw3xowtg/7qQPwHFx94yCje+DoBx+LNm2ePDpQXHrzE+Sb0Si2VBObYz+LcRps15cq+95YM7gkUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.16.tgz", + "integrity": "sha512-6OjCQM9wf7z8/MBi6BOWaTL2AS/SZudsZtBziXMtNI8r/U41AxS9x7jn0ATOwVy08OotwkPqGRMkpPR2wcTJXA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.16.tgz", + "integrity": "sha512-ZoNkruFYJp9d1LbUYCh8awgQDvB9uOMZqlQ+gGEZR7v6C+N6u7vPr86c+Chih8niBR81Q/bHOSKGBK3brJyvkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.16.tgz", + "integrity": "sha512-+j4anzQ9hrs+iqO+/wa8UE6TVkKua1pXUb0XWFOx0FiAj6R9INJ+WE//1/Xo6FG1vB5EpH3ko+XcgwiDXTxcdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.16.tgz", + "integrity": "sha512-5PFPmq3sSKTp9cT9dzvI67WNfRZGvEVctcZa1KGjDDu4n3H8k59Inbk0du1fz0KrAbKKNpJbdFXQMDUz7BG4rQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.16.tgz", + "integrity": "sha512-sCIVrrtcWN5Ua7jYXNG1xD199IalrbfV2+0k/2Zf2OyV2FtnQnMgdzgpRAbi4AWlKJj1jkX+M+fEGPQj6BQB4w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "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" + } + }, + "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==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/marked": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-5.0.1.tgz", + "integrity": "sha512-Y3pAUzHKh605fN6fvASsz5FDSWbZcs/65Q6xYRmnIP9ZIYz27T4IOmXfH9gWJV1dpi7f1e7z7nBGUTx/a0ptpA==" + }, + "node_modules/@types/node": { + "version": "18.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.0.tgz", + "integrity": "sha512-GXZxEtOxYGFchyUzxvKI14iff9KZ2DI+A6a37o6EQevtg6uO9t+aUZKcaC1Te5Ng1OnLM7K9NVVj+FbecD9cJg==", + "dev": true + }, + "node_modules/@unhead/dom": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.1.33.tgz", + "integrity": "sha512-HKe8ppDQvFJeKkz4Hz8qmZHaEniChA3fooaE56/jW/ZQtmguU7xRU09PDm0VEV/08xiI3WRt93IYq+RtqrkzAw==", + "dependencies": { + "@unhead/schema": "1.1.33", + "@unhead/shared": "1.1.33" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/@unhead/schema": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.1.33.tgz", + "integrity": "sha512-QC73j5goOht4/sUQjADPM3Bg+WKHm5k+062Ns8tCrC8/YE10y7aeD33vpAF6z9BM4GCBODlDUlpOUuGfqovP5w==", + "dependencies": { + "hookable": "^5.5.3", + "zhead": "^2.0.10" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/@unhead/shared": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.1.33.tgz", + "integrity": "sha512-zEviDmj61MAFAMR3Ts4lHgnBFPmRaLhkwsS00l4K9nHOkghoj575cGImhzSJ863r0KDr3dVDCalgF8remhz9pg==", + "dependencies": { + "@unhead/schema": "1.1.33" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/@unhead/ssr": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.1.33.tgz", + "integrity": "sha512-nboGQZ5X62HOZYcsdEFugLRYnz57XBoJv+7zyuH6qk8jB2ebzSnkz0cR3eawpcgIzEPi9tQ2Q3RfGuJ0m5KIhA==", + "dependencies": { + "@unhead/schema": "1.1.33", + "@unhead/shared": "1.1.33" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/@unhead/vue": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.1.33.tgz", + "integrity": "sha512-cbq2k8RII9gDzpGC+CMaPezid6k8b8mV2KxhrtidnsHfK/ZmEaChrVCQ06C9xTtHMHfnNbCUn9vvQh96dHHF9A==", + "dependencies": { + "@unhead/schema": "1.1.33", + "@unhead/shared": "1.1.33", + "hookable": "^5.5.3", + "unhead": "1.1.33" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + }, + "peerDependencies": { + "vue": ">=2.7 || >=3" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", + "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.9.1.tgz", + "integrity": "sha512-FlllCDE0HdUYh66zS1S4u8WobqKFStOwkd3OCXCOhPmalfm4Fte3gHNXzqs+R8VlbjK7ZvBxrG9MSiaRGXZygg==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.9.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.9.1.tgz", + "integrity": "sha512-KIttDVrbr3ACLzEP891uj+XdVaCnNErFNRGjNQio+gW2a9fDdz407usAJu6DHgIkJU1l18HyOxMU2VX1l2+D5g==", + "dev": true, + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.9.1.tgz", + "integrity": "sha512-UO8bhflYMNuOpXeGYHSm3xItU4kEVhJQNGjwgw1ZqLr/sm1C7Y+pVQ/S01NpsojhFC8S+P6/p+jOTK6DO214kQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.9.1" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "dependencies": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "dependencies": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "dependencies": { + "@babel/parser": "^7.20.15", + "@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.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "node_modules/@vue/language-core": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.6.tgz", + "integrity": "sha512-PyYDMArbR7hnhqw9OEupr0s4ut0/ZfITp7WEjigF58cd2R0lRLNM1HPvzFMuULpy3ImBEOZI11KRIDirqOe+tQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "~1.9.0", + "@volar/source-map": "~1.9.0", + "@vue/compiler-dom": "^3.3.0", + "@vue/reactivity": "^3.3.0", + "@vue/shared": "^3.3.0", + "minimatch": "^9.0.0", + "muggle-string": "^0.3.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "dependencies": { + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "dependencies": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "dependencies": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "dependencies": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + }, + "peerDependencies": { + "vue": "3.3.4" + } + }, + "node_modules/@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + }, + "node_modules/@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@vue/typescript": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@vue/typescript/-/typescript-1.8.6.tgz", + "integrity": "sha512-sDQ5tltrSVS3lAkE3JtMRGJo91CLIxcWPy7yms/DT+ssxXpwxbVRD5Gok68HenEZBA4Klq7nW99sG/nTRnpPuQ==", + "dev": true, + "dependencies": { + "@volar/typescript": "~1.9.0", + "@vue/language-core": "1.8.6" + } + }, + "node_modules/@vueuse/head": { + "version": "1.1.26", + "resolved": "https://registry.npmjs.org/@vueuse/head/-/head-1.1.26.tgz", + "integrity": "sha512-VUrqvcxKtxt2moKtUa7R/KscnDsNYj5u7HFULLsr84VhWsztzBedxW/8Wh/kTz2+/eMf5gC1KtkZBTFQYOmauQ==", + "dependencies": { + "@unhead/dom": "^1.1.26", + "@unhead/schema": "^1.1.26", + "@unhead/ssr": "^1.1.26", + "@unhead/vue": "^1.1.26" + }, + "peerDependencies": { + "vue": ">=2.7 || >=3" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true + }, + "node_modules/brace-expansion": { + "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" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.16.tgz", + "integrity": "sha512-1xLsOXrDqwdHxyXb/x/SOyg59jpf/SH7YMvU5RNSU7z3TInaASNJWNFJ6iRvLvLETZMasF3d1DdZLg7sgRimRQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.16", + "@esbuild/android-arm64": "0.18.16", + "@esbuild/android-x64": "0.18.16", + "@esbuild/darwin-arm64": "0.18.16", + "@esbuild/darwin-x64": "0.18.16", + "@esbuild/freebsd-arm64": "0.18.16", + "@esbuild/freebsd-x64": "0.18.16", + "@esbuild/linux-arm": "0.18.16", + "@esbuild/linux-arm64": "0.18.16", + "@esbuild/linux-ia32": "0.18.16", + "@esbuild/linux-loong64": "0.18.16", + "@esbuild/linux-mips64el": "0.18.16", + "@esbuild/linux-ppc64": "0.18.16", + "@esbuild/linux-riscv64": "0.18.16", + "@esbuild/linux-s390x": "0.18.16", + "@esbuild/linux-x64": "0.18.16", + "@esbuild/netbsd-x64": "0.18.16", + "@esbuild/openbsd-x64": "0.18.16", + "@esbuild/sunos-x64": "0.18.16", + "@esbuild/win32-arm64": "0.18.16", + "@esbuild/win32-ia32": "0.18.16", + "@esbuild/win32-x64": "0.18.16" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/foreground-child/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has": { + "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" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==" + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", + "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/marked": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.1.tgz", + "integrity": "sha512-bTmmGdEINWmOMDjnPWDxGPQ4qkDLeYorpYbEtFOXzOruTwUE671q4Guiuchn4N8h/v6NGd7916kXsm3Iz4iUSg==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/minimatch": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", + "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", + "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "3.26.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.3.tgz", + "integrity": "sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unhead": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.1.33.tgz", + "integrity": "sha512-Qm94ySKOPwoXubGkdkeuLr9FcCv706PSL+GEApOcupBIf8M9kkmmYmRT5dCAoQcoUJDrvpeynTxiRkfA1jNRkA==", + "dependencies": { + "@unhead/dom": "1.1.33", + "@unhead/schema": "1.1.33", + "@unhead/shared": "1.1.33", + "hookable": "^5.5.3" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.6.tgz", + "integrity": "sha512-EY6Mm8vJ++S3D4tNAckaZfw3JwG3wa794Vt70M6cNJ6NxT87yhq7EC8Rcap3ahyHdo8AhCmV9PTk+vG1HiYn1A==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.26", + "rollup": "^3.25.2" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "dependencies": { + "@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/shared": "3.3.4" + } + }, + "node_modules/vue-router": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.4.tgz", + "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.6.tgz", + "integrity": "sha512-8ffD4NGfwyATjw/s40Lw2EgB7L2/PAqnGlJBaVQLgblr3SU4EYdhJ67TNXXuDD8NMbDAFSM24V8i3ZIJgTs32Q==", + "dev": true, + "dependencies": { + "@vue/language-core": "1.8.6", + "@vue/typescript": "1.8.6", + "semver": "^7.3.8" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/zhead": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/zhead/-/zhead-2.0.10.tgz", + "integrity": "sha512-irug8fXNKjqazkA27cFQs7C6/ZD3qNiEzLC56kDyzQART/Z9GMGfg8h2i6fb9c8ZWnIx/QgOgFJxK3A/CYHG0g==", + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + } + }, + "dependencies": { + "@babel/parser": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==" + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@esbuild/android-arm": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.16.tgz", + "integrity": "sha512-gCHjjQmA8L0soklKbLKA6pgsLk1byULuHe94lkZDzcO3/Ta+bbeewJioEn1Fr7kgy9NWNFy/C+MrBwC6I/WCug==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.16.tgz", + "integrity": "sha512-wsCqSPqLz+6Ov+OM4EthU43DyYVVyfn15S4j1bJzylDpc1r1jZFFfJQNfDuT8SlgwuqpmpJXK4uPlHGw6ve7eA==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.16.tgz", + "integrity": "sha512-ldsTXolyA3eTQ1//4DS+E15xl0H/3DTRJaRL0/0PgkqDsI0fV/FlOtD+h0u/AUJr+eOTlZv4aC9gvfppo3C4sw==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.16.tgz", + "integrity": "sha512-aBxruWCII+OtluORR/KvisEw0ALuw/qDQWvkoosA+c/ngC/Kwk0lLaZ+B++LLS481/VdydB2u6tYpWxUfnLAIw==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.16.tgz", + "integrity": "sha512-6w4Dbue280+rp3LnkgmriS1icOUZDyPuZo/9VsuMUTns7SYEiOaJ7Ca1cbhu9KVObAWfmdjUl4gwy9TIgiO5eA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.16.tgz", + "integrity": "sha512-x35fCebhe9s979DGKbVAwXUOcTmCIE32AIqB9CB1GralMIvxdnMLAw5CnID17ipEw9/3MvDsusj/cspYt2ZLNQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.16.tgz", + "integrity": "sha512-YM98f+PeNXF3GbxIJlUsj+McUWG1irguBHkszCIwfr3BXtXZsXo0vqybjUDFfu9a8Wr7uUD/YSmHib+EeGAFlg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.16.tgz", + "integrity": "sha512-b5ABb+5Ha2C9JkeZXV+b+OruR1tJ33ePmv9ZwMeETSEKlmu/WJ45XTTG+l6a2KDsQtJJ66qo/hbSGBtk0XVLHw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.16.tgz", + "integrity": "sha512-XIqhNUxJiuy+zsR77+H5Z2f7s4YRlriSJKtvx99nJuG5ATuJPjmZ9n0ANgnGlPCpXGSReFpgcJ7O3SMtzIFeiQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.16.tgz", + "integrity": "sha512-no+pfEpwnRvIyH+txbBAWtjxPU9grslmTBfsmDndj7bnBmr55rOo/PfQmRfz7Qg9isswt1FP5hBbWb23fRWnow==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.16.tgz", + "integrity": "sha512-Zbnczs9ZXjmo0oZSS0zbNlJbcwKXa/fcNhYQjahDs4Xg18UumpXG/lwM2lcSvHS3mTrRyCYZvJbmzYc4laRI1g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.16.tgz", + "integrity": "sha512-YMF7hih1HVR/hQVa/ot4UVffc5ZlrzEb3k2ip0nZr1w6fnYypll9td2qcoMLvd3o8j3y6EbJM3MyIcXIVzXvQQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.16.tgz", + "integrity": "sha512-Wkz++LZ29lDwUyTSEnzDaaP5OveOgTU69q9IyIw9WqLRxM4BjTBjz9un4G6TOvehWpf/J3gYVFN96TjGHrbcNQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.16.tgz", + "integrity": "sha512-LFMKZ30tk78/mUv1ygvIP+568bwf4oN6reG/uczXnz6SvFn4e2QUFpUpZY9iSJT6Qpgstrhef/nMykIXZtZWGQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.16.tgz", + "integrity": "sha512-3ZC0BgyYHYKfZo3AV2/66TD/I9tlSBaW7eWTEIkrQQKfJIifKMMttXl9FrAg+UT0SGYsCRLI35Gwdmm96vlOjg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.16.tgz", + "integrity": "sha512-xu86B3647DihHJHv/wx3NCz2Dg1gjQ8bbf9cVYZzWKY+gsvxYmn/lnVlqDRazObc3UMwoHpUhNYaZset4X8IPA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.16.tgz", + "integrity": "sha512-uVAgpimx9Ffw3xowtg/7qQPwHFx94yCje+DoBx+LNm2ePDpQXHrzE+Sb0Si2VBObYz+LcRps15cq+95YM7gkUw==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.16.tgz", + "integrity": "sha512-6OjCQM9wf7z8/MBi6BOWaTL2AS/SZudsZtBziXMtNI8r/U41AxS9x7jn0ATOwVy08OotwkPqGRMkpPR2wcTJXA==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.16.tgz", + "integrity": "sha512-ZoNkruFYJp9d1LbUYCh8awgQDvB9uOMZqlQ+gGEZR7v6C+N6u7vPr86c+Chih8niBR81Q/bHOSKGBK3brJyvkQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.16.tgz", + "integrity": "sha512-+j4anzQ9hrs+iqO+/wa8UE6TVkKua1pXUb0XWFOx0FiAj6R9INJ+WE//1/Xo6FG1vB5EpH3ko+XcgwiDXTxcdw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.16.tgz", + "integrity": "sha512-5PFPmq3sSKTp9cT9dzvI67WNfRZGvEVctcZa1KGjDDu4n3H8k59Inbk0du1fz0KrAbKKNpJbdFXQMDUz7BG4rQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.16.tgz", + "integrity": "sha512-sCIVrrtcWN5Ua7jYXNG1xD199IalrbfV2+0k/2Zf2OyV2FtnQnMgdzgpRAbi4AWlKJj1jkX+M+fEGPQj6BQB4w==", + "dev": true, + "optional": true + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + } + }, + "@jridgewell/resolve-uri": { + "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 + }, + "@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==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "@types/marked": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-5.0.1.tgz", + "integrity": "sha512-Y3pAUzHKh605fN6fvASsz5FDSWbZcs/65Q6xYRmnIP9ZIYz27T4IOmXfH9gWJV1dpi7f1e7z7nBGUTx/a0ptpA==" + }, + "@types/node": { + "version": "18.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.0.tgz", + "integrity": "sha512-GXZxEtOxYGFchyUzxvKI14iff9KZ2DI+A6a37o6EQevtg6uO9t+aUZKcaC1Te5Ng1OnLM7K9NVVj+FbecD9cJg==", + "dev": true + }, + "@unhead/dom": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.1.33.tgz", + "integrity": "sha512-HKe8ppDQvFJeKkz4Hz8qmZHaEniChA3fooaE56/jW/ZQtmguU7xRU09PDm0VEV/08xiI3WRt93IYq+RtqrkzAw==", + "requires": { + "@unhead/schema": "1.1.33", + "@unhead/shared": "1.1.33" + } + }, + "@unhead/schema": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.1.33.tgz", + "integrity": "sha512-QC73j5goOht4/sUQjADPM3Bg+WKHm5k+062Ns8tCrC8/YE10y7aeD33vpAF6z9BM4GCBODlDUlpOUuGfqovP5w==", + "requires": { + "hookable": "^5.5.3", + "zhead": "^2.0.10" + } + }, + "@unhead/shared": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.1.33.tgz", + "integrity": "sha512-zEviDmj61MAFAMR3Ts4lHgnBFPmRaLhkwsS00l4K9nHOkghoj575cGImhzSJ863r0KDr3dVDCalgF8remhz9pg==", + "requires": { + "@unhead/schema": "1.1.33" + } + }, + "@unhead/ssr": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.1.33.tgz", + "integrity": "sha512-nboGQZ5X62HOZYcsdEFugLRYnz57XBoJv+7zyuH6qk8jB2ebzSnkz0cR3eawpcgIzEPi9tQ2Q3RfGuJ0m5KIhA==", + "requires": { + "@unhead/schema": "1.1.33", + "@unhead/shared": "1.1.33" + } + }, + "@unhead/vue": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.1.33.tgz", + "integrity": "sha512-cbq2k8RII9gDzpGC+CMaPezid6k8b8mV2KxhrtidnsHfK/ZmEaChrVCQ06C9xTtHMHfnNbCUn9vvQh96dHHF9A==", + "requires": { + "@unhead/schema": "1.1.33", + "@unhead/shared": "1.1.33", + "hookable": "^5.5.3", + "unhead": "1.1.33" + } + }, + "@vitejs/plugin-vue": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", + "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==", + "dev": true, + "requires": {} + }, + "@volar/language-core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.9.1.tgz", + "integrity": "sha512-FlllCDE0HdUYh66zS1S4u8WobqKFStOwkd3OCXCOhPmalfm4Fte3gHNXzqs+R8VlbjK7ZvBxrG9MSiaRGXZygg==", + "dev": true, + "requires": { + "@volar/source-map": "1.9.1" + } + }, + "@volar/source-map": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.9.1.tgz", + "integrity": "sha512-KIttDVrbr3ACLzEP891uj+XdVaCnNErFNRGjNQio+gW2a9fDdz407usAJu6DHgIkJU1l18HyOxMU2VX1l2+D5g==", + "dev": true, + "requires": { + "muggle-string": "^0.3.1" + } + }, + "@volar/typescript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.9.1.tgz", + "integrity": "sha512-UO8bhflYMNuOpXeGYHSm3xItU4kEVhJQNGjwgw1ZqLr/sm1C7Y+pVQ/S01NpsojhFC8S+P6/p+jOTK6DO214kQ==", + "dev": true, + "requires": { + "@volar/language-core": "1.9.1" + } + }, + "@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "requires": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "requires": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "requires": { + "@babel/parser": "^7.20.15", + "@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.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "requires": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "@vue/language-core": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.6.tgz", + "integrity": "sha512-PyYDMArbR7hnhqw9OEupr0s4ut0/ZfITp7WEjigF58cd2R0lRLNM1HPvzFMuULpy3ImBEOZI11KRIDirqOe+tQ==", + "dev": true, + "requires": { + "@volar/language-core": "~1.9.0", + "@volar/source-map": "~1.9.0", + "@vue/compiler-dom": "^3.3.0", + "@vue/reactivity": "^3.3.0", + "@vue/shared": "^3.3.0", + "minimatch": "^9.0.0", + "muggle-string": "^0.3.1", + "vue-template-compiler": "^2.7.14" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "requires": { + "@vue/shared": "3.3.4" + } + }, + "@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "requires": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "requires": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "requires": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + }, + "@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "requires": {} + }, + "@vue/typescript": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@vue/typescript/-/typescript-1.8.6.tgz", + "integrity": "sha512-sDQ5tltrSVS3lAkE3JtMRGJo91CLIxcWPy7yms/DT+ssxXpwxbVRD5Gok68HenEZBA4Klq7nW99sG/nTRnpPuQ==", + "dev": true, + "requires": { + "@volar/typescript": "~1.9.0", + "@vue/language-core": "1.8.6" + } + }, + "@vueuse/head": { + "version": "1.1.26", + "resolved": "https://registry.npmjs.org/@vueuse/head/-/head-1.1.26.tgz", + "integrity": "sha512-VUrqvcxKtxt2moKtUa7R/KscnDsNYj5u7HFULLsr84VhWsztzBedxW/8Wh/kTz2+/eMf5gC1KtkZBTFQYOmauQ==", + "requires": { + "@unhead/dom": "^1.1.26", + "@unhead/schema": "^1.1.26", + "@unhead/ssr": "^1.1.26", + "@unhead/vue": "^1.1.26" + } + }, + "acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.18.16", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.16.tgz", + "integrity": "sha512-1xLsOXrDqwdHxyXb/x/SOyg59jpf/SH7YMvU5RNSU7z3TInaASNJWNFJ6iRvLvLETZMasF3d1DdZLg7sgRimRQ==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.18.16", + "@esbuild/android-arm64": "0.18.16", + "@esbuild/android-x64": "0.18.16", + "@esbuild/darwin-arm64": "0.18.16", + "@esbuild/darwin-x64": "0.18.16", + "@esbuild/freebsd-arm64": "0.18.16", + "@esbuild/freebsd-x64": "0.18.16", + "@esbuild/linux-arm": "0.18.16", + "@esbuild/linux-arm64": "0.18.16", + "@esbuild/linux-ia32": "0.18.16", + "@esbuild/linux-loong64": "0.18.16", + "@esbuild/linux-mips64el": "0.18.16", + "@esbuild/linux-ppc64": "0.18.16", + "@esbuild/linux-riscv64": "0.18.16", + "@esbuild/linux-s390x": "0.18.16", + "@esbuild/linux-x64": "0.18.16", + "@esbuild/netbsd-x64": "0.18.16", + "@esbuild/openbsd-x64": "0.18.16", + "@esbuild/sunos-x64": "0.18.16", + "@esbuild/win32-arm64": "0.18.16", + "@esbuild/win32-ia32": "0.18.16", + "@esbuild/win32-x64": "0.18.16" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==" + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "jackspeak": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", + "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "marked": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.1.tgz", + "integrity": "sha512-bTmmGdEINWmOMDjnPWDxGPQ4qkDLeYorpYbEtFOXzOruTwUE671q4Guiuchn4N8h/v6NGd7916kXsm3Iz4iUSg==" + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minipass": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", + "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", + "dev": true + }, + "muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "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==", + "dev": true + }, + "path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "requires": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", + "dev": true + } + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "postcss": { + "version": "8.4.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", + "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "3.26.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.3.tgz", + "integrity": "sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true + }, + "slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "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 + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unhead": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.1.33.tgz", + "integrity": "sha512-Qm94ySKOPwoXubGkdkeuLr9FcCv706PSL+GEApOcupBIf8M9kkmmYmRT5dCAoQcoUJDrvpeynTxiRkfA1jNRkA==", + "requires": { + "@unhead/dom": "1.1.33", + "@unhead/schema": "1.1.33", + "@unhead/shared": "1.1.33", + "hookable": "^5.5.3" + } + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vite": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.6.tgz", + "integrity": "sha512-EY6Mm8vJ++S3D4tNAckaZfw3JwG3wa794Vt70M6cNJ6NxT87yhq7EC8Rcap3ahyHdo8AhCmV9PTk+vG1HiYn1A==", + "dev": true, + "requires": { + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.26", + "rollup": "^3.25.2" + } + }, + "vue": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "requires": { + "@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/shared": "3.3.4" + } + }, + "vue-router": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.4.tgz", + "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==", + "requires": { + "@vue/devtools-api": "^6.5.0" + } + }, + "vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-tsc": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.6.tgz", + "integrity": "sha512-8ffD4NGfwyATjw/s40Lw2EgB7L2/PAqnGlJBaVQLgblr3SU4EYdhJ67TNXXuDD8NMbDAFSM24V8i3ZIJgTs32Q==", + "dev": true, + "requires": { + "@vue/language-core": "1.8.6", + "@vue/typescript": "1.8.6", + "semver": "^7.3.8" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + } + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "zhead": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/zhead/-/zhead-2.0.10.tgz", + "integrity": "sha512-irug8fXNKjqazkA27cFQs7C6/ZD3qNiEzLC56kDyzQART/Z9GMGfg8h2i6fb9c8ZWnIx/QgOgFJxK3A/CYHG0g==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..b4c9ab60 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "vanillaos-website", + "version": "2.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "npm run generate-articles && vite build", + "preview": "vite preview", + "generate-articles": "node scripts/generateArticlesJson.js", + "type-check": "vue-tsc --noEmit" + }, + "dependencies": { + "@types/marked": "^5.0.1", + "@vueuse/head": "^1.1.26", + "js-yaml": "^4.1.0", + "marked": "^5.1.1", + "slugify": "^1.6.6", + "vue": "^3.2.47", + "vue-router": "^4.1.6" + }, + "devDependencies": { + "@types/node": "^18.17.0", + "@vitejs/plugin-vue": "^4.0.0", + "@vue/tsconfig": "^0.1.3", + "glob": "^10.3.3", + "npm-run-all": "^4.1.5", + "ts-node": "^10.9.1", + "typescript": "~4.8.4", + "vite": "^4.1.4", + "vue-tsc": "^1.2.0" + } +} diff --git a/privacy-policy.md b/privacy-policy.md deleted file mode 100644 index dc8fc0a2..00000000 --- a/privacy-policy.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -tint: true -layout: article -title: Cookies -description: Understanding how the Vanilla OS website uses cookies to improve the user experience. ---- - -## Cookies - -Cookies are small pieces of text that are stored on your computer. They are used to store information about your preferences and to help you navigate the site. They are also used to track your usage of the site and to help us improve it. - -We specifically use cookies for analytics purposes. This helps us understand how people use the site, how they reach it and how they interact with it. - -## Collected data - -We collect some data to understand how users reach vanillaos.org. This data help us to know what kind of content is most viewed, if the user reaches certain pages and how they interact with the site. We also use this data to improve the site and to make it more useful, e.g. by providing you with more relevant content or by improving the existing to better meet your needs. - -We use an Analytics platform called Countly to collect the needed data for statistics purposes. - -**Referral URLs** - -We use referral URLs to understand how users reach vanillaos.org. This also help us find out who is linking to the site and how they do it (reviews, blog posts, etc.). - -**Device type** - -We use device type for UX purposes. This helps us testing the website on the most used devices and to be sure that the website is compatible with them. - -**Browser type** - -Also the browser type is used for UX purposes. This helps us to understand which browsers are most used and which are not and if we should still support them. - -**Language** - -We use language to understand which languages are most used and which are not. This helps us to improve the site and the translation support, e.g. if we should add a new language. - -**Operating system** - -We use operating system only for statistics purposes. - - -For any further questions or comments, please contact us. \ No newline at end of file diff --git a/public/assets/css/animations.css b/public/assets/css/animations.css new file mode 100644 index 00000000..0d278412 --- /dev/null +++ b/public/assets/css/animations.css @@ -0,0 +1,214 @@ +.animating { + visibility: visible; +} + +.onFocus { + opacity: 0; + transform: translateX(0); + transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out; +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +.anim--fadeIn { + animation: fadeIn .5s ease-in; +} + +@keyframes fadeInLeft { + from { + opacity: 0; + transform: translateX(-100%); + } + + to { + opacity: 1; + transform: translateX(0); + } +} + +.anim--fadeInLeft { + animation: fadeInLeft .5s ease-in; +} + +@keyframes fadeInRight { + from { + opacity: 0; + transform: translateX(100%); + } + + to { + opacity: 1; + transform: translateX(0); + } +} + +.anim--fadeInRight { + animation: fadeInRight .5s ease-in; +} + +@keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +.anim--fadeOut { + animation: fadeOut .5s ease-out; +} + +@keyframes fadeOutLeft { + from { + opacity: 1; + transform: translateX(0); + } + + to { + opacity: 0; + transform: translateX(-100%); + } +} + +.anim--fadeOutLeft { + animation: fadeOutLeft .5s ease-out; +} + +@keyframes fadeOutRight { + from { + opacity: 1; + transform: translateX(0); + } + + to { + opacity: 0; + transform: translateX(100%); + } +} + +.anim--fadeOutRight { + animation: fadeOutRight .5s ease-out; +} + +@keyframes bounceIn { + from { + opacity: 0; + transform: scale(0.3); + } + + 50% { + opacity: 1; + transform: scale(1.05); + } + + to { + transform: scale(1); + } +} + +.anim--bounceIn { + animation: bounceIn .5s ease-out; +} + +@keyframes bounceInLeft { + from { + opacity: 0; + transform: translateX(-300%); + } + + 50% { + opacity: 1; + transform: translateX(25%); + } + + to { + transform: translateX(0); + } +} + +.anim--bounceInLeft { + animation: bounceInLeft .5s ease-out; +} + +@keyframes bounceInRight { + from { + opacity: 0; + transform: translateX(300%); + } + + 50% { + opacity: 1; + transform: translateX(-25%); + } + + to { + transform: translateX(0); + } +} + +.anim--bounceInRight { + animation: bounceInRight .5s ease-out; +} + +@keyframes bounceOut { + 20% { + transform: scale(0.9); + } + + 50%, + 55% { + opacity: 1; + transform: scale(1.1); + } + + to { + opacity: 0; + transform: scale(0.3); + } +} + +.anim--bounceOut { + animation: bounceOut .5s ease-out; +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + transform: translateX(20%); + } + + to { + opacity: 0; + transform: translateX(-200%); + } +} + +.anim--bounceOutLeft { + animation: bounceOutLeft .5s ease-out; +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + transform: translateX(-20%); + } + + to { + opacity: 0; + transform: translateX(200%); + } +} + +.anim--bounceOutRight { + animation: bounceOutRight .5s ease-out; +} \ No newline at end of file diff --git a/public/assets/css/colors/classes.css b/public/assets/css/colors/classes.css new file mode 100644 index 00000000..615d7563 --- /dev/null +++ b/public/assets/css/colors/classes.css @@ -0,0 +1,47 @@ +.color--work-1 { + color: var(--generic-green-1); +} + +.color--work-2 { + color: var(--generic-gree-2); +} + +.color--play-1 { + color: var(--generic-purple-1); +} + +.color--play-2 { + color: var(--generic-purple-2); +} + +.color--develop-1 { + color: var(--generic-blue-1); +} + +.color--develop-2 { + color: var(--generic-blue-2); +} + +.color--solid-1 { + color: var(--generic-gray-1); +} + +.color--solid-2 { + color: var(--generic-gray-2); +} + +.color--access-1 { + color: var(--generic-yellow-1); +} + +.color--access-2 { + color: var(--generic-yellow-2); +} + +.color--versatile-1 { + color: var(--generic-brown-1); +} + +.color--versatile-2 { + color: var(--generic-brown-2); +} \ No newline at end of file diff --git a/public/assets/css/colors/dark.css b/public/assets/css/colors/dark.css new file mode 100644 index 00000000..b5ba30e9 --- /dev/null +++ b/public/assets/css/colors/dark.css @@ -0,0 +1,88 @@ +@media (prefers-color-scheme:dark) { + :root { + /* Generic Colors */ + --generic-green-1: #26D959; + --generic-gree-2: #20A746; + --generic-purple-1: #F066D9; + --generic-purple-2: #F23ED5; + --generic-blue-1: #1BA6F3; + --generic-blue-2: #0F6DB5; + --generic-gray-1: #B1B1B1; + --generic-gray-2: #858585; + --generic-yellow-1: #FFBF48; + --generic-yellow-2: #b68832; + --generic-brown-1: #f1e3cd; + --generic-brown-2: #c5bdaf; + + /* Accent Colors */ + --accent-yellow-bg-color: #ecd5a9; + --accent-yellow-bg-color-vivid: #FBBD4E; + --accent-yellow-bg-color-light: #302f2e; + --accent-yellow-bg-color-deep: #ccb892; + --accent-yellow-text-color: #221d15; + --accent-blue-bg-color: #303b46; + --accent-blue-bg-color-vivid: #3c7bc2; + --accent-blue-bg-color-light: #d3dbe4; + --accent-blue-bg-color-deep: #b2bbc5; + --accent-blue-text-color: #c2cdd8; + --accent-brown-bg-color: #343029; + --accent-brown-bg-color-vivid: #2c2312; + --accent-brown-bg-color-light: #f1e3cd; + --accent-brown-bg-color-deep: #c5bdaf; + --accent-brown-text-color: #D8D0C2; + --accent-green-bg-color: #2c382c; + --accent-green-bg-color-vivid: #3cc748; + --accent-green-bg-color-light: #def7e0; + --accent-green-bg-color-deep: #2a362a; + --accent-green-text-color: #809d88; + --accent-purple-bg-color: #2f1e40; + --accent-purple-bg-color-vivid: #7c3cc7; + --accent-purple-bg-color-light: #e4d3f1; + --accent-purple-bg-color-deep: #b6adc5; + --accent-purple-text-color: #cdc2d8; + --accent-red-bg-color: #3c2c2c; + --accent-red-bg-color-vivid: #c73c3c; + --accent-red-bg-color-light: #f1d3d3; + --accent-red-bg-color-deep: #c5b2b2; + --accent-red-text-color: #d8c2c2; + + /* Base Colors */ + --text-color: #c8c8c8; + --text-color-deep: #ffffff; + --text-color-dimmed: #8f8f8f; + --text-color-alt: #1e1e1e; + --body-bg-color: var(--text-color-alt); + --secondary-bg-color: #2c2c2c; + --secondary-bg-color-alt: #262626; + --primary-bg-color: #ffffff; + --dark-bg-color: var(--body-bg-color); + --dark-color: var(--text-color); + --light-bg-color: #ffffff; + --light-color: #232220; + --backdrop-bg-color: #1e1e1ed6; + --link-color: #ebebeb; + --link-hover-color: #0f6db5; + --link-focus-color: #99a1e2; + + /* Rules */ + --base-shadow: 0px 10px 34px 0px rgb(0 0 0 / 40%); + } + + /* Overrides */ + .hero--gn-purple { + color: var(--text-color); + } + + /* Rules */ + .no-dark { + display: none; + } + + .on-dark { + display: initial; + } + + .img.img--white-on-dark { + filter: saturate(0) invert(1); + } +} \ No newline at end of file diff --git a/public/assets/css/colors/default.css b/public/assets/css/colors/default.css new file mode 100644 index 00000000..ea6d0ffe --- /dev/null +++ b/public/assets/css/colors/default.css @@ -0,0 +1,75 @@ +:root { + /* Generic Colors */ + --generic-green-1: #26D959; + --generic-gree-2: #20A746; + --generic-purple-1: #F066D9; + --generic-purple-2: #F23ED5; + --generic-blue-1: #1BA6F3; + --generic-blue-2: #0F6DB5; + --generic-gray-1: #B1B1B1; + --generic-gray-2: #858585; + --generic-yellow-1: #FFBF48; + --generic-yellow-2: #b68832; + --generic-brown-1: #745c44; + --generic-brown-2: #473d35; + + /* Accent Colors */ + --accent-yellow-bg-color: #ecd5a9; + --accent-yellow-bg-color-vivid: #FBBD4E; + --accent-yellow-bg-color-light: #FFF6E5; + --accent-yellow-bg-color-deep: #ccb892; + --accent-yellow-text-color: #221d15; + --accent-blue-bg-color: #C2CDD8; + --accent-blue-bg-color-vivid: #3c7bc2; + --accent-blue-bg-color-light: #d3dbe4; + --accent-blue-bg-color-deep: #b2bbc5; + --accent-blue-text-color: #182840; + --accent-brown-bg-color: #e0cfb1; + --accent-brown-bg-color-vivid: #2c2312; + --accent-brown-bg-color-light: #f1e3cd; + --accent-brown-bg-color-deep: #c5bdaf; + --accent-brown-text-color: #403A30; + --accent-green-bg-color: #bcdcbd; + --accent-green-bg-color-vivid: #3cc748; + --accent-green-bg-color-light: #def7e0; + --accent-green-bg-color-deep: #b5cab6; + --accent-green-text-color: #254E30; + --accent-purple-bg-color: #ccbbdc; + --accent-purple-bg-color-vivid: #7c3cc7; + --accent-purple-bg-color-light: #e4d3f1; + --accent-purple-bg-color-deep: #b6adc5; + --accent-purple-text-color: #2f1e40; + --accent-red-bg-color: #f3c2c2; + --accent-red-bg-color-vivid: #c73c3c; + --accent-red-bg-color-light: #f1d3d3; + --accent-red-bg-color-deep: #c5b2b2; + --accent-red-text-color: #3c2c2c; + + + /* Base Colors */ + --text-color: #232220; + --text-color-deep: #1a1918; + --text-color-dimmed: #737373; + --text-color-alt: #fff; + --body-bg-color: var(--text-color-alt); + --secondary-bg-color: #d9d9d9; + --secondary-bg-color-alt: #f3f3f3; + --primary-bg-color: #242424; + --dark-bg-color: #333333; + --dark-color: #fff; + --light-bg-color: var(--body-bg-color); + --light-color: var(--text-color); + --backdrop-bg-color: #ffffffd6; + --link-color: #161a24; + --link-hover-color: #0f6db5; + --link-focus-color: #1D2995; + --adaptive-bg-color: transparent; +} + +@media (prefers-color-scheme:light) { + + /* Rules */ + .on-dark { + display: none; + } +} \ No newline at end of file diff --git a/public/assets/css/common.css b/public/assets/css/common.css new file mode 100644 index 00000000..b27b5a35 --- /dev/null +++ b/public/assets/css/common.css @@ -0,0 +1,65 @@ +:root { + --base-shadow: 0px 10px 34px 0px rgba(0, 0, 0, 0.15); +} + +html { + scroll-behavior: smooth +} + +body { + overflow-x: hidden; + background-color: var(--body-bg-color); +} + +h1 { + font-size: 2rem; + font-weight: bold; +} + +h2 { + font-size: 2rem; + font-weight: 800; +} + +h3 { + font-size: 1.7rem; + font-weight: 800; +} + +h4 { + font-size: 1.4rem; + font-weight: 700; +} + +h5 { + font-size: 1.2rem; + font-weight: 700; +} + +h6 { + font-size: 1rem; + font-weight: 700; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0 0 20px 0; +} + +body, +input, +button, +select, +textarea { + font-family: Outfit, sans-serif; + color: var(--text-color); +} + +[disabled="true"] { + opacity: .5; + cursor: not-allowed !important; +} \ No newline at end of file diff --git a/public/assets/css/components/badge.css b/public/assets/css/components/badge.css new file mode 100644 index 00000000..c12d06f5 --- /dev/null +++ b/public/assets/css/components/badge.css @@ -0,0 +1,61 @@ +.badges { + --badge-bg-color: var(--secondary-bg-color); + --badge-color: var(--text-color); + --badge-green-bg-color: var(--accent-green-bg-color); + --badge-green-color: var(--accent-green-text-color); + --badge-blue-bg-color: var(--accent-blue-bg-color); + --badge-blue-color: var(--accent-blue-text-color); + --badge-yellow-bg-color: var(--accent-yellow-bg-color); + --badge-yellow-color: var(--accent-yellow-text-color-deep); + --badge-brown-bg-color: var(--accent-brown-bg-color); + --badge-brown-color: var(--accent-brown-text-color-deep); + --badge-red-bg-color: var(--accent-red-bg-color); + --badge-red-color: var(--accent-red-text-color); +} + +.badges { + display: flex; + flex-wrap: wrap; + gap: 10px; +} + +.badges .badges-item { + display: flex; + align-items: center; + justify-content: center; + padding: 7px 15px; + border-radius: 12px; + background-color: var(--badge-bg-color); + color: var(--badge-color); + font-size: 16px; + font-weight: 500; + text-align: center; + text-decoration: none; + white-space: nowrap; + line-height: 1.2; +} + +.badges .badges-item.badges-item--green { + background-color: var(--badge-green-bg-color); + color: var(--badge-green-color); +} + +.badges .badges-item.badges-item--blue { + background-color: var(--badge-blue-bg-color); + color: var(--badge-blue-color); +} + +.badges .badges-item.badges-item--yellow { + background-color: var(--badge-yellow-bg-color); + color: var(--badge-yellow-color); +} + +.badges .badges-item.badges-item--brown { + background-color: var(--badge-brown-bg-color); + color: var(--badge-brown-color); +} + +.badges .badges-item.badges-item--red { + background-color: var(--badge-red-bg-color); + color: var(--badge-red-color); +} \ No newline at end of file diff --git a/public/assets/css/components/btn.css b/public/assets/css/components/btn.css new file mode 100644 index 00000000..199770a7 --- /dev/null +++ b/public/assets/css/components/btn.css @@ -0,0 +1,99 @@ +.btn { + --btn-bg-color: var(--secondary-bg-color); + --btn-color: var(--text-color); + --btn-primary-bg-color: var(--primary-bg-color); + --btn-primary-color: var(--text-color-alt); + --btn-link-hover-color: var(--link-hover-color); + --btn-circle-hover-bg-color: var(--secondary-bg-color-alt); + --btn-secondary-hover-bg-color: var(--primary-bg-color); + --btn-secondary-hover-color: var(--text-color-alt); + --btn-link-2-color: var(--link-focus-color); +} + +.btn { + border-radius: 100px; + background-color: var(--btn-bg-color); + padding: 14px 24px; + display: inline-flex; + justify-content: center; + align-items: center; + gap: 10px; + text-decoration: none; + font-size: 18px; + cursor: pointer; + /* color: var(--btn-color); */ + border: 0; +} + +.btn.btn--primary { + color: var(--btn-primary-color); + background-color: var(--btn-primary-bg-color); +} + +.btn--big { + font-size: 29px; + padding: 23px 38px; +} + +.btn .mdi { + font-size: 100%; +} + +.btn--link { + text-decoration: none !important; + background-color: transparent; +} + +.btn--circle { + width: 22px; + height: 22px; + border-radius: 100%; + padding: 15px; +} + +.btn--link:hover { + color: var(--btn-link-hover-color); +} + +.btn--circle:hover { + background-color: var(--btn-circle-hover-bg-color); +} + +.btn.btn--secondary:hover { + background-color: var(--btn-secondary-hover-bg-color); + color: var(--btn-secondary-hover-color); +} + +.btn.btn--close { + position: absolute; + top: 10px; + right: 10px; +} + +.btn.btn--med { + font-size: 28px; +} + +.btn.btn--inline { + padding: 0; +} + +.btn--link:hover { + color: var(--btn-link-hover-color); +} + +.btn.btn--link-2 { + color: var(--btn-link-2-color); +} + +.btn.btn--block { + cursor: default; + pointer-events: none; +} + +@media screen and (max-width: 745px) { + .btn--big { + padding: 18px 20px; + font-size: 22px; + } +} \ No newline at end of file diff --git a/public/assets/css/components/card.css b/public/assets/css/components/card.css new file mode 100644 index 00000000..81c348a4 --- /dev/null +++ b/public/assets/css/components/card.css @@ -0,0 +1,353 @@ +.card { + --card-bg-color: var(--body-bg-color); + --card-bg-dark: var(--dark-bg-color); + --card-color-dark: var(--dark-color); + --card-bg-light: var(--light-bg-color); + --card-color-light: var(--light-color); + --card-color: var(--text-color); + --card-type-adv-bg-color: var(--accent-yellow-bg-color); + --card-type-adv-color: var(--accent-blue-text-color); + --card-type-newsletter-bg-color: var(--accent-blue-bg-color); + --card-type-newsletter-color: var(--accent-blue-text-color); + --card-type-dev-bg-color: var(--accent-brown-bg-color); + --card-type-dev-color: var(--accent-brown-text-color); + --card-green-bg-color: var(--accent-green-bg-color); + --card-green-color: var(--accent-green-text-color); + --card-blue-bg-color: var(--accent-blue-bg-color); + --card-blue-color: var(--accent-blue-text-color); + --card-yellow-bg-color: var(--accent-yellow-bg-color); + --card-yellow-color: var(--accent-yellow-text-color); + --card-brown-bg-color: var(--accent-brown-bg-color); + --card-brown-color: var(--accent-brown-text-color); + --card-purple-bg-color: var(--accent-purple-bg-color); + --card-purple-color: var(--accent-purple-text-color); + --card-red-bg-color: var(--accent-red-bg-color); + --card-red-color: var(--accent-red-text-color); + --card-clickable-hover-bg-color: var(--secondary-bg-color-alt); + --card-clickable-green-hover-bg-color: var(--accent-green-bg-color-deep); + --card-clickable-blue-hover-bg-color: var(--accent-blue-bg-color-deep); + --card-clickable-yellow-hover-bg-color: var(--accent-yellow-bg-color-deep); + --card-clickable-brown-hover-bg-color: var(--accent-green-bg-color-deep); + --card-clickable-purple-hover-bg-color: var(--accent-purple-bg-color-deep); + --card-clickable-red-hover-bg-color: var(--accent-red-bg-color-deep); +} + +.card { + box-shadow: var(--base-shadow); + border-radius: 12px; + padding: 30px; + background-color: var(--card-bg-color); + display: flex; + flex-direction: column; + gap: 20px; + overflow: hidden; + color: var(--card-color); +} + +.card.card--dark { + background-color: var(--card-bg-dark); + color: var(--card-color-dark); +} + +.card.card--light { + background-color: var(--card-bg-light); + color: var(--card-color-light); +} + +.card-image img { + max-width: 100%; +} + +.card-image.card-image--right img { + height: 40vh; + max-width: initial; +} + +.card-header h2 { + font-size: 27px; + font-weight: 800; + margin: 0 0 0 0; + line-height: 1.2; +} + +.card.article.article--big .card-header h2 { + font-size: 40px; + font-weight: 800; + margin: 0 0 0 0; +} + +.card-header { + display: flex; + flex-direction: column; + gap: 10px; +} + +.card--min .text, +.card.card--type-adv .text { + font-size: 22px; + line-height: 30px; +} + +.card-image.card-image--right { + margin: 0 -50% 0 0; +} + +.card-header h3 { + font-weight: 700; + margin: 0 0 0 0; +} + +.card.card--type-adv { + background-color: var(--card-type-adv-bg-color); +} + +.card.card--type-adv.card--type-newsletter { + background-color: var(--card-type-newsletter-bg-color); + color: var(--card-type-newsletter-color); +} + +.card.card--type-newsletter .btn { + background-color: var(--card-type-newsletter-color); +} + +.card.card--type-adv.card--type-dev { + background-color: var(--card-type-dev-bg-color); + color: var(--card-type-dev-color); +} + +.card.card--type-dev .btn { + background-color: var(--card-type-dev-color); +} + +.card-header h4, +.card-header h5 { + margin: 0 0 0 0; +} + +.card.card--type-adv .card-header h2 { + font-size: 30px; +} + +.card-content>.splitter, +.card-content>.splitter>.flexList, +.card-content>.flexList, +.card-content { + height: 100%; +} + +.card.card--type-adv .card-image { + margin-top: auto; + margin-bottom: auto; +} + +.card.card--hz { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + +.card.article .card-content .text { + margin-bottom: auto; +} + +.card-header h1 .mdi, +.card-header h2 .mdi, +.card-header h3 .mdi, +.card-header h4 .mdi { + font-size: 100%; + position: relative; + top: 4px; +} + +.card.card--min { + gap: 15px; +} + +.card.card--has-actions .card-header { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +.card.card--has-actions .card-header { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +.card.card--min .card-header h3 { + font-size: 24px; +} + +.card.card--clickable { + text-decoration: none; + cursor: pointer; +} + +.card.card--clickable:hover { + background-color: var(--card-clickable-hover-bg-color); +} + +.card.card--green { + background-color: var(--card-green-bg-color); + color: var(--card-green-color); +} + +.card.card--clickable.card--green:hover { + background-color: var(--card-clickable-green-hover-bg-color); +} + +.card.card--blue { + background-color: var(--card-blue-bg-color); + color: var(--card-blue-color); +} + +.card.card--clickable.card--blue:hover { + background-color: var(--card-clickable-blue-hover-bg-color); +} + +.card.card--yellow { + background-color: var(--card-yellow-bg-color); + color: var(--card-yellow-color); +} + +.card.card--clickable.card--yellow:hover { + background-color: var(--card-clickable-yellow-hover-bg-color); +} + +.card.card--brown { + background-color: var(--card-brown-bg-color); + color: var(--card-brown-color); +} + +.card.card--clickable.card--brown:hover { + background-color: var(--card-clickable-brown-hover-bg-color); +} + +.card.card--purple { + background-color: var(--card-purple-bg-color); + color: var(--card-purple-color); +} + +.card.card--clickable.card--purple:hover { + background-color: var(--card-clickable-purple-hover-bg-color); +} + +.card.card--red { + background-color: var(--card-red-bg-color); + color: var(--card-red-color); +} + +.card.card--clickable.card--red:hover { + background-color: var(--card-clickable-red-hover-bg-color); +} + +.card.download .card-header h2 { + font-size: 38px; +} + +.card.card--type-adv.card--type-adv--hz .card-header .btn { + margin-top: 30px; +} + +.card.card--type-adv.card--type-adv--hz .card-header { + display: flex; + justify-content: center; + flex-direction: column; + align-items: flex-start; +} + +.card.card--type-adv.card--type-adv--hz .card-image img { + max-height: 120px; +} + +.card.article.article--big .text { + font-size: 27px; + line-height: 36px; +} + +.card.article .text, +.card.timeline-events-item .text { + font-size: 22px; + line-height: 30px; +} + +.card.article.article--big .text { + font-size: 27px; + line-height: 36px; +} + +.card-header h1 .img, +.card-header h2 .img, +.card-header h3 .img, +.card-header h4 .img { + margin: 0 6px 0 0; +} + +.card-header h1 .img.img--24, +.card-header h2 .img.img--24, +.card-header h3 .img.img--24, +.card-header h4 .img.img--24 { + margin: 0 6px 0 0; + position: relative; + top: 4px; +} + +.card-footer { + margin: 10px 0 0 0; + display: flex; + flex-direction: row; + gap: 20px; +} + +.card-footer .btn { + font-size: 20px; +} + +.card.card--no-padding, +.card.card--plain.card--no-padding { + padding: 0; +} + +.card.card--plain { + box-shadow: none; + padding: 10px; +} + +.card.card--min-padding { + padding: 15px; +} + +.card.card--allow-scroll { + overflow: initial; +} + +.card-header h2, +.card-header h3, +.card-header h4, +.card-header h5, +.card-header h6 { + line-height: 1.2; +} + +@media screen and (max-width: 745px) { + .card-image.card-image--right { + margin: 0 auto; + order: -1; + } + + .card-image.card-image--right img { + height: auto; + max-width: 100%; + } + + .card.article.article--big .card-header h2 { + font-size: 35px; + } + + .card.article.article--big .text { + font-size: 24px; + line-height: 1.35; + } +} \ No newline at end of file diff --git a/public/assets/css/components/container.css b/public/assets/css/components/container.css new file mode 100644 index 00000000..5d320866 --- /dev/null +++ b/public/assets/css/components/container.css @@ -0,0 +1,13 @@ +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; +} + +.container--medium { + max-width: 900px; +} + +.container--no-padding { + padding: 0; +} \ No newline at end of file diff --git a/public/assets/css/components/contributors.css b/public/assets/css/components/contributors.css new file mode 100644 index 00000000..e69de29b diff --git a/public/assets/css/components/divider.css b/public/assets/css/components/divider.css new file mode 100644 index 00000000..d669ae90 --- /dev/null +++ b/public/assets/css/components/divider.css @@ -0,0 +1,9 @@ +.divider { + --divider-bg-color: var(--secondary-bg-color); +} + +.divider { + height: 1px; + background-color: var(--divider-bg-color); + margin: 0 0 10px 0; +} \ No newline at end of file diff --git a/public/assets/css/components/flexGrid.css b/public/assets/css/components/flexGrid.css new file mode 100644 index 00000000..2b38ef2c --- /dev/null +++ b/public/assets/css/components/flexGrid.css @@ -0,0 +1,43 @@ +.flexGrid { + display: grid; + gap: 20px; + grid-template-columns: 1fr 1fr 1fr; + width: 100%; +} + +.flexGrid.flexGrid--2 { + display: grid; + gap: 20px; + grid-template-columns: 1fr 1fr; +} + +.flexGrid.flexGrid--4 { + display: grid; + gap: 20px; + grid-template-columns: 1fr 1fr 1fr 1fr; +} + +.flexGrid-item.flexGrid-item--2 { + grid-column: span 2; +} + +.flexGrid-item.flexGrid-item--3 { + grid-column: span 3; +} + +.flexGrid-item.flexGrid-item--4 { + grid-column: span 4; +} + +@media screen and (max-width: 745px) { + .flexGrid { + display: flex; + flex-direction: column; + } + + .flexGrid.flexGrid--2, + .flexGrid.flexGrid--3, + .flexGrid.flexGrid--4 { + display: flex; + } +} \ No newline at end of file diff --git a/public/assets/css/components/flexList.css b/public/assets/css/components/flexList.css new file mode 100644 index 00000000..875b7a60 --- /dev/null +++ b/public/assets/css/components/flexList.css @@ -0,0 +1,6 @@ +.flexList { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 20px; +} \ No newline at end of file diff --git a/public/assets/css/components/font.css b/public/assets/css/components/font.css new file mode 100644 index 00000000..91ee9cfb --- /dev/null +++ b/public/assets/css/components/font.css @@ -0,0 +1,11 @@ +.font { + font-size: 4rem; +} + +.font.font--outfit { + font-family: "Outfit", sans-serif; +} + +.font.font--pacifico { + font-family: "Pacifico", cursive; +} \ No newline at end of file diff --git a/public/assets/css/components/form.css b/public/assets/css/components/form.css new file mode 100644 index 00000000..22c27473 --- /dev/null +++ b/public/assets/css/components/form.css @@ -0,0 +1,50 @@ +.card { + --form-field-bg-color: var(--secondary-bg-color-alt); + --form-field-focus-border-color: var(--secondary-bg-color); +} + +.form { + display: flex; + flex-direction: column; + gap: 20px; +} + +.form-wrapper { + display: flex; + gap: 20px; + flex-direction: column; +} + +.form input, +.form select, +.form textarea { + border: 0; + outline: none; + font-size: 18px; + background-color: transparent; +} + +.form-group { + display: flex; + flex-wrap: wrap; + gap: 10px; + flex-direction: row; +} + +.form-field { + background: var(--form-field-bg-color); + padding: 9px; + border-radius: 12px; + border: 3px solid transparent; + display: flex; + align-items: center; + gap: 10px; +} + +.form-group-item { + flex-grow: 1; +} + +.form-field:focus-within { + border-color: var(--form-field-focus-border-color); +} \ No newline at end of file diff --git a/public/assets/css/components/hero.css b/public/assets/css/components/hero.css new file mode 100644 index 00000000..edfdad91 --- /dev/null +++ b/public/assets/css/components/hero.css @@ -0,0 +1,225 @@ +.hero { + --hero-heading-color: var(--accent-yellow-bg-color-vivid); + --hero-heading-sub-color: var(--text-color); + --hero-gn-purple-color: var(--text-color-alt); + --hero-gn-purple-start: #201026; + --hero-gn-purple-end: #2F0E3A; +} + +.hero-heading { + color: var(--hero-heading-color); +} + +.hero-wrapper { + display: inline-flex; + align-items: center; + justify-content: flex-end; + gap: 15px; + z-index: 1; + position: relative; + width: 100%; +} + +.hero--inverted .hero-wrapper { + justify-content: flex-start; +} + +.hero-content { + flex: 1 0 auto; + max-width: 600px; + text-align: left; + order: 2; + display: flex; + flex-direction: column; + gap: 60px; +} + +.hero-image { + display: block; + margin: 2rem auto 0; + max-height: 93vh; + flex: 0 0 auto; + order: 2; +} + +.hero { + padding: 50px 0; + position: relative; + overflow: hidden; + text-align: center; + display: flex; + align-items: center; +} + +.hero--bg-center { + overflow: initial; +} + +.hero-heading h2 { + font-size: 86px; + font-weight: 900; + line-height: 40px; + margin: 0 0 32px 0; +} + +.hero-heading h2 span { + font-weight: 400; + font-size: 47px; + color: var(--hero-heading-sub-color); +} + +.hero--big { + height: calc(100vh - 81px); +} + +.hero--inverted .hero-content { + order: 1; +} + +.hero-heading b { + font-weight: 400; + font-size: 38px; +} + +.hero .text { + font-size: 26px; + line-height: 1.2; +} + +.hero-heading { + color: var(--hero-heading-color); +} + +.hero:not(.hero--no-margin) { + margin: 10px 0; +} + +.hero.hero--bg-center .hero-wrapper { + display: flex; + align-items: center; + justify-content: center; + position: relative; + flex-direction: column; +} + +.hero.hero--bg-center .hero-image { + max-height: initial; + order: initial; + margin: initial; +} + +.hero.hero--bg-center .hero-content { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + max-width: initial; + display: flex; + align-items: center; + justify-content: center; + text-align: center; +} + +.hero-back { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; +} + +.hero-back video { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + height: 150vh; + opacity: .2; +} + +.hero--no-margin { + padding: 0; +} + +.hero--gn-purple { + background: linear-gradient(130deg, var(--hero-gn-purple-start) 0%, var(--hero-gn-purple-end) 100%); + color: var(--hero-gn-purple-color); +} + +.hero.hero--bg-center { + height: initial; + display: initial; +} + +@media screen and (max-width: 745px) { + .hero:not(.hero--no-margin) { + margin: 0; + } + + .hero { + /* overflow: hidden; */ + padding: 50px 0; + overflow: hidden; + } + + .hero--big { + height: initial; + min-height: 80vh; + } + + .hero.hero--bg-center .hero-image { + max-width: inherit; + } + + .hero-heading b { + font-size: 24px; + } + + .hero-content .text { + text-align: center; + } + + .hero:not(.hero--no-margin).hero--extra-margin { + margin: initial; + } + + .hero-wrapper { + display: flex; + flex-direction: column; + overflow: hidden; + } + + .hero-image { + max-width: 100%; + } + + .hero.hero--bg-center .hero-wrapper { + padding: 0; + } + + .hero-heading h2 { + font-size: 62px; + margin: 0 0 20px 0; + } + + .hero-heading h2 span { + font-size: 27px; + } + + .hero-heading { + text-align: center; + } + + .hero-footer { + display: flex; + justify-content: center; + text-align: center; + } + + .hero-footer .flexList { + display: flex; + align-items: center; + } +} \ No newline at end of file diff --git a/public/assets/css/components/imageSlider.css b/public/assets/css/components/imageSlider.css new file mode 100644 index 00000000..c4190032 --- /dev/null +++ b/public/assets/css/components/imageSlider.css @@ -0,0 +1,34 @@ +.imageSlider { + display: flex; + overflow-x: hidden; + align-items: stretch; +} + +.imageSlider-item { + flex: 0 0 100%; + transition: transform 0.3s ease; + transform: translateX(100%); + visibility: hidden; + display: flex; + align-items: center; + justify-content: center; + width: 100%; +} + +.imageSlider-item img { + height: 100%; + object-fit: cover; + cursor: pointer; +} + +.imageSlider-item:first-of-type.active { + transform: translateX(-0%); +} + +.imageSlider-nav { + display: flex; + gap: 10px; + align-items: center; + justify-content: center; + margin-bottom: 20px; +} \ No newline at end of file diff --git a/public/assets/css/components/img.css b/public/assets/css/components/img.css new file mode 100644 index 00000000..d05a12b7 --- /dev/null +++ b/public/assets/css/components/img.css @@ -0,0 +1,57 @@ +.img { + --img-bg-color: var(--secondary-bg-color); + --img-bg-color-dark: var(--dark-bg-color); +} + +.img.img--16 { + height: 16px; +} + +.img.img--24 { + height: 24px; +} + +.img.img--32 { + height: 32px; +} + +.img.img--48 { + height: 48px; +} + +.img.img--64 { + height: 64px; +} + +.img.img--96 { + height: 96px; +} + +.img.img--128 { + height: 128px; +} + +.img.img--256 { + height: 256px; +} + +.img.img--512 { + height: 512px; +} + +.img.img--fit img { + object-fit: cover; + max-width: 100%; +} + +.img.card { + background-color: var(--img-bg-color); +} + +.img.img--no-bg { + background-color: transparent; +} + +.img.img--bg-dark { + background-color: var(--img-bg-color-dark); +} \ No newline at end of file diff --git a/public/assets/css/components/modal.css b/public/assets/css/components/modal.css new file mode 100644 index 00000000..5595da25 --- /dev/null +++ b/public/assets/css/components/modal.css @@ -0,0 +1,26 @@ +.modal { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; + padding: 30px; + z-index: 1; +} + +.modal-wrapper { + max-height: 70vh; + position: relative; + z-index: 2; +} + +.modal.modal--large-height .modal-wrapper { + max-height: 86vh; +} + +.modal .btn--close { + z-index: 2; +} \ No newline at end of file diff --git a/public/assets/css/components/navigationBar.css b/public/assets/css/components/navigationBar.css new file mode 100644 index 00000000..381b58a5 --- /dev/null +++ b/public/assets/css/components/navigationBar.css @@ -0,0 +1,71 @@ +.navigationBar { + --navbar-link-color: var(--text-color); + --navbar-border-color: var(--secondary-bg-color); + --navbar-background-color: var(--backdrop-bg-color); + --navbar-active-background-color: var(--text-color); + --navbar-active-link-color: var(--text-color-alt); + --navbar-dimmed-link-color: var(--text-color-dimmed); + --navbar-hover-background-color: var(--body-bg-color); +} + +.navigationBar ul a { + text-decoration: none; + font-size: 18px; + color: var(--navbar-link-color); +} + +.navigationBar { + border-color: var(--navbar-border-color); + background-color: var(--navbar-background-color); + /* border-top-width: 1px; */ + border-bottom-width: 1px; + border-style: solid; + display: flex; + align-items: center; + justify-content: center; + padding: 8px; + font-size: 19px; + position: sticky; + top: -1px; + z-index: 2; + backdrop-filter: saturate(180%) blur(20px); +} + +.navigationBar ul { + display: flex; + gap: 10px; + align-items: center; + justify-content: center; +} + +.navigationBar ul li a, +.navigationBar ul li span { + padding: 6px 17px; + display: block; + cursor: pointer; +} + +.navigationBar ul li { + background-color: transparent; + transition: background-color .2s ease-in-out; + border-radius: 30px; +} + +.navigationBar ul li.active { + background-color: var(--navbar-active-background-color); +} + +.navigationBar ul li.active a, +.navigationBar ul li.active span { + color: var(--navbar-active-link-color); +} + +.navigationBar ul li:not(.active):hover { + background-color: var(--navbar-hover-background-color); +} + +@media screen and (max-width: 745px) { + .navigationBar { + display: none; + } +} \ No newline at end of file diff --git a/public/assets/css/components/notebook.css b/public/assets/css/components/notebook.css new file mode 100644 index 00000000..fd58ec0f --- /dev/null +++ b/public/assets/css/components/notebook.css @@ -0,0 +1,56 @@ +.notbook { + display: flex; + flex-direction: column; +} + +.notbook-wrapper { + display: flex; + flex-direction: column; + align-items: stretch; +} + +.notebook-header { + display: flex; + align-items: center; + justify-content: center; + gap: 20px; +} + +.notebook-header-item { + font-size: 21px; + position: relative; + padding-bottom: 10px; + cursor: pointer; +} + +.notebook-header-item::after { + content: ""; + position: absolute; + bottom: 0; + left: 0; + right: 0; + margin: 0 auto; + display: block; + height: 3px; + border-radius: 10px; + background: transparent; + width: 20%; +} + +.notebook-header-item.active::after { + background: #000; +} + +.notebook-header-item.active { + font-weight: 600; +} + +.notebook-wrapper { + display: flex; + flex-direction: column; + gap: 30px; +} + +.notebook { + margin: 25px 0; +} \ No newline at end of file diff --git a/public/assets/css/components/overlay.css b/public/assets/css/components/overlay.css new file mode 100644 index 00000000..e1dc4609 --- /dev/null +++ b/public/assets/css/components/overlay.css @@ -0,0 +1,14 @@ +.overlay { + --overlay-background-color: var(--backdrop-bg-color); +} + +.overlay { + background-color: var(--overlay-background-color); + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + backdrop-filter: saturate(180%) blur(20px); + z-index: 2; +} \ No newline at end of file diff --git a/public/assets/css/components/page.css b/public/assets/css/components/page.css new file mode 100644 index 00000000..a9173de2 --- /dev/null +++ b/public/assets/css/components/page.css @@ -0,0 +1,65 @@ +.page { + --page-header-divider-color: var(--text-color); +} + +.page-header h1 { + font-size: 76px; + font-weight: 800; +} + +.page-header p { + font-size: 29px; + font-weight: 400; +} + +.page-header { + padding: 50px 0; + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 19px; + position: relative; +} + +.page.page--article .page-header h1 { + font-size: 54px; +} + +.page.page--article .page-header p { + font-size: 24px; + line-height: 30px; +} + +.page.page--article .page-header::after { + content: ""; + display: block; + height: 1px; + width: 30%; + background-color: var(--page-header-divider-color); + margin: 30px 0 0 0; +} + +.page-actions { + position: absolute; + bottom: 30px; + right: 0; +} + +.page.page--article .page-content .text { + font-size: 22px; + line-height: 36px; +} + +.page .toolBox { + margin-bottom: -24px; +} + +.page-nav .btn.btn--link { + color: var(--btn-color); +} + +@media screen and (max-width: 745px) { + .page-header h1 { + font-size: 48px; + } +} \ No newline at end of file diff --git a/public/assets/css/components/searchBar.css b/public/assets/css/components/searchBar.css new file mode 100644 index 00000000..e25f3592 --- /dev/null +++ b/public/assets/css/components/searchBar.css @@ -0,0 +1,99 @@ +.searchBar { + --searchBar-link-color: var(--text-color-deep); + --searchBar-border-color: var(--secondary-bg-color); + --searchBar-field-background-color: var(--secondary-bg-color-alt); + --searchBar-field-active-background-color: var(--body-bg-color); +} + +.searchBar.active .searchBar-field { + width: 70vw; + background: var(--searchBar-field-active-background-color); + box-shadow: var(--base-shadow); + padding: 15px 25px; +} + +.searchBar-input { + border: 0; + font-size: 19px; + outline: none; + background-color: transparent; + width: 100%; +} + +.searchBar { + border: 0; + font-size: 19px; + outline: none; + background-color: transparent; + position: relative; + top: 2px; + z-index: 1; +} + +.searchBar-field { + display: flex; + max-width: 500px; + align-items: center; + justify-content: flex-start; + background: var(--searchBar-field-background-color); + padding: 6px 10px; + border-radius: 12px; + transition: width 0.3s ease-in-out; + width: 53px; + overflow: hidden; + gap: 10px; + box-shadow: 0 0 0 0 transparent; +} + +.searchBar-icon { + position: relative; + top: 2px; + cursor: pointer; +} + +.searchBar-shortcut>.mdi { + position: relative; + top: 0px; + cursor: pointer; + font-size: 15px; + font-weight: 900; +} + +.searchBar-icon>.mdi { + font-size: 20px; +} + +.searchBar-shortcut { + display: flex; +} + +.searchBar-shortcut>.mdi+span { + font-size: 14px; + font-weight: 500; +} + +.searchBar-results { + position: absolute; + top: 76px; + left: 0; + right: 0; + max-height: 70vh; + overflow-y: auto; +} + +.searchBar-wrapper { + position: relative; + z-index: 2; +} + +.searchBar.active { + position: fixed; + z-index: 1; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: 20px; + display: flex; + justify-content: center; +} \ No newline at end of file diff --git a/public/assets/css/components/siteFooter.css b/public/assets/css/components/siteFooter.css new file mode 100644 index 00000000..7c39e37a --- /dev/null +++ b/public/assets/css/components/siteFooter.css @@ -0,0 +1,64 @@ +.siteFooter { + --footer-link-color: var(--text-color-deep); + --footer-border-color: var(--secondary-bg-color); + --footer-background-color: var(--secondary-bg-color-alt); +} + +.siteFooter a { + text-decoration: none; + color: var(--footer-link-color); +} + +small a, +.siteFooter a { + color: var(--footer-link-color); +} + +.siteFooter-logo img { + height: 24px; +} + +.siteFooter-header { + display: flex; + align-items: center; + gap: 10px; + padding: 0 0 20px 0; + border-bottom: 1px solid var(--footer-border-color); +} + +.siteFooter-navigation ul { + display: flex; + gap: 10px; +} + +.siteFooter { + margin: 24px 0 0 0; + padding: 20px 0 40px; + background-color: var(--footer-background-color); +} + +.siteFooter-sitemap { + display: flex; + justify-content: space-between; + gap: 10px; + margin: 20px 0 20px 0; +} + +.siteFooter-sitemap ul { + display: flex; + flex-direction: column; + justify-content: flex-start; + gap: 15px; +} + +.siteFooter-sitemap ul li b { + font-weight: 600; +} + +@media screen and (max-width: 745px) { + .siteFooter-sitemap { + display: flex; + flex-direction: column; + gap: 30px; + } +} \ No newline at end of file diff --git a/public/assets/css/components/spacer.css b/public/assets/css/components/spacer.css new file mode 100644 index 00000000..eade5c15 --- /dev/null +++ b/public/assets/css/components/spacer.css @@ -0,0 +1,3 @@ +.spacer { + height: 5px; +} \ No newline at end of file diff --git a/public/assets/css/components/splitter.css b/public/assets/css/components/splitter.css new file mode 100644 index 00000000..8d1c4268 --- /dev/null +++ b/public/assets/css/components/splitter.css @@ -0,0 +1,26 @@ +.splitter { + display: flex; + justify-content: space-between; + align-items: flex-start; + flex-wrap: nowrap; + flex-direction: row; +} + +.splitter-item { + width: 50%; +} + +@media screen and (max-width: 745px) { + .splitter { + display: flex; + flex-direction: column; + } + + .splitter-item { + width: initial; + } + + .splitter-item.card-image { + order: -1; + } +} \ No newline at end of file diff --git a/public/assets/css/components/text.css b/public/assets/css/components/text.css new file mode 100644 index 00000000..a2f1776a --- /dev/null +++ b/public/assets/css/components/text.css @@ -0,0 +1,130 @@ +.text { + --text-dimmed-color: var(--text-color-dimmed); + --text-rich-color: var(--text-color); + --text-link-color: var(--text-color-deep); + --text-link-hover-color: var(--text-color); + --text-blockquote-background: var(--accent-yellow-bg-color-light); + --text-blockquote-pill-background: var(--accent-yellow-bg-color-vivid); + --text-code-color: #E9E9F4; + --text-code-background: #282936; + --text-figcaption-color: var(--secondary-bg-color); +} + +.text.text--dimmed { + color: var(--text-dimmed-color); +} + +.text.text--spaced p { + margin: 0 0 50px 0; +} + +.text--rich p, +.text--rich li { + line-height: 1.6; + color: var(--text-rich-color); + font-size: 25px; +} + +.text--rich img { + max-width: 100%; + height: auto; + display: block; + margin: 20px auto; +} + +.text--rich blockquote { + padding: 10px 20px; + margin: 20px 0 20px 23px; + position: relative; + border-radius: 10px; + background: var(--text-blockquote-background); +} + +.text a { + color: var(--text-link-color); + text-decoration: underline; + font-weight: 500; +} + +.text a:hover { + color: var(--text-link-hover-color); + text-decoration: underline; +} + +.text--rich ul, +.text--rich ol { + margin: 20px 0 20px 6px; + padding-left: 20px; +} + +.text--rich ul li, +.text--rich ol li { + line-height: 1.6; +} + +.text--rich ul li { + list-style-type: disc; +} + +.text--rich ol li { + list-style-type: decimal; +} + +.text--rich pre { + padding: 30px; + overflow-x: auto; + font-family: "Courier New", monospace; + font-size: 14px; + line-height: 1.4; + margin: 20px 0; + border: 0; + border-radius: 12px; + background: var(--text-code-background); +} + +.text--rich code { + padding: 2px 5px; + color: var(--text-code-color); + font-family: Fira Code; + font-size: 22px; + font-weight: 500; + background-color: var(--text-code-background); + border-radius: 12px; +} + +.text--rich figcaption { + font-style: italic; + font-size: 14px; + color: var(--text-figcaption-color); + margin-top: 10px; +} + +.text--rich p { + margin: 0 0 40px 0; +} + +.text--rich blockquote p { + margin: 0; + font-size: 22px; +} + +.text--rich blockquote::before { + content: ""; + display: block; + position: absolute; + height: 35%; + width: 9px; + border-radius: 10px; + top: 34%; + bottom: 0; + background: var(--text-blockquote-pill-background); + margin: 0 0 0 -44px; +} + +.text--rich ul li p { + margin: 0 0 0 0; +} + +.text small { + font-size: 16px; +} \ No newline at end of file diff --git a/public/assets/css/components/timeline.css b/public/assets/css/components/timeline.css new file mode 100644 index 00000000..c34a23fb --- /dev/null +++ b/public/assets/css/components/timeline.css @@ -0,0 +1,120 @@ +.timeline { + --timeline-progressbar-meter-border-color: var(--body-bg-color); + --timeline-progressbar-meter-green: var(--accent-green-bg-color); + --timeline-progressbar-meter-green-text-color: var(--accent-green-text-color); + --timeline-progressbar-meter-brown: var(--accent-brown-bg-color); + --timeline-progressbar-meter-brown-text-color: var(--accent-brown-text-color); + --timeline-progressbar-meter-purple: var(--accent-purple-bg-color); + --timeline-progressbar-meter-purple-text-color: var(--accent-purple-text-color); + --timeline-progressbar-meter-red: var(--accent-red-bg-color); + --timeline-progressbar-meter-red-text-color: var(--accent-red-text-color); + --timeline-events-item-border-color: var(--secondary-bg-color); +} + +.timeline-progressbar { + display: flex; + flex-direction: column; + gap: 20px; +} + +.timeline-progressbar-header .text { + font-size: 21px; +} + +.timeline-progressbar-header .text b { + font-weight: 600; +} + +.timeline-progressbar-meter { + position: relative; + border-radius: 40px; + display: flex; +} + +.timeline-progressbar-content { + min-height: 100px; +} + +.timeline-progressbar-meter-item { + height: 8px; + background: #cdcdcd; + border-radius: 60px; + border: 3px solid var(--timeline-progressbar-meter-border-color); + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; +} + +.timeline-progressbar-meter-item>label { + margin: -1px 0 0 6px; + display: block; + font-weight: 500; + flex-grow: 1; + width: 100%; +} + +.timeline-progressbar-meter-item .mdi { + text-shadow: 4px 0 var(--timeline-progressbar-meter-border-color), -4px 0 var(--timeline-progressbar-meter-border-color), 0 4px var(--timeline-progressbar-meter-border-color), 0 -4px var(--timeline-progressbar-meter-border-color), 3px 3px var(--timeline-progressbar-meter-border-color), -3px -3px var(--timeline-progressbar-meter-border-color), 3px -3px var(--timeline-progressbar-meter-border-color), -3px 3px var(--timeline-progressbar-meter-border-color); + position: relative; + top: -7px; +} + +.timeline-events-content { + display: flex; + flex-direction: column; + gap: 20px; + padding-left: 20px; + border-left: 3px solid var(--timeline-events-item-border-color); +} + +.timeline-events-item::after { + content: ""; + display: block; + position: absolute; + top: 30px; + left: -25px; + bottom: 0; + height: 40px; + width: 6px; + background: #6f6f6f; + border-radius: 60px; +} + +.timeline-events-item { + position: relative; + overflow: initial; +} + +.timeline-progressbar-meter-item.timeline-progressbar-meter-item--green { + background: var(--timeline-progressbar-meter-green); + color: var(--timeline-progressbar-meter-green-text-color); +} + +.timeline-progressbar-meter-item.timeline-progressbar-meter-item--brown { + background: var(--timeline-progressbar-meter-brown); + color: var(--timeline-progressbar-meter-brown-text-color); +} + +.timeline-progressbar-meter-item.timeline-progressbar-meter-item--purple { + background: var(--timeline-progressbar-meter-purple); + color: var(--timeline-progressbar-meter-purple-text-color); +} + +.timeline-progressbar-meter-item.timeline-progressbar-meter-item--red { + background: var(--timeline-progressbar-meter-red); + color: var(--timeline-progressbar-meter-red-text-color); +} + +@media screen and (max-width: 745px) { + .timeline-progressbar-meter { + display: flex; + flex-direction: column; + gap: 40px; + margin: 0 0 60px 0; + } + + .timeline-progressbar-meter-item>label { + white-space: nowrap; + } +} \ No newline at end of file diff --git a/public/assets/css/components/toc.css b/public/assets/css/components/toc.css new file mode 100644 index 00000000..6cd4d929 --- /dev/null +++ b/public/assets/css/components/toc.css @@ -0,0 +1,9 @@ +.toc { + --toc-active-link-color: var(--text-color-alt); +} + +.toc ul a { + text-decoration: none; + font-size: 18px; + color: var(--toc-link-color); +} \ No newline at end of file diff --git a/public/assets/css/components/toolBox.css b/public/assets/css/components/toolBox.css new file mode 100644 index 00000000..93772235 --- /dev/null +++ b/public/assets/css/components/toolBox.css @@ -0,0 +1,115 @@ +.toolBox { + --toolbox-link-color: var(--text-color); + --toolbox-border-color: var(--secondary-bg-color); + --toolbox-background-color: var(--backdrop-bg-color); + --toolbox-active-background-color: var(--text-color); + --toolbox-active-link-color: var(--text-color-alt); + --toolbox-dimmed-link-color: var(--text-color-dimmed); + --toolbox-hover-background-color: var(--body-bg-color); +} + +.toolBox { + border-color: var(--toolbox-border-color); + background-color: var(--toolbox-background-color); + border-top-width: 1px; + border-bottom-width: 1px; + border-style: solid; + display: flex; + align-items: stretch; + justify-content: center; + font-size: 19px; + backdrop-filter: blur(20px); + position: sticky; + bottom: 0px; + margin: 40px 0 0 0; + flex-direction: column; +} + +.toolBox-wrapper { + display: flex; + justify-content: center; + align-items: center; + gap: 20px; + padding: 15px; + width: 100%; +} + +.toolBox-item { + display: flex; + align-items: center; + font-size: 18px; + position: relative; + gap: 5px; +} + +.toolBox-item-label { + position: absolute; + background-color: #242424; + color: #fff; + padding: 9px 12px; + font-size: 14px; + border-radius: 12px; + white-space: nowrap; + margin: 0 0 70px 0; + opacity: 0; + transition: opacity .3s ease-in-out; +} + +.toolBox-item-icon:hover~.toolBox-item-label { + opacity: 1; +} + +.toolBox-item .mdi { + font-size: 21px; +} + +.toolBox-item-text { + font-size: 16px; +} + +.toolBox-panels-item { + overflow: hidden; + height: 0; + opacity: 0; + pointer-events: none; + transition: height .3s ease-in-out, opacity .3s ease-in-out; + padding: 0; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: var(--toolbox-border-color); +} + +.toolBox-item.toolBox-item--grow { + margin-right: auto; +} + +.toolBox-panels-item.active { + height: initial; + opacity: 1; + pointer-events: auto; + padding: 30px 0; + max-height: calc(100vh - 110px); + overflow: auto; +} + +.toc-item-level-3 { + margin: 0 0 0 10px; +} + +.toc-item-level-4 { + margin: 0 0 0 20px; +} + +.toc-item-level-5 { + margin: 0 0 0 30px; +} + +a.toc-item-level-6 { + margin: 0 0 0 40px; +} + +ul.toc-list { + display: flex; + flex-direction: column; + gap: 10px; +} \ No newline at end of file diff --git a/public/assets/css/components/topBar.css b/public/assets/css/components/topBar.css new file mode 100644 index 00000000..0fa3ff95 --- /dev/null +++ b/public/assets/css/components/topBar.css @@ -0,0 +1,127 @@ +.topBar { + --topBar-text-color: var(--text-color); + --topBar-active-link-color: var(--text-color-deep); +} + +.topBar-logo img { + height: 36px; +} + +.topBar-wrapper { + display: flex; + align-items: center; + justify-content: space-between; + gap: 20px; +} + +.topBar-navigation { + display: flex; + align-items: center; + gap: 30px; +} + +.topBar { + padding: 20px 0; +} + +.topBar-navigation a { + text-decoration: none; +} + +.topBar-navigation a { + font-size: 18px; + color: var(--topBar-text-color); +} + +.topBar-navigation a.router-link-exact-active::after { + content: ""; + width: 20px; + height: 3px; + display: block; + background: var(--topBar-active-link-color); + margin: 0 auto; + position: absolute; + bottom: -11px; + left: 0; + right: 0; + border-radius: 20px; +} + +.topBar-navigation li { + position: relative; +} + +.topBar-search { + margin-left: auto; +} + +.topBar-hamburger { + display: none; +} + +.topBar-hamburger-wrapper { + position: relative; + display: block; + width: 24px; + cursor: pointer; + top: -4px; + transition: top 0.3s; +} + +.topBar-hamburger-wrapper.active { + top: 0; + z-index: 2; +} + +.topBar-hamburger-wrapper div { + position: absolute; + width: 100%; + height: 2px; + background-color: var(--topBar-text-color); + transition: transform 0.3s; +} + +.topBar-hamburger-wrapper div:nth-child(1) { + top: 0; +} + +.topBar-hamburger-wrapper div:nth-child(2) { + top: 9px; +} + +.topBar-hamburger-wrapper.active div:nth-child(1) { + transform: translateY(0) rotate(45deg); +} + +.topBar-hamburger-wrapper.active div:nth-child(2) { + transform: translateY(-9px) rotate(-45deg); +} + +@media screen and (max-width: 745px) { + .topBar-navigation { + position: absolute; + top: 50px; + left: 0; + right: 0; + margin: 20px; + display: flex; + flex-direction: column; + padding: 30px 10px; + z-index: 999; + border-radius: 12px; + background-color: var(--body-bg-color); + box-shadow: var(--base-shadow); + opacity: 0; + pointer-events: none; + transition: opacity 0.3s ease-in-out; + } + + .topBar-navigation.active { + opacity: 1; + pointer-events: all; + } + + .topBar-hamburger { + display: block; + } +} \ No newline at end of file diff --git a/public/assets/css/fonts.css b/public/assets/css/fonts.css new file mode 100644 index 00000000..832f1365 --- /dev/null +++ b/public/assets/css/fonts.css @@ -0,0 +1,5 @@ +@import url('https://fonts.googleapis.com/css?family=Material+Icons|Material+Icons+Outlined|Material+Icons+Two+Tone|Material+Icons+Round|Material+Icons+Sharp'); +@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100;200;300;400;500;600;700;800;900&display=swap'); +@import url('https://fonts.googleapis.com/css?family=Fira+Code&display=swap'); +@import url('https://fonts.googleapis.com/css?family=Pacifico&display=swap'); +@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css'); \ No newline at end of file diff --git a/public/assets/css/index.css b/public/assets/css/index.css new file mode 100644 index 00000000..51bb9648 --- /dev/null +++ b/public/assets/css/index.css @@ -0,0 +1,37 @@ +@import url('fonts.css'); +@import url('reset.css'); +@import url('common.css'); +@import url('animations.css'); + +@import url('components/badge.css'); +@import url('components/btn.css'); +@import url('components/card.css'); +@import url('components/container.css'); +@import url('components/contributors.css'); +@import url('components/divider.css'); +@import url('components/flexGrid.css'); +@import url('components/flexList.css'); +@import url('components/font.css'); +@import url('components/form.css'); +@import url('components/hero.css'); +@import url('components/navigationBar.css'); +@import url('components/modal.css'); +@import url('components/imageSlider.css'); +@import url('components/img.css'); +@import url('components/notebook.css'); +@import url('components/overlay.css'); +@import url('components/page.css'); +@import url('components/searchBar.css'); +@import url('components/siteFooter.css'); +@import url('components/splitter.css'); +@import url('components/spacer.css'); +@import url('components/text.css'); +@import url('components/timeline.css'); +@import url('components/toc.css'); +@import url('components/toolBox.css'); +@import url('components/topBar.css'); + +@import url('colors/default.css'); +@import url('colors/dark.css'); +@import url('colors/classes.css'); +@import url('print.css'); \ No newline at end of file diff --git a/public/assets/css/print.css b/public/assets/css/print.css new file mode 100644 index 00000000..76900b7a --- /dev/null +++ b/public/assets/css/print.css @@ -0,0 +1,10 @@ +@media print { + + .topBar, + .siteFooter, + .page-actions, + .card.card--type-adv, + .toolBox { + display: none; + } +} \ No newline at end of file diff --git a/public/assets/css/reset.css b/public/assets/css/reset.css new file mode 100644 index 00000000..299a6d16 --- /dev/null +++ b/public/assets/css/reset.css @@ -0,0 +1,135 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} + +body { + line-height: 1; +} + +ol, +ul { + list-style: none; +} + +blockquote, +q { + quotes: none; +} + +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ''; + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} \ No newline at end of file diff --git a/assets/images/home-apps.png b/public/assets/images/backgrounds/apps-overview.png similarity index 100% rename from assets/images/home-apps.png rename to public/assets/images/backgrounds/apps-overview.png diff --git a/public/assets/images/backgrounds/apx-console.svg b/public/assets/images/backgrounds/apx-console.svg new file mode 100644 index 00000000..d8172cbf --- /dev/null +++ b/public/assets/images/backgrounds/apx-console.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/backgrounds/popular-games.svg b/public/assets/images/backgrounds/popular-games.svg new file mode 100644 index 00000000..7c19335b --- /dev/null +++ b/public/assets/images/backgrounds/popular-games.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/backgrounds/rnote.svg b/public/assets/images/backgrounds/rnote.svg new file mode 100644 index 00000000..f58fe25f --- /dev/null +++ b/public/assets/images/backgrounds/rnote.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/backgrounds/solid-circuit.svg b/public/assets/images/backgrounds/solid-circuit.svg new file mode 100644 index 00000000..7228f83d --- /dev/null +++ b/public/assets/images/backgrounds/solid-circuit.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/backgrounds/vib-recipe-dark.svg b/public/assets/images/backgrounds/vib-recipe-dark.svg new file mode 100644 index 00000000..a3e6bca0 --- /dev/null +++ b/public/assets/images/backgrounds/vib-recipe-dark.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/backgrounds/vib-recipe.svg b/public/assets/images/backgrounds/vib-recipe.svg new file mode 100644 index 00000000..7f1f6520 --- /dev/null +++ b/public/assets/images/backgrounds/vib-recipe.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/assets/images/home-laptop-dark.svg b/public/assets/images/backgrounds/vos-kinetic-laptop-frame-dark.svg similarity index 100% rename from assets/images/home-laptop-dark.svg rename to public/assets/images/backgrounds/vos-kinetic-laptop-frame-dark.svg diff --git a/assets/images/home-laptop.svg b/public/assets/images/backgrounds/vos-kinetic-laptop-frame.svg similarity index 100% rename from assets/images/home-laptop.svg rename to public/assets/images/backgrounds/vos-kinetic-laptop-frame.svg diff --git a/public/assets/images/backgrounds/vos-laptop-frame-dark.svg b/public/assets/images/backgrounds/vos-laptop-frame-dark.svg new file mode 100644 index 00000000..657fd2cc --- /dev/null +++ b/public/assets/images/backgrounds/vos-laptop-frame-dark.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/backgrounds/vos-laptop-frame.svg b/public/assets/images/backgrounds/vos-laptop-frame.svg new file mode 100644 index 00000000..be451676 --- /dev/null +++ b/public/assets/images/backgrounds/vos-laptop-frame.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/brand/vanillaos-color-cararra.svg b/public/assets/images/brand/vanillaos-color-cararra.svg new file mode 100644 index 00000000..7b4f9d9c --- /dev/null +++ b/public/assets/images/brand/vanillaos-color-cararra.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/images/brand/vanillaos-color-mine-shaft.svg b/public/assets/images/brand/vanillaos-color-mine-shaft.svg new file mode 100644 index 00000000..15070ae4 --- /dev/null +++ b/public/assets/images/brand/vanillaos-color-mine-shaft.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/images/brand/vanillaos-color-westar.svg b/public/assets/images/brand/vanillaos-color-westar.svg new file mode 100644 index 00000000..9c45a19c --- /dev/null +++ b/public/assets/images/brand/vanillaos-color-westar.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/images/brand/vanillaos-color-yellow-orange.svg b/public/assets/images/brand/vanillaos-color-yellow-orange.svg new file mode 100644 index 00000000..cfb54423 --- /dev/null +++ b/public/assets/images/brand/vanillaos-color-yellow-orange.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/images/brand/vanillaos-logo-dark.svg b/public/assets/images/brand/vanillaos-logo-dark.svg new file mode 100644 index 00000000..2fce359a --- /dev/null +++ b/public/assets/images/brand/vanillaos-logo-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/icons/first-setup.svg b/public/assets/images/brand/vanillaos-logo-icon.svg similarity index 100% rename from assets/images/icons/first-setup.svg rename to public/assets/images/brand/vanillaos-logo-icon.svg diff --git a/public/assets/images/brand/vanillaos-logo.svg b/public/assets/images/brand/vanillaos-logo.svg new file mode 100644 index 00000000..16897d96 --- /dev/null +++ b/public/assets/images/brand/vanillaos-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/images/components/404.jpg b/public/assets/images/components/404.jpg new file mode 100644 index 00000000..9d45eb6d Binary files /dev/null and b/public/assets/images/components/404.jpg differ diff --git a/public/assets/images/components/newsletter.svg b/public/assets/images/components/newsletter.svg new file mode 100644 index 00000000..f1bc1cec --- /dev/null +++ b/public/assets/images/components/newsletter.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/icons/abroot.svg b/public/assets/images/icons/abroot.svg similarity index 100% rename from assets/images/icons/abroot.svg rename to public/assets/images/icons/abroot.svg diff --git a/assets/images/icons/almost.png b/public/assets/images/icons/almost.png similarity index 100% rename from assets/images/icons/almost.png rename to public/assets/images/icons/almost.png diff --git a/public/assets/images/icons/apx-gui.svg b/public/assets/images/icons/apx-gui.svg new file mode 100644 index 00000000..66dc0200 --- /dev/null +++ b/public/assets/images/icons/apx-gui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/icons/apx.png b/public/assets/images/icons/apx.png similarity index 100% rename from assets/images/icons/apx.png rename to public/assets/images/icons/apx.png diff --git a/assets/images/icons/control-center.svg b/public/assets/images/icons/control-center.svg similarity index 100% rename from assets/images/icons/control-center.svg rename to public/assets/images/icons/control-center.svg diff --git a/assets/images/icons/drivers-utility.svg b/public/assets/images/icons/drivers-utility.svg similarity index 100% rename from assets/images/icons/drivers-utility.svg rename to public/assets/images/icons/drivers-utility.svg diff --git a/assets/images/vanilla-icon.svg b/public/assets/images/icons/first-setup.svg similarity index 100% rename from assets/images/vanilla-icon.svg rename to public/assets/images/icons/first-setup.svg diff --git a/assets/images/icons/installer.svg b/public/assets/images/icons/installer.svg similarity index 100% rename from assets/images/icons/installer.svg rename to public/assets/images/icons/installer.svg diff --git a/assets/images/icons/prime-utility.svg b/public/assets/images/icons/prime-utility.svg similarity index 100% rename from assets/images/icons/prime-utility.svg rename to public/assets/images/icons/prime-utility.svg diff --git a/assets/images/icons/vso.svg b/public/assets/images/icons/vso.svg similarity index 100% rename from assets/images/icons/vso.svg rename to public/assets/images/icons/vso.svg diff --git a/assets/images/logos/media/itsfoss-logo.webp b/public/assets/images/media/itsfoss-logo.webp similarity index 100% rename from assets/images/logos/media/itsfoss-logo.webp rename to public/assets/images/media/itsfoss-logo.webp diff --git a/assets/images/logos/media/omg-linux.png b/public/assets/images/media/omg-linux.png similarity index 100% rename from assets/images/logos/media/omg-linux.png rename to public/assets/images/media/omg-linux.png diff --git a/assets/images/logos/media/techrepublic-logo.svg b/public/assets/images/media/techrepublic-logo.svg similarity index 100% rename from assets/images/logos/media/techrepublic-logo.svg rename to public/assets/images/media/techrepublic-logo.svg diff --git a/assets/images/logos/media/the_register.svg b/public/assets/images/media/the_register.svg similarity index 100% rename from assets/images/logos/media/the_register.svg rename to public/assets/images/media/the_register.svg diff --git a/assets/images/logos/media/zdnet.svg b/public/assets/images/media/zdnet.svg similarity index 100% rename from assets/images/logos/media/zdnet.svg rename to public/assets/images/media/zdnet.svg diff --git a/public/assets/images/orgs/debian.svg b/public/assets/images/orgs/debian.svg new file mode 100644 index 00000000..50dcb70c --- /dev/null +++ b/public/assets/images/orgs/debian.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/orgs/distrobox.svg b/public/assets/images/orgs/distrobox.svg new file mode 100644 index 00000000..ed29f53e --- /dev/null +++ b/public/assets/images/orgs/distrobox.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/orgs/flatpak.svg b/public/assets/images/orgs/flatpak.svg new file mode 100644 index 00000000..62b6719d --- /dev/null +++ b/public/assets/images/orgs/flatpak.svg @@ -0,0 +1,130 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/orgs/gnome.svg b/public/assets/images/orgs/gnome.svg new file mode 100644 index 00000000..29af34c5 --- /dev/null +++ b/public/assets/images/orgs/gnome.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + TM + + + \ No newline at end of file diff --git a/public/assets/images/orgs/go.svg b/public/assets/images/orgs/go.svg new file mode 100644 index 00000000..55a50717 --- /dev/null +++ b/public/assets/images/orgs/go.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/orgs/gtk.svg b/public/assets/images/orgs/gtk.svg new file mode 100644 index 00000000..9edbe2da --- /dev/null +++ b/public/assets/images/orgs/gtk.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/public/assets/images/orgs/linux.svg b/public/assets/images/orgs/linux.svg new file mode 100644 index 00000000..6b558e7b --- /dev/null +++ b/public/assets/images/orgs/linux.svg @@ -0,0 +1,438 @@ + + + Tux + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/orgs/lit.png b/public/assets/images/orgs/lit.png new file mode 100644 index 00000000..098c3fff Binary files /dev/null and b/public/assets/images/orgs/lit.png differ diff --git a/public/assets/images/orgs/oci.svg b/public/assets/images/orgs/oci.svg new file mode 100644 index 00000000..f76cc668 --- /dev/null +++ b/public/assets/images/orgs/oci.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/orgs/vuejs.svg b/public/assets/images/orgs/vuejs.svg new file mode 100644 index 00000000..a1d285eb --- /dev/null +++ b/public/assets/images/orgs/vuejs.svg @@ -0,0 +1,2 @@ + + diff --git a/public/assets/images/patterns/collab.svg b/public/assets/images/patterns/collab.svg new file mode 100644 index 00000000..18059823 --- /dev/null +++ b/public/assets/images/patterns/collab.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/pics/89luca89.jpeg b/public/assets/images/pics/89luca89.jpeg new file mode 100644 index 00000000..74213e33 Binary files /dev/null and b/public/assets/images/pics/89luca89.jpeg differ diff --git a/public/assets/images/pics/axtloss.jpeg b/public/assets/images/pics/axtloss.jpeg new file mode 100644 index 00000000..6b17201f Binary files /dev/null and b/public/assets/images/pics/axtloss.jpeg differ diff --git a/public/assets/images/pics/kbdharun.jpeg b/public/assets/images/pics/kbdharun.jpeg new file mode 100644 index 00000000..55102370 Binary files /dev/null and b/public/assets/images/pics/kbdharun.jpeg differ diff --git a/public/assets/images/pics/kra-mo.jpeg b/public/assets/images/pics/kra-mo.jpeg new file mode 100644 index 00000000..ad52e90b Binary files /dev/null and b/public/assets/images/pics/kra-mo.jpeg differ diff --git a/public/assets/images/pics/matbme.jpeg b/public/assets/images/pics/matbme.jpeg new file mode 100644 index 00000000..0f686fbb Binary files /dev/null and b/public/assets/images/pics/matbme.jpeg differ diff --git a/public/assets/images/pics/mirkobrombin.jpeg b/public/assets/images/pics/mirkobrombin.jpeg new file mode 100644 index 00000000..2ff7ba5b Binary files /dev/null and b/public/assets/images/pics/mirkobrombin.jpeg differ diff --git a/public/assets/images/pics/monsterobserver.jpeg b/public/assets/images/pics/monsterobserver.jpeg new file mode 100644 index 00000000..0fa81f10 Binary files /dev/null and b/public/assets/images/pics/monsterobserver.jpeg differ diff --git a/public/assets/images/pics/muqtxdir.jpeg b/public/assets/images/pics/muqtxdir.jpeg new file mode 100644 index 00000000..be58ff9a Binary files /dev/null and b/public/assets/images/pics/muqtxdir.jpeg differ diff --git a/public/assets/images/pics/orowith2os.png b/public/assets/images/pics/orowith2os.png new file mode 100644 index 00000000..8bc1ce7c Binary files /dev/null and b/public/assets/images/pics/orowith2os.png differ diff --git a/public/assets/images/pics/pietrodicaprio.jpeg b/public/assets/images/pics/pietrodicaprio.jpeg new file mode 100644 index 00000000..aef55a7d Binary files /dev/null and b/public/assets/images/pics/pietrodicaprio.jpeg differ diff --git a/public/assets/images/pics/theevilskeleton.png b/public/assets/images/pics/theevilskeleton.png new file mode 100644 index 00000000..62248cbb Binary files /dev/null and b/public/assets/images/pics/theevilskeleton.png differ diff --git a/public/assets/videos/ron-lach-friends-playing-on-computer.mp4 b/public/assets/videos/ron-lach-friends-playing-on-computer.mp4 new file mode 100644 index 00000000..12bd78e8 Binary files /dev/null and b/public/assets/videos/ron-lach-friends-playing-on-computer.mp4 differ diff --git a/assets/images/favicon.ico b/public/favicon.ico similarity index 100% rename from assets/images/favicon.ico rename to public/favicon.ico diff --git a/assets/uploads/WWC2022/4e6anenk0-dark.png b/public/uploads/WWC2022/4e6anenk0-dark.png similarity index 100% rename from assets/uploads/WWC2022/4e6anenk0-dark.png rename to public/uploads/WWC2022/4e6anenk0-dark.png diff --git a/assets/uploads/WWC2022/4e6anenk0-light.png b/public/uploads/WWC2022/4e6anenk0-light.png similarity index 100% rename from assets/uploads/WWC2022/4e6anenk0-light.png rename to public/uploads/WWC2022/4e6anenk0-light.png diff --git a/assets/uploads/WWC2022/conquodS-dark.png b/public/uploads/WWC2022/conquodS-dark.png similarity index 100% rename from assets/uploads/WWC2022/conquodS-dark.png rename to public/uploads/WWC2022/conquodS-dark.png diff --git a/assets/uploads/WWC2022/conquodS-light.png b/public/uploads/WWC2022/conquodS-light.png similarity index 100% rename from assets/uploads/WWC2022/conquodS-light.png rename to public/uploads/WWC2022/conquodS-light.png diff --git a/assets/uploads/WWC2022/kramo-dark.png b/public/uploads/WWC2022/kramo-dark.png similarity index 100% rename from assets/uploads/WWC2022/kramo-dark.png rename to public/uploads/WWC2022/kramo-dark.png diff --git a/assets/uploads/WWC2022/kramo-light.png b/public/uploads/WWC2022/kramo-light.png similarity index 100% rename from assets/uploads/WWC2022/kramo-light.png rename to public/uploads/WWC2022/kramo-light.png diff --git a/assets/uploads/apx-gui.webp b/public/uploads/apx-gui.webp similarity index 100% rename from assets/uploads/apx-gui.webp rename to public/uploads/apx-gui.webp diff --git a/assets/uploads/drivers-utility.webp b/public/uploads/drivers-utility.webp similarity index 100% rename from assets/uploads/drivers-utility.webp rename to public/uploads/drivers-utility.webp diff --git a/assets/uploads/images.webp b/public/uploads/images.webp similarity index 100% rename from assets/uploads/images.webp rename to public/uploads/images.webp diff --git a/assets/uploads/installer-confirm.png b/public/uploads/installer-confirm.png similarity index 100% rename from assets/uploads/installer-confirm.png rename to public/uploads/installer-confirm.png diff --git a/assets/uploads/installer-installation.png b/public/uploads/installer-installation.png similarity index 100% rename from assets/uploads/installer-installation.png rename to public/uploads/installer-installation.png diff --git a/assets/uploads/installer-keyboard.png b/public/uploads/installer-keyboard.png similarity index 100% rename from assets/uploads/installer-keyboard.png rename to public/uploads/installer-keyboard.png diff --git a/assets/uploads/installer-language.png b/public/uploads/installer-language.png similarity index 100% rename from assets/uploads/installer-language.png rename to public/uploads/installer-language.png diff --git a/assets/uploads/installer-partitioning-1.png b/public/uploads/installer-partitioning-1.png similarity index 100% rename from assets/uploads/installer-partitioning-1.png rename to public/uploads/installer-partitioning-1.png diff --git a/assets/uploads/installer-partitioning-2.png b/public/uploads/installer-partitioning-2.png similarity index 100% rename from assets/uploads/installer-partitioning-2.png rename to public/uploads/installer-partitioning-2.png diff --git a/assets/uploads/installer-partitioning-3.png b/public/uploads/installer-partitioning-3.png similarity index 100% rename from assets/uploads/installer-partitioning-3.png rename to public/uploads/installer-partitioning-3.png diff --git a/assets/uploads/installer-partitioning.png b/public/uploads/installer-partitioning.png similarity index 100% rename from assets/uploads/installer-partitioning.png rename to public/uploads/installer-partitioning.png diff --git a/assets/uploads/installer-timezone.png b/public/uploads/installer-timezone.png similarity index 100% rename from assets/uploads/installer-timezone.png rename to public/uploads/installer-timezone.png diff --git a/assets/uploads/installer-user.png b/public/uploads/installer-user.png similarity index 100% rename from assets/uploads/installer-user.png rename to public/uploads/installer-user.png diff --git a/assets/uploads/installer-welcome.png b/public/uploads/installer-welcome.png similarity index 100% rename from assets/uploads/installer-welcome.png rename to public/uploads/installer-welcome.png diff --git a/assets/uploads/orchid-dark.webp b/public/uploads/orchid-dark.webp similarity index 100% rename from assets/uploads/orchid-dark.webp rename to public/uploads/orchid-dark.webp diff --git a/assets/uploads/orchid-light.webp b/public/uploads/orchid-light.webp similarity index 100% rename from assets/uploads/orchid-light.webp rename to public/uploads/orchid-light.webp diff --git a/assets/uploads/recovery-utility.webp b/public/uploads/recovery-utility.webp similarity index 100% rename from assets/uploads/recovery-utility.webp rename to public/uploads/recovery-utility.webp diff --git a/assets/uploads/sideload-utility-install.webp b/public/uploads/sideload-utility-install.webp similarity index 100% rename from assets/uploads/sideload-utility-install.webp rename to public/uploads/sideload-utility-install.webp diff --git a/assets/uploads/sideload-utility-uninstall.webp b/public/uploads/sideload-utility-uninstall.webp similarity index 100% rename from assets/uploads/sideload-utility-uninstall.webp rename to public/uploads/sideload-utility-uninstall.webp diff --git a/assets/uploads/vanilla-os-apx-control-center.png b/public/uploads/vanilla-os-apx-control-center.png similarity index 100% rename from assets/uploads/vanilla-os-apx-control-center.png rename to public/uploads/vanilla-os-apx-control-center.png diff --git a/assets/uploads/vanilla-os-apx.png b/public/uploads/vanilla-os-apx.png similarity index 100% rename from assets/uploads/vanilla-os-apx.png rename to public/uploads/vanilla-os-apx.png diff --git a/assets/uploads/vanilla-os-backgrounds.png b/public/uploads/vanilla-os-backgrounds.png similarity index 100% rename from assets/uploads/vanilla-os-backgrounds.png rename to public/uploads/vanilla-os-backgrounds.png diff --git a/assets/uploads/vanilla-os-first-setup.png b/public/uploads/vanilla-os-first-setup.png similarity index 100% rename from assets/uploads/vanilla-os-first-setup.png rename to public/uploads/vanilla-os-first-setup.png diff --git a/assets/uploads/vanilla-os-gnome.png b/public/uploads/vanilla-os-gnome.png similarity index 100% rename from assets/uploads/vanilla-os-gnome.png rename to public/uploads/vanilla-os-gnome.png diff --git a/assets/uploads/vanilla-os-stable-illustration.webp b/public/uploads/vanilla-os-stable-illustration.webp similarity index 100% rename from assets/uploads/vanilla-os-stable-illustration.webp rename to public/uploads/vanilla-os-stable-illustration.webp diff --git a/assets/uploads/vanilla-os-updates.png b/public/uploads/vanilla-os-updates.png similarity index 100% rename from assets/uploads/vanilla-os-updates.png rename to public/uploads/vanilla-os-updates.png diff --git a/roadmap.md b/roadmap.md deleted file mode 100644 index afd037b2..00000000 --- a/roadmap.md +++ /dev/null @@ -1,231 +0,0 @@ ---- -layout: page -title: Vanilla OS Roadmap -description: The roadmap for the stable release of Vanilla OS. ---- -## Terms - -* **Stable**: A release that is ready for production use. -* **Closed/Open Beta**: A release that is ready for testing and feedback. -* **Release Candidate**: A release that is proposed for the stable release. - -All releases are always available for download on our GitHub page, the main -difference is the level of support and stability. - -## Timeline - -Below are the timelines for each release of Vanilla OS, including testing -versions. Those are not all the tasks, but rather the most important ones, -every release will have a lot of other tasks that are not listed here, like -bug fixes, translations, qol improvements, etc. - -### 2.0 Orchid (testing) - -
- -
- -### 22.10 Kinetic (stable) - - - -
- - - - - diff --git a/scripts/generateArticlesJson.js b/scripts/generateArticlesJson.js new file mode 100644 index 00000000..90f00702 --- /dev/null +++ b/scripts/generateArticlesJson.js @@ -0,0 +1,124 @@ +const fs = require("fs"); +const path = require("path"); +const glob = require("glob"); +const yaml = require("js-yaml"); + +function cleanArticlesDir(articlesDir) { + console.log(`Cleaning articles directory: ${articlesDir}`); + + if (fs.existsSync(articlesDir)) { + const files = fs.readdirSync(articlesDir); + + for (const file of files) { + const filePath = path.join(articlesDir, file); + const isDirectory = fs.statSync(filePath).isDirectory(); + + if (isDirectory) { + cleanArticlesDir(filePath); + } else { + fs.unlinkSync(filePath); + } + } + + fs.rmdirSync(articlesDir); + } +} + +function readArticles(articlesPath) { + const articleFiles = glob.sync(`${articlesPath}/*.md`); + const articles = []; + + for (const file of articleFiles) { + const fileContent = fs.readFileSync(file, "utf-8"); + const { title, description, date, content } = + parseArticleHeader(fileContent); + + const slug = slugify(title); + + const articleData = { + title, + slug, + description, + date, + keywords: [], + content, + }; + + articles.push(articleData); + + const individualOutputDir = path.join( + __dirname, + `../public/articles/${date}` + ); + fs.mkdirSync(individualOutputDir, { recursive: true }); + + const individualOutputFilePath = path.join( + individualOutputDir, + `${slug}.json` + ); + fs.writeFileSync( + individualOutputFilePath, + JSON.stringify(articleData, null, 2) + ); + console.log(`Generated JSON file for article: ${title}`); + } + + return articles; +} + +function parseArticleHeader(content) { + const headerRegex = /---\n([\s\S]*?)\n---/; + const match = content.match(headerRegex); + + if (!match || match.length < 2) { + return { title: "", description: "", date: "", keywords: [], content: "" }; + } + + const headerContent = match[1]; + + try { + const header = yaml.load(headerContent); + + if (header.date) { + header.date = formatDate(header.date); + } + + const articleContent = content.slice(match[0].length).trim(); + + return { ...header, content: articleContent }; + } catch (error) { + console.log( + `Invalid YAML format in the article header. Error: ${error.message}` + ); + return { title: "", description: "", date: "", keywords: [], content: "" }; + } +} + +function formatDate(date) { + const articleDate = new Date(date); + const year = articleDate.getFullYear(); + const month = String(articleDate.getMonth() + 1).padStart(2, "0"); + const day = String(articleDate.getDate()).padStart(2, "0"); + return `${year}-${month}-${day}`; +} + +function slugify(str) { + return str + .toLowerCase() + .replace(/--+/g, "-") + .replace(/[^\w\s-]/g, "") + .replace(/\s+/g, "-") + .trim(); +} + +const articlesPath = path.join(__dirname, "../articles"); +const articlesOutputDir = path.join(__dirname, "../public/articles"); + +cleanArticlesDir(articlesOutputDir); + +const articles = readArticles(articlesPath); +const outputFilePath = path.join(__dirname, "../public/articles.json"); + +fs.writeFileSync(outputFilePath, JSON.stringify(articles, null, 2)); + +console.log("Articles JSON files generated."); diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 00000000..c9506420 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,17 @@ + + + \ No newline at end of file diff --git a/src/articlesLoader.ts b/src/articlesLoader.ts new file mode 100644 index 00000000..df10e44a --- /dev/null +++ b/src/articlesLoader.ts @@ -0,0 +1,67 @@ +import { marked } from 'marked'; + +interface Article { + title: string; + slug: string; + description: string; + date: string; + keywords: string[]; + content: string; +} + +async function loadArticles(): Promise { + try { + const response = await fetch('/articles.json'); + if (!response.ok) { + throw new Error('Failed to load articles data'); + } + + const articles: Article[] = await response.json(); + + for (const article of articles) { + article.content = marked(article.content); + } + + return articles; + } catch (error) { + console.error('Error loading articles:', error); + return []; + } +} + +async function loadArticle(date: string, slug: string): Promise
{ + try { + const response = await fetch(`/articles/${date}/${slug}.json`); + if (!response.ok) { + throw new Error('Failed to load article data'); + } + + const article: Article = await response.json(); + + article.content = marked(article.content); + + return article; + } catch (error) { + console.error(`Error loading article with date ${date} and slug ${slug}:`, error); + return null; + } +} + +async function searchArticle(terms: string): Promise { + try { + let articles = await loadArticles(); + const searchTerms = terms.toLowerCase().split(' '); + + return articles.filter((article) => { + const articleText = `${article.title} ${article.description} ${article.content}`.toLowerCase(); + return searchTerms.every((term) => articleText.includes(term)); + }); + + } catch (error) { + console.error('Error searching articles:', error); + return []; + } +} + +export { loadArticles, loadArticle, searchArticle }; +export type { Article }; diff --git a/src/components/Card.vue b/src/components/Card.vue new file mode 100644 index 00000000..b3877fc6 --- /dev/null +++ b/src/components/Card.vue @@ -0,0 +1,185 @@ + + + + \ No newline at end of file diff --git a/src/components/Footer.vue b/src/components/Footer.vue new file mode 100644 index 00000000..c1d35024 --- /dev/null +++ b/src/components/Footer.vue @@ -0,0 +1,68 @@ + + + \ No newline at end of file diff --git a/src/components/ImageShowcase.vue b/src/components/ImageShowcase.vue new file mode 100644 index 00000000..40a14d0e --- /dev/null +++ b/src/components/ImageShowcase.vue @@ -0,0 +1,86 @@ + + + + diff --git a/src/components/MailChimp.vue b/src/components/MailChimp.vue new file mode 100644 index 00000000..3da03cb8 --- /dev/null +++ b/src/components/MailChimp.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/components/ShareModal.vue b/src/components/ShareModal.vue new file mode 100644 index 00000000..0d32fc09 --- /dev/null +++ b/src/components/ShareModal.vue @@ -0,0 +1,104 @@ + + + + \ No newline at end of file diff --git a/src/components/Timeline.vue b/src/components/Timeline.vue new file mode 100644 index 00000000..f767e7d3 --- /dev/null +++ b/src/components/Timeline.vue @@ -0,0 +1,159 @@ + + + \ No newline at end of file diff --git a/src/components/Topbar.vue b/src/components/Topbar.vue new file mode 100644 index 00000000..bc6c787d --- /dev/null +++ b/src/components/Topbar.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/components/loader.ts b/src/components/loader.ts new file mode 100644 index 00000000..5d6ac811 --- /dev/null +++ b/src/components/loader.ts @@ -0,0 +1,26 @@ +import type { App } from "vue"; + +import Topbar from "./Topbar.vue"; +import SiteFooter from "./Footer.vue"; +import ShareModal from "./ShareModal.vue"; +import ImageShowcase from "./ImageShowcase.vue"; +import Card from "./Card.vue"; +import MailChimp from "./MailChimp.vue"; +import Timeline from "./Timeline.vue"; + +export default { + install(app: App) { + // external components + + // app components + app.component("topbar", Topbar); + app.component("site-footer", SiteFooter); + app.component("share-modal", ShareModal); + app.component("image-showcase", ImageShowcase); + app.component("card", Card); + app.component("mail-chimp", MailChimp); + app.component("timeline", Timeline); + + console.debug("Components loaded"); + }, +}; \ No newline at end of file diff --git a/src/config.ts b/src/config.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/layouts/Main.vue b/src/layouts/Main.vue new file mode 100644 index 00000000..95f7cf28 --- /dev/null +++ b/src/layouts/Main.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/layouts/Page.vue b/src/layouts/Page.vue new file mode 100644 index 00000000..cf771788 --- /dev/null +++ b/src/layouts/Page.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 00000000..f31bfefc --- /dev/null +++ b/src/main.ts @@ -0,0 +1,17 @@ +import { createApp } from 'vue' +import { createHead } from "@vueuse/head" + +import App from './App.vue' +import router from './router' +import ComponentLoader from "@/components/loader"; + +// import './assets/css/index.css' + +const app = createApp(App) +const head = createHead() + +app.use(router) +app.use(head) +app.use(ComponentLoader) + +app.mount('#app') diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 00000000..56d5f248 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,327 @@ +import { createRouter, createWebHistory } from 'vue-router' +import { useHead } from 'unhead' + + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + component: () =>// @ts-ignore + import(/* webpackChunkName: "Main" */ "@/layouts/Main.vue"), + children: [ + { + path: "", + name: "home", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Home" */ "@/views/Home.vue"), + meta: { + description: "Vanilla OS is an operating system built with simplicity in mind. It's fast, lightweight, beautiful and ready for all your daily tasks.", + }, + }, + { + path: "/blog/article/:date/:slug", + name: "article", + component: () => + import(/* webpackChunkName: "Article" */ "@/views/Article.vue"), + meta: { + title: "", // The title and description will be set dynamically in the component + description: "", + parent: "blog", + }, + }, + ] + }, + { + path: '/', + component: () =>// @ts-ignore + import(/* webpackChunkName: "Pages" */ "@/layouts/Page.vue"), + children: [ + { + path: "/blog", + name: "blog", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Blog" */ "@/views/Blog.vue"), + meta: { + title: "Blog", + description: "Check out what's happening in Vanilla OS world.", + }, + }, + { + path: "/privacy-policy", + name: "privacy-policy", + component: () =>// @ts-ignore + import(/* webpackChunkName: "PrivacyPolicy" */ "@/views/PrivacyPolicy.vue"), + meta: { + title: "Privacy Policy", + description: "Check out our Privacy Policy.", + }, + }, + { + path: "/cookies-policy", + name: "cookies-policy", + component: () =>// @ts-ignore + import(/* webpackChunkName: "CookiesPolicy" */ "@/views/CookiesPolicy.vue"), + meta: { + title: "Cookies Policy", + description: "Check out our Cookies Policy.", + }, + }, + { + path: "/licenses", + name: "licenses", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Licenses" */ "@/views/Licenses.vue"), + meta: { + title: "Licenses", + description: "Vanilla OS is built on top of many technologies. Check out the licenses.", + }, + }, + { + path: "/help", + name: "help", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Help" */ "@/views/Help.vue"), + meta: { + title: "Help", + description: "Have a problem or need information about Vanilla OS?", + }, + }, + { + path: "/team", + name: "team", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Team" */ "@/views/Team.vue"), + meta: { + title: "Team", + description: "Meet the people behind Vanilla OS.", + }, + }, + { + path: "/team/contributors", + name: "team-contributors", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Contributors" */ "@/views/get-involved/Contributors.vue"), + meta: { + title: "Contributors", + description: "Meet the people who contributed to Vanilla OS.", + parent: "team", + }, + }, + { + path: "/brand", + name: "brand", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Brand" */ "@/views/Brand.vue"), + meta: { + title: "Brand", + description: "Official Vanilla OS brand assets and values.", + }, + }, + { + path: "/developers-program", + name: "developers-program", + component: () =>// @ts-ignore + import(/* webpackChunkName: "DevelopersProgram" */ "@/views/DevelopersProgram.vue"), + meta: { + title: "Developers Program", + description: "Join our Developers Program and get access to exclusive content.", + }, + }, + { + path: "/code-of-conduct", + name: "code-of-conduct", + component: () =>// @ts-ignore + import(/* webpackChunkName: "CodeOfConduct" */ "@/views/CodeOfConduct.vue"), + meta: { + title: "Code of Conduct", + description: "Everyone must follow our Code of Conduct to be part of Vanilla OS.", + }, + }, + { + path: "/enterprise-support", + name: "enterprise-support", + component: () =>// @ts-ignore + import(/* webpackChunkName: "EnterpriseSupport" */ "@/views/EnterpriseSupport.vue"), + meta: { + title: "Enterprise Support", + description: "Get enterprise support for Vanilla OS.", + }, + }, + { + path: "/roadmap", + name: "roadmap", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Roadmap" */ "@/views/Roadmap.vue"), + meta: { + title: "Roadmap", + description: "Follow our roadmap to see what's coming next.", + }, + }, + { + path: "/technologies-and-credits", + name: "technologies-and-credits", + component: () =>// @ts-ignore + import(/* webpackChunkName: "TechnologiesAndCredits" */ "@/views/TechnologiesAndCredits.vue"), + meta: { + title: "Technologies and Credits", + description: "Vanilla OS is built on top of many technologies.", + }, + }, + { + path: "/community", + name: "community", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Community" */ "@/views/Community.vue"), + meta: { + title: "Community", + description: "Join our community of users and developers.", + }, + }, + { + path: "/help/faq", + name: "help-faq", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Faq" */ "@/views/help/Faq.vue"), + meta: { + title: "Frequently Asked Questions", + description: "The most common questions about Vanilla OS.", + parent: "help", + }, + }, + { + path: "/get-involved", + name: "get-involved", + component: () =>// @ts-ignore + import(/* webpackChunkName: "GetInvolved" */ "@/views/GetInvolved.vue"), + meta: { + title: "Get Involved", + description: "Everything we do is Open Source. You can contribute in many way.", + }, + }, + { + path: "/get-involved/translate", + name: "get-involved-translate", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Translate" */ "@/views/get-involved/Translate.vue"), + meta: { + title: "Translate", + description: "Translate Vanilla OS into your language.", + parent: "get-involved", + }, + }, + { + path: "/get-involved/funding", + name: "get-involved-funding", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Funding" */ "@/views/get-involved/Funding.vue"), + meta: { + title: "Funding", + description: "We need your help to keep Vanilla OS alive.", + parent: "get-involved", + }, + }, + { + path: "/get-involved/spread", + name: "get-involved-spread", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Spread" */ "@/views/get-involved/Spread.vue"), + meta: { + title: "Spread the Word", + description: "Help us spread the word about Vanilla OS.", + parent: "get-involved", + }, + }, + { + path: "/download", + name: "download", + component: () =>// @ts-ignore + import(/* webpackChunkName: "Download" */ "@/views/Download.vue"), + meta: { + title: "Get Vanilla OS", + description: "Get the latest version.", + }, + }, + ] + }, + { + path: '/:notFound', + name: 'not-found', + component: () =>// @ts-ignore + import(/* webpackChunkName: "Errors" */ "@/layouts/Page.vue"), + children: [ + { + path: "", + name: "404", + component: () =>// @ts-ignore + import(/* webpackChunkName: "404" */ "@/views/404.vue"), + meta: { + title: "404 - Page not found", + description: "The page you are looking for does not exist.", + }, + }, + ] + }, + ], + scrollBehavior(to, from, savedPosition) { + return { top: 0 } + }, +}) + + +router.beforeEach((to, from, next) => { + if(to === undefined) { + next(); + return; + } + + useHead({// @ts-ignore + title: to.meta.title ? to.meta.title + " - Vanilla OS" : "Vanilla OS", + meta: [ + { + name: "description",// @ts-ignore + content: to.meta.description, + }, + { + name: "og:title",// @ts-ignore + content: to.meta.title, + }, + { + name: "og:description",// @ts-ignore + content: to.meta.description, + }, + { + name: "og:image", + content: "https://vanillaos.org/assets/images/brand/vanillaos-logo.svg", + }, + { + name: "og:url", + content: "https://vanillaos.org" + to.path, + }, + { + name: 'twitter:card', + content: 'summary_large_image', + }, + { + name: 'twitter:title', + content: 'Vanilla OS - Your next Operating System', + }, + { + name: 'twitter:description',// @ts-ignore + content: to.meta.description, + }, + { + name: 'twitter:image', + content: 'https://vanillaos.org/assets/images/brand/vanillaos-logo.svg', + }, + { + name: 'twitter:url', + content: 'https://vanillaos.org' + to.path, + }, + ], + }); + + next(); +}); + +export default router diff --git a/src/views/404.vue b/src/views/404.vue new file mode 100644 index 00000000..1f27aa07 --- /dev/null +++ b/src/views/404.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/views/Article.vue b/src/views/Article.vue new file mode 100644 index 00000000..c4d092e6 --- /dev/null +++ b/src/views/Article.vue @@ -0,0 +1,245 @@ + + + diff --git a/src/views/Blog.vue b/src/views/Blog.vue new file mode 100644 index 00000000..16f28951 --- /dev/null +++ b/src/views/Blog.vue @@ -0,0 +1,117 @@ + + + \ No newline at end of file diff --git a/src/views/Brand.vue b/src/views/Brand.vue new file mode 100644 index 00000000..0f1d8189 --- /dev/null +++ b/src/views/Brand.vue @@ -0,0 +1,277 @@ + + + + \ No newline at end of file diff --git a/src/views/CodeOfConduct.vue b/src/views/CodeOfConduct.vue new file mode 100644 index 00000000..6711c57c --- /dev/null +++ b/src/views/CodeOfConduct.vue @@ -0,0 +1,251 @@ + + + \ No newline at end of file diff --git a/src/views/Community.vue b/src/views/Community.vue new file mode 100644 index 00000000..ad62c119 --- /dev/null +++ b/src/views/Community.vue @@ -0,0 +1,43 @@ + + + + \ No newline at end of file diff --git a/src/views/CookiesPolicy.vue b/src/views/CookiesPolicy.vue new file mode 100644 index 00000000..01e68b7f --- /dev/null +++ b/src/views/CookiesPolicy.vue @@ -0,0 +1,23 @@ + + + \ No newline at end of file diff --git a/src/views/DevelopersProgram.vue b/src/views/DevelopersProgram.vue new file mode 100644 index 00000000..f7b5e31b --- /dev/null +++ b/src/views/DevelopersProgram.vue @@ -0,0 +1,86 @@ + + + \ No newline at end of file diff --git a/src/views/Download.vue b/src/views/Download.vue new file mode 100644 index 00000000..e8ffca34 --- /dev/null +++ b/src/views/Download.vue @@ -0,0 +1,122 @@ + + + \ No newline at end of file diff --git a/src/views/EnterpriseSupport.vue b/src/views/EnterpriseSupport.vue new file mode 100644 index 00000000..3b126c9f --- /dev/null +++ b/src/views/EnterpriseSupport.vue @@ -0,0 +1,121 @@ + + + \ No newline at end of file diff --git a/src/views/GetInvolved.vue b/src/views/GetInvolved.vue new file mode 100644 index 00000000..52fa68d1 --- /dev/null +++ b/src/views/GetInvolved.vue @@ -0,0 +1,90 @@ + + + + \ No newline at end of file diff --git a/src/views/Help.vue b/src/views/Help.vue new file mode 100644 index 00000000..32eed4e8 --- /dev/null +++ b/src/views/Help.vue @@ -0,0 +1,79 @@ + + + + \ No newline at end of file diff --git a/src/views/Home.vue b/src/views/Home.vue new file mode 100644 index 00000000..7ff5f82e --- /dev/null +++ b/src/views/Home.vue @@ -0,0 +1,379 @@ + + + \ No newline at end of file diff --git a/src/views/Licenses.vue b/src/views/Licenses.vue new file mode 100644 index 00000000..aa69920e --- /dev/null +++ b/src/views/Licenses.vue @@ -0,0 +1,115 @@ + + + + diff --git a/src/views/PrivacyPolicy.vue b/src/views/PrivacyPolicy.vue new file mode 100644 index 00000000..b153a65b --- /dev/null +++ b/src/views/PrivacyPolicy.vue @@ -0,0 +1,23 @@ + + + \ No newline at end of file diff --git a/src/views/Roadmap.vue b/src/views/Roadmap.vue new file mode 100644 index 00000000..6df5fe15 --- /dev/null +++ b/src/views/Roadmap.vue @@ -0,0 +1,219 @@ + + + \ No newline at end of file diff --git a/src/views/Team.vue b/src/views/Team.vue new file mode 100644 index 00000000..78cbeafa --- /dev/null +++ b/src/views/Team.vue @@ -0,0 +1,215 @@ + + + + \ No newline at end of file diff --git a/src/views/TechnologiesAndCredits.vue b/src/views/TechnologiesAndCredits.vue new file mode 100644 index 00000000..170cd756 --- /dev/null +++ b/src/views/TechnologiesAndCredits.vue @@ -0,0 +1,121 @@ + + + \ No newline at end of file diff --git a/src/views/get-involved/Contributors.vue b/src/views/get-involved/Contributors.vue new file mode 100644 index 00000000..ccac9610 --- /dev/null +++ b/src/views/get-involved/Contributors.vue @@ -0,0 +1,414 @@ + + + + \ No newline at end of file diff --git a/src/views/get-involved/Funding.vue b/src/views/get-involved/Funding.vue new file mode 100644 index 00000000..bfdb5750 --- /dev/null +++ b/src/views/get-involved/Funding.vue @@ -0,0 +1,100 @@ + + + + \ No newline at end of file diff --git a/src/views/get-involved/Spread.vue b/src/views/get-involved/Spread.vue new file mode 100644 index 00000000..5235b3b5 --- /dev/null +++ b/src/views/get-involved/Spread.vue @@ -0,0 +1,372 @@ + + + + \ No newline at end of file diff --git a/src/views/get-involved/Translate.vue b/src/views/get-involved/Translate.vue new file mode 100644 index 00000000..189b6de2 --- /dev/null +++ b/src/views/get-involved/Translate.vue @@ -0,0 +1,226 @@ + + + + \ No newline at end of file diff --git a/src/views/help/Faq.vue b/src/views/help/Faq.vue new file mode 100644 index 00000000..703ef7bb --- /dev/null +++ b/src/views/help/Faq.vue @@ -0,0 +1,87 @@ + + + + \ No newline at end of file diff --git a/team.md b/team.md deleted file mode 100644 index 18942690..00000000 --- a/team.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -layout: page -title: Team -description: Meet the people behind Vanilla OS ---- - -
-

Vanilla OS is an Open Source project that is maintained by fabricators.ltd and a team of volunteers. We are a diverse group of people from all over the world, with a wide range of skills and backgrounds. We are passionate about making Vanilla OS the best it can be.

-
-
-

There are many more people who have contributed to Vanilla OS. A full list of contributors can be found here.

-
- - - - diff --git a/translate.md b/translate.md deleted file mode 100644 index bedffd83..00000000 --- a/translate.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -pattern: /assets/images/pattern-get-involved.png -layout: page -title: Translate Vanilla OS -description: Translate Vanilla OS into your language. ---- - -## Projects -The following table lists the projects repositories that are available for translation. - -| Project | Repository | Translations | -| ------- | ---------- | ------------ | -| First Setup | [GitHub](https://github.com/Vanilla-OS/first-setup) | [Weblate](https://hosted.weblate.org/projects/vanilla-os/first-setup/) | -| Installer | [GitHub](https://github.com/Vanilla-OS/vanilla-installer) | [Weblate](https://hosted.weblate.org/projects/vanilla-os/installer/) | -| Control Center | [GitHub](https://github.com/Vanilla-OS/vanilla-control-center) | [Weblate](https://hosted.weblate.org/projects/vanilla-os/control-center/) | -| Drivers Utility | [GitHub](https://github.com/Vanilla-OS/vanilla-drivers-utility) | [Weblate](https://hosted.weblate.org/projects/vanilla-os/vanilla-drivers-utility/) | -| PRIME Utility | [GitHub](https://github.com/Vanilla-OS/vanilla-prime-utility) | [Weblate](https://hosted.weblate.org/projects/vanilla-os/vanilla-prime-utility/) | -| Apx | [GitHub](https://github.com/Vanilla-OS/Apx) | [Weblate](https://hosted.weblate.org/projects/vanilla-os/apx/) | -| ABRoot | [GitHub](https://github.com/Vanilla-OS/ABRoot) | [Weblate](https://hosted.weblate.org/projects/vanilla-os/abroot/) | -| VSO | [GitHub](https://github.com/Vanilla-OS/vanilla-system-operator) | Not yet available | -| Ikaros | [GitHub](https://github.com/Vanilla-OS/ikaros) | [Weblate](https://hosted.weblate.org/projects/vanilla-os/ikaros/) | -| Documentation | [GitHub](https://github.com/vanilla-os/documentation) | [Instructions](https://github.com/Vanilla-OS/documentation/blob/main/TRANSLATE.md) | -| Website | [GitHub](https://github.com/Vanilla-OS/website) | Not yet available | diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..cb2043bc --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "@vue/tsconfig/tsconfig.web.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + + "references": [ + { + "path": "./tsconfig.node.json" + } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 00000000..424084aa --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "extends": "@vue/tsconfig/tsconfig.node.json", + "include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"], + "compilerOptions": { + "composite": true, + "types": ["node"] + } +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 00000000..60b105f6 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,14 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +export default defineConfig({ + base: './', + plugins: [vue()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +})