From 68431bea78db87069b909a6ab6e480d9b49da1f3 Mon Sep 17 00:00:00 2001 From: zernonia Date: Mon, 21 Aug 2023 09:43:44 +0800 Subject: [PATCH 01/11] chore: remove old docs from main --- docs/.eslintignore | 4 - docs/.eslintrc.cjs | 8 - docs/.gitignore | 12 - docs/.npmrc | 2 - docs/README.md | 57 - docs/app.config.ts | 41 - docs/content/0.index.md | 99 - .../1.introduction/1.getting-started.md | 57 - .../1.introduction/2.project-structure.md | 21 - .../content/1.introduction/3.writing-pages.md | 41 - .../content/1.introduction/4.configuration.md | 146 - docs/content/1.introduction/_dir.yml | 2 - docs/content/2.api/1.components.md | 693 - docs/content/2.api/2.composables.md | 88 - docs/content/2.api/3.layouts.md | 43 - docs/content/2.api/_dir.yml | 2 - docs/content/3.components/_dir.yml | 2 - docs/content/3.components/accordion.md | 650 - docs/content/3.components/alert-dialog.md | 476 - docs/content/3.components/aspect-ratio.md | 68 - docs/content/3.components/avatar.mdx | 162 - docs/content/3.components/checkbox.md | 243 - docs/content/3.components/collapsible.md | 284 - docs/content/3.components/context-menu.md | 1582 -- docs/content/3.components/dialog.md | 594 - docs/content/3.components/dropdown-menu.md | 1784 -- docs/content/3.components/form.md | 573 - docs/content/3.components/hover-card.md | 557 - docs/content/3.components/label.md | 76 - docs/content/3.components/menubar.md | 1742 -- docs/content/3.components/navigation-menu.md | 970 - docs/content/3.components/popover.md | 768 - docs/content/3.components/progress.md | 154 - docs/content/3.components/radio-group.md | 315 - docs/content/3.components/scroll-area.md | 282 - docs/content/3.components/select.md | 1344 -- docs/content/3.components/separator.md | 94 - docs/content/3.components/slider.md | 576 - docs/content/3.components/switch.md | 199 - docs/content/3.components/tabs.md | 403 - docs/content/3.components/toast.md | 733 - docs/content/3.components/toggle-group.md | 376 - docs/content/3.components/toggle.md | 128 - docs/content/3.components/toolbar.md | 503 - docs/content/3.components/tooltip.md | 751 - docs/nuxt.config.ts | 11 - docs/package-lock.json | 16313 ---------------- docs/package.json | 21 - docs/public/cover.png | Bin 219401 -> 0 bytes docs/public/favicon.ico | Bin 15406 -> 0 bytes docs/renovate.json | 8 - docs/tokens.config.ts | 4 - docs/tsconfig.json | 3 - 53 files changed, 34065 deletions(-) delete mode 100644 docs/.eslintignore delete mode 100644 docs/.eslintrc.cjs delete mode 100755 docs/.gitignore delete mode 100644 docs/.npmrc delete mode 100755 docs/README.md delete mode 100644 docs/app.config.ts delete mode 100644 docs/content/0.index.md delete mode 100644 docs/content/1.introduction/1.getting-started.md delete mode 100644 docs/content/1.introduction/2.project-structure.md delete mode 100644 docs/content/1.introduction/3.writing-pages.md delete mode 100644 docs/content/1.introduction/4.configuration.md delete mode 100644 docs/content/1.introduction/_dir.yml delete mode 100644 docs/content/2.api/1.components.md delete mode 100644 docs/content/2.api/2.composables.md delete mode 100644 docs/content/2.api/3.layouts.md delete mode 100644 docs/content/2.api/_dir.yml delete mode 100644 docs/content/3.components/_dir.yml delete mode 100644 docs/content/3.components/accordion.md delete mode 100644 docs/content/3.components/alert-dialog.md delete mode 100644 docs/content/3.components/aspect-ratio.md delete mode 100644 docs/content/3.components/avatar.mdx delete mode 100644 docs/content/3.components/checkbox.md delete mode 100644 docs/content/3.components/collapsible.md delete mode 100644 docs/content/3.components/context-menu.md delete mode 100644 docs/content/3.components/dialog.md delete mode 100644 docs/content/3.components/dropdown-menu.md delete mode 100644 docs/content/3.components/form.md delete mode 100644 docs/content/3.components/hover-card.md delete mode 100644 docs/content/3.components/label.md delete mode 100644 docs/content/3.components/menubar.md delete mode 100644 docs/content/3.components/navigation-menu.md delete mode 100644 docs/content/3.components/popover.md delete mode 100644 docs/content/3.components/progress.md delete mode 100644 docs/content/3.components/radio-group.md delete mode 100644 docs/content/3.components/scroll-area.md delete mode 100644 docs/content/3.components/select.md delete mode 100644 docs/content/3.components/separator.md delete mode 100644 docs/content/3.components/slider.md delete mode 100644 docs/content/3.components/switch.md delete mode 100644 docs/content/3.components/tabs.md delete mode 100644 docs/content/3.components/toast.md delete mode 100644 docs/content/3.components/toggle-group.md delete mode 100644 docs/content/3.components/toggle.md delete mode 100644 docs/content/3.components/toolbar.md delete mode 100644 docs/content/3.components/tooltip.md delete mode 100755 docs/nuxt.config.ts delete mode 100644 docs/package-lock.json delete mode 100755 docs/package.json delete mode 100644 docs/public/cover.png delete mode 100644 docs/public/favicon.ico delete mode 100755 docs/renovate.json delete mode 100644 docs/tokens.config.ts delete mode 100755 docs/tsconfig.json diff --git a/docs/.eslintignore b/docs/.eslintignore deleted file mode 100644 index a1bd0c80d..000000000 --- a/docs/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -dist -node_modules -.output -.nuxt \ No newline at end of file diff --git a/docs/.eslintrc.cjs b/docs/.eslintrc.cjs deleted file mode 100644 index 38db31380..000000000 --- a/docs/.eslintrc.cjs +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - root: true, - extends: '@nuxt/eslint-config', - rules: { - 'vue/max-attributes-per-line': 'off', - 'vue/multi-word-component-names': 'off' - } -} \ No newline at end of file diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100755 index 69f6b69d0..000000000 --- a/docs/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -node_modules -*.iml -.idea -*.log* -.nuxt -.vscode -.DS_Store -coverage -dist -sw.* -.env -.output diff --git a/docs/.npmrc b/docs/.npmrc deleted file mode 100644 index cf0404245..000000000 --- a/docs/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -shamefully-hoist=true -strict-peer-dependencies=false diff --git a/docs/README.md b/docs/README.md deleted file mode 100755 index 8607e02a8..000000000 --- a/docs/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Docus Starter - -Starter template for [Docus](https://docus.dev). - -## Clone - -Clone the repository (using `nuxi`): - -```bash -npx nuxi init -t themes/docus -``` - -## Setup - -Install dependencies: - -```bash -yarn install -``` - -## Development - -```bash -yarn dev -``` - -## Edge Side Rendering - -Can be deployed to Vercel Functions, Netlify Functions, AWS, and most Node-compatible environments. - -Look at all the available presets [here](https://v3.nuxtjs.org/guide/deploy/presets). - -```bash -yarn build -``` - -## Static Generation - -Use the `generate` command to build your application. - -The HTML files will be generated in the .output/public directory and ready to be deployed to any static compatible hosting. - -```bash -yarn generate -``` - -## Preview build - -You might want to preview the result of your build locally, to do so, run the following command: - -```bash -yarn preview -``` - ---- - -For a detailed explanation of how things work, check out [Docus](https://docus.dev). diff --git a/docs/app.config.ts b/docs/app.config.ts deleted file mode 100644 index 642fe1277..000000000 --- a/docs/app.config.ts +++ /dev/null @@ -1,41 +0,0 @@ -export default defineAppConfig({ - docus: { - title: 'Docus', - description: 'The best place to start your documentation.', - image: 'https://user-images.githubusercontent.com/904724/185365452-87b7ca7b-6030-4813-a2db-5e65c785bf88.png', - socials: { - twitter: 'nuxtstudio', - github: 'nuxt-themes/docus' - }, - github: { - dir: '.starters/default/content', - branch: 'main', - repo: 'docus', - owner: 'nuxt-themes', - edit: true - }, - aside: { - level: 0, - collapsed: false, - exclude: [] - }, - main: { - padded: true, - fluid: true - }, - header: { - logo: true, - showLinkIcon: true, - exclude: [], - fluid: true - }, - footer: { - iconLinks: [ - { - href: 'https://nuxt.com', - icon: 'simple-icons:nuxtdotjs' - } - ] - } - } -}) diff --git a/docs/content/0.index.md b/docs/content/0.index.md deleted file mode 100644 index d909fd85e..000000000 --- a/docs/content/0.index.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Home -navigation: false -layout: page -main: - fluid: false ---- - -:ellipsis{right=0px width=75% blur=150px} - -::block-hero ---- -cta: - - Get started - - /introduction/getting-started -secondary: - - Open on GitHub → - - https://github.com/nuxt-themes/docus ---- - -#title -The best place to start your documentation. - -#description -Write pages in [Markdown](https://content.nuxtjs.org), use [Vue](https://vuejs.org) components and enjoy the power of [Nuxt](https://nuxt.com). - -#extra - ::list - - **+50 Components** ready to build rich pages - - **Docs** and **Page** layouts - - Start from a `README`, scale to a framework documentation - - Navigation and Table of Contents generation - - Fully configurable design system - - Leverages [**Typography**](https://typography.nuxt.space/) and [**Elements**](https://elements.nuxt.dev) - - Used on [Content Documentation](https://content.nuxtjs.org) - :: - -#support - ::terminal - --- - content: - - npx nuxi@latest init -t themes/docus - - cd docs - - npm install - - npm run dev - --- - :: -:: - -::card-grid -#title -What's included - -#root -:ellipsis{left=0px width=40rem top=10rem blur=140px} - -#default - ::card{icon=logos:nuxt-icon} - #title - Nuxt Architecture - #description - Harness the full power of [Nuxt 3](https://v3.nuxtjs.org) and its [modules](https://modules.nuxtjs.org) ecosystem. - :: - - ::card{icon=IconNuxtStudio} - #title - Nuxt Studio ready - #description - Edit your theme content and appearance with live-preview within [Nuxt Studio](https://nuxt.studio). - :: - - ::card{icon=logos:vue} - #title - Vue Components - #description - Use built-in components (or your own!) inside your content. - :: - - ::card{icon=simple-icons:markdown} - #title - Write Markdown - #description - Enjoy the ease and simplicity of Markdown and discover [MDC syntax](https://content.nuxtjs.org/guide/writing/mdc). - :: - - ::card{icon=noto:rocket} - #title - Deploy anywhere - #description - Zero config on [Vercel](https://vercel.com) or [Netlify](https://netlify.com). Choose between static generation, on-demand rendering (Node) or edge-side rendering on [CloudFlare workers](https://workers.cloudflare.com). - :: - - ::card{icon=noto:puzzle-piece} - #title - Extensible. - #description - Customize the whole design, or add components using slots - you can make Docus your own. - :: -:: diff --git a/docs/content/1.introduction/1.getting-started.md b/docs/content/1.introduction/1.getting-started.md deleted file mode 100644 index 4c08c14cf..000000000 --- a/docs/content/1.introduction/1.getting-started.md +++ /dev/null @@ -1,57 +0,0 @@ -# Getting Started - -From your Markdown files to a deployed website in few minutes. - -## Play online - -You can start playing with Docus in your browser using Stackblitz: - -:button-link[Play on StackBlitz]{size="small" icon="IconStackBlitz" href="https://stackblitz.com/github/nuxt-themes/docus-starter" blank} - -## Create a new project - -1. Start a fresh Docus project with: - -```bash [npx] -npx nuxi@latest init docs -t themes/docus -``` - -2. Install the dependencies in the `docs` folder: - -::code-group - - ```bash [npm] - npm install - ``` - - ```bash [yarn] - yarn install - ``` - - ```bash [pnpm] - pnpm install --shamefully-hoist - ``` - -:: - -3. Run the `dev` command to start Docus in development mode: - -::code-group - -```bash [npm] -npm run dev -``` - -```bash [yarn] -yarn dev -``` - -```bash [pnpm] -pnpm run dev -``` - -:: - -::alert{type="success"} -✨ Well done! A browser window should automatically open for -:: diff --git a/docs/content/1.introduction/2.project-structure.md b/docs/content/1.introduction/2.project-structure.md deleted file mode 100644 index 1446a52bb..000000000 --- a/docs/content/1.introduction/2.project-structure.md +++ /dev/null @@ -1,21 +0,0 @@ -# Project Structure - -Docus is a Nuxt theme that provides a ready-to-use documentation website, if you are familiar with Nuxt, you will feel right at home. - -## Directory Structure - -This is the minimal directory structure to get an up and running Docus website. - -```bash -content/ - index.md -app.config.ts -nuxt.config.ts -``` - -The `content/` directory is where you [write Markdown pages](/introduction/writing-pages). - -The `app.config.ts` is where you [configure Docus](/introduction/configuration) to fit your branding and design. - - -The `nuxt.config.ts` is your [Nuxt configuration](https://nuxt.com/docs/getting-started/configuration). diff --git a/docs/content/1.introduction/3.writing-pages.md b/docs/content/1.introduction/3.writing-pages.md deleted file mode 100644 index a32132406..000000000 --- a/docs/content/1.introduction/3.writing-pages.md +++ /dev/null @@ -1,41 +0,0 @@ -# Writing Pages - -Docus is made to let you write all your content in Markdown and Vue components with the MDC syntax. - -Each Markdown pages in the `content/` folder will be mapped to a route. - -| File | Generated route | -| ------------------------ | :-------------------- | -| `index.md` | `/` | -| `about.md` | `/about` | -| `blog/index.md` | `/blog` | -| `blog/hello.md` | `/blog/hello` | -| `1.guide/2.installation` | `/guide/installation` | - -## Frontmatter - -Docus supports multiple Front-matter attributes for pages. - -```md [index.md] ---- -title: "Get Started" -description: "Let's learn how to use my amazing module." ---- -``` - -| **Key** | **Type** | **Default** | **Description** | -| ----------------------- | --------- | ----------- | ------------------------------------------------------------- | -| `layout` | `string` | `default` | Use any layout name like you would in `definePageMeta()` | -| `title` | `string` | | Defines the page title and H1 in docs pages | -| `description` | `string` | | Defines the page description and excerpt in docs pages | -| `redirect` | `string` | | A route path to redirect | -| `image` | `object` | | OpenGraph cover image | -| **Docs layout options** | | | | -| `aside` | `boolean` | | Toggles the visibility of aside navigation | -| `toc` | `boolean` | | Toggles the visibility of table of contents | -| `header` | `boolean` | | Toggles the visibility of the page header | -| `bottom` | `boolean` | | Toggles the visibility of page bottom section | -| **Navigation options** | | | | -| `navigation` | `boolean` | | Toggles the visibility of the page or directory in navigation | -| `navigation.title` | `string` | | Changes the name of the page or directory in navigation | -| `navigation.icon` | `string` | | Changes the icon of the page or directory in navigation | diff --git a/docs/content/1.introduction/4.configuration.md b/docs/content/1.introduction/4.configuration.md deleted file mode 100644 index cd99ce10c..000000000 --- a/docs/content/1.introduction/4.configuration.md +++ /dev/null @@ -1,146 +0,0 @@ -# Configuration - -Learn how to configure Docus. - -::code-group - -```ts [Minimal app.config.ts] -export default defineAppConfig({ - docus: { - title: 'Docus', - description: 'My Docus Project', - url: 'http://docus.dev' - } -}) -``` - -```ts [Complete app.config.ts] -export default defineAppConfig({ - docus: { - title: 'Docus', - description: 'My Docus Project', - url: 'http://docus.dev', - image: '/social-card-preview.png', - socials: { - twitter: '@docus_', - github: 'nuxtlabs/docus', - }, - github: { - root: 'content', - edit: true, - contributors: false - }, - layout: 'default', - aside: { - level: 1, - filter: [], - }, - header: { - title: false, - logo: true, - showLinkIcon: false - }, - footer: { - credits: { - icon: 'IconDocus', - text: 'Powered by Docus', - href: 'https://docus.dev', - }, - textLinks: [ - { - text: 'Nuxt', - href: 'https://nuxt.com', - target: '_blank', - rel: 'noopener' - } - ], - iconLinks: [ - { - label: 'NuxtJS', - href: 'https://nuxtjs.org', - component: 'IconNuxtLabs', - }, - { - label: 'Vue Telescope', - href: 'https://vuetelescope.com', - component: 'IconVueTelescope', - }, - ], - } - } -}) -``` - -:: - -| **Key** | **Type** | **Default** | **Description** | -| ---------------------------- | ---------- | --------------------- | ---------------------------------------------------------------------------------------------------- | -| `title` | `string` | Docus | Website title | -| `titleTemplate` | `string` | Docus | Website title template | -| `description` | `string` | My Docus Project | Website description | -| `url` | `string` | | Website URL | -| `layout` | `string` | default | Fallback layout to use (supports `default` or `page`) | -| **Socials** | | | | -| `socials` | `object` | `{}` | Social links | -| `socials.github` | `string` | | The repository to use on GitHub links | -| `socials.twitter` | `string` | | The account to use on Twitter links | -| `socials.youtube` | `string` | | The channel to use on Youtube links | -| `socials.instagram` | `string` | | The account to use on Instagram links | -| `socials.facebook` | `string` | | The account to use on Facebook links | -| `socials.medium` | `string` | | The account to use on Medium links | -| `socials.[social]` | `object` | | Override social or display custom one | -| `socials.[social].label` | `string` | | A label to use for the social | -| `socials.[social].icon` | `string` | | A icon to use for the social | -| `socials.[social].href` | `string` | | A link to use for the social | -| `socials.[social].rel` | `string` | `noopener noreferrer` | A space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types) | -| **Header** | | | | -| `header` | `object` | | Header configuration | -| `header.logo` | `boolean` | | Whether or not to use `Logo.vue` as the header logo | -| `header.title` | `string` | | If set to a string, will be used in the header | -| `header.showLinkIcon` | `boolean` | | If set to `true` links icons will show in the header | -| `header.exclude` | `string[]` | | An array of path to exclude out from the header navigation | -| `header.fluid` | `boolean` | `true` | Make header `Container` fluid | -| **Main** | | | | -| `main` | `object` | | Main configuration | -| `main.fluid` | `boolean` | `true` | Make main content `Container` fluid | -| `main.padded` | `boolean` | `true` | Make main content `Container` padded | -| **Aside** | | | | -| `aside` | `object` | | Aside configuration | -| `aside.level` | `string` | 0 | Aside base level of nesting | -| `aside.collapsed` | `boolean` | | Will be used as default value for collapsible navigation categories | -| `aside.exclude` | `string[]` | | An array of path to exclude out from the aside navigation | -| **Footer** | | | | -| `footer` | `object` | | Footer configuration | -| `footer.credits` | `object` | | An object defining the bottom left credits | -| `footer.credits.icon` | `object` | | The icon to use for the credits | -| `footer.credits.text` | `object` | | The text to use for the credits | -| `footer.textLinks` | `array` | `[]` | An array of texts to display at the center of footer | -| `footer.textLinks[0].text` | `string` | | The text to display | -| `footer.textLinks[0].href` | `string` | | A link to use for the text | -| `footer.textLinks[0].target` | `string` | `_self` | Where to display the linked URL, as the name for a browsing context | -| `footer.textLinks[0].rel` | `string` | `noopener noreferrer` | A space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types) | -| `footer.iconLinks` | `array` | `[]` | An array of icons to display in the footer | -| `footer.iconLinks[0].label` | `string` | | A label to use for the icon | -| `footer.iconLinks[0].href` | `string` | | A link to use for the icon | -| `footer.iconLinks[0].icon` | `string` | | The icon to use (can be a component name) | -| `footer.iconLinks[0].rel` | `string` | `noopener noreferrer` | A space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types) | -| `footer.fluid` | `boolean` | `true` | Make footer `Container` fluid | -| **GitHub** | | | | -| `github` | `object` | `false` | GitHub integration configuration | -| `github.dir` | `string` | | Directory containing the files to be edited | -| `github.branch` | `string` | | Branch to start editing | -| `github.repo` | `string` | | Name of the GitHub repo to edit files | -| `github.owner` | `string` | | Owner of the repo | -| `github.edit` | `boolean` | | Toggle "Edit this page on Github" component on documentation pages | - -## Customizing the logo - -To update the logo in the header, create a component in `components/Logo.vue` with your own logo. - -In this example, the image is located at `/public/img`. - -```vue [components/Logo.vue] - -``` diff --git a/docs/content/1.introduction/_dir.yml b/docs/content/1.introduction/_dir.yml deleted file mode 100644 index ff0894dab..000000000 --- a/docs/content/1.introduction/_dir.yml +++ /dev/null @@ -1,2 +0,0 @@ -icon: ph:star-duotone -navigation.redirect: /introduction/getting-started diff --git a/docs/content/2.api/1.components.md b/docs/content/2.api/1.components.md deleted file mode 100644 index 74b17d879..000000000 --- a/docs/content/2.api/1.components.md +++ /dev/null @@ -1,693 +0,0 @@ -# Components - -Discover every component you can use in your content. - - -## `` - -::code-group - - ::code-block{label="Preview" preview} - ::alert{type="info" style="margin-top: 0;"} - Check out an **info** alert with `code` and a [link](/). - :: - - ::alert{type="success"} - Check out a **success** alert with `code` and a [link](/). - :: - - ::alert{type="warning"} - Check out a **warning** alert with `code` and a [link](/). - :: - - ::alert{type="danger" style="margin-bottom: 0;"} - Check out a **danger** alert with `code` and a [link](/). - :: - :: - - ```md [Code] - ::alert{type="info"} - Check out an **info** alert with `code` and a [link](/). - :: - - ::alert{type="success"} - Check out a **success** alert with `code` and a [link](/). - :: - - ::alert{type="warning"} - Check out a **warning** alert with `code` and a [link](/). - :: - - ::alert{type="danger"} - Check out a **danger** alert with `code` and a [link](/). - :: - ``` - -:: - - - -::source-link ---- -source: "components/content/Alert.vue" ---- -:: - ---- - -## `` - -`` support same types as ``. - -::code-group - - ::code-block{label="Preview" preview} - ::div{style="display:flex; gap: 1rem;"} - :badge[v1.2] - - :badge[Deprecated]{type="warning"} - - ::badge{type="danger"} - Not found! - :: - :: - :: - - ```md [Code] - :badge[v1.2] - - :badge[Deprecated]{type="warning"} - - ::badge{type="danger"} - Not found! - :: - ``` - -:: - - - -::source-link ---- -source: "components/content/Badge.vue" ---- -:: - ---- - -## `` - -::code-group - - ::code-block{label="Preview"} - ::block-hero - --- - cta: - - Get started - - /introduction/getting-started - secondary: - - Open on GitHub → - - https://github.com/nuxtlabs/docus - snippet: npx nuxi@latest init docus-app -t nuxtlabs/docus-starter - --- - #title - Document-driven framework - - #description - Docus reconciles content creators and developers by offering to both the best tools to create and scale content-based websites. - :: - :: - - ```md [Code] - ::block-hero - --- - cta: - - Get started - - /get-started - secondary: - - Open on GitHub → - - https://github.com/nuxtlabs/docus - snippet: npx nuxi@latest init docus-app -t nuxtlabs/docus-starter - --- - #title - Document-driven framework - - #description - Docus reconciles content creators and developers by offering to both the best tools to create and scale content-based websites. - :: - ``` - -:: - - - -::source-link ---- -source: "components/content/BlockHero.vue" ---- -:: - ---- - -## `` -::code-group - - ::code-block{label="Preview" preview} - :button-link[Play on StackBlitz]{icon="IconStackBlitz" href="https://stackblitz.com/github/nuxtlabs/docus-starter" blank} - :: - - ```md [Code] - :button-link[Play on StackBlitz]{icon="IconStackBlitz" href="https://stackblitz.com/github/nuxtlabs/docus-starter" blank} - ``` - -:: - - - -::source-link ---- -source: "components/content/ButtonLink.vue" ---- -:: - ---- - -## `` - -`` support same types as ``. - -::code-group - - ::code-block{label="Preview"} - ::callout - #summary - This is a callout! Click me to open. - - #content - This is the content of the callout. - :: - - ::callout{type="warning"} - #summary - This is a callout! Click me to open. - - #content - This is the content of the callout. - :: - :: - - ```md [Code] - ::callout - #summary - This is a callout! Click me to open. - - #content - This is the content of the callout. - :: - - ::callout{type="warning"} - #summary - This is a callout! Click me to open. - - #content - This is the content of the callout. - :: - ``` - -:: - - - -::source-link ---- -source: "components/content/Callout.vue" ---- -:: - ---- - -## `` - -::code-group - - ::code-block{label="Preview"} - ::card - --- - icon: logos:nuxt-icon - --- - #title - Nuxt Architecture. - #description - Based on **Nuxt 3** and **Nuxt Content**. :br - Use Nuxt to build a static site, or a serverless app. - :: - :: - - ```md [Code] - ::card{icon="logos:nuxt-icon"} - #title - Nuxt Architecture. - #description - Based on **Nuxt 3** and **Nuxt Content**. :br - Use Nuxt to build a static site, or a serverless app. - :: - ``` - -:: - - - -::source-link ---- -source: "components/content/Card.vue" ---- -:: - ---- - -## `` - -::code-group - - ::code-block{label="Preview"} - ::card-grid - #title - What's included? - - #root - :ellipsis - - #default - ::card - #title - Nuxt Architecture. - #description - Harness the full power of Nuxt and the Nuxt ecosystem. - :: - ::card - #title - Vue Components. - #description - Use built-in components (or your own!) inside your content. - :: - ::card - #title - Write Markdown. - #description - Enjoy the ease and simplicity of Markdown and discover MDC syntax. - :: - :: - :: - - ```md [Code] - ::card-grid - #title - What's included - - #root - :ellipsis - - #default - ::card - #title - Nuxt Architecture. - #description - Harness the full power of Nuxt and the Nuxt ecosystem. - :: - ::card - #title - Vue Components. - #description - Use built-in components (or your own!) inside your content. - :: - ::card - #title - Write Markdown. - #description - Enjoy the ease and simplicity of Markdown and discover MDC syntax. - :: - :: - ``` - -:: - - - -::source-link ---- -source: "components/content/CardGrid.vue" ---- -:: - ---- - -## `` - -This component uses `slots` to create a tab panel of your code examples or preview. - -::code-group - - ::code-block{label="Preview" preview} - ::code-group - ```bash [Yarn] - yarn add docus - ``` - - ```bash [NPM] - npm install docus - ``` - :: - :: - - ```md [Code] - ::code-group - ```bash [Yarn] - yarn add docus - ``` - ```bash [NPM] - npm install docus - ``` - :: - ``` - -:: - -::source-link ---- -source: "components/content/CodeGroup.vue" ---- -:: - ---- - -## `` - -To be used inside a `` component to display a preview of some rendered code. - -::code-group - -::code-block{label="Preview" preview} - ::badge - Hello World! - :: -:: - -```md [Code] -/* Added as a child of `` */ - -::code-block{label="Preview" preview} - ::badge - Hello World! - :: -:: -``` - -:: - - - -::source-link ---- -source: "components/content/CodeBlock.vue" ---- -:: - ---- - -## `` - - -::code-group - -::code-block{label="Preview" preview} - :copy-button{content="hey!"} -:: - -```md [Code] -:copy-button{content="hey!"} -``` - -:: - - - -::source-link ---- -source: "components/content/CopyButton.vue" ---- -:: - ---- - -## `` - -Icon component gives you access to all **100,000+** icons from [icones.js.org](https://icones.js.org). - -::code-group - - ::code-block{label="Preview" preview} - :icon{name="logos:nuxt-icon"} - :icon{name="logos:vue"} - :icon{name="logos:nuxt-icon"} - :: - - ```md [Code] - :icon{name="logos:nuxt-icon"} - :icon{name="logos:vue"} - :icon{name="logos:nuxt-icon"} - ``` - -:: - - - -::source-link ---- -source: "components/content/Icon.vue" ---- -:: - ---- - -## `` - -::code-group - - ::code-block{label="Preview" preview} - ::list{type="primary"} - - **Important** - - Always - :: - - ::list{type="success"} - - Amazing - - Congrats - :: - - ::list{type="info"} - - Do you know? - - You can also do this - :: - - ::list{type="warning"} - - Be careful - - Use with precautions - :: - - ::list{type="danger"} - - Drinking too much - - Driving drunk - :: - - :: - - ```md [Code] - ::list{type="primary"} - - **Important** - - Always - :: - - ::list{type="success"} - - Amazing - - Congrats - :: - - ::list{type="info"} - - Do you know? - - You can also do this - :: - - ::list{type="warning"} - - Be careful - - Use with precautions - :: - - ::list{type="danger"} - - Drinking too much - - Driving drunk - :: - ``` - -:: - - - -::source-link ---- -source: "components/content/List.vue" ---- -:: - - -## `` - -Embed CodeSandbox/StackBlitz easily in your documentation with great performances. - -Using the [IntersectionObserver](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) to load when visible in the viewport. - -::code-group - - ::code-block{label="Preview" preview} - :sandbox{src="https://codesandbox.io/embed/nuxt-content-l164h?hidenavigation=1&theme=dark"} - :: - - ```md [Code] - :sandbox{src="https://codesandbox.io/embed/nuxt-content-l164h?hidenavigation=1&theme=dark"} - ``` - -:: - - - -::source-link ---- -source: "components/content/Sandbox.vue" ---- -:: - ---- - -## `` - -::code-group - - ::code-block{label="Preview" preview} - :terminal{content="nuxi build"} - :: - - ```md [Code] - :terminal{content="nuxi build"} - ``` - -:: - - - -::source-link ---- -source: "components/content/Terminal.vue" ---- -:: - ---- - -## `` - -::code-group - - ::code-block{label="Preview" preview} - ::div - :video-player{src="https://www.youtube.com/watch?v=o9e12WbKrd8"} - :: - :: - - ```md [Code] - ::div - :video-player{src="https://www.youtube.com/watch?v=o9e12WbKrd8"} - :: - ``` - -:: - - - -::source-link ---- -source: "components/content/VideoPlayer.vue" ---- -:: diff --git a/docs/content/2.api/2.composables.md b/docs/content/2.api/2.composables.md deleted file mode 100644 index 4c0bea24f..000000000 --- a/docs/content/2.api/2.composables.md +++ /dev/null @@ -1,88 +0,0 @@ -# Composables - -Discover the Docus composables to use in your custom Vue components and pages. - -## `useDocus()` - -`useDocus()`{lang=ts} gives access to docus runtime config, all default values and your custom config from `app.config.ts` - -- `config` refers to the merged config of the current page. - -`main`, `header`, `aside`, `footer` and `titleTemplate` can be set from `_dir.yml` and any `page.md` file. - -The configs in `app.config` file will be used as defaults. - -```vue - - - -``` - -- `tree` refers to the current navigation tree that is displayed in the `aside` component. - -```vue - - - -``` - -::source-link ---- -source: "composables/useDocus.ts" ---- -:: - -## `useMenu()` - -`useMenu()` gives access to `$menu` plugin controlling mobile navigation globally. - -```ts -const { - // Is menu visible - visible, - // Close menu function - close, - // Open menu function - open, - // Toggle menu function - toggle -} = useMenu() -``` - -::source-link ---- -source: "composables/useMenu.ts" ---- -:: - -## `useScrollspy()` - -`useScrollspy()` is used in `docs` layout to make the ToC display the currently visible headings. - -```ts -const { - // Headings on the page - visibleHeadings, - // Active headings (for the current page) - activeHeadings, - // Update headings (an array of DOM nodes) - updateHeadings -} = useScrollspy() -``` - -::source-link ---- -source: "composables/useScrollspy.ts" ---- -:: diff --git a/docs/content/2.api/3.layouts.md b/docs/content/2.api/3.layouts.md deleted file mode 100644 index 25dc45833..000000000 --- a/docs/content/2.api/3.layouts.md +++ /dev/null @@ -1,43 +0,0 @@ -# Layouts -Docus provides multiple built-in layouts for displaying your Markdown pages. - -## `default` - -The default layout for every page created in the project. This layout renders multiple section alongside the content: - -- Aside navigation menu (togglable with `aside: false/true`) -- Page bottom section (togglable with `bottom: false/true`) -- Table of content (togglable with `toc: false/true`) - -```md [index.md] ---- -aside: true -bottom: true -toc: false ---- - -Your awesome content -``` - -Current page is live sample of default layout. - -## `page` - -`page` layout is content focused layout. This layout does not render aside menu of table of contents. - - -This layout accept some configuration from content front-matter. - -- `fluid`: By setting `fluid: true` in content front-matter the content will be rendered in full width. -- `constrainedClass`: Using this option you can modify layout container look. Like constraining layout width of changing the background. -- `padded`: Setting `padded: true` in front-matter will add horizontal padding in the layout. - -```md [index.md] ---- -title: Home -layout: page -fluid: true ---- -``` - -Check [Home page](/) as live sample of page layout diff --git a/docs/content/2.api/_dir.yml b/docs/content/2.api/_dir.yml deleted file mode 100644 index b340141be..000000000 --- a/docs/content/2.api/_dir.yml +++ /dev/null @@ -1,2 +0,0 @@ -title: 'API' -icon: heroicons-outline:bookmark-alt diff --git a/docs/content/3.components/_dir.yml b/docs/content/3.components/_dir.yml deleted file mode 100644 index bae9996ee..000000000 --- a/docs/content/3.components/_dir.yml +++ /dev/null @@ -1,2 +0,0 @@ -title: 'Components' -icon: heroicons-outline:bookmark-alt diff --git a/docs/content/3.components/accordion.md b/docs/content/3.components/accordion.md deleted file mode 100644 index fbba5c46c..000000000 --- a/docs/content/3.components/accordion.md +++ /dev/null @@ -1,650 +0,0 @@ ---- -metaTitle: Accordion -metaDescription: A vertically stacked set of interactive headings that each reveal an associated section of content. -name: accordion -aria: https://www.w3.org/WAI/ARIA/apg/patterns/accordion ---- - -# Accordion - - - A vertically stacked set of interactive headings that each reveal an - associated section of content. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-accordion -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Accordion from '@radix-ui/react-accordion'; - -() => ( - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of an accordion. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'type', - required: true, - type: '"single" | "multiple"', - typeSimple: 'enum', - description: ( - - Determines whether one or multiple items can be opened at the same - time. - - ), - }, - { - name: 'value', - required: false, - type: 'string', - description: ( - - The controlled value of the item to expand when type is{' '} - "single". Must be used in conjunction with{' '} - onValueChange. - - ), - }, - { - name: 'defaultValue', - required: false, - type: 'string', - description: ( - - The value of the item to expand when initially rendered and{' '} - type is "single". Use when you do not need - to control the state of the items. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string) => void', - typeSimple: 'function', - description: ( - - Event handler called when the expanded state of an item changes and{' '} - type is "single". - - ), - }, - { - name: 'value', - required: false, - default: '[]', - type: 'string[]', - description: ( - - The controlled value of the item to expand when type is{' '} - "multiple". Must be used in conjunction with{' '} - onValueChange. - - ), - }, - { - name: 'defaultValue', - required: false, - default: '[]', - type: 'string[]', - description: ( - - The value of the item to expand when initially rendered when{' '} - type is "multiple". Use when you do not need - to control the state of the items. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string[]) => void', - typeSimple: 'function', - description: ( - - Event handler called when the expanded state of an item changes and{' '} - type is "multiple". - - ), - }, - { - name: 'collapsible', - required: false, - default: 'false', - type: 'boolean', - description: ( - - When type is "single", allows closing - content when clicking trigger for an open item. - - ), - }, - { - name: 'disabled', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, prevents the user from interacting with the - accordion and all its items. - - ), - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - default: '"ltr"', - description: - 'The reading direction of the accordion when applicable. If omitted, assumes LTR (left-to-right) reading mode.', - }, - { - name: 'orientation', - required: false, - type: '"horizontal" | "vertical"', - typeSimple: 'enum', - default: '"vertical"', - description: 'The orientation of the accordion.', - }, - ]} -/> - - - -### Item - -Contains all the parts of a collapsible section. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'disabled', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'value', - required: true, - type: 'string', - description: 'A unique value for the item.', - }, - ]} -/> - - - -### Header - -Wraps an `Accordion.Trigger`. Use the `asChild` prop to update it to the appropriate heading level for your page. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Trigger - -Toggles the collapsed state of its associated item. It should be nested inside of an `Accordion.Header`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Content - -Contains the collapsible content for an item. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. - - ), - }, - ]} -/> - - - - - -## Examples - -### Expanded by default - -Use the `defaultValue` prop to define the open item by default. - -```jsx line=1 - - - - -``` - -### Allow collapsing all items - -Use the `collapsible` prop to allow all items to close. - -```jsx line=1 - - - - -``` - -### Multiple items open at the same time - -Set the `type` prop to `multiple` to enable opening multiple items at once. - -```jsx line=1 - - - - -``` - -### Rotated icon when open - -You can add extra decorative elements, such as chevrons, and rotate it when the item is open. - -```jsx line=12 -// index.jsx -import * as Accordion from '@radix-ui/react-accordion'; -import { ChevronDownIcon } from '@radix-ui/react-icons'; -import './styles.css'; - -export default () => ( - - - - - Trigger text - - - - - - -); -``` - -```css line=5-7 -/* styles.css */ -.AccordionChevron { - transition: transform 300ms; -} -.AccordionTrigger[data-state='open'] > .AccordionChevron { - transform: rotate(180deg); -} -``` - -### Horizontal orientation - -Use the `orientation` prop to create a horizontal accordion. - -```jsx line=1 - - - - -``` - -### Animating content size - -Use the `--radix-accordion-content-width` and/or `--radix-accordion-content-height` CSS variables to animate the size of the content when it opens/closes: - -```jsx line=9 -// index.jsx -import * as Accordion from '@radix-ui/react-accordion'; -import './styles.css'; - -export default () => ( - - - - - - -); -``` - -```css line=21,27 -/* styles.css */ -.AccordionContent { - overflow: hidden; -} -.AccordionContent[data-state='open'] { - animation: slideDown 300ms ease-out; -} -.AccordionContent[data-state='closed'] { - animation: slideUp 300ms ease-out; -} - -@keyframes slideDown { - from { - height: 0; - } - to { - height: var(__--radix-accordion-content-height__); - } -} - -@keyframes slideUp { - from { - height: var(__--radix-accordion-content-height__); - } - to { - height: 0; - } -} -``` - -## Accessibility - -Adheres to the [Accordion WAI-ARIA design pattern](https://www.w3.org/TR/wai-aria-practices-1.1/#accordion). - -### Keyboard Interactions - - - When focus is on an Accordion.Trigger of a collapsed - section, expands the section. - - ), - }, - { - keys: ['Enter'], - description: ( - - When focus is on an Accordion.Trigger of a collapsed - section, expands the section. - - ), - }, - { - keys: ['Tab'], - description: 'Moves focus to the next focusable element.', - }, - { - keys: ['Shift + Tab'], - description: 'Moves focus to the previous focusable element.', - }, - { - keys: ['ArrowDown'], - description: ( - - Moves focus to the next Accordion.Trigger when{' '} - orientation is vertical. - - ), - }, - { - keys: ['ArrowUp'], - description: ( - - Moves focus to the previous Accordion.Trigger when{' '} - orientation is vertical. - - ), - }, - { - keys: ['ArrowRight'], - description: ( - - Moves focus to the next Accordion.Trigger when{' '} - orientation is horizontal. - - ), - }, - { - keys: ['ArrowLeft'], - description: ( - - Moves focus to the previous Accordion.Trigger when{' '} - orientation is horizontal. - - ), - }, - { - keys: ['Home'], - description: ( - - When focus is on an Accordion.Trigger, moves focus to the - first Accordion.Trigger. - - ), - }, - { - keys: ['End'], - description: ( - - When focus is on an Accordion.Trigger, moves focus to the - last Accordion.Trigger. - - ), - }, - ]} -/> \ No newline at end of file diff --git a/docs/content/3.components/alert-dialog.md b/docs/content/3.components/alert-dialog.md deleted file mode 100644 index 78467d83c..000000000 --- a/docs/content/3.components/alert-dialog.md +++ /dev/null @@ -1,476 +0,0 @@ ---- -metaTitle: Alert Dialog -metaDescription: A modal dialog that interrupts the user with important content and expects a response. -name: alert-dialog -aria: https://www.w3.org/WAI/ARIA/apg/patterns/alertdialog ---- - -# Alert Dialog - - - A modal dialog that interrupts the user with important content and expects a - response. - - - - - - - - - - Manages screen reader announcements with Title and{' '} - Description components. - , - 'Esc closes the component automatically.', - ]} -/> - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-alert-dialog -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as AlertDialog from '@radix-ui/react-alert-dialog'; - -export default () => ( - - - - - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of an alert dialog. - - - The controlled open state of the dialog. Must be used in conjunction - with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: - 'Event handler called when the open state of the dialog changes.', - }, - ]} -/> - -### Trigger - -A button that opens the dialog. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Portal - -When used, portals your overlay and content parts into the `body`. - - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. If used on this - part, it will be inherited by AlertDialog.Overlay and{' '} - AlertDialog.Content. - - ), - }, - { - name: 'container', - type: 'HTMLElement', - default: 'document.body', - description: 'Specify a container element to portal the content into.', - }, - ]} -/> - -### Overlay - -A layer that covers the inert portion of the view when the dialog is open. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - AlertDialog.Portal. - - ), - }, - ]} -/> - - - -### Content - -Contains content to be rendered when the dialog is open. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - AlertDialog.Portal. - - ), - }, - { - name: 'onOpenAutoFocus', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves to the destructive action after - opening. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onCloseAutoFocus', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves to the trigger after closing. It - can be prevented by calling event.preventDefault. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault. - - ), - }, - ]} -/> - - - -### Cancel - -A button that closes the dialog. This button should be distinguished visually from `AlertDialog.Action` buttons. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Action - -A button that closes the dialog. These buttons should be distinguished visually from the `AlertDialog.Cancel` button. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Title - -An accessible name to be announced when the dialog is opened. Alternatively, you can provide `aria-label` or `aria-labelledby` to `AlertDialog.Content` and exclude this component. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Description - -An accessible description to be announced when the dialog is opened. Alternatively, you can provide `aria-describedby` to `AlertDialog.Content` and exclude this component. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -## Examples - -### Close after asynchronous form submission - -Use the controlled props to programmatically close the Alert Dialog after an async operation has completed. - -```jsx line=4,7,10,15,17 -import React from 'react'; -import * as AlertDialog from '@radix-ui/react-alert-dialog'; - -const wait = () => new Promise((resolve) => setTimeout(resolve, 1000)); - -export default () => { - const [open, setOpen] = React.useState(false); - - return ( - - Open - - - -
{ - wait().then(() => setOpen(false)); - event.preventDefault(); - }} - > - {/** some inputs */} - -
-
-
-
- ); -}; -``` - -### Custom portal container - -Customise the element that your alert dialog portals into. - -```jsx line=2,13 -export default () => { - const [container, setContainer] = React.useState(null); - return ( -
- - - - - ... - - - -
-
- ); -}; -``` - -## Accessibility - -Adheres to the [Alert and Message Dialogs WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/alertdialog). - -### Keyboard Interactions - - - Closes the dialog and moves focus to AlertDialog.Trigger. - - ), - }, - ]} -/> \ No newline at end of file diff --git a/docs/content/3.components/aspect-ratio.md b/docs/content/3.components/aspect-ratio.md deleted file mode 100644 index 297f9213a..000000000 --- a/docs/content/3.components/aspect-ratio.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -metaTitle: Aspect Ratio -metaDescription: Displays content within a desired ratio. -name: aspect-ratio ---- - -# Aspect Ratio - -Displays content within a desired ratio. - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-aspect-ratio -``` - -## Anatomy - -Import the component. - -```jsx -import * as AspectRatio from '@radix-ui/react-aspect-ratio'; - -export default () => ; -``` - -## API Reference - -### Root - -Contains the content you want to constrain to a given ratio. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'ratio', - type: 'number', - default: '1', - description: 'The desired ratio', - }, - ]} -/> \ No newline at end of file diff --git a/docs/content/3.components/avatar.mdx b/docs/content/3.components/avatar.mdx deleted file mode 100644 index d0dcdb874..000000000 --- a/docs/content/3.components/avatar.mdx +++ /dev/null @@ -1,162 +0,0 @@ ---- -metaTitle: Avatar -metaDescription: An image element with a fallback for representing the user. -name: avatar ---- - -# Avatar - - - An image element with a fallback for representing the user. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-avatar -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Avatar from '@radix-ui/react-avatar'; - -export default () => ( - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of an avatar. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Image - -The image to render. By default it will only render when it has loaded. You can use the `onLoadingStatusChange` handler if you need more control. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'onLoadingStatusChange', - type: '(status: "idle" | "loading" | "loaded" | "error") => void', - typeSimple: 'function', - description: - 'A callback providing information about the loading status of the image. This is useful in case you want to control more precisely what to render as the image is loading.', - }, - ]} -/> - -### Fallback - -An element that renders when the image hasn't loaded. This means whilst it's loading, or if there was an error. If you notice a flash during loading, you can provide a `delayMs` prop to delay its rendering so it only renders for those with slower connections. For more control, use the `onLoadingStatusChange` handler on `Avatar.Image`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'delayMs', - type: 'number', - description: - 'Useful for delaying rendering so it only appears for those with slower connections.', - }, - ]} -/> - -## Examples - -### Clickable Avatar with tooltip - -You can compose the Avatar with a [Tooltip](/docs/primitives/components/tooltip) to display extra information. - -```jsx line=2,5,6,8,10-14 -import * as Avatar from '@radix-ui/react-avatar'; -import * as Tooltip from '@radix-ui/react-tooltip'; - -export default () => ( - - - - - - - Tooltip content - - - -); -``` \ No newline at end of file diff --git a/docs/content/3.components/checkbox.md b/docs/content/3.components/checkbox.md deleted file mode 100644 index e0d98e737..000000000 --- a/docs/content/3.components/checkbox.md +++ /dev/null @@ -1,243 +0,0 @@ ---- -metaTitle: Checkbox -metaDescription: A control that allows the user to toggle between checked and not checked. -name: checkbox -aria: https://www.w3.org/WAI/ARIA/apg/patterns/checkbox ---- - -# Checkbox - - - A control that allows the user to toggle between checked and not checked. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-checkbox -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Checkbox from '@radix-ui/react-checkbox'; - -export default () => ( - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a checkbox. An `input` will also render when used within a `form` to ensure events propagate correctly. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'defaultChecked', - type: 'boolean', - description: - 'The checked state of the checkbox when it is initially rendered. Use when you do not need to control its checked state.', - }, - { - name: 'checked', - type: 'boolean', - description: ( - - The controlled checked state of the checkbox. Must be used in - conjunction with onCheckedChange. - - ), - }, - { - name: 'onCheckedChange', - type: `(checked: boolean | 'indeterminate') => void`, - typeSimple: 'function', - description: - 'Event handler called when the checked state of the checkbox changes.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - checkbox. - - ), - }, - { - name: 'required', - type: 'boolean', - description: ( - - When true, indicates that the user must check the - checkbox before the owning form can be submitted. - - ), - }, - { - name: 'name', - type: 'string', - description: - 'The name of the checkbox. Submitted with its owning form as part of a name/value pair.', - }, - { - name: 'value', - type: 'string', - default: 'on', - description: ( - - The value given as data when submitted with a name. - - ), - }, - ]} -/> - - - -### Indicator - -Renders when the checkbox is in a checked or indeterminate state. You can style this element directly, or you can use it as a wrapper to put an icon into, or both. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: - 'Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries.', - }, - ]} -/> - - - -## Examples - -### Indeterminate - -You can set the checkbox to `indeterminate` by taking control of its state. - -```jsx line=5,9-14,16 -import { DividerHorizontalIcon, CheckIcon } from '@radix-ui/react-icons'; -import * as Checkbox from '@radix-ui/react-checkbox'; - -export default () => { - const [checked, setChecked] = React.useState('indeterminate'); - - return ( - <> - - - {checked === 'indeterminate' && } - {checked === true && } - - - - - - ); -}; -``` - -## Accessibility - -Adheres to the [tri-state Checkbox WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/checkbox). - -### Keyboard Interactions - - \ No newline at end of file diff --git a/docs/content/3.components/collapsible.md b/docs/content/3.components/collapsible.md deleted file mode 100644 index 54ec3d75c..000000000 --- a/docs/content/3.components/collapsible.md +++ /dev/null @@ -1,284 +0,0 @@ ---- -metaTitle: Collapsible -metaDescription: An interactive component which expands/collapses a panel. -name: collapsible -aria: https://www.w3.org/WAI/ARIA/apg/patterns/disclosure ---- - -# Collapsible - - - An interactive component which expands/collapses a panel. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-collapsible -``` - -## Anatomy - -Import the components and piece the parts together. - -```jsx -import * as Collapsible from '@radix-ui/react-collapsible'; - -export default () => ( - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a collapsible. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'defaultOpen', - type: 'boolean', - description: - 'The open state of the collapsible when it is initially rendered. Use when you do not need to control its open state.', - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the collapsible. Must be used in - conjunction with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: - 'Event handler called when the open state of the collapsible changes.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - collapsible. - - ), - }, - ]} -/> - - - -### Trigger - -The button that toggles the collapsible. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Content - -The component that contains the collapsible content. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: - 'Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries.', - }, - ]} -/> - - - - - -## Examples - -### Animating content size - -Use the `--radix-collapsible-content-width` and/or `--radix-collapsible-content-height` CSS variables to animate the size of the content when it opens/closes. Here's a demo: - -```jsx line=8 -// index.jsx -import * as Collapsible from '@radix-ui/react-collapsible'; -import './styles.css'; - -export default () => ( - - - - … - - -); -``` - -```css line=17,23 -/* styles.css */ -.CollapsibleContent { - overflow: hidden; -} -.CollapsibleContent[data-state='open'] { - animation: slideDown 300ms ease-out; -} -.CollapsibleContent[data-state='closed'] { - animation: slideUp 300ms ease-out; -} - -@keyframes slideDown { - from { - height: 0; - } - to { - height: var(__--radix-collapsible-content-height__); - } -} - -@keyframes slideUp { - from { - height: var(__--radix-collapsible-content-height__); - } - to { - height: 0; - } -} -``` - -## Accessibility - -Adheres to the [Disclosure WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/disclosure). - -### Keyboard Interactions - - \ No newline at end of file diff --git a/docs/content/3.components/context-menu.md b/docs/content/3.components/context-menu.md deleted file mode 100644 index 3061ab50f..000000000 --- a/docs/content/3.components/context-menu.md +++ /dev/null @@ -1,1582 +0,0 @@ ---- -metaTitle: Context Menu -metaDescription: Displays a menu located at the pointer, triggered by a right-click or a long-press. -name: context-menu -aria: https://www.w3.org/WAI/ARIA/apg/patterns/menu ---- - -# Context Menu - - - Displays a menu located at the pointer, triggered by a right-click or a - long-press. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-context-menu -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as ContextMenu from '@radix-ui/react-context-menu'; - -export default () => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); -``` - -## API Reference - -Adheres to the [Menu WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menu) and uses [roving tabindex](https://www.w3.org/TR/wai-aria-practices-1.2/examples/menu-button/menu-button-actions.html) to manage focus movement among menu items. - -### Root - -Contains all the parts of a context menu. - - - The reading direction of submenus when applicable. If omitted, - inherits globally from DirectionProvider or assumes LTR - (left-to-right) reading mode. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: - 'Event handler called when the open state of the context menu changes.', - }, - { - name: 'modal', - required: false, - type: 'boolean', - default: 'true', - description: ( - - The modality of the context menu. When set to true, - interaction with outside elements will be disabled and only menu - content will be visible to screen readers. - - ), - }, - ]} -/> - -### Trigger - -The area that opens the context menu. Wrap it around the target you want the context menu to open from when right-clicking (or using the relevant keyboard shortcuts). - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'disabled', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, the context menu won't open when - right-clicking. Note that this will also restore the native context - menu. - - ), - }, - ]} -/> - - - -### Portal - -When used, portals the content part into the `body`. - - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. If used on this - part, it will be inherited by ContextMenu.Content and{' '} - ContextMenu.SubContent respectively. - - ), - }, - { - name: 'container', - type: 'HTMLElement', - default: 'document.body', - description: 'Specify a container element to portal the content into.', - }, - ]} -/> - -### Content - -The component that pops out in an open context menu. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, keyboard navigation will loop from last item - to first, and vice versa. - - ), - }, - { - name: 'onCloseAutoFocus', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves back after closing. It can be - prevented by calling event.preventDefault. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault. - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onFocusOutside', - type: '(event: FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves outside the bounds of the - component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onInteractOutside', - type: '(event: PointerDownOutsideEvent | FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when an interaction (pointer or focus event) - happens outside the bounds of the component. It can be prevented by - calling event.preventDefault. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - ContextMenu.Portal. - - ), - }, - { - name: 'alignOffset', - type: 'number', - default: '0', - description: ( - The vertical distance in pixels from the anchor. - ), - }, - { - name: 'avoidCollisions', - type: 'boolean', - default: 'true', - description: ( - - When true, overrides the side and - align preferences to prevent collisions with boundary edges. - - ), - }, - { - name: 'collisionBoundary', - type: 'Element | null | Array', - typeSimple: 'Boundary', - default: '[]', - description: ( - - The element used as the collision boundary. By default this is the - viewport, though you can provide additional element(s) to be included - in this check. - - ), - }, - { - name: 'collisionPadding', - type: 'number | Partial>', - typeSimple: 'number | Padding', - default: '0', - description: ( - - The distance in pixels from the boundary edges where collision - detection should occur. Accepts a number (same for all sides), or a - partial padding object, for example: {`{ top: 20, left: 20 }`} - . - - ), - }, - { - name: 'sticky', - type: '"partial" | "always"', - typeSimple: 'enum', - default: '"partial"', - description: ( - - The sticky behavior on the align axis. "partial" will - keep the content in the boundary as long as the trigger is at least - partially in the boundary whilst "always" will keep the - content in the boundary regardless. - - ), - }, - { - name: 'hideWhenDetached', - type: 'boolean', - default: 'false', - description: ( - - Whether to hide the content when the trigger becomes fully occluded. - - ), - }, - ]} -/> - - - - - The transform-origin computed from the content and arrow - positions/offsets - - ), - }, - { - cssVariable: '--radix-context-menu-content-available-width', - description: ( - <>The remaining width between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-context-menu-content-available-height', - description: ( - <>The remaining height between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-context-menu-trigger-width', - description: <>The width of the trigger, - }, - { - cssVariable: '--radix-context-menu-trigger-height', - description: <>The height of the trigger, - }, - ]} -/> - -### Arrow - -An optional arrow element to render alongside a submenu. This can be used to help visually link the trigger item with the `ContextMenu.Content`. Must be rendered inside `ContextMenu.Content`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'width', - type: 'number', - default: 10, - description: The width of the arrow in pixels., - }, - { - name: 'height', - type: 'number', - default: 5, - description: The height of the arrow in pixels., - }, - ]} -/> - -### Item - -The component that contains the context menu items. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'onSelect', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when the user selects an item (via mouse or - keyboard). Calling event.preventDefault in this handler - will prevent the context menu from closing when selecting that item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### Group - -Used to group multiple `ContextMenu.Item`s. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Label - -Used to render a label. It won't be focusable using arrow keys. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### CheckboxItem - -An item that can be controlled and rendered like a checkbox. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'checked', - type: `boolean | 'indeterminate'`, - description: ( - - The controlled checked state of the item. Must be used in conjunction - with onCheckedChange. - - ), - }, - { - name: 'onCheckedChange', - type: `(checked: boolean) => void`, - typeSimple: 'function', - description: ( - Event handler called when the checked state changes. - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'onSelect', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when the user selects an item (via mouse or - keyboard). Calling event.preventDefault in this handler - will prevent the context menu from closing when selecting that item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### RadioGroup - -Used to group multiple `ContextMenu.RadioItem`s. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - type: 'string', - description: 'The value of the selected item in the group.', - }, - { - name: 'onValueChange', - type: '(value: string) => void', - typeSimple: 'function', - description: 'Event handler called when the value changes.', - }, - ]} -/> - -### RadioItem - -An item that can be controlled and rendered like a radio. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - type: 'string', - required: true, - description: 'The unique value of the item.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'onSelect', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when the user selects an item (via mouse or - keyboard). Calling event.preventDefault in this handler - will prevent the context menu from closing when selecting that item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### ItemIndicator - -Renders when the parent `ContextMenu.CheckboxItem` or `ContextMenu.RadioItem` is checked. You can style this element directly, or you can use it as a wrapper to put an icon into, or both. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. - - ), - }, - ]} -/> - - - -### Separator - -Used to visually separate items in the context menu. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Sub - -Contains all the parts of a submenu. - - - The open state of the submenu when it is initially rendered. Use when - you do not need to control its open state. - - ), - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the submenu. Must be used in conjunction - with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: ( - - Event handler called when the open state of the submenu changes. - - ), - }, - ]} -/> - -### SubTrigger - -An item that opens a submenu. Must be rendered inside `ContextMenu.Sub`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### SubContent - -The component that pops out when a submenu is open. Must be rendered inside `ContextMenu.Sub`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, keyboard navigation will loop from last item - to first, and vice versa. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onFocusOutside', - type: '(event: FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves outside the bounds of the - component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onInteractOutside', - type: '(event: PointerDownOutsideEvent | FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when an interaction (pointer or focus event) - happens outside the bounds of the component. It can be prevented by - calling event.preventDefault. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - ContextMenu.Portal. - - ), - }, - { - name: 'sideOffset', - type: 'number', - default: '0', - description: The distance in pixels from the trigger., - }, - { - name: 'alignOffset', - type: 'number', - default: '0', - description: ( - - An offset in pixels from the "start" or{' '} - "end" alignment options. - - ), - }, - { - name: 'avoidCollisions', - type: 'boolean', - default: 'true', - description: ( - - When true, overrides the side and - align preferences to prevent collisions with boundary edges. - - ), - }, - { - name: 'collisionBoundary', - type: 'Element | null | Array', - typeSimple: 'Boundary', - default: '[]', - description: ( - - The element used as the collision boundary. By default this is the - viewport, though you can provide additional element(s) to be included - in this check. - - ), - }, - { - name: 'collisionPadding', - type: 'number | Partial>', - typeSimple: 'number | Padding', - default: '0', - description: ( - - The distance in pixels from the boundary edges where collision - detection should occur. Accepts a number (same for all sides), or a - partial padding object, for example: {`{ top: 20, left: 20 }`} - . - - ), - }, - { - name: 'arrowPadding', - type: 'number', - default: '0', - description: ( - - The padding between the arrow and the edges of the content. If your - content has border-radius, this will prevent it from - overflowing the corners. - - ), - }, - { - name: 'sticky', - type: '"partial" | "always"', - typeSimple: 'enum', - default: '"partial"', - description: ( - - The sticky behavior on the align axis. "partial" will - keep the content in the boundary as long as the trigger is at least - partially in the boundary whilst "always" will keep the - content in the boundary regardless. - - ), - }, - { - name: 'hideWhenDetached', - type: 'boolean', - default: 'false', - description: ( - - Whether to hide the content when the trigger becomes fully occluded. - - ), - }, - ]} -/> - - - - - The transform-origin computed from the content and arrow - positions/offsets - - ), - }, - { - cssVariable: '--radix-context-menu-content-available-width', - description: ( - <>The remaining width between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-context-menu-content-available-height', - description: ( - <>The remaining height between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-context-menu-trigger-width', - description: <>The width of the trigger, - }, - { - cssVariable: '--radix-context-menu-trigger-height', - description: <>The height of the trigger, - }, - ]} -/> - -## Examples - -### With submenus - -You can create submenus by using `ContextMenu.Sub` in combination with its parts. - -```jsx line=8-17 - - - - - - - - - Sub menu → - - - Sub menu item - Sub menu item - - - - - - - - - -``` - -### With disabled items - -You can add special styles to disabled items via the `data-disabled` attribute. - -```jsx line=10 -// index.jsx -import * as ContextMenu from '@radix-ui/react-context-menu'; -import './styles.css'; - -export default () => ( - - - - - - … - - - - - -); -``` - -```css line=2 -/* styles.css */ -.ContextMenuItem[__data-disabled__] { - color: gainsboro; -} -``` - -### With separators - -Use the `Separator` part to add a separator between items. - -```jsx line=6,8 - - - - - - - - - - - - -``` - -### With labels - -Use the `Label` part to help label a section. - -```jsx line=5 - - - - - Label - - - - - - -``` - -### With checkbox items - -Use the `CheckboxItem` part to add an item that can be checked. - -```jsx line=6,16-21 -import React from 'react'; -import { CheckIcon } from '@radix-ui/react-icons'; -import * as ContextMenu from '@radix-ui/react-context-menu'; - -export default () => { - const [checked, setChecked] = React.useState(true); - - return ( - - - - - - - - - - - - Checkbox item - - - - - ); -}; -``` - -### With radio items - -Use the `RadioGroup` and `RadioItem` parts to add an item that can be checked amongst others. - -```jsx line=6,13-32 -import React from 'react'; -import { CheckIcon } from '@radix-ui/react-icons'; -import * as ContextMenu from '@radix-ui/react-context-menu'; - -export default () => { - const [color, setColor] = React.useState('blue'); - - return ( - - - - - - - - - - Red - - - - - - Blue - - - - - - Green - - - - - - ); -}; -``` - -### With complex items - -You can add extra decorative elements in the `Item` parts, such as images. - -```jsx line=9,13 -import * as ContextMenu from '@radix-ui/react-context-menu'; - -export default () => ( - - - - - - - Adolfo Hess - - - - Miyah Myles - - - - -); -``` - -### Constrain the content/sub-content size - -You may want to constrain the width of the content (or sub-content) so that it matches the trigger (or sub-trigger) width. You may also want to constrain its height to not exceed the viewport. - -We expose several CSS custom properties such as `--radix-context-menu-trigger-width` and `--radix-context-menu-content-available-height` to support this. Use them to constrain the content dimensions. - -```jsx line=9 -// index.jsx -import * as ContextMenu from '@radix-ui/react-context-menu'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css -/* styles.css */ -.ContextMenuContent { - width: var(__--radix-context-menu-trigger-width__); - max-height: var(__--radix-context-menu-content-available-height__); -} -``` - -### Origin-aware animations - -We expose a CSS custom property `--radix-context-menu-content-transform-origin`. Use it to animate the content from its computed origin based on `side`, `sideOffset`, `align`, `alignOffset` and any collisions. - -```jsx line=9 -// index.jsx -import * as ContextMenu from '@radix-ui/react-context-menu'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css line=3 -/* styles.css */ -.ContextMenuContent { - transform-origin: var(__--radix-context-menu-content-transform-origin__); - animation: scaleIn 0.5s ease-out; -} - -@keyframes scaleIn { - from { - opacity: 0; - transform: scale(0); - } - to { - opacity: 1; - transform: scale(1); - } -} -``` - -### Collision-aware animations - -We expose `data-side` and `data-align` attributes. Their values will change at runtime to reflect collisions. Use them to create collision and direction-aware animations. - -```jsx line=9 -// index.jsx -import * as ContextMenu from '@radix-ui/react-context-menu'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css line=6-11 -/* styles.css */ -.ContextMenuContent { - animation-duration: 0.6s; - animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); -} -.ContextMenuContent[__data-side='top'__] { - animation-name: slideUp; -} -.ContextMenuContent[__data-side='bottom'__] { - animation-name: slideDown; -} - -@keyframes slideUp { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes slideDown { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -``` - -## Accessibility - -Uses [roving tabindex](https://www.w3.org/WAI/ARIA/apg/patterns/kbd_roving_tabindex) to manage focus movement among menu items. - -### Keyboard Interactions - -Activates the focused item., - }, - { - keys: ['Enter'], - description: Activates the focused item., - }, - { - keys: ['ArrowDown'], - description: Moves focus to the next item., - }, - { - keys: ['ArrowUp'], - description: Moves focus to the previous item., - }, - { - keys: ['ArrowRight', 'ArrowLeft'], - description: ( - - When focus is on ContextMenu.SubTrigger, opens or closes - the submenu depending on reading direction. - - ), - }, - { - keys: ['Esc'], - description: 'Closes the context menu', - }, - ]} -/> \ No newline at end of file diff --git a/docs/content/3.components/dialog.md b/docs/content/3.components/dialog.md deleted file mode 100644 index e01ae8cf8..000000000 --- a/docs/content/3.components/dialog.md +++ /dev/null @@ -1,594 +0,0 @@ ---- -metaTitle: Dialog -metaDescription: A window overlaid on either the primary window or another dialog window, rendering the content underneath inert. -name: dialog -aria: https://www.w3.org/WAI/ARIA/apg/patterns/dialogmodal ---- - -# Dialog - - - A window overlaid on either the primary window or another dialog window, - rendering the content underneath inert. - - - - - - - - - - Manages screen reader announcements with Title and{' '} - Description components. - , - 'Esc closes the component automatically.', - ]} -/> - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-dialog -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Dialog from '@radix-ui/react-dialog'; - -export default () => ( - - - - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a dialog. - - - The open state of the dialog when it is initially rendered. Use when - you do not need to control its open state. - - ), - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the dialog. Must be used in conjunction - with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: ( - - Event handler called when the open state of the dialog changes. - - ), - }, - { - name: 'modal', - required: false, - type: 'boolean', - default: 'true', - description: ( - - The modality of the dialog. When set to true, interaction - with outside elements will be disabled and only dialog content will be - visible to screen readers. - - ), - }, - ]} -/> - -### Trigger - -The button that opens the dialog. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Portal - -When used, portals your overlay and content parts into the `body`. - - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. If used on this - part, it will be inherited by Dialog.Overlay and{' '} - Dialog.Content. - - ), - }, - { - name: 'container', - type: 'HTMLElement', - default: 'document.body', - description: 'Specify a container element to portal the content into.', - }, - ]} -/> - -### Overlay - -A layer that covers the inert portion of the view when the dialog is open. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - Dialog.Portal. - - ), - }, - ]} -/> - - - -### Content - -Contains content to be rendered in the open dialog. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - Dialog.Portal. - - ), - }, - { - name: 'onOpenAutoFocus', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves into the component after - opening. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onCloseAutoFocus', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves to the trigger after closing. It - can be prevented by calling event.preventDefault. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault. - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onInteractOutside', - type: '(event: React.FocusEvent | MouseEvent | TouchEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when an interaction (pointer or focus event) - happens outside the bounds of the component. It can be prevented by - calling event.preventDefault. - - ), - }, - ]} -/> - - - -### Close - -The button that closes the dialog. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Title - -An accessible title to be announced when the dialog is opened. - -If you want to hide the title, wrap it inside our [Visually Hidden](../utilities/visually-hidden) utility like this ``. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Description - -An optional accessible description to be announced when the dialog is opened. - -If you want to hide the description, wrap it inside our [Visually Hidden](../utilities/visually-hidden) utility like this ``. If you want to remove the description entirely, remove this part and pass `aria-describedby={undefined}` to `Dialog.Content`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -## Examples - -### Close after asynchronous form submission - -Use the controlled props to programmatically close the Dialog after an async operation has completed. - -```jsx line=4,7,10,15,17 -import React from 'react'; -import * as Dialog from '@radix-ui/react-dialog'; - -const wait = () => new Promise((resolve) => setTimeout(resolve, 1000)); - -export default () => { - const [open, setOpen] = React.useState(false); - - return ( - - Open - - - -
{ - wait().then(() => setOpen(false)); - event.preventDefault(); - }} - > - {/** some inputs */} - -
-
-
-
- ); -}; -``` - -### Scrollable overlay - -Move the content inside the overlay to render a dialog with overflow. - -```jsx -// index.jsx -import * as Dialog from '@radix-ui/react-dialog'; -import './styles.css'; - -export default () => { - return ( - - - - - ... - - - - ); -}; -``` - -```css -/* styles.css */ -.DialogOverlay { - background: rgba(0 0 0 / 0.5); - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - display: grid; - place-items: center; - overflow-y: auto; -} - -.DialogContent { - min-width: 300px; - background: white; - padding: 30px; - border-radius: 4px; -} -``` - -### Custom portal container - -Customise the element that your dialog portals into. - -```jsx line=5,10,16 -import React from 'react'; -import * as Dialog from '@radix-ui/react-dialog'; - -export default () => { - const [container, setContainer] = React.useState(null); - return ( -
- - - - - ... - - - -
-
- ); -}; -``` - -## Accessibility - -Adheres to the [Dialog WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/dialogmodal). - -### Keyboard Interactions - - - Closes the dialog and moves focus to Dialog.Trigger. - - ), - }, - ]} -/> - -## Custom APIs - -Create your own API by abstracting the primitive parts into your own component. - -### Abstract the overlay and the close button - -This example abstracts the `Dialog.Overlay` and `Dialog.Close` parts. - -#### Usage - -```jsx -import { Dialog, DialogTrigger, DialogContent } from './your-dialog'; - -export default () => ( - - Dialog trigger - Dialog Content - -); -``` - -#### Implementation - -```jsx -// your-dialog.jsx -import React from 'react'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import { Cross1Icon } from '@radix-ui/react-icons'; - -export const DialogContent = React.forwardRef( - ({ children, ...props }, forwardedRef) => ( - - - - {children} - - - - - - ) -); - -export const Dialog = DialogPrimitive.Root; -export const DialogTrigger = DialogPrimitive.Trigger; -``` \ No newline at end of file diff --git a/docs/content/3.components/dropdown-menu.md b/docs/content/3.components/dropdown-menu.md deleted file mode 100644 index c7e9bf9c5..000000000 --- a/docs/content/3.components/dropdown-menu.md +++ /dev/null @@ -1,1784 +0,0 @@ ---- -metaTitle: Dropdown Menu -metaDescription: Displays a menu to the user—such as a set of actions or functions—triggered by a button. -name: dropdown-menu -aria: https://www.w3.org/WAI/ARIA/apg/patterns/menubutton ---- - -# Dropdown Menu - - - Displays a menu to the user—such as a set of actions or functions—triggered by - a button. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-dropdown-menu -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; - -export default () => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a dropdown menu. - - - The open state of the dropdown menu when it is initially rendered. Use - when you do not need to control its open state. - - ), - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the dropdown menu. Must be used in - conjunction with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: ( - - Event handler called when the open state of the dropdown menu changes. - - ), - }, - { - name: 'modal', - required: false, - type: 'boolean', - default: 'true', - description: ( - - The modality of the dropdown menu. When set to true, - interaction with outside elements will be disabled and only menu - content will be visible to screen readers. - - ), - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - description: ( - - The reading direction of submenus when applicable. If omitted, - inherits globally from DirectionProvider or assumes LTR - (left-to-right) reading mode. - - ), - }, - ]} -/> - -### Trigger - -The button that toggles the dropdown menu. By default, the `DropdownMenu.Content` will position itself against the trigger. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Portal - -When used, portals the content part into the `body`. - - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. If used on this - part, it will be inherited by DropdownMenu.Content and{' '} - DropdownMenu.SubContent respectively. - - ), - }, - { - name: 'container', - type: 'HTMLElement', - default: 'document.body', - description: 'Specify a container element to portal the content into.', - }, - ]} -/> - -### Content - -The component that pops out when the dropdown menu is open. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, keyboard navigation will loop from last item - to first, and vice versa. - - ), - }, - { - name: 'onCloseAutoFocus', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves to the trigger after closing. It - can be prevented by calling event.preventDefault. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onFocusOutside', - type: '(event: FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves outside the bounds of the - component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onInteractOutside', - type: '(event: PointerDownOutsideEvent | FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when an interaction (pointer or focus event) - happens outside the bounds of the component. It can be prevented by - calling event.preventDefault. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - DropdownMenu.Portal. - - ), - }, - { - name: 'side', - type: '"top" | "right" | "bottom" | "left"', - typeSimple: 'enum', - default: '"bottom"', - description: ( - - The preferred side of the trigger to render against when open. Will be - reversed when collisions occur and avoidCollisions is - enabled. - - ), - }, - { - name: 'sideOffset', - type: 'number', - default: '0', - description: The distance in pixels from the trigger., - }, - { - name: 'align', - type: '"start" | "center" | "end"', - typeSimple: 'enum', - default: '"center"', - description: ( - - The preferred alignment against the trigger. May change when - collisions occur. - - ), - }, - { - name: 'alignOffset', - type: 'number', - default: '0', - description: ( - - An offset in pixels from the "start" or{' '} - "end" alignment options. - - ), - }, - { - name: 'avoidCollisions', - type: 'boolean', - default: 'true', - description: ( - - When true, overrides the side and - align preferences to prevent collisions with boundary edges. - - ), - }, - { - name: 'collisionBoundary', - type: 'Element | null | Array', - typeSimple: 'Boundary', - default: '[]', - description: ( - - The element used as the collision boundary. By default this is the - viewport, though you can provide additional element(s) to be included - in this check. - - ), - }, - { - name: 'collisionPadding', - type: 'number | Partial>', - typeSimple: 'number | Padding', - default: '0', - description: ( - - The distance in pixels from the boundary edges where collision - detection should occur. Accepts a number (same for all sides), or a - partial padding object, for example: {`{ top: 20, left: 20 }`} - . - - ), - }, - { - name: 'arrowPadding', - type: 'number', - default: '0', - description: ( - - The padding between the arrow and the edges of the content. If your - content has border-radius, this will prevent it from - overflowing the corners. - - ), - }, - { - name: 'sticky', - type: '"partial" | "always"', - typeSimple: 'enum', - default: '"partial"', - description: ( - - The sticky behavior on the align axis. "partial" will - keep the content in the boundary as long as the trigger is at least - partially in the boundary whilst "always" will keep the - content in the boundary regardless. - - ), - }, - { - name: 'hideWhenDetached', - type: 'boolean', - default: 'false', - description: ( - - Whether to hide the content when the trigger becomes fully occluded. - - ), - }, - ]} -/> - - - - - The transform-origin computed from the content and arrow - positions/offsets - - ), - }, - { - cssVariable: '--radix-dropdown-menu-content-available-width', - description: ( - <>The remaining width between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-dropdown-menu-content-available-height', - description: ( - <>The remaining height between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-dropdown-menu-trigger-width', - description: <>The width of the trigger, - }, - { - cssVariable: '--radix-dropdown-menu-trigger-height', - description: <>The height of the trigger, - }, - ]} -/> - -### Arrow - -An optional arrow element to render alongside the dropdown menu. This can be used to help visually link the trigger with the `DropdownMenu.Content`. Must be rendered inside `DropdownMenu.Content`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'width', - type: 'number', - default: 10, - description: The width of the arrow in pixels., - }, - { - name: 'height', - type: 'number', - default: 5, - description: The height of the arrow in pixels., - }, - ]} -/> - -### Item - -The component that contains the dropdown menu items. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'onSelect', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when the user selects an item (via mouse or - keyboard). Calling event.preventDefault in this handler - will prevent the dropdown menu from closing when selecting that item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### Group - -Used to group multiple `DropdownMenu.Item`s. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Label - -Used to render a label. It won't be focusable using arrow keys. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### CheckboxItem - -An item that can be controlled and rendered like a checkbox. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'checked', - type: `boolean | 'indeterminate'`, - description: ( - - The controlled checked state of the item. Must be used in conjunction - with onCheckedChange. - - ), - }, - { - name: 'onCheckedChange', - type: `(checked: boolean) => void`, - typeSimple: 'function', - description: ( - Event handler called when the checked state changes. - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'onSelect', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when the user selects an item (via mouse or - keyboard). Calling event.preventDefault in this handler - will prevent the dropdown menu from closing when selecting that item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### RadioGroup - -Used to group multiple `DropdownMenu.RadioItem`s. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - type: 'string', - description: 'The value of the selected item in the group.', - }, - { - name: 'onValueChange', - type: '(value: string) => void', - typeSimple: 'function', - description: 'Event handler called when the value changes.', - }, - ]} -/> - -### RadioItem - -An item that can be controlled and rendered like a radio. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - type: 'string', - required: true, - description: 'The unique value of the item.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'onSelect', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when the user selects an item (via mouse or - keyboard). Calling event.preventDefault in this handler - will prevent the dropdown menu from closing when selecting that item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### ItemIndicator - -Renders when the parent `DropdownMenu.CheckboxItem` or `DropdownMenu.RadioItem` is checked. You can style this element directly, or you can use it as a wrapper to put an icon into, or both. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. - - ), - }, - ]} -/> - - - -### Separator - -Used to visually separate items in the dropdown menu. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Sub - -Contains all the parts of a submenu. - - - The open state of the submenu when it is initially rendered. Use when - you do not need to control its open state. - - ), - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the submenu. Must be used in conjunction - with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: ( - - Event handler called when the open state of the submenu changes. - - ), - }, - ]} -/> - -### SubTrigger - -An item that opens a submenu. Must be rendered inside `DropdownMenu.Sub`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - - - The transform-origin computed from the content and arrow - positions/offsets - - ), - }, - { - cssVariable: '--radix-dropdown-menu-content-available-width', - description: ( - <>The remaining width between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-dropdown-menu-content-available-height', - description: ( - <>The remaining height between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-dropdown-menu-trigger-width', - description: <>The width of the trigger, - }, - { - cssVariable: '--radix-dropdown-menu-trigger-height', - description: <>The height of the trigger, - }, - ]} -/> - -### SubContent - -The component that pops out when a submenu is open. Must be rendered inside `DropdownMenu.Sub`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, keyboard navigation will loop from last item - to first, and vice versa. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onFocusOutside', - type: '(event: FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves outside the bounds of the - component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onInteractOutside', - type: '(event: PointerDownOutsideEvent | FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when an interaction (pointer or focus event) - happens outside the bounds of the component. It can be prevented by - calling event.preventDefault. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - DropdownMenu.Portal. - - ), - }, - { - name: 'sideOffset', - type: 'number', - default: '0', - description: The distance in pixels from the trigger., - }, - { - name: 'alignOffset', - type: 'number', - default: '0', - description: ( - - An offset in pixels from the "start" or{' '} - "end" alignment options. - - ), - }, - { - name: 'avoidCollisions', - type: 'boolean', - default: 'true', - description: ( - - When true, overrides the side and - align preferences to prevent collisions with boundary edges. - - ), - }, - { - name: 'collisionBoundary', - type: 'Element | null | Array', - typeSimple: 'Boundary', - default: '[]', - description: ( - - The element used as the collision boundary. By default this is the - viewport, though you can provide additional element(s) to be included - in this check. - - ), - }, - { - name: 'collisionPadding', - type: 'number | Partial>', - typeSimple: 'number | Padding', - default: '0', - description: ( - - The distance in pixels from the boundary edges where collision - detection should occur. Accepts a number (same for all sides), or a - partial padding object, for example: {`{ top: 20, left: 20 }`} - . - - ), - }, - { - name: 'arrowPadding', - type: 'number', - default: '0', - description: ( - - The padding between the arrow and the edges of the content. If your - content has border-radius, this will prevent it from - overflowing the corners. - - ), - }, - { - name: 'sticky', - type: '"partial" | "always"', - typeSimple: 'enum', - default: '"partial"', - description: ( - - The sticky behavior on the align axis. "partial" will - keep the content in the boundary as long as the trigger is at least - partially in the boundary whilst "always" will keep the - content in the boundary regardless. - - ), - }, - { - name: 'hideWhenDetached', - type: 'boolean', - default: 'false', - description: ( - - Whether to hide the content when the trigger becomes fully occluded. - - ), - }, - ]} -/> - - - -## Examples - -### With submenus - -You can create submenus by using `DropdownMenu.Sub` in combination with its parts. - -```jsx line=8-17 - - - - - - - - - Sub menu → - - - Sub menu item - Sub menu item - - - - - - - - - -``` - -### With disabled items - -You can add special styles to disabled items via the `data-disabled` attribute. - -```jsx line=10 -// index.jsx -import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; -import './styles.css'; - -export default () => ( - - - - - - … - - - - - -); -``` - -```css line=2 -/* styles.css */ -.DropdownMenuItem[__data-disabled__] { - color: gainsboro; -} -``` - -### With separators - -Use the `Separator` part to add a separator between items. - -```jsx line=6,8 - - - - - - - - - - - - -``` - -### With labels - -Use the `Label` part to help label a section. - -```jsx line=5 - - - - - Label - - - - - - -``` - -### With checkbox items - -Use the `CheckboxItem` part to add an item that can be checked. - -```jsx line=6,16-21 -import React from 'react'; -import { CheckIcon } from '@radix-ui/react-icons'; -import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; - -export default () => { - const [checked, setChecked] = React.useState(true); - - return ( - - - - - - - - - - - - Checkbox item - - - - - ); -}; -``` - -### With radio items - -Use the `RadioGroup` and `RadioItem` parts to add an item that can be checked amongst others. - -```jsx line=6,13-32 -import React from 'react'; -import { CheckIcon } from '@radix-ui/react-icons'; -import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; - -export default () => { - const [color, setColor] = React.useState('blue'); - - return ( - - - - - - - - - - Red - - - - - - Blue - - - - - - Green - - - - - - ); -}; -``` - -### With complex items - -You can add extra decorative elements in the `Item` parts, such as images. - -```jsx line=9,13 -import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; - -export default () => ( - - - - - - - Adolfo Hess - - - - Miyah Myles - - - - -); -``` - -### Constrain the content/sub-content size - -You may want to constrain the width of the content (or sub-content) so that it matches the trigger (or sub-trigger) width. You may also want to constrain its height to not exceed the viewport. - -We expose several CSS custom properties such as `--radix-dropdown-menu-trigger-width` and `--radix-dropdown-menu-content-available-height` to support this. Use them to constrain the content dimensions. - -```jsx line=9 -// index.jsx -import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css -/* styles.css */ -.DropdownMenuContent { - width: var(__--radix-dropdown-menu-trigger-width__); - max-height: var(__--radix-dropdown-menu-content-available-height__); -} -``` - -### Origin-aware animations - -We expose a CSS custom property `--radix-dropdown-menu-content-transform-origin`. Use it to animate the content from its computed origin based on `side`, `sideOffset`, `align`, `alignOffset` and any collisions. - -```jsx line=9 -// index.jsx -import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css line=3 -/* styles.css */ -.DropdownMenuContent { - transform-origin: var(__--radix-dropdown-menu-content-transform-origin__); - animation: scaleIn 0.5s ease-out; -} - -@keyframes scaleIn { - from { - opacity: 0; - transform: scale(0); - } - to { - opacity: 1; - transform: scale(1); - } -} -``` - -### Collision-aware animations - -We expose `data-side` and `data-align` attributes. Their values will change at runtime to reflect collisions. Use them to create collision and direction-aware animations. - -```jsx line=9 -// index.jsx -import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css line=6-11 -/* styles.css */ -.DropdownMenuContent { - animation-duration: 0.6s; - animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); -} -.DropdownMenuContent[__data-side='top'__] { - animation-name: slideUp; -} -.DropdownMenuContent[__data-side='bottom'__] { - animation-name: slideDown; -} - -@keyframes slideUp { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes slideDown { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -``` - -## Accessibility - -Adheres to the [Menu Button WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menubutton) and uses [roving tabindex](https://www.w3.org/WAI/ARIA/apg/patterns/kbd_roving_tabindex) to manage focus movement among menu items. - -### Keyboard Interactions - - - When focus is on DropdownMenu.Trigger, opens the dropdown - menu and focuses the first item. -
- When focus is on an item, activates the focused item. - - ), - }, - { - keys: ['Enter'], - description: ( - - When focus is on DropdownMenu.Trigger, opens the dropdown - menu and focuses the first item. -
- When focus is on an item, activates the focused item. -
- ), - }, - { - keys: ['ArrowDown'], - description: ( - - When focus is on DropdownMenu.Trigger, opens the dropdown - menu. -
- When focus is on an item, moves focus to the next item. -
- ), - }, - { - keys: ['ArrowUp'], - description: ( - When focus is on an item, moves focus to the previous item. - ), - }, - { - keys: ['ArrowRight', 'ArrowLeft'], - description: ( - - When focus is on DropdownMenu.SubTrigger, opens or closes - the submenu depending on reading direction. - - ), - }, - { - keys: ['Esc'], - description: ( - - Closes the dropdown menu and moves focus to{' '} - DropdownMenu.Trigger. - - ), - }, - ]} -/> - -## Custom APIs - -Create your own API by abstracting the primitive parts into your own component. - -### Abstract the arrow and item indicators - -This example abstracts the `DropdownMenu.Arrow` and `DropdownMenu.ItemIndicator` parts. It also wraps implementation details for `CheckboxItem` and `RadioItem`. - -#### Usage - -```jsx -import { - DropdownMenu, - DropdownMenuTrigger, - DropdownMenuContent, - DropdownMenuLabel, - DropdownMenuItem, - DropdownMenuGroup, - DropdownMenuCheckboxItem, - DropdownMenuRadioGroup, - DropdownMenuRadioItem, - DropdownMenuSeparator, -} from './your-dropdown-menu'; - -export default () => ( - - DropdownMenu trigger - - Item - Label - Group - CheckboxItem - Separator - - RadioItem - RadioItem - - - -); -``` - -#### Implementation - -```jsx -// your-dropdown-menu.jsx -import React from 'react'; -import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'; -import { CheckIcon, DividerHorizontalIcon } from '@radix-ui/react-icons'; - -export const DropdownMenu = DropdownMenuPrimitive.Root; -export const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger; - -export const DropdownMenuContent = React.forwardRef( - ({ children, ...props }, forwardedRef) => { - return ( - - - {children} - - - - ); - } -); - -export const DropdownMenuLabel = DropdownMenuPrimitive.Label; -export const DropdownMenuItem = DropdownMenuPrimitive.Item; -export const DropdownMenuGroup = DropdownMenuPrimitive.Group; - -export const DropdownMenuCheckboxItem = React.forwardRef( - ({ children, ...props }, forwardedRef) => { - return ( - - {children} - - {props.checked === 'indeterminate' && } - {props.checked === true && } - - - ); - } -); - -export const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup; - -export const DropdownMenuRadioItem = React.forwardRef( - ({ children, ...props }, forwardedRef) => { - return ( - - {children} - - - - - ); - } -); - -export const DropdownMenuSeparator = DropdownMenuPrimitive.Separator; -``` \ No newline at end of file diff --git a/docs/content/3.components/form.md b/docs/content/3.components/form.md deleted file mode 100644 index 37c4a0749..000000000 --- a/docs/content/3.components/form.md +++ /dev/null @@ -1,573 +0,0 @@ ---- -metaTitle: Form -metaDescription: Collect information from your users using validation rules. -name: form ---- - -# Form - - - Collect information from your users using validation rules. - - - - - - - - - - Built on top of the native browser{' '} - - constraint validation API. - - , - 'Supports built-in validation.', - 'Supports custom validation.', - 'Full customization of validation messages.', - 'Accessible validation messages.', - 'Supports client-side and server-side scenarios.', - 'Focus is fully managed.', - ]} -/> - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-form -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Form from '@radix-ui/react-form'; - -export default () => ( - - - - - - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a form. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'onClearServerErrors', - required: false, - type: '() => void', - typeSimple: 'function', - description: - 'Event handler called when the form is submitted or reset and the server errors need to be cleared.', - }, - ]} -/> - -### Field - -The wrapper for a field. It handles id/name and label accessibility automatically. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'name', - required: true, - type: 'string', - description: - 'The name of the field that will be passed down to the control and used to match with validation messages.', - }, - { - name: 'serverInvalid', - required: false, - type: 'boolean', - description: 'Use this prop to mark the field as invalid on the server.', - }, - ]} -/> - - - -### Label - -A label element which is automatically wired when nested inside a `Field` part. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Control - -A control element (by default an `input`) which is automatically wired when nested inside a `Field` part. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Message - -A validation message which is automatically wired (functionality and accessibility) to a given control when nested inside a `Field` part. It can be used for built-in and custom client-side validation, as well as server-side validation. When used outside a `Field` you must pass a `name` prop matching a field. - -`Form.Message` accepts a `match` prop which is used to determine when the message should show. It matches the native HTML validity state (`ValidityState` on [MDN](https://developer.mozilla.org/en-US/docs/Web/API/ValidityState)) which validates against attributes such as `required`, `min`, `max`. The message will show if the given `match` is `true` on the control’s validity state. - -You can also pass a function to `match` to provide custom validation rules. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'match', - required: false, - type: ( - <> - | 'badInput' -
- | 'patternMismatch' -
- | 'rangeOverflow' -
- | 'rangeUnderflow' -
- | 'stepMismatch' -
- | 'tooLong' -
- | 'tooShort' -
- | 'typeMismatch' -
- | 'valid' -
- | 'valueMissing' -
| {`((value: string, formData: FormData) => boolean)`} -
| {`((value: string, formData: FormData) => Promise)`} -
- - ), - typeSimple: 'Matcher', - description: - 'Used to indicate on which condition the message should be visible.', - }, - { - name: 'forceMatch', - required: false, - type: 'boolean', - default: 'false', - description: - 'Forces the message to be shown. This is useful when using server-side validation.', - }, - { - name: 'name', - required: false, - type: 'string', - description: ( - <> - Used to target a specific field by name when rendering outside of a{' '} - Field part. - - ), - }, - ]} -/> - -### ValidityState - -Use this render-prop component to access a given field’s validity state in render (see `ValidityState` on [MDN](https://developer.mozilla.org/en-US/docs/Web/API/ValidityState)). A field's validity is available automatically when nested inside a `Field` part, otherwise you must pass a `name` prop to associate it. - - React.ReactNode', - typeSimple: 'function', - description: - 'A render function that receives the validity state of the field.', - }, - { - name: 'name', - required: false, - type: 'string', - description: ( - <> - Used to target a specific field by name when rendering outside of a{' '} - Field part. - - ), - }, - ]} -/> - -### Submit - -The submit button. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -## Examples - -### Composing with your own components - -Using `asChild` you can compose the `Form` primitive parts with your own components. - -```jsx line=3 - - Full name - - - - -``` - -It can also be used to compose other types of controls, such as a `select`: - -```jsx line=3 - - Country - - - - -``` - -> Note: At the moment, it is not possible to compose `Form` with Radix's other form primitives such as `Checkbox`, `Select`, etc. We are working on a solution for this. - -### Providing your own validation messages - -When no `children` are provided, `Form.Message` will render a default error message for the given `match`. - -```jsx -// will yield "This value is missing" - -``` - -You can provide a more meaningful message by passing your own `children`. This is also useful for internationalization. - -```jsx -// will yield "Please provide a name" -__Please provide a name__ -``` - -### Custom validation - -On top of all the built-in client-side validation matches described above you can also provide your own custom validation whilst still making use of the platform's validation abilities. It uses the `customError` type present in the [constraint validition API](https://developer.mozilla.org/en-US/docs/Web/HTML/Constraint_validation). - -You can pass your own validation function into the `match` prop on `Form.Message`. Here's an example: - -```jsx line=4 - - Full name - - value !== 'John'}> - Only John is allowed. - - -``` - -> `match` will be called with the current value of the control as first argument and the entire `FormData` as second argument. -> `match` can also be an `async` function (or return a promise) to perform async validation. - -### Styling based on validity - -We add `data-valid` and `data-invalid` attributes to the relevant parts. Use it to style your components accordingly. -Here is an example styling the `Label` part. - -```jsx line=8 -//index.jsx -import * as React from 'react'; -import Form from '@radix-ui/react-form'; - -export default () => ( - - - Email - - - -); -``` - -```css line=2,5 -/* styles.css */ -.FormLabel[__data-invalid__] { - color: red; -} -.FormLabel[__data-valid__] { - color: green; -} -``` - -### Accessing the validity state for more control - -You may need to access the raw validity state of a field in order to display your own icons, or interface with a component library via it's defined props. You can do this by using the `Form.ValidityState` part: - -```jsx line=3-4,7-8 - - Full name - - {(validity) => ( - - - - )} - - -``` - -### Server-side validation - -The component also supports server-side validation using the same `Form.Message` component. -You can re-use the same messages you defined for client-side errors by passing a `forceMatch` prop which will force the message to show regardless of the client-side matching logic. - -If the message doesn't exist on the client-side, you can render a `Form.Message` without a `match` too. -The field is marked as invalid by passing a `serverInvalid` boolean prop to the `Form.Field` part. - -Here's an example with server-side error handling: - -```jsx line=5-8,13,23,28-30,49-54 -import * as React from 'react'; -import * as Form from '@radix-ui/react-form'; - -function Page() { - const [serverErrors, setServerErrors] = React.useState({ - email: false, - password: false, - }); - - return ( - { - const data = Object.fromEntries(new FormData(event.currentTarget)); - - // Submit form data and catch errors in the response - submitForm(data) - .then(() => {}) - /** - * Map errors from your server response into a structure you'd like to work with. - * In this case resulting in this object: `{ email: false, password: true }` - */ - .catch((errors) => __setServerErrors__(mapServerErrors(errors))); - - // prevent default form submission - event.preventDefault(); - }} - onClearServerErrors={() => - __setServerErrors__({ email: false, password: false }) - } - > - - Email address - - - Please enter your email. - - - Please provide a valid email. - - - - - Password - - - Please enter a password. - - {serverErrors.password && ( - - Please provide a valid password. It should contain at least 1 number - and 1 special character. - - )} - - - Submit - - ); -} -``` - -You should clear the server errors using the `onClearServerErrors` callback prop on the `Form.Root` part. It will clear the server errors before the form is re-submitted, and when the form is reset. - -In addition, this provides control over when to reset single server errors. For example you could reset the email server error as soon as the user edits it: - -```jsx line=3 - - Email address - setServerErrors((prev) => ({ ...prev, email: false }))} - /> - Please enter your email. - - Please provide a valid email. - - -``` - -## Accessibility - -The component follows the "inline errors" pattern for validation: - -- Label and control are associated using the `name` provided on `Form.Field` -- When one or more client-side error messages display, they are automatically associated with their matching control and announced accordingly -- Focus is moved to the first invalid control \ No newline at end of file diff --git a/docs/content/3.components/hover-card.md b/docs/content/3.components/hover-card.md deleted file mode 100644 index c67e4b56e..000000000 --- a/docs/content/3.components/hover-card.md +++ /dev/null @@ -1,557 +0,0 @@ ---- -metaTitle: Hover Card -metaDescription: For sighted users to preview content available behind a link. -name: hover-card ---- - -# Hover Card - - - For sighted users to preview content available behind a link. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-hover-card -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as HoverCard from '@radix-ui/react-hover-card'; - -export default () => ( - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a hover card. - - - The open state of the hover card when it is initially rendered. Use - when you do not need to control its open state. - - ), - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the hover card. Must be used in - conjunction with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: ( - - Event handler called when the open state of the hover card changes. - - ), - }, - { - name: 'openDelay', - type: 'number', - default: 700, - description: - 'The duration from when the mouse enters the trigger until the hover card opens.', - }, - { - name: 'closeDelay', - type: 'number', - default: 300, - description: - 'The duration from when the mouse leaves the trigger or content until the hover card closes.', - }, - ]} -/> - -### Trigger - -The link that opens the hover card when hovered. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Portal - -When used, portals the content part into the `body`. - - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. If used on this - part, it will be inherited by HoverCard.Content. - - ), - }, - { - name: 'container', - type: 'HTMLElement', - default: 'document.body', - description: 'Specify a container element to portal the content into.', - }, - ]} -/> - -### Content - -The component that pops out when the hover card is open. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - HoverCard.Portal. - - ), - }, - { - name: 'side', - type: '"top" | "right" | "bottom" | "left"', - typeSimple: 'enum', - default: '"bottom"', - description: ( - - The preferred side of the trigger to render against when open. Will be - reversed when collisions occur and avoidCollisions is - enabled. - - ), - }, - { - name: 'sideOffset', - type: 'number', - default: '0', - description: ( - - The distance in pixels from the trigger. - - ), - }, - { - name: 'align', - type: '"start" | "center" | "end"', - typeSimple: 'enum', - default: '"center"', - description: ( - - The preferred alignment against the trigger. May change when - collisions occur. - - ), - }, - { - name: 'alignOffset', - type: 'number', - default: '0', - description: ( - - An offset in pixels from the "start" or{' '} - "end" alignment options. - - ), - }, - { - name: 'avoidCollisions', - type: 'boolean', - default: 'true', - description: ( - - When true, overrides the side and - align preferences to prevent collisions with boundary edges. - - ), - }, - { - name: 'collisionBoundary', - type: 'Element | null | Array', - typeSimple: 'Boundary', - default: '[]', - description: ( - - The element used as the collision boundary. By default this is the - viewport, though you can provide additional element(s) to be included - in this check. - - ), - }, - { - name: 'collisionPadding', - type: 'number | Partial>', - typeSimple: 'number | Padding', - default: '0', - description: ( - - The distance in pixels from the boundary edges where collision - detection should occur. Accepts a number (same for all sides), or a - partial padding object, for example: {`{ top: 20, left: 20 }`} - . - - ), - }, - { - name: 'arrowPadding', - type: 'number', - default: '0', - description: ( - - The padding between the arrow and the edges of the content. If your - content has border-radius, this will prevent it from - overflowing the corners. - - ), - }, - { - name: 'sticky', - type: '"partial" | "always"', - typeSimple: 'enum', - default: '"partial"', - description: ( - - The sticky behavior on the align axis. "partial" will - keep the content in the boundary as long as the trigger is at least - partially in the boundary whilst "always" will keep the - content in the boundary regardless. - - ), - }, - { - name: 'hideWhenDetached', - type: 'boolean', - default: 'false', - description: ( - - Whether to hide the content when the trigger becomes fully occluded. - - ), - }, - ]} -/> - - - - - The transform-origin computed from the content and arrow - positions/offsets - - ), - }, - { - cssVariable: '--radix-hover-card-content-available-width', - description: ( - <>The remaining width between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-hover-card-content-available-height', - description: ( - <>The remaining height between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-hover-card-trigger-width', - description: <>The width of the trigger, - }, - { - cssVariable: '--radix-hover-card-trigger-height', - description: <>The height of the trigger, - }, - ]} -/> - -### Arrow - -An optional arrow element to render alongside the hover card. This can be used to help visually link the trigger with the `HoverCard.Content`. Must be rendered inside `HoverCard.Content`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'width', - type: 'number', - default: 10, - description: The width of the arrow in pixels., - }, - { - name: 'height', - type: 'number', - default: 5, - description: The height of the arrow in pixels., - }, - ]} -/> - -## Examples - -### Show instantly - -Use the `openDelay` prop to control the time it takes for the hover card to open. - -```jsx line=4 -import * as HoverCard from '@radix-ui/react-hover-card'; - -export default () => ( - - - - -); -``` - -### Constrain the content size - -You may want to constrain the width of the content so that it matches the trigger width. You may also want to constrain its height to not exceed the viewport. - -We expose several CSS custom properties such as `--radix-hover-card-trigger-width` and `--radix-hover-card-content-available-height` to support this. Use them to constrain the content dimensions. - -```jsx line=9 -// index.jsx -import * as HoverCard from '@radix-ui/react-hover-card'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css -/* styles.css */ -.HoverCardContent { - width: var(__--radix-hover-card-trigger-width__); - max-height: var(__--radix-hover-card-content-available-height__); -} -``` - -### Origin-aware animations - -We expose a CSS custom property `--radix-hover-card-content-transform-origin`. Use it to animate the content from its computed origin based on `side`, `sideOffset`, `align`, `alignOffset` and any collisions. - -```jsx line=8 -// index.jsx -import * as HoverCard from '@radix-ui/react-hover-card'; -import './styles.css'; - -export default () => ( - - - - -); -``` - -```css line=3 -/* styles.css */ -.HoverCardContent { - transform-origin: var(__--radix-hover-card-content-transform-origin__); - animation: scaleIn 0.5s ease-out; -} - -@keyframes scaleIn { - from { - opacity: 0; - transform: scale(0); - } - to { - opacity: 1; - transform: scale(1); - } -} -``` - -### Collision-aware animations - -We expose `data-side` and `data-align` attributes. Their values will change at runtime to reflect collisions. Use them to create collision and direction-aware animations. - -```jsx line=8 -// index.jsx -import * as HoverCard from '@radix-ui/react-hover-card'; -import './styles.css'; - -export default () => ( - - - - -); -``` - -```css line=6-11 -/* styles.css */ -.HoverCardContent { - animation-duration: 0.6s; - animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); -} -.HoverCardContent[__data-side='top'__] { - animation-name: slideUp; -} -.HoverCardContent[__data-side='bottom'__] { - animation-name: slideDown; -} - -@keyframes slideUp { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes slideDown { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -``` - -## Accessibility - -### Keyboard Interactions - -The hover card is intended for mouse users only so will not respond to keyboard navigation. \ No newline at end of file diff --git a/docs/content/3.components/label.md b/docs/content/3.components/label.md deleted file mode 100644 index 282f0c606..000000000 --- a/docs/content/3.components/label.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -metaTitle: Label -metaDescription: Renders an accessible label associated with controls. -name: label ---- - -# Label - -Renders an accessible label associated with controls. - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-label -``` - -## Anatomy - -Import the component. - -```jsx -import * as Label from '@radix-ui/react-label'; - -export default () => ; -``` - -## API Reference - -### Root - -Contains the content for the label. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'htmlFor', - type: 'string', - description: 'The id of the element the label is associated with.', - }, - ]} -/> - -## Accessibility - -This component is based on the native `label` element, it will automatically apply the correct labelling when wrapping controls or using the `htmlFor` attribute. For your own custom controls to work correctly, ensure they use native elements such as `button` or `input` as a base. \ No newline at end of file diff --git a/docs/content/3.components/menubar.md b/docs/content/3.components/menubar.md deleted file mode 100644 index 06abbe98e..000000000 --- a/docs/content/3.components/menubar.md +++ /dev/null @@ -1,1742 +0,0 @@ ---- -metaTitle: Menubar -metaDescription: - A visually persistent menu common in desktop applications that provides quick - access to a consistent set of commands. -name: menubar -aria: https://www.w3.org/WAI/ARIA/apg/patterns/menu/ ---- - -# Menu Bar - - - A visually persistent menu common in desktop applications that provides quick - access to a consistent set of commands. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-menubar -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Menubar from '@radix-ui/react-menubar'; - -export default () => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a menubar. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'defaultValue', - required: false, - type: 'string', - description: ( - - The value of the menu that should be open when initially rendered. Use - when you do not need to control the value state. - - ), - }, - { - name: 'value', - required: false, - type: 'string', - description: ( - - The controlled value of the menu to open. Should be used in - conjunction with onValueChange. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string) => void', - typeSimple: 'function', - description: 'Event handler called when the value changes.', - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - description: ( - - The reading direction. If omitted, inherits globally from{' '} - DirectionProvider or assumes LTR (left-to-right) reading - mode. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, keyboard navigation will loop from last item - to first, and vice versa. - - ), - }, - ]} -/> - -### Menu - -A top level menu item, contains a trigger with content combination. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - required: false, - type: 'string', - description: ( - - A unique value that associates the item with an active value when the - navigation menu is controlled. This prop is managed automatically when - uncontrolled. - - ), - }, - ]} -/> - -### Trigger - -The button that toggles the content. By default, the `Menubar.Content` will position itself against the trigger. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Portal - -When used, portals the content part into the `body`. - - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. If used on this - part, it will be inherited by Menubar.Content and{' '} - Menubar.SubContent respectively. - - ), - }, - { - name: 'container', - type: 'HTMLElement', - default: 'document.body', - description: 'Specify a container element to portal the content into.', - }, - ]} -/> - -### Content - -The component that pops out when a menu is open. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, keyboard navigation will loop from last item - to first, and vice versa. - - ), - }, - { - name: 'onCloseAutoFocus', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves to the trigger after closing. It - can be prevented by calling event.preventDefault. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onFocusOutside', - type: '(event: FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves outside the bounds of the - component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onInteractOutside', - type: '(event: PointerDownOutsideEvent | FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when an interaction (pointer or focus event) - happens outside the bounds of the component. It can be prevented by - calling event.preventDefault. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - Menubar.Portal. - - ), - }, - { - name: 'side', - type: '"top" | "right" | "bottom" | "left"', - typeSimple: 'enum', - default: '"bottom"', - description: ( - - The preferred side of the trigger to render against when open. Will be - reversed when collisions occur and avoidCollisions is - enabled. - - ), - }, - { - name: 'sideOffset', - type: 'number', - default: '0', - description: The distance in pixels from the trigger., - }, - { - name: 'align', - type: '"start" | "center" | "end"', - typeSimple: 'enum', - default: '"center"', - description: ( - - The preferred alignment against the trigger. May change when - collisions occur. - - ), - }, - { - name: 'alignOffset', - type: 'number', - default: '0', - description: ( - - An offset in pixels from the "start" or{' '} - "end" alignment options. - - ), - }, - { - name: 'avoidCollisions', - type: 'boolean', - default: 'true', - description: ( - - When true, overrides the side and - align preferences to prevent collisions with boundary edges. - - ), - }, - { - name: 'collisionBoundary', - type: 'Element | null | Array', - typeSimple: 'Boundary', - default: '[]', - description: ( - - The element used as the collision boundary. By default this is the - viewport, though you can provide additional element(s) to be included - in this check. - - ), - }, - { - name: 'collisionPadding', - type: 'number | Partial>', - typeSimple: 'number | Padding', - default: '0', - description: ( - - The distance in pixels from the boundary edges where collision - detection should occur. Accepts a number (same for all sides), or a - partial padding object, for example: {`{ top: 20, left: 20 }`} - . - - ), - }, - { - name: 'arrowPadding', - type: 'number', - default: '0', - description: ( - - The padding between the arrow and the edges of the content. If your - content has border-radius, this will prevent it from - overflowing the corners. - - ), - }, - { - name: 'sticky', - type: '"partial" | "always"', - typeSimple: 'enum', - default: '"partial"', - description: ( - - The sticky behavior on the align axis. "partial" will - keep the content in the boundary as long as the trigger is at least - partially in the boundary whilst "always" will keep the - content in the boundary regardless. - - ), - }, - { - name: 'hideWhenDetached', - type: 'boolean', - default: 'false', - description: ( - - Whether to hide the content when the trigger becomes fully occluded. - - ), - }, - ]} -/> - - - - - The transform-origin computed from the content and arrow - positions/offsets - - ), - }, - { - cssVariable: '--radix-menubar-content-available-width', - description: ( - <>The remaining width between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-menubar-content-available-height', - description: ( - <>The remaining height between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-menubar-trigger-width', - description: <>The width of the trigger, - }, - { - cssVariable: '--radix-menubar-trigger-height', - description: <>The height of the trigger, - }, - ]} -/> - -### Arrow - -An optional arrow element to render alongside a menubar menu. This can be used to help visually link the trigger with the `Menubar.Content`. Must be rendered inside `Menubar.Content`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'width', - type: 'number', - default: 10, - description: The width of the arrow in pixels., - }, - { - name: 'height', - type: 'number', - default: 5, - description: The height of the arrow in pixels., - }, - ]} -/> - -### Item - -The component that contains the menubar items. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'onSelect', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when the user selects an item (via mouse or - keyboard). Calling event.preventDefault in this handler - will prevent the menubar from closing when selecting that item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### Group - -Used to group multiple `Menubar.Item`s. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Label - -Used to render a label. It won't be focusable using arrow keys. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### CheckboxItem - -An item that can be controlled and rendered like a checkbox. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'checked', - type: `boolean | 'indeterminate'`, - description: ( - - The controlled checked state of the item. Must be used in conjunction - with onCheckedChange. - - ), - }, - { - name: 'onCheckedChange', - type: '(checked: boolean) => void', - typeSimple: 'function', - description: ( - Event handler called when the checked state changes. - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'onSelect', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when the user selects an item (via mouse or - keyboard). Calling event.preventDefault in this handler - will prevent the menubar from closing when selecting that item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### RadioGroup - -Used to group multiple `Menubar.RadioItem`s. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - type: 'string', - description: 'The value of the selected item in the group.', - }, - { - name: 'onValueChange', - type: '(value: string) => void', - typeSimple: 'function', - description: 'Event handler called when the value changes.', - }, - ]} -/> - -### RadioItem - -An item that can be controlled and rendered like a radio. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - type: 'string', - required: true, - description: 'The unique value of the item.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'onSelect', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when the user selects an item (via mouse or - keyboard). Calling event.preventDefault in this handler - will prevent the menubar from closing when selecting that item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### ItemIndicator - -Renders when the parent `Menubar.CheckboxItem` or `Menubar.RadioItem` is checked. You can style this element directly, or you can use it as a wrapper to put an icon into, or both. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. - - ), - }, - ]} -/> - - - -### Separator - -Used to visually separate items in a menubar menu. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Sub - -Contains all the parts of a submenu. - - - The open state of the submenu when it is initially rendered. Use when - you do not need to control its open state. - - ), - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the submenu. Must be used in conjunction - with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: ( - - Event handler called when the open state of the submenu changes. - - ), - }, - ]} -/> - -### SubTrigger - -An item that opens a submenu. Must be rendered inside `Menubar.Sub`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the item. Use this - when the content is complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### SubContent - -The component that pops out when a submenu is open. Must be rendered inside `Menubar.Sub`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, keyboard navigation will loop from last item - to first, and vice versa. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onFocusOutside', - type: '(event: FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves outside the bounds of the - component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onInteractOutside', - type: '(event: PointerDownOutsideEvent | FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when an interaction (pointer or focus event) - happens outside the bounds of the component. It can be prevented by - calling event.preventDefault. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - Menubar.Portal. - - ), - }, - { - name: 'sideOffset', - type: 'number', - default: '0', - description: The distance in pixels from the trigger., - }, - { - name: 'alignOffset', - type: 'number', - default: '0', - description: ( - - An offset in pixels from the "start" or{' '} - "end" alignment options. - - ), - }, - { - name: 'avoidCollisions', - type: 'boolean', - default: 'true', - description: ( - - When true, overrides the side and - align preferences to prevent collisions with boundary edges. - - ), - }, - { - name: 'collisionBoundary', - type: 'Element | null | Array', - typeSimple: 'Boundary', - default: '[]', - description: ( - - The element used as the collision boundary. By default this is the - viewport, though you can provide additional element(s) to be included - in this check. - - ), - }, - { - name: 'collisionPadding', - type: 'number | Partial>', - typeSimple: 'number | Padding', - default: '0', - description: ( - - The distance in pixels from the boundary edges where collision - detection should occur. Accepts a number (same for all sides), or a - partial padding object, for example: {`{ top: 20, left: 20 }`} - . - - ), - }, - { - name: 'arrowPadding', - type: 'number', - default: '0', - description: ( - - The padding between the arrow and the edges of the content. If your - content has border-radius, this will prevent it from - overflowing the corners. - - ), - }, - { - name: 'sticky', - type: '"partial" | "always"', - typeSimple: 'enum', - default: '"partial"', - description: ( - - The sticky behavior on the align axis. "partial" will - keep the content in the boundary as long as the trigger is at least - partially in the boundary whilst "always" will keep the - content in the boundary regardless. - - ), - }, - { - name: 'hideWhenDetached', - type: 'boolean', - default: 'false', - description: ( - - Whether to hide the content when the trigger becomes fully occluded. - - ), - }, - ]} -/> - - - - - The transform-origin computed from the content and arrow - positions/offsets - - ), - }, - { - cssVariable: '--radix-menubar-content-available-width', - description: ( - <>The remaining width between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-menubar-content-available-height', - description: ( - <>The remaining height between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-menubar-trigger-width', - description: <>The width of the trigger, - }, - { - cssVariable: '--radix-menubar-trigger-height', - description: <>The height of the trigger, - }, - ]} -/> - -## Examples - -### With submenus - -You can create submenus by using `Menubar.Sub` in combination with its parts. - -```jsx line=9-18 - - - - - - - - - - Sub menu → - - - Sub menu item - Sub menu item - - - - - - - - - - -``` - -### With disabled items - -You can add special styles to disabled items via the `data-disabled` attribute. - -```jsx line=11 -// index.jsx -import * as Menubar from '@radix-ui/react-menubar'; -import './styles.css'; - -export default () => ( - - - - - - - … - - - - - - -); -``` - -```css line=2 -/* styles.css */ -.MenubarItem[__data-disabled__] { - color: gainsboro; -} -``` - -### With separators - -Use the `Separator` part to add a separator between items. - -```jsx line=7,9 - - - - - - - - - - - - - - -``` - -### With labels - -Use the `Label` part to help label a section. - -```jsx line=6 - - - - - - Label - - - - - - - -``` - -### With checkbox items - -Use the `CheckboxItem` part to add an item that can be checked. - -```jsx line=6,17-22 -import React from 'react'; -import { CheckIcon } from '@radix-ui/react-icons'; -import * as Menubar from '@radix-ui/react-menubar'; - -export default () => { - const [checked, setChecked] = React.useState(true); - - return ( - - - - - - - - - - - - - Checkbox item - - - - - - ); -}; -``` - -### With radio items - -Use the `RadioGroup` and `RadioItem` parts to add an item that can be checked amongst others. - -```jsx line=6,14-27 -import React from 'react'; -import { CheckIcon } from '@radix-ui/react-icons'; -import * as Menubar from '@radix-ui/react-menubar'; - -export default () => { - const [color, setColor] = React.useState('blue'); - - return ( - - - - - - - - - - - Red - - - - - - Blue - - - - - - - ); -}; -``` - -### With complex items - -You can add extra decorative elements in the `Item` parts, such as images. - -```jsx line=10,14 -import * as Menubar from '@radix-ui/react-menubar'; - -export default () => ( - - - - - - - - Adolfo Hess - - - - Miyah Myles - - - - - -); -``` - -### Constrain the content/sub-content size - -You may want to constrain the width of the content (or sub-content) so that it matches the trigger (or sub-trigger) width. You may also want to constrain its height to not exceed the viewport. - -We expose several CSS custom properties such as `--radix-menubar-trigger-width` and `--radix-menubar-content-available-height` to support this. Use them to constrain the content dimensions. - -```jsx line=9 -// index.jsx -import * as Menubar from '@radix-ui/react-menubar'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css -/* styles.css */ -.MenubarContent { - width: var(__--radix-menubar-trigger-width__); - max-height: var(__--radix-menubar-content-available-height__); -} -``` - -### Origin-aware animations - -We expose a CSS custom property `--radix-menubar-content-transform-origin`. Use it to animate the content from its computed origin based on `side`, `sideOffset`, `align`, `alignOffset` and any collisions. - -```jsx line=10 -// index.jsx -import * as Menubar from '@radix-ui/react-menubar'; -import './styles.css'; - -export default () => ( - - - - - - - - -); -``` - -```css line=3 -/* styles.css */ -.MenubarContent { - transform-origin: var(__--radix-menubar-content-transform-origin__); - animation: scaleIn 0.5s ease-out; -} - -@keyframes scaleIn { - from { - opacity: 0; - transform: scale(0); - } - to { - opacity: 1; - transform: scale(1); - } -} -``` - -### Collision-aware animations - -We expose `data-side` and `data-align` attributes. Their values will change at runtime to reflect collisions. Use them to create collision and direction-aware animations. - -```jsx line=10 -// index.jsx -import * as Menubar from '@radix-ui/react-menubar'; -import './styles.css'; - -export default () => ( - - - - - - - - -); -``` - -```css line=6-11 -/* styles.css */ -.MenubarContent { - animation-duration: 0.6s; - animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); -} -.MenubarContent[__data-side='top'__] { - animation-name: slideUp; -} -.MenubarContent[__data-side='bottom'__] { - animation-name: slideDown; -} - -@keyframes slideUp { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes slideDown { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -``` - -## Accessibility - -Adheres to the [Menu Button WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menubutton) and uses [roving tabindex](https://www.w3.org/WAI/ARIA/apg/patterns/kbd_roving_tabindex) to manage focus movement among menu items. - -### Keyboard Interactions - - - When focus is on Menubar.Trigger, opens the menubar and - focuses the first item. -
- When focus is on an item, activates the focused item. - - ), - }, - { - keys: ['Enter'], - description: ( - - When focus is on Menubar.Trigger, opens the associated - menu. -
- When focus is on an item, activates the focused item. -
- ), - }, - { - keys: ['ArrowDown'], - description: ( - - When focus is on Menubar.Trigger, opens the associated - menu. -
- When focus is on an item, moves focus to the next item. -
- ), - }, - { - keys: ['ArrowUp'], - description: ( - When focus is on an item, moves focus to the previous item. - ), - }, - { - keys: ['ArrowRight', 'ArrowLeft'], - description: ( - - When focus is on a Menubar.Trigger, moves focus to the - next or previous item.
- When focus is on a Menubar.SubTrigger, opens or closes the - submenu depending on reading direction.
- When focus is within a Menubar.Content, opens the next - menu in the menubar. -
- ), - }, - { - keys: ['Esc'], - description: ( - - Closes the currently open menu and moves focus to its{' '} - Menubar.Trigger. - - ), - }, - ]} -/> \ No newline at end of file diff --git a/docs/content/3.components/navigation-menu.md b/docs/content/3.components/navigation-menu.md deleted file mode 100644 index b4fcba3fe..000000000 --- a/docs/content/3.components/navigation-menu.md +++ /dev/null @@ -1,970 +0,0 @@ ---- -metaTitle: Navigation Menu -metaDescription: A collection of links for navigating websites. -name: navigation-menu -aria: https://www.w3.org/TR/wai-aria/#navigation ---- - -# Navigation Menu - -A collection of links for navigating websites. - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-navigation-menu -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as NavigationMenu from '@radix-ui/react-navigation-menu'; - -export default () => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a navigation menu. - - - The controlled value of the menu item to activate. Should be used in - conjunction with onValueChange. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string) => void', - typeSimple: 'function', - description: 'Event handler called when the value changes.', - }, - { - name: 'delayDuration', - type: 'number', - default: 200, - description: - 'The duration from when the mouse enters a trigger until the content opens.', - }, - { - name: 'skipDelayDuration', - type: 'number', - default: 300, - description: - 'How much time a user has to enter another trigger without incurring a delay again.', - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - description: ( - - The reading direction of the menu when applicable. If omitted, - inherits globally from DirectionProvider or assumes LTR - (left-to-right) reading mode. - - ), - }, - { - name: 'orientation', - required: false, - type: '"horizontal" | "vertical"', - typeSimple: 'enum', - default: '"horizontal"', - description: 'The orientation of the menu.', - }, - ]} -/> - - - -### Sub - -Signifies a submenu. Use it in place of the root part when nested to create a submenu. - - - The controlled value of the sub menu item to activate. Should be used - in conjunction with onValueChange. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string) => void', - typeSimple: 'function', - description: 'Event handler called when the value changes.', - }, - { - name: 'orientation', - required: false, - type: '"horizontal" | "vertical"', - typeSimple: 'enum', - default: '"horizontal"', - description: 'The orientation of the menu.', - }, - ]} -/> - - - -### List - -Contains the top level menu items. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Item - -A top level menu item, contains a link or trigger with content combination. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - required: false, - type: 'string', - description: ( - - A unique value that associates the item with an active value when the - navigation menu is controlled. This prop is managed automatically when - uncontrolled. - - ), - }, - ]} -/> - -### Trigger - -The button that toggles the content. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Content - -Contains the content associated with each trigger. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'disableOutsidePointerEvents', - type: 'boolean', - default: 'false', - description: ( - - When true, hover/focus/click interactions will be - disabled on elements outside the bounds of the component. Users will - need to click twice on outside elements to interact with them: Once to - close the navigation menu, and again to activate the element. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault. - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onFocusOutside', - type: '(event: FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves outside the bounds of the - component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onInteractOutside', - type: '(event: React.FocusEvent | MouseEvent | TouchEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when an interaction (pointer or focus event) - happens outside the bounds of the component. It can be prevented by - calling event.preventDefault. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. - - ), - }, - ]} -/> - - - -### Link - -A navigational link. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'active', - required: false, - type: 'boolean', - default: 'false', - description: 'Used to identify the link as the currently active page.', - }, - { - name: 'onSelect', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when the user selects a link (via mouse or - keyboard). Calling event.preventDefault in this handler - will prevent the navigation menu from closing when selecting that - link. - - ), - }, - ]} -/> - - - -### Indicator - -An optional indicator element that renders below the list, is used to highlight the currently active trigger. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. - - ), - }, - ]} -/> - - - -### Viewport - -An optional viewport element that is used to render active content outside of the list. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. - - ), - }, - ]} -/> - - - - - -## Examples - -### Vertical - -You can create a vertical menu by using the `orientation` prop. - -```jsx line=1 - - - - Item one - Item one content - - - Item two - Item Two content - - - -``` - -### Flexible layouts - -Use the `Viewport` part when you need extra control over where `Content` is rendered. This can be helpful when your design -requires an adjusted DOM structure or if you need flexibility to achieve [advanced animation](/docs/primitives/components/navigation-menu#advanced-animation). -Tab focus will be maintained automatically. - -```jsx line=14 - - - - Item one - Item one content - - - Item two - Item two content - - - - {/* NavigationMenu.Content will be rendered here when active */} - - -``` - -### With indicator - -You can use the optional `Indicator` part to highlight the currently active `Trigger`, this is useful when you want to provide -an animated visual cue such as an arrow or highlight to accompany the `Viewport`. - -```jsx line=17 -// index.jsx -import * as NavigationMenu from '@radix-ui/react-navigation-menu'; -import './styles.css'; - -export default () => ( - - - - Item one - Item one content - - - Item two - Item two content - - - - - - - -); -``` - -```css -/* styles.css */ -.NavigationMenuIndicator { - background-color: grey; -} -.NavigationMenuIndicator[data-orientation='horizontal'] { - height: 3px; - transition: width, transform, 250ms ease; -} -``` - -### With submenus - -Create a submenu by nesting your `NavigationMenu` and using the `Sub` part in place of its `Root`. -Submenus work differently to `Root` navigation menus and are similar to [`Tabs`](/docs/primitives/components/tabs) in that one item should always be active, so be -sure to assign and set a `defaultValue`. - -```jsx line=10,25 - - - - Item one - Item one content - - - Item two - - - - - Sub item one - - Sub item one content - - - - Sub item two - - Sub item two content - - - - - - - - -``` - -### With client side routing - -If you need to use the `Link` component provided by your routing package then we recommend composing with `NavigationMenu.Link` via a custom component. -This will ensure accessibility and consistent keyboard control is maintained. Here's an example using Next.js: - -```jsx line=7-16,22,25 -// index.jsx -import { useRouter } from 'next/router'; -import NextLink from 'next/link'; -import * as NavigationMenu from '@radix-ui/react-navigation-menu'; -import './styles.css'; - -const Link = ({ href, ...props }) => { - const router = useRouter(); - const isActive = router.asPath === href; - - return ( - - - - ); -}; - -export default () => ( - - - - Home - - - About - - - -); -``` - -```css -/* styles.css */ -.NavigationMenuLink { - text-decoration: none; -} -.NavigationMenuLink[data-active] { - text-decoration: 'underline'; -} -``` - -### Advanced animation - -We expose `--radix-navigation-menu-viewport-[width|height]` and `data-motion['from-start'|'to-start'|'from-end'|'to-end']` attributes -to allow you to animate `Viewport` size and `Content` position based on the enter/exit direction. - -Combining these with `position: absolute;` allows you to create smooth overlapping animation effects when moving between items. - -```jsx line=10-12,16-18,22 -// index.jsx -import * as NavigationMenu from '@radix-ui/react-navigation-menu'; -import './styles.css'; - -export default () => ( - - - - Item one - - Item one content - - - - Item two - - Item two content - - - - - - -); -``` - -```css line=9-20,24,25 -/* styles.css */ -.NavigationMenuContent { - position: absolute; - top: 0; - left: 0; - animation-duration: 250ms; - animation-timing-function: ease; -} -.NavigationMenuContent[__data-motion__='from-start'] { - animation-name: enterFromLeft; -} -.NavigationMenuContent[__data-motion__='from-end'] { - animation-name: enterFromRight; -} -.NavigationMenuContent[__data-motion__='to-start'] { - animation-name: exitToLeft; -} -.NavigationMenuContent[__data-motion__='to-end'] { - animation-name: exitToRight; -} - -.NavigationMenuViewport { - position: relative; - width: var(__--radix-navigation-menu-viewport-width__); - height: var(__--radix-navigation-menu-viewport-height__); - transition: width, height, 250ms ease; -} - -@keyframes enterFromRight { - from { - opacity: 0; - transform: translateX(200px); - } - to { - opacity: 1; - transform: translateX(0); - } -} - -@keyframes enterFromLeft { - from { - opacity: 0; - transform: translateX(-200px); - } - to { - opacity: 1; - transform: translateX(0); - } -} - -@keyframes exitToRight { - from { - opacity: 1; - transform: translateX(0); - } - to { - opacity: 0; - transform: translateX(200px); - } -} - -@keyframes exitToLeft { - from { - opacity: 1; - transform: translateX(0); - } - to { - opacity: 0; - transform: translateX(-200px); - } -} -``` - -## Accessibility - -Adheres to the [`navigation` role requirements](https://www.w3.org/TR/wai-aria-1.2/#navigation). - -### Differences to menubar - -`NavigationMenu` should not be confused with `menubar`, although this primitive shares the name `menu` in the colloquial sense to refer to a set of navigation links, it does not use the WAI-ARIA `menu` role. -This is because `menu` and `menubars` behave like native operating system menus most commonly found in desktop application windows, as such they feature complex functionality like composite focus management and first-character navigation. - -These features are often considered [unnecessary for website navigation](https://github.com/w3c/aria-practices/issues/353) and at worst can confuse users who are familiar with established website patterns. - -See the W3C [Disclosure Navigation Menu](https://w3c.github.io/aria-practices/examples/disclosure/disclosure-navigation.html) example for more information. - -### Link usage and aria-current - -It's important to use `NavigationMenu.Link` for all navigational links within a menu, this not only applies to the main list -but also within any content rendered via `NavigationMenu.Content`. This will ensure consistent keyboard interactions and accessibility -while also giving access to the `active` prop for setting `aria-current` and the active styles. -See [this example](/docs/primitives/components/navigation-menu#with-client-side-routing) for more information on usage with third party routing components. - -### Keyboard Interactions - - - When focus is on NavigationMenu.Trigger, opens the - content. - - ), - }, - { - keys: ['Tab'], - description: 'Moves focus to the next focusable element.', - }, - { - keys: ['ArrowDown'], - description: ( - - When horizontal and focus is on an open{' '} - NavigationMenu.Trigger, moves focus into{' '} - NavigationMenu.Content. -
- Moves focus to the next NavigationMenu.Trigger or{' '} - NavigationMenu.Link. -
- ), - }, - { - keys: ['ArrowUp'], - description: ( - - Moves focus to the previous NavigationMenu.Trigger or{' '} - NavigationMenu.Link. - - ), - }, - { - keys: ['ArrowRight', 'ArrowLeft'], - description: ( - - When vertical and focus is on an open{' '} - NavigationMenu.Trigger, moves focus into its{' '} - NavigationMenu.Content. -
- Moves focus to the next / previous - NavigationMenu.Trigger - {' '} - or NavigationMenu.Link. -
- ), - }, - { - keys: ['Home', 'End'], - description: ( - - Moves focus to the first/last NavigationMenu.Trigger or{' '} - NavigationMenu.Link. - - ), - }, - { - keys: ['Esc'], - description: ( - - Closes open NavigationMenu.Content and moves focus to its{' '} - NavigationMenu.Trigger. - - ), - }, - ]} -/> \ No newline at end of file diff --git a/docs/content/3.components/popover.md b/docs/content/3.components/popover.md deleted file mode 100644 index 6ccdd5f14..000000000 --- a/docs/content/3.components/popover.md +++ /dev/null @@ -1,768 +0,0 @@ ---- -metaTitle: Popover -metaDescription: Displays rich content in a portal, triggered by a button. -name: popover -aria: https://www.w3.org/WAI/ARIA/apg/patterns/dialogmodal ---- - -# Popover - - - Displays rich content in a portal, triggered by a button. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-popover -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Popover from '@radix-ui/react-popover'; - -export default () => ( - - - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a popover. - - - The open state of the popover when it is initially rendered. Use when - you do not need to control its open state. - - ), - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the popover. Must be used in conjunction - with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: ( - - Event handler called when the open state of the popover changes. - - ), - }, - { - name: 'modal', - required: false, - type: 'boolean', - default: 'false', - description: ( - - The modality of the popover. When set to true, - interaction with outside elements will be disabled and only popover - content will be visible to screen readers. - - ), - }, - ]} -/> - -### Trigger - -The button that toggles the popover. By default, the `Popover.Content` will position itself against the trigger. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Anchor - -An optional element to position the `Popover.Content` against. If this part is not used, the content will position alongside the Popover.Trigger. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Portal - -When used, portals the content part into the `body`. - - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. If used on this - part, it will be inherited by Popover.Content. - - ), - }, - { - name: 'container', - type: 'HTMLElement', - default: 'document.body', - description: 'Specify a container element to portal the content into.', - }, - ]} -/> - -### Content - -The component that pops out when the popover is open. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'onOpenAutoFocus', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves into the component after - opening. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onCloseAutoFocus', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves to the trigger after closing. It - can be prevented by calling event.preventDefault. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault. - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onFocusOutside', - type: '(event: FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves outside the bounds of the - component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'onInteractOutside', - type: '(event: PointerDownOutsideEvent | FocusOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when an interaction (pointer or focus event) - happens outside the bounds of the component. It can be prevented by - calling event.preventDefault. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - Popover.Portal. - - ), - }, - { - name: 'side', - type: '"top" | "right" | "bottom" | "left"', - typeSimple: 'enum', - default: '"bottom"', - description: ( - - The preferred side of the anchor to render against when open. Will be - reversed when collisions occur and avoidCollisions is - enabled. - - ), - }, - { - name: 'sideOffset', - type: 'number', - default: '0', - description: The distance in pixels from the anchor., - }, - { - name: 'align', - type: '"start" | "center" | "end"', - typeSimple: 'enum', - default: '"center"', - description: ( - - The preferred alignment against the anchor. May change when collisions - occur. - - ), - }, - { - name: 'alignOffset', - type: 'number', - default: '0', - description: ( - - An offset in pixels from the "start" or{' '} - "end" alignment options. - - ), - }, - { - name: 'avoidCollisions', - type: 'boolean', - default: 'true', - description: ( - - When true, overrides the side and - align preferences to prevent collisions with boundary edges. - - ), - }, - { - name: 'collisionBoundary', - type: 'Element | null | Array', - typeSimple: 'Boundary', - default: '[]', - description: ( - - The element used as the collision boundary. By default this is the - viewport, though you can provide additional element(s) to be included - in this check. - - ), - }, - { - name: 'collisionPadding', - type: 'number | Partial>', - typeSimple: 'number | Padding', - default: '0', - description: ( - - The distance in pixels from the boundary edges where collision - detection should occur. Accepts a number (same for all sides), or a - partial padding object, for example: {`{ top: 20, left: 20 }`} - . - - ), - }, - { - name: 'arrowPadding', - type: 'number', - default: '0', - description: ( - - The padding between the arrow and the edges of the content. If your - content has border-radius, this will prevent it from - overflowing the corners. - - ), - }, - { - name: 'sticky', - type: '"partial" | "always"', - typeSimple: 'enum', - default: '"partial"', - description: ( - - The sticky behavior on the align axis. "partial" will - keep the content in the boundary as long as the trigger is at least - partially in the boundary whilst "always" will keep the - content in the boundary regardless. - - ), - }, - { - name: 'hideWhenDetached', - type: 'boolean', - default: 'false', - description: ( - - Whether to hide the content when the trigger becomes fully occluded. - - ), - }, - ]} -/> - - - - - The transform-origin computed from the content and arrow - positions/offsets - - ), - }, - { - cssVariable: '--radix-popover-content-available-width', - description: ( - <>The remaining width between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-popover-content-available-height', - description: ( - <>The remaining height between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-popover-trigger-width', - description: <>The width of the trigger, - }, - { - cssVariable: '--radix-popover-trigger-height', - description: <>The height of the trigger, - }, - ]} -/> - -### Arrow - -An optional arrow element to render alongside the popover. This can be used to help visually link the anchor with the `Popover.Content`. Must be rendered inside `Popover.Content`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'width', - type: 'number', - default: 10, - description: The width of the arrow in pixels., - }, - { - name: 'height', - type: 'number', - default: 5, - description: The height of the arrow in pixels., - }, - ]} -/> - -### Close - -The button that closes an open popover. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -## Examples - -### Constrain the content size - -You may want to constrain the width of the content so that it matches the trigger width. You may also want to constrain its height to not exceed the viewport. - -We expose several CSS custom properties such as `--radix-popover-trigger-width` and `--radix-popover-content-available-height` to support this. Use them to constrain the content dimensions. - -```jsx line=9 -// index.jsx -import * as Popover from '@radix-ui/react-popover'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css -/* styles.css */ -.PopoverContent { - width: var(__--radix-popover-trigger-width__); - max-height: var(__--radix-popover-content-available-height__); -} -``` - -### Origin-aware animations - -We expose a CSS custom property `--radix-popover-content-transform-origin`. Use it to animate the content from its computed origin based on `side`, `sideOffset`, `align`, `alignOffset` and any collisions. - -```jsx line=9 -// index.jsx -import * as Popover from '@radix-ui/react-popover'; -import './styles.css'; - -export default () => ( - - - - - - -); -``` - -```css line=3 -/* styles.css */ -.PopoverContent { - transform-origin: var(__--radix-popover-content-transform-origin__); - animation: scaleIn 0.5s ease-out; -} - -@keyframes scaleIn { - from { - opacity: 0; - transform: scale(0); - } - to { - opacity: 1; - transform: scale(1); - } -} -``` - -### Collision-aware animations - -We expose `data-side` and `data-align` attributes. Their values will change at runtime to reflect collisions. Use them to create collision and direction-aware animations. - -```jsx line=9 -// index.jsx -import * as Popover from '@radix-ui/react-popover'; -import './styles.css'; - -export default () => ( - - - - - - -); -``` - -```css line=6-11 -/* styles.css */ -.PopoverContent { - animation-duration: 0.6s; - animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); -} -.PopoverContent[__data-side__='top'] { - animation-name: slideUp; -} -.PopoverContent[__data-side__='bottom'] { - animation-name: slideDown; -} - -@keyframes slideDown { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes slideUp { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -``` - -### With custom anchor - -You can anchor the content to another element if you do not want to use the trigger as the anchor. - -```jsx line=7-11 -// index.jsx -import * as Popover from '@radix-ui/react-popover'; -import './styles.css'; - -export default () => ( - - -
- Row as anchor Trigger -
-
- - - - -
-); -``` - -```css -/* styles.css */ -.Row { - background-color: gainsboro; - padding: 20px; -} -``` - -## Accessibility - -Adheres to the [Dialog WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/dialogmodal). - -### Keyboard Interactions - - - Closes the popover and moves focus to Popover.Trigger. - - ), - }, - ]} -/> - -## Custom APIs - -Create your own API by abstracting the primitive parts into your own component. - -#### Abstract the arrow and set default configuration - -This example abstracts the `Popover.Arrow` part and sets a default `sideOffset` configuration. - -#### Usage - -```jsx -import { Popover, PopoverTrigger, PopoverContent } from './your-popover'; - -export default () => ( - - Popover trigger - Popover content - -); -``` - -#### Implementation - -```jsx -// your-popover.jsx -import React from 'react'; -import * as PopoverPrimitive from '@radix-ui/react-popover'; - -export const Popover = PopoverPrimitive.Root; -export const PopoverTrigger = PopoverPrimitive.Trigger; - -export const PopoverContent = React.forwardRef( - ({ children, ...props }, forwardedRef) => ( - - - {children} - - - - ) -); -``` \ No newline at end of file diff --git a/docs/content/3.components/progress.md b/docs/content/3.components/progress.md deleted file mode 100644 index 02c618013..000000000 --- a/docs/content/3.components/progress.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -metaTitle: Progress -metaDescription: Displays an indicator showing the completion progress of a task, typically displayed as a progress bar. -name: progress -aria: https://www.w3.org/WAI/ARIA/apg/patterns/meter ---- - -# Progress - - - Displays an indicator showing the completion progress of a task, typically - displayed as a progress bar. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-progress -``` - -### Anatomy - -Import all parts and piece them together. - -```jsx -import * as Progress from '@radix-ui/react-progress'; - -export default () => ( - - - -); -``` - -## Accessibility - -Adheres to the [`progressbar` role requirements](https://www.w3.org/WAI/ARIA/apg/patterns/meter). - -## API Reference - -### Root - -Contains all of the progress parts. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - type: 'number | null', - description: 'The progress value.', - }, - { - name: 'max', - type: 'number', - description: 'The maximum progress value.', - }, - { - name: 'getValueLabel', - type: '(value: number, max: number) => string', - typeSimple: 'function', - description: - 'A function to get the accessible label text representing the current value in a human-readable format. If not provided, the value label will be read as the numeric value as a percentage of the max value.', - }, - ]} -/> - - - -### Indicator - -Used to show the progress visually. It also makes progress accessible to assistive technologies. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - \ No newline at end of file diff --git a/docs/content/3.components/radio-group.md b/docs/content/3.components/radio-group.md deleted file mode 100644 index 4f48ef90a..000000000 --- a/docs/content/3.components/radio-group.md +++ /dev/null @@ -1,315 +0,0 @@ ---- -metaTitle: Radio Group -metaDescription: A set of checkable buttons—known as radio buttons—where no more than one of the buttons can be checked at a time. -name: radio-group -aria: https://www.w3.org/WAI/ARIA/apg/patterns/radiobutton ---- - -# Radio Group - - - A set of checkable buttons—known as radio buttons—where no more than one of - the buttons can be checked at a time. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-radio-group -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as RadioGroup from '@radix-ui/react-radio-group'; - -export default () => ( - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a radio group. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'defaultValue', - type: 'string', - description: - 'The value of the radio item that should be checked when initially rendered. Use when you do not need to control the state of the radio items.', - }, - { - name: 'value', - type: 'string', - description: ( - - The controlled value of the radio item to check. Should be used in - conjunction with onValueChange. - - ), - }, - { - name: 'onValueChange', - type: '(value: string) => void', - typeSimple: 'function', - description: 'Event handler called when the value changes.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with radio - items. - - ), - }, - { - name: 'name', - type: 'string', - description: - 'The name of the group. Submitted with its owning form as part of a name/value pair.', - }, - { - name: 'required', - type: 'boolean', - description: ( - - When true, indicates that the user must check a radio - item before the owning form can be submitted. - - ), - }, - { - name: 'orientation', - required: false, - type: '"horizontal" | "vertical" | undefined', - typeSimple: 'enum', - default: 'undefined', - description: 'The orientation of the component.', - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - description: ( - - The reading direction of the radio group. If omitted, inherits - globally from DirectionProvider or assumes LTR - (left-to-right) reading mode. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'true', - description: ( - - When true, keyboard navigation will loop from last item - to first, and vice versa. - - ), - }, - ]} -/> - - - -### Item - -An item in the group that can be checked. An `input` will also render when used within a `form` to ensure events propagate correctly. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - type: 'string', - description: ( - - The value given as data when submitted with a name. - - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - radio item. - - ), - }, - { - name: 'required', - type: 'boolean', - description: ( - - When true, indicates that the user must check the radio - item before the owning form can be submitted. - - ), - }, - ]} -/> - - - -### Indicator - -Renders when the radio item is in a checked state. You can style this element directly, or you can use it as a wrapper to put an icon into, or both. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: - 'Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries.', - }, - ]} -/> - - - -## Accessibility - -Adheres to the [Radio Group WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/radiobutton) and uses [roving tabindex](https://www.w3.org/TR/wai-aria-practices-1.2/examples/radio/radio.html) to manage focus movement among radio items. - -### Keyboard Interactions - - \ No newline at end of file diff --git a/docs/content/3.components/scroll-area.md b/docs/content/3.components/scroll-area.md deleted file mode 100644 index f15a7652d..000000000 --- a/docs/content/3.components/scroll-area.md +++ /dev/null @@ -1,282 +0,0 @@ ---- -metaTitle: Scroll Area -metaDescription: Augments native scroll functionality for custom, cross-browser styling. -name: scroll-area ---- - -# Scroll Area - - - Augments native scroll functionality for custom, cross-browser styling. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-scroll-area -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as ScrollArea from '@radix-ui/react-scroll-area'; - -export default () => ( - - - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a scroll area. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'type', - type: '"auto" | "always" | "scroll" | "hover"', - typeSimple: 'enum', - default: '"hover"', - description: ( - - Describes the nature of scrollbar visibility, similar to how the - scrollbar preferences in MacOS control visibility of native - scrollbars. -
-
- "auto" means that scrollbars are visible when content is overflowing - on the corresponding orientation. -
- "always" means that scrollbars are always visible regardless - of whether the content is overflowing. -
- "scroll" means that scrollbars are visible when the user is - scrolling along its corresponding orientation. -
- "hover" when the user is scrolling along its corresponding - orientation and when the user is hovering over the scroll area. -
- ), - }, - { - name: 'scrollHideDelay', - type: 'number', - default: '600', - description: ( - - If type is set to either "scroll" or{' '} - "hover", this prop determines the length of time, in - milliseconds, before the scrollbars are hidden after the user stops - interacting with scrollbars. - - ), - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - description: ( - - The reading direction of the scroll area. If omitted, inherits - globally from DirectionProvider or assumes LTR - (left-to-right) reading mode. - - ), - }, - ]} -/> - -### Viewport - -The viewport area of the scroll area. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Scrollbar - -The vertical scrollbar. Add a second `Scrollbar` with an `orientation` prop to enable horizontal scrolling. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. - - ), - }, - { - name: 'orientation', - required: false, - type: '"horizontal" | "vertical"', - typeSimple: 'enum', - default: 'vertical', - description: 'The orientation of the scrollbar', - }, - ]} -/> - - - -### Thumb - -The thumb to be used in `ScrollArea.Scrollbar`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Corner - -The corner where both vertical and horizontal scrollbars meet. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -## Accessibility - -In most cases, it's best to rely on native scrolling and work with the customization options available in CSS. When that isn't enough, `ScrollArea` provides additional customizability while maintaining the browser's native scroll behavior (as well as accessibility features, like keyboard scrolling). - -### Keyboard Interactions - -Scrolling via keyboard is supported by default because the component relies on native scrolling. Specific keyboard interactions may differ between platforms, so we do not specify them here or add specific event listeners to handle scrolling via key events. \ No newline at end of file diff --git a/docs/content/3.components/select.md b/docs/content/3.components/select.md deleted file mode 100644 index b405d1e1b..000000000 --- a/docs/content/3.components/select.md +++ /dev/null @@ -1,1344 +0,0 @@ ---- -metaTitle: Select -metaDescription: Displays a list of options for the user to pick from—triggered by a button. -name: select -aria: https://www.w3.org/WAI/ARIA/apg/patterns/listbox ---- - -# Select - - - Displays a list of options for the user to pick from—triggered by a button. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-select -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Select from '@radix-ui/react-select'; - -export default () => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a select. - - - The controlled value of the select. Should be used in conjunction with{' '} - onValueChange. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string) => void', - typeSimple: 'function', - description: 'Event handler called when the value changes.', - }, - { - name: 'defaultOpen', - type: 'boolean', - description: - 'The open state of the select when it is initially rendered. Use when you do not need to control its open state.', - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the select. Must be used in conjunction - with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: ( - - Event handler called when the open state of the select changes. - - ), - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - description: ( - - The reading direction of the select when applicable. If omitted, - inherits globally from DirectionProvider or assumes LTR - (left-to-right) reading mode. - - ), - }, - { - name: 'name', - type: 'string', - description: - 'The name of the select. Submitted with its owning form as part of a name/value pair.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with - select. - - ), - }, - { - name: 'required', - type: 'boolean', - description: ( - - When true, indicates that the user must select a value - before the owning form can be submitted. - - ), - }, - ]} -/> - -### Trigger - -The button that toggles the select. The `Select.Content` will position itself by aligning over the trigger. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Value - -The part that reflects the selected value. By default the selected item's text will be rendered. if you require more control, you can instead control the select and pass your own `children`. It should not be styled to ensure correct positioning. An optional `placeholder` prop is also available for when the select has no value. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'placeholder', - required: false, - type: 'ReactNode', - description: ( - <> - The content that will be rendered inside the Select.Value{' '} - when no value or defaultValue is set. - - ), - }, - ]} -/> - -### Icon - -A small icon often displayed next to the value as a visual affordance for the fact it can be open. By default renders ▼ but you can use your own icon via `asChild` or use `children`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Portal - -When used, portals the content part into the `body`. - - - -### Content - -The component that pops out when the select is open. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'onCloseAutoFocus', - type: '(event: Event) => void', - typeSimple: 'function', - description: ( - - Event handler called when focus moves to the trigger after closing. It - can be prevented by calling event.preventDefault. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault. - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'position', - type: '"item-aligned" | "popper"', - typeSimple: 'enum', - default: '"item-aligned"', - description: ( - - The positioning mode to use, item-aligned is the default - and behaves similarly to a native MacOS menu by positioning content - relative to the active item. popper positions content in - the same way as our other primitives, for example Popover{' '} - or DropdownMenu. - - ), - }, - { - name: 'side', - type: '"top" | "right" | "bottom" | "left"', - typeSimple: 'enum', - default: '"bottom"', - description: ( - - The preferred side of the anchor to render against when open. Will be - reversed when collisions occur and avoidCollisions is - enabled. Only available when position is set to{' '} - popper. - - ), - }, - { - name: 'sideOffset', - type: 'number', - default: '0', - description: ( - - The distance in pixels from the anchor. Only available when{' '} - position is set to popper. - - ), - }, - { - name: 'align', - type: '"start" | "center" | "end"', - typeSimple: 'enum', - default: '"start"', - description: ( - - The preferred alignment against the anchor. May change when collisions - occur. Only available when position is set to{' '} - popper. - - ), - }, - { - name: 'alignOffset', - type: 'number', - default: '0', - description: ( - - An offset in pixels from the "start" or{' '} - "end" alignment options. Only available when{' '} - position is set to popper. - - ), - }, - { - name: 'avoidCollisions', - type: 'boolean', - default: 'true', - description: ( - - When true, overrides the side and - align preferences to prevent collisions with boundary edges. - Only available when position is set to - popper - . - - ), - }, - { - name: 'collisionBoundary', - type: 'Element | null | Array', - typeSimple: 'Boundary', - default: '[]', - description: ( - - The element used as the collision boundary. By default this is the - viewport, though you can provide additional element(s) to be included - in this check. Only available when position is set to{' '} - popper. - - ), - }, - { - name: 'collisionPadding', - type: 'number | Partial>', - typeSimple: 'number | Padding', - default: '10', - description: ( - - The distance in pixels from the boundary edges where collision - detection should occur. Accepts a number (same for all sides), or a - partial padding object, for example: {`{ top: 20, left: 20 }`} - . Only available when position is set to - popper - . - - ), - }, - { - name: 'arrowPadding', - type: 'number', - default: '0', - description: ( - - The padding between the arrow and the edges of the content. If your - content has border-radius, this will prevent it from - overflowing the corners. Only available when position is - set to popper. - - ), - }, - { - name: 'sticky', - type: '"partial" | "always"', - typeSimple: 'enum', - default: '"partial"', - description: ( - - The sticky behavior on the align axis. "partial" will - keep the content in the boundary as long as the trigger is at least - partially in the boundary whilst "always" will keep the - content in the boundary regardless. Only available when{' '} - position is set to popper. - - ), - }, - { - name: 'hideWhenDetached', - type: 'boolean', - default: 'false', - description: ( - - Whether to hide the content when the trigger becomes fully occluded. - Only available when position is set to{' '} - popper. - - ), - }, - ]} -/> - - - - - The transform-origin computed from the content and arrow - positions/offsets. Only present when position="popper". - - ), - }, - { - cssVariable: '--radix-select-content-available-width', - description: ( - <> - The remaining width between the trigger and the boundary edge. Only - present when position="popper". - - ), - }, - { - cssVariable: '--radix-select-content-available-height', - description: ( - <> - The remaining height between the trigger and the boundary edge. Only - present when position="popper". - - ), - }, - { - cssVariable: '--radix-select-trigger-width', - description: ( - <> - The width of the trigger. Only present when{' '} - position="popper". - - ), - }, - { - cssVariable: '--radix-select-trigger-height', - description: ( - <> - The height of the trigger. Only present when{' '} - position="popper". - - ), - }, - ]} -/> - -### Viewport - -The scrolling viewport that contains all of the items. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Item - -The component that contains the select items. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - required: true, - type: 'string', - description: ( - - The value given as data when submitted with a name. - - ), - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - { - name: 'textValue', - type: 'string', - description: ( - - Optional text used for typeahead purposes. By default the typeahead - behavior will use the .textContent of the{' '} - Select.ItemText part. Use this when the content is - complex, or you have non-textual content inside. - - ), - }, - ]} -/> - - - -### ItemText - -The textual part of the item. It should only contain the text you want to see in the trigger when that item is selected. It should not be styled to ensure correct positioning. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### ItemIndicator - -Renders when the item is selected. You can style this element directly, or you can use it as a wrapper to put an icon into, or both. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### ScrollUpButton - -An optional button used as an affordance to show the viewport overflow as well as functionaly enable scrolling upwards. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### ScrollDownButton - -An optional button used as an affordance to show the viewport overflow as well as functionaly enable scrolling downwards. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Group - -Used to group multiple items. use in conjunction with `Select.Label` to ensure good accessibility via automatic labelling. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Label - -Used to render the label of a group. It won't be focusable using arrow keys. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Separator - -Used to visually separate items in the select. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Arrow - -An optional arrow element to render alongside the content. This can be used to help visually link the trigger with the `Select.Content`. Must be rendered inside `Select.Content`. Only available when `position` is set to `popper`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'width', - type: 'number', - default: 10, - description: The width of the arrow in pixels., - }, - { - name: 'height', - type: 'number', - default: 5, - description: The height of the arrow in pixels., - }, - ]} -/> - -## Examples - -### Change the positioning mode - -By default, `Select` will behave similarly to a native MacOS menu by positioning `Select.Content` relative to the active item. If you would prefer an alternative positioning approach similar to `Popover` or `DropdownMenu` then you can set `position` to `popper` and make use of additional alignment options such as `side`, `sideOffset` and more. - -```jsx line=8 -// index.jsx -import * as Select from '@radix-ui/react-select'; - -export default () => ( - - - - - … - - - -); -``` - -### Constrain the content size - -When using `position="popper"` on `Select.Content`, you may want to constrain the width of the content so that it matches the trigger width. You may also want to constrain its height to not exceed the viewport. - -We expose several CSS custom properties such as `--radix-select-trigger-width` and `--radix-select-content-available-height` to support this. Use them to constrain the content dimensions. - -```jsx line=9 -// index.jsx -import * as Select from '@radix-ui/react-select'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css -/* styles.css */ -.SelectContent { - width: var(__--radix-select-trigger-width__); - max-height: var(__--radix-select-content-available-height__); -} -``` - -### With disabled items - -You can add special styles to disabled items via the `data-disabled` attribute. - -```jsx line=11 -// index.jsx -import * as Select from '@radix-ui/react-select'; -import './styles.css'; - -export default () => ( - - - - - - - … - - - - - - - -); -``` - -```css line=2 -/* styles.css */ -.SelectItem[__data-disabled__] { - color: 'gainsboro'; -} -``` - -### With a placeholder - -You can use the `placeholder` prop on `Value` for when the select has no value. There's also a `data-placeholder` attribute on `Trigger` to help with styling. - -```jsx line=7,8 -// index.jsx -import * as Select from '@radix-ui/react-select'; -import './styles.css'; - -export default () => ( - - - - - - - - - -); -``` - -```css line=2 -/* styles.css */ -.SelectTrigger[__data-placeholder__] { - color: 'gainsboro'; -} -``` - -### With separators - -Use the `Separator` part to add a separator between items. - -```jsx line=9 - - - - - - - - - - - - - - - -``` - -### With grouped items - -Use the `Group` and `Label` parts to group items in a section. - -```jsx line=6-7,11 - - - - - - - Label - - - - - - - - -``` - -### With complex items - -You can use custom content in your items. - -```jsx line=11 -import * as Select from '@radix-ui/react-select'; - -export default () => ( - - - - - - - - - Adolfo Hess - - - - - - - - - -); -``` - -### Controlling the value displayed in the trigger - -By default the trigger will automatically display the selected item `ItemText`'s content. You can control what appears by chosing to put things inside/outside the `ItemText` part. - -If you need more flexibility, you can control the component using `value`/`onValueChange` props and passing `children` to `SelectValue`. Remember to make sure what you put in there is accessible. - -```jsx line=1,4,6 -const countries = { france: '🇫🇷', 'united-kingdom': '🇬🇧', spain: '🇪🇸' }; - -export default () => { - const [value, setValue] = React.useState('france'); - return ( - - - - {__countries[value]__} - - - - - - - - France - - - - United Kingdom - - - - Spain - - - - - - - ); -}; -``` - -### With custom scrollbar - -The native scrollbar is hidden by default as we recommend using the `ScrollUpButton` and `ScrollDownButton` parts for the best UX. If you do not want to use these parts, compose your select with our [Scroll Area](scroll-area) primitive. - -```jsx line=11,13,19-21 -// index.jsx -import * as Select from '@radix-ui/react-select'; -import * as ScrollArea from '@radix-ui/react-scroll-area'; -import './styles.css'; - -export default () => ( - - - - - - - - - - - - - - - - - - - -); -``` - -```css -/* styles.css */ -.ScrollAreaRoot { - width: 100%; - height: 100%; -} - -.ScrollAreaViewport { - width: 100%; - height: 100%; -} - -.ScrollAreaScrollbar { - width: 4px; - padding: 5px 2px; -} - -.ScrollAreaThumb { - background: rgba(0, 0, 0, 0.3); - borderradius: 3px; -} -``` - -## Accessibility - -Adheres to the [ListBox WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/listbox). - -See the W3C [Select-Only Combobox](https://www.w3.org/TR/wai-aria-practices/examples/combobox/combobox-select-only.html) example for more information. - -### Keyboard Interactions - - - When focus is on Select.Trigger, opens the select and - focuses the selected item. -
- When focus is on an item, selects the focused item. - - ), - }, - { - keys: ['Enter'], - description: ( - - When focus is on Select.Trigger, opens the select and - focuses the first item. -
- When focus is on an item, selects the focused item. -
- ), - }, - { - keys: ['ArrowDown'], - description: ( - - When focus is on Select.Trigger, opens the select. -
- When focus is on an item, moves focus to the next item. -
- ), - }, - { - keys: ['ArrowUp'], - description: ( - - When focus is on Select.Trigger, opens the select. -
- When focus is on an item, moves focus to the previous item. -
- ), - }, - { - keys: ['Esc'], - description: ( - - Closes the select and moves focus to Select.Trigger. - - ), - }, - ]} -/> - -### Labelling - -Use our [Label](label) component in order to offer a visual and accessible label for the select. - -```jsx line=6,9,13 -import * as Select from '@radix-ui/react-select'; -import { Label } from '@radix-ui/react-label'; - -export default () => ( - <> - - - {/* or */} - - - - - - - - - -); -``` - -## Custom APIs - -Create your own API by abstracting the primitive parts into your own component. - -### Abstract down to `Select` and `SelectItem` - -This example abstracts most of the parts. - -#### Usage - -```jsx -import { Select, SelectItem } from './your-select'; - -export default () => ( - -); -``` - -#### Implementation - -```jsx -// your-select.jsx -import React from 'react'; -import * as SelectPrimitive from '@radix-ui/react-select'; -import { - CheckIcon, - ChevronDownIcon, - ChevronUpIcon, -} from '@radix-ui/react-icons'; - -export const Select = React.forwardRef( - ({ children, ...props }, forwardedRef) => { - return ( - - - - - - - - - - - - - {children} - - - - - - - ); - } -); - -export const SelectItem = React.forwardRef( - ({ children, ...props }, forwardedRef) => { - return ( - - {children} - - - - - ); - } -); -``` \ No newline at end of file diff --git a/docs/content/3.components/separator.md b/docs/content/3.components/separator.md deleted file mode 100644 index 9cf0950bd..000000000 --- a/docs/content/3.components/separator.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -metaTitle: Separator -metaDescription: Visually or semantically separates content. -name: separator -aria: https://www.w3.org/TR/wai-aria-1.2/#separator ---- - -# Separator - -Visually or semantically separates content. - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-separator -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Separator from '@radix-ui/react-separator'; - -export default () => ; -``` - -## API Reference - -### Root - -The separator. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'orientation', - type: '"horizontal" | "vertical"', - typeSimple: 'enum', - default: '"horizontal"', - description: 'The orientation of the separator.', - }, - { - name: 'decorative', - type: 'boolean', - description: ( - - When true, signifies that it is purely visual, carries no - semantic meaning, and ensures it is not present in the accessibility - tree. - - ), - }, - ]} -/> - - - -## Accessibility - -Adheres to the [`separator` role requirements](https://www.w3.org/TR/wai-aria-1.2/#separator). \ No newline at end of file diff --git a/docs/content/3.components/slider.md b/docs/content/3.components/slider.md deleted file mode 100644 index b2998f6a3..000000000 --- a/docs/content/3.components/slider.md +++ /dev/null @@ -1,576 +0,0 @@ ---- -metaTitle: Slider -metaDescription: An input where the user selects a value from within a given range. -name: slider -aria: https://www.w3.org/WAI/ARIA/apg/patterns/slidertwothumb ---- - -# Slider - - - An input where the user selects a value from within a given range. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-slider -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Slider from '@radix-ui/react-slider'; - -export default () => ( - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a slider. It will render an `input` for each thumb when used within a `form` to ensure events propagate correctly. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'defaultValue', - required: false, - type: 'number[]', - description: - 'The value of the slider when initially rendered. Use when you do not need to control the state of the slider.', - }, - { - name: 'value', - required: false, - type: 'number[]', - description: ( - - The controlled value of the slider. Must be used in conjunction with{' '} - onValueChange. - - ), - }, - { - name: 'onValueChange', - required: false, - type: 'onValueChange?(value: number[]): void', - typeSimple: 'function', - description: 'Event handler called when the value changes.', - }, - { - name: 'onValueCommit', - required: false, - type: 'onValueCommit?(value: number[]): void', - typeSimple: 'function', - description: - 'Event handler called when the value changes at the end of an interaction. Useful when you only need to capture a final value e.g. to update a backend service.', - }, - { - name: 'name', - required: false, - type: 'string', - description: - 'The name of the slider. Submitted with its owning form as part of a name/value pair.', - }, - { - name: 'disabled', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, prevents the user from interacting with the - slider. - - ), - }, - { - name: 'orientation', - required: false, - type: '"horizontal" | "vertical"', - typeSimple: 'enum', - default: '"horizontal"', - description: 'The orientation of the slider.', - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - description: ( - - The reading direction of the slider. If omitted, inherits globally - from DirectionProvider or assumes LTR (left-to-right) - reading mode. - - ), - }, - { - name: 'inverted', - required: false, - type: 'boolean', - default: 'false', - description: 'Whether the slider is visually inverted.', - }, - { - name: 'min', - required: false, - type: 'number', - default: '0', - description: 'The minimum value for the range.', - }, - { - name: 'max', - required: false, - type: 'number', - default: '100', - description: 'The maximum value for the range.', - }, - { - name: 'step', - required: false, - type: 'number', - default: '1', - description: 'The stepping interval.', - }, - { - name: 'minStepsBetweenThumbs', - required: false, - type: 'number', - default: '0', - description: ( - - The minimum permitted steps between multiple thumbs. - - ), - }, - ]} -/> - - - -### Track - -The track that contains the `Slider.Range`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Range - -The range part. Must live inside `Slider.Track`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Thumb - -A draggable thumb. You can render multiple thumbs. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -## Examples - -### Vertical orientation - -Use the `orientation` prop to create a vertical slider. - -```jsx line=6 -// index.jsx -import * as Slider from '@radix-ui/react-slider'; -import './styles.css'; - -export default () => ( - - - - - - -); -``` - -```css line=7,18,26 -/* styles.css */ -.SliderRoot { - position: relative; - display: flex; - align-items: center; -} -.SliderRoot[__data-orientation='vertical'__] { - flex-direction: column; - width: 20px; - height: 100px; -} - -.SliderTrack { - position: relative; - flex-grow: 1; - background-color: grey; -} -.SliderTrack[__data-orientation='vertical'__] { - width: 3px; -} - -.SliderRange { - position: absolute; - background-color: black; -} -.SliderRange[__data-orientation='vertical'__] { - width: 100%; -} - -.SliderThumb { - display: block; - width: 20px; - height: 20px; - background-color: black; -} -``` - -### Create a range - -Add multiple thumbs and values to create a range slider. - -```jsx line=4,8-9 -import * as Slider from '@radix-ui/react-slider'; - -export default () => ( - - - - - - - -); -``` - -### Define step size - -Use the `step` prop to increase the stepping interval. - -```jsx line=4 -import * as Slider from '@radix-ui/react-slider'; - -export default () => ( - - - - - - -); -``` - -### Prevent thumb overlap - -Use `minStepsBetweenThumbs` to avoid thumbs with equal values. - -```jsx line=4 -import * as Slider from '@radix-ui/react-slider'; - -export default () => ( - - - - - - - -); -``` - -## Accessibility - -Adheres to the [Slider WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/slidertwothumb). - -### Keyboard Interactions - - - Increments/decrements by the step value depending on{' '} - orientation. - - ), - }, - { - keys: ['ArrowLeft'], - description: ( - - Increments/decrements by the step value depending on{' '} - orientation. - - ), - }, - { - keys: ['ArrowUp'], - description: ( - - Increases the value by the step amount. - - ), - }, - { - keys: ['ArrowDown'], - description: ( - - Decreases the value by the step amount. - - ), - }, - { - keys: ['PageUp'], - description: ( - - Increases the value by a larger step. - - ), - }, - { - keys: ['PageDown'], - description: ( - - Decreases the value by a larger step. - - ), - }, - { - keys: ['Shift + ArrowUp'], - description: ( - - Increases the value by a larger step. - - ), - }, - { - keys: ['Shift + ArrowDown'], - description: ( - - Decreases the value by a larger step. - - ), - }, - { - keys: ['Home'], - description: 'Sets the value to its minimum.', - }, - { - keys: ['End'], - description: 'Sets the value to its maximum.', - }, - ]} -/> - -## Custom APIs - -Create your own API by abstracting the primitive parts into your own component. - -### Abstract all parts - -This example abstracts all of the `Slider` parts so it can be used as a self closing element. - -#### Usage - -```jsx -import { Slider } from './your-slider'; - -export default () => ; -``` - -#### Implementation - -```jsx -// your-slider.jsx -import * as SliderPrimitive from '@radix-ui/react-slider'; - -export const Slider = React.forwardRef((props, forwardedRef) => { - const value = props.value || props.defaultValue; - - return ( - - - - - {value.map((_, i) => ( - - ))} - - ); -}); -``` - -## Caveats - -### Mouse events are not fired - -Because of [a limitation](https://github.com/radix-ui/primitives/blob/83a8c13bf66f3d9f17d77caeb187a69eb146930b/packages/react/slider/src/Slider.tsx#L383-L384) we faced during implementation, the following example won't work as expected and the `onMouseDown` and `onMouseUp` event handlers won't be fired: - -```jsx - console.log('onMouseDown')} - onMouseUp={() => console.log('onMouseUp')} -> - … - -``` - -We recommend using pointer events instead (eg. `onPointerDown`, `onPointerUp`). Regardless of the above limitation, these events are better suited for cross-platform/device handling as they are fired for all pointer input types (mouse, touch, pen, etc.). \ No newline at end of file diff --git a/docs/content/3.components/switch.md b/docs/content/3.components/switch.md deleted file mode 100644 index 5a80c4207..000000000 --- a/docs/content/3.components/switch.md +++ /dev/null @@ -1,199 +0,0 @@ ---- -metaTitle: Switch -metaDescription: A control that allows the user to toggle between checked and not checked. -name: switch -aria: https://www.w3.org/WAI/ARIA/apg/patterns/switch ---- - -# Switch - - - A control that allows the user to toggle between checked and not checked. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-switch -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Switch from '@radix-ui/react-switch'; - -export default () => ( - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a switch. An `input` will also render when used within a `form` to ensure events propagate correctly. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'defaultChecked', - type: 'boolean', - description: - 'The state of the switch when it is initially rendered. Use when you do not need to control its state.', - }, - { - name: 'checked', - type: 'boolean', - description: ( - - The controlled state of the switch. Must be used in conjunction with{' '} - onCheckedChange. - - ), - }, - { - name: 'onCheckedChange', - type: '(checked: boolean) => void', - typeSimple: 'function', - description: 'Event handler called when the state of the switch changes.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - switch. - - ), - }, - { - name: 'required', - type: 'boolean', - description: ( - - When true, indicates that the user must check the switch - before the owning form can be submitted. - - ), - }, - { - name: 'name', - type: 'string', - description: - 'The name of the switch. Submitted with its owning form as part of a name/value pair.', - }, - { - name: 'value', - type: 'string', - default: 'on', - description: ( - - The value given as data when submitted with a name. - - ), - }, - ]} -/> - - - -### Thumb - -The thumb that is used to visually indicate whether the switch is on or off. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -## Accessibility - -Adheres to the [`switch` role requirements](https://www.w3.org/WAI/ARIA/apg/patterns/switch). - -### Keyboard Interactions - - \ No newline at end of file diff --git a/docs/content/3.components/tabs.md b/docs/content/3.components/tabs.md deleted file mode 100644 index 30624635c..000000000 --- a/docs/content/3.components/tabs.md +++ /dev/null @@ -1,403 +0,0 @@ ---- -metaTitle: Tabs -metaDescription: A set of layered sections of content—known as tab panels—that are displayed one at a time. -name: tabs -aria: https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel ---- - -# Tabs - - - A set of layered sections of content—known as tab panels—that are displayed - one at a time. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-tabs -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Tabs from '@radix-ui/react-tabs'; - -export default () => ( - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the tabs component parts. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'defaultValue', - required: false, - type: 'string', - description: - 'The value of the tab that should be active when initially rendered. Use when you do not need to control the state of the tabs.', - }, - { - name: 'value', - required: false, - type: 'string', - description: ( - - The controlled value of the tab to activate. Should be used in - conjunction with onValueChange. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string) => void', - typeSimple: 'function', - description: 'Event handler called when the value changes.', - }, - { - name: 'orientation', - required: false, - type: '"horizontal" | "vertical" | undefined', - typeSimple: 'enum', - default: '"horizontal"', - description: 'The orientation of the component.', - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - description: ( - - The reading direction of the tabs. If omitted, inherits globally from{' '} - DirectionProvider or assumes LTR (left-to-right) reading - mode. - - ), - }, - { - name: 'activationMode', - required: false, - type: '"automatic" | "manual"', - typeSimple: 'enum', - default: '"automatic"', - description: ( - - When automatic, tabs are activated when receiving focus. - When manual, tabs are activated when clicked. - - ), - }, - ]} -/> - - - -### List - -Contains the triggers that are aligned along the edge of the active content. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'true', - description: ( - - When true, keyboard navigation will loop from last tab to - first, and vice versa. - - ), - }, - ]} -/> - - - -### Trigger - -The button that activates its associated content. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - required: true, - type: 'string', - description: 'A unique value that associates the trigger with a content.', - }, - { - name: 'disabled', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, prevents the user from interacting with the - tab. - - ), - }, - ]} -/> - - - -### Content - -Contains the content associated with each trigger. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - required: true, - type: 'string', - description: 'A unique value that associates the content with a trigger.', - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. - - ), - }, - ]} -/> - - - -## Examples - -### Vertical - -You can create vertical tabs by using the `orientation` prop. - -```jsx line=4 -import * as Tabs from '@radix-ui/react-tabs'; - -export default () => ( - - - One - Two - Three - - Tab one content - Tab two content - Tab three content - -); -``` - -## Accessibility - -Adheres to the [Tabs WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel). - -### Keyboard Interactions - - - When focus moves onto the tabs, focuses the active trigger. When a - trigger is focused, moves focus to the active content. - - ), - }, - { - keys: ['ArrowDown'], - description: ( - - Moves focus to the next trigger depending on orientation{' '} - and activates its associated content. - - ), - }, - { - keys: ['ArrowRight'], - description: ( - - Moves focus to the next trigger depending on orientation{' '} - and activates its associated content. - - ), - }, - { - keys: ['ArrowUp'], - description: ( - - Moves focus to the previous trigger depending on{' '} - orientation and activates its associated content. - - ), - }, - { - keys: ['ArrowLeft'], - description: ( - - Moves focus to the previous trigger depending on{' '} - orientation and activates its associated content. - - ), - }, - { - keys: ['Home'], - description: ( - - Moves focus to the first trigger and activates its associated content. - - ), - }, - { - keys: ['End'], - description: ( - - Moves focus to the last trigger and activates its associated content. - - ), - }, - ]} -/> \ No newline at end of file diff --git a/docs/content/3.components/toast.md b/docs/content/3.components/toast.md deleted file mode 100644 index fdb40c4c8..000000000 --- a/docs/content/3.components/toast.md +++ /dev/null @@ -1,733 +0,0 @@ ---- -metaTitle: Toast -metaDescription: A succinct message that is displayed temporarily. -name: toast -aria: https://www.w3.org/TR/wai-aria/#aria-live ---- - -# Toast - -A succinct message that is displayed temporarily. - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-toast -``` - -## Anatomy - -Import the component. - -```jsx -import * as Toast from '@radix-ui/react-toast'; - -export default () => ( - - - - - - - - - - -); -``` - -## API Reference - -### Provider - -The provider that wraps your toasts and toast viewport. It usually wraps the application. - - - -### Viewport - -The fixed area where toasts appear. Users can jump to the viewport by pressing a hotkey. It is up to you to ensure the discoverability of the hotkey for keyboard users. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'hotkey', - type: 'string[]', - default: '["F8"]', - description: ( - - The keys to use as the keyboard shortcut that will move focus to the - toast viewport. Use event.code value for each key from{' '} - - keycode.info - - . For meta keys, use ctrlKey, shiftKey, - altKey - and/or metaKey. - - ), - }, - { - name: 'label', - type: 'string', - default: '"Notifications ({hotkey})"', - description: - 'An author-localized label for the toast region to provide context for screen reader users when navigating page landmarks. The available `{hotkey}` placeholder will be replaced for you.', - }, - ]} -/> - -### Root - -The toast that automatically closes. It should not be held open to [acquire a user response](/docs/primitives/components/toast#action). - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'type', - type: '"foreground" | "background"', - typeSimple: 'enum', - default: '"foreground"', - description: ( - - Control the{' '} - - sensitivity - {' '} - of the toast for accessibility purposes. For toasts that are the - result of a user action, choose foreground. Toasts - generated from background tasks should use background. - - ), - }, - { - name: 'duration', - type: 'number', - description: - 'The time in milliseconds that should elapse before automatically closing the toast. This will override the value supplied to the provider.', - }, - { - name: 'defaultOpen', - type: 'boolean', - default: 'true', - description: - 'The open state of the dialog when it is initially rendered. Use when you do not need to control its open state.', - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the dialog. Must be used in conjunction - with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: - 'Event handler called when the open state of the dialog changes.', - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault. - - ), - }, - { - name: 'onPause', - type: '() => void', - typeSimple: 'function', - description: - 'Event handler called when the dismiss timer is paused. This occurs when the pointer is moved over the viewport, the viewport is focused or when the window is blurred.', - }, - { - name: 'onResume', - type: '() => void', - typeSimple: 'function', - description: - 'Event handler called when the dismiss timer is resumed. This occurs when the pointer is moved away from the viewport, the viewport is blurred or when the window is focused.', - }, - { - name: 'onSwipeStart', - type: '(event: SwipeEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when starting a swipe interaction. It can be - prevented by calling event.preventDefault. - - ), - }, - { - name: 'onSwipeMove', - type: '(event: SwipeEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called during a swipe interaction. It can be prevented - by calling event.preventDefault. - - ), - }, - { - name: 'onSwipeEnd', - type: '(event: SwipeEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called at the end of a swipe interaction. It can be - prevented by calling event.preventDefault. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: - 'Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries.', - }, - ]} -/> - - - - - -### Title - -An optional title for the toast. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Description - -The toast message. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### Action - -An action that is safe to ignore to ensure users are not expected to complete tasks with unexpected side effects as a result of a [time limit](https://www.w3.org/TR/UNDERSTANDING-WCAG20/time-limits-required-behaviors.html). - -When obtaining a user response is necessary, portal an [`AlertDialog`](/docs/primitives/components/alert-dialog) styled as a toast into the viewport instead. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'altText', - required: true, - type: 'string', - description: ( - <> - Describe an{' '} - - alternative way to achieve the action - {' '} - for screen reader users who cannot access the toast easily. - - ), - }, - ]} -/> - -### Close - -A button that allows users to dismiss the toast before its duration has elapsed. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -## Examples - -### Custom hotkey - -Override the default hotkey using the `event.code` value for each key from [keycode.info](https://keycode.info/). - -```jsx line=3 - - {/* ... */} - - -``` - -### Custom duration - -Customise the duration of a toast to override the provider value. - -```jsx line=1 - - Saved! - -``` - -### Duplicate toasts - -When a toast must appear every time a user clicks a button, use state to render multiple instances of the same toast (see below). Alternatively, you can abstract the parts to create your own [imperative API](/docs/primitives/components/toast#imperative-api). - -```jsx line=6,11-15 -export default () => { - const [savedCount, setSavedCount] = React.useState(0); - - return ( -
-
setSavedCount((count) => count + 1)}> - {/* ... */} - -
- - {Array.from({ length: savedCount }).map((_, index) => ( - - Saved! - - ))} -
- ); -}; -``` - -### Animating swipe gesture - -Combine `--radix-toast-swipe-move-[x|y]` and `--radix-toast-swipe-end-[x|y]` CSS variables with `data-swipe="[start|move|cancel|end]"` attributes to animate a swipe to close gesture. Here's an example: - -```jsx line=6,7 -// index.jsx -import * as Toast from '@radix-ui/react-toast'; -import './styles.css'; - -export default () => ( - - ... - - -); -``` - -```css line=2,3,5,9,15 -/* styles.css */ -.ToastRoot[__data-swipe__='move'] { - transform: translateX(var(__--radix-toast-swipe-move-x__)); -} -.ToastRoot[__data-swipe__='cancel'] { - transform: translateX(0); - transition: transform 200ms ease-out; -} -.ToastRoot[__data-swipe__='end'] { - animation: slideRight 100ms ease-out; -} - -@keyframes slideRight { - from { - transform: translateX(var(__--radix-toast-swipe-end-x__)); - } - to { - transform: translateX(100%); - } -} -``` - -## Accessibility - -Adheres to the [`aria-live` requirements](https://www.w3.org/TR/wai-aria/#aria-live). - -### Sensitivity - -Control the sensitivity of the toast for screen readers using the `type` prop. - -For toasts that are the result of a user action, choose `foreground`. Toasts generated from background tasks should use `background`. - -#### Foreground - -Foreground toasts are announced immediately. Assistive technologies may choose to clear previously queued messages when a foreground toast appears. Try to avoid stacking distinct foreground toasts at the same time. - -#### Background - -Background toasts are announced at the next graceful opportunity, for example, when the screen reader has finished reading its current sentence. They do not clear queued messages so overusing them can be perceived as a laggy user experience for screen reader users when used in response to a user interaction. - -```jsx line=1,6 - - File removed successfully. - Dismiss - - - - We've just released Radix 1.0. - Dismiss - -``` - -### Alternative action - -Use the `altText` prop on the `Action` to instruct an alternative way of actioning the toast to screen reader users. - -You can direct the user to a permanent place in your application where they can action it or implement your own custom hotkey logic. If implementing the latter, use `foreground` type to announce immediately and increase the duration to give the user ample time. - -```jsx line=4,10,12 - - Upgrade Available! - We've just released Radix 1.0. - - Upgrade - - Dismiss - - - - File removed successfully. - - Undo Alt+U - - Dismiss - -``` - -### Close icon button - -When providing an icon (or font icon), remember to label it correctly for screen reader users. - -```jsx line=3-4 - - Saved! - - × - - -``` - -### Keyboard Interactions - - - When focus is on a Toast.Action or{' '} - Toast.Close, closes the toast. - - ), - }, - { - keys: ['Enter'], - description: ( - - When focus is on a Toast.Action or{' '} - Toast.Close, closes the toast. - - ), - }, - { - keys: ['Esc'], - description: ( - - When focus is on a Toast, closes the toast. - - ), - }, - ]} -/> - -## Custom APIs - -### Abstract parts - -Create your own API by abstracting the primitive parts into your own component. - -#### Usage - -```jsx -import { Toast } from './your-toast'; - -export default () => ( - - - -); -``` - -#### Implementation - -```jsx -// your-toast.jsx -import * as ToastPrimitive from '@radix-ui/react-toast'; - -export const Toast = ({ title, content, children, ...props }) => { - return ( - - {title && {title}} - {content} - {children && ( - {children} - )} - - × - - - ); -}; -``` - -### Imperative API - -Create your own imperative API to allow [toast duplication](/docs/primitives/components/toast#duplicate-toasts) if preferred. - -#### Usage - -```jsx -import { Toast } from './your-toast'; - -export default () => { - const savedRef = React.useRef(); - return ( -
-
savedRef.current.publish()}> - {/* ... */} - -
- Saved successfully! -
- ); -}; -``` - -#### Implementation - -```jsx -// your-toast.jsx -import React from 'react'; -import * as ToastPrimitive from '@radix-ui/react-toast'; - -export const Toast = React.forwardRef((props, forwardedRef) => { - const { children, ...toastProps } = props; - const [count, setCount] = React.useState(0); - - React.useImperativeHandle(forwardedRef, () => ({ - publish: () => setCount((count) => count + 1), - })); - - return ( - <> - {Array.from({ length: count }).map((_, index) => ( - - {children} - Dismiss - - ))} - - ); -}); -``` \ No newline at end of file diff --git a/docs/content/3.components/toggle-group.md b/docs/content/3.components/toggle-group.md deleted file mode 100644 index 3c2f46ff3..000000000 --- a/docs/content/3.components/toggle-group.md +++ /dev/null @@ -1,376 +0,0 @@ ---- -metaTitle: Toggle Group -metaDescription: A set of two-state buttons that can be toggled on or off. -name: toggle-group -aria: https://www.w3.org/WAI/ARIA/apg/patterns/button ---- - -# Toggle Group - - - A set of two-state buttons that can be toggled on or off. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-toggle-group -``` - -## Anatomy - -Import the component. - -```jsx -import * as ToggleGroup from '@radix-ui/react-toggle-group'; - -export default () => ( - - - -); -``` - -## API Reference - -### Root - -Contains all the parts of a toggle group. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'type', - required: true, - type: '"single" | "multiple"', - typeSimple: 'enum', - description: ( - - Determines whether a single or multiple items can be pressed at a - time. - - ), - }, - { - name: 'value', - required: false, - type: 'string', - description: ( - - The controlled value of the pressed item when type is{' '} - "single". Must be used in conjunction with{' '} - onValueChange. - - ), - }, - { - name: 'defaultValue', - required: false, - type: 'string', - description: ( - - The value of the item to show as pressed when initially rendered and{' '} - type is "single". Use when you do not need - to control the state of the items. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string) => void', - typeSimple: 'function', - description: ( - - Event handler called when the pressed state of an item changes and{' '} - type is "single". - - ), - }, - { - name: 'value', - required: false, - default: '[]', - type: 'string[]', - description: ( - - The controlled value of the pressed items when type is{' '} - "multiple". Must be used in conjunction with{' '} - onValueChange. - - ), - }, - { - name: 'defaultValue', - required: false, - default: '[]', - type: 'string[]', - description: ( - - The values of the items to show as pressed when initially rendered and{' '} - type is "multiple". Use when you do not need - to control the state of the items. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string[]) => void', - typeSimple: 'function', - description: ( - - Event handler called when the pressed state of an item changes and{' '} - type is "multiple". - - ), - }, - { - name: 'disabled', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, prevents the user from interacting with the - toggle group and all its items. - - ), - }, - { - name: 'rovingFocus', - required: false, - type: 'boolean', - default: 'true', - description: ( - - When false, navigating through the items using arrow keys - will be disabled. - - ), - }, - { - name: 'orientation', - required: false, - type: '"horizontal" | "vertical" | undefined', - typeSimple: 'enum', - default: 'undefined', - description: ( - - The orientation of the component, which determines how focus moves:{' '} - horizontal for left/right arrows and{' '} - vertical for up/down arrows. - - ), - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - description: ( - - The reading direction of the toggle group. If omitted, inherits - globally from DirectionProvider or assumes LTR - (left-to-right) reading mode. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'true', - description: ( - - When true and rovingFocus is{' '} - true, keyboard navigation will loop from last item to - first, and vice versa. - - ), - }, - ]} -/> - - - -### Item - -An item in the group. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - required: true, - type: 'string', - description: 'A unique value for the item.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - ]} -/> - - - -## Examples - -### Ensuring there is always a value - -You can control the component to ensure a value. - -```jsx line=5,8 -import * as React from 'react'; -import * as ToggleGroup from '@radix-ui/react-toggle-group'; - -export default () => { - const [value, setValue] = React.useState('left'); - - return ( - { - if (value) setValue(value); - }} - > - - - - - - - - - - - ); -}; -``` - -## Accessibility - -Uses [roving tabindex](https://www.w3.org/TR/wai-aria-practices-1.2/examples/radio/radio.html) to manage focus movement among items. - -### Keyboard Interactions - - \ No newline at end of file diff --git a/docs/content/3.components/toggle.md b/docs/content/3.components/toggle.md deleted file mode 100644 index 3694e2b06..000000000 --- a/docs/content/3.components/toggle.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -metaTitle: Toggle -metaDescription: A two-state button that can be either on or off. -name: toggle -aria: https://www.w3.org/WAI/ARIA/apg/patterns/button ---- - -# Toggle - -A two-state button that can be either on or off. - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-toggle -``` - -## Anatomy - -Import the component. - -```jsx -import * as Toggle from '@radix-ui/react-toggle'; - -export default () => ; -``` - -## API Reference - -### Root - -The toggle. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'defaultPressed', - type: 'boolean', - description: - 'The pressed state of the toggle when it is initially rendered. Use when you do not need to control its pressed state.', - }, - { - name: 'pressed', - type: 'boolean', - description: ( - - The controlled pressed state of the toggle. Must be used in - conjunction with onPressedChange. - - ), - }, - { - name: 'onPressedChange', - type: '(pressed: boolean) => void', - typeSimple: 'function', - description: - 'Event handler called when the pressed state of the toggle changes.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - toggle. - - ), - }, - ]} -/> - - - -## Accessibility - -### Keyboard Interactions - - \ No newline at end of file diff --git a/docs/content/3.components/toolbar.md b/docs/content/3.components/toolbar.md deleted file mode 100644 index 5e4568770..000000000 --- a/docs/content/3.components/toolbar.md +++ /dev/null @@ -1,503 +0,0 @@ ---- -metaTitle: Toolbar -metaDescription: A container for grouping a set of controls, such as buttons, toggle groups or dropdown menus. -name: toolbar -aria: https://www.w3.org/WAI/ARIA/apg/patterns/toolbar ---- - -# Toolbar - - - A container for grouping a set of controls, such as buttons, toggle groups or - dropdown menus. - - - - - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-toolbar -``` - -## Anatomy - -Import the component. - -```jsx -import * as Toolbar from '@radix-ui/react-toolbar'; - -export default () => ( - - - - - - - - -); -``` - -## API Reference - -### Root - -Contains all the toolbar component parts. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'orientation', - required: false, - type: '"horizontal" | "vertical" | undefined', - typeSimple: 'enum', - default: '"horizontal"', - description: 'The orientation of the toolbar.', - }, - { - name: 'dir', - required: false, - type: '"ltr" | "rtl"', - typeSimple: 'enum', - description: ( - - The reading direction of the toolbar. If omitted, inherits globally - from DirectionProvider or assumes LTR (left-to-right) - reading mode. - - ), - }, - { - name: 'loop', - required: false, - type: 'boolean', - default: 'true', - description: ( - - When true, keyboard navigation will loop from last tab to - first, and vice versa. - - ), - }, - ]} -/> - - - -### Button - -A button item. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Link - -A link item. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - -### ToggleGroup - -A set of two-state buttons that can be toggled on or off. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'type', - required: true, - type: '"single" | "multiple"', - typeSimple: 'enum', - description: ( - - Determines whether a single or multiple items can be pressed at a - time. - - ), - }, - { - name: 'value', - required: false, - type: 'string', - description: ( - - The controlled value of the pressed item when type is{' '} - "single". Must be used in conjunction with{' '} - onValueChange. - - ), - }, - { - name: 'defaultValue', - required: false, - type: 'string', - description: ( - - The value of the item to show as pressed when initially rendered and{' '} - type is "single". Use when you do not need - to control the state of the items. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string) => void', - typeSimple: 'function', - description: ( - - Event handler called when the pressed state of an item changes and{' '} - type is "single". - - ), - }, - { - name: 'value', - required: false, - default: '[]', - type: 'string[]', - description: ( - - The controlled value of the pressed items when type is{' '} - "multiple". Must be used in conjunction with{' '} - onValueChange. - - ), - }, - { - name: 'defaultValue', - required: false, - default: '[]', - type: 'string[]', - description: ( - - The values of the items to show as pressed when initially rendered and{' '} - type is "multiple". Use when you do not need - to control the state of the items. - - ), - }, - { - name: 'onValueChange', - required: false, - type: '(value: string[]) => void', - typeSimple: 'function', - description: ( - - Event handler called when the pressed state of an item changes and{' '} - type is "multiple". - - ), - }, - { - name: 'disabled', - required: false, - type: 'boolean', - default: 'false', - description: ( - - When true, prevents the user from interacting with the - toggle group and all its items. - - ), - }, - ]} -/> - - - -### ToggleItem - -An item in the group. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'value', - required: true, - type: 'string', - description: 'A unique value for the item.', - }, - { - name: 'disabled', - type: 'boolean', - description: ( - - When true, prevents the user from interacting with the - item. - - ), - }, - ]} -/> - - - -### Separator - -Used to visually separate items in the toolbar. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -## Examples - -### Use with other primitives - -All our primitives which expose a `Trigger` part, such as `Dialog`, `AlertDialog`, `Popover`, `DropdownMenu` can be composed within a toolbar by using the [`asChild` prop](/docs/primitives/guides/composition). - -Here is an example using our `DropdownMenu` primitive. - -```jsx line=9-11 -import * as Toolbar from '@radix-ui/react-toolbar'; -import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; - -export default () => ( - - Action 1 - - - - Trigger - - - - -); -``` - -## Accessibility - -Uses [roving tabindex](https://www.w3.org/TR/wai-aria-practices-1.2/examples/radio/radio.html) to manage focus movement among items. - -### Keyboard Interactions - - - Moves focus to the next item depending on orientation. - - ), - }, - { - keys: ['ArrowRight'], - description: ( - - Moves focus to the next item depending on orientation. - - ), - }, - { - keys: ['ArrowUp'], - description: ( - - Moves focus to the previous item depending on orientation - . - - ), - }, - { - keys: ['ArrowLeft'], - description: ( - - Moves focus to the previous item depending on orientation - . - - ), - }, - { - keys: ['Home'], - description: Moves focus to the first item., - }, - { - keys: ['End'], - description: Moves focus to the last item., - }, - ]} -/> \ No newline at end of file diff --git a/docs/content/3.components/tooltip.md b/docs/content/3.components/tooltip.md deleted file mode 100644 index 20b1c71fd..000000000 --- a/docs/content/3.components/tooltip.md +++ /dev/null @@ -1,751 +0,0 @@ ---- -metaTitle: Tooltip -metaDescription: A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it. -name: tooltip -aria: https://www.w3.org/WAI/ARIA/apg/patterns/tooltip ---- - -# Tooltip - - - A popup that displays information related to an element when the element - receives keyboard focus or the mouse hovers over it. - - - - - - - - - - -## Installation - -Install the component from your command line. - -```bash -npm install @radix-ui/react-tooltip -``` - -## Anatomy - -Import all parts and piece them together. - -```jsx -import * as Tooltip from '@radix-ui/react-tooltip'; - -export default () => ( - - - - - - - - - - -); -``` - -## API Reference - -### Provider - -Wraps your app to provide global functionality to your tooltips. - - - Prevents Tooltip.Content from remaining open when - hovering. Disabling this has accessibility consequences. - - ), - }, - ]} -/> - -### Root - -Contains all the parts of a tooltip. - - - The open state of the tooltip when it is initially rendered. Use when - you do not need to control its open state. - - ), - }, - { - name: 'open', - type: 'boolean', - description: ( - - The controlled open state of the tooltip. Must be used in conjunction - with onOpenChange. - - ), - }, - { - name: 'onOpenChange', - type: '(open: boolean) => void', - typeSimple: 'function', - description: ( - - Event handler called when the open state of the tooltip changes. - - ), - }, - { - name: 'delayDuration', - type: 'number', - default: 700, - description: - 'Override the duration given to the `Provider` to customise the open delay for a specific tooltip.', - }, - { - name: 'disableHoverableContent', - type: 'boolean', - default: false, - description: ( - - Prevents Tooltip.Content from remaining open when - hovering. Disabling this has accessibility consequences. Inherits from{' '} - Tooltip.Provider. - - ), - }, - ]} -/> - -### Trigger - -The button that toggles the tooltip. By default, the `Tooltip.Content` will position itself against the trigger. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - ]} -/> - - - -### Portal - -When used, portals the content part into the `body`. - - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. If used on this - part, it will be inherited by Tooltip.Content. - - ), - }, - { - name: 'container', - type: 'HTMLElement', - default: 'document.body', - description: 'Specify a container element to portal the content into.', - }, - ]} -/> - -### Content - -The component that pops out when the tooltip is open. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'aria-label', - type: 'string', - description: ( - - By default, screenreaders will announce the content inside the - component. If this is not descriptive enough, or you have content that - cannot be announced, use aria-label as a more descriptive - label. - - ), - }, - { - name: 'onEscapeKeyDown', - type: '(event: KeyboardEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when the escape key is down. It can be prevented - by calling event.preventDefault. - - ), - }, - { - name: 'onPointerDownOutside', - type: '(event: PointerDownOutsideEvent) => void', - typeSimple: 'function', - description: ( - - Event handler called when a pointer event occurs outside the bounds of - the component. It can be prevented by calling{' '} - event.preventDefault. - - ), - }, - { - name: 'forceMount', - type: 'boolean', - description: ( - - Used to force mounting when more control is needed. Useful when - controlling animation with React animation libraries. It inherits from{' '} - Tooltip.Portal. - - ), - }, - { - name: 'side', - type: '"top" | "right" | "bottom" | "left"', - typeSimple: 'enum', - default: '"top"', - description: ( - - The preferred side of the trigger to render against when open. Will be - reversed when collisions occur and avoidCollisions is - enabled. - - ), - }, - { - name: 'sideOffset', - type: 'number', - default: '0', - description: ( - - The distance in pixels from the trigger. - - ), - }, - { - name: 'align', - type: '"start" | "center" | "end"', - typeSimple: 'enum', - default: '"center"', - description: ( - - The preferred alignment against the trigger. May change when - collisions occur. - - ), - }, - { - name: 'alignOffset', - type: 'number', - default: '0', - description: ( - - An offset in pixels from the "start" or{' '} - "end" alignment options. - - ), - }, - { - name: 'avoidCollisions', - type: 'boolean', - default: 'true', - description: ( - - When true, overrides the side and - align preferences to prevent collisions with boundary edges. - - ), - }, - { - name: 'collisionBoundary', - type: 'Element | null | Array', - typeSimple: 'Boundary', - default: '[]', - description: ( - - The element used as the collision boundary. By default this is the - viewport, though you can provide additional element(s) to be included - in this check. - - ), - }, - { - name: 'collisionPadding', - type: 'number | Partial>', - typeSimple: 'number | Padding', - default: '0', - description: ( - - The distance in pixels from the boundary edges where collision - detection should occur. Accepts a number (same for all sides), or a - partial padding object, for example: {`{ top: 20, left: 20 }`} - . - - ), - }, - { - name: 'arrowPadding', - type: 'number', - default: '0', - description: ( - - The padding between the arrow and the edges of the content. If your - content has border-radius, this will prevent it from - overflowing the corners. - - ), - }, - { - name: 'sticky', - type: '"partial" | "always"', - typeSimple: 'enum', - default: '"partial"', - description: ( - - The sticky behavior on the align axis. "partial" will - keep the content in the boundary as long as the trigger is at least - partially in the boundary whilst "always" will keep the - content in the boundary regardless. - - ), - }, - { - name: 'hideWhenDetached', - type: 'boolean', - default: 'false', - description: ( - - Whether to hide the content when the trigger becomes fully occluded. - - ), - }, - ]} -/> - - - - - The transform-origin computed from the content and arrow - positions/offsets - - ), - }, - { - cssVariable: '--radix-tooltip-content-available-width', - description: ( - <>The remaining width between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-tooltip-content-available-height', - description: ( - <>The remaining height between the trigger and the boundary edge - ), - }, - { - cssVariable: '--radix-tooltip-trigger-width', - description: <>The width of the trigger, - }, - { - cssVariable: '--radix-tooltip-trigger-height', - description: <>The height of the trigger, - }, - ]} -/> - -### Arrow - -An optional arrow element to render alongside the tooltip. This can be used to help visually link the trigger with the `Tooltip.Content`. Must be rendered inside `Tooltip.Content`. - - - Change the default rendered element for the one passed as a child, - merging their props and behavior. -
-
- Read our Composition guide for more - details. - - ), - }, - { - name: 'width', - type: 'number', - default: 10, - description: The width of the arrow in pixels., - }, - { - name: 'height', - type: 'number', - default: 5, - description: The height of the arrow in pixels., - }, - ]} -/> - -## Examples - -### Configure globally - -Use the `Provider` to control `delayDuration` and `skipDelayDuration` globally. - -```jsx line=4 -import * as Tooltip from '@radix-ui/react-tooltip'; - -export default () => ( - - - - - - - - - - -); -``` - -### Show instantly - -Use the `delayDuration` prop to control the time it takes for the tooltip to open. - -```jsx line=4 -import * as Tooltip from '@radix-ui/react-tooltip'; - -export default () => ( - - - - -); -``` - -### Displaying a tooltip from a disabled button - -Since disabled buttons don't fire events, you need to: - -- Render the `Trigger` as `span`. -- Ensure the `button` has no `pointerEvents`. - -```jsx line=5-11 -import * as Tooltip from '@radix-ui/react-tooltip'; - -export default () => ( - - - - - - - - -); -``` - -### Constrain the content size - -You may want to constrain the width of the content so that it matches the trigger width. You may also want to constrain its height to not exceed the viewport. - -We expose several CSS custom properties such as `--radix-tooltip-trigger-width` and `--radix-tooltip-content-available-height` to support this. Use them to constrain the content dimensions. - -```jsx line=9 -// index.jsx -import * as Tooltip from '@radix-ui/react-tooltip'; -import './styles.css'; - -export default () => ( - - - - - … - - - -); -``` - -```css -/* styles.css */ -.TooltipContent { - width: var(__--radix-tooltip-trigger-width__); - max-height: var(__--radix-tooltip-content-available-height__); -} -``` - -### Origin-aware animations - -We expose a CSS custom property `--radix-tooltip-content-transform-origin`. Use it to animate the content from its computed origin based on `side`, `sideOffset`, `align`, `alignOffset` and any collisions. - -```jsx line=8 -// index.jsx -import * as Tooltip from '@radix-ui/react-tooltip'; -import './styles.css'; - -export default () => ( - - - - -); -``` - -```css line=3-4 -/* styles.css */ -.TooltipContent { - transform-origin: var(--radix-tooltip-content-transform-origin); - animation: scaleIn 0.5s ease-out; -} - -@keyframes scaleIn { - from { - opacity: 0; - transform: scale(0); - } - to { - opacity: 1; - transform: scale(1); - } -} -``` - -### Collision-aware animations - -We expose `data-side` and `data-align` attributes. Their values will change at runtime to reflect collisions. Use them to create collision and direction-aware animations. - -```jsx line=8 -// index.jsx -import * as Tooltip from '@radix-ui/react-tooltip'; -import './styles.css'; - -export default () => ( - - - - -); -``` - -```css line=6,9 -/* styles.css */ -.TooltipContent { - animation-duration: 0.6s; - animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); -} -.TooltipContent[data-side='top'] { - animation-name: slideUp; -} -.TooltipContent[data-side='bottom'] { - animation-name: slideDown; -} - -@keyframes slideDown { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes slideUp { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -``` - -## Accessibility - -### Keyboard Interactions - - - -## Custom APIs - -Create your own API by abstracting the primitive parts into your own component. - -### Abstract parts and introduce a content prop - -This example abstracts all of the `Tooltip` parts and introduces a new `content` prop. - -#### Usage - -```jsx -import { Tooltip } from './your-tooltip'; - -export default () => ( - - - -); -``` - -#### Implementation - -Use the [`asChild` prop](/docs/primitives/guides/composition) to convert the trigger part into a slottable area. It will replace the trigger with the child that gets passed to it. - -```jsx line=8-10 -// your-tooltip.jsx -import React from 'react'; -import * as TooltipPrimitive from '@radix-ui/react-tooltip'; - -export function Tooltip({ - children, - content, - open, - defaultOpen, - onOpenChange, - ...props -}) { - return ( - - - {children} - - - {content} - - - - ); -} -``` \ No newline at end of file diff --git a/docs/nuxt.config.ts b/docs/nuxt.config.ts deleted file mode 100755 index dd1ec7692..000000000 --- a/docs/nuxt.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -export default defineNuxtConfig({ - // https://github.com/nuxt-themes/docus - extends: '@nuxt-themes/docus', - - modules: [ - // https://github.com/nuxt-modules/plausible - '@nuxtjs/plausible', - // https://github.com/nuxt/devtools - '@nuxt/devtools' - ] -}) diff --git a/docs/package-lock.json b/docs/package-lock.json deleted file mode 100644 index 829270d0c..000000000 --- a/docs/package-lock.json +++ /dev/null @@ -1,16313 +0,0 @@ -{ - "name": "docus-starter", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "docus-starter", - "version": "0.1.0", - "devDependencies": { - "@nuxt-themes/docus": "^1.12.1", - "@nuxt/devtools": "^0.5.5", - "@nuxt/eslint-config": "^0.1.1", - "@nuxtjs/plausible": "^0.2.1", - "@types/node": "^20.2.5", - "eslint": "^8.42.0", - "nuxt": "^3.5.3" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@antfu/utils": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.4.tgz", - "integrity": "sha512-qe8Nmh9rYI/HIspLSTwtbMFPj6dISG6+dJnOguTlPNXtCvS2uezdxscVBb7/3DrmNbQK49TDqpkSQ1chbRGdpQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", - "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", - "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helpers": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", - "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", - "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", - "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", - "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz", - "integrity": "sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/standalone": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.22.5.tgz", - "integrity": "sha512-6Lwhzral4YDEbIM3dBC8/w0BMDvOosGBGaJWSORLkerx8byawkmwwzXKUB0jGlI1Zp90+cK2uyTl62UPtLbUjQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@cloudflare/kv-asset-handler": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.0.tgz", - "integrity": "sha512-9CB/MKf/wdvbfkUdfrj+OkEwZ5b7rws0eogJ4293h+7b6KX5toPwym+VQKmILafNB9YiehqY0DlNrDcDhdWHSQ==", - "dev": true, - "dependencies": { - "mime": "^3.0.0" - } - }, - "node_modules/@csstools/cascade-layer-name-parser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.2.tgz", - "integrity": "sha512-xm7Mgwej/wBfLoK0K5LfntmPJzoULayl1XZY9JYgQgT29JiqNw++sLnx95u5y9zCihblzkyaRYJrsRMhIBzRdg==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.1.1", - "@csstools/css-tokenizer": "^2.1.1" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.2.0.tgz", - "integrity": "sha512-9BoQ/jSrPq4vv3b9jjLW+PNNv56KlDH5JMx5yASSNrCtvq70FCNZUjXRvbCeR9hYj9ZyhURtqpU/RFIgg6kiOw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^2.1.1" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", - "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - }, - "node_modules/@esbuild-kit/cjs-loader": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@esbuild-kit/cjs-loader/-/cjs-loader-2.4.2.tgz", - "integrity": "sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==", - "dev": true, - "dependencies": { - "@esbuild-kit/core-utils": "^3.0.0", - "get-tsconfig": "^4.4.0" - } - }, - "node_modules/@esbuild-kit/core-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@esbuild-kit/core-utils/-/core-utils-3.1.0.tgz", - "integrity": "sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==", - "dev": true, - "dependencies": { - "esbuild": "~0.17.6", - "source-map-support": "^0.5.21" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" - } - }, - "node_modules/@esbuild-kit/esm-loader": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/@esbuild-kit/esm-loader/-/esm-loader-2.5.5.tgz", - "integrity": "sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==", - "dev": true, - "dependencies": { - "@esbuild-kit/core-utils": "^3.0.0", - "get-tsconfig": "^4.4.0" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.7.tgz", - "integrity": "sha512-nDQ7AC5WVKOqxaip/E5YbaRgnilBMsoGKjoGLCeCOYNePaBCBDwJsLfa2fn3FEtktiLaAF990W592avsHjJ/Vg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.7.tgz", - "integrity": "sha512-o0VVztxJPkfDYbaU1tA1G1iwKiBh6Zt3bX5OdHDoITMFdRg+Mgdt3nHXMEtNlIjYA/Xn6hmlOYDHjJfQUduPuw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.7.tgz", - "integrity": "sha512-ga8Dtpb01GorCi1dk3jEwDk3AK/3F+cR5P+//Tl0ERL2K2pK/J1f3t8hcJ+RRt3UYBV/uTL9GEnx7touX0KRPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.7.tgz", - "integrity": "sha512-FVDOdfgyGOOISpd0b+UtA6YNbu5+RzZu7kDztjVsA/iZhGnyxbCR/vZ+B2j5yxbMZ9j3iz5uFiHIq1sl6nrZ0Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.7.tgz", - "integrity": "sha512-w7aeD1UjDFXqyrZQLBIPYGmLR+gJsl+7QSwmSz+nVrCZOB7cyWEkIjCF8s4inUD3ja3WtKUIqzX5S4qDnU5q7Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.7.tgz", - "integrity": "sha512-wKyySDdoKVOPn9eDci/b3eP3EJVAVXC3b2CiaHphhCKfh4n5pWLwj7Ue96anK1HnpcZ0Uti8Sw9xq3Im0earHA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.7.tgz", - "integrity": "sha512-rbfjbgSvzWRjQMKIntogK1d2oIAiA/ZVayXfK1WjcIIMQYLg74sAoT8CZBj30+bwn13YR0t6lgIxA1mJaS2Lhw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.7.tgz", - "integrity": "sha512-GpUBqqJnQ+7qdb7NqKNVj7TgD2JnLrEdzPtatPow77Me/EQ01GE1tHKZLePqhf5thdLDb5Se2Kcf4D9WTbSjmw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.7.tgz", - "integrity": "sha512-cwfxKYroaD5BZ42NsfxdVU1issD2NxcuJHlCNsN5LtWq+kZMpwmIVDCJxKlgLIG7zH/4yq8lTuZJurxq058GsA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.7.tgz", - "integrity": "sha512-SsvsGStwbArBcB/XNh+2MvUtgOLp0CR6Hn1PBWcdApCuAaMibHCDyzHS06+u/YOD1UpeXFHJZphix61HeVMH/w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.7.tgz", - "integrity": "sha512-WOqQ0eaWGE/e9vmbxFT2exbWuXxHuG8ld0fN7oX5f0v7W6oveUIF4DLJYVae93t1+Icv5R0NBo8wv/o4hEvxBQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.7.tgz", - "integrity": "sha512-/dKQ3OLr2Tmj0kuf4ZJioD+qnADUEJSBaiuDbk8v5602HnNNBSGHPrEB6S8PSb8y8jWsX9MMnxqk5KpLTf86OQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.7.tgz", - "integrity": "sha512-x/k1+daIqiGJt0Yhr5llFJ/zkRg1XAqcS2ntAYzS3pHogO8oIyc+LjsINgVyFCeFMFUZ9Ae9W5z2Ib05bMum3g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.7.tgz", - "integrity": "sha512-LegTDzK9gL/sTkiZUGYLigTISwppZJvQL3MRmFgXgHrj3IzdWkPgMwEtOItK3YiFzhBSSNyKA0mSKEg4UuK8JQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.7.tgz", - "integrity": "sha512-fjBl45O8ivc3Nl14hdGpbHoVtdHnYGsLpwnlv2rNyb5NOsgY3Y8EhVe/fqR9ndHgO4eL68knKxkrRveEJq+v1g==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.7.tgz", - "integrity": "sha512-apYLJsg3wd3hW8nEt7H++8c8rTDvwXxX7h7YeI89g1RDPCT2QSXTO/xT1BCvFa/BFFoau+yvepQg2o5556FIWQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.7.tgz", - "integrity": "sha512-f82sUnrzdoW4MiiCDn1G3RSsPH8+no+okDhkHgGTGa+5F5wZCyxdXxzR6ctsiimvyPn9FIu9Zs+MesVsBRwyTw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.7.tgz", - "integrity": "sha512-1TNDfpFYhIloHeqSRbJFjHFMYtTJWgqI2+S9uCLVCWrADLl5tCe8vQKDfkM7Afz/lZyqi6qEX/Eg2KA5S7FcNQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.7.tgz", - "integrity": "sha512-lBhsHaM6EYCmzQCj+xeFev+dgqTgpSRqF7qXrxp5V4waFuidTBbWgqSXY5rsLRNLOyMMCh1cA+RqF8UL30oOJQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.7.tgz", - "integrity": "sha512-p9ipv7rPKitXAAeufg5BzmyYZHZtFfrLGUX15+AxpTQqSZDAZd2wIusaOW5oONTf8RB53ujIqQw7W0QnZMuiUw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.7.tgz", - "integrity": "sha512-WmNxuE+j1wUT2rK+e1Oakx3zobS1rPpQudPytGM4nxXEGv0gpXEvnZnrykRwriNFbGVCwFJoE4txayjW76LsCw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.7.tgz", - "integrity": "sha512-6RENfAwwL6dxQk/V1PxO/ejYRiOUVUaHi99hP3Dso/38jfNKFzU6YSSR/haJGNV/2wAHIgBMROQodna0IejAuA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.2", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", - "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@iconify/types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", - "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", - "dev": true - }, - "node_modules/@iconify/vue": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-4.1.1.tgz", - "integrity": "sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==", - "dev": true, - "dependencies": { - "@iconify/types": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/cyberalien" - }, - "peerDependencies": { - "vue": ">=3" - } - }, - "node_modules/@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", - "dev": true - }, - "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/@isaacs/cliui/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/@isaacs/cliui/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/@isaacs/cliui/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/@isaacs/cliui/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/@isaacs/cliui/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/@isaacs/cliui/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/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", - "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "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==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", - "dev": true, - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@netlify/functions": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@netlify/functions/-/functions-1.6.0.tgz", - "integrity": "sha512-6G92AlcpFrQG72XU8YH8pg94eDnq7+Q0YJhb8x4qNpdGsvuzvrfHWBmqFGp/Yshmv4wex9lpsTRZOocdrA2erQ==", - "dev": true, - "dependencies": { - "is-promise": "^4.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", - "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", - "dev": true, - "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", - "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", - "dev": true, - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "lib/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", - "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", - "dev": true, - "dependencies": { - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", - "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", - "dev": true, - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@nuxt-themes/docus": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/@nuxt-themes/docus/-/docus-1.12.3.tgz", - "integrity": "sha512-qIdBUnwm/5OEhKtFJ3of+C5HEZzOU/wFx9CuY+Y3jdZVVJcDGjryLY+I1R/N9U+KuS32QevzAY9vJrdJNf8u9A==", - "dev": true, - "dependencies": { - "@nuxt-themes/elements": "^0.9.4", - "@nuxt-themes/tokens": "^1.9.1", - "@nuxt-themes/typography": "^0.11.0", - "@nuxt/content": "^2.6.0", - "@nuxthq/studio": "^0.13.2", - "@vueuse/nuxt": "^10.1.2" - } - }, - "node_modules/@nuxt-themes/elements": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@nuxt-themes/elements/-/elements-0.9.4.tgz", - "integrity": "sha512-d7XgHc/gjMpre26+N76APL1vlnQHiZTOk61GC4I/ZYQuioSfoKuoIP+Ixrr0QgM22j4MRBtAaBnDAg1wRJrDCQ==", - "dev": true, - "dependencies": { - "@nuxt-themes/tokens": "^1.9.1", - "@vueuse/core": "^9.13.0" - } - }, - "node_modules/@nuxt-themes/tokens": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@nuxt-themes/tokens/-/tokens-1.9.1.tgz", - "integrity": "sha512-5C28kfRvKnTX8Tux+xwyaf+2pxKgQ53dC9l6C33sZwRRyfUJulGDZCFjKbuNq4iqVwdGvkFSQBYBYjFAv6t75g==", - "dev": true, - "dependencies": { - "@nuxtjs/color-mode": "^3.2.0", - "@vueuse/core": "^9.13.0", - "pinceau": "^0.18.8" - } - }, - "node_modules/@nuxt-themes/typography": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@nuxt-themes/typography/-/typography-0.11.0.tgz", - "integrity": "sha512-TqyvD7sDWnqGmL00VtuI7JdmNTPL5/g957HCAWNzcNp+S20uJjW/FXSdkM76d4JSVDHvBqw7Wer3RsqVhqvA4w==", - "dev": true, - "dependencies": { - "@nuxtjs/color-mode": "^3.2.0", - "nuxt-config-schema": "^0.4.5", - "nuxt-icon": "^0.3.3", - "pinceau": "^0.18.8", - "ufo": "^1.1.1" - } - }, - "node_modules/@nuxt/content": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@nuxt/content/-/content-2.7.0.tgz", - "integrity": "sha512-3vv3Rbpf6NH7RRuy7PLVmpQCt8C9DgV4aTWLmTCdnWpmlNsX+0wQT8bA/ypqmh8zrJ6BXWztFM35WVESkNvDvQ==", - "dev": true, - "dependencies": { - "@nuxt/kit": "^3.5.3", - "consola": "^3.1.0", - "defu": "^6.1.2", - "destr": "^1.2.2", - "detab": "^3.0.2", - "json5": "^2.2.3", - "knitwork": "^1.0.0", - "listhen": "^1.0.4", - "mdast-util-to-hast": "^12.3.0", - "mdurl": "^1.0.1", - "ohash": "^1.1.2", - "pathe": "^1.1.1", - "property-information": "^6.2.0", - "rehype-external-links": "^2.1.0", - "rehype-raw": "^6.1.1", - "rehype-slug": "^5.1.0", - "rehype-sort-attribute-values": "^4.0.0", - "rehype-sort-attributes": "^4.0.0", - "remark-emoji": "3.1.1", - "remark-gfm": "^3.0.1", - "remark-mdc": "^1.1.3", - "remark-parse": "^10.0.2", - "remark-rehype": "^10.1.0", - "remark-squeeze-paragraphs": "^5.0.1", - "scule": "^1.0.0", - "shiki-es": "^0.2.0", - "slugify": "^1.6.6", - "socket.io-client": "^4.6.2", - "ufo": "^1.1.2", - "unified": "^10.1.2", - "unist-builder": "^3.0.1", - "unist-util-position": "^4.0.4", - "unist-util-stringify-position": "^3.0.3", - "unist-util-visit": "^4.1.2", - "unstorage": "^1.6.1", - "ws": "^8.13.0" - } - }, - "node_modules/@nuxt/devalue": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nuxt/devalue/-/devalue-2.0.2.tgz", - "integrity": "sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==", - "dev": true - }, - "node_modules/@nuxt/devtools": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@nuxt/devtools/-/devtools-0.5.5.tgz", - "integrity": "sha512-YJDAsjfyvPV7WVyirfIzrNi37qqLJX61ZkOMN6hplyknky7kBapcG3VNq8WfVqY2Ce02sqF4bsEGlpG/F64y0g==", - "dev": true, - "dependencies": { - "@nuxt/devtools-kit": "0.5.5", - "@nuxt/devtools-wizard": "0.5.5", - "@nuxt/kit": "^3.5.1", - "birpc": "^0.2.11", - "consola": "^3.1.0", - "execa": "^7.1.1", - "fast-folder-size": "^1.7.1", - "fast-glob": "^3.2.12", - "get-port-please": "^3.0.1", - "global-dirs": "^3.0.1", - "h3": "^1.6.6", - "hookable": "^5.5.3", - "image-meta": "^0.1.1", - "is-installed-globally": "^0.4.0", - "launch-editor": "^2.6.0", - "local-pkg": "^0.4.3", - "magicast": "^0.2.8", - "nypm": "^0.2.0", - "pacote": "^15.2.0", - "pathe": "^1.1.0", - "perfect-debounce": "^1.0.0", - "picocolors": "^1.0.0", - "pkg-types": "^1.0.3", - "rc9": "^2.1.0", - "semver": "^7.5.1", - "sirv": "^2.0.3", - "unimport": "^3.0.7", - "vite-plugin-inspect": "^0.7.28", - "vite-plugin-vue-inspector": "^3.4.2", - "wait-on": "^7.0.1", - "which": "^3.0.1", - "ws": "^8.13.0" - }, - "bin": { - "devtools": "cli.mjs" - }, - "peerDependencies": { - "nuxt": "^3.5.1", - "vite": "*" - } - }, - "node_modules/@nuxt/devtools-kit": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@nuxt/devtools-kit/-/devtools-kit-0.5.5.tgz", - "integrity": "sha512-wyoNtH4QxTAWJPL/LSKYNkiIh/w4lmyRnMe7I22BFWHYOCKe9Oz0E2pPkKvWyM1oFR1Ysq2n1yVtTvUx6UQ/Bw==", - "dev": true, - "dependencies": { - "@nuxt/kit": "^3.5.1", - "@nuxt/schema": "^3.5.1", - "execa": "^7.1.1" - }, - "peerDependencies": { - "nuxt": "^3.5.1", - "vite": "*" - } - }, - "node_modules/@nuxt/devtools-wizard": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@nuxt/devtools-wizard/-/devtools-wizard-0.5.5.tgz", - "integrity": "sha512-jAtyecgP2Yp8zg+Q1sg5p+lKt4n9R78PF1DOCxNax0IqiAH8CjeDUPtDRNBrGU+iSocSFIFU2v0S5/iDbABouA==", - "dev": true, - "dependencies": { - "consola": "^3.1.0", - "diff": "^5.1.0", - "execa": "^7.1.1", - "global-dirs": "^3.0.1", - "magicast": "^0.2.8", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "pkg-types": "^1.0.3", - "prompts": "^2.4.2", - "rc9": "^2.1.0", - "semver": "^7.5.1" - }, - "bin": { - "devtools-wizard": "cli.mjs" - } - }, - "node_modules/@nuxt/eslint-config": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nuxt/eslint-config/-/eslint-config-0.1.1.tgz", - "integrity": "sha512-znm1xlbhldUubB2XGx6Ca5uarwlIieKf0o8CtxtF6eEauDbpa3T2p3JnTcdguMW2nj1YPneoGmhshANfOlghiQ==", - "dev": true, - "dependencies": { - "@rushstack/eslint-patch": "^1.2.0", - "@typescript-eslint/eslint-plugin": "^5.45.1", - "@typescript-eslint/parser": "^5.45.1", - "eslint-plugin-vue": "^9.8.0", - "typescript": "^4.9.3" - }, - "peerDependencies": { - "eslint": "^8.29.0" - } - }, - "node_modules/@nuxt/kit": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.6.0.tgz", - "integrity": "sha512-rqQYyWlhE42oWRQNR58KU1JYhoWryN78x8eYzFTHgalfpMjtPqZv2j9K4+hFRk0XLRUKnut4tE/3+UYyZ7ybVw==", - "dev": true, - "dependencies": { - "@nuxt/schema": "3.6.0", - "c12": "^1.4.2", - "consola": "^3.1.0", - "defu": "^6.1.2", - "globby": "^13.2.0", - "hash-sum": "^2.0.0", - "ignore": "^5.2.4", - "jiti": "^1.18.2", - "knitwork": "^1.0.0", - "mlly": "^1.4.0", - "pathe": "^1.1.1", - "pkg-types": "^1.0.3", - "scule": "^1.0.0", - "semver": "^7.5.3", - "unctx": "^2.3.1", - "unimport": "^3.0.8", - "untyped": "^1.3.2" - }, - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/@nuxt/schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.6.0.tgz", - "integrity": "sha512-6/nq+W77JODDfhMBZTi7HCD3hT5oHegsasAzUnDmvwWuY1io7BXX9x2mDhL8E3LhVzQuN5vhi3GBgwHwCfdKEA==", - "dev": true, - "dependencies": { - "defu": "^6.1.2", - "hookable": "^5.5.3", - "pathe": "^1.1.1", - "pkg-types": "^1.0.3", - "postcss-import-resolver": "^2.0.0", - "std-env": "^3.3.3", - "ufo": "^1.1.2", - "unimport": "^3.0.8", - "untyped": "^1.3.2" - }, - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/@nuxt/telemetry": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@nuxt/telemetry/-/telemetry-2.2.0.tgz", - "integrity": "sha512-Z2UmPkBy5WjxvHKuUcl1X6vKWnIyWSP+9UGde1F+MzzZxYgAQybFud1uL2B3KCowxZdoqT1hd2WklV7EtyCwrQ==", - "dev": true, - "dependencies": { - "@nuxt/kit": "^3.3.3", - "chalk": "^5.2.0", - "ci-info": "^3.8.0", - "consola": "^3.0.1", - "create-require": "^1.1.1", - "defu": "^6.1.2", - "destr": "^1.2.2", - "dotenv": "^16.0.3", - "fs-extra": "^10.1.0", - "git-url-parse": "^13.1.0", - "inquirer": "^9.1.5", - "is-docker": "^3.0.0", - "jiti": "^1.18.2", - "mri": "^1.2.0", - "nanoid": "^4.0.2", - "node-fetch": "^3.3.1", - "ofetch": "^1.0.1", - "parse-git-config": "^3.0.0", - "rc9": "^2.1.0", - "std-env": "^3.3.2" - }, - "bin": { - "nuxt-telemetry": "bin/nuxt-telemetry.mjs" - } - }, - "node_modules/@nuxt/telemetry/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@nuxt/telemetry/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nuxt/telemetry/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@nuxt/ui-templates": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@nuxt/ui-templates/-/ui-templates-1.2.0.tgz", - "integrity": "sha512-MSZza7dxccNb/p7nuzGF8/m4POaFpHzVhNdR7f4xahOpH7Ja02lFeYR+rHtoHIJC0yym4qriqv0mQ+Qf/R61bQ==", - "dev": true - }, - "node_modules/@nuxt/vite-builder": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@nuxt/vite-builder/-/vite-builder-3.6.0.tgz", - "integrity": "sha512-HIpGZoZYgZQ9Xf3jeiUQ+8rxlEPDTxr/hhyIdhr+x6SLc8JzrDmwH1QX4M+VsomRkg8qKtJLRhxfEHWMsrWzCA==", - "dev": true, - "dependencies": { - "@nuxt/kit": "3.6.0", - "@rollup/plugin-replace": "^5.0.2", - "@vitejs/plugin-vue": "^4.2.3", - "@vitejs/plugin-vue-jsx": "^3.0.1", - "autoprefixer": "^10.4.14", - "clear": "^0.1.0", - "consola": "^3.1.0", - "cssnano": "^6.0.1", - "defu": "^6.1.2", - "esbuild": "^0.18.6", - "escape-string-regexp": "^5.0.0", - "estree-walker": "^3.0.3", - "externality": "^1.0.2", - "fs-extra": "^11.1.1", - "get-port-please": "^3.0.1", - "h3": "^1.7.0", - "knitwork": "^1.0.0", - "magic-string": "^0.30.0", - "mlly": "^1.4.0", - "ohash": "^1.1.2", - "pathe": "^1.1.1", - "perfect-debounce": "^1.0.0", - "pkg-types": "^1.0.3", - "postcss": "^8.4.24", - "postcss-import": "^15.1.0", - "postcss-url": "^10.1.3", - "rollup-plugin-visualizer": "^5.9.2", - "std-env": "^3.3.3", - "strip-literal": "^1.0.1", - "ufo": "^1.1.2", - "unplugin": "^1.3.1", - "vite": "~4.3.9", - "vite-node": "^0.32.2", - "vite-plugin-checker": "^0.6.1", - "vue-bundle-renderer": "^1.0.3" - }, - "engines": { - "node": "^14.18.0 || >=16.10.0" - }, - "peerDependencies": { - "vue": "^3.3.4" - } - }, - "node_modules/@nuxt/vite-builder/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@nuxthq/studio": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@nuxthq/studio/-/studio-0.13.2.tgz", - "integrity": "sha512-lSjMDSq0yxX3I3O8EVJWoU+kA9iEwUuTS1sZfyha625FhiU2qDIGGkc7gEeA1ubBNeZmJMXTl2hIauxOVTSfgQ==", - "dev": true, - "dependencies": { - "@nuxt/kit": "^3.4.3", - "defu": "^6.1.2", - "nuxt-component-meta": "^0.5.1", - "nuxt-config-schema": "^0.4.6", - "socket.io-client": "^4.6.1", - "ufo": "^1.1.2" - } - }, - "node_modules/@nuxtjs/color-mode": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@nuxtjs/color-mode/-/color-mode-3.3.0.tgz", - "integrity": "sha512-YVFNmTISke1eL7uk5p9I1suOsM222FxrqKoF13HS4x94OKCWwPLLeTCEzHZ8orzKnaFUbCXpuL4pRv8gvW+0Kw==", - "dev": true, - "dependencies": { - "@nuxt/kit": "^3.5.3", - "lodash.template": "^4.5.0", - "pathe": "^1.1.1" - } - }, - "node_modules/@nuxtjs/plausible": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@nuxtjs/plausible/-/plausible-0.2.1.tgz", - "integrity": "sha512-1AyV9woFeZKBhwYy05S7NBk4jeAXzWcF/SIK/S/GZ8C86G8x7f2hR2eJi9FRRQYGwHutBx2guU4tZAW4J71Azg==", - "dev": true, - "dependencies": { - "@nuxt/kit": "^3.4.3", - "defu": "^6.1.2", - "pathe": "^1.1.0", - "plausible-tracker": "^0.3.8" - } - }, - "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/@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", - "dev": true - }, - "node_modules/@rollup/plugin-alias": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.0.0.tgz", - "integrity": "sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==", - "dev": true, - "dependencies": { - "slash": "^4.0.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.2.tgz", - "integrity": "sha512-NGTwaJxIO0klMs+WSFFtBP7b9TdTJ3K76HZkewT8/+yHzMiUGVQgaPtLQxNVYIgT5F7lxkEyVID+yS3K7bhCow==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "glob": "^8.0.3", - "is-reference": "1.2.1", - "magic-string": "^0.27.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs/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==", - "dev": true - }, - "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@rollup/plugin-inject": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz", - "integrity": "sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "estree-walker": "^2.0.2", - "magic-string": "^0.27.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-inject/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==", - "dev": true - }, - "node_modules/@rollup/plugin-inject/node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@rollup/plugin-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", - "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.1.0.tgz", - "integrity": "sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-replace": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz", - "integrity": "sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "magic-string": "^0.27.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-replace/node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@rollup/plugin-terser": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.3.tgz", - "integrity": "sha512-EF0oejTMtkyhrkwCdg0HJ0IpkcaVg1MMSf2olHb2Jp+1mnLM04OhjpJWGma4HobiDTF0WCyViWuvadyE9ch2XA==", - "dev": true, - "dependencies": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.x || ^3.x" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-wasm": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-wasm/-/plugin-wasm-6.1.3.tgz", - "integrity": "sha512-7ItTTeyauE6lwdDtQWceEHZ9+txbi4RRy0mYPFn9BW7rD7YdgBDu7HTHsLtHrRzJc313RM/1m6GKgV3np/aEaw==", - "dev": true, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils/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==", - "dev": true - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.3.2.tgz", - "integrity": "sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==", - "dev": true - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", - "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/tuf": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.0.tgz", - "integrity": "sha512-bLzi9GeZgMCvjJeLUIfs8LJYCxrPRA8IXQkzUtaFKKVPTz0mucRyqFcV2U20yg9K+kYAD0YSitzGfRZCFLjdHQ==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.1.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@tufjs/canonical-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", - "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", - "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", - "dev": true, - "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models/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/@tufjs/models/node_modules/minimatch": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@types/debug": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", - "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", - "dev": true, - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true - }, - "node_modules/@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "dev": true, - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/http-proxy": { - "version": "1.17.11", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", - "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true - }, - "node_modules/@types/mdast": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", - "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", - "dev": true, - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", - "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==", - "dev": true - }, - "node_modules/@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true - }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", - "dev": true - }, - "node_modules/@types/web-bluetooth": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", - "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.60.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.0.tgz", - "integrity": "sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.60.0", - "@typescript-eslint/type-utils": "5.60.0", - "@typescript-eslint/utils": "5.60.0", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.60.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.60.0.tgz", - "integrity": "sha512-jBONcBsDJ9UoTWrARkRRCgDz6wUggmH5RpQVlt7BimSwaTkTjwypGzKORXbR4/2Hqjk9hgwlon2rVQAjWNpkyQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.60.0", - "@typescript-eslint/types": "5.60.0", - "@typescript-eslint/typescript-estree": "5.60.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.60.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.60.0.tgz", - "integrity": "sha512-hakuzcxPwXi2ihf9WQu1BbRj1e/Pd8ZZwVTG9kfbxAMZstKz8/9OoexIwnmLzShtsdap5U/CoQGRCWlSuPbYxQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.60.0", - "@typescript-eslint/visitor-keys": "5.60.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.60.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.60.0.tgz", - "integrity": "sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.60.0", - "@typescript-eslint/utils": "5.60.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.60.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.0.tgz", - "integrity": "sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.60.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.0.tgz", - "integrity": "sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.60.0", - "@typescript-eslint/visitor-keys": "5.60.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.60.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.0.tgz", - "integrity": "sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.60.0", - "@typescript-eslint/types": "5.60.0", - "@typescript-eslint/typescript-estree": "5.60.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.60.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.0.tgz", - "integrity": "sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.60.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@unhead/dom": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.1.27.tgz", - "integrity": "sha512-sUrzpKIVvFp8TFx1mgp5t0k5ts1+KmgjMgRRuvRTZMBMVeGQRLSuL3uo34iwuFmKxeI6BXT5lVBk5H02c1XdGg==", - "dev": true, - "dependencies": { - "@unhead/schema": "1.1.27", - "@unhead/shared": "1.1.27" - }, - "funding": { - "url": "https://github.com/sponsors/harlan-zw" - } - }, - "node_modules/@unhead/schema": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.1.27.tgz", - "integrity": "sha512-S+xhPoBxBXDrsW9ltcF9Cv3cntMbSx+dfSmE7RNyDhogqHd3+lDEV2dnQpHKWTGjujwwMCALV5SADunAn785bw==", - "dev": true, - "dependencies": { - "hookable": "^5.5.3", - "zhead": "^2.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/harlan-zw" - } - }, - "node_modules/@unhead/shared": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.1.27.tgz", - "integrity": "sha512-ElZ5WcMnhVlg44OAwTNq4XBkNePcL/BHZk7WKFcqpeGTJrEvSfs40lGJoo4sMsgDAd+XQdhJDd4dJu48jQB3kg==", - "dev": true, - "dependencies": { - "@unhead/schema": "1.1.27" - }, - "funding": { - "url": "https://github.com/sponsors/harlan-zw" - } - }, - "node_modules/@unhead/ssr": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.1.27.tgz", - "integrity": "sha512-lKXH2ofs8L+yAbHgkRP17bIQ45XaG2RSl5UCMsSIW2Ev4kiTGPbbcQKOBgsi2uEllgdMk5peKDyaWD9xheYlEA==", - "dev": true, - "dependencies": { - "@unhead/schema": "1.1.27", - "@unhead/shared": "1.1.27" - }, - "funding": { - "url": "https://github.com/sponsors/harlan-zw" - } - }, - "node_modules/@unhead/vue": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.1.27.tgz", - "integrity": "sha512-ibe7/QW4ZtyCI/et/fI3CnwC+oxqp+7LrhmuLUS93ib1Sl70D51dcAy9eAvh0MG7wWUyMUrf3T95MRifJo7uzA==", - "dev": true, - "dependencies": { - "@unhead/schema": "1.1.27", - "@unhead/shared": "1.1.27", - "hookable": "^5.5.3", - "unhead": "1.1.27" - }, - "funding": { - "url": "https://github.com/sponsors/harlan-zw" - }, - "peerDependencies": { - "vue": ">=2.7 || >=3" - } - }, - "node_modules/@unocss/reset": { - "version": "0.50.8", - "resolved": "https://registry.npmjs.org/@unocss/reset/-/reset-0.50.8.tgz", - "integrity": "sha512-2WoM6O9VyuHDPAnvCXr7LBJQ8ZRHDnuQAFsL1dWXp561Iq2l9whdNtPuMcozLGJGUUrFfVBXIrHY4sfxxScgWg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vercel/nft": { - "version": "0.22.6", - "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.22.6.tgz", - "integrity": "sha512-gTsFnnT4mGxodr4AUlW3/urY+8JKKB452LwF3m477RFUJTAaDmcz2JqFuInzvdybYIeyIv1sSONEJxsxnbQ5JQ==", - "dev": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.5", - "@rollup/pluginutils": "^4.0.0", - "acorn": "^8.6.0", - "async-sema": "^3.1.1", - "bindings": "^1.4.0", - "estree-walker": "2.0.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.2", - "node-gyp-build": "^4.2.2", - "resolve-from": "^5.0.0" - }, - "bin": { - "nft": "out/cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@vercel/nft/node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", - "dev": true, - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/@vercel/nft/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==", - "dev": true - }, - "node_modules/@vercel/nft/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vercel/nft/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/@vitejs/plugin-vue-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.0.1.tgz", - "integrity": "sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.20.7", - "@babel/plugin-transform-typescript": "^7.20.7", - "@vue/babel-plugin-jsx": "^1.1.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.0.0", - "vue": "^3.0.0" - } - }, - "node_modules/@volar/language-core": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.4.1.tgz", - "integrity": "sha512-EIY+Swv+TjsWpxOxujjMf1ZXqOjg9MT2VMXZ+1dKva0wD8W0L6EtptFFcCJdBbcKmGMFkr57Qzz9VNMWhs3jXQ==", - "dev": true, - "dependencies": { - "@volar/source-map": "1.4.1" - } - }, - "node_modules/@volar/source-map": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.4.1.tgz", - "integrity": "sha512-bZ46ad72dsbzuOWPUtJjBXkzSQzzSejuR3CT81+GvTEI2E994D8JPXzM3tl98zyCNnjgs4OkRyliImL1dvJ5BA==", - "dev": true, - "dependencies": { - "muggle-string": "^0.2.2" - } - }, - "node_modules/@volar/typescript": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.7.8.tgz", - "integrity": "sha512-NDcI5ZQcdr8kgxzMQrhSSWIM8Tl0MbMFrkvJPTjfm2rdAQZPFT8zv3LrEW9Fqh0e9z2YbCry7jr4a/GShBqeDA==", - "dev": true, - "dependencies": { - "@volar/language-core": "1.7.8" - } - }, - "node_modules/@volar/typescript/node_modules/@volar/language-core": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.7.8.tgz", - "integrity": "sha512-TPklg4c2e/f1xB/MGZEiQc3AWG+dH64ZfBlYjFB8nNaWJt4Z4k+IHBhmaP52APG+5PHFerwiWI9oF002RrRTPA==", - "dev": true, - "dependencies": { - "@volar/source-map": "1.7.8" - } - }, - "node_modules/@volar/typescript/node_modules/@volar/source-map": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.7.8.tgz", - "integrity": "sha512-g2dtC2kOghvfzMDWeODIo4HO1Ml4hxzPTZyAFDz+YhRF9HjZYJSCaWaVuPZ+z0kY+T2daOHYA10GdrWQ5q0teA==", - "dev": true, - "dependencies": { - "muggle-string": "^0.3.1" - } - }, - "node_modules/@volar/typescript/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/@volar/vue-language-core": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.6.5.tgz", - "integrity": "sha512-IF2b6hW4QAxfsLd5mePmLgtkXzNi+YnH6ltCd80gb7+cbdpFMjM1I+w+nSg2kfBTyfu+W8useCZvW89kPTBpzg==", - "dev": true, - "dependencies": { - "@volar/language-core": "1.4.1", - "@volar/source-map": "1.4.1", - "@vue/compiler-dom": "^3.3.0", - "@vue/compiler-sfc": "^3.3.0", - "@vue/reactivity": "^3.3.0", - "@vue/shared": "^3.3.0", - "minimatch": "^9.0.0", - "muggle-string": "^0.2.2", - "vue-template-compiler": "^2.7.14" - } - }, - "node_modules/@volar/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/@volar/vue-language-core/node_modules/minimatch": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vue-macros/common": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.4.0.tgz", - "integrity": "sha512-Wnpk6OVPYw7ZrrShOS7RZL5AINFbuQWfkNCVWVESSPY+8id75YOKGzMs4X5YcNayywdSGEvV7ntVJ2RQ+ez21A==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.4", - "@rollup/pluginutils": "^5.0.2", - "@vue/compiler-sfc": "^3.3.4", - "ast-kit": "^0.6.2", - "local-pkg": "^0.4.3", - "magic-string-ast": "^0.1.2" - }, - "engines": { - "node": ">=16.14.0" - }, - "peerDependencies": { - "vue": "^2.7.0 || ^3.2.25" - }, - "peerDependenciesMeta": { - "vue": { - "optional": true - } - } - }, - "node_modules/@vue/babel-helper-vue-transform-on": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", - "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", - "dev": true - }, - "node_modules/@vue/babel-plugin-jsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", - "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "@vue/babel-helper-vue-transform-on": "^1.0.2", - "camelcase": "^6.0.0", - "html-tags": "^3.1.0", - "svg-tags": "^1.0.0" - } - }, - "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==", - "dev": true, - "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-core/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==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true, - "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-sfc/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==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/@vue/language-core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.1.tgz", - "integrity": "sha512-pumv3k4J7P58hVh4YGRM9Qz3HaAr4TlFWM9bnVOkZ/2K9o2CK1lAP2y9Jw+Z0+mNL4F2uWQqnAPzj3seLyfpDA==", - "dev": true, - "dependencies": { - "@volar/language-core": "1.7.8", - "@volar/source-map": "1.7.8", - "@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/@volar/language-core": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.7.8.tgz", - "integrity": "sha512-TPklg4c2e/f1xB/MGZEiQc3AWG+dH64ZfBlYjFB8nNaWJt4Z4k+IHBhmaP52APG+5PHFerwiWI9oF002RrRTPA==", - "dev": true, - "dependencies": { - "@volar/source-map": "1.7.8" - } - }, - "node_modules/@vue/language-core/node_modules/@volar/source-map": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.7.8.tgz", - "integrity": "sha512-g2dtC2kOghvfzMDWeODIo4HO1Ml4hxzPTZyAFDz+YhRF9HjZYJSCaWaVuPZ+z0kY+T2daOHYA10GdrWQ5q0teA==", - "dev": true, - "dependencies": { - "muggle-string": "^0.3.1" - } - }, - "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.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vue/language-core/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/@vue/reactivity": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", - "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", - "dev": true, - "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==", - "dev": true, - "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/reactivity-transform/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==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/@vueuse/core": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", - "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", - "dev": true, - "dependencies": { - "@types/web-bluetooth": "^0.0.16", - "@vueuse/metadata": "9.13.0", - "@vueuse/shared": "9.13.0", - "vue-demi": "*" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/metadata": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", - "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/nuxt": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@vueuse/nuxt/-/nuxt-10.2.0.tgz", - "integrity": "sha512-2rtZ5LmARJhUou8AJL1WwNNodinw/pwujVPsred+OuaU6H61t+hK3rQqdS/1Iu8Rw3mFj/dtVKVXOHai0dHMTg==", - "dev": true, - "dependencies": { - "@nuxt/kit": "^3.5.3", - "@vueuse/core": "10.2.0", - "@vueuse/metadata": "10.2.0", - "local-pkg": "^0.4.3", - "nuxt": "^3.5.3", - "vue-demi": ">=0.14.5" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "nuxt": "^3.0.0" - } - }, - "node_modules/@vueuse/nuxt/node_modules/@types/web-bluetooth": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz", - "integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==", - "dev": true - }, - "node_modules/@vueuse/nuxt/node_modules/@vueuse/core": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.2.0.tgz", - "integrity": "sha512-aHBnoCteIS3hFu7ZZkVB93SanVDY6t4TIb7XDLxJT/HQdAZz+2RdIEJ8rj5LUoEJr7Damb5+sJmtpCwGez5ozQ==", - "dev": true, - "dependencies": { - "@types/web-bluetooth": "^0.0.17", - "@vueuse/metadata": "10.2.0", - "@vueuse/shared": "10.2.0", - "vue-demi": ">=0.14.5" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/nuxt/node_modules/@vueuse/metadata": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.2.0.tgz", - "integrity": "sha512-IR7Mkq6QSgZ38q/2ZzOt+Zz1OpcEsnwE64WBumDQ+RGKrosFCtUA2zgRrOqDEzPBXrVB+4HhFkwDjQMu0fDBKw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/nuxt/node_modules/@vueuse/shared": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.2.0.tgz", - "integrity": "sha512-dIeA8+g9Av3H5iF4NXR/sft4V6vys76CpZ6hxwj8eMXybXk2WRl3scSsOVi+kQ9SX38COR7AH7WwY83UcuxbSg==", - "dev": true, - "dependencies": { - "vue-demi": ">=0.14.5" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/shared": { - "version": "9.13.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", - "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", - "dev": true, - "dependencies": { - "vue-demi": "*" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", - "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/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/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/archiver": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", - "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", - "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver-utils/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", - "dev": true, - "dependencies": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, - "node_modules/ast-kit": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-0.6.5.tgz", - "integrity": "sha512-XCg0VWvmWU2T/6aMp8VRfJWZ6LZv1P0o8otWY7RAGtfKj0qGi45vtnKNkltJhu9tmbQNZxv+gJA4o7FtLDfmWg==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.22.4", - "@rollup/pluginutils": "^5.0.2", - "pathe": "^1.1.0" - }, - "engines": { - "node": ">=16.14.0" - } - }, - "node_modules/ast-types": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", - "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ast-walker-scope": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.4.2.tgz", - "integrity": "sha512-vdCU9JvpsrxWxvJiRHAr8If8cu07LWJXDPhkqLiP4ErbN1fu/mK623QGmU4Qbn2Nq4Mx0vR/Q017B6+HcHg1aQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.22.4", - "@babel/types": "^7.22.4" - }, - "engines": { - "node": ">=16.14.0" - } - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "node_modules/async-sema": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", - "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "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/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "dev": true, - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/birpc": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.12.tgz", - "integrity": "sha512-6Wz9FXuJ/FE4gDH+IGQhrYdalAvAQU1Yrtcu1UlMk3+9mMXxIRXiL+MxUcGokso42s+Fy+YoUXGLOdOs0siV3A==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", - "dev": true - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" - } - }, - "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/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "dev": true, - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/bundle-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", - "dev": true, - "dependencies": { - "run-applescript": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/c12": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/c12/-/c12-1.4.2.tgz", - "integrity": "sha512-3IP/MuamSVRVw8W8+CHWAz9gKN4gd+voF2zm/Ln6D25C2RhytEZ1ABbC8MjKr4BR9rhoV1JQ7jJA158LDiTkLg==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.3", - "defu": "^6.1.2", - "dotenv": "^16.3.1", - "giget": "^1.1.2", - "jiti": "^1.18.2", - "mlly": "^1.4.0", - "ohash": "^1.1.2", - "pathe": "^1.1.1", - "perfect-debounce": "^1.0.0", - "pkg-types": "^1.0.3", - "rc9": "^2.1.1" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacache": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz", - "integrity": "sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/cacache/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/cacache/node_modules/glob": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.0.tgz", - "integrity": "sha512-AQ1/SB9HH0yCx1jXAT4vmCbTOPe5RQ+kCurjbel5xSCGhebumUv+GJZfa1rEqor3XIViqwSEmlkZCQD43RWrBg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001507", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001507.tgz", - "integrity": "sha512-SFpUDoSLCaE5XYL2jfqe9ova/pbQHEmbheDf5r4diNwbAgR3qxM9NQtfsiSscjqoya5K7kFcHPUQ+VsUkIJR4A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "dev": true, - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dev": true, - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chroma-js": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", - "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==", - "dev": true - }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/citty": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.1.tgz", - "integrity": "sha512-fL/EEp9TyXlNkgYFQYNqtMJhnAk2tAq8lCST7O5LPn1NrzWPsOKE5wafR7J+8W87oxqolpxNli+w7khq5WP7tg==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/clear": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/clear/-/clear-0.1.0.tgz", - "integrity": "sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", - "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/clipboardy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", - "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", - "dev": true, - "dependencies": { - "arch": "^2.2.0", - "execa": "^5.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/clipboardy/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/clipboardy/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/clipboardy/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clipboardy/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/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/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/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/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "dev": true, - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "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/consola": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.1.0.tgz", - "integrity": "sha512-rrrJE6rP0qzl/Srg+C9x/AE5Kxfux7reVm1Wh0wCjuXvih6DqZgqDZe8auTD28fzJ9TF0mHlSDrPpWlujQRo1Q==", - "dev": true - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/cookie-es": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.0.0.tgz", - "integrity": "sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ==", - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dev": true, - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, - "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": "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/cross-spawn/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/css-declaration-sorter": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", - "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz", - "integrity": "sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==", - "dev": true, - "dependencies": { - "cssnano-preset-default": "^6.0.1", - "lilconfig": "^2.1.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz", - "integrity": "sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^4.0.0", - "postcss-calc": "^9.0.0", - "postcss-colormin": "^6.0.0", - "postcss-convert-values": "^6.0.0", - "postcss-discard-comments": "^6.0.0", - "postcss-discard-duplicates": "^6.0.0", - "postcss-discard-empty": "^6.0.0", - "postcss-discard-overridden": "^6.0.0", - "postcss-merge-longhand": "^6.0.0", - "postcss-merge-rules": "^6.0.1", - "postcss-minify-font-values": "^6.0.0", - "postcss-minify-gradients": "^6.0.0", - "postcss-minify-params": "^6.0.0", - "postcss-minify-selectors": "^6.0.0", - "postcss-normalize-charset": "^6.0.0", - "postcss-normalize-display-values": "^6.0.0", - "postcss-normalize-positions": "^6.0.0", - "postcss-normalize-repeat-style": "^6.0.0", - "postcss-normalize-string": "^6.0.0", - "postcss-normalize-timing-functions": "^6.0.0", - "postcss-normalize-unicode": "^6.0.0", - "postcss-normalize-url": "^6.0.0", - "postcss-normalize-whitespace": "^6.0.0", - "postcss-ordered-values": "^6.0.0", - "postcss-reduce-initial": "^6.0.0", - "postcss-reduce-transforms": "^6.0.0", - "postcss-svgo": "^6.0.0", - "postcss-unique-selectors": "^6.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz", - "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==", - "dev": true - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "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/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "dev": true, - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-browser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", - "dev": true, - "dependencies": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", - "dev": true, - "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/defu": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.2.tgz", - "integrity": "sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==", - "dev": true - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/destr": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/destr/-/destr-1.2.2.tgz", - "integrity": "sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==", - "dev": true - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detab": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/detab/-/detab-3.0.2.tgz", - "integrity": "sha512-7Bp16Bk8sk0Y6gdXiCtnpGbghn8atnTJdd/82aWvS5ESnlcNvgUc10U2NYS0PAiDSGjWiI8qs/Cv1b2uSGdQ8w==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/devalue": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz", - "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", - "dev": true - }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", - "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", - "dev": true, - "dependencies": { - "type-fest": "^2.11.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dot-prop/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "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/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.440", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.440.tgz", - "integrity": "sha512-r6dCgNpRhPwiWlxbHzZQ/d9swfPaEJGi8ekqRBwQYaR3WmA5VkqQfBWSDDjuJU1ntO+W9tHx8OHV/96Q8e0dVw==", - "dev": true - }, - "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/emoticon": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz", - "integrity": "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io-client": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.0.tgz", - "integrity": "sha512-C7eN3OKggSfd5g8IDgUA9guC8TNS6CEganKT7dL6Fp3q+FobcQ/WBn2Qq2XTL1vNTiFZfDzXohvqLuR9dWejdg==", - "dev": true, - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.1.0", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" - } - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/engine.io-parser": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.1.0.tgz", - "integrity": "sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.7.tgz", - "integrity": "sha512-46V0EFvQ/urmruUCChD1e0SZJWM0Ulny5F+uf5QkBry97HfvgvZTnjpTrwmw0+CGRhqTh9zpFeB+W8WGIEXOAQ==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.7", - "@esbuild/android-arm64": "0.18.7", - "@esbuild/android-x64": "0.18.7", - "@esbuild/darwin-arm64": "0.18.7", - "@esbuild/darwin-x64": "0.18.7", - "@esbuild/freebsd-arm64": "0.18.7", - "@esbuild/freebsd-x64": "0.18.7", - "@esbuild/linux-arm": "0.18.7", - "@esbuild/linux-arm64": "0.18.7", - "@esbuild/linux-ia32": "0.18.7", - "@esbuild/linux-loong64": "0.18.7", - "@esbuild/linux-mips64el": "0.18.7", - "@esbuild/linux-ppc64": "0.18.7", - "@esbuild/linux-riscv64": "0.18.7", - "@esbuild/linux-s390x": "0.18.7", - "@esbuild/linux-x64": "0.18.7", - "@esbuild/netbsd-x64": "0.18.7", - "@esbuild/openbsd-x64": "0.18.7", - "@esbuild/sunos-x64": "0.18.7", - "@esbuild/win32-arm64": "0.18.7", - "@esbuild/win32-ia32": "0.18.7", - "@esbuild/win32-x64": "0.18.7" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.43.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-vue": { - "version": "9.15.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.15.1.tgz", - "integrity": "sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.3.0", - "natural-compare": "^1.4.0", - "nth-check": "^2.0.1", - "postcss-selector-parser": "^6.0.9", - "semver": "^7.3.5", - "vue-eslint-parser": "^9.3.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/esno": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/esno/-/esno-0.16.3.tgz", - "integrity": "sha512-6slSBEV1lMKcX13DBifvnDFpNno5WXhw4j/ff7RI0y51BZiDqEe5dNhhjhIQ3iCOQuzsm2MbVzmwqbN78BBhPg==", - "dev": true, - "dependencies": { - "tsx": "^3.2.1" - }, - "bin": { - "esno": "esno.js" - } - }, - "node_modules/espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/externality": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/externality/-/externality-1.0.2.tgz", - "integrity": "sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==", - "dev": true, - "dependencies": { - "enhanced-resolve": "^5.14.1", - "mlly": "^1.3.0", - "pathe": "^1.1.1", - "ufo": "^1.1.2" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-folder-size": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/fast-folder-size/-/fast-folder-size-1.7.1.tgz", - "integrity": "sha512-YnQ/pHgeSxpTKnJ/LVe/0mWP3lafWmPFpcCVRLo2s251lD+qaksG2Ce1a7RTuLpN5W6PgFA4T5NYpW7sxWmDXA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "unzipper": "^0.10.11" - }, - "bin": { - "fast-folder-size": "cli.js" - } - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "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/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/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-minipass": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", - "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", - "dev": true, - "dependencies": { - "minipass": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "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/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fstream/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "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/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "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-port-please": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.0.1.tgz", - "integrity": "sha512-R5pcVO8Z1+pVDu8Ml3xaJCEkBiiy1VQN9za0YqH8GIi1nIqD4IzQhzY6dDzMRtdS1lyiGlucRzm8IN8wtLIXng==", - "dev": true - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-tsconfig": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.6.0.tgz", - "integrity": "sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg==", - "dev": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/giget": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/giget/-/giget-1.1.2.tgz", - "integrity": "sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==", - "dev": true, - "dependencies": { - "colorette": "^2.0.19", - "defu": "^6.1.2", - "https-proxy-agent": "^5.0.1", - "mri": "^1.2.0", - "node-fetch-native": "^1.0.2", - "pathe": "^1.1.0", - "tar": "^6.1.13" - }, - "bin": { - "giget": "dist/cli.mjs" - } - }, - "node_modules/git-config-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-config-path/-/git-config-path-2.0.0.tgz", - "integrity": "sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/git-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", - "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", - "dev": true, - "dependencies": { - "is-ssh": "^1.4.0", - "parse-url": "^8.1.0" - } - }, - "node_modules/git-url-parse": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", - "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", - "dev": true, - "dependencies": { - "git-up": "^7.0.0" - } - }, - "node_modules/github-slugger": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", - "dev": true - }, - "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "dev": true, - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.0.tgz", - "integrity": "sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/gzip-size": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-7.0.0.tgz", - "integrity": "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/h3": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/h3/-/h3-1.7.0.tgz", - "integrity": "sha512-iJJz2Pn2rC0j8CB3rkFMs0K269W7hDVOC7eL3qne5Joy4JZX1W7id7PBFV593GboHDOx0PzgO6ocqsynrIvdxw==", - "dev": true, - "dependencies": { - "cookie-es": "^1.0.0", - "defu": "^6.1.2", - "destr": "^2.0.0", - "iron-webcrypto": "^0.7.0", - "radix3": "^1.0.1", - "ufo": "^1.1.2", - "uncrypto": "^0.1.3" - } - }, - "node_modules/h3/node_modules/destr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.0.tgz", - "integrity": "sha512-FJ9RDpf3GicEBvzI3jxc2XhHzbqD8p4ANw/1kPsFBfTvP1b7Gn/Lg1vO7R9J4IVgoMbyUmFrFGZafJ1hPZpvlg==", - "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-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/hash-sum": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", - "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", - "dev": true - }, - "node_modules/hast-util-from-parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", - "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0", - "hastscript": "^7.0.0", - "property-information": "^6.0.0", - "vfile": "^5.0.0", - "vfile-location": "^4.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-has-property": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-2.0.1.tgz", - "integrity": "sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-heading-rank": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-2.1.1.tgz", - "integrity": "sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-is-element": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz", - "integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", - "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz", - "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "@types/parse5": "^6.0.0", - "hast-util-from-parse5": "^7.0.0", - "hast-util-to-parse5": "^7.0.0", - "html-void-elements": "^2.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz", - "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-2.0.0.tgz", - "integrity": "sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz", - "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^3.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "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/header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dev": true, - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/hookable": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", - "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", - "dev": true - }, - "node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/html-void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", - "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-graceful-shutdown": { - "version": "3.1.13", - "resolved": "https://registry.npmjs.org/http-graceful-shutdown/-/http-graceful-shutdown-3.1.13.tgz", - "integrity": "sha512-Ci5LRufQ8AtrQ1U26AevS8QoMXDOhnAHCJI3eZu1com7mZGHxREmw3dNj85ftpQokQCvak8nI2pnFS8zyM1M+Q==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-shutdown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", - "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", - "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", - "dev": true, - "dependencies": { - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/ignore-walk/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/ignore-walk/node_modules/minimatch": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/image-meta": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/image-meta/-/image-meta-0.1.1.tgz", - "integrity": "sha512-+oXiHwOEPr1IE5zY0tcBLED/CYcre15J4nwL50x3o0jxWqEkyjrusiKP3YSU+tr9fvJp33ZcP5Gpj2295g3aEw==", - "dev": true, - "engines": { - "node": ">=10.18.0" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/inquirer": { - "version": "9.2.7", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.7.tgz", - "integrity": "sha512-Bf52lnfvNxGPJPltiNO2tLBp3zC339KNlGMqOkW+dsvNikBhcVDK5kqU2lVX2FTPzuXUFX5WJDlsw//w3ZwoTw==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.2", - "chalk": "^5.2.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.0.0", - "external-editor": "^3.0.3", - "figures": "^5.0.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ioredis": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", - "dev": true, - "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "node_modules/ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/iron-webcrypto": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-0.7.0.tgz", - "integrity": "sha512-WkX32iTcwd79ZsWRPP5wq1Jq6XXfPwO783ZiUBY8uMw4/AByx5WvBmxvYGnpVt6AOVJ0F41Qo420r8lIneT9Wg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/brc-dd" - } - }, - "node_modules/is-absolute-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", - "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "dev": true, - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "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-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "dev": true, - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-inside-container/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true - }, - "node_modules/is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-primitive": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz", - "integrity": "sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "dev": true - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-ssh": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", - "dev": true, - "dependencies": { - "protocols": "^2.0.1" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "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/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "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/jiti": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", - "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/joi": { - "version": "17.9.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", - "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/knitwork": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/knitwork/-/knitwork-1.0.0.tgz", - "integrity": "sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==", - "dev": true - }, - "node_modules/kolorist": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", - "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", - "dev": true - }, - "node_modules/launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==", - "dev": true - }, - "node_modules/listhen": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.0.4.tgz", - "integrity": "sha512-r94k7kmXHb8e8wpv7+UP/qqhhD+j/9TgX19QKim2cEJuWCLwlTw+5BkCFmYyjhQ7Bt8KdVun/2DcD7MF2Fe3+g==", - "dev": true, - "dependencies": { - "clipboardy": "^3.0.0", - "colorette": "^2.0.19", - "defu": "^6.1.2", - "get-port-please": "^3.0.1", - "http-shutdown": "^1.2.2", - "ip-regex": "^5.0.0", - "node-forge": "^1.3.1", - "ufo": "^1.1.1" - } - }, - "node_modules/local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", - "dev": true - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/magic-string-ast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.1.2.tgz", - "integrity": "sha512-P53AZrzq7hclCU6HWj88xNZHmP15DKjMmK/vBytO1qnpYP3ul4IEZlyCE0aU3JRnmgWmZPmoTKj4Bls7v0pMyA==", - "dev": true, - "dependencies": { - "magic-string": "^0.30.0" - }, - "engines": { - "node": ">=14.19.0" - } - }, - "node_modules/magicast": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.2.9.tgz", - "integrity": "sha512-S1WBXLSVKa34X+Bv7pfA8Umqc1BoglsqzWaQcyuexDc0cjgnERaFTSHbne2OfT27lXYxt/B/sV/2Kh0HaSQkfg==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.22.4", - "@babel/types": "^7.22.4", - "recast": "^0.23.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-squeeze-paragraphs": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-5.2.1.tgz", - "integrity": "sha512-npINYQrt0E5AvSvM7ZxIIyrG/7DX+g8jKWcJMudrcjI+b1eNOKbbu+wTo6cKvy5IzH159IPfpWoRVH7kwEmnug==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", - "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", - "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", - "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", - "dev": true, - "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", - "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", - "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-definitions": "^5.0.0", - "micromark-util-sanitize-uri": "^1.1.0", - "trim-lines": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/memory-fs/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/memory-fs/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/memory-fs/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", - "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", - "dev": true, - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz", - "integrity": "sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==", - "dev": true, - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz", - "integrity": "sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==", - "dev": true, - "dependencies": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz", - "integrity": "sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==", - "dev": true, - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz", - "integrity": "sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==", - "dev": true, - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", - "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", - "dev": true, - "dependencies": { - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz", - "integrity": "sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==", - "dev": true, - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-factory-destination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect/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/minipass-fetch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", - "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", - "dev": true, - "dependencies": { - "minipass": "^5.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-flush/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/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-json-stream/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/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/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/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/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/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib/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/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mkdist/-/mkdist-1.2.0.tgz", - "integrity": "sha512-UTqu/bXmIk/+VKNVgufAeMyjUcNy1dn9Bl7wL1zZlCKVrpDgj/VllmZBeh3ZCC/2HWqUrt6frNFTKt9TRZbNvQ==", - "dev": true, - "dependencies": { - "defu": "^6.1.2", - "esbuild": "^0.17.14", - "fs-extra": "^11.1.1", - "globby": "^13.1.3", - "jiti": "^1.18.2", - "mlly": "^1.2.0", - "mri": "^1.2.0", - "pathe": "^1.1.0" - }, - "bin": { - "mkdist": "dist/cli.cjs" - }, - "peerDependencies": { - "sass": "^1.60.0", - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "sass": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/mkdist/node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/mkdist/node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" - } - }, - "node_modules/mlly": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.0.tgz", - "integrity": "sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "pathe": "^1.1.1", - "pkg-types": "^1.0.3", - "ufo": "^1.1.2" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/muggle-string": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.2.2.tgz", - "integrity": "sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==", - "dev": true - }, - "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/nanoid": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.js" - }, - "engines": { - "node": "^14 || ^16 || >=18" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/nitropack": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/nitropack/-/nitropack-2.5.1.tgz", - "integrity": "sha512-RKq++lLrs7m/hlkEkYezL119Lu7LzseaDh/6UzmXqYD8/fx896Bou4CJpe775iHiHDzASiCmVKtlkBJxSiRi5w==", - "dev": true, - "dependencies": { - "@cloudflare/kv-asset-handler": "^0.3.0", - "@netlify/functions": "^1.6.0", - "@rollup/plugin-alias": "^5.0.0", - "@rollup/plugin-commonjs": "^25.0.2", - "@rollup/plugin-inject": "^5.0.3", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.1.0", - "@rollup/plugin-replace": "^5.0.2", - "@rollup/plugin-terser": "^0.4.3", - "@rollup/plugin-wasm": "^6.1.3", - "@rollup/pluginutils": "^5.0.2", - "@types/http-proxy": "^1.17.11", - "@vercel/nft": "^0.22.6", - "archiver": "^5.3.1", - "c12": "^1.4.2", - "chalk": "^5.2.0", - "chokidar": "^3.5.3", - "citty": "^0.1.1", - "consola": "^3.1.0", - "cookie-es": "^1.0.0", - "defu": "^6.1.2", - "destr": "^2.0.0", - "dot-prop": "^7.2.0", - "esbuild": "^0.18.5", - "escape-string-regexp": "^5.0.0", - "etag": "^1.8.1", - "fs-extra": "^11.1.1", - "globby": "^13.2.0", - "gzip-size": "^7.0.0", - "h3": "^1.7.0", - "hookable": "^5.5.3", - "http-graceful-shutdown": "^3.1.13", - "http-proxy": "^1.18.1", - "is-primitive": "^3.0.1", - "jiti": "^1.18.2", - "klona": "^2.0.6", - "knitwork": "^1.0.0", - "listhen": "^1.0.4", - "magic-string": "^0.30.0", - "mime": "^3.0.0", - "mlly": "^1.4.0", - "mri": "^1.2.0", - "node-fetch-native": "^1.2.0", - "ofetch": "^1.1.1", - "ohash": "^1.1.2", - "openapi-typescript": "^6.2.8", - "pathe": "^1.1.1", - "perfect-debounce": "^1.0.0", - "pkg-types": "^1.0.3", - "pretty-bytes": "^6.1.0", - "radix3": "^1.0.1", - "rollup": "^3.25.1", - "rollup-plugin-visualizer": "^5.9.2", - "scule": "^1.0.0", - "semver": "^7.5.2", - "serve-placeholder": "^2.0.1", - "serve-static": "^1.15.0", - "source-map-support": "^0.5.21", - "std-env": "^3.3.3", - "ufo": "^1.1.2", - "uncrypto": "^0.1.3", - "unenv": "^1.5.1", - "unimport": "^3.0.8", - "unstorage": "^1.7.0" - }, - "bin": { - "nitro": "dist/cli.mjs", - "nitropack": "dist/cli.mjs" - }, - "engines": { - "node": "^14.16.0 || ^16.11.0 || >=17.0.0" - } - }, - "node_modules/nitropack/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/nitropack/node_modules/destr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.0.tgz", - "integrity": "sha512-FJ9RDpf3GicEBvzI3jxc2XhHzbqD8p4ANw/1kPsFBfTvP1b7Gn/Lg1vO7R9J4IVgoMbyUmFrFGZafJ1hPZpvlg==", - "dev": true - }, - "node_modules/nitropack/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-fetch-native": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.2.0.tgz", - "integrity": "sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ==", - "dev": true - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-gyp": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", - "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^11.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "dev": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "dev": true, - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/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/node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", - "dev": true - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-bundled": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-install-checks": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", - "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", - "dev": true, - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-packlist": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", - "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", - "dev": true, - "dependencies": { - "ignore-walk": "^6.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", - "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", - "dev": true, - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", - "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nuxi": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/nuxi/-/nuxi-3.6.0.tgz", - "integrity": "sha512-gLmSE8NqNIz7HRPxBmO+Y+fgz95kMM25MzEoeuWLU/ZMWYqUOcvhsQEmv4ZZBfCe5/zv7+mO3G0UK1+Gi3QUoQ==", - "dev": true, - "bin": { - "nuxi": "bin/nuxi.mjs" - }, - "engines": { - "node": "^14.18.0 || >=16.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/nuxt": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/nuxt/-/nuxt-3.6.0.tgz", - "integrity": "sha512-/ZUnaPJHdBbE9KoiVduD87unRaRx7DuO9cfy7rQLcGMo2LWVLRJ7I4CIq2ruq21fO/4jddA3G36LFWVJAKhcXQ==", - "dev": true, - "dependencies": { - "@nuxt/devalue": "^2.0.2", - "@nuxt/kit": "3.6.0", - "@nuxt/schema": "3.6.0", - "@nuxt/telemetry": "^2.2.0", - "@nuxt/ui-templates": "^1.2.0", - "@nuxt/vite-builder": "3.6.0", - "@typescript-eslint/typescript-estree": "^5.60.0", - "@unhead/ssr": "^1.1.27", - "@unhead/vue": "^1.1.27", - "@vue/shared": "^3.3.4", - "c12": "^1.4.2", - "chokidar": "^3.5.3", - "cookie-es": "^1.0.0", - "defu": "^6.1.2", - "destr": "^2.0.0", - "devalue": "^4.3.2", - "escape-string-regexp": "^5.0.0", - "estree-walker": "^3.0.3", - "fs-extra": "^11.1.1", - "globby": "^13.2.0", - "h3": "^1.7.0", - "hookable": "^5.5.3", - "jiti": "^1.18.2", - "klona": "^2.0.6", - "knitwork": "^1.0.0", - "local-pkg": "^0.4.3", - "magic-string": "^0.30.0", - "mlly": "^1.4.0", - "nitropack": "^2.5.1", - "nuxi": "3.6.0", - "nypm": "^0.2.1", - "ofetch": "^1.1.1", - "ohash": "^1.1.2", - "pathe": "^1.1.1", - "perfect-debounce": "^1.0.0", - "prompts": "^2.4.2", - "scule": "^1.0.0", - "strip-literal": "^1.0.1", - "ufo": "^1.1.2", - "ultrahtml": "^1.2.0", - "uncrypto": "^0.1.3", - "unctx": "^2.3.1", - "unenv": "^1.5.1", - "unimport": "^3.0.8", - "unplugin": "^1.3.1", - "unplugin-vue-router": "^0.6.4", - "untyped": "^1.3.2", - "vue": "^3.3.4", - "vue-bundle-renderer": "^1.0.3", - "vue-devtools-stub": "^0.1.0", - "vue-router": "^4.2.2" - }, - "bin": { - "nuxi": "bin/nuxt.mjs", - "nuxt": "bin/nuxt.mjs" - }, - "engines": { - "node": "^14.18.0 || >=16.10.0" - }, - "peerDependencies": { - "@parcel/watcher": "^2.1.0", - "@types/node": "^14.18.0 || >=16.10.0" - }, - "peerDependenciesMeta": { - "@parcel/watcher": { - "optional": true - } - } - }, - "node_modules/nuxt-component-meta": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/nuxt-component-meta/-/nuxt-component-meta-0.5.3.tgz", - "integrity": "sha512-+MHUrESdr+Si9PdbkxQrzQv+X6RdRd/ffmFWVVsZAHA7X9vGoNAYxwvoB1Pbs15TaPtFBWA1P5a4VGqtp+bhAg==", - "dev": true, - "dependencies": { - "@nuxt/kit": "^3.3.1", - "scule": "^1.0.0", - "typescript": "^5.0.2", - "vue-component-meta": "^1.2.0" - } - }, - "node_modules/nuxt-component-meta/node_modules/typescript": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", - "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/nuxt-config-schema": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/nuxt-config-schema/-/nuxt-config-schema-0.4.6.tgz", - "integrity": "sha512-kHLWJFynj5QrxVZ1MjY2xmDaTSN1BCMLGExA+hMMLoCb3wn9TJlDVqnE/nSdUJPMRkNn/NQ5WP9NLA9vlAXRUw==", - "dev": true, - "dependencies": { - "@nuxt/kit": "^3.4.2", - "defu": "^6.1.2", - "jiti": "^1.18.2", - "pathe": "^1.0.0", - "untyped": "^1.3.2" - } - }, - "node_modules/nuxt-icon": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/nuxt-icon/-/nuxt-icon-0.3.3.tgz", - "integrity": "sha512-KdhJAigBGTP8/YIFZ3orwetk40AgLq6VQ5HRYuDLmv5hiDptor9Ro+WIdZggHw7nciRxZvDdQkEwi9B5G/jrkQ==", - "dev": true, - "dependencies": { - "@iconify/vue": "^4.1.0", - "@nuxt/kit": "^3.3.1", - "nuxt-config-schema": "^0.4.5" - } - }, - "node_modules/nuxt/node_modules/destr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.0.tgz", - "integrity": "sha512-FJ9RDpf3GicEBvzI3jxc2XhHzbqD8p4ANw/1kPsFBfTvP1b7Gn/Lg1vO7R9J4IVgoMbyUmFrFGZafJ1hPZpvlg==", - "dev": true - }, - "node_modules/nuxt/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nypm": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.2.1.tgz", - "integrity": "sha512-5XKv4OKlnL+qkeWU4ywu35iyT1p8TmFJ5vD9BfVn8tHU3g/X0lDLV8TqZ4dNHwkoo9mtHUpQ8W8ert0XPqwbow==", - "dev": true, - "dependencies": { - "execa": "^7.1.1" - }, - "engines": { - "node": "^14.16.0 || >=16.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "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/ofetch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.1.1.tgz", - "integrity": "sha512-SSMoktrp9SNLi20BWfB/BnnKcL0RDigXThD/mZBeQxkIRv1xrd9183MtLdsqRYLYSqW0eTr5t8w8MqjNhvoOQQ==", - "dev": true, - "dependencies": { - "destr": "^2.0.0", - "node-fetch-native": "^1.2.0", - "ufo": "^1.1.2" - } - }, - "node_modules/ofetch/node_modules/destr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.0.tgz", - "integrity": "sha512-FJ9RDpf3GicEBvzI3jxc2XhHzbqD8p4ANw/1kPsFBfTvP1b7Gn/Lg1vO7R9J4IVgoMbyUmFrFGZafJ1hPZpvlg==", - "dev": true - }, - "node_modules/ohash": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.2.tgz", - "integrity": "sha512-9CIOSq5945rI045GFtcO3uudyOkYVY1nyfFxVQp+9BRgslr8jPNiSSrsFGg/BNTUFOLqx0P5tng6G32brIPw0w==", - "dev": true - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openapi-typescript": { - "version": "6.2.8", - "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-6.2.8.tgz", - "integrity": "sha512-yA+y5MHiu6cjmtsGfNLavzVuvGCKzjL3H+exgHDPK6bnp6ZVFibtAiafenNSRDWL0x+7Sw/VPv5SbaqiPLW46w==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.3", - "fast-glob": "^3.2.12", - "js-yaml": "^4.1.0", - "supports-color": "^9.3.1", - "undici": "^5.22.1", - "yargs-parser": "^21.1.1" - }, - "bin": { - "openapi-typescript": "bin/cli.js" - } - }, - "node_modules/openapi-typescript/node_modules/supports-color": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.3.1.tgz", - "integrity": "sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pacote": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", - "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", - "dev": true, - "dependencies": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^5.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.3.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/paneer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/paneer/-/paneer-0.1.0.tgz", - "integrity": "sha512-SZfJe/y9fbpeXZU+Kf7cSG2G7rnGP50hUYzCvcWyhp7hYzA3YXGthpkGfv6NSt0oo6QbcRyKwycg/6dpG5p8aw==", - "deprecated": "Please migrate to https://github.com/unjs/magicast", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.15", - "@types/estree": "^1.0.0", - "recast": "^0.22.0" - } - }, - "node_modules/paneer/node_modules/ast-types": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", - "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/paneer/node_modules/recast": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.22.0.tgz", - "integrity": "sha512-5AAx+mujtXijsEavc5lWXBPQqrM4+Dl5qNH96N2aNeuJFUzpiiToKPsxQD/zAIJHspz7zz0maX0PCtCTFVlixQ==", - "dev": true, - "dependencies": { - "assert": "^2.0.0", - "ast-types": "0.15.2", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-git-config": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-git-config/-/parse-git-config-3.0.0.tgz", - "integrity": "sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==", - "dev": true, - "dependencies": { - "git-config-path": "^2.0.0", - "ini": "^1.3.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/parse-git-config/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/parse-path": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", - "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", - "dev": true, - "dependencies": { - "protocols": "^2.0.0" - } - }, - "node_modules/parse-url": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", - "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", - "dev": true, - "dependencies": { - "parse-path": "^7.0.0" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/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.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", - "dev": true, - "dependencies": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz", - "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", - "dev": true - }, - "node_modules/perfect-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", - "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinceau": { - "version": "0.18.9", - "resolved": "https://registry.npmjs.org/pinceau/-/pinceau-0.18.9.tgz", - "integrity": "sha512-GJ+l8a5Y+7PP/diwuajJhd2QONTIFkk2YXjrVTh7QKC3sMQEphpLH6ZJfXSeeSonQ0/BnhrrMi9a5e14mmqXug==", - "dev": true, - "dependencies": { - "@unocss/reset": "^0.50.3", - "@volar/vue-language-core": "^1.2.0", - "acorn": "^8.8.2", - "chroma-js": "^2.4.2", - "consola": "^3.0.1", - "csstype": "^3.1.1", - "defu": "^6.1.2", - "magic-string": "^0.30.0", - "nanoid": "^4.0.1", - "ohash": "^1.0.0", - "paneer": "^0.1.0", - "pathe": "^1.1.0", - "postcss-custom-properties": "13.1.4", - "postcss-dark-theme-class": "0.7.3", - "postcss-nested": "^6.0.1", - "recast": "^0.22.0", - "scule": "^1.0.0", - "style-dictionary-esm": "^1.3.7", - "unbuild": "^1.1.2", - "unplugin": "^1.1.0" - } - }, - "node_modules/pinceau/node_modules/ast-types": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", - "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pinceau/node_modules/recast": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.22.0.tgz", - "integrity": "sha512-5AAx+mujtXijsEavc5lWXBPQqrM4+Dl5qNH96N2aNeuJFUzpiiToKPsxQD/zAIJHspz7zz0maX0PCtCTFVlixQ==", - "dev": true, - "dependencies": { - "assert": "^2.0.0", - "ast-types": "0.15.2", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" - } - }, - "node_modules/plausible-tracker": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/plausible-tracker/-/plausible-tracker-0.3.8.tgz", - "integrity": "sha512-lmOWYQ7s9KOUJ1R+YTOR3HrjdbxIS2Z4de0P/Jx2dQPteznJl2eX3tXxKClpvbfyGP59B5bbhW8ftN59HbbFSg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", - "dev": true, - "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/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz", - "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", - "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-custom-properties": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.1.4.tgz", - "integrity": "sha512-iSAdaZrM3KMec8cOSzeTUNXPYDlhqsMJHpt62yrjwG6nAnMtRHPk5JdMzGosBJtqEahDolvD5LNbcq+EZ78o5g==", - "dev": true, - "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.0", - "@csstools/css-parser-algorithms": "^2.0.0", - "@csstools/css-tokenizer": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-dark-theme-class": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/postcss-dark-theme-class/-/postcss-dark-theme-class-0.7.3.tgz", - "integrity": "sha512-M9vtfh8ORzQsVdT9BWb+xpEDAzC7nHBn7wVc988/JkEVLPupKcUnV0jw7RZ8sSj0ovpqN1POf6PLdt19JCHfhQ==", - "dev": true, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-discard-comments": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", - "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", - "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", - "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", - "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-import-resolver": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-import-resolver/-/postcss-import-resolver-2.0.0.tgz", - "integrity": "sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw==", - "dev": true, - "dependencies": { - "enhanced-resolve": "^4.1.1" - } - }, - "node_modules/postcss-import-resolver/node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-import-resolver/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", - "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz", - "integrity": "sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", - "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", - "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", - "dev": true, - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^4.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", - "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^4.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", - "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", - "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", - "dev": true, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", - "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", - "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", - "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", - "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", - "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", - "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", - "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", - "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", - "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", - "dev": true, - "dependencies": { - "cssnano-utils": "^4.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", - "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", - "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz", - "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^3.0.2" - }, - "engines": { - "node": "^14 || ^16 || >= 18" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", - "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-url": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-10.1.3.tgz", - "integrity": "sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==", - "dev": true, - "dependencies": { - "make-dir": "~3.1.0", - "mime": "~2.5.2", - "minimatch": "~3.0.4", - "xxhashjs": "~0.2.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-url/node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-url/node_modules/minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/postcss/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==", - "dev": true, - "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/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-bytes": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", - "integrity": "sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==", - "dev": true, - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/property-information": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz", - "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/protocols": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", - "dev": true - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/radix3": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.0.1.tgz", - "integrity": "sha512-y+AcwZ3HcUIGc9zGsNVf5+BY/LxL+z+4h4J3/pp8jxSmy1STaCocPS3qrj4tA5ehUSzqtqK+0Aygvz/r/8vy4g==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/rc9": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.1.tgz", - "integrity": "sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==", - "dev": true, - "dependencies": { - "defu": "^6.1.2", - "destr": "^2.0.0", - "flat": "^5.0.2" - } - }, - "node_modules/rc9/node_modules/destr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.0.tgz", - "integrity": "sha512-FJ9RDpf3GicEBvzI3jxc2XhHzbqD8p4ANw/1kPsFBfTvP1b7Gn/Lg1vO7R9J4IVgoMbyUmFrFGZafJ1hPZpvlg==", - "dev": true - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-package-json": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", - "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", - "dev": true, - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/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/read-package-json/node_modules/glob": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.0.tgz", - "integrity": "sha512-AQ1/SB9HH0yCx1jXAT4vmCbTOPe5RQ+kCurjbel5xSCGhebumUv+GJZfa1rEqor3XIViqwSEmlkZCQD43RWrBg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/node_modules/minimatch": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-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/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recast": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.2.tgz", - "integrity": "sha512-Qv6cPfVZyMOtPszK6PgW70pUgm7gPlFitAPf0Q69rlOA0zLw2XdDcNmPbVGYicFGT9O8I7TZ/0ryJD+6COvIPw==", - "dev": true, - "dependencies": { - "assert": "^2.0.0", - "ast-types": "^0.16.1", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dev": true, - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/rehype-external-links": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-2.1.0.tgz", - "integrity": "sha512-2YMJZVM1hxZnwl9IPkbN5Pjn78kXkAX7lq9VEtlaGA29qIls25vZN+ucNIJdbQUe+9NNFck17BiOhGmsD6oLIg==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "extend": "^3.0.0", - "hast-util-is-element": "^2.0.0", - "is-absolute-url": "^4.0.0", - "space-separated-tokens": "^2.0.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-raw": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz", - "integrity": "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-raw": "^7.2.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-slug": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-5.1.0.tgz", - "integrity": "sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "github-slugger": "^2.0.0", - "hast-util-has-property": "^2.0.0", - "hast-util-heading-rank": "^2.0.0", - "hast-util-to-string": "^2.0.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-sort-attribute-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/rehype-sort-attribute-values/-/rehype-sort-attribute-values-4.0.0.tgz", - "integrity": "sha512-+Y3OWTbbxSIutbXMVY7+aWFmcRyEvdz6HkghXAyVPjee1Y8HUi+/vryBL1UdEI9VknVBiGvphXAf5n6MDNOXOA==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-is-element": "^2.0.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-sort-attributes": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/rehype-sort-attributes/-/rehype-sort-attributes-4.0.0.tgz", - "integrity": "sha512-sCT58e12F+fJL8ZmvpEP2vAK7cpYffUAf0cMQjNfLIewWjMHMGo0Io+H8eztJoI1S9dvEm2XZT5zzchqe8gYJw==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-emoji": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-3.1.1.tgz", - "integrity": "sha512-kVCTaHzX+/ls67mE8JsGd3ZX511p2FlAPmKhdGpRCb5z6GSwp+3sAIB5oTySIetPh7CtqfGf7JBUt5fyMjgOHw==", - "dev": true, - "dependencies": { - "emoticon": "^4.0.1", - "mdast-util-find-and-replace": "^2.2.2", - "node-emoji": "^1.11.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdc": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/remark-mdc/-/remark-mdc-1.1.3.tgz", - "integrity": "sha512-ilYSkkQJhu5cUCEE2CJEncoMDoarP32ugfJpFWghXbnv3sWI3j2HtJuArc9tZzxN4ID6fngio3d8N87QfQAnRQ==", - "dev": true, - "dependencies": { - "flat": "^5.0.2", - "js-yaml": "^4.1.0", - "mdast-util-from-markdown": "^1.2.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark": "^3.1.0", - "micromark-core-commonmark": "^1.0.6", - "micromark-factory-space": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.1.0", - "parse-entities": "^4.0.0", - "scule": "^1.0.0", - "stringify-entities": "^4.0.3", - "unist-util-visit": "^4.1.1", - "unist-util-visit-parents": "^5.1.1" - } - }, - "node_modules/remark-parse": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", - "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-squeeze-paragraphs": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-5.0.1.tgz", - "integrity": "sha512-VWPAoa1bAAtU/aQfSLRZ7vOrwH9I02RhZTSo+e0LT3fVO9RKNCq/bwobIEBhxvNCt00JoQ7GwR3sYGhmD2/y6Q==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-squeeze-paragraphs": "^5.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "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/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.25.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.2.tgz", - "integrity": "sha512-VLnkxZMDr3jpxgtmS8pQZ0UvhslmF4ADq/9w4erkctbgjCqLW9oa89fJuXEs4ZmgyoF7Dm8rMDKSS5b5u2hHUg==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-dts": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-5.3.0.tgz", - "integrity": "sha512-8FXp0ZkyZj1iU5klkIJYLjIq/YZSwBoERu33QBDxm/1yw5UU4txrEtcmMkrq+ZiKu3Q4qvPCNqc3ovX6rjqzbQ==", - "dev": true, - "dependencies": { - "magic-string": "^0.30.0" - }, - "engines": { - "node": ">=v14" - }, - "funding": { - "url": "https://github.com/sponsors/Swatinem" - }, - "optionalDependencies": { - "@babel/code-frame": "^7.18.6" - }, - "peerDependencies": { - "rollup": "^3.0.0", - "typescript": "^4.1 || ^5.0" - } - }, - "node_modules/rollup-plugin-visualizer": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz", - "integrity": "sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==", - "dev": true, - "dependencies": { - "open": "^8.4.0", - "picomatch": "^2.3.1", - "source-map": "^0.7.4", - "yargs": "^17.5.1" - }, - "bin": { - "rollup-plugin-visualizer": "dist/bin/cli.js" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "rollup": "2.x || 3.x" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/rollup-plugin-visualizer/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/run-applescript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/run-applescript/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/run-applescript/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/run-applescript/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/run-applescript/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/scule": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/scule/-/scule-1.0.0.tgz", - "integrity": "sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==", - "dev": true - }, - "node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/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/semver/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/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-placeholder": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/serve-placeholder/-/serve-placeholder-2.0.1.tgz", - "integrity": "sha512-rUzLlXk4uPFnbEaIz3SW8VISTxMuONas88nYWjAWaM2W9VDbt9tyFOr3lq8RhVOFrT3XISoBw8vni5una8qMnQ==", - "dev": true, - "dependencies": { - "defu": "^6.0.0" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "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/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/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/shiki-es": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/shiki-es/-/shiki-es-0.2.0.tgz", - "integrity": "sha512-RbRMD+IuJJseSZljDdne9ThrUYrwBwJR04FvN4VXpfsU3MNID5VJGHLAD5je/HGThCyEKNgH+nEkSFEWKD7C3Q==", - "dev": true - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sigstore": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.6.0.tgz", - "integrity": "sha512-QODKff/qW/TXOZI6V/Clqu74xnInAS6it05mufj4/fSewexLtfEntgLZZcBtUK44CDQyUE5TUXYy1ARYzlfG9g==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.1.0", - "@sigstore/tuf": "^1.0.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.1.3" - }, - "bin": { - "sigstore": "bin/sigstore.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sirv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", - "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", - "dev": true, - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/smob": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.0.tgz", - "integrity": "sha512-MqR3fVulhjWuRNSMydnTlweu38UhQ0HXM4buStD/S3mc/BzX3CuM9OmhyQpmtYCvoYdl5ris6TI0ZqH355Ymqg==", - "dev": true - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/socket.io-client": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.0.tgz", - "integrity": "sha512-7Q8CeDrhuZzg4QLXl3tXlk5yb086oxYzehAVZRLiGCzCmtDneiHz1qHyyWcxhTgxXiokVpWQXoG/u60HoXSQew==", - "dev": true, - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.5.0", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dev": true, - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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/ssri": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", - "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", - "dev": true, - "dependencies": { - "minipass": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", - "dev": true - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/std-env": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz", - "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==", - "dev": true - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "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/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/stringify-entities": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", - "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", - "dev": true, - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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/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-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-literal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", - "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", - "dev": true, - "dependencies": { - "acorn": "^8.8.2" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/style-dictionary-esm": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/style-dictionary-esm/-/style-dictionary-esm-1.3.7.tgz", - "integrity": "sha512-xO2o8sKGera0SMLCLtix1dPvgD2ZyX2VohZ09cGRRuXBb8HQObqhgDQw4dLW+qJy4gj7r4Mdhz9J1rS2p50xDw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.2", - "change-case": "^4.1.2", - "commander": "^10.0.0", - "consola": "^2.15.3", - "glob": "^8.1.0", - "jiti": "^1.17.1", - "json5": "^2.2.3", - "jsonc-parser": "^3.2.0", - "lodash.template": "^4.5.0", - "tinycolor2": "^1.6.0" - }, - "bin": { - "style-dictionary": "bin/style-dictionary.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/style-dictionary-esm/node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "node_modules/stylehacks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz", - "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true - }, - "node_modules/svgo": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", - "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", - "dev": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.2.1", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/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/terser": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.1.tgz", - "integrity": "sha512-j1n0Ao919h/Ai5r43VAnfV/7azUYW43GPxK7qSATzrsERfW7+y2QW9Cp9ufnRF5CQUWbnLSo7UJokSWCqg4tsQ==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", - "dev": true - }, - "node_modules/tinycolor2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", - "dev": true - }, - "node_modules/titleize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsx": { - "version": "3.12.7", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-3.12.7.tgz", - "integrity": "sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==", - "dev": true, - "dependencies": { - "@esbuild-kit/cjs-loader": "^2.4.2", - "@esbuild-kit/core-utils": "^3.0.0", - "@esbuild-kit/esm-loader": "^2.5.5" - }, - "bin": { - "tsx": "dist/cli.js" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/tuf-js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", - "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", - "dev": true, - "dependencies": { - "@tufjs/models": "1.0.4", - "debug": "^4.3.4", - "make-fetch-happen": "^11.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typesafe-path": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz", - "integrity": "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==", - "dev": true - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ufo": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz", - "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==", - "dev": true - }, - "node_modules/ultrahtml": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.2.0.tgz", - "integrity": "sha512-vxZM2yNvajRmCj/SknRYGNXk2tqiy6kRNvZjJLaleG3zJbSh/aNkOqD1/CVzypw8tyHyhpzYuwQgMMhUB4ZVNQ==", - "dev": true - }, - "node_modules/unbuild": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/unbuild/-/unbuild-1.2.1.tgz", - "integrity": "sha512-J4efk69Aye43tWcBPCsLK7TIRppGrEN4pAlDzRKo3HSE6MgTSTBxSEuE3ccx7ixc62JvGQ/CoFXYqqF2AHozow==", - "dev": true, - "dependencies": { - "@rollup/plugin-alias": "^5.0.0", - "@rollup/plugin-commonjs": "^24.1.0", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.0.2", - "@rollup/plugin-replace": "^5.0.2", - "@rollup/pluginutils": "^5.0.2", - "chalk": "^5.2.0", - "consola": "^3.0.2", - "defu": "^6.1.2", - "esbuild": "^0.17.16", - "globby": "^13.1.4", - "hookable": "^5.5.3", - "jiti": "^1.18.2", - "magic-string": "^0.30.0", - "mkdist": "^1.2.0", - "mlly": "^1.2.0", - "mri": "^1.2.0", - "pathe": "^1.1.0", - "pkg-types": "^1.0.2", - "pretty-bytes": "^6.1.0", - "rollup": "^3.20.2", - "rollup-plugin-dts": "^5.3.0", - "scule": "^1.0.0", - "typescript": "^5.0.4", - "untyped": "^1.3.2" - }, - "bin": { - "unbuild": "dist/cli.mjs" - } - }, - "node_modules/unbuild/node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/@rollup/plugin-commonjs": { - "version": "24.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz", - "integrity": "sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "glob": "^8.0.3", - "is-reference": "1.2.1", - "magic-string": "^0.27.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/unbuild/node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/unbuild/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/unbuild/node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" - } - }, - "node_modules/unbuild/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==", - "dev": true - }, - "node_modules/unbuild/node_modules/typescript": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", - "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/uncrypto": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", - "dev": true - }, - "node_modules/unctx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unctx/-/unctx-2.3.1.tgz", - "integrity": "sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==", - "dev": true, - "dependencies": { - "acorn": "^8.8.2", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.0", - "unplugin": "^1.3.1" - } - }, - "node_modules/undici": { - "version": "5.22.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", - "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", - "dev": true, - "dependencies": { - "busboy": "^1.6.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/unenv": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.5.1.tgz", - "integrity": "sha512-tQHlmQUPyIoyGc2bF8phugmQd6wVatkVe5FqxxhM1vHfmPKWTiogSVTHA0mO8gNztDKZLpBEJx3M3CJrTZyExg==", - "dev": true, - "dependencies": { - "consola": "^3.1.0", - "defu": "^6.1.2", - "mime": "^3.0.0", - "node-fetch-native": "^1.1.1", - "pathe": "^1.1.0" - } - }, - "node_modules/unhead": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.1.27.tgz", - "integrity": "sha512-KnE4xeV/mZLxnXG1VAp1nsaO2vzMq9Ch5uN4Y2SJAG4fXLEBi/A8evr3Vd81c+oAwQZjDXKFW60HDCJCkwo/Cw==", - "dev": true, - "dependencies": { - "@unhead/dom": "1.1.27", - "@unhead/schema": "1.1.27", - "@unhead/shared": "1.1.27", - "hookable": "^5.5.3" - }, - "funding": { - "url": "https://github.com/sponsors/harlan-zw" - } - }, - "node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unimport": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/unimport/-/unimport-3.0.8.tgz", - "integrity": "sha512-AOt6xj3QMwqcTZRPB+NhFkyVEjCKnpTVoPm5x6424zz2NYYtCfym2bpJofzPHIJKPNIh5ko2/t2q46ZIMgdmbw==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^5.0.2", - "escape-string-regexp": "^5.0.0", - "fast-glob": "^3.2.12", - "local-pkg": "^0.4.3", - "magic-string": "^0.30.0", - "mlly": "^1.3.0", - "pathe": "^1.1.1", - "pkg-types": "^1.0.3", - "scule": "^1.0.0", - "strip-literal": "^1.0.1", - "unplugin": "^1.3.1" - } - }, - "node_modules/unimport/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/unist-builder": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.1.tgz", - "integrity": "sha512-gnpOw7DIpCA0vpr6NqdPvTWnlPTApCTRzr+38E6hCWx3rz/cjo83SsKIlS1Z+L5ttScQ2AwutNnb8+tAvpb6qQ==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-generated": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", - "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", - "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unplugin": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.3.1.tgz", - "integrity": "sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==", - "dev": true, - "dependencies": { - "acorn": "^8.8.2", - "chokidar": "^3.5.3", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.5.0" - } - }, - "node_modules/unplugin-vue-router": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/unplugin-vue-router/-/unplugin-vue-router-0.6.4.tgz", - "integrity": "sha512-9THVhhtbVFxbsIibjK59oPwMI1UCxRWRPX7azSkTUABsxovlOXJys5SJx0kd/0oKIqNJuYgkRfAgPuO77SqCOg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.5", - "@rollup/pluginutils": "^5.0.2", - "@vue-macros/common": "^1.3.1", - "ast-walker-scope": "^0.4.1", - "chokidar": "^3.5.3", - "fast-glob": "^3.2.12", - "json5": "^2.2.3", - "local-pkg": "^0.4.3", - "mlly": "^1.2.0", - "pathe": "^1.1.0", - "scule": "^1.0.0", - "unplugin": "^1.3.1", - "yaml": "^2.2.2" - }, - "peerDependencies": { - "vue-router": "^4.1.0" - }, - "peerDependenciesMeta": { - "vue-router": { - "optional": true - } - } - }, - "node_modules/unstorage": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.7.0.tgz", - "integrity": "sha512-f78UtR4HyUGWuET35iNPdKMvCh9YPQpC7WvkGpP6XiLlolT/9wjyAICYN9AMD/tlB8ZdOqWQHZn+j7mXcTSO4w==", - "dev": true, - "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^3.5.3", - "destr": "^2.0.0", - "h3": "^1.7.0", - "ioredis": "^5.3.2", - "listhen": "^1.0.4", - "lru-cache": "^10.0.0", - "mri": "^1.2.0", - "node-fetch-native": "^1.2.0", - "ofetch": "^1.1.1", - "ufo": "^1.1.2" - }, - "peerDependencies": { - "@azure/app-configuration": "^1.4.1", - "@azure/cosmos": "^3.17.3", - "@azure/data-tables": "^13.2.2", - "@azure/identity": "^3.2.2", - "@azure/keyvault-secrets": "^4.7.0", - "@azure/storage-blob": "^12.14.0", - "@planetscale/database": "^1.7.0", - "@upstash/redis": "^1.20.6", - "@vercel/kv": "^0.2.1" - }, - "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true - }, - "@azure/storage-blob": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@upstash/redis": { - "optional": true - }, - "@vercel/kv": { - "optional": true - } - } - }, - "node_modules/unstorage/node_modules/destr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.0.tgz", - "integrity": "sha512-FJ9RDpf3GicEBvzI3jxc2XhHzbqD8p4ANw/1kPsFBfTvP1b7Gn/Lg1vO7R9J4IVgoMbyUmFrFGZafJ1hPZpvlg==", - "dev": true - }, - "node_modules/unstorage/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/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/untyped": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/untyped/-/untyped-1.3.2.tgz", - "integrity": "sha512-z219Z65rOGD6jXIvIhpZFfwWdqQckB8sdZec2NO+TkcH1Bph7gL0hwLzRJs1KsOo4Jz4mF9guBXhsEnyEBGVfw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/standalone": "^7.21.3", - "@babel/types": "^7.21.3", - "defu": "^6.1.2", - "jiti": "^1.18.2", - "mri": "^1.2.0", - "scule": "^1.0.0" - }, - "bin": { - "untyped": "dist/cli.mjs" - } - }, - "node_modules/unzipper": { - "version": "0.10.14", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", - "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/unzipper/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dev": true, - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uvu/node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", - "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vite": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", - "dev": true, - "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.32.2.tgz", - "integrity": "sha512-dTQ1DCLwl2aEseov7cfQ+kDMNJpM1ebpyMMMwWzBvLbis8Nla/6c9WQcqpPssTwS6Rp/+U6KwlIj8Eapw4bLdA==", - "dev": true, - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "mlly": "^1.2.0", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": ">=v14.18.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/vite-plugin-checker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.1.tgz", - "integrity": "sha512-4fAiu3W/IwRJuJkkUZlWbLunSzsvijDf0eDN6g/MGh6BUK4SMclOTGbLJCPvdAcMOQvVmm8JyJeYLYd4//8CkA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "ansi-escapes": "^4.3.0", - "chalk": "^4.1.1", - "chokidar": "^3.5.1", - "commander": "^8.0.0", - "fast-glob": "^3.2.7", - "fs-extra": "^11.1.0", - "lodash.debounce": "^4.0.8", - "lodash.pick": "^4.4.0", - "npm-run-path": "^4.0.1", - "semver": "^7.5.0", - "strip-ansi": "^6.0.0", - "tiny-invariant": "^1.1.0", - "vscode-languageclient": "^7.0.0", - "vscode-languageserver": "^7.0.0", - "vscode-languageserver-textdocument": "^1.0.1", - "vscode-uri": "^3.0.2" - }, - "engines": { - "node": ">=14.16" - }, - "peerDependencies": { - "eslint": ">=7", - "meow": "^9.0.0", - "optionator": "^0.9.1", - "stylelint": ">=13", - "typescript": "*", - "vite": ">=2.0.0", - "vls": "*", - "vti": "*", - "vue-tsc": ">=1.3.9" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "meow": { - "optional": true - }, - "optionator": { - "optional": true - }, - "stylelint": { - "optional": true - }, - "typescript": { - "optional": true - }, - "vls": { - "optional": true - }, - "vti": { - "optional": true - }, - "vue-tsc": { - "optional": true - } - } - }, - "node_modules/vite-plugin-checker/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/vite-plugin-checker/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/vite-plugin-inspect": { - "version": "0.7.29", - "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.7.29.tgz", - "integrity": "sha512-vPbwChmLaHXu2ZXAtRlqXS7BTJoTNIhEjwLv55XGoPOtDOCMkh4X+ziy3/Y6ZhFRDvg0AggHLumn8YqEaIlMJg==", - "dev": true, - "dependencies": { - "@antfu/utils": "^0.7.4", - "@rollup/pluginutils": "^5.0.2", - "debug": "^4.3.4", - "fs-extra": "^11.1.1", - "open": "^9.1.0", - "picocolors": "^1.0.0", - "sirv": "^2.0.3" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "vite": "^3.1.0 || ^4.0.0" - } - }, - "node_modules/vite-plugin-inspect/node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vite-plugin-inspect/node_modules/open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", - "dev": true, - "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vite-plugin-vue-inspector": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-3.4.2.tgz", - "integrity": "sha512-q5OTkcZJqL78bwGJl1Zk8CNqtxZ9wP2udJYqyFIZzL1lTax0/oq7DhNkLrnPTxkJuf0QPZKdunb1vDyCByn4dQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-transform-typescript": "^7.21.3", - "@vue/babel-plugin-jsx": "^1.1.1", - "@vue/compiler-dom": "^3.2.47", - "esno": "^0.16.3", - "kolorist": "^1.7.0", - "magic-string": "^0.30.0", - "shell-quote": "^1.8.0" - }, - "peerDependencies": { - "vite": "^3.0.0-0 || ^4.0.0-0" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" - } - }, - "node_modules/vscode-jsonrpc": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", - "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==", - "dev": true, - "engines": { - "node": ">=8.0.0 || >=10.0.0" - } - }, - "node_modules/vscode-languageclient": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz", - "integrity": "sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4", - "semver": "^7.3.4", - "vscode-languageserver-protocol": "3.16.0" - }, - "engines": { - "vscode": "^1.52.0" - } - }, - "node_modules/vscode-languageserver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", - "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", - "dev": true, - "dependencies": { - "vscode-languageserver-protocol": "3.16.0" - }, - "bin": { - "installServerIntoExtension": "bin/installServerIntoExtension" - } - }, - "node_modules/vscode-languageserver-protocol": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", - "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", - "dev": true, - "dependencies": { - "vscode-jsonrpc": "6.0.0", - "vscode-languageserver-types": "3.16.0" - } - }, - "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", - "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", - "dev": true - }, - "node_modules/vscode-languageserver-types": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", - "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", - "dev": true - }, - "node_modules/vscode-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", - "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", - "dev": true - }, - "node_modules/vue": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", - "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", - "dev": true, - "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-bundle-renderer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vue-bundle-renderer/-/vue-bundle-renderer-1.0.3.tgz", - "integrity": "sha512-EfjX+5TTUl70bki9hPuVp+54JiZOvFIfoWBcfXsSwLzKEiDYyHNi5iX8srnqLIv3YRnvxgbntdcG1WPq0MvffQ==", - "dev": true, - "dependencies": { - "ufo": "^1.1.1" - } - }, - "node_modules/vue-component-meta": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/vue-component-meta/-/vue-component-meta-1.8.1.tgz", - "integrity": "sha512-iRPYFI6cECRhrdt6FngSAbzOBvzmibBisFPFY2SN8M64b4HuRcNsPsJhakuKuEK0JSinp1e88N2qLZ451WgMEQ==", - "dev": true, - "dependencies": { - "@volar/typescript": "1.7.8", - "@vue/language-core": "1.8.1", - "typesafe-path": "^0.2.2", - "vue-component-type-helpers": "1.8.1" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-component-type-helpers": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-1.8.1.tgz", - "integrity": "sha512-+pNNtPARczRWVgoQCBXSgJdpnZic7rSmnvEV3IWQLwZcf1RSVjniQ+JnmYGm+9BFWX0MN0hqrIWVyC7HDhoXhA==", - "dev": true - }, - "node_modules/vue-demi": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", - "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/vue-devtools-stub": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/vue-devtools-stub/-/vue-devtools-stub-0.1.0.tgz", - "integrity": "sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==", - "dev": true - }, - "node_modules/vue-eslint-parser": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz", - "integrity": "sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/vue-eslint-parser/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/vue-router": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.2.tgz", - "integrity": "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==", - "dev": true, - "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/wait-on": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz", - "integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==", - "dev": true, - "dependencies": { - "axios": "^0.27.2", - "joi": "^17.7.0", - "lodash": "^4.17.21", - "minimist": "^1.2.7", - "rxjs": "^7.8.0" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", - "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "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", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "dev": true, - "dependencies": { - "cuint": "^0.2.2" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zhead": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zhead/-/zhead-2.0.4.tgz", - "integrity": "sha512-V4R94t3ifk9AURym6OskbKcnowzgp5Z88tkoL/NF67vyryNxC62u6mx5F1Ux4oh4+YN7FFmKYEyWy6m5kfPH6g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/harlan-zw" - } - }, - "node_modules/zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/docs/package.json b/docs/package.json deleted file mode 100755 index 0bcfdc442..000000000 --- a/docs/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "docus-starter", - "version": "0.1.0", - "private": true, - "scripts": { - "dev": "nuxi dev", - "build": "nuxi build", - "generate": "nuxi generate", - "preview": "nuxi preview", - "lint": "eslint ." - }, - "devDependencies": { - "@nuxt-themes/docus": "^1.12.1", - "@nuxt/devtools": "^0.5.5", - "@nuxt/eslint-config": "^0.1.1", - "@nuxtjs/plausible": "^0.2.1", - "@types/node": "^20.2.5", - "eslint": "^8.42.0", - "nuxt": "^3.5.3" - } -} diff --git a/docs/public/cover.png b/docs/public/cover.png deleted file mode 100644 index c8b34731aa42acdcb19a839071ccb7aaf1333fee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219401 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ⅇnN5EkQj|jI*pd$jzW6+>Es@g5~h3ggd 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�yY|py0Le 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
n@`x`n4@h)v>HwPzldn&ayMFA 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≧Yd3 zzezNrn-xvGQ=LXkvxWuE(8OjdO9qT73REQU{I@gsOUn9qIX1{6=Pxty8C{;mr*MAl z)^1-q;sJIqYC6YB;f}4&wD6D#8Jqxnqcoh)4UzF%QsA$HLEC#jkbJw5i0k#`9C9ol zVaC)X%s0%X6FZ;}nE|*8hDF6Q%CZFwv=_f)-&?L`3KHoRlu14CCsfCiR)829`kL*o z&-+68qy0`2yWf`G*`3M0!#^bPyBS=DXdzU#Rw3Qxk!_2%<5W?_`D{zpQJ4BG$jRRp zIr~|XN@5?aW9R9>glmdwI?~$ox8b&q6>&ojr+Skj+^#H3knmvV7yn91c0Ty|-!Ns& zOy3x~kmDaBdRRRJWf%IA1EFcI(%<^C=f+u_LeWmqjjz*VYn7)h!~Z7?=oFC%>-2Xn zY%w>Y4+=EmK**lB+Z+5|7ipv|&xjnS!d;+L0Ak?;ZChSc6w!K-&Wq2@{jYHN5^yxd zqT+pwb-;>2@Y-w^u?Y&`5gIeWI$v95=uish)$^Prbt^ z0~M_5Z$HpV58Nr^@6}GGoikLIJsJ0=QB5CRP@k|55AH70dFKsG8vVNF=GkLxe?Q7g z%^}wAMz3qhc7sorJ90x&(`;*K1+r{{!F>(2D2LG)a0w2>a;T#O!Gi?|i ze`xbs&|mRyxz<1KCm%CAeMG9kWlPD0TQj+yPAa*sQD0;hv>UQiv|BgggK@NA)I`CSI=rP4|=$u@41Ib0oInwdoui9H^SW@?1 zq?*x;kj2ZHYiZ>V)!{4vPxy`brkKJ1j!x*3uF9+I6%A+V?q)|wAn1J-@l8*GgGLHJ z^E=Uf(s6-TPTZ?ENrG)A+tZZCZi300-)>q>8Al{(w#$Kcj{5vlEP$~m zGQWWa$Mtd7rLO>q!D-+c-w$9z;R#}fN&`_7pjyC3in$DCijWVYeGA$-eiq7FhL0=t zo@5K{DWQ4Kc}iyW_-b}GW%!4;1)*J3wHF4{=G`)YqHnNUh1yd^o>)T#7qD-P=wkf zjH$Y%vMMBcah_Q2ytr^Y~AeMDD9lDh{${rQm4HgBi zU>;1RkspkQq3!JgOwu2K_80}1F%Mu-h^cMjWp!@?BQYsk`J=s}#FE+y`Wxp_ceRvw zVwQx+V;h*P-MPIxxnr2{&#}kR>I~sl610RU&m*&?9!UDX`+O5TNme8$;chz!Sg?L&xOR2Dq#$m6 zwzRgHy0P80Rw^Qcv{m|PW_#a7cUs(aZccyS2>>8`HeEqSjbJQiy@ji% z@K@cNmcRPKr86JIDNB)i=l-*FWj*g`j_{^YYU!k%175+c`Cqc^g{s@jn~?*9t3CxS-W7}l;ObB$IA#fCl7>I8kR#+fn z0TYMM-?IKRmHj5`*EhS}{@)(xbN2=x39<9#p>Uas6lDh3aim++BI)rgH5u8l)yhRz z)+hQRL_{8fl3+YXd$?!&5j{H5mhS?ZDiT4qs>CUM;IiXE+kc|1!9X-Baf+rl6^fm* zy2;#*nAM|8B;m3vIP@Bgh==PC`RWS~J)Bf@`Al2RoVP9}Ia8+J0j zt`o6hbM7Xbun{_FJVNWXJ!VsHwYVfZl2}NCvDm0ujW*a@5kdhn{G>frj~m{KcsrBx-b@w0 zt-5&(i`-0bY?;~0Nc;dul148~mLgokcU%Be>AYRgkMe@Z0gIdu515ZC*u<`f%h7<3 N>I+S!as`X9{~tm0i?;v( diff --git a/docs/public/favicon.ico b/docs/public/favicon.ico deleted file mode 100644 index dfe416355aca877e4786c8d5120d50c176ab604b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 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 Date: Mon, 21 Aug 2023 12:30:49 +0800 Subject: [PATCH 02/11] feat: add eslint as root --- .eslintrc.cjs | 17 + package.json | 8 +- pnpm-lock.yaml | 1008 +++++++++++++++++++----------------------------- 3 files changed, 424 insertions(+), 609 deletions(-) create mode 100644 .eslintrc.cjs diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 000000000..b09f2a4c2 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,17 @@ +const process = require('node:process') + +process.env.ESLINT_TSCONFIG = 'tsconfig.json' + +module.exports = { + extends: '@antfu', + + rules: { + '@typescript-eslint/no-non-null-asserted-optional-chain': 'off', + '@typescript-eslint/ban-ts-comment': 'warn', + 'import/first': 'off', + 'import/order': 'off', + 'symbol-description': 'off', + 'no-console': 'warn', + 'max-statements-per-line': ['error', { max: 2 }], + }, +} diff --git a/package.json b/package.json index 2f8f05052..5625b1360 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,12 @@ "scripts": { "story:dev": "pnpm --filter histoire story:dev", "build": "pnpm run -r --filter=!docs build", - "start": "cd packages/radix-vue && pnpm i && pnpm run build && cd ../../playground/vue3 && pnpm i && pnpm i ../../packages/radix-vue && pnpm run dev" + "lint": "eslint .", + "lint:fix": "eslint . --fix" + }, + "devDependencies": { + "@antfu/eslint-config": "^0.39.7", + "eslint": "^8.43.0", + "pnpm": "^8.6.12" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 84ca6ae4f..4a5c98881 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,17 @@ settings: importers: - .: {} + .: + devDependencies: + '@antfu/eslint-config': + specifier: ^0.39.7 + version: 0.39.7(eslint@8.43.0)(typescript@5.1.3) + eslint: + specifier: ^8.43.0 + version: 8.43.0 + pnpm: + specifier: ^8.6.12 + version: 8.6.12 .histoire: devDependencies: @@ -95,9 +105,6 @@ importers: '@rollup/plugin-alias': specifier: ^5.0.0 version: 5.0.0 - '@rushstack/eslint-patch': - specifier: ^1.3.2 - version: 1.3.2 '@testing-library/vue': specifier: ^7.0.0 version: 7.0.0(@vue/compiler-sfc@3.3.4)(vue@3.3.4) @@ -116,12 +123,6 @@ importers: '@vitest/coverage-istanbul': specifier: ^0.33.0 version: 0.33.0(vitest@0.33.0) - '@vue/eslint-config-prettier': - specifier: ^7.1.0 - version: 7.1.0(eslint@8.43.0)(prettier@2.8.8) - '@vue/eslint-config-typescript': - specifier: ^11.0.3 - version: 11.0.3(eslint-plugin-vue@9.15.0)(eslint@8.43.0)(typescript@5.1.3) '@vue/test-utils': specifier: ^2.4.0 version: 2.4.0(vue@3.3.4) @@ -140,18 +141,9 @@ importers: dts-bundle: specifier: ^0.7.3 version: 0.7.3 - eslint: - specifier: ^8.43.0 - version: 8.43.0 - eslint-plugin-vue: - specifier: ^9.15.0 - version: 9.15.0(eslint@8.43.0) jsdom: specifier: ^22.1.0 version: 22.1.0 - npm-run-all: - specifier: ^4.1.5 - version: 4.1.5 prettier: specifier: ^2.8.8 version: 2.8.8 @@ -199,7 +191,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 /@antfu/eslint-config-basic@0.39.7(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.43.0)(typescript@5.1.3): resolution: {integrity: sha512-R7usUebEr+T5EcZ8sMy2/naNU5etpXtzC34wHCEBETlmYVGQpkYcpSztDy67T3B3Ywj95VsgGLDjW77fANW/LQ==} @@ -212,7 +204,7 @@ packages: eslint-plugin-html: 7.1.0 eslint-plugin-import: /eslint-plugin-i@2.27.5-3(@typescript-eslint/parser@5.62.0)(eslint@8.43.0) eslint-plugin-jsonc: 2.9.0(eslint@8.43.0) - eslint-plugin-markdown: 3.0.0(eslint@8.43.0) + eslint-plugin-markdown: 3.0.1(eslint@8.43.0) eslint-plugin-n: 16.0.1(eslint@8.43.0) eslint-plugin-no-only-tests: 3.1.0 eslint-plugin-promise: 6.1.1(eslint@8.43.0) @@ -257,7 +249,7 @@ packages: '@antfu/eslint-config-basic': 0.39.7(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint@8.43.0)(typescript@5.1.3) '@antfu/eslint-config-ts': 0.39.7(eslint@8.43.0)(typescript@5.1.3) eslint: 8.43.0 - eslint-plugin-vue: 9.15.1(eslint@8.43.0) + eslint-plugin-vue: 9.17.0(eslint@8.43.0) local-pkg: 0.4.3 transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' @@ -285,7 +277,7 @@ packages: eslint-plugin-n: 16.0.1(eslint@8.43.0) eslint-plugin-promise: 6.1.1(eslint@8.43.0) eslint-plugin-unicorn: 47.0.0(eslint@8.43.0) - eslint-plugin-vue: 9.15.1(eslint@8.43.0) + eslint-plugin-vue: 9.17.0(eslint@8.43.0) eslint-plugin-yml: 1.8.0(eslint@8.43.0) jsonc-eslint-parser: 2.3.0 yaml-eslint-parser: 1.2.2 @@ -297,30 +289,31 @@ packages: - typescript dev: true - /@babel/code-frame@7.22.5: - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + /@babel/code-frame@7.22.10: + resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.5 + '@babel/highlight': 7.22.10 + chalk: 2.4.2 /@babel/compat-data@7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} - /@babel/core@7.22.9: - resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} + /@babel/core@7.22.10: + resolution: {integrity: sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) - '@babel/helpers': 7.22.6 - '@babel/parser': 7.22.7 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) + '@babel/helpers': 7.22.10 + '@babel/parser': 7.22.10 '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -329,48 +322,45 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.22.9: - resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} + /@babel/generator@7.22.10: + resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} + /@babel/helper-compilation-targets@7.22.10: + resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.9 + browserslist: 4.21.10 lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} + /@babel/helper-create-class-features-plugin@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 @@ -385,34 +375,34 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.5 - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-member-expression-to-functions@7.22.5: resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-module-imports@7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): + /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-simple-access': 7.22.5 @@ -423,7 +413,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -431,13 +421,13 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9): + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 @@ -447,20 +437,20 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} @@ -474,69 +464,69 @@ packages: resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} engines: {node: '>=6.9.0'} - /@babel/helpers@7.22.6: - resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} + /@babel/helpers@7.22.10: + resolution: {integrity: sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 transitivePeerDependencies: - supports-color - /@babel/highlight@7.22.5: - resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + /@babel/highlight@7.22.10: + resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.22.7: - resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} + /@babel/parser@7.22.10: + resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typescript@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==} + /@babel/plugin-transform-typescript@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.10) dev: true - /@babel/runtime@7.22.6: - resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} + /@babel/runtime@7.22.10: + resolution: {integrity: sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.11 + regenerator-runtime: 0.14.0 dev: true /@babel/standalone@7.22.10: @@ -548,29 +538,29 @@ packages: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/code-frame': 7.22.10 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 - /@babel/traverse@7.22.8: - resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} + /@babel/traverse@7.22.10: + resolution: {integrity: sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types@7.22.5: - resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} + /@babel/types@7.22.10: + resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 @@ -580,27 +570,27 @@ packages: /@codemirror/commands@6.2.4: resolution: {integrity: sha512-42lmDqVH0ttfilLShReLXsDfASKLXzfyC36bzwcqzox9PlHulMcsUOfHXNo2X2aFMVNUoQ7j+d4q5bnfseYoOA==} dependencies: - '@codemirror/language': 6.8.0 + '@codemirror/language': 6.9.0 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.15.0 - '@lezer/common': 1.0.3 + '@codemirror/view': 6.16.0 + '@lezer/common': 1.0.4 dev: true /@codemirror/lang-json@6.0.1: resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} dependencies: - '@codemirror/language': 6.8.0 + '@codemirror/language': 6.9.0 '@lezer/json': 1.0.1 dev: true - /@codemirror/language@6.8.0: - resolution: {integrity: sha512-r1paAyWOZkfY0RaYEZj3Kul+MiQTEbDvYqf8gPGaRvNneHXCmfSaAVFjwRUPlgxS8yflMxw2CTu6uCMp8R8A2g==} + /@codemirror/language@6.9.0: + resolution: {integrity: sha512-nFu311/0ne/qGuGCL3oKuktBgzVOaxCHZPZv1tLSZkNjPYxxvkjSbzno3MlErG2tgw1Yw1yF8BxMCegeMXqpiw==} dependencies: '@codemirror/state': 6.2.1 - '@codemirror/view': 6.15.0 - '@lezer/common': 1.0.3 + '@codemirror/view': 6.16.0 + '@lezer/common': 1.0.4 '@lezer/highlight': 1.1.6 - '@lezer/lr': 1.3.9 + '@lezer/lr': 1.3.10 style-mod: 4.0.3 dev: true @@ -608,7 +598,7 @@ packages: resolution: {integrity: sha512-6VZ44Ysh/Zn07xrGkdtNfmHCbGSHZzFBdzWi0pbd7chAQ/iUcpLGX99NYRZTa7Ugqg4kEHCqiHhcZnH0gLIgSg==} dependencies: '@codemirror/state': 6.2.1 - '@codemirror/view': 6.15.0 + '@codemirror/view': 6.16.0 crelt: 1.0.6 dev: true @@ -619,14 +609,14 @@ packages: /@codemirror/theme-one-dark@6.1.2: resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} dependencies: - '@codemirror/language': 6.8.0 + '@codemirror/language': 6.9.0 '@codemirror/state': 6.2.1 - '@codemirror/view': 6.15.0 + '@codemirror/view': 6.16.0 '@lezer/highlight': 1.1.6 dev: true - /@codemirror/view@6.15.0: - resolution: {integrity: sha512-3hPeBoD4+pUpzezhKSoARQyFjUP8g4zoI5AIy72+jKqWkE6fp0KV3H/dyTxNfig4jyW7x7ypp060/etvv/4yuA==} + /@codemirror/view@6.16.0: + resolution: {integrity: sha512-1Z2HkvkC3KR/oEZVuW9Ivmp8TWLzGEd8T8TA04TTwPvqogfkHBdYSlflytDOqmkUxM2d1ywTg7X2dU5mC+SXvg==} dependencies: '@codemirror/state': 6.2.1 style-mod: 4.0.3 @@ -865,22 +855,22 @@ packages: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: eslint: 8.43.0 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.20.0 + globals: 13.21.0 ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -895,13 +885,18 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@floating-ui/core@1.3.1: - resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} + /@floating-ui/core@1.4.1: + resolution: {integrity: sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==} + dependencies: + '@floating-ui/utils': 0.1.1 /@floating-ui/dom@1.4.2: resolution: {integrity: sha512-VKmvHVatWnewmGGy+7Mdy4cTJX71Pli6v/Wjb5RQBuq5wjUYx+Ef+kRThi8qggZqDgD8CogCpqhRoVp3+yQk+g==} dependencies: - '@floating-ui/core': 1.3.1 + '@floating-ui/core': 1.4.1 + + /@floating-ui/utils@0.1.1: + resolution: {integrity: sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==} /@floating-ui/vue@1.0.1(vue@3.3.4): resolution: {integrity: sha512-HZmmNWaztKYKOQxXvMzJYCYtfgG07cL/bPQvZ92AFG3Ktw71bvvLKXsZDAyIxGpqRo9WiTPsYknnSuLV2H/riA==} @@ -912,12 +907,12 @@ packages: - '@vue/composition-api' - vue - /@histoire/app@0.16.1(vite@4.3.9): - resolution: {integrity: sha512-13komnhVk1Pk0wMmkJKDPWT8RKpA5HfAbeeXSHAq29pvFP9Faq+dAa62g1wqOpoyJD5C7SkI0OPI3eJwJHgTiQ==} + /@histoire/app@0.16.5(vite@4.3.9): + resolution: {integrity: sha512-m+rCZnz6lnaIbVK1R9UBZFgU91/V1RnZqVaMq6KjUuatuxUUS1M4HgsFT5Y74Utltq0U3i0RuIb5h20z6M7nHg==} dependencies: - '@histoire/controls': 0.16.1(vite@4.3.9) - '@histoire/shared': 0.16.1(vite@4.3.9) - '@histoire/vendors': 0.16.0 + '@histoire/controls': 0.16.5(vite@4.3.9) + '@histoire/shared': 0.16.5(vite@4.3.9) + '@histoire/vendors': 0.16.5 '@types/flexsearch': 0.7.3 flexsearch: 0.7.21 shiki-es: 0.2.0 @@ -925,18 +920,18 @@ packages: - vite dev: true - /@histoire/controls@0.16.1(vite@4.3.9): - resolution: {integrity: sha512-Ot/J/LPzUexn+fLrJrWu3jUakx9aVSJWKnriiJSmEodAxJq+4mrprX3xS0bnzieud19pJc3mzC/MSD94urTbHA==} + /@histoire/controls@0.16.5(vite@4.3.9): + resolution: {integrity: sha512-2Yng6fPbBOz9EMPb4arZfvnK4/SDoxA0jYaqjtuby/WDFXk/Lvp3je8xs8PbPAzXralDDSqCu02cfBQy4bUQqg==} dependencies: '@codemirror/commands': 6.2.4 '@codemirror/lang-json': 6.0.1 - '@codemirror/language': 6.8.0 + '@codemirror/language': 6.9.0 '@codemirror/lint': 6.4.0 '@codemirror/state': 6.2.1 '@codemirror/theme-one-dark': 6.1.2 - '@codemirror/view': 6.15.0 - '@histoire/shared': 0.16.1(vite@4.3.9) - '@histoire/vendors': 0.16.0 + '@codemirror/view': 6.16.0 + '@histoire/shared': 0.16.5(vite@4.3.9) + '@histoire/vendors': 0.16.5 transitivePeerDependencies: - vite dev: true @@ -947,9 +942,9 @@ packages: histoire: ^0.16.1 vue: ^3.2.47 dependencies: - '@histoire/controls': 0.16.1(vite@4.3.9) - '@histoire/shared': 0.16.1(vite@4.3.9) - '@histoire/vendors': 0.16.0 + '@histoire/controls': 0.16.5(vite@4.3.9) + '@histoire/shared': 0.16.5(vite@4.3.9) + '@histoire/vendors': 0.16.5 change-case: 4.1.2 globby: 13.2.2 histoire: 0.16.2(vite@4.3.9) @@ -960,12 +955,12 @@ packages: - vite dev: true - /@histoire/shared@0.16.1(vite@4.3.9): - resolution: {integrity: sha512-bcySHGC6kcZ1U9OZUcBQCROTBygTZ9T9MlqfeGtBtJWXGdmHPZ/64elZOY36O8gUAMF89Q08EIVe5cIQ0SJ3Uw==} + /@histoire/shared@0.16.5(vite@4.3.9): + resolution: {integrity: sha512-iLz/y5SiKERZGK4Ux2xXaYi89w2+ecyYTPHi62YitzfHMp7YXYi8Bk48T2NfU1HbZIi1NzbHoY8c4F6fiUG2Ag==} peerDependencies: vite: ^2.9.0 || ^3.0.0 || ^4.0.0 dependencies: - '@histoire/vendors': 0.16.0 + '@histoire/vendors': 0.16.5 '@types/fs-extra': 9.0.13 '@types/markdown-it': 12.2.3 chokidar: 3.5.3 @@ -974,8 +969,8 @@ packages: vite: 4.3.9(@types/node@18.16.18) dev: true - /@histoire/vendors@0.16.0: - resolution: {integrity: sha512-MVr3P2q5Q9UiLJJT99b+j2ABCSerQG4VnUeCr5+eOxyEmoIFz1a0KGJimzqQM0EoVnMQmiaNN3WhuUYG+DWh/w==} + /@histoire/vendors@0.16.5: + resolution: {integrity: sha512-25a90vugBz3KH3VzuddxuKeAjBQ1+osXQy2QICQO0kUXAtGHNj4u8T4iG5AgQD9CQXf6dc5+pnPoFZADHlW9VQ==} dev: true /@humanwhocodes/config-array@0.11.10: @@ -1041,75 +1036,72 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.18: - resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 - /@lezer/common@1.0.3: - resolution: {integrity: sha512-JH4wAXCgUOcCGNekQPLhVeUtIqjH0yPBs7vvUdSjyQama9618IOKFJwkv2kcqdhF0my8hQEgCTEJU0GIgnahvA==} + /@lezer/common@1.0.4: + resolution: {integrity: sha512-lZHlk8p67x4aIDtJl6UQrXSOP6oi7dQR3W/geFVrENdA1JDaAJWldnVqVjPMJupbTKbzDfFcePfKttqVidS/dg==} dev: true /@lezer/highlight@1.1.6: resolution: {integrity: sha512-cmSJYa2us+r3SePpRCjN5ymCqCPv+zyXmDl0ciWtVaNiORT/MxM7ZgOMQZADD0o51qOaOg24qc/zBViOIwAjJg==} dependencies: - '@lezer/common': 1.0.3 + '@lezer/common': 1.0.4 dev: true /@lezer/json@1.0.1: resolution: {integrity: sha512-nkVC27qiEZEjySbi6gQRuMwa2sDu2PtfjSgz0A4QF81QyRGm3kb2YRzLcOPcTEtmcwvrX/cej7mlhbwViA4WJw==} dependencies: '@lezer/highlight': 1.1.6 - '@lezer/lr': 1.3.9 + '@lezer/lr': 1.3.10 dev: true - /@lezer/lr@1.3.9: - resolution: {integrity: sha512-XPz6dzuTHlnsbA5M2DZgjflNQ+9Hi5Swhic0RULdp3oOs3rh6bqGZolosVqN/fQIT8uNiepzINJDnS39oweTHQ==} + /@lezer/lr@1.3.10: + resolution: {integrity: sha512-BZfVvf7Re5BIwJHlZXbJn9L8lus5EonxQghyn+ih8Wl36XMFBPTXC0KM0IdUtj9w/diPHsKlXVgL+AlX2jYJ0Q==} dependencies: - '@lezer/common': 1.0.3 + '@lezer/common': 1.0.4 dev: true - /@microsoft/api-extractor-model@7.27.4(@types/node@18.16.18): - resolution: {integrity: sha512-HjqQFmuGPOS20rtnu+9Jj0QrqZyR59E+piUWXPMZTTn4jaZI+4UmsHSf3Id8vyueAhOBH2cgwBuRTE5R+MfSMw==} + /@microsoft/api-extractor-model@7.27.6(@types/node@18.16.18): + resolution: {integrity: sha512-eiCnlayyum1f7fS2nA9pfIod5VCNR1G+Tq84V/ijDrKrOFVa598BLw145nCsGDMoFenV6ajNi2PR5WCwpAxW6Q==} dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.59.5(@types/node@18.16.18) + '@rushstack/node-core-library': 3.59.7(@types/node@18.16.18) transitivePeerDependencies: - '@types/node' dev: true - /@microsoft/api-extractor@7.36.2(@types/node@18.16.18): - resolution: {integrity: sha512-ONe/jOmTZtR3OjTkWKHmeSV1P5ozbHDxHr6FV3KoWyIl1AcPk2B3dmvVBM5eOlZB5bgM66nxcWQTZ6msQo2hHg==} + /@microsoft/api-extractor@7.36.4(@types/node@18.16.18): + resolution: {integrity: sha512-21UECq8C/8CpHT23yiqTBQ10egKUacIpxkPyYR7hdswo/M5yTWdBvbq+77YC9uPKQJOUfOD1FImBQ1DzpsdeQQ==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.27.4(@types/node@18.16.18) + '@microsoft/api-extractor-model': 7.27.6(@types/node@18.16.18) '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.59.5(@types/node@18.16.18) - '@rushstack/rig-package': 0.4.0 - '@rushstack/ts-command-line': 4.15.1 + '@rushstack/node-core-library': 3.59.7(@types/node@18.16.18) + '@rushstack/rig-package': 0.4.1 + '@rushstack/ts-command-line': 4.15.2 colors: 1.2.5 lodash: 4.17.21 - resolve: 1.22.3 - semver: 7.3.8 + resolve: 1.22.4 + semver: 7.5.4 source-map: 0.6.1 typescript: 5.0.4 transitivePeerDependencies: @@ -1158,7 +1150,7 @@ packages: globby: 13.2.2 hash-sum: 2.0.0 ignore: 5.2.4 - jiti: 1.19.1 + jiti: 1.19.3 knitwork: 1.0.0 mlly: 1.4.0 pathe: 1.1.1 @@ -1182,8 +1174,8 @@ packages: pathe: 1.1.1 pkg-types: 1.0.3 postcss-import-resolver: 2.0.0 - std-env: 3.3.3 - ufo: 1.1.2 + std-env: 3.4.0 + ufo: 1.2.0 unimport: 3.1.3(rollup@2.79.1) untyped: 1.4.0 transitivePeerDependencies: @@ -1240,7 +1232,7 @@ packages: glob: 7.2.3 is-reference: 1.2.1 magic-string: 0.25.9 - resolve: 1.22.3 + resolve: 1.22.4 rollup: 2.79.1 dev: false @@ -1264,7 +1256,7 @@ packages: deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 - resolve: 1.22.3 + resolve: 1.22.4 rollup: 2.79.1 dev: false @@ -1298,8 +1290,8 @@ packages: picomatch: 2.3.1 dev: false - /@rollup/pluginutils@5.0.2(rollup@2.79.1): - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + /@rollup/pluginutils@5.0.3(rollup@2.79.1): + resolution: {integrity: sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0 @@ -1312,12 +1304,8 @@ packages: picomatch: 2.3.1 rollup: 2.79.1 - /@rushstack/eslint-patch@1.3.2: - resolution: {integrity: sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==} - dev: true - - /@rushstack/node-core-library@3.59.5(@types/node@18.16.18): - resolution: {integrity: sha512-1IpV7LufrI1EoVO8hYsb3t6L8L+yp40Sa0OaOV2CIu1zx4e6ZeVNaVIEXFgMXBKdGXkAh21MnCaIzlDNpG6ZQw==} + /@rushstack/node-core-library@3.59.7(@types/node@18.16.18): + resolution: {integrity: sha512-ln1Drq0h+Hwa1JVA65x5mlSgUrBa1uHL+V89FqVWQgXd1vVIMhrtqtWGQrhTnFHxru5ppX+FY39VWELF/FjQCw==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -1329,20 +1317,20 @@ packages: fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.3 - semver: 7.3.8 + resolve: 1.22.4 + semver: 7.5.4 z-schema: 5.0.5 dev: true - /@rushstack/rig-package@0.4.0: - resolution: {integrity: sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw==} + /@rushstack/rig-package@0.4.1: + resolution: {integrity: sha512-AGRwpqlXNSp9LhUSz4HKI9xCluqQDt/obsQFdv/NYIekF3pTTPzc+HbQsIsjVjYnJ3DcmxOREVMhvrMEjpiq6g==} dependencies: - resolve: 1.22.3 + resolve: 1.22.4 strip-json-comments: 3.1.1 dev: true - /@rushstack/ts-command-line@4.15.1: - resolution: {integrity: sha512-EL4jxZe5fhb1uVL/P/wQO+Z8Rc8FMiWJ1G7VgnPDvdIt5GVjRfK7vwzder1CZQiX3x0PY6uxENYLNGTFd1InRQ==} + /@rushstack/ts-command-line@4.15.2: + resolution: {integrity: sha512-5+C2uoJY8b+odcZD6coEe2XNC4ZjGB4vCMESbqW/8DHRWC/qIHfANdmN9F1wz/lAgxz72i7xRoVtPY2j7e4gpQ==} dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 @@ -1358,8 +1346,8 @@ packages: resolution: {integrity: sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==} engines: {node: '>=14'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/runtime': 7.22.6 + '@babel/code-frame': 7.22.10 + '@babel/runtime': 7.22.10 '@types/aria-query': 5.0.1 aria-query: 5.1.3 chalk: 4.1.2 @@ -1375,7 +1363,7 @@ packages: '@vue/compiler-sfc': '>= 3' vue: '>= 3' dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 '@testing-library/dom': 9.3.1 '@vue/compiler-sfc': 3.3.4 '@vue/test-utils': 2.4.0(vue@3.3.4) @@ -1513,7 +1501,7 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.2 '@typescript-eslint/parser': 5.62.0(eslint@8.43.0)(typescript@5.1.3) '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0(eslint@8.43.0)(typescript@5.1.3) @@ -1629,7 +1617,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 dev: true /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.9)(vue@3.3.4): @@ -1639,9 +1627,9 @@ packages: vite: ^4.0.0 vue: ^3.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-transform-typescript': 7.22.9(@babel/core@7.22.9) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.22.10) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.10) vite: 4.3.9(@types/node@18.16.18) vue: 3.3.4 transitivePeerDependencies: @@ -1666,9 +1654,9 @@ packages: dependencies: istanbul-lib-coverage: 3.2.0 istanbul-lib-instrument: 5.2.1 - istanbul-lib-report: 3.0.0 + istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 + istanbul-reports: 3.1.6 test-exclude: 6.0.0 vitest: 0.33.0(jsdom@22.1.0) transitivePeerDependencies: @@ -1694,9 +1682,9 @@ packages: /@vitest/snapshot@0.33.0: resolution: {integrity: sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==} dependencies: - magic-string: 0.30.1 + magic-string: 0.30.2 pathe: 1.1.1 - pretty-format: 29.6.1 + pretty-format: 29.6.2 dev: true /@vitest/spy@0.33.0: @@ -1710,7 +1698,13 @@ packages: dependencies: diff-sequences: 29.4.3 loupe: 2.3.6 - pretty-format: 29.6.1 + pretty-format: 29.6.2 + dev: true + + /@volar/language-core@1.10.1: + resolution: {integrity: sha512-JnsM1mIPdfGPxmoOcK1c7HYAsL6YOv0TCJ4aW3AXPZN/Jb4R77epDyMZIVudSGjWMbvv/JfUa+rQ+dGKTmgwBA==} + dependencies: + '@volar/source-map': 1.10.1 dev: true /@volar/language-core@1.7.8: @@ -1719,6 +1713,12 @@ packages: '@volar/source-map': 1.7.8 dev: true + /@volar/source-map@1.10.1: + resolution: {integrity: sha512-3/S6KQbqa7pGC8CxPrg69qHLpOvkiPHGJtWPkI/1AXCsktkJ6gIk/5z4hyuMp8Anvs6eS/Kvp/GZa3ut3votKA==} + dependencies: + muggle-string: 0.3.1 + dev: true + /@volar/source-map@1.7.8: resolution: {integrity: sha512-g2dtC2kOghvfzMDWeODIo4HO1Ml4hxzPTZyAFDz+YhRF9HjZYJSCaWaVuPZ+z0kY+T2daOHYA10GdrWQ5q0teA==} dependencies: @@ -1735,17 +1735,17 @@ packages: resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} dev: true - /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.22.9): + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.22.10): resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-module-imports': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 '@vue/babel-helper-vue-transform-on': 1.1.5 camelcase: 6.3.0 html-tags: 3.3.1 @@ -1757,7 +1757,7 @@ packages: /@vue/compiler-core@3.3.4: resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: - '@babel/parser': 7.22.7 + '@babel/parser': 7.22.10 '@vue/shared': 3.3.4 estree-walker: 2.0.2 source-map-js: 1.0.2 @@ -1771,14 +1771,14 @@ packages: /@vue/compiler-sfc@3.3.4: resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} dependencies: - '@babel/parser': 7.22.7 + '@babel/parser': 7.22.10 '@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.1 + magic-string: 0.30.2 postcss: 8.4.26 source-map-js: 1.0.2 @@ -1788,49 +1788,35 @@ packages: '@vue/compiler-dom': 3.3.4 '@vue/shared': 3.3.4 - /@vue/eslint-config-prettier@7.1.0(eslint@8.43.0)(prettier@2.8.8): - resolution: {integrity: sha512-Pv/lVr0bAzSIHLd9iz0KnvAr4GKyCEl+h52bc4e5yWuDVtLgFwycF7nrbWTAQAS+FU6q1geVd07lc6EWfJiWKQ==} - peerDependencies: - eslint: '>= 7.28.0' - prettier: '>= 2.0.0' - dependencies: - eslint: 8.43.0 - eslint-config-prettier: 8.8.0(eslint@8.43.0) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.8) - prettier: 2.8.8 - dev: true - - /@vue/eslint-config-typescript@11.0.3(eslint-plugin-vue@9.15.0)(eslint@8.43.0)(typescript@5.1.3): - resolution: {integrity: sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw==} - engines: {node: ^14.17.0 || >=16.0.0} + /@vue/language-core@1.8.1(typescript@5.1.3): + resolution: {integrity: sha512-pumv3k4J7P58hVh4YGRM9Qz3HaAr4TlFWM9bnVOkZ/2K9o2CK1lAP2y9Jw+Z0+mNL4F2uWQqnAPzj3seLyfpDA==} peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 - eslint-plugin-vue: ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.43.0)(typescript@5.1.3) - '@typescript-eslint/parser': 5.62.0(eslint@8.43.0)(typescript@5.1.3) - eslint: 8.43.0 - eslint-plugin-vue: 9.15.0(eslint@8.43.0) + '@volar/language-core': 1.7.8 + '@volar/source-map': 1.7.8 + '@vue/compiler-dom': 3.3.4 + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 + minimatch: 9.0.3 + muggle-string: 0.3.1 typescript: 5.1.3 - vue-eslint-parser: 9.3.1(eslint@8.43.0) - transitivePeerDependencies: - - supports-color + vue-template-compiler: 2.7.14 dev: true - /@vue/language-core@1.8.1(typescript@5.1.3): - resolution: {integrity: sha512-pumv3k4J7P58hVh4YGRM9Qz3HaAr4TlFWM9bnVOkZ/2K9o2CK1lAP2y9Jw+Z0+mNL4F2uWQqnAPzj3seLyfpDA==} + /@vue/language-core@1.8.8(typescript@5.1.3): + resolution: {integrity: sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 1.7.8 - '@volar/source-map': 1.7.8 + '@volar/language-core': 1.10.1 + '@volar/source-map': 1.10.1 '@vue/compiler-dom': 3.3.4 '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 @@ -1843,7 +1829,7 @@ packages: /@vue/reactivity-transform@3.3.4: resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} dependencies: - '@babel/parser': 7.22.7 + '@babel/parser': 7.22.10 '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 estree-walker: 2.0.2 @@ -2153,9 +2139,9 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.9 - caniuse-lite: 1.0.30001516 - fraction.js: 4.2.0 + browserslist: 4.21.10 + caniuse-lite: 1.0.30001522 + fraction.js: 4.2.1 normalize-range: 0.1.2 picocolors: 1.0.0 postcss: 8.4.26 @@ -2200,15 +2186,15 @@ packages: dependencies: fill-range: 7.0.1 - /browserslist@4.21.9: - resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001516 - electron-to-chromium: 1.4.461 + caniuse-lite: 1.0.30001522 + electron-to-chromium: 1.4.496 node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.9) + update-browserslist-db: 1.0.11(browserslist@4.21.10) /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -2231,9 +2217,9 @@ packages: defu: 6.1.2 dotenv: 16.3.1 giget: 1.1.2 - jiti: 1.19.1 + jiti: 1.19.3 mlly: 1.4.0 - ohash: 1.1.2 + ohash: 1.1.3 pathe: 1.1.1 perfect-debounce: 1.0.0 pkg-types: 1.0.3 @@ -2263,7 +2249,7 @@ packages: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 - tslib: 2.6.0 + tslib: 2.6.2 dev: true /camelcase-css@2.0.1: @@ -2276,14 +2262,14 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001516: - resolution: {integrity: sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g==} + /caniuse-lite@1.0.30001522: + resolution: {integrity: sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==} /capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} dependencies: no-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.2 upper-case-first: 2.0.2 dev: true @@ -2335,7 +2321,7 @@ packages: path-case: 3.0.4 sentence-case: 3.0.4 snake-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.2 dev: true /character-entities-legacy@1.1.4: @@ -2475,7 +2461,7 @@ packages: resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} dependencies: no-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.2 upper-case: 2.0.2 dev: true @@ -2490,17 +2476,6 @@ packages: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} dev: true - /cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} - engines: {node: '>=4.8'} - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.2 - shebang-command: 1.2.0 - which: 1.3.1 - dev: true - /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -2582,7 +2557,7 @@ packages: supports-color: optional: true dependencies: - ms: 2.1.2 + ms: 2.1.3 dev: true /debug@4.3.4: @@ -2627,7 +2602,7 @@ packages: side-channel: 1.0.4 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.10 + which-typed-array: 1.1.11 dev: true /deep-is@0.1.4: @@ -2747,7 +2722,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.2 dev: true /dotenv@16.3.1: @@ -2788,8 +2763,8 @@ packages: resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} dev: true - /electron-to-chromium@1.4.461: - resolution: {integrity: sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ==} + /electron-to-chromium@1.4.496: + resolution: {integrity: sha512-qeXC3Zbykq44RCrBa4kr8v/dWzYJA8rAwpyh9Qd+NKWoJfjG5vvJqy9XOJ9H4P/lqulZBCgUWAYi+FeK5AuJ8g==} /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2861,7 +2836,7 @@ packages: is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 is-weakref: 1.0.2 object-inspect: 1.12.3 object-keys: 1.1.1 @@ -2877,7 +2852,7 @@ packages: typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.10 + which-typed-array: 1.1.11 dev: true /es-get-iterator@1.1.3: @@ -3405,26 +3380,17 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier@8.8.0(eslint@8.43.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.43.0 - dev: true - - /eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.12.1 - resolve: 1.22.3 + is-core-module: 2.13.0 + resolve: 1.22.4 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint@8.43.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.43.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -3448,7 +3414,7 @@ packages: '@typescript-eslint/parser': 5.62.0(eslint@8.43.0)(typescript@5.1.3) debug: 3.2.7 eslint: 8.43.0 - eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true @@ -3463,14 +3429,14 @@ packages: - typescript dev: true - /eslint-plugin-es-x@7.1.0(eslint@8.43.0): - resolution: {integrity: sha512-AhiaF31syh4CCQ+C5ccJA0VG6+kJK8+5mXKKE7Qs1xcPRg02CDPOj3mWlQxuWS/AYtg7kxrDNgW9YW3vc0Q+Mw==} + /eslint-plugin-es-x@7.2.0(eslint@8.43.0): + resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.2 eslint: 8.43.0 dev: true @@ -3503,15 +3469,15 @@ packages: debug: 3.2.7 doctrine: 2.1.0 eslint: 8.43.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint@8.43.0) - get-tsconfig: 4.6.2 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.43.0) + get-tsconfig: 4.7.0 has: 1.0.3 - is-core-module: 2.12.1 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 - resolve: 1.22.3 + resolve: 1.22.4 semver: 6.3.1 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -3553,8 +3519,8 @@ packages: natural-compare: 1.4.0 dev: true - /eslint-plugin-markdown@3.0.0(eslint@8.43.0): - resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} + /eslint-plugin-markdown@3.0.1(eslint@8.43.0): + resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3574,11 +3540,11 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) builtins: 5.0.1 eslint: 8.43.0 - eslint-plugin-es-x: 7.1.0(eslint@8.43.0) + eslint-plugin-es-x: 7.2.0(eslint@8.43.0) ignore: 5.2.4 - is-core-module: 2.12.1 + is-core-module: 2.13.0 minimatch: 3.1.2 - resolve: 1.22.3 + resolve: 1.22.4 semver: 7.5.4 dev: true @@ -3587,23 +3553,6 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.8): - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - dependencies: - eslint: 8.43.0 - eslint-config-prettier: 8.8.0(eslint@8.43.0) - prettier: 2.8.8 - prettier-linter-helpers: 1.0.0 - dev: true - /eslint-plugin-promise@6.1.1(eslint@8.43.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3653,26 +3602,8 @@ packages: eslint-rule-composer: 0.3.0 dev: true - /eslint-plugin-vue@9.15.0(eslint@8.43.0): - resolution: {integrity: sha512-XYzpK6e2REli100+6iCeBA69v6Sm0D/yK2FZP+fCeNt0yH/m82qZQq+ztseyV0JsKdhFysuSEzeE1yCmSC92BA==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) - eslint: 8.43.0 - natural-compare: 1.4.0 - nth-check: 2.1.1 - postcss-selector-parser: 6.0.13 - semver: 7.5.4 - vue-eslint-parser: 9.3.1(eslint@8.43.0) - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-plugin-vue@9.15.1(eslint@8.43.0): - resolution: {integrity: sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A==} + /eslint-plugin-vue@9.17.0(eslint@8.43.0): + resolution: {integrity: sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 @@ -3717,16 +3648,16 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope@7.2.1: - resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -3736,8 +3667,8 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.1.0 + '@eslint-community/regexpp': 4.6.2 + '@eslint/eslintrc': 2.1.2 '@eslint/js': 8.43.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 @@ -3748,8 +3679,8 @@ packages: debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.1 - eslint-visitor-keys: 3.4.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -3757,7 +3688,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 + globals: 13.21.0 graphemer: 1.4.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -3784,7 +3715,7 @@ packages: dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 dev: true /esprima@4.0.1: @@ -3846,10 +3777,6 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - dev: true - /fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} @@ -3949,7 +3876,7 @@ packages: engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.2 + signal-exit: 4.1.0 dev: true /form-data@4.0.0: @@ -3961,8 +3888,8 @@ packages: mime-types: 2.1.35 dev: true - /fraction.js@4.2.0: - resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + /fraction.js@4.2.1: + resolution: {integrity: sha512-/KxoyCnPM0GwYI4NN0Iag38Tqt+od3/mLuguepLgCAKPn0ZhC544nssAW0tG2/00zXEYl9W+7hwAIpLHo6Oc7Q==} dev: true /fs-extra@10.1.0: @@ -4046,8 +3973,8 @@ packages: get-intrinsic: 1.2.1 dev: true - /get-tsconfig@4.6.2: - resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} dependencies: resolve-pkg-maps: 1.0.0 dev: true @@ -4086,9 +4013,9 @@ packages: hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.1 + jackspeak: 2.3.0 minimatch: 9.0.3 - minipass: 7.0.2 + minipass: 7.0.3 path-scurry: 1.10.1 dev: true @@ -4138,8 +4065,8 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -4251,7 +4178,7 @@ packages: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} dependencies: capital-case: 1.0.4 - tslib: 2.6.0 + tslib: 2.6.2 dev: true /histoire@0.16.2(vite@4.3.9): @@ -4261,10 +4188,10 @@ packages: vite: ^2.9.0 || ^3.0.0 || ^4.0.0 dependencies: '@akryum/tinypool': 0.3.1 - '@histoire/app': 0.16.1(vite@4.3.9) - '@histoire/controls': 0.16.1(vite@4.3.9) - '@histoire/shared': 0.16.1(vite@4.3.9) - '@histoire/vendors': 0.16.0 + '@histoire/app': 0.16.5(vite@4.3.9) + '@histoire/controls': 0.16.5(vite@4.3.9) + '@histoire/shared': 0.16.5(vite@4.3.9) + '@histoire/vendors': 0.16.5 '@types/flexsearch': 0.7.3 '@types/markdown-it': 12.2.3 birpc: 0.1.1 @@ -4277,7 +4204,7 @@ packages: fs-extra: 10.1.0 globby: 13.2.2 gray-matter: 4.0.3 - jiti: 1.19.1 + jiti: 1.19.3 jsdom: 20.0.3 markdown-it: 12.3.2 markdown-it-anchor: 8.6.7(@types/markdown-it@12.2.3)(markdown-it@12.3.2) @@ -4438,7 +4365,7 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /is-arrayish@0.2.1: @@ -4476,8 +4403,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 @@ -4587,15 +4514,11 @@ packages: has-symbols: 1.0.3 dev: true - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} 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 + which-typed-array: 1.1.11 dev: true /is-weakmap@2.0.1: @@ -4636,8 +4559,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.22.9 - '@babel/parser': 7.22.7 + '@babel/core': 7.22.10 + '@babel/parser': 7.22.10 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -4645,12 +4568,12 @@ packages: - supports-color dev: true - /istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 + make-dir: 4.0.0 supports-color: 7.2.0 dev: true @@ -4665,16 +4588,16 @@ packages: - supports-color dev: true - /istanbul-reports@3.1.5: - resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 + istanbul-lib-report: 3.0.1 dev: true - /jackspeak@2.2.1: - resolution: {integrity: sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==} + /jackspeak@2.3.0: + resolution: {integrity: sha512-uKmsITSsF4rUWQHzqaRUuyAir3fZfW3f202Ee34lz/gZCi970CPZwyQXLGNgWJvvZbvFyzeyGq0+4fcG/mBKZg==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -4682,8 +4605,8 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jiti@1.19.1: - resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} + /jiti@1.19.3: + resolution: {integrity: sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==} hasBin: true /jju@1.4.0: @@ -4819,10 +4742,6 @@ packages: hasBin: true dev: true - /json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true @@ -4845,7 +4764,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 semver: 7.5.4 dev: true @@ -4909,16 +4828,6 @@ packages: uc.micro: 1.0.6 dev: true - /load-json-file@4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - /local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} @@ -4962,11 +4871,11 @@ packages: /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.6.0 + tslib: 2.6.2 dev: true - /lru-cache@10.0.0: - resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} engines: {node: 14 || >=16.14} dev: true @@ -5006,23 +4915,17 @@ packages: sourcemap-codec: 1.4.8 dev: false - /magic-string@0.30.1: - resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - /magic-string@0.30.2: resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: - semver: 6.3.1 + semver: 7.5.4 dev: true /markdown-it-anchor@8.6.7(@types/markdown-it@12.2.3)(markdown-it@12.3.2): @@ -5087,11 +4990,6 @@ packages: readable-stream: 2.3.8 dev: false - /memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} - dev: true - /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -5168,8 +5066,8 @@ packages: engines: {node: '>=8'} dev: false - /minipass@7.0.2: - resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==} + /minipass@7.0.3: + resolution: {integrity: sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==} engines: {node: '>=16 || 14 >=14.17'} dev: true @@ -5207,7 +5105,7 @@ packages: esbuild: 0.14.54 fs-extra: 10.1.0 globby: 11.1.0 - jiti: 1.19.1 + jiti: 1.19.3 mri: 1.2.0 pathe: 0.2.0 typescript: 4.9.5 @@ -5219,7 +5117,7 @@ packages: acorn: 8.10.0 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.1.2 + ufo: 1.2.0 dev: false /mlly@1.4.0: @@ -5228,7 +5126,7 @@ packages: acorn: 8.10.0 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.1.2 + ufo: 1.2.0 /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -5246,6 +5144,10 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + /muggle-string@0.3.1: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true @@ -5271,15 +5173,11 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - dev: true - /no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.6.0 + tslib: 2.6.2 dev: true /node-fetch-native@1.2.0: @@ -5301,7 +5199,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.3 + resolve: 1.22.4 semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true @@ -5315,22 +5213,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /npm-run-all@4.1.5: - resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} - engines: {node: '>= 4'} - hasBin: true - dependencies: - ansi-styles: 3.2.1 - chalk: 2.4.2 - cross-spawn: 6.0.5 - memorystream: 0.3.1 - minimatch: 3.1.2 - pidtree: 0.3.1 - read-pkg: 3.0.0 - shell-quote: 1.8.1 - string.prototype.padend: 3.1.4 - dev: true - /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: @@ -5387,8 +5269,8 @@ packages: es-abstract: 1.22.1 dev: true - /ohash@1.1.2: - resolution: {integrity: sha512-9CIOSq5945rI045GFtcO3uudyOkYVY1nyfFxVQp+9BRgslr8jPNiSSrsFGg/BNTUFOLqx0P5tng6G32brIPw0w==} + /ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} dev: false /on-finished@2.3.0: @@ -5459,7 +5341,7 @@ packages: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.2 dev: true /parent-module@1.0.1: @@ -5480,19 +5362,11 @@ packages: is-hexadecimal: 1.0.4 dev: true - /parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - dev: true - /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -5513,14 +5387,14 @@ packages: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.2 dev: true /path-case@3.0.4: resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} dependencies: dot-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.2 dev: true /path-exists@4.0.0: @@ -5532,11 +5406,6 @@ packages: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - /path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - dev: true - /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -5549,15 +5418,8 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.0.0 - minipass: 7.0.2 - dev: true - - /path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} - dependencies: - pify: 3.0.0 + lru-cache: 10.0.1 + minipass: 7.0.3 dev: true /path-type@4.0.0: @@ -5589,22 +5451,11 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - /pidtree@0.3.1: - resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} dev: true - /pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true - /pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} @@ -5630,6 +5481,12 @@ packages: engines: {node: '>=4'} dev: true + /pnpm@8.6.12: + resolution: {integrity: sha512-Eza4C5SO/Xl5IYozupbZ5NOA5leBRPYxmXmXfe7G4/4uCkRLhks84rB33aitxNZU/uMrnDGGjwrLktoKvPjqHA==} + engines: {node: '>=16.14'} + hasBin: true + dev: true + /postcss-import-resolver@2.0.0: resolution: {integrity: sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw==} dependencies: @@ -5645,7 +5502,7 @@ packages: postcss: 8.4.26 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.3 + resolve: 1.22.4 dev: true /postcss-js@4.0.1(postcss@8.4.26): @@ -5710,13 +5567,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - dependencies: - fast-diff: 1.3.0 - dev: true - /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -5737,8 +5587,8 @@ packages: react-is: 17.0.2 dev: true - /pretty-format@29.6.1: - resolution: {integrity: sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==} + /pretty-format@29.6.2: + resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.0 @@ -5809,15 +5659,6 @@ packages: type-fest: 0.8.1 dev: true - /read-pkg@3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - dev: true - /read-pkg@5.2.0: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} @@ -5846,8 +5687,8 @@ packages: dependencies: picomatch: 2.3.1 - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} dev: true /regexp-tree@0.1.27: @@ -5887,15 +5728,15 @@ packages: /resolve@1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.0 path-parse: 1.0.7 dev: true - /resolve@1.22.3: - resolution: {integrity: sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==} + /resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -5928,7 +5769,7 @@ packages: rollup: 2.79.1 typescript: 4.9.5 optionalDependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 dev: false /rollup-plugin-esbuild@4.10.3(esbuild@0.15.18)(rollup@2.79.1): @@ -5956,8 +5797,8 @@ packages: optionalDependencies: fsevents: 2.3.2 - /rollup@3.26.2: - resolution: {integrity: sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==} + /rollup@3.28.0: + resolution: {integrity: sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -6044,14 +5885,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -6063,17 +5896,10 @@ packages: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} dependencies: no-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.2 upper-case-first: 2.0.2 dev: true - /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - dependencies: - shebang-regex: 1.0.0 - dev: true - /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -6081,11 +5907,6 @@ packages: shebang-regex: 3.0.0 dev: true - /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - dev: true - /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} @@ -6115,8 +5936,8 @@ packages: resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==} dev: true - /signal-exit@4.0.2: - resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: true @@ -6141,7 +5962,7 @@ packages: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.2 dev: true /source-map-js@1.0.2: @@ -6200,8 +6021,8 @@ packages: engines: {node: '>= 0.6'} dev: true - /std-env@3.3.3: - resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} + /std-env@3.4.0: + resolution: {integrity: sha512-YqHeQIIQ8r1VtUZOTOyjsAXAsjr369SplZ5rlQaiJTBsvodvPSCME7vuz8pnQltbQ0Cw0lyFo5Q8uyNwYQ58Xw==} /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} @@ -6233,15 +6054,6 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.padend@3.1.4: - resolution: {integrity: sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - dev: true - /string.prototype.trim@1.2.7: resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} engines: {node: '>= 0.4'} @@ -6292,11 +6104,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -6309,24 +6116,17 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal@1.0.1: - resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} - dependencies: - acorn: 8.10.0 - dev: true - /strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: acorn: 8.10.0 - dev: false /style-mod@4.0.3: resolution: {integrity: sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw==} dev: true - /sucrase@3.33.0: - resolution: {integrity: sha512-ARGC7vbufOHfpvyGcZZXFaXCMZ9A4fffOGC5ucOW7+WHDGlAe8LJdf3Jts1sWhDeiI1RSWrKy5Hodl+JWGdW2A==} + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} engines: {node: '>=8'} hasBin: true dependencies: @@ -6377,7 +6177,7 @@ packages: fast-glob: 3.3.1 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.19.1 + jiti: 1.19.3 lilconfig: 2.1.0 micromatch: 4.0.5 normalize-path: 3.0.0 @@ -6389,8 +6189,8 @@ packages: postcss-load-config: 4.0.1(postcss@8.4.26) postcss-nested: 6.0.1(postcss@8.4.26) postcss-selector-parser: 6.0.13 - resolve: 1.22.3 - sucrase: 3.33.0 + resolve: 1.22.4 + sucrase: 3.34.0 transitivePeerDependencies: - ts-node dev: true @@ -6499,8 +6299,8 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.6.0: - resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true /tsutils@3.21.0(typescript@5.1.3): @@ -6546,7 +6346,7 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typed-array-byte-length@1.0.0: @@ -6556,7 +6356,7 @@ packages: call-bind: 1.0.2 for-each: 0.3.3 has-proto: 1.0.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typed-array-byte-offset@1.0.0: @@ -6567,7 +6367,7 @@ packages: call-bind: 1.0.2 for-each: 0.3.3 has-proto: 1.0.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typed-array-length@1.0.4: @@ -6575,7 +6375,7 @@ packages: dependencies: call-bind: 1.0.2 for-each: 0.3.3 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typescript@4.9.5: @@ -6600,8 +6400,8 @@ packages: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: true - /ufo@1.1.2: - resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} + /ufo@1.2.0: + resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -6628,7 +6428,7 @@ packages: esbuild: 0.15.18 globby: 13.2.2 hookable: 5.5.3 - jiti: 1.19.1 + jiti: 1.19.3 magic-string: 0.26.7 mkdirp: 1.0.4 mkdist: 0.3.13(typescript@4.9.5) @@ -6660,7 +6460,7 @@ packages: /unimport@3.1.3(rollup@2.79.1): resolution: {integrity: sha512-up4TE2yA+nMyyErGTjbYGVw95MriGa2hVRXQ3/JRp7984cwwqULcnBjHaovVpsO8tZc2j0fvgGu9yiBKOyxvYw==} dependencies: - '@rollup/pluginutils': 5.0.2(rollup@2.79.1) + '@rollup/pluginutils': 5.0.3(rollup@2.79.1) escape-string-regexp: 5.0.0 fast-glob: 3.3.1 local-pkg: 0.4.3 @@ -6712,9 +6512,9 @@ packages: /untyped@0.5.0: resolution: {integrity: sha512-2Sre5A1a7G61bjaAKZnSFaVgbJMwwbbYQpJFH69hAYcDfN7kIaktlSphS02XJilz4+/jR1tsJ5MHo1oMoCezxg==} dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/standalone': 7.22.10 - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 scule: 0.3.2 transitivePeerDependencies: - supports-color @@ -6724,37 +6524,37 @@ packages: resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==} hasBin: true dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/standalone': 7.22.10 - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 defu: 6.1.2 - jiti: 1.19.1 + jiti: 1.19.3 mri: 1.2.0 scule: 1.0.0 transitivePeerDependencies: - supports-color dev: false - /update-browserslist-db@1.0.11(browserslist@4.21.9): + /update-browserslist-db@1.0.11(browserslist@4.21.10): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.9 + browserslist: 4.21.10 escalade: 3.1.1 picocolors: 1.0.0 /upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} dependencies: - tslib: 2.6.0 + tslib: 2.6.2 dev: true /upper-case@2.0.2: resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} dependencies: - tslib: 2.6.0 + tslib: 2.6.2 dev: true /uri-js@4.4.1: @@ -6785,8 +6585,8 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /validator@13.9.0: - resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==} + /validator@13.11.0: + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} engines: {node: '>= 0.10'} dev: true @@ -6844,9 +6644,9 @@ packages: vite: optional: true dependencies: - '@microsoft/api-extractor': 7.36.2(@types/node@18.16.18) - '@rollup/pluginutils': 5.0.2(rollup@2.79.1) - '@vue/language-core': 1.8.1(typescript@5.1.3) + '@microsoft/api-extractor': 7.36.4(@types/node@18.16.18) + '@rollup/pluginutils': 5.0.3(rollup@2.79.1) + '@vue/language-core': 1.8.8(typescript@5.1.3) debug: 4.3.4 kolorist: 1.8.0 typescript: 5.1.3 @@ -6886,7 +6686,7 @@ packages: '@types/node': 18.16.18 esbuild: 0.17.19 postcss: 8.4.26 - rollup: 3.26.2 + rollup: 3.28.0 optionalDependencies: fsevents: 2.3.2 dev: true @@ -6937,11 +6737,11 @@ packages: debug: 4.3.4 jsdom: 22.1.0 local-pkg: 0.4.3 - magic-string: 0.30.1 + magic-string: 0.30.2 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.3.3 - strip-literal: 1.0.1 + std-env: 3.4.0 + strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.6.0 vite: 4.3.9(@types/node@18.16.18) @@ -6982,8 +6782,8 @@ packages: dependencies: debug: 4.3.4 eslint: 8.43.0 - eslint-scope: 7.2.1 - eslint-visitor-keys: 3.4.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 lodash: 4.17.21 @@ -7092,8 +6892,8 @@ packages: is-weakset: 2.0.2 dev: true - /which-typed-array@1.1.10: - resolution: {integrity: sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==} + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 @@ -7101,14 +6901,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 - dev: true - - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 dev: true /which@2.0.2: @@ -7185,7 +6977,7 @@ packages: resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} engines: {node: ^14.17.0 || >=16.0.0} dependencies: - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 lodash: 4.17.21 yaml: 2.3.1 dev: true @@ -7212,7 +7004,7 @@ packages: dependencies: lodash.get: 4.4.2 lodash.isequal: 4.5.0 - validator: 13.9.0 + validator: 13.11.0 optionalDependencies: commander: 9.5.0 dev: true @@ -7221,7 +7013,7 @@ packages: resolution: {directory: packages/radix-vue, type: directory} id: file:packages/radix-vue name: radix-vue - version: 0.1.19 + version: 0.1.21 dependencies: '@floating-ui/dom': 1.4.2 '@floating-ui/vue': 1.0.1(vue@3.3.4) From 6b8f012215e0cf05b880806a3e1206dfdcc0cda3 Mon Sep 17 00:00:00 2001 From: zernonia Date: Mon, 21 Aug 2023 12:31:14 +0800 Subject: [PATCH 03/11] chore: run lint:fix --- .github/workflows/build.yaml | 76 ++--- packages/radix-nuxt/build.config.ts | 4 +- packages/radix-nuxt/package.json | 4 +- packages/radix-nuxt/src/index.ts | 13 +- packages/radix-nuxt/tsconfig.json | 18 +- packages/radix-vue/.eslintrc.cjs | 20 -- packages/radix-vue/package.json | 50 ++- .../src/Accordion/AccordionContent.vue | 22 +- .../src/Accordion/AccordionHeader.vue | 14 +- .../radix-vue/src/Accordion/AccordionItem.vue | 82 ++--- .../radix-vue/src/Accordion/AccordionRoot.vue | 76 ++--- .../src/Accordion/AccordionTrigger.vue | 23 +- packages/radix-vue/src/Accordion/index.ts | 10 +- .../story/AccordionAnimated.story.vue | 48 +-- .../story/AccordionChromatic.story.vue | 4 +- .../story/AccordionHorizontal.story.vue | 2 +- .../story/AccordionMultiple.story.vue | 10 +- .../Accordion/story/AccordionSingle.story.vue | 10 +- .../story/AccordionViewport.story.vue | 20 +- .../src/AlertDialog/AlertDialog.story.vue | 6 +- .../src/AlertDialog/AlertDialogAction.vue | 6 +- .../src/AlertDialog/AlertDialogCancel.vue | 21 +- .../src/AlertDialog/AlertDialogContent.vue | 34 +- .../AlertDialog/AlertDialogDescription.vue | 6 +- .../src/AlertDialog/AlertDialogOverlay.vue | 6 +- .../src/AlertDialog/AlertDialogPortal.vue | 6 +- .../src/AlertDialog/AlertDialogRoot.vue | 16 +- .../src/AlertDialog/AlertDialogTitle.vue | 6 +- .../src/AlertDialog/AlertDialogTrigger.vue | 6 +- packages/radix-vue/src/AlertDialog/index.ts | 18 +- .../src/AspectRatio/AspectRatio.story.vue | 4 +- .../radix-vue/src/AspectRatio/AspectRatio.vue | 12 +- packages/radix-vue/src/AspectRatio/index.ts | 2 +- .../radix-vue/src/Avatar/Avatar.story.vue | 2 +- .../radix-vue/src/Avatar/AvatarFallback.vue | 31 +- packages/radix-vue/src/Avatar/AvatarImage.vue | 32 +- packages/radix-vue/src/Avatar/AvatarRoot.vue | 24 +- packages/radix-vue/src/Avatar/index.ts | 6 +- packages/radix-vue/src/Avatar/utils.ts | 39 +-- .../radix-vue/src/Checkbox/Checkbox.story.vue | 12 +- .../src/Checkbox/CheckboxIndicator.vue | 16 +- .../radix-vue/src/Checkbox/CheckboxRoot.vue | 58 ++-- packages/radix-vue/src/Checkbox/index.ts | 4 +- .../src/Collapsible/Collapsible.story.vue | 22 +- .../src/Collapsible/CollapsibleContent.vue | 69 ++-- .../src/Collapsible/CollapsibleRoot.vue | 46 +-- .../src/Collapsible/CollapsibleTrigger.vue | 14 +- packages/radix-vue/src/Collapsible/index.ts | 6 +- .../src/ContextMenu/ContextMenu.story.vue | 18 +- .../src/ContextMenu/ContextMenuArrow.vue | 6 +- .../ContextMenu/ContextMenuCheckboxItem.vue | 16 +- .../src/ContextMenu/ContextMenuContent.vue | 60 ++-- .../src/ContextMenu/ContextMenuGroup.vue | 6 +- .../src/ContextMenu/ContextMenuItem.vue | 14 +- .../ContextMenu/ContextMenuItemIndicator.vue | 6 +- .../src/ContextMenu/ContextMenuLabel.vue | 8 +- .../src/ContextMenu/ContextMenuPortal.vue | 6 +- .../src/ContextMenu/ContextMenuRadioGroup.vue | 16 +- .../src/ContextMenu/ContextMenuRadioItem.vue | 16 +- .../src/ContextMenu/ContextMenuRoot.vue | 42 +-- .../src/ContextMenu/ContextMenuSeparator.vue | 6 +- .../src/ContextMenu/ContextMenuSub.vue | 18 +- .../src/ContextMenu/ContextMenuSubContent.vue | 16 +- .../src/ContextMenu/ContextMenuSubTrigger.vue | 6 +- .../src/ContextMenu/ContextMenuTrigger.vue | 79 +++-- packages/radix-vue/src/ContextMenu/index.ts | 32 +- packages/radix-vue/src/ContextMenu/utils.ts | 14 +- .../radix-vue/src/Dialog/Dialog.story.vue | 16 +- packages/radix-vue/src/Dialog/DialogClose.vue | 12 +- .../radix-vue/src/Dialog/DialogContent.vue | 35 +- .../src/Dialog/DialogContentImpl.vue | 30 +- .../src/Dialog/DialogContentModal.vue | 24 +- .../src/Dialog/DialogContentNonModal.vue | 26 +- .../src/Dialog/DialogDescription.vue | 14 +- .../radix-vue/src/Dialog/DialogOverlay.vue | 24 +- .../radix-vue/src/Dialog/DialogPortal.vue | 10 +- packages/radix-vue/src/Dialog/DialogRoot.vue | 66 ++-- packages/radix-vue/src/Dialog/DialogTitle.vue | 10 +- .../radix-vue/src/Dialog/DialogTrigger.vue | 21 +- packages/radix-vue/src/Dialog/index.ts | 16 +- .../src/DismissableLayer/DismissableLayer.vue | 186 ++++++----- .../radix-vue/src/DismissableLayer/index.ts | 4 +- .../story/DismissableLayerBasic.story.vue | 70 ++-- .../story/DismissableLayerDialog.story.vue | 41 ++- .../DismissableLayerPopoverNested.story.vue | 31 +- .../story/_DismissableBox.vue | 13 +- .../DismissableLayer/story/_DummyDialog.vue | 26 +- .../DismissableLayer/story/_DummyPopover.vue | 58 ++-- .../radix-vue/src/DismissableLayer/utils.ts | 164 ++++----- .../src/DropdownMenu/DropdownMenu.story.vue | 24 +- .../src/DropdownMenu/DropdownMenuArrow.vue | 6 +- .../DropdownMenu/DropdownMenuCheckboxItem.vue | 16 +- .../src/DropdownMenu/DropdownMenuContent.vue | 59 ++-- .../src/DropdownMenu/DropdownMenuGroup.vue | 6 +- .../src/DropdownMenu/DropdownMenuItem.vue | 14 +- .../DropdownMenuItemIndicator.vue | 6 +- .../src/DropdownMenu/DropdownMenuLabel.vue | 8 +- .../src/DropdownMenu/DropdownMenuPortal.vue | 6 +- .../DropdownMenu/DropdownMenuRadioGroup.vue | 16 +- .../DropdownMenu/DropdownMenuRadioItem.vue | 12 +- .../src/DropdownMenu/DropdownMenuRoot.vue | 66 ++-- .../DropdownMenu/DropdownMenuSeparator.vue | 6 +- .../src/DropdownMenu/DropdownMenuSub.vue | 18 +- .../DropdownMenu/DropdownMenuSubContent.vue | 12 +- .../DropdownMenu/DropdownMenuSubTrigger.vue | 6 +- .../src/DropdownMenu/DropdownMenuTrigger.vue | 30 +- packages/radix-vue/src/DropdownMenu/index.ts | 32 +- packages/radix-vue/src/DropdownMenu/utils.ts | 12 +- .../radix-vue/src/FocusGuards/FocusGuards.vue | 6 +- packages/radix-vue/src/FocusGuards/index.ts | 2 +- .../radix-vue/src/FocusScope/FocusScope.vue | 219 ++++++------ packages/radix-vue/src/FocusScope/index.ts | 2 +- packages/radix-vue/src/FocusScope/stack.ts | 50 +-- .../story/FocusScopeMultiple.story.vue | 40 ++- packages/radix-vue/src/FocusScope/utils.ts | 71 ++-- .../src/HoverCard/HoverCard.story.vue | 12 +- .../src/HoverCard/HoverCardArrow.vue | 6 +- .../src/HoverCard/HoverCardContent.vue | 35 +- .../src/HoverCard/HoverCardPortal.vue | 6 +- .../radix-vue/src/HoverCard/HoverCardRoot.vue | 52 +-- .../src/HoverCard/HoverCardTrigger.vue | 51 ++- packages/radix-vue/src/HoverCard/index.ts | 10 +- packages/radix-vue/src/Label/Label.story.vue | 4 +- packages/radix-vue/src/Label/Label.vue | 12 +- packages/radix-vue/src/Label/index.ts | 2 +- packages/radix-vue/src/Label/label.test.ts | 98 +++--- packages/radix-vue/src/Menu/MenuAnchor.vue | 7 +- packages/radix-vue/src/Menu/MenuArrow.vue | 6 +- .../radix-vue/src/Menu/MenuCheckboxItem.vue | 31 +- packages/radix-vue/src/Menu/MenuContent.vue | 36 +- .../radix-vue/src/Menu/MenuContentImpl.vue | 297 +++++++++-------- packages/radix-vue/src/Menu/MenuGroup.vue | 6 +- packages/radix-vue/src/Menu/MenuItem.vue | 48 ++- packages/radix-vue/src/Menu/MenuItemImpl.vue | 64 ++-- .../radix-vue/src/Menu/MenuItemIndicator.vue | 26 +- packages/radix-vue/src/Menu/MenuLabel.vue | 8 +- packages/radix-vue/src/Menu/MenuPortal.vue | 18 +- .../radix-vue/src/Menu/MenuRadioGroup.vue | 32 +- packages/radix-vue/src/Menu/MenuRadioItem.vue | 30 +- packages/radix-vue/src/Menu/MenuRoot.vue | 106 +++--- .../src/Menu/MenuRootContentModal.vue | 25 +- .../src/Menu/MenuRootContentNonModal.vue | 23 +- packages/radix-vue/src/Menu/MenuSeparator.vue | 6 +- packages/radix-vue/src/Menu/MenuSub.vue | 65 ++-- .../radix-vue/src/Menu/MenuSubContent.vue | 50 +-- .../radix-vue/src/Menu/MenuSubTrigger.vue | 133 ++++---- packages/radix-vue/src/Menu/index.ts | 32 +- .../Menu/story/MenuCheckboxItems.story.vue | 41 ++- .../src/Menu/story/MenuRadioItems.story.vue | 28 +- .../src/Menu/story/MenuStyled.story.vue | 12 +- .../src/Menu/story/MenuSubMenu.story.vue | 24 +- .../src/Menu/story/MenuWithLabels.story.vue | 63 ++-- .../src/Menu/story/_MenuWithAnchor.vue | 16 +- .../radix-vue/src/Menu/story/_Submenu.vue | 16 +- packages/radix-vue/src/Menu/utils.ts | 94 +++--- .../radix-vue/src/Menubar/Menubar.story.vue | 16 +- .../radix-vue/src/Menubar/MenubarArrow.vue | 6 +- .../src/Menubar/MenubarCheckboxItem.vue | 16 +- .../radix-vue/src/Menubar/MenubarContent.vue | 83 ++--- .../radix-vue/src/Menubar/MenubarGroup.vue | 6 +- .../radix-vue/src/Menubar/MenubarItem.vue | 14 +- .../src/Menubar/MenubarItemIndicator.vue | 6 +- .../radix-vue/src/Menubar/MenubarLabel.vue | 8 +- .../radix-vue/src/Menubar/MenubarMenu.vue | 49 +-- .../radix-vue/src/Menubar/MenubarPortal.vue | 6 +- .../src/Menubar/MenubarRadioGroup.vue | 16 +- .../src/Menubar/MenubarRadioItem.vue | 12 +- .../radix-vue/src/Menubar/MenubarRoot.vue | 80 ++--- .../src/Menubar/MenubarSeparator.vue | 6 +- packages/radix-vue/src/Menubar/MenubarSub.vue | 18 +- .../src/Menubar/MenubarSubContent.vue | 56 ++-- .../src/Menubar/MenubarSubTrigger.vue | 6 +- .../radix-vue/src/Menubar/MenubarTrigger.vue | 76 ++--- packages/radix-vue/src/Menubar/index.ts | 34 +- .../NavigationMenu/NavigationMenuContent.vue | 67 ++-- .../NavigationMenuContentImpl.vue | 216 ++++++------ .../NavigationMenuIndicator.vue | 74 ++--- .../src/NavigationMenu/NavigationMenuItem.vue | 145 ++++---- .../src/NavigationMenu/NavigationMenuLink.vue | 35 +- .../src/NavigationMenu/NavigationMenuList.vue | 24 +- .../src/NavigationMenu/NavigationMenuRoot.vue | 176 +++++----- .../src/NavigationMenu/NavigationMenuSub.vue | 70 ++-- .../NavigationMenu/NavigationMenuTrigger.vue | 170 +++++----- .../NavigationMenu/NavigationMenuViewport.vue | 66 ++-- .../radix-vue/src/NavigationMenu/index.ts | 18 +- .../story/NavigationMenuBasic.story.vue | 31 +- .../story/NavigationMenuDemo.story.vue | 24 +- .../story/NavigationMenuSubmenus.story.vue | 32 +- .../story/NavigationMenuViewport.story.vue | 24 +- .../src/NavigationMenu/story/_LinkGroup.vue | 6 +- .../story/_NavigationMenuListItem.vue | 6 +- .../src/NavigationMenu/story/_StoryFrame.vue | 2 +- .../radix-vue/src/NavigationMenu/utils.ts | 51 +-- .../radix-vue/src/Popover/PopoverAnchor.vue | 20 +- .../radix-vue/src/Popover/PopoverArrow.vue | 6 +- .../radix-vue/src/Popover/PopoverClose.vue | 15 +- .../radix-vue/src/Popover/PopoverContent.vue | 34 +- .../src/Popover/PopoverContentImpl.vue | 38 +-- .../src/Popover/PopoverContentModal.vue | 31 +- .../src/Popover/PopoverContentNonModal.vue | 31 +- .../radix-vue/src/Popover/PopoverPortal.vue | 6 +- .../radix-vue/src/Popover/PopoverRoot.vue | 61 ++-- .../radix-vue/src/Popover/PopoverTrigger.vue | 30 +- packages/radix-vue/src/Popover/index.ts | 14 +- .../Popover/story/PopoverBoundary.story.vue | 8 +- .../story/PopoverCustomAnchor.story.vue | 8 +- .../src/Popover/story/PopoverDemo.story.vue | 16 +- .../Popover/story/PopoverForceMount.story.vue | 4 +- .../Popover/story/PopoverModality.story.vue | 4 +- .../src/Popover/story/PopoverNested.story.vue | 18 +- .../radix-vue/src/Popper/PopperAnchor.vue | 24 +- packages/radix-vue/src/Popper/PopperArrow.vue | 40 +-- .../radix-vue/src/Popper/PopperContent.vue | 268 ++++++++------- packages/radix-vue/src/Popper/PopperRoot.vue | 27 +- packages/radix-vue/src/Popper/index.ts | 10 +- packages/radix-vue/src/Popper/utils.ts | 103 +++--- packages/radix-vue/src/Presence/Presence.vue | 76 ++--- packages/radix-vue/src/Presence/index.ts | 2 +- .../story/PresenceAnimation.story.vue | 42 +-- .../Presence/story/PresenceBasic.story.vue | 10 +- .../story/PresenceTransition.story.vue | 10 +- .../src/Presence/story/_Animation.vue | 17 +- .../radix-vue/src/Presence/story/_Toggle.vue | 16 +- .../radix-vue/src/Presence/usePresence.ts | 119 +++---- .../radix-vue/src/Primitive/Primitive.test.ts | 170 +++++----- packages/radix-vue/src/Primitive/Primitive.ts | 117 +++---- packages/radix-vue/src/Primitive/Slot.vue | 2 +- packages/radix-vue/src/Primitive/index.ts | 4 +- .../src/Primitive/usePrimitiveElement.ts | 14 +- .../radix-vue/src/Progress/Progress.story.vue | 26 +- .../src/Progress/ProgressIndicator.vue | 10 +- .../radix-vue/src/Progress/ProgressRoot.vue | 105 +++--- packages/radix-vue/src/Progress/index.ts | 4 +- .../src/RadioGroup/RadioGroup.story.vue | 6 +- .../src/RadioGroup/RadioGroupIndicator.vue | 12 +- .../src/RadioGroup/RadioGroupItem.vue | 90 ++--- .../src/RadioGroup/RadioGroupRoot.vue | 79 +++-- packages/radix-vue/src/RadioGroup/index.ts | 6 +- .../src/RovingFocus/RovingFocusGroup.vue | 127 ++++--- .../src/RovingFocus/RovingFocusItem.vue | 86 ++--- packages/radix-vue/src/RovingFocus/index.ts | 4 +- .../story/RovingFocusBasic.story.vue | 116 +++++-- .../src/RovingFocus/story/_Button.vue | 24 +- .../src/RovingFocus/story/_ButtonGroup.vue | 16 +- packages/radix-vue/src/RovingFocus/utils.ts | 63 ++-- .../src/ScrollArea/ScrollAreaCorner.vue | 22 +- .../src/ScrollArea/ScrollAreaCornerImpl.vue | 50 +-- .../src/ScrollArea/ScrollAreaRoot.vue | 142 ++++---- .../src/ScrollArea/ScrollAreaScrollbar.vue | 111 +++---- .../ScrollArea/ScrollAreaScrollbarAuto.vue | 38 +-- .../ScrollArea/ScrollAreaScrollbarHover.vue | 50 +-- .../ScrollArea/ScrollAreaScrollbarImpl.vue | 147 +++++---- .../ScrollArea/ScrollAreaScrollbarScroll.vue | 76 ++--- .../ScrollArea/ScrollAreaScrollbarVisible.vue | 172 +++++----- .../src/ScrollArea/ScrollAreaScrollbarX.vue | 44 +-- .../src/ScrollArea/ScrollAreaScrollbarY.vue | 46 +-- .../src/ScrollArea/ScrollAreaThumb.vue | 80 ++--- .../src/ScrollArea/ScrollAreaViewport.vue | 28 +- packages/radix-vue/src/ScrollArea/index.ts | 10 +- .../story/ScrollAreaBasic.story.vue | 33 +- .../story/ScrollAreaChromatic.story.vue | 16 +- .../story/ScrollAreaChromaticBoth.story.vue | 40 +-- .../ScrollAreaChromaticHorizontal.story.vue | 34 +- .../ScrollAreaChromaticVertical.story.vue | 34 +- .../src/ScrollArea/story/_ScrollAreaStory.vue | 31 +- packages/radix-vue/src/ScrollArea/types.ts | 20 +- packages/radix-vue/src/ScrollArea/utils.ts | 116 +++---- .../radix-vue/src/Select/BubbleSelect.vue | 38 +-- packages/radix-vue/src/Select/SelectArrow.vue | 16 +- .../radix-vue/src/Select/SelectContent.vue | 25 +- .../src/Select/SelectContentImpl.vue | 260 +++++++-------- packages/radix-vue/src/Select/SelectGroup.vue | 23 +- packages/radix-vue/src/Select/SelectIcon.vue | 6 +- packages/radix-vue/src/Select/SelectItem.vue | 152 +++++---- .../src/Select/SelectItemAlignedPosition.vue | 285 ++++++++-------- .../src/Select/SelectItemIndicator.vue | 14 +- .../radix-vue/src/Select/SelectItemText.vue | 51 +-- packages/radix-vue/src/Select/SelectLabel.vue | 21 +- .../src/Select/SelectPopperPosition.vue | 12 +- .../radix-vue/src/Select/SelectPortal.vue | 10 +- packages/radix-vue/src/Select/SelectRoot.vue | 160 ++++----- .../src/Select/SelectScrollButtonImpl.vue | 58 ++-- .../src/Select/SelectScrollDownButton.vue | 49 ++- .../src/Select/SelectScrollUpButton.vue | 57 ++-- .../radix-vue/src/Select/SelectSeparator.vue | 6 +- .../radix-vue/src/Select/SelectTrigger.vue | 58 ++-- packages/radix-vue/src/Select/SelectValue.vue | 30 +- .../radix-vue/src/Select/SelectViewport.vue | 80 ++--- packages/radix-vue/src/Select/index.ts | 30 +- .../src/Select/story/SelectDemo.story.vue | 22 +- .../src/Select/story/SelectForm.story.vue | 30 +- .../Select/story/SelectWithinDialog.story.vue | 22 +- packages/radix-vue/src/Select/utils.ts | 8 +- .../src/Separator/Separator.story.vue | 14 +- .../radix-vue/src/Separator/Separator.vue | 8 +- packages/radix-vue/src/Separator/index.ts | 2 +- .../radix-vue/src/Slider/Slider.story.vue | 8 +- packages/radix-vue/src/Slider/SliderRange.vue | 12 +- packages/radix-vue/src/Slider/SliderRoot.vue | 204 ++++++------ packages/radix-vue/src/Slider/SliderThumb.vue | 117 +++---- packages/radix-vue/src/Slider/SliderTrack.vue | 4 +- packages/radix-vue/src/Slider/index.ts | 8 +- .../radix-vue/src/Switch/Switch.story.vue | 6 +- packages/radix-vue/src/Switch/SwitchRoot.vue | 63 ++-- packages/radix-vue/src/Switch/SwitchThumb.vue | 10 +- .../src/Switch/__tests__/Switch.test.ts | 57 ++-- .../src/Switch/__tests__/Switch1.vue | 12 +- packages/radix-vue/src/Switch/index.ts | 4 +- packages/radix-vue/src/Tabs/Tabs.story.vue | 12 +- packages/radix-vue/src/Tabs/TabsContent.vue | 24 +- packages/radix-vue/src/Tabs/TabsList.vue | 28 +- packages/radix-vue/src/Tabs/TabsRoot.vue | 88 +++-- packages/radix-vue/src/Tabs/TabsTrigger.vue | 57 ++-- packages/radix-vue/src/Tabs/index.ts | 8 +- .../radix-vue/src/Toggle/Toggle.story.vue | 46 +-- packages/radix-vue/src/Toggle/ToggleRoot.vue | 44 +-- packages/radix-vue/src/Toggle/index.ts | 2 +- .../src/ToggleGroup/ToggleGroup.story.vue | 16 +- .../src/ToggleGroup/ToggleGroupItem.vue | 24 +- .../src/ToggleGroup/ToggleGroupRoot.vue | 73 ++-- packages/radix-vue/src/ToggleGroup/index.ts | 4 +- .../radix-vue/src/Toolbar/Toolbar.story.vue | 10 +- .../radix-vue/src/Toolbar/ToolbarButton.vue | 12 +- .../radix-vue/src/Toolbar/ToolbarLink.vue | 14 +- .../radix-vue/src/Toolbar/ToolbarRoot.vue | 36 +- .../src/Toolbar/ToolbarSeparator.vue | 14 +- .../src/Toolbar/ToolbarToggleGroup.vue | 25 +- .../src/Toolbar/ToolbarToggleItem.vue | 10 +- packages/radix-vue/src/Toolbar/index.ts | 12 +- .../radix-vue/src/Tooltip/TooltipArrow.vue | 12 +- .../radix-vue/src/Tooltip/TooltipContent.vue | 102 +++--- .../radix-vue/src/Tooltip/TooltipRoot.vue | 65 ++-- .../radix-vue/src/Tooltip/TooltipTrigger.vue | 34 +- packages/radix-vue/src/Tooltip/index.ts | 8 +- .../Tooltip/stories/Tooltip.content.story.vue | 20 +- .../src/Tooltip/stories/Tooltip.story.vue | 8 +- .../src/VisuallyHidden/VisuallyHidden.vue | 4 +- .../radix-vue/src/VisuallyHidden/index.ts | 2 +- packages/radix-vue/src/index.test.ts | 312 +++++++++--------- packages/radix-vue/src/index.ts | 52 +-- .../radix-vue/src/shared/component/Arrow.vue | 15 +- .../src/shared/component/BaseLabel.vue | 2 +- .../src/shared/component/BasePortal.vue | 6 +- .../src/shared/component/BaseSeparator.vue | 36 +- .../radix-vue/src/shared/component/index.ts | 8 +- packages/radix-vue/src/shared/index.ts | 36 +- .../src/shared/isValidVNodeElement.ts | 10 +- .../radix-vue/src/shared/onFocusOutside.ts | 42 +-- .../src/shared/renderSlotFragments.ts | 15 +- packages/radix-vue/src/shared/trap-focus.ts | 44 +-- packages/radix-vue/src/shared/types.ts | 8 +- .../src/shared/useArrowNavigation.test.ts | 165 +++++---- .../src/shared/useArrowNavigation.ts | 126 +++---- .../radix-vue/src/shared/useBodyScrollLock.ts | 68 ++-- .../radix-vue/src/shared/useCollection.ts | 48 +-- .../radix-vue/src/shared/useEmitAsProps.ts | 26 +- .../radix-vue/src/shared/useFocusGuards.ts | 48 +-- packages/radix-vue/src/shared/useHover.ts | 41 +-- .../radix-vue/src/shared/useHoverDelay.ts | 34 +- packages/radix-vue/src/shared/useId.ts | 23 +- .../radix-vue/src/shared/useMouseInElement.ts | 22 +- .../src/shared/useMouseleaveDelay.ts | 42 +-- .../radix-vue/src/shared/useNewCollection.ts | 53 +-- .../src/shared/useSingleOrMultipleValue.ts | 113 ++++--- packages/radix-vue/src/shared/useSize.ts | 69 ++-- .../radix-vue/src/shared/useStateMachine.ts | 28 +- packages/radix-vue/src/shared/useTypeahead.ts | 67 ++-- packages/radix-vue/tsconfig.json | 2 +- packages/radix-vue/vite.config.ts | 35 +- packages/radix-vue/vitest.config.ts | 20 +- playground/nuxt/app.vue | 2 +- playground/nuxt/components/AccordionDemo.vue | 28 +- .../nuxt/components/AlertDialogDemo.vue | 14 +- .../nuxt/components/CollapsibleDemo.vue | 7 +- .../nuxt/components/ContextMenuDemo.vue | 16 +- playground/nuxt/components/DialogDemo.vue | 16 +- .../nuxt/components/DropdownMenuDemo.vue | 18 +- playground/nuxt/components/HoverCardDemo.vue | 36 +- playground/nuxt/components/MenubarDemo.vue | 16 +- .../nuxt/components/NavigationMenuDemo.vue | 12 +- .../components/NavigationMenuListItem.vue | 4 +- playground/nuxt/components/PopoverDemo.vue | 16 +- playground/nuxt/components/ProgressDemo.vue | 2 +- playground/nuxt/components/RadioGroupDemo.vue | 2 +- playground/nuxt/components/SelectDemo.vue | 20 +- .../nuxt/components/SelectMultipleDemo.vue | 21 +- playground/nuxt/components/SwitchDemo.vue | 2 +- playground/nuxt/components/TabsDemo.vue | 12 +- .../nuxt/components/ToggleGroupDemo.vue | 12 +- playground/nuxt/components/TooltipDemo.vue | 17 +- playground/nuxt/nuxt.config.ts | 4 +- playground/nuxt/tailwind.config.js | 92 +++--- playground/vue3/src/App.vue | 56 ++-- .../src/components/Demo/AlertDialogDemo.vue | 4 +- .../vue3/src/components/Demo/DialogDemo.vue | 6 +- .../src/components/Demo/HoverCardDemo.vue | 76 ++--- .../components/Demo/NavigationMenuDemo.vue | 22 +- .../Demo/NavigationMenuListItem.vue | 6 +- .../src/components/Demo/SeparatorDemo.vue | 22 +- .../vue3/src/components/Demo/SwitchDemo.vue | 2 +- .../src/components/Demo/ToggleGroupDemo.vue | 2 +- .../vue3/src/components/Demo/TooltipDemo.vue | 12 +- playground/vue3/tailwind.config.js | 92 +++--- pnpm-workspace.yaml | 4 +- 404 files changed, 7691 insertions(+), 7438 deletions(-) delete mode 100644 packages/radix-vue/.eslintrc.cjs diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f4583ec0d..6826a62fb 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -14,63 +14,63 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v2 + - name: Checkout repository + uses: actions/checkout@v2 - - name: Setup Node.js environment - uses: actions/setup-node@v2 - with: - node-version: 16 + - name: Setup Node.js environment + uses: actions/setup-node@v2 + with: + node-version: 16 - - name: Install dependencies - run: cd packages/radix-vue && npm install + - name: Install dependencies + run: cd packages/radix-vue && npm install - - name: Build - run: cd packages/radix-vue && npm run -r --filter=!docs build + - name: Build + run: cd packages/radix-vue && npm run -r --filter=!docs build - - name: Check for errors - run: | - if [ $? -eq 0 ]; then - echo "Build succeeded" - else - echo "Build failed" - exit 1 - fi + - name: Check for errors + run: | + if [ $? -eq 0 ]; then + echo "Build succeeded" + else + echo "Build failed" + exit 1 + fi lint: needs: build runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v2 + - name: Checkout repository + uses: actions/checkout@v2 - - name: Setup Node.js environment - uses: actions/setup-node@v2 - with: - node-version: 16 + - name: Setup Node.js environment + uses: actions/setup-node@v2 + with: + node-version: 16 - - name: Install dependencies - run: cd packages/radix-vue && npm install + - name: Install dependencies + run: cd packages/radix-vue && npm install - - name: Lint - run: cd packages/radix-vue && npm run lint + - name: Lint + run: cd packages/radix-vue && npm run lint test: needs: build runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v2 + - name: Checkout repository + uses: actions/checkout@v2 - - name: Setup Node.js environment - uses: actions/setup-node@v2 - with: - node-version: 16 + - name: Setup Node.js environment + uses: actions/setup-node@v2 + with: + node-version: 16 - - name: Install dependencies - run: cd packages/radix-vue && npm install + - name: Install dependencies + run: cd packages/radix-vue && npm install - - name: Test - run: cd packages/radix-vue && npm run test + - name: Test + run: cd packages/radix-vue && npm run test diff --git a/packages/radix-nuxt/build.config.ts b/packages/radix-nuxt/build.config.ts index 2b50ca881..ee70ab9d5 100644 --- a/packages/radix-nuxt/build.config.ts +++ b/packages/radix-nuxt/build.config.ts @@ -4,6 +4,6 @@ export default defineBuildConfig({ failOnWarn: false, outDir: '../radix-vue/dist/nuxt', externals: [ - '@nuxt/schema' + '@nuxt/schema', ], -}) \ No newline at end of file +}) diff --git a/packages/radix-nuxt/package.json b/packages/radix-nuxt/package.json index 740b813da..9c07950cd 100644 --- a/packages/radix-nuxt/package.json +++ b/packages/radix-nuxt/package.json @@ -1,7 +1,7 @@ { "name": "@radix-vue/nuxt", - "version": "1.0.0", "type": "module", + "version": "1.0.0", "description": "Nuxt module for Radix Vue", "license": "MIT", "keywords": [ @@ -35,4 +35,4 @@ "radix-vue": "file:../radix-vue", "unbuild": "^0.8.11" } -} \ No newline at end of file +} diff --git a/packages/radix-nuxt/src/index.ts b/packages/radix-nuxt/src/index.ts index 1571fc269..a32f30cc1 100644 --- a/packages/radix-nuxt/src/index.ts +++ b/packages/radix-nuxt/src/index.ts @@ -1,4 +1,5 @@ -import { defineNuxtModule, addComponent } from '@nuxt/kit' +import { addComponent, defineNuxtModule } from '@nuxt/kit' + import type { } from '@nuxt/schema' // workaround for TS bug with "phantom" deps import * as components from 'radix-vue' @@ -7,16 +8,16 @@ export default defineNuxtModule({ name: '@radix-vue/nuxt', configKey: 'radix', compatibility: { - nuxt: '^3.0.0' - } + nuxt: '^3.0.0', + }, }, setup() { for (const component of Object.keys(components)) { addComponent({ name: component, export: component, - filePath: 'radix-vue' + filePath: 'radix-vue', }) } - } -}) \ No newline at end of file + }, +}) diff --git a/packages/radix-nuxt/tsconfig.json b/packages/radix-nuxt/tsconfig.json index f17fa977c..2b37be612 100644 --- a/packages/radix-nuxt/tsconfig.json +++ b/packages/radix-nuxt/tsconfig.json @@ -1,10 +1,10 @@ { - "compilerOptions": { - "moduleResolution": "node", - "module": "es2020" - }, - "exclude": [ - "node_modules", - "dist" - ], -} \ No newline at end of file + "compilerOptions": { + "moduleResolution": "node", + "module": "es2020" + }, + "exclude": [ + "node_modules", + "dist" + ] +} diff --git a/packages/radix-vue/.eslintrc.cjs b/packages/radix-vue/.eslintrc.cjs deleted file mode 100644 index 9e5909673..000000000 --- a/packages/radix-vue/.eslintrc.cjs +++ /dev/null @@ -1,20 +0,0 @@ -/* eslint-env node */ -require("@rushstack/eslint-patch/modern-module-resolution"); - -module.exports = { - root: true, - extends: [ - "plugin:vue/vue3-essential", - "eslint:recommended", - "@vue/eslint-config-typescript", - "@vue/eslint-config-prettier", - ], - parserOptions: { - ecmaVersion: "latest", - }, - rules: { - "vue/multi-word-component-names": 0, - "vue/no-setup-props-destructure": 1, - "no-console": ["warn", { allow: ["warn", "error"] }], - }, -}; diff --git a/packages/radix-vue/package.json b/packages/radix-vue/package.json index 485a9cd53..07f52356f 100644 --- a/packages/radix-vue/package.json +++ b/packages/radix-vue/package.json @@ -1,12 +1,19 @@ { "name": "radix-vue", + "type": "module", "version": "0.1.21", "description": "Vue port for Radix UI Primitives.", - "type": "module", - "main": "./dist/index.umd.cjs", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", - "typings": "./dist/index.d.ts", + "author": "Radix Vue Contributors (https://github.com/radix-vue)", + "license": "MIT", + "homepage": "https://github.com/radix-vue/radix-vue", + "repository": { + "type": "git", + "url": "git+https://github.com/radix-vue/radix-vue.git" + }, + "bugs": { + "url": "https://github.com/radix-vue/radix-vue/issues" + }, + "keywords": [], "exports": { ".": { "require": "./dist/index.umd.cjs", @@ -18,51 +25,40 @@ }, "./index.css": "./dist/index.css" }, + "main": "./dist/index.umd.cjs", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "typings": "./dist/index.d.ts", "files": [ "./dist", "./LICENSE" ], - "license": "MIT", - "author": "Radix Vue Contributors (https://github.com/radix-vue)", - "homepage": "https://github.com/radix-vue/radix-vue", - "repository": { - "type": "git", - "url": "git+https://github.com/radix-vue/radix-vue.git" - }, - "bugs": { - "url": "https://github.com/radix-vue/radix-vue/issues" - }, - "keywords": [], "scripts": { - "build": "run-p format lint && run-p type-check build-only", + "build": "pnpm type-check && pnpm build-only", "build-only": "rimraf dist && vite build", "type-check": "vue-tsc -p tsconfig.check.json --noEmit", "type-gen": "vue-tsc --declaration --emitDeclarationOnly", - "format": "prettier --write \"**/*.{js,jsx,ts,tsx,css,md,vue}\" --ignore-path .gitignore", - "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", "test": "vitest" }, + "dependencies": { + "@floating-ui/dom": "^1.4.2", + "@floating-ui/vue": "^1.0.1" + }, "devDependencies": { "@rollup/plugin-alias": "^5.0.0", - "@rushstack/eslint-patch": "^1.3.2", "@testing-library/vue": "^7.0.0", "@tsconfig/node18": "^2.0.1", "@types/node": "^18.16.18", "@vitejs/plugin-vue": "^4.2.3", "@vitejs/plugin-vue-jsx": "^3.0.1", "@vitest/coverage-istanbul": "^0.33.0", - "@vue/eslint-config-prettier": "^7.1.0", - "@vue/eslint-config-typescript": "^11.0.3", "@vue/test-utils": "^2.4.0", "@vue/tsconfig": "^0.4.0", "@vueuse/components": "^10.2.1", "@vueuse/core": "^10.3.0", "@vueuse/shared": "^10.3.0", "dts-bundle": "^0.7.3", - "eslint": "^8.43.0", - "eslint-plugin-vue": "^9.15.0", "jsdom": "^22.1.0", - "npm-run-all": "^4.1.5", "prettier": "^2.8.8", "rimraf": "^5.0.1", "typescript": "^5.1.3", @@ -71,9 +67,5 @@ "vitest": "^0.33.0", "vue": "^3.3.4", "vue-tsc": "^1.8.1" - }, - "dependencies": { - "@floating-ui/dom": "^1.4.2", - "@floating-ui/vue": "^1.0.1" } } diff --git a/packages/radix-vue/src/Accordion/AccordionContent.vue b/packages/radix-vue/src/Accordion/AccordionContent.vue index b2036c0f5..467d3e142 100644 --- a/packages/radix-vue/src/Accordion/AccordionContent.vue +++ b/packages/radix-vue/src/Accordion/AccordionContent.vue @@ -1,22 +1,22 @@