From f4bf41fc4c4f32545c5c1dc23ab5fce43c7ba74e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adri=C3=A1n=20UB?=
<22903142+adrian-ub@users.noreply.github.com>
Date: Fri, 27 Sep 2024 22:17:26 -0500
Subject: [PATCH] docs: new website
---
docs/.gitignore | 3 +
docs/.vscode/simple-query.code-snippets | 18 -
docs/README.md | 47 +
docs/astro.config.mjs | 169 +-
docs/package.json | 53 +-
.../fonts/GeistVariableVF.woff2 | Bin
docs/src/assets/logo.svg | 28 -
docs/src/components/ComponentPreview.astro | 63 -
docs/src/components/ComponentSource.astro | 63 -
docs/src/components/Footer.astro | 16 +
docs/src/components/Header.astro | 44 +
docs/src/components/Logo.astro | 61 +
docs/src/components/Navbar.astro | 38 +
docs/src/components/PageNavigation.astro | 64 +
docs/src/components/SelectStyle/Item.astro | 17 -
docs/src/components/SelectStyle/Select.astro | 142 --
docs/src/components/SelectStyle/index.ts | 4 -
.../SelectStyle/rehype-select-style.ts | 118 --
docs/src/components/Sidebar.astro | 67 +
docs/src/components/Toc.astro | 66 +
.../component-preview/ComponentPreview.astro | 90 +
.../component-preview/ComponentSource.astro | 62 +
.../component-preview/RawCode.astro | 17 +
.../component-preview.ts | 0
.../component-preview/select/Select.astro | 148 ++
.../select/SelectContent.astro | 10 +
.../component-preview/select/index.ts | 6 +
docs/src/components/copy-button.ts | 36 +
docs/src/components/mdx/Callout.astro | 13 +
docs/src/components/mdx/a.astro | 5 +
docs/src/components/mdx/h1.astro | 7 +
docs/src/components/mdx/h2.astro | 10 +
docs/src/components/mdx/h3.astro | 10 +
docs/src/components/mdx/h4.astro | 10 +
docs/src/components/mdx/h5.astro | 10 +
docs/src/components/mdx/h6.astro | 10 +
docs/src/components/mdx/index.ts | 45 +
docs/src/components/mdx/li.astro | 7 +
docs/src/components/mdx/linked-card.astro | 10 +
docs/src/components/mdx/ol.astro | 7 +
docs/src/components/mdx/p.astro | 7 +
docs/src/components/mdx/pre.astro | 24 +
docs/src/components/mdx/step-item.astro | 10 +
docs/src/components/mdx/step.astro | 10 +
docs/src/components/mdx/ul.astro | 7 +
.../components/page-header/PageActions.astro | 8 +
.../components/page-header/PageHeader.astro | 7 +
.../page-header/PageHeaderDescription.astro | 8 +
.../page-header/PageHeaderHeading.astro | 7 +
docs/src/components/page-header/index.ts | 11 +
.../components/starlight/ContentPanel.astro | 4 -
docs/src/components/starlight/Hero.astro | 51 -
.../starlight/MarkdownContent.astro | 5 -
.../starlight/MobileMenuToggle.astro | 67 -
docs/src/components/starlight/PageFrame.astro | 56 -
.../components/starlight/PageSidebar.astro | 41 -
docs/src/components/starlight/PageTitle.astro | 64 -
.../src/components/starlight/Pagination.astro | 38 -
docs/src/components/starlight/Search.astro | 476 -----
docs/src/components/starlight/Sidebar.astro | 14 -
.../components/starlight/SidebarSublist.astro | 64 -
docs/src/components/starlight/SiteTitle.astro | 41 -
.../components/starlight/SocialIcons.astro | 32 -
.../starlight/TwoColumnContent.astro | 18 -
.../components/starlight/header/Header.astro | 37 -
.../components/starlight/header/MainNav.astro | 94 -
docs/src/components/tabs/Tabs.astro | 94 +
docs/src/components/tabs/TabsContent.astro | 21 +
docs/src/components/tabs/TabsList.astro | 7 +
docs/src/components/tabs/TabsTrigger.astro | 20 +
docs/src/components/tabs/index.ts | 11 +
docs/src/config/docs.ts | 149 ++
docs/src/config/site.ts | 14 +-
docs/src/constants.ts | 1 -
docs/src/content/config.ts | 27 +-
docs/src/content/docs/{docs => }/cli.mdx | 0
.../docs/{docs => }/components-json.mdx | 9 +-
.../src/content/docs/components/accordion.mdx | 100 +
.../docs/{docs => }/components/alert.mdx | 36 +-
.../docs/{docs => }/components/avatar.mdx | 35 +-
.../docs/{docs => }/components/badge.mdx | 39 +-
.../content/docs/components/breadcrumb.mdx | 37 +
.../docs/{docs => }/components/button.mdx | 39 +-
.../docs/{docs => }/components/input.mdx | 39 +-
.../src/content/docs/components/separator.mdx | 49 +
docs/src/content/docs/components/skeleton.mdx | 56 +
docs/src/content/docs/components/switch.mdx | 53 +
.../docs/{docs => }/components/table.mdx | 44 +-
.../docs/{docs => }/components/tabs.mdx | 44 +-
.../docs/{docs => }/components/typography.mdx | 0
.../docs/docs/components/accordion.mdx | 87 -
.../docs/docs/components/breadcrumb.mdx | 29 -
.../docs/docs/components/separator.mdx | 39 -
.../content/docs/docs/components/skeleton.mdx | 46 -
.../content/docs/docs/components/switch.mdx | 42 -
docs/src/content/docs/docs/index.mdx | 16 -
.../docs/docs/installation/angular.mdx | 85 -
.../content/docs/docs/installation/astro.mdx | 134 --
.../content/docs/docs/installation/index.mdx | 35 -
docs/src/content/docs/index.mdx | 29 +-
.../src/content/docs/installation/angular.mdx | 95 +
docs/src/content/docs/installation/index.mdx | 36 +
docs/src/content/docs/{docs => }/theming.mdx | 10 +-
docs/src/env.d.ts | 1 -
docs/src/fonts/font-face.css | 5 -
docs/src/layouts/DocsLayout.astro | 125 ++
docs/src/layouts/RootLayout.astro | 101 +
docs/src/layouts/main.css | 134 ++
docs/src/pages/docs/[...slug].astro | 23 +
docs/src/pages/index.astro | 40 +
docs/src/registry/new-york/ui/tabs.ts | 13 +-
docs/src/schemas/badge.ts | 33 -
docs/src/schemas/prevNextLink.ts | 30 -
docs/src/schemas/sidebar.ts | 124 --
docs/src/style/markdown.css | 315 ---
docs/src/tailwind.css | 109 -
docs/src/utils/base.ts | 15 -
docs/src/utils/createPathFormatter.ts | 61 -
docs/src/utils/format-path.ts | 7 -
docs/src/utils/i18n.ts | 231 --
docs/src/utils/navigation.ts | 475 -----
docs/src/utils/path.ts | 58 -
docs/src/utils/routing.ts | 153 --
docs/src/utils/slugs.ts | 140 --
docs/src/utils/validateLogoImports.ts | 24 -
docs/src/virtual.d.ts | 24 -
docs/tailwind.config.mjs | 9 +-
.../dark.json} | 2 +-
docs/tsconfig.app.json | 20 +-
docs/tsconfig.json | 17 +-
pnpm-lock.yaml | 1865 +++++++++--------
131 files changed, 3575 insertions(+), 4981 deletions(-)
delete mode 100644 docs/.vscode/simple-query.code-snippets
create mode 100644 docs/README.md
rename docs/{src => public}/fonts/GeistVariableVF.woff2 (100%)
delete mode 100644 docs/src/assets/logo.svg
delete mode 100644 docs/src/components/ComponentPreview.astro
delete mode 100644 docs/src/components/ComponentSource.astro
create mode 100644 docs/src/components/Footer.astro
create mode 100644 docs/src/components/Header.astro
create mode 100644 docs/src/components/Logo.astro
create mode 100644 docs/src/components/Navbar.astro
create mode 100644 docs/src/components/PageNavigation.astro
delete mode 100644 docs/src/components/SelectStyle/Item.astro
delete mode 100644 docs/src/components/SelectStyle/Select.astro
delete mode 100644 docs/src/components/SelectStyle/index.ts
delete mode 100644 docs/src/components/SelectStyle/rehype-select-style.ts
create mode 100644 docs/src/components/Sidebar.astro
create mode 100644 docs/src/components/Toc.astro
create mode 100644 docs/src/components/component-preview/ComponentPreview.astro
create mode 100644 docs/src/components/component-preview/ComponentSource.astro
create mode 100644 docs/src/components/component-preview/RawCode.astro
rename docs/src/components/{ => component-preview}/component-preview.ts (100%)
create mode 100644 docs/src/components/component-preview/select/Select.astro
create mode 100644 docs/src/components/component-preview/select/SelectContent.astro
create mode 100644 docs/src/components/component-preview/select/index.ts
create mode 100644 docs/src/components/copy-button.ts
create mode 100644 docs/src/components/mdx/Callout.astro
create mode 100644 docs/src/components/mdx/a.astro
create mode 100644 docs/src/components/mdx/h1.astro
create mode 100644 docs/src/components/mdx/h2.astro
create mode 100644 docs/src/components/mdx/h3.astro
create mode 100644 docs/src/components/mdx/h4.astro
create mode 100644 docs/src/components/mdx/h5.astro
create mode 100644 docs/src/components/mdx/h6.astro
create mode 100644 docs/src/components/mdx/index.ts
create mode 100644 docs/src/components/mdx/li.astro
create mode 100644 docs/src/components/mdx/linked-card.astro
create mode 100644 docs/src/components/mdx/ol.astro
create mode 100644 docs/src/components/mdx/p.astro
create mode 100644 docs/src/components/mdx/pre.astro
create mode 100644 docs/src/components/mdx/step-item.astro
create mode 100644 docs/src/components/mdx/step.astro
create mode 100644 docs/src/components/mdx/ul.astro
create mode 100644 docs/src/components/page-header/PageActions.astro
create mode 100644 docs/src/components/page-header/PageHeader.astro
create mode 100644 docs/src/components/page-header/PageHeaderDescription.astro
create mode 100644 docs/src/components/page-header/PageHeaderHeading.astro
create mode 100644 docs/src/components/page-header/index.ts
delete mode 100644 docs/src/components/starlight/ContentPanel.astro
delete mode 100644 docs/src/components/starlight/Hero.astro
delete mode 100644 docs/src/components/starlight/MarkdownContent.astro
delete mode 100644 docs/src/components/starlight/MobileMenuToggle.astro
delete mode 100644 docs/src/components/starlight/PageFrame.astro
delete mode 100644 docs/src/components/starlight/PageSidebar.astro
delete mode 100644 docs/src/components/starlight/PageTitle.astro
delete mode 100644 docs/src/components/starlight/Pagination.astro
delete mode 100644 docs/src/components/starlight/Search.astro
delete mode 100644 docs/src/components/starlight/Sidebar.astro
delete mode 100644 docs/src/components/starlight/SidebarSublist.astro
delete mode 100644 docs/src/components/starlight/SiteTitle.astro
delete mode 100644 docs/src/components/starlight/SocialIcons.astro
delete mode 100644 docs/src/components/starlight/TwoColumnContent.astro
delete mode 100644 docs/src/components/starlight/header/Header.astro
delete mode 100644 docs/src/components/starlight/header/MainNav.astro
create mode 100644 docs/src/components/tabs/Tabs.astro
create mode 100644 docs/src/components/tabs/TabsContent.astro
create mode 100644 docs/src/components/tabs/TabsList.astro
create mode 100644 docs/src/components/tabs/TabsTrigger.astro
create mode 100644 docs/src/components/tabs/index.ts
create mode 100644 docs/src/config/docs.ts
delete mode 100644 docs/src/constants.ts
rename docs/src/content/docs/{docs => }/cli.mdx (100%)
rename docs/src/content/docs/{docs => }/components-json.mdx (96%)
create mode 100644 docs/src/content/docs/components/accordion.mdx
rename docs/src/content/docs/{docs => }/components/alert.mdx (55%)
rename docs/src/content/docs/{docs => }/components/avatar.mdx (53%)
rename docs/src/content/docs/{docs => }/components/badge.mdx (53%)
create mode 100644 docs/src/content/docs/components/breadcrumb.mdx
rename docs/src/content/docs/{docs => }/components/button.mdx (63%)
rename docs/src/content/docs/{docs => }/components/input.mdx (51%)
create mode 100644 docs/src/content/docs/components/separator.mdx
create mode 100644 docs/src/content/docs/components/skeleton.mdx
create mode 100644 docs/src/content/docs/components/switch.mdx
rename docs/src/content/docs/{docs => }/components/table.mdx (66%)
rename docs/src/content/docs/{docs => }/components/tabs.mdx (62%)
rename docs/src/content/docs/{docs => }/components/typography.mdx (100%)
delete mode 100644 docs/src/content/docs/docs/components/accordion.mdx
delete mode 100644 docs/src/content/docs/docs/components/breadcrumb.mdx
delete mode 100644 docs/src/content/docs/docs/components/separator.mdx
delete mode 100644 docs/src/content/docs/docs/components/skeleton.mdx
delete mode 100644 docs/src/content/docs/docs/components/switch.mdx
delete mode 100644 docs/src/content/docs/docs/index.mdx
delete mode 100644 docs/src/content/docs/docs/installation/angular.mdx
delete mode 100644 docs/src/content/docs/docs/installation/astro.mdx
delete mode 100644 docs/src/content/docs/docs/installation/index.mdx
create mode 100644 docs/src/content/docs/installation/angular.mdx
create mode 100644 docs/src/content/docs/installation/index.mdx
rename docs/src/content/docs/{docs => }/theming.mdx (97%)
delete mode 100644 docs/src/fonts/font-face.css
create mode 100644 docs/src/layouts/DocsLayout.astro
create mode 100644 docs/src/layouts/RootLayout.astro
create mode 100644 docs/src/layouts/main.css
create mode 100644 docs/src/pages/docs/[...slug].astro
create mode 100644 docs/src/pages/index.astro
delete mode 100644 docs/src/schemas/badge.ts
delete mode 100644 docs/src/schemas/prevNextLink.ts
delete mode 100644 docs/src/schemas/sidebar.ts
delete mode 100644 docs/src/style/markdown.css
delete mode 100644 docs/src/tailwind.css
delete mode 100644 docs/src/utils/base.ts
delete mode 100644 docs/src/utils/createPathFormatter.ts
delete mode 100644 docs/src/utils/format-path.ts
delete mode 100644 docs/src/utils/i18n.ts
delete mode 100644 docs/src/utils/navigation.ts
delete mode 100644 docs/src/utils/path.ts
delete mode 100644 docs/src/utils/routing.ts
delete mode 100644 docs/src/utils/slugs.ts
delete mode 100644 docs/src/utils/validateLogoImports.ts
delete mode 100644 docs/src/virtual.d.ts
rename docs/{src/lib/highlighter-theme.json => theme/dark.json} (99%)
diff --git a/docs/.gitignore b/docs/.gitignore
index 6240da8..16d54bb 100644
--- a/docs/.gitignore
+++ b/docs/.gitignore
@@ -19,3 +19,6 @@ pnpm-debug.log*
# macOS-specific files
.DS_Store
+
+# jetbrains setting folder
+.idea/
diff --git a/docs/.vscode/simple-query.code-snippets b/docs/.vscode/simple-query.code-snippets
deleted file mode 100644
index 09979bf..0000000
--- a/docs/.vscode/simple-query.code-snippets
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "query target": {
- "scope": "typescriptreact,javascriptreact",
- "prefix": "$:target",
- "body": [
- "data-target={$('$1')}"
- ]
- },
- "query ready block": {
- "scope": "typescript,javascript",
- "prefix": "$:ready",
- "body": [
- "$.ready(async () => {",
- " $1",
- "});"
- ]
- }
-}
\ No newline at end of file
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..e34a99b
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,47 @@
+# Astro Starter Kit: Minimal
+
+```sh
+npm create astro@latest -- --template minimal
+```
+
+[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/minimal)
+[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/minimal)
+[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/minimal/devcontainer.json)
+
+> π§βπ **Seasoned astronaut?** Delete this file. Have fun!
+
+## π Project Structure
+
+Inside of your Astro project, you'll see the following folders and files:
+
+```text
+/
+βββ public/
+βββ src/
+β βββ pages/
+β βββ index.astro
+βββ package.json
+```
+
+Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
+
+There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
+
+Any static assets, like images, can be placed in the `public/` directory.
+
+## π§ Commands
+
+All commands are run from the root of the project, from a terminal:
+
+| Command | Action |
+| :------------------------ | :----------------------------------------------- |
+| `npm install` | Installs dependencies |
+| `npm run dev` | Starts local dev server at `localhost:4321` |
+| `npm run build` | Build your production site to `./dist/` |
+| `npm run preview` | Preview your build locally, before deploying |
+| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
+| `npm run astro -- --help` | Get help using the Astro CLI |
+
+## π Want to learn more?
+
+Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs
index 5ca0355..ef1b6ef 100644
--- a/docs/astro.config.mjs
+++ b/docs/astro.config.mjs
@@ -1,97 +1,104 @@
import angular from '@analogjs/astro-angular'
-import starlight from '@astrojs/starlight'
+import mdx from '@astrojs/mdx'
+import sitemap from '@astrojs/sitemap'
import tailwind from '@astrojs/tailwind'
+import { transformerMetaHighlight } from '@shikijs/transformers'
import { defineConfig } from 'astro/config'
-import AutoImport from 'astro-auto-import'
+
+import { visit } from 'unist-util-visit'
import { siteConfig } from './src/config/site'
+import blackout from './theme/dark.json'
-import theme from './src/lib/highlighter-theme.json'
+// FunciΓ³n recursiva para extraer todos los valores de texto
+function extractText(node) {
+ if (node.type === 'text') {
+ return node.value
+ }
+ if (node.children) {
+ return node.children.map(extractText).join('')
+ }
+ return ''
+}
// https://astro.build/config
export default defineConfig({
site: siteConfig.url,
+ trailingSlash: 'never',
integrations: [
- starlight({
- title: siteConfig.name,
- titleDelimiter: '-',
- expressiveCode: {
- themes: [theme],
- styleOverrides: {
- textMarkers: {
- markHue: 'rgba(63,63,70,.5)',
- },
- },
- },
- logo: { src: './src/assets/logo.svg' },
- favicon: '/favicon.ico',
- social: {
- 'github': siteConfig.links.github,
- 'x.com': siteConfig.links.twitter,
- },
- sidebar: [
- {
- label: 'Getting Started',
- items: [
- {
- label: 'Introduction',
- slug: 'docs',
- },
- {
- label: 'Installation',
- slug: 'docs/installation',
- },
- {
- label: 'components.json',
- slug: 'docs/components-json',
- },
- {
- label: 'Theming',
- slug: 'docs/theming',
- },
- {
- label: 'CLI',
- slug: 'docs/cli',
- },
- {
- label: 'Typography',
- slug: 'docs/components/typography',
- },
- ],
- },
- {
- label: 'Components',
- autogenerate: {
- directory: 'docs/components',
- },
- },
- ],
- customCss: ['./src/fonts/font-face.css', './src/tailwind.css'],
- components: {
- Header: './src/components/starlight/header/Header.astro',
- SiteTitle: './src/components/starlight/SiteTitle.astro',
- SocialIcons: './src/components/starlight/SocialIcons.astro',
- Search: './src/components/starlight/Search.astro',
- Hero: './src/components/starlight/Hero.astro',
- ContentPanel: './src/components/starlight/ContentPanel.astro',
- PageTitle: './src/components/starlight/PageTitle.astro',
- MarkdownContent: './src/components/starlight/MarkdownContent.astro',
- TwoColumnContent: './src/components/starlight/TwoColumnContent.astro',
- Sidebar: './src/components/starlight/Sidebar.astro',
- Pagination: './src/components/starlight/Pagination.astro',
- MobileMenuToggle: './src/components/starlight/MobileMenuToggle.astro',
- PageFrame: './src/components/starlight/PageFrame.astro',
- PageSidebar: './src/components/starlight/PageSidebar.astro',
- },
+ mdx(),
+ angular(),
+ tailwind({
+ applyBaseStyles: false,
}),
- AutoImport({
- imports: [
- '@/components/ComponentPreview.astro',
- '@/components/ComponentSource.astro',
- ],
+ sitemap({
+ serialize(item) {
+ if (item.url === siteConfig.url) {
+ item.changefreq = 'daily'
+ item.lastmod = new Date()
+ item.priority = 1
+ }
+ else {
+ item.changefreq = 'daily'
+ item.lastmod = new Date()
+ item.priority = 0.9
+ }
+ return item
+ },
}),
- tailwind(),
- angular(),
],
+ markdown: {
+ shikiConfig: {
+ theme: blackout,
+ transformers: [transformerMetaHighlight()],
+ },
+ rehypePlugins: [
+ () => (tree) => {
+ visit(tree, 'element', (node) => {
+ if (node.tagName !== 'pre')
+ return
+
+ const [codeEl] = node.children
+
+ if (codeEl.tagName !== 'code')
+ return
+
+ const rawString = extractText(codeEl)
+
+ node.properties = node.properties || {}
+ node.properties.rawString = rawString
+ })
+ },
+ () => (tree) => {
+ visit(tree, 'element', (node) => {
+ if (node.tagName !== 'pre')
+ return
+
+ const rawString = node.properties.rawString
+
+ // npm install.
+ if (rawString?.startsWith('npm install')) {
+ node.properties.npmCommand = rawString
+ node.properties.yarnCommand = rawString.replace('npm install', 'yarn add')
+ node.properties.pnpmCommand = rawString.replace('npm install', 'pnpm add')
+ }
+
+ // npx create.
+ if (rawString?.startsWith('npx create-')) {
+ node.properties.npmCommand = rawString
+ node.properties.yarnCommand = rawString.replace('npx create-', 'yarn create ')
+ node.properties.pnpmCommand = rawString.replace('npx create-', 'pnpm create ')
+ }
+
+ // npx.
+ if (rawString?.startsWith('npx') && !rawString.startsWith('npx create-')) {
+ node.properties.npmCommand = rawString
+ node.properties.yarnCommand = rawString
+ node.properties.pnpmCommand = rawString.replace('npx', 'pnpm dlx')
+ }
+ })
+ },
+ ],
+ },
redirects: {
'/docs/components': '/docs/components/accordion',
},
diff --git a/docs/package.json b/docs/package.json
index 4821bc7..99928a8 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -1,59 +1,54 @@
{
- "name": "docs",
+ "name": "playground",
"type": "module",
"version": "0.0.1",
- "private": true,
"scripts": {
"dev": "astro dev",
"start": "astro dev",
- "build": "astro build",
+ "build": "astro check && astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
- "@analogjs/astro-angular": "^1.7.2",
- "@angular-devkit/build-angular": "^18.2.1",
- "@angular/animations": "^18.2.1",
+ "@analogjs/astro-angular": "^1.8.1",
+ "@angular/animations": "^18.2.5",
"@angular/cdk": "^18.2.1",
- "@angular/common": "^18.2.1",
- "@angular/compiler": "^18.2.1",
- "@angular/compiler-cli": "^18.2.1",
- "@angular/core": "^18.2.1",
- "@angular/forms": "^18.2.1",
- "@angular/language-service": "^18.2.1",
- "@angular/platform-browser": "^18.2.1",
- "@angular/platform-browser-dynamic": "^18.2.1",
- "@angular/platform-server": "^18.2.1",
+ "@angular/common": "^18.2.5",
+ "@angular/core": "^18.2.5",
"@astrojs/check": "^0.9.3",
- "@astrojs/starlight": "^0.26.1",
- "@astrojs/starlight-tailwind": "^2.0.3",
- "@astrojs/tailwind": "^5.1.0",
+ "@astrojs/mdx": "^3.1.7",
+ "@astrojs/sitemap": "^3.1.6",
+ "@astrojs/tailwind": "^5.1.1",
+ "@astrojs/ts-plugin": "^1.10.2",
"@ng-icons/core": "^29.0.0",
"@ng-icons/lucide": "^29.0.0",
- "@ng-icons/radix-icons": "^29.0.0",
- "@pagefind/default-ui": "^1.1.0",
+ "@ng-icons/radix-icons": "^29.5.0",
"@radix-ng/primitives": "^0.10.0",
- "astro": "^4.14.5",
- "astro-auto-import": "^0.4.2",
+ "astro": "^4.15.9",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"hast": "^1.0.0",
"hast-util-select": "^6.0.2",
- "lodash.template": "^4.5.0",
"rehype": "^13.0.1",
"rxjs": "^7.8.1",
- "sharp": "^0.32.5",
"tailwind-merge": "^2.4.0",
- "tailwindcss": "^3.4.4",
+ "tailwindcss": "^3.4.13",
+ "tailwindcss-animate": "^1.0.7",
"tslib": "^2.7.0",
- "typescript": "^5.5.3",
"unist-util-visit": "^5.0.0",
- "vfile": "^6.0.2",
"zone.js": "~0.14.10"
},
"devDependencies": {
+ "@angular-devkit/build-angular": "^18.2.5",
+ "@angular/cli": "^18.2.6",
+ "@angular/compiler": "^18.2.5",
+ "@angular/compiler-cli": "^18.2.5",
+ "@angular/language-service": "^18.2.5",
+ "@angular/platform-browser": "^18.2.5",
+ "@angular/platform-browser-dynamic": "^18.2.5",
+ "@angular/platform-server": "^18.2.5",
+ "@shikijs/transformers": "^1.20.0",
"@types/hast": "^3.0.4",
- "@types/lodash.template": "^4.5.1",
- "prettier": "^3.3.3"
+ "typescript": "~5.5.0"
}
}
diff --git a/docs/src/fonts/GeistVariableVF.woff2 b/docs/public/fonts/GeistVariableVF.woff2
similarity index 100%
rename from docs/src/fonts/GeistVariableVF.woff2
rename to docs/public/fonts/GeistVariableVF.woff2
diff --git a/docs/src/assets/logo.svg b/docs/src/assets/logo.svg
deleted file mode 100644
index 393d335..0000000
--- a/docs/src/assets/logo.svg
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/src/components/ComponentPreview.astro b/docs/src/components/ComponentPreview.astro
deleted file mode 100644
index 653bafa..0000000
--- a/docs/src/components/ComponentPreview.astro
+++ /dev/null
@@ -1,63 +0,0 @@
----
-import { existsSync, readFileSync } from 'node:fs'
-import path from 'node:path'
-import process from 'node:process'
-import { cn } from '@/lib/utils'
-
-import { styles } from '@/registry/styles'
-
-import { Code, TabItem, Tabs } from '@astrojs/starlight/components'
-import { ComponentPeviewComponent } from './component-preview'
-import { SelectStyle, SelectStyleItem, syncKey } from './SelectStyle'
-
-export interface Props {
- name: string
- class?: string
-}
-const { name } = Astro.props
-
-const components = await Promise.all(
- styles.map(async (style) => {
- const filename = path.join(process.cwd(), 'src', 'registry', style.name, 'example', `${name}.ts`)
- let pathCode: string
- let code: string | null
-
- if (existsSync(filename)) {
- pathCode = `../registry/${style.name}/example/${name}.ts`
- code = readFileSync(`${filename}`)
- .toString()
- .replace(/export\s+default\s+(?:\S.*)?;\s*/, '')
- .replace(/@\/registry\/.*\/ui/g, '@/components/ui')
- }
- else {
- pathCode = ''
- code = null
- }
-
- return {
- style,
- code,
- path: pathCode,
- }
- }),
-)
----
-
-
-
-
-
- {
- components.map(({ style, path }) => (
- {path ? : Not found
}
- ))
- }
-
-
-
-
- {components.map(({ style, code }) => {code ?
: Not found
} )}
-
-
-
-
diff --git a/docs/src/components/ComponentSource.astro b/docs/src/components/ComponentSource.astro
deleted file mode 100644
index 7000f3a..0000000
--- a/docs/src/components/ComponentSource.astro
+++ /dev/null
@@ -1,63 +0,0 @@
----
-import { readFileSync } from 'node:fs'
-import path from 'node:path'
-import process from 'node:process'
-import { styles } from '@/registry/styles'
-import { ui } from '@/registry/ui'
-import { Code } from '@astrojs/starlight/components'
-
-import { SelectStyle, SelectStyleItem, syncKey } from './SelectStyle'
-
-export interface Props {
- name: string
-}
-
-const { name } = Astro.props
-
-const componentUi = ui.find(value => value.name === name)
-
-const allComponents = componentUi?.files.flatMap((file) => {
- return styles.map((style) => {
- const filename = path.join(
- process.cwd(),
- 'src',
- 'registry',
- style.name,
- file,
- )
-
- let code: string | null
-
- try {
- code = readFileSync(`${filename}`)
- .toString()
- .replace(/export\s+default\s+(?:\S.*)?;\s*/, '')
- .replace(/@\/registry\/.*\/ui/g, '@/components/ui')
- }
- catch {
- code = null
- }
-
- return {
- style,
- code,
- }
- })
-});
----
-
-
- {
- allComponents?.map(({ code, style }) => (
-
- {code
-? (
-
- )
-: (
- Not found
- )}
-
- ))
- }
-
diff --git a/docs/src/components/Footer.astro b/docs/src/components/Footer.astro
new file mode 100644
index 0000000..619a7c0
--- /dev/null
+++ b/docs/src/components/Footer.astro
@@ -0,0 +1,16 @@
+---
+import { siteConfig } from '@/config/site'
+---
+
+
+
+
+
+ Built & designed by{' '}
+ shadcn . Ported to Angular by{' '}
+ AdriΓ‘n UB . The source code is available on{' '}
+ GitHub.
+
+
+
+
diff --git a/docs/src/components/Header.astro b/docs/src/components/Header.astro
new file mode 100644
index 0000000..d731bc4
--- /dev/null
+++ b/docs/src/components/Header.astro
@@ -0,0 +1,44 @@
+---
+import { siteConfig } from '@/config/site'
+import { buttonVariants } from '@/registry/new-york/ui/button'
+
+import Navbar from './Navbar.astro'
+
+const { pathname } = Astro.url
+---
+
+
diff --git a/docs/src/components/Logo.astro b/docs/src/components/Logo.astro
new file mode 100644
index 0000000..891e19d
--- /dev/null
+++ b/docs/src/components/Logo.astro
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/components/Navbar.astro b/docs/src/components/Navbar.astro
new file mode 100644
index 0000000..dd624fc
--- /dev/null
+++ b/docs/src/components/Navbar.astro
@@ -0,0 +1,38 @@
+---
+import { docsConfig } from '@/config/docs'
+import { siteConfig } from '@/config/site'
+import { cn } from '@/lib/utils'
+import Logo from './Logo.astro'
+
+export type Props = {
+ pathname: string
+}
+
+const { pathname } = Astro.props
+---
+
+
diff --git a/docs/src/components/PageNavigation.astro b/docs/src/components/PageNavigation.astro
new file mode 100644
index 0000000..1114d74
--- /dev/null
+++ b/docs/src/components/PageNavigation.astro
@@ -0,0 +1,64 @@
+---
+import { docsConfig, type TNavItem, type TNavItemWithChildren } from '@/config/docs'
+import { cn } from '@/lib/utils'
+import { buttonVariants } from '@/registry/new-york/ui/button'
+
+const { pathname } = Astro.url
+
+function flatten(links: TNavItemWithChildren[]): TNavItem[] {
+ return links
+ .reduce((flat, link) => {
+ return flat.concat(link.items?.length ? flatten(link.items) : link)
+ }, [])
+ .filter(link => !link?.disabled)
+}
+
+function getPagerForDoc(slug: string) {
+ const flattenedLinks = [null, ...flatten(docsConfig.sidebarNav), null]
+ let activeIndex: number
+ if (!slug) {
+ activeIndex = 1
+ }
+ else {
+ activeIndex = flattenedLinks.findIndex(link => `${slug}` === link?.href)
+ }
+
+ const prev = activeIndex !== 0 ? flattenedLinks[activeIndex - 1] : null
+ const next = activeIndex !== flattenedLinks.length - 1 ? flattenedLinks[activeIndex + 1] : null
+ return {
+ prev,
+ next,
+ }
+}
+
+const pager = getPagerForDoc(pathname)
+---
+
+
diff --git a/docs/src/components/SelectStyle/Item.astro b/docs/src/components/SelectStyle/Item.astro
deleted file mode 100644
index 387d0f0..0000000
--- a/docs/src/components/SelectStyle/Item.astro
+++ /dev/null
@@ -1,17 +0,0 @@
----
-import { SelectStyleItemTagname } from './rehype-select-style'
-
-interface Props {
- label: string
-}
-
-const { label } = Astro.props
-
-if (!label) {
- throw new Error('Missing prop `label` on `` component.')
-}
----
-
-
-
-
diff --git a/docs/src/components/SelectStyle/Select.astro b/docs/src/components/SelectStyle/Select.astro
deleted file mode 100644
index b35921b..0000000
--- a/docs/src/components/SelectStyle/Select.astro
+++ /dev/null
@@ -1,142 +0,0 @@
----
-import { processPanels } from './rehype-select-style'
-
-interface Props {
- syncKey?: string
- hiddenSelect?: boolean
-}
-
-const { syncKey, hiddenSelect = false } = Astro.props
-const panelHtml = await Astro.slots.render('default')
-const { html, panels } = processPanels(panelHtml);
----
-
-
- {
- !hiddenSelect && (
-
-
- {panels && (
-
- {panels.map(({ label, panelId }) => (
- {label}
- ))}
-
- )}
-
-
-
- )
- }
-
- {
- hiddenSelect && (
-
- {panels && (
-
- {panels.map(({ label, panelId }) => (
- {label}
- ))}
-
- )}
-
-
- )
- }
-
-
-
-
-
diff --git a/docs/src/components/SelectStyle/index.ts b/docs/src/components/SelectStyle/index.ts
deleted file mode 100644
index 90e42c3..0000000
--- a/docs/src/components/SelectStyle/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export { default as SelectStyleItem } from './Item.astro'
-export { default as SelectStyle } from './Select.astro'
-
-export const syncKey = 'SelectStyle'
diff --git a/docs/src/components/SelectStyle/rehype-select-style.ts b/docs/src/components/SelectStyle/rehype-select-style.ts
deleted file mode 100644
index c187436..0000000
--- a/docs/src/components/SelectStyle/rehype-select-style.ts
+++ /dev/null
@@ -1,118 +0,0 @@
-import { select } from 'hast-util-select'
-import { rehype } from 'rehype'
-import { CONTINUE, SKIP, visit } from 'unist-util-visit'
-import type { Element } from 'hast'
-
-interface Panel {
- panelId: string
- tabId: string
- label: string
-}
-
-declare module 'vfile' {
- interface DataMap {
- panels: Panel[]
- }
-}
-
-export const SelectStyleItemTagname = 'ub-registry-style'
-
-// https://github.com/adobe/react-spectrum/blob/99ca82e87ba2d7fdd54f5b49326fd242320b4b51/packages/%40react-aria/focus/src/FocusScope.tsx#L256-L275
-const focusableElementSelectors = [
- 'input:not([disabled]):not([type=hidden])',
- 'select:not([disabled])',
- 'textarea:not([disabled])',
- 'button:not([disabled])',
- 'a[href]',
- 'area[href]',
- 'summary',
- 'iframe',
- 'object',
- 'embed',
- 'audio[controls]',
- 'video[controls]',
- '[contenteditable]',
- '[tabindex]:not([disabled])',
-]
- .map(selector => `${selector}:not([hidden]):not([tabindex="-1"])`)
- .join(',')
-
-let count = 0
-function getIDs(): { panelId: string, tabId: string } {
- const id = count++
- return { panelId: `tab-panel-${id}`, tabId: `tab-${id}` }
-}
-
-/**
- * Rehype processor to extract tab panel data and turn each
- * `` into a `` with the necessary
- * attributes.
- */
-const tabsProcessor = rehype()
- .data('settings', { fragment: true })
- .use(() => {
- return (tree: Element, file) => {
- file.data.panels = []
- let isFirst = true
- visit(tree, 'element', (node) => {
- if (node.tagName !== SelectStyleItemTagname || !node.properties) {
- return CONTINUE
- }
-
- const { dataLabel } = node.properties
- const ids = getIDs()
- const panel: Panel = {
- ...ids,
- label: String(dataLabel),
- }
- file.data.panels?.push(panel)
-
- // Remove `` props
- delete node.properties.dataLabel
- // Turn into `` with required attributes
- node.tagName = 'section'
- node.properties.id = ids.panelId
- node.properties['aria-labelledby'] = ids.tabId
- node.properties.role = 'tabpanel'
-
- const focusableChild = select(focusableElementSelectors, node)
- // If the panel does not contain any focusable elements, include it in
- // the tab sequence of the page.
- if (!focusableChild) {
- node.properties.tabindex = 0
- }
-
- // Hide all panels except the first
- // TODO: make initially visible tab configurable
- if (isFirst) {
- isFirst = false
- }
- else {
- node.properties.hidden = true
- }
-
- // Skip over the tab panelβs children.
- return SKIP
- })
- }
- })
-
-/**
- * Process tab panel items to extract data for the tab links and format
- * each tab panel correctly.
- * @param html Inner HTML passed to the `` component.
- */
-export function processPanels(html: string): {
- /** Data for each tab panel. */
- panels: Panel[] | undefined
- /** Processed HTML for the tab panels. */
- html: string
-} {
- const file = tabsProcessor.processSync({ value: html })
- return {
- /** Data for each tab panel. */
- panels: file.data.panels,
- /** Processed HTML for the tab panels. */
- html: file.toString(),
- }
-}
diff --git a/docs/src/components/Sidebar.astro b/docs/src/components/Sidebar.astro
new file mode 100644
index 0000000..4cc1a80
--- /dev/null
+++ b/docs/src/components/Sidebar.astro
@@ -0,0 +1,67 @@
+---
+import { docsConfig } from '@/config/docs'
+import { cn } from '@/lib/utils'
+
+const { pathname } = Astro.props;
+---
+
+
+ {
+ docsConfig.sidebarNav.map(item => (
+
+ ))
+ }
+
diff --git a/docs/src/components/Toc.astro b/docs/src/components/Toc.astro
new file mode 100644
index 0000000..d5fed5e
--- /dev/null
+++ b/docs/src/components/Toc.astro
@@ -0,0 +1,66 @@
+---
+import { cn } from '@/lib/utils'
+import type { MarkdownHeading } from 'astro'
+
+type Props = {
+ data: MarkdownHeading[]
+}
+
+const { data } = Astro.props
+const { pathname } = Astro.url
+---
+
+
+
+
diff --git a/docs/src/components/component-preview/ComponentPreview.astro b/docs/src/components/component-preview/ComponentPreview.astro
new file mode 100644
index 0000000..6ccce1b
--- /dev/null
+++ b/docs/src/components/component-preview/ComponentPreview.astro
@@ -0,0 +1,90 @@
+---
+import { existsSync, readFileSync } from 'node:fs'
+import path from 'node:path'
+import process from 'node:process'
+import { cn } from '@/lib/utils'
+import { styles } from '@/registry/styles'
+
+import { CopyButton } from '../copy-button'
+
+import { Tabs, TabsContent, TabsList, TabsTrigger } from '../tabs'
+
+import { ComponentPeviewComponent } from './component-preview'
+import RawCode from './RawCode.astro'
+import { Select, SelectContent, syncKey } from './select'
+
+export interface Props {
+ name: string
+ class?: string
+}
+const { name } = Astro.props
+
+const sortedStyleByNewYork = styles.toSorted((a, b) => (a.name === 'new-york' ? -1 : b.name === 'new-york' ? 1 : 0))
+
+const components = await Promise.all(
+ [...sortedStyleByNewYork].map(async (style) => {
+ const filename = path.join(process.cwd(), 'src', 'registry', style.name, 'example', `${name}.ts`)
+ let pathCode: string
+ let code: string | null
+
+ if (existsSync(filename)) {
+ pathCode = `../registry/${style.name}/example/${name}.ts`
+ code = readFileSync(`${filename}`)
+ .toString()
+ .replace(/@\/registry\/.*\/ui/g, '@/components/ui')
+ .replace(/export\s+default\s+(?:\S.*)?\s*/, '')
+ }
+ else {
+ pathCode = ''
+ code = null
+ }
+
+ return {
+ style,
+ code,
+ pathCode,
+ }
+ }),
+)
+---
+
+
+
+
+ Preview
+ Code
+
+
+
+
+ {
+ components.map(({ style, pathCode, code }) => (
+
+ {pathCode
+? (
+
+
+
+
+ )
+: (
+ Not found
+ )}
+
+ ))
+ }
+
+
+
+
+ {
+ components.map(({ style, code }) => (
+
+ {code ? : Not found
}
+
+ ))
+ }
+
+
+
+
diff --git a/docs/src/components/component-preview/ComponentSource.astro b/docs/src/components/component-preview/ComponentSource.astro
new file mode 100644
index 0000000..ede4a33
--- /dev/null
+++ b/docs/src/components/component-preview/ComponentSource.astro
@@ -0,0 +1,62 @@
+---
+import { readFileSync } from 'node:fs'
+import path from 'node:path'
+import process from 'node:process'
+import { styles } from '@/registry/styles'
+import { ui } from '@/registry/ui'
+import { Code as CodeAstro } from 'astro/components'
+import blackout from '../../../theme/dark.json'
+import { CopyButton } from '../copy-button'
+
+import { Select, SelectContent, syncKey } from './select'
+
+export interface Props {
+ name: string
+}
+
+const { name } = Astro.props
+
+const componentUi = ui.find(value => value.name === name)
+
+const allComponents = componentUi?.files.flatMap((file) => {
+ return styles.map((style) => {
+ const filename = path.join(process.cwd(), 'src', 'registry', style.name, file)
+
+ let code: string | null
+
+ try {
+ code = readFileSync(`${filename}`)
+ .toString()
+ .replace(/export\s+default\s+(?:\S.*)?;\s*/, '')
+ .replace(/@\/registry\/.*\/ui/g, '@/components/ui')
+ }
+ catch {
+ code = null
+ }
+
+ return {
+ style,
+ code,
+ }
+ })
+})
+---
+
+
+ {
+ allComponents?.map(({ code, style }) => (
+
+ {code
+? (
+
+
+
+
+ )
+: (
+ Not found
+ )}
+
+ ))
+ }
+
diff --git a/docs/src/components/component-preview/RawCode.astro b/docs/src/components/component-preview/RawCode.astro
new file mode 100644
index 0000000..dbabd33
--- /dev/null
+++ b/docs/src/components/component-preview/RawCode.astro
@@ -0,0 +1,17 @@
+---
+import { Code as CodeAstro } from 'astro/components'
+import blackout from '../../../theme/dark.json'
+
+import { CopyButton } from '../copy-button'
+
+export interface Props {
+ code: string
+}
+
+const { code } = Astro.props
+---
+
+
+
+
+
diff --git a/docs/src/components/component-preview.ts b/docs/src/components/component-preview/component-preview.ts
similarity index 100%
rename from docs/src/components/component-preview.ts
rename to docs/src/components/component-preview/component-preview.ts
diff --git a/docs/src/components/component-preview/select/Select.astro b/docs/src/components/component-preview/select/Select.astro
new file mode 100644
index 0000000..78d3825
--- /dev/null
+++ b/docs/src/components/component-preview/select/Select.astro
@@ -0,0 +1,148 @@
+---
+export interface Props {
+ defaultValue?: string
+ syncKey?: string
+ hideSelect?: boolean
+}
+
+const { hideSelect } = Astro.props
+---
+
+
+ {
+ !hideSelect && (
+
+ )
+ }
+
+ {hideSelect && }
+
+
+
+
+
diff --git a/docs/src/components/component-preview/select/SelectContent.astro b/docs/src/components/component-preview/select/SelectContent.astro
new file mode 100644
index 0000000..17366af
--- /dev/null
+++ b/docs/src/components/component-preview/select/SelectContent.astro
@@ -0,0 +1,10 @@
+---
+export interface Props {
+ value: string
+ label: string
+}
+---
+
+
+
+
diff --git a/docs/src/components/component-preview/select/index.ts b/docs/src/components/component-preview/select/index.ts
new file mode 100644
index 0000000..656b72f
--- /dev/null
+++ b/docs/src/components/component-preview/select/index.ts
@@ -0,0 +1,6 @@
+import Select from './Select.astro'
+import SelectContent from './SelectContent.astro'
+
+const syncKey = 'SelectStyle'
+
+export { Select, SelectContent, syncKey }
diff --git a/docs/src/components/copy-button.ts b/docs/src/components/copy-button.ts
new file mode 100644
index 0000000..352345a
--- /dev/null
+++ b/docs/src/components/copy-button.ts
@@ -0,0 +1,36 @@
+import { cn } from '@/lib/utils'
+import { UbButtonDirective } from '@/registry/new-york/ui/button'
+import { Clipboard } from '@angular/cdk/clipboard'
+import { Component, computed, inject, input, signal } from '@angular/core'
+
+@Component({
+ standalone: true,
+ selector: 'copy-button',
+ imports: [UbButtonDirective],
+ template: `
+
+ Copy
+ @if(isCopied()) {
+
+ } @else {
+
+ }
+
+ `,
+})
+export class CopyButton {
+ private cilpbard = inject(Clipboard)
+ class = input('')
+ withMeta = input(false)
+ rawString = input.required()
+ protected computedClass = computed(() => cn('p-1 rounded-md absolute top-4 right-4 text-zinc-50 hover:bg-zinc-700 hover:text-zinc-50 transition-colors h-6 w-6', this.class(), this.withMeta() && 'top-16'))
+ protected isCopied = signal(false)
+
+ copy(): void {
+ this.cilpbard.copy(this.rawString())
+ this.isCopied.set(true)
+ setTimeout(() => {
+ this.isCopied.set(false)
+ }, 2000)
+ }
+}
diff --git a/docs/src/components/mdx/Callout.astro b/docs/src/components/mdx/Callout.astro
new file mode 100644
index 0000000..ae8bab8
--- /dev/null
+++ b/docs/src/components/mdx/Callout.astro
@@ -0,0 +1,13 @@
+---
+import { cn } from '@/lib/utils'
+---
+
+[ubAlertIcon]+div]:translate-y-[-3px] [&>[ubAlertIcon]]:absolute [&>[ubAlertIcon]]:left-4 [&>[ubAlertIcon]]:text-foreground [&>[ubAlertIcon]]:top-4 [&>[ubAlertIcon]~*]:pl-7 bg-background border p-4 relative rounded-lg text-foreground w-full', Astro.props.class)}
+>
+ {Astro.props.title && (
+
{Astro.props.title}
+ )}
+
+
diff --git a/docs/src/components/mdx/a.astro b/docs/src/components/mdx/a.astro
new file mode 100644
index 0000000..d245fd6
--- /dev/null
+++ b/docs/src/components/mdx/a.astro
@@ -0,0 +1,5 @@
+---
+const props = Astro.props;
+---
+
+
diff --git a/docs/src/components/mdx/h1.astro b/docs/src/components/mdx/h1.astro
new file mode 100644
index 0000000..c1001f0
--- /dev/null
+++ b/docs/src/components/mdx/h1.astro
@@ -0,0 +1,7 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/h2.astro b/docs/src/components/mdx/h2.astro
new file mode 100644
index 0000000..0fb96ac
--- /dev/null
+++ b/docs/src/components/mdx/h2.astro
@@ -0,0 +1,10 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/h3.astro b/docs/src/components/mdx/h3.astro
new file mode 100644
index 0000000..8ea37b8
--- /dev/null
+++ b/docs/src/components/mdx/h3.astro
@@ -0,0 +1,10 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/h4.astro b/docs/src/components/mdx/h4.astro
new file mode 100644
index 0000000..59617d3
--- /dev/null
+++ b/docs/src/components/mdx/h4.astro
@@ -0,0 +1,10 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/h5.astro b/docs/src/components/mdx/h5.astro
new file mode 100644
index 0000000..b052070
--- /dev/null
+++ b/docs/src/components/mdx/h5.astro
@@ -0,0 +1,10 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/h6.astro b/docs/src/components/mdx/h6.astro
new file mode 100644
index 0000000..296ccd7
--- /dev/null
+++ b/docs/src/components/mdx/h6.astro
@@ -0,0 +1,10 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/index.ts b/docs/src/components/mdx/index.ts
new file mode 100644
index 0000000..fcca4a7
--- /dev/null
+++ b/docs/src/components/mdx/index.ts
@@ -0,0 +1,45 @@
+import ComponentPreview from '../component-preview/ComponentPreview.astro'
+import ComponentSource from '../component-preview/ComponentSource.astro'
+import { Tabs, TabsContent, TabsList, TabsTrigger } from '../tabs'
+import a from './a.astro'
+import Callout from './Callout.astro'
+import h1 from './h1.astro'
+import h2 from './h2.astro'
+import h3 from './h3.astro'
+import h4 from './h4.astro'
+import h5 from './h5.astro'
+import h6 from './h6.astro'
+import li from './li.astro'
+import LinkedCard from './linked-card.astro'
+import ol from './ol.astro'
+import p from './p.astro'
+
+import pre from './pre.astro'
+import Step from './step.astro'
+import StepItem from './step-item.astro'
+import ul from './ul.astro'
+
+export const components = {
+ a,
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ p,
+ pre,
+ ul,
+ li,
+ ol,
+ Step,
+ StepItem,
+ LinkedCard,
+ Tabs,
+ TabsContent,
+ TabsList,
+ TabsTrigger,
+ ComponentPreview,
+ ComponentSource,
+ Callout,
+}
diff --git a/docs/src/components/mdx/li.astro b/docs/src/components/mdx/li.astro
new file mode 100644
index 0000000..9cb8b8c
--- /dev/null
+++ b/docs/src/components/mdx/li.astro
@@ -0,0 +1,7 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/linked-card.astro b/docs/src/components/mdx/linked-card.astro
new file mode 100644
index 0000000..1fa5f9e
--- /dev/null
+++ b/docs/src/components/mdx/linked-card.astro
@@ -0,0 +1,10 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/ol.astro b/docs/src/components/mdx/ol.astro
new file mode 100644
index 0000000..8913224
--- /dev/null
+++ b/docs/src/components/mdx/ol.astro
@@ -0,0 +1,7 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/p.astro b/docs/src/components/mdx/p.astro
new file mode 100644
index 0000000..f0da8d6
--- /dev/null
+++ b/docs/src/components/mdx/p.astro
@@ -0,0 +1,7 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/pre.astro b/docs/src/components/mdx/pre.astro
new file mode 100644
index 0000000..d2318cb
--- /dev/null
+++ b/docs/src/components/mdx/pre.astro
@@ -0,0 +1,24 @@
+---
+import { cn } from '@/lib/utils'
+import { CopyButton } from '../copy-button'
+// import PackageManagerCopyButton from "../package-manager-copy-button";
+
+type Props = {
+ rawString: string
+ npmCommand: string
+ yarnCommand: string
+ pnpmCommand: string
+ withMeta: boolean
+ class?: string
+}
+
+const { rawString, npmCommand, pnpmCommand, yarnCommand, withMeta, class: className, ...rest } = Astro.props
+---
+
+
+
+
+ {rawString && !npmCommand ?
: null}
+
+ {npmCommand && yarnCommand && pnpmCommand ? (
) : null}
+
diff --git a/docs/src/components/mdx/step-item.astro b/docs/src/components/mdx/step-item.astro
new file mode 100644
index 0000000..8ea37b8
--- /dev/null
+++ b/docs/src/components/mdx/step-item.astro
@@ -0,0 +1,10 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/step.astro b/docs/src/components/mdx/step.astro
new file mode 100644
index 0000000..db395e3
--- /dev/null
+++ b/docs/src/components/mdx/step.astro
@@ -0,0 +1,10 @@
+---
+const props = Astro.props;
+---
+
+
+
+
diff --git a/docs/src/components/mdx/ul.astro b/docs/src/components/mdx/ul.astro
new file mode 100644
index 0000000..056fdc4
--- /dev/null
+++ b/docs/src/components/mdx/ul.astro
@@ -0,0 +1,7 @@
+---
+const props = Astro.props;
+---
+
+
diff --git a/docs/src/components/page-header/PageActions.astro b/docs/src/components/page-header/PageActions.astro
new file mode 100644
index 0000000..d5c2258
--- /dev/null
+++ b/docs/src/components/page-header/PageActions.astro
@@ -0,0 +1,8 @@
+---
+import { cn } from '@/lib/utils';
+
+---
+
+
+
+
diff --git a/docs/src/components/page-header/PageHeader.astro b/docs/src/components/page-header/PageHeader.astro
new file mode 100644
index 0000000..6ff0f33
--- /dev/null
+++ b/docs/src/components/page-header/PageHeader.astro
@@ -0,0 +1,7 @@
+---
+import { cn } from '@/lib/utils'
+---
+
+
diff --git a/docs/src/components/page-header/PageHeaderDescription.astro b/docs/src/components/page-header/PageHeaderDescription.astro
new file mode 100644
index 0000000..1d9e1e2
--- /dev/null
+++ b/docs/src/components/page-header/PageHeaderDescription.astro
@@ -0,0 +1,8 @@
+---
+import { cn } from '@/lib/utils';
+
+---
+
+
+
+
diff --git a/docs/src/components/page-header/PageHeaderHeading.astro b/docs/src/components/page-header/PageHeaderHeading.astro
new file mode 100644
index 0000000..3e82ae3
--- /dev/null
+++ b/docs/src/components/page-header/PageHeaderHeading.astro
@@ -0,0 +1,7 @@
+---
+import { cn } from '@/lib/utils'
+---
+
+
+
+
diff --git a/docs/src/components/page-header/index.ts b/docs/src/components/page-header/index.ts
new file mode 100644
index 0000000..3daf018
--- /dev/null
+++ b/docs/src/components/page-header/index.ts
@@ -0,0 +1,11 @@
+import PageActions from './PageActions.astro'
+import PageHeader from './PageHeader.astro'
+import PageHeaderDescription from './PageHeaderDescription.astro'
+import PageHeaderHeading from './PageHeaderHeading.astro'
+
+export {
+ PageActions,
+ PageHeader,
+ PageHeaderDescription,
+ PageHeaderHeading,
+}
diff --git a/docs/src/components/starlight/ContentPanel.astro b/docs/src/components/starlight/ContentPanel.astro
deleted file mode 100644
index eee597f..0000000
--- a/docs/src/components/starlight/ContentPanel.astro
+++ /dev/null
@@ -1,4 +0,0 @@
----
----
-
-
diff --git a/docs/src/components/starlight/Hero.astro b/docs/src/components/starlight/Hero.astro
deleted file mode 100644
index e8fac81..0000000
--- a/docs/src/components/starlight/Hero.astro
+++ /dev/null
@@ -1,51 +0,0 @@
----
-import { cn } from '@/lib/utils'
-
-import { buttonVariants } from '@/registry/new-york/ui/button'
-import type { Props } from '@astrojs/starlight/props'
-import { PAGE_TITLE_ID } from '../../constants'
-
-const { data } = Astro.props.entry
-const { title = data.title, tagline, actions = [] } = data.hero || {};
----
-
-
-
- {
- tagline && (
-
- )
- }
- {
- actions.length > 0 && (
-
- {actions.map(({ text, link, ...attrs }) => (
-
- //
- ))}
-
- )
- }
-
diff --git a/docs/src/components/starlight/MarkdownContent.astro b/docs/src/components/starlight/MarkdownContent.astro
deleted file mode 100644
index 1b7ff2c..0000000
--- a/docs/src/components/starlight/MarkdownContent.astro
+++ /dev/null
@@ -1,5 +0,0 @@
----
-import '../../style/markdown.css';
----
-
-
diff --git a/docs/src/components/starlight/MobileMenuToggle.astro b/docs/src/components/starlight/MobileMenuToggle.astro
deleted file mode 100644
index 7400fb6..0000000
--- a/docs/src/components/starlight/MobileMenuToggle.astro
+++ /dev/null
@@ -1,67 +0,0 @@
----
-import { cn } from '@/lib/utils'
-import { buttonVariants } from '@/registry/new-york/ui/button'
-
-import { Icon } from '@astrojs/starlight/components'
-import type { Props } from '@astrojs/starlight/props'
-
-const { labels } = Astro.props;
----
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/src/components/starlight/PageFrame.astro b/docs/src/components/starlight/PageFrame.astro
deleted file mode 100644
index c08feeb..0000000
--- a/docs/src/components/starlight/PageFrame.astro
+++ /dev/null
@@ -1,56 +0,0 @@
----
-import type { Props } from '@astrojs/starlight/props'
-import MobileMenuToggle from './MobileMenuToggle.astro'
-
-const { hasSidebar, labels } = Astro.props;
----
-
-
-
-
diff --git a/docs/src/components/starlight/PageSidebar.astro b/docs/src/components/starlight/PageSidebar.astro
deleted file mode 100644
index 6e4ced4..0000000
--- a/docs/src/components/starlight/PageSidebar.astro
+++ /dev/null
@@ -1,41 +0,0 @@
----
-import MobileTableOfContents from '@astrojs/starlight/components/MobileTableOfContents.astro'
-
-import TableOfContents from '@astrojs/starlight/components/TableOfContents.astro'
-import type { Props } from '@astrojs/starlight/props'
----
-
-{
- Astro.props.toc && (
- <>
-
-
-
-
- >
- )
-}
-
-
diff --git a/docs/src/components/starlight/PageTitle.astro b/docs/src/components/starlight/PageTitle.astro
deleted file mode 100644
index 7a68d38..0000000
--- a/docs/src/components/starlight/PageTitle.astro
+++ /dev/null
@@ -1,64 +0,0 @@
----
-import { cn } from '@/lib/utils'
-
-import { badgeVariants } from '@/registry/new-york/ui/badge'
-
-import { radixChevronRight, radixExternalLink } from '@ng-icons/radix-icons'
-import type { Props } from '@astrojs/starlight/props'
-
-import { PAGE_TITLE_ID } from '../../constants';
----
-
-
-
Docs
-
-
{Astro.props.entry.data.title}
-
-
-
-
- {Astro.props.entry.data.title}
-
- {
- Astro.props.entry.data.description && (
-
-
- {Astro.props.entry.data.description}
-
-
- )
- }
-
-
-{
- Astro.props.entry.data.links
-? (
-
- )
-: null
-}
diff --git a/docs/src/components/starlight/Pagination.astro b/docs/src/components/starlight/Pagination.astro
deleted file mode 100644
index 132eec4..0000000
--- a/docs/src/components/starlight/Pagination.astro
+++ /dev/null
@@ -1,38 +0,0 @@
----
-import { cn } from '@/lib/utils'
-
-import { buttonVariants } from '@/registry/default/ui/button'
-import { radixChevronLeft, radixChevronRight } from '@ng-icons/radix-icons'
-
-import type { Props } from '@astrojs/starlight/props'
-
-const { dir, pagination } = Astro.props
-const { prev, next } = pagination;
----
-
-
diff --git a/docs/src/components/starlight/Search.astro b/docs/src/components/starlight/Search.astro
deleted file mode 100644
index f7375b1..0000000
--- a/docs/src/components/starlight/Search.astro
+++ /dev/null
@@ -1,476 +0,0 @@
----
-import { cn } from '@/lib/utils'
-import { buttonVariants } from '@/registry/new-york/ui/button'
-import project from 'virtual:starlight/project-context'
-
-import type { Props } from '@astrojs/starlight/props'
-import '@pagefind/default-ui/css/ui.css'
-
-const { labels } = Astro.props
-
-const pagefindTranslations = {
- placeholder: labels['search.label'],
- ...Object.fromEntries(
- Object.entries(labels)
- .filter(([key]) => key.startsWith('pagefind.'))
- .map(([key, value]) => [key.replace('pagefind.', ''), value]),
- ),
-};
----
-
-
-
-
- {labels['search.label']}
-
-
- β K
-
-
-
-
-
- {
- /* TODO: Make the layout of this button flexible to accommodate different word lengths. Currently hard-coded for English: βCancelβ */
- }
-
- {labels['search.cancelLabel']}
-
- {
- import.meta.env.DEV
-? (
-
-
{labels['search.devWarning']}
-
- )
-: (
-
- )
- }
-
-
-
-
-{
- /**
- * This is intentionally inlined to avoid briefly showing an invalid shortcut.
- * Purposely using the deprecated `navigator.platform` property to detect Apple devices, as the
- * user agent is spoofed by some browsers when opening the devtools.
- */
-}
-
-
-
-
-
-
-
diff --git a/docs/src/components/starlight/Sidebar.astro b/docs/src/components/starlight/Sidebar.astro
deleted file mode 100644
index 4e6e294..0000000
--- a/docs/src/components/starlight/Sidebar.astro
+++ /dev/null
@@ -1,14 +0,0 @@
----
-import MobileMenuFooter from '@astrojs/starlight/components/MobileMenuFooter.astro'
-
-import type { Props } from '@astrojs/starlight/props'
-import SidebarSublist from './SidebarSublist.astro'
-
-const { sidebar } = Astro.props;
----
-
-
-
-
-
-
diff --git a/docs/src/components/starlight/SidebarSublist.astro b/docs/src/components/starlight/SidebarSublist.astro
deleted file mode 100644
index 8db451b..0000000
--- a/docs/src/components/starlight/SidebarSublist.astro
+++ /dev/null
@@ -1,64 +0,0 @@
----
-import { cn } from '@/lib/utils'
-import { Badge } from '@astrojs/starlight/components'
-import type { SidebarEntry } from '../../utils/navigation'
-
-interface Props {
- sublist: SidebarEntry[]
- nested?: boolean
-}
-
-const { sublist } = Astro.props;
----
-
-
diff --git a/docs/src/components/starlight/SiteTitle.astro b/docs/src/components/starlight/SiteTitle.astro
deleted file mode 100644
index 5acfe66..0000000
--- a/docs/src/components/starlight/SiteTitle.astro
+++ /dev/null
@@ -1,41 +0,0 @@
----
-import config from 'virtual:starlight/user-config'
-import { logos } from 'virtual:starlight/user-images'
-import type { Props } from '@astrojs/starlight/props'
-
-const { siteTitle, siteTitleHref } = Astro.props;
----
-
-
- {
- config.logo && logos.dark && (
- <>
-
- {/* Show light alternate if a user configure both light and dark logos. */}
- {!('src' in config.logo) && (
-
- )}
- >
- )
- }
-
- {siteTitle}
-
-
diff --git a/docs/src/components/starlight/SocialIcons.astro b/docs/src/components/starlight/SocialIcons.astro
deleted file mode 100644
index 3ad8811..0000000
--- a/docs/src/components/starlight/SocialIcons.astro
+++ /dev/null
@@ -1,32 +0,0 @@
----
-import { cn } from '@/lib/utils'
-import { buttonVariants } from '@/registry/new-york/ui/button'
-import { Icon } from '@astrojs/starlight/components'
-import config from 'virtual:starlight/user-config'
-
-type Platform = keyof NonNullable
-type SocialConfig = NonNullable[Platform]>
-const links = Object.entries(config.social || {}) as [Platform, SocialConfig][];
----
-
-{
- links.length > 0 && (
- <>
- {links.map(([platform, { label, url }]) => (
-
-
-
- {label}
-
-
- ))}
- >
- )
-}
diff --git a/docs/src/components/starlight/TwoColumnContent.astro b/docs/src/components/starlight/TwoColumnContent.astro
deleted file mode 100644
index 7e56ae8..0000000
--- a/docs/src/components/starlight/TwoColumnContent.astro
+++ /dev/null
@@ -1,18 +0,0 @@
----
-import type { Props } from '@astrojs/starlight/props';
----
-
-
-
-
-
- {
- Astro.props.toc && (
-
- )
- }
-
diff --git a/docs/src/components/starlight/header/Header.astro b/docs/src/components/starlight/header/Header.astro
deleted file mode 100644
index d1f0f33..0000000
--- a/docs/src/components/starlight/header/Header.astro
+++ /dev/null
@@ -1,37 +0,0 @@
----
-import LanguageSelect from '@astrojs/starlight/components/LanguageSelect.astro'
-import ThemeSelect from '@astrojs/starlight/components/ThemeSelect.astro'
-
-import config from 'virtual:starlight/user-config'
-import type { Props } from '@astrojs/starlight/props'
-import Search from '../Search.astro'
-import SocialIcons from '../SocialIcons.astro'
-import MainNav from './MainNav.astro'
-
-/**
- * Render the `Search` component if Pagefind is enabled or the default search component has been overridden.
- */
-const shouldRenderSearch
- = config.pagefind
- || config.components.Search !== '@astrojs/starlight/components/Search.astro';
----
-
-
-
-
-
-
- {shouldRenderSearch && }
-
-
-
-
-
-
-
-
-
diff --git a/docs/src/components/starlight/header/MainNav.astro b/docs/src/components/starlight/header/MainNav.astro
deleted file mode 100644
index c8d18dc..0000000
--- a/docs/src/components/starlight/header/MainNav.astro
+++ /dev/null
@@ -1,94 +0,0 @@
----
-import SiteTitle from '@/components/starlight/SiteTitle.astro'
-import { cn } from '@/lib/utils'
-
-import type { Props } from '@astrojs/starlight/props'
-
-const pathname = new URL(Astro.request.url).pathname.slice(1);
----
-
-
-
-
diff --git a/docs/src/components/tabs/Tabs.astro b/docs/src/components/tabs/Tabs.astro
new file mode 100644
index 0000000..a5aefbc
--- /dev/null
+++ b/docs/src/components/tabs/Tabs.astro
@@ -0,0 +1,94 @@
+---
+import { cn } from '@/lib/utils'
+
+export interface Props {
+ defaultValue?: string
+ class?: string
+}
+const { defaultValue } = Astro.props
+---
+
+
+
+
+
+
+
+
diff --git a/docs/src/components/tabs/TabsContent.astro b/docs/src/components/tabs/TabsContent.astro
new file mode 100644
index 0000000..a933010
--- /dev/null
+++ b/docs/src/components/tabs/TabsContent.astro
@@ -0,0 +1,21 @@
+---
+import { cn } from '@/lib/utils'
+
+export interface Props {
+ value: string
+ class?: string
+}
+
+const { value } = Astro.props
+---
+
+
+
+
diff --git a/docs/src/components/tabs/TabsList.astro b/docs/src/components/tabs/TabsList.astro
new file mode 100644
index 0000000..0aa3a7e
--- /dev/null
+++ b/docs/src/components/tabs/TabsList.astro
@@ -0,0 +1,7 @@
+---
+import { cn } from '@/lib/utils'
+---
+
+
+
+
diff --git a/docs/src/components/tabs/TabsTrigger.astro b/docs/src/components/tabs/TabsTrigger.astro
new file mode 100644
index 0000000..0b0a10c
--- /dev/null
+++ b/docs/src/components/tabs/TabsTrigger.astro
@@ -0,0 +1,20 @@
+---
+import { cn } from '@/lib/utils'
+
+export interface Props {
+ value: string
+ class?: string
+}
+const { value } = Astro.props
+---
+
+
+
+
diff --git a/docs/src/components/tabs/index.ts b/docs/src/components/tabs/index.ts
new file mode 100644
index 0000000..19d76ad
--- /dev/null
+++ b/docs/src/components/tabs/index.ts
@@ -0,0 +1,11 @@
+import Tabs from './Tabs.astro'
+import TabsContent from './TabsContent.astro'
+import TabsList from './TabsList.astro'
+import TabsTrigger from './TabsTrigger.astro'
+
+export {
+ Tabs,
+ TabsContent,
+ TabsList,
+ TabsTrigger,
+}
diff --git a/docs/src/config/docs.ts b/docs/src/config/docs.ts
new file mode 100644
index 0000000..582d90f
--- /dev/null
+++ b/docs/src/config/docs.ts
@@ -0,0 +1,149 @@
+export interface TNavItem {
+ title: string
+ href?: string
+ disabled?: boolean
+ label?: string
+}
+
+export type TSidebarNavItem = TNavItem & {
+ items: TSidebarNavItem[]
+}
+
+export type TNavItemWithChildren = TNavItem & {
+ items: TNavItemWithChildren[]
+}
+
+export interface TDocsConfig {
+ mainNav: TNavItem[]
+ sidebarNav: TSidebarNavItem[]
+}
+
+export const docsConfig: TDocsConfig = {
+ mainNav: [
+ {
+ title: 'Docs',
+ href: '/docs',
+ },
+ {
+ title: 'Components',
+ href: '/docs/components/accordion',
+ },
+ ],
+ sidebarNav: [
+ {
+ title: 'Getting Started',
+ items: [
+ {
+ title: 'Introduction',
+ href: '/docs',
+ items: [],
+ },
+ {
+ title: 'Installation',
+ href: '/docs/installation',
+ items: [],
+ },
+ {
+ title: 'components.json',
+ href: '/docs/components-json',
+ items: [],
+ },
+ {
+ title: 'Theming',
+ href: '/docs/theming',
+ items: [],
+ },
+ {
+ title: 'Dark mode',
+ href: '/docs/dark-mode',
+ disabled: true,
+ label: 'Soon',
+ items: [],
+ },
+ {
+ title: 'CLI',
+ href: '/docs/cli',
+ items: [],
+ },
+ {
+ title: 'Typography',
+ href: '/docs/components/typography',
+ items: [],
+ },
+ ],
+ },
+ {
+ title: 'Installation',
+ items: [{
+ title: 'Angular',
+ href: '/docs/installation/angular',
+ items: [],
+ }],
+ },
+ {
+ title: 'Components',
+ items: [
+ {
+ title: 'Accordion',
+ href: '/docs/components/accordion',
+ items: [],
+ },
+ {
+ title: 'Alert',
+ href: '/docs/components/alert',
+ items: [],
+ },
+ {
+ title: 'Avatar',
+ href: '/docs/components/avatar',
+ items: [],
+ },
+ {
+ title: 'Badge',
+ href: '/docs/components/badge',
+ items: [],
+ },
+ {
+ title: 'Breadcrumb',
+ href: '/docs/components/breadcrumb',
+ items: [],
+ },
+ {
+ title: 'Button',
+ href: '/docs/components/button',
+ items: [],
+ },
+ {
+ title: 'Input',
+ href: '/docs/components/input',
+ items: [],
+ },
+ {
+ title: 'Separator',
+ href: '/docs/components/separator',
+ items: [],
+ },
+ {
+ title: 'Skeleton',
+ href: '/docs/components/skeleton',
+ items: [],
+ },
+ {
+ title: 'Switch',
+ href: '/docs/components/switch',
+ items: [],
+ },
+ {
+ title: 'Table',
+ href: '/docs/components/table',
+ items: [],
+ },
+ {
+ title: 'Tabs',
+ href: '/docs/components/tabs',
+ items: [],
+ },
+ ],
+ },
+ ],
+}
diff --git a/docs/src/config/site.ts b/docs/src/config/site.ts
index e83095a..45cc5f6 100644
--- a/docs/src/config/site.ts
+++ b/docs/src/config/site.ts
@@ -1,13 +1,13 @@
export const siteConfig = {
- name: 'shadcn-ng',
+ title: 'shadcn-gn',
url: 'https://ui.adrianub.dev',
- ogImage: 'https://ui.adrianub.dev/og.jpg',
- description:
- 'Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.',
+ description: 'Beautifully designed components built with your choice of UI and CSS frameworks.',
links: {
- twitter: 'https://twitter.com/adrianub',
+ twitter: 'https://twitter.com/AdrianUB',
github: 'https://github.com/adrian-ub/shadcn-ng',
+ shadcn: {
+ twitter: 'https://twitter.com/shadcn',
+ github: 'https://github.com/shadcn/ui',
+ },
},
}
-
-export type SiteConfig = typeof siteConfig
diff --git a/docs/src/constants.ts b/docs/src/constants.ts
deleted file mode 100644
index f8e40be..0000000
--- a/docs/src/constants.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const PAGE_TITLE_ID = '_top'
diff --git a/docs/src/content/config.ts b/docs/src/content/config.ts
index 0e5301c..e43bd51 100644
--- a/docs/src/content/config.ts
+++ b/docs/src/content/config.ts
@@ -1,17 +1,18 @@
-import { docsSchema } from '@astrojs/starlight/schema'
import { defineCollection, z } from 'astro:content'
-export const collections = {
- docs: defineCollection({
- schema: docsSchema({
- extend: z.object({
- links: z
- .object({
- doc: z.string().optional(),
- api: z.string().optional(),
- })
- .optional(),
- }),
- }),
+const docsCollection = defineCollection({
+ schema: z.object({
+ title: z.string(),
+ description: z.string(),
+ links: z
+ .object({
+ doc: z.string().optional(),
+ api: z.string().optional(),
+ })
+ .optional(),
}),
+})
+
+export const collections = {
+ docs: docsCollection,
}
diff --git a/docs/src/content/docs/docs/cli.mdx b/docs/src/content/docs/cli.mdx
similarity index 100%
rename from docs/src/content/docs/docs/cli.mdx
rename to docs/src/content/docs/cli.mdx
diff --git a/docs/src/content/docs/docs/components-json.mdx b/docs/src/content/docs/components-json.mdx
similarity index 96%
rename from docs/src/content/docs/docs/components-json.mdx
rename to docs/src/content/docs/components-json.mdx
index 783700a..87de0df 100644
--- a/docs/src/content/docs/docs/components-json.mdx
+++ b/docs/src/content/docs/components-json.mdx
@@ -3,17 +3,16 @@ title: components.json
description: Configuration for your project.
---
-import { Aside } from "@astrojs/starlight/components";
The `components.json` file holds configuration for your project.
We use it to understand how your project is set up and how to generate components customized for your project.
-
+
Note: The `components.json` file is optional and **only required if you're
using the CLI** to add components to your project. If you're using the copy
and paste method, you don't need this file.
-
+
You can create a `components.json` file in your project by running the following command:
@@ -121,10 +120,10 @@ The CLI uses these values and the `paths` config from your `tsconfig.json` or `j
Path aliases have to be set up in your `tsconfig.json` or `jsconfig.json` file.
-
+
**Important:** If you're using the `src` directory, make sure it is included
under `paths` in your `tsconfig.json` or `jsconfig.json` file.
-
+
### aliases.utils
diff --git a/docs/src/content/docs/components/accordion.mdx b/docs/src/content/docs/components/accordion.mdx
new file mode 100644
index 0000000..7689c2e
--- /dev/null
+++ b/docs/src/content/docs/components/accordion.mdx
@@ -0,0 +1,100 @@
+---
+title: Accordion
+description: A vertically stacked set of interactive headings that each reveal a section of content.
+links:
+ doc: https://www.radix-ng.com/?path=/docs/primitives-accordion--docs
+---
+
+
+
+## Installation
+
+
+
+
+ CLI
+ Manual
+
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add accordion
+```
+
+
+
+
+
+
+
+Install the following dependencies:
+
+```bash
+npm install @ng-icons/core @ng-icons/lucide
+```
+
+Copy and paste the following code into your project.
+
+
+
+Update the import paths to match your project setup.
+
+Update `tailwind.config.js`
+
+Add the following animations to your `tailwind.config.js` file:
+
+```js {5-18}
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ theme: {
+ extend: {
+ keyframes: {
+ "accordion-down": {
+ from: { height: "0" },
+ to: { height: "var(--radix-accordion-content-height)" },
+ },
+ "accordion-up": {
+ from: { height: "var(--radix-accordion-content-height)" },
+ to: { height: "0" },
+ },
+ },
+ animation: {
+ "accordion-down": "accordion-down 0.2s ease-out",
+ "accordion-up": "accordion-up 0.2s ease-out",
+ },
+ },
+ },
+}
+```
+
+
+
+
+
+
+
+## Usage
+
+```ts
+import {
+ UbAccordionDirective,
+ UbAccordionItemDirective,
+ UbAccordionTriggerDirective,
+ UbAccordionContentDirective
+} from '@/components/ui/accordion.directive';
+```
+
+```html
+
+
+
Is it accessible?
+
+ Yes. It adheres to the WAI-ARIA design pattern.
+
+
+
+```
diff --git a/docs/src/content/docs/docs/components/alert.mdx b/docs/src/content/docs/components/alert.mdx
similarity index 55%
rename from docs/src/content/docs/docs/components/alert.mdx
rename to docs/src/content/docs/components/alert.mdx
index 1607bb3..a2694c3 100644
--- a/docs/src/content/docs/docs/components/alert.mdx
+++ b/docs/src/content/docs/components/alert.mdx
@@ -3,29 +3,33 @@ title: Alert
description: Displays a callout for user attention.
---
-import { Tabs, TabItem } from "@astrojs/starlight/components";
-import { Steps } from "@astrojs/starlight/components";
-
## Installation
-
- ```bash frame="code"
- npx shadcn-ng@latest add alert
- ```
-
+
+CLI
+Manual
+
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add alert
+```
+
+
+
+
+Copy and paste the following code into your project.
-
-
- 1. Copy and paste the following code into your project.
-
+
- 2. Update the import paths to match your project setup.
-
+Update the import paths to match your project setup.
+
-
+
## Usage
@@ -38,7 +42,7 @@ import {
} from "@/components/ui/alert.directive";
```
-```angular-html
+```html
Heads up!
diff --git a/docs/src/content/docs/docs/components/avatar.mdx b/docs/src/content/docs/components/avatar.mdx
similarity index 53%
rename from docs/src/content/docs/docs/components/avatar.mdx
rename to docs/src/content/docs/components/avatar.mdx
index 6989ea1..26ff591 100644
--- a/docs/src/content/docs/docs/components/avatar.mdx
+++ b/docs/src/content/docs/components/avatar.mdx
@@ -5,29 +5,32 @@ links:
doc: https://www.radix-ng.com/?path=/docs/primitives-avatar--docs
---
-import { Tabs, TabItem } from "@astrojs/starlight/components";
-import { Steps } from "@astrojs/starlight/components";
-
## Installation
-
- ```bash frame="code"
- npx shadcn-ng@latest add avatar
- ```
-
+
+CLI
+Manual
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add avatar
+```
+
+
+
+
+Copy and paste the following code into your project.
-
-
- 1. Copy and paste the following code into your project.
-
+
- 2. Update the import paths to match your project setup.
-
+Update the import paths to match your project setup.
+
-
+
## Usage
@@ -40,7 +43,7 @@ import {
} from '@/components/ui/avatar.directive'
```
-```angular-html
+```html
UB
diff --git a/docs/src/content/docs/docs/components/badge.mdx b/docs/src/content/docs/components/badge.mdx
similarity index 53%
rename from docs/src/content/docs/docs/components/badge.mdx
rename to docs/src/content/docs/components/badge.mdx
index 9bf754c..53142bc 100644
--- a/docs/src/content/docs/docs/components/badge.mdx
+++ b/docs/src/content/docs/components/badge.mdx
@@ -3,29 +3,36 @@ title: Badge
description: Displays a badge or a component that looks like a badge.
---
-import { Steps } from "@astrojs/starlight/components";
-import { Tabs, TabItem, Code } from "@astrojs/starlight/components";
-
## Installation
-
- ```bash frame="code"
- npx shadcn-ng@latest add badge
- ```
-
-
-
- 1. Copy and paste the following code into your project.
-
+
+CLI
+Manual
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add badge
+```
+
+
+
+
+
+
+Copy and paste the following code into your project.
+
+
+
+Update the import paths to match your project setup.
- 2. Update the import paths to match your project setup.
-
+
-
+
## Usage
@@ -34,7 +41,7 @@ import { Tabs, TabItem, Code } from "@astrojs/starlight/components";
import { UbBadgeDirective } from "@/components/ui/badge.directive";
```
-```angular-html
+```html
Badge
```
diff --git a/docs/src/content/docs/components/breadcrumb.mdx b/docs/src/content/docs/components/breadcrumb.mdx
new file mode 100644
index 0000000..2426ca0
--- /dev/null
+++ b/docs/src/content/docs/components/breadcrumb.mdx
@@ -0,0 +1,37 @@
+---
+title: Breadcrumb
+description: Displays the path to the current resource using a hierarchy of links.
+---
+
+
+
+## Installation
+
+
+
+CLI
+Manual
+
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add breadcrumb
+```
+
+
+
+
+
+
+
+Copy and paste the following code into your project.
+
+
+
+Update the import paths to match your project setup.
+
+
+
+
+
diff --git a/docs/src/content/docs/docs/components/button.mdx b/docs/src/content/docs/components/button.mdx
similarity index 63%
rename from docs/src/content/docs/docs/components/button.mdx
rename to docs/src/content/docs/components/button.mdx
index e5333ab..c94a6c9 100644
--- a/docs/src/content/docs/docs/components/button.mdx
+++ b/docs/src/content/docs/components/button.mdx
@@ -3,29 +3,36 @@ title: Button
description: Displays a button or a component that looks like a button.
---
-import { Tabs, TabItem } from "@astrojs/starlight/components";
-import { Steps } from "@astrojs/starlight/components";
-
## Installation
-
- ```bash frame="code"
- npx shadcn-ng@latest add button
- ```
-
-
-
- 1. Copy and paste the following code into your project.
-
+
+CLI
+Manual
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add button
+```
+
+
+
+
+
+
+Copy and paste the following code into your project.
+
+
+
+Update the import paths to match your project setup.
- 2. Update the import paths to match your project setup.
-
+
-
+
## Usage
@@ -34,7 +41,7 @@ import { Steps } from "@astrojs/starlight/components";
import { UbButtonDirective } from "@/components/ui/button.directive";
```
-```angular-html
+```html
Button
```
diff --git a/docs/src/content/docs/docs/components/input.mdx b/docs/src/content/docs/components/input.mdx
similarity index 51%
rename from docs/src/content/docs/docs/components/input.mdx
rename to docs/src/content/docs/components/input.mdx
index 8b932b9..e12f963 100644
--- a/docs/src/content/docs/docs/components/input.mdx
+++ b/docs/src/content/docs/components/input.mdx
@@ -3,29 +3,38 @@ title: Input
description: Displays a form input field or a component that looks like an input field.
---
-import { Tabs, TabItem } from "@astrojs/starlight/components";
-import { Steps } from "@astrojs/starlight/components";
-
## Installation
-
- ```bash frame="code"
- npx shadcn-ng@latest add input
- ```
-
-
-
- 1. Copy and paste the following code into your project.
-
+
+CLI
+Manual
+
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add input
+```
+
+
+
+
+
+
+
+Copy and paste the following code into your project.
+
+
+
+Update the import paths to match your project setup.
- 2. Update the import paths to match your project setup.
-
+
-
+
## Usage
diff --git a/docs/src/content/docs/components/separator.mdx b/docs/src/content/docs/components/separator.mdx
new file mode 100644
index 0000000..101c4d0
--- /dev/null
+++ b/docs/src/content/docs/components/separator.mdx
@@ -0,0 +1,49 @@
+---
+title: Separator
+description: Visually or semantically separates content.
+---
+
+
+
+## Installation
+
+
+
+
+
+CLI
+Manual
+
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add separator
+```
+
+
+
+
+
+
+Copy and paste the following code into your project.
+
+
+
+Update the import paths to match your project setup.
+
+
+
+
+
+
+
+## Usage
+
+```ts
+import { UbSeparatorDirective } from "@/components/ui/separator.directive";
+```
+
+```html
+
+```
diff --git a/docs/src/content/docs/components/skeleton.mdx b/docs/src/content/docs/components/skeleton.mdx
new file mode 100644
index 0000000..5d4908d
--- /dev/null
+++ b/docs/src/content/docs/components/skeleton.mdx
@@ -0,0 +1,56 @@
+---
+title: Skeleton
+description: Use to show a placeholder while content is loading.
+component: true
+---
+
+
+
+## Installation
+
+
+
+
+
+CLI
+Manual
+
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add skeleton
+```
+
+
+
+
+
+
+Copy and paste the following code into your project.
+
+
+
+Update the import paths to match your project setup.
+
+
+
+
+
+
+
+## Usage
+
+```ts
+import { UbSkeletonDirective } from "@/components/ui/sekeleton.directive";
+```
+
+```html
+
+```
+
+## Examples
+
+### Card
+
+
diff --git a/docs/src/content/docs/components/switch.mdx b/docs/src/content/docs/components/switch.mdx
new file mode 100644
index 0000000..00144ad
--- /dev/null
+++ b/docs/src/content/docs/components/switch.mdx
@@ -0,0 +1,53 @@
+---
+title: Switch
+description: A control that allows the user to toggle between checked and not checked.
+links:
+ doc: https://www.radix-ng.com/?path=/docs/primitives-switch--docs
+---
+
+
+
+## Installation
+
+
+
+
+
+CLI
+Manual
+
+
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add switch
+```
+
+
+
+
+
+
+
+Copy and paste the following code into your project.
+
+
+
+Update the import paths to match your project setup.
+
+
+
+
+
+
+
+## Usage
+
+```ts
+import { SwitchDirective } from '@/components/ui/switch.directive'
+```
+
+```html
+
+```
diff --git a/docs/src/content/docs/docs/components/table.mdx b/docs/src/content/docs/components/table.mdx
similarity index 66%
rename from docs/src/content/docs/docs/components/table.mdx
rename to docs/src/content/docs/components/table.mdx
index f2a6e31..7a15c2e 100644
--- a/docs/src/content/docs/docs/components/table.mdx
+++ b/docs/src/content/docs/components/table.mdx
@@ -3,28 +3,40 @@ title: Table
description: A responsive table component.
---
-import { Tabs, TabItem } from "@astrojs/starlight/components";
-import { Steps } from "@astrojs/starlight/components";
-
## Installation
-
- ```bash frame="code"
- npx shadcn-ng@latest add table
- ```
-
-
-
- 1. Copy and paste the following code into your project.
-
+
+
+CLI
+Manual
+
+
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add table
+```
+
+
+
+
+
+
+
+Copy and paste the following code into your project.
+
+
+
+Update the import paths to match your project setup.
+
+
- 2. Update the import paths to match your project setup.
-
-
+
@@ -42,7 +54,7 @@ import {
} from "@/components/ui/table.directive";
```
-```angular-html
+```html
A list of your recent invoices.
diff --git a/docs/src/content/docs/docs/components/tabs.mdx b/docs/src/content/docs/components/tabs.mdx
similarity index 62%
rename from docs/src/content/docs/docs/components/tabs.mdx
rename to docs/src/content/docs/components/tabs.mdx
index e3f1ac8..ebaad0f 100644
--- a/docs/src/content/docs/docs/components/tabs.mdx
+++ b/docs/src/content/docs/components/tabs.mdx
@@ -5,28 +5,40 @@ links:
doc: https://www.radix-ng.com/?path=/story/primitives-tabs--default
---
-import { Tabs, TabItem } from "@astrojs/starlight/components";
-import { Steps } from "@astrojs/starlight/components";
-
## Installation
-
- ```bash frame="code"
- npx shadcn-ng@latest add tabs
- ```
-
-
-
- 1. Copy and paste the following code into your project.
-
+
+
+CLI
+Manual
+
+
+
+
+
+```bash frame="code"
+npx shadcn-ng@latest add tabs
+```
+
+
+
+
+
+
+
+Copy and paste the following code into your project.
+
+
+
+Update the import paths to match your project setup.
+
+
- 2. Update the import paths to match your project setup.
-
-
+
@@ -41,7 +53,7 @@ import {
} from '@/components/ui/tabs.directive';
```
-```angular-html
+```html
Account
diff --git a/docs/src/content/docs/docs/components/typography.mdx b/docs/src/content/docs/components/typography.mdx
similarity index 100%
rename from docs/src/content/docs/docs/components/typography.mdx
rename to docs/src/content/docs/components/typography.mdx
diff --git a/docs/src/content/docs/docs/components/accordion.mdx b/docs/src/content/docs/docs/components/accordion.mdx
deleted file mode 100644
index 2c213b9..0000000
--- a/docs/src/content/docs/docs/components/accordion.mdx
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: Accordion
-description: A vertically stacked set of interactive headings that each reveal a section of content.
-links:
- doc: https://www.radix-ng.com/?path=/docs/primitives-accordion--docs
----
-import { Tabs, TabItem } from "@astrojs/starlight/components";
-import { Steps } from "@astrojs/starlight/components";
-
-
-
-## Installation
-
-
-
-
- 1. Run the following command:
- ```bash frame="code"
- npx shadcn-ng@latest add accordion
- ```
- 2. Update `tailwind.config.js`
- Add the following animations to your `tailwind.config.js` file:
- ```js {5-18}
- /** @type {import('tailwindcss').Config} */
- module.exports = {
- theme: {
- extend: {
- keyframes: {
- "accordion-down": {
- from: { height: "0" },
- to: { height: "var(--radix-accordion-content-height)" },
- },
- "accordion-up": {
- from: { height: "var(--radix-accordion-content-height)" },
- to: { height: "0" },
- },
- },
- animation: {
- "accordion-down": "accordion-down 0.2s ease-out",
- "accordion-up": "accordion-up 0.2s ease-out",
- },
- },
- },
- }
- ```
-
-
-
-
-
- 1. Install the package using your package manager.
- ```bash
- npm install @ng-icons/core @ng-icons/lucide
- ```
- 2. Copy and paste the following code into your project.
-
-
- 3. Update the import paths to match your project setup.
-
-
-
-
-
-## Usage
-
-```ts
-import {
- UbAccordionDirective,
- UbAccordionItemDirective,
- UbAccordionTriggerDirective,
- UbAccordionContentDirective
-} from '@/components/ui/accordion.directive';
-```
-
-```angular-html
-
-
-
Is it accessible?
-
- Yes. It adheres to the WAI-ARIA design pattern.
-
-
-
-```
diff --git a/docs/src/content/docs/docs/components/breadcrumb.mdx b/docs/src/content/docs/docs/components/breadcrumb.mdx
deleted file mode 100644
index e5373b2..0000000
--- a/docs/src/content/docs/docs/components/breadcrumb.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: Breadcrumb
-description: Displays the path to the current resource using a hierarchy of links.
----
-
-import { Steps } from "@astrojs/starlight/components";
-import { Tabs, TabItem, Code } from "@astrojs/starlight/components";
-
-
-
-## Installation
-
-
-
- ```bash frame="code"
- npx shadcn-ng@latest add breadcrumb
- ```
-
-
-
-
- 1. Copy and paste the following code into your project.
-
-
- 2. Update the import paths to match your project setup.
-
-
-
-
diff --git a/docs/src/content/docs/docs/components/separator.mdx b/docs/src/content/docs/docs/components/separator.mdx
deleted file mode 100644
index af13cef..0000000
--- a/docs/src/content/docs/docs/components/separator.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: Separator
-description: Visually or semantically separates content.
----
-
-import { Tabs, TabItem } from "@astrojs/starlight/components";
-import { Steps } from "@astrojs/starlight/components";
-
-
-
-## Installation
-
-
-
- ```bash frame="code"
- npx shadcn-ng@latest add separator
- ```
-
-
-
-
- 1. Copy and paste the following code into your project.
-
-
- 2. Update the import paths to match your project setup.
-
-
-
-
-
-## Usage
-
-```ts
-import { UbSeparatorDirective } from "@/components/ui/separator.directive";
-```
-
-```angular-html
-
-```
diff --git a/docs/src/content/docs/docs/components/skeleton.mdx b/docs/src/content/docs/docs/components/skeleton.mdx
deleted file mode 100644
index b0ffd1d..0000000
--- a/docs/src/content/docs/docs/components/skeleton.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: Skeleton
-description: Use to show a placeholder while content is loading.
-component: true
----
-
-import { Tabs, TabItem } from "@astrojs/starlight/components";
-import { Steps } from "@astrojs/starlight/components";
-
-
-
-## Installation
-
-
-
- ```bash frame="code"
- npx shadcn-ng@latest add skeleton
- ```
-
-
-
-
- 1. Copy and paste the following code into your project.
-
-
- 2. Update the import paths to match your project setup.
-
-
-
-
-
-## Usage
-
-```ts
-import { UbSkeletonDirective } from "@/components/ui/sekeleton.directive";
-```
-
-```angular-html
-
-```
-
-## Examples
-
-### Card
-
-
diff --git a/docs/src/content/docs/docs/components/switch.mdx b/docs/src/content/docs/docs/components/switch.mdx
deleted file mode 100644
index c69e73d..0000000
--- a/docs/src/content/docs/docs/components/switch.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: Switch
-description: A control that allows the user to toggle between checked and not checked.
-links:
- doc: https://www.radix-ng.com/?path=/docs/primitives-switch--docs
----
-
-
-
-## Installation
-
-import { Tabs, TabItem } from "@astrojs/starlight/components";
-import { Steps } from "@astrojs/starlight/components";
-
-
-
-
- ```bash frame="code"
- npx shadcn-ng@latest add switch
- ```
-
-
-
-
- 1. Copy and paste the following code into your project.
-
-
- 2. Update the import paths to match your project setup.
-
-
-
-
-
-## Usage
-
-```ts
-import { SwitchDirective } from '@/components/ui/switch.directive'
-```
-
-```angular-html
-
-```
diff --git a/docs/src/content/docs/docs/index.mdx b/docs/src/content/docs/docs/index.mdx
deleted file mode 100644
index f5767a3..0000000
--- a/docs/src/content/docs/docs/index.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Introduction
-description: Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.
----
-
-An unofficial, community-led [Angular](https://angular.dev) port of [shadcn/ui](https://ui.shadcn.com).
-
-This is **NOT** a component library. It's a collection of re-usable components that you can copy and paste into your apps.
-
-**What do you mean by not a component library?**
-
-I mean you do not install it as a dependency. It is not available or distributed via npm.
-
-Pick the components you need. Copy and paste the code into your project and customize to your needs. The code is yours.
-
-_Use this as a reference to build your own component libraries._
diff --git a/docs/src/content/docs/docs/installation/angular.mdx b/docs/src/content/docs/docs/installation/angular.mdx
deleted file mode 100644
index 492f728..0000000
--- a/docs/src/content/docs/docs/installation/angular.mdx
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: Angular
-description: Install and configure Angular.
----
-
-import { Steps } from "@astrojs/starlight/components";
-
-
-
-1. ### Create project
-
- Start by creating a new App using the Angular CLI.
-
- ```bash
- ng new my-app
- ```
-
-2. ### Add Tailwind and its configuration
-
- Install `tailwindcss` and its peer dependencies, then generate your `tailwind.config.js` file:
-
- ```bash
- npm install -D tailwindcss postcss autoprefixer
-
- npx tailwindcss init
- ```
-
-3. ### Edit tsconfig.json file
-
- ```json {3-6} showLineNumbers
- {
- "compilerOptions": {
- "baseUrl": ".",
- "paths": {
- "@/*": ["./src/*"]
- }
- }
- }
- ```
-
-4. ### Run the CLI
-
- Run the `shadcn-ng` init command to setup your project:
-
- ```bash
- npx shadcn-ng@latest init
- ```
-
-5. ### Configure components.json
-
- You will be asked a few questions to configure `components.json`:
-
- ```txt showLineNumbers
- Which style would you like to use? βΊ Default
- Which color would you like to use as base color? βΊ Slate
- Where is your global CSS file? βΊ src/style.css
- Do you want to use CSS variables for colors? βΊ no / yes
- Where is your tailwind.config.js located? βΊ tailwind.config.js
- Configure the import alias for components: βΊ @/components
- Configure the import alias for utils: βΊ @/lib/utils
- ```
-
-6. ### That's it
-
- You can now start adding components to your project.
-
- ```bash
- npx shadcn-ui@latest add button
- ```
-
- The command above will add the `Button` component to your project. You can then import it like this:
-
- ```angular-ts showLineNumbers
- import { Component } from "@angular/core";
- import { UbButtonDirective } from "@/components/ui/button.directive";
-
- @Component({
- standalone: true,
- imports: [UbButtonDirective],
- template: `Button `,
- })
- export class ButtonDemoComponent {}
- ```
-
-
diff --git a/docs/src/content/docs/docs/installation/astro.mdx b/docs/src/content/docs/docs/installation/astro.mdx
deleted file mode 100644
index 93e152b..0000000
--- a/docs/src/content/docs/docs/installation/astro.mdx
+++ /dev/null
@@ -1,134 +0,0 @@
----
-title: Astro
-description: Install and configure Astro.
----
-
-import { Steps, Aside } from "@astrojs/starlight/components";
-
-
-
-1. ### Create project
-
- Start by creating a new Astro project:
-
- ```bash
- npm create astro@latest
- ```
-
-2. ### Configure your Astro project
-
- You will be asked a few questions to configure your project:
-
- ```txt showLineNumbers
- - Where should we create your new project?
- ./your-app-name
- - How would you like to start your new project?
- Choose a starter template (or Empty)
- - Install dependencies?
- Yes
- - Do you plan to write TypeScript?
- Yes
- - How strict should TypeScript be?
- Strict
- - Initialize a new git repository? (optional)
- Yes/No
- ```
-
-3. ### Add Angular to your project
-
- Install Angular using the Astro CLI:
-
- ```bash
- npx astro add @analogjs/astro-angular
- ```
-
-
- Answer `Yes` to all the question prompted by the CLI when installing
- Angular.
-
-
-4. ### Add Tailwind CSS to your project
-
- Install Tailwind CSS using the Astro CLI:
-
- ```bash
- npx astro add tailwind
- ```
-
-
- Answer `Yes` to all the question prompted by the CLI when installing
- Tailwind CSS.
-
-
-5. ### Edit tsconfig.json file
-
- Add the following code to the `tsconfig.json` file to resolve paths:
-
- ```json showLineNumbers
- {
- "compilerOptions": {
- "baseUrl": ".",
- "paths": {
- "@/*": ["./src/*"]
- }
- }
- }
- ```
-
-6. ### Run the CLI
-
- Run the `shadcn-ng` init command to setup your project:
-
- ```bash
- npx shadcn-ng@latest init
- ```
-
-7. ### Configure components.json
-
- You will be asked a few questions to configure `components.json`:
-
- ```txt showLineNumbers
- Which style would you like to use? βΊ Default
- Which color would you like to use as base color? βΊ Slate
- Where is your global CSS file? βΊ ./src/styles/globals.css
- Do you want to use CSS variables for colors? βΊ no / yes
- Where is your tailwind.config.js located? βΊ tailwind.config.mjs
- Configure the import alias for components: βΊ @/components
- Configure the import alias for utils: βΊ @/lib/utils
- ```
-
-8. ### Import the globals.css file
-
- Import the `globals.css` file in the `src/pages/index.astro` file:
-
- ```astro showLineNumbers
- ---
- import '@/styles/globals.css'
- ---
- ```
-
-9. ### Update astro tailwind config
-
- To prevent serving the Tailwind base styles twice, we need to tell Astro not to apply the base styles, since we already include them in our own `globals.css` file. To do this, set the `applyBaseStyles` config option for the tailwind plugin in `astro.config.mjs` to `false`.
-
- ```ts showLineNumbers
- export default defineConfig({
- integrations: [
- tailwind({
- applyBaseStyles: false,
- }),
- ],
- });
- ```
-
-10. ### Update tailwind.config.mjs
-
- When running `npx shadcn-ng@latest init`, your tailwind config for content will be overwritten. To fix this, change the `module.exports` to `export default` and the `content` section with the code below to your `tailwind.config.mjs` file:
-
- ```js showLineNumbers
- export default {
- content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"],
- };
- ```
-
-
diff --git a/docs/src/content/docs/docs/installation/index.mdx b/docs/src/content/docs/docs/installation/index.mdx
deleted file mode 100644
index 59e9dc7..0000000
--- a/docs/src/content/docs/docs/installation/index.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: Installation
-description: How to install dependencies and structure your app.
----
-
-import { LinkCard, CardGrid } from "@astrojs/starlight/components";
-
-## Frameworks
-
-
-
-
-
-
-## TypeScript
-
-To configure import aliases, you can use the following `jsconfig.json`:
-
-```json {4} title="jsconfig.json"
-{
- "compilerOptions": {
- "paths": {
- "@/*": ["./*"]
- }
- }
-}
-```
diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx
index a3eb033..f5767a3 100644
--- a/docs/src/content/docs/index.mdx
+++ b/docs/src/content/docs/index.mdx
@@ -1,17 +1,16 @@
---
-title: shadcn-ng
-description: Beautifully designed components that you can copy and paste into your apps.
-template: splash
-head:
- - tag: title
- content: shadcn-ng
-hero:
- title: Build your component library
- tagline: Beautifully designed components that you can copy and paste into your apps.
- actions:
- - text: Get Started
- link: /docs
- - text: GitHub
- link: https://github.com/adrian-ub/shadcn-ng
- variant: secondary
+title: Introduction
+description: Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.
---
+
+An unofficial, community-led [Angular](https://angular.dev) port of [shadcn/ui](https://ui.shadcn.com).
+
+This is **NOT** a component library. It's a collection of re-usable components that you can copy and paste into your apps.
+
+**What do you mean by not a component library?**
+
+I mean you do not install it as a dependency. It is not available or distributed via npm.
+
+Pick the components you need. Copy and paste the code into your project and customize to your needs. The code is yours.
+
+_Use this as a reference to build your own component libraries._
diff --git a/docs/src/content/docs/installation/angular.mdx b/docs/src/content/docs/installation/angular.mdx
new file mode 100644
index 0000000..3326741
--- /dev/null
+++ b/docs/src/content/docs/installation/angular.mdx
@@ -0,0 +1,95 @@
+---
+title: Angular
+description: Install and configure Angular.
+---
+
+
+
+
+### Create project
+
+
+Start by creating a new App using the Angular CLI.
+
+```bash
+ng new my-app
+```
+
+
+### Add Tailwind and its configuration
+
+
+Install `tailwindcss` and its peer dependencies, then generate your `tailwind.config.js` file:
+
+```bash
+npm install -D tailwindcss postcss autoprefixer
+
+npx tailwindcss init
+```
+
+
+### Edit tsconfig.json file
+
+
+```json {3-6} showLineNumbers
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ }
+}
+```
+
+
+### Run the CLI
+
+
+Run the `shadcn-ng` init command to setup your project:
+
+```bash
+npx shadcn-ng@latest init
+```
+
+
+### Configure components.json
+
+
+You will be asked a few questions to configure `components.json`:
+
+```txt showLineNumbers
+Which style would you like to use? βΊ Default
+Which color would you like to use as base color? βΊ Slate
+Where is your global CSS file? βΊ src/style.css
+Do you want to use CSS variables for colors? βΊ no / yes
+Where is your tailwind.config.js located? βΊ tailwind.config.js
+Configure the import alias for components: βΊ @/components
+Configure the import alias for utils: βΊ @/lib/utils
+```
+
+
+### That's it
+
+
+You can now start adding components to your project.
+
+```bash
+npx shadcn-ui@latest add button
+```
+
+The command above will add the `Button` component to your project. You can then import it like this:
+
+```ts {2,7}
+import { Component } from "@angular/core";
+import { UbButtonDirective } from "@/components/ui/button.directive";
+
+@Component({
+ standalone: true,
+ imports: [UbButtonDirective],
+ template: `Button `,
+})
+export class ButtonDemoComponent {}
+```
+
+
diff --git a/docs/src/content/docs/installation/index.mdx b/docs/src/content/docs/installation/index.mdx
new file mode 100644
index 0000000..04f2675
--- /dev/null
+++ b/docs/src/content/docs/installation/index.mdx
@@ -0,0 +1,36 @@
+---
+title: Installation
+description: How to install dependencies and structure your app.
+---
+
+## Frameworks
+
+
+
+
+ Angular
+
+
+ Angular
+
+
+
+## TypeScript
+
+To configure import aliases, you can use the following `tsconfig.json`:
+
+```json {4} title="tsconfig.json"
+{
+ "compilerOptions": {
+ "paths": {
+ "@/*": ["./*"]
+ }
+ }
+}
+```
diff --git a/docs/src/content/docs/docs/theming.mdx b/docs/src/content/docs/theming.mdx
similarity index 97%
rename from docs/src/content/docs/docs/theming.mdx
rename to docs/src/content/docs/theming.mdx
index 9e536d6..14bbe74 100644
--- a/docs/src/content/docs/docs/theming.mdx
+++ b/docs/src/content/docs/theming.mdx
@@ -3,8 +3,6 @@ title: Theming
description: Using CSS Variables or Tailwind CSS for theming.
---
-import { Aside, Steps } from "@astrojs/starlight/components";
-
You can choose between using CSS variables or Tailwind CSS utility classes for theming.
## Utility classes
@@ -59,11 +57,11 @@ To use CSS variables for theming set `tailwind.cssVariables` to `true` in your `
We use a simple `background` and `foreground` convention for colors. The `background` variable is used for the background color of the component and the `foreground` variable is used for the text color.
-
+
The `background` suffix is omitted when the variable is used for the background color of the component.
-
+
Given the following CSS variables:
@@ -78,12 +76,12 @@ The `background` color of the following component will be `hsl(var(--primary))`
Hello
```
-
+
**CSS variables must be defined without color space function**. See the
[Tailwind CSS
documentation](https://tailwindcss.com/docs/customizing-colors#using-css-variables)
for more information.
-
+
### List of variables
diff --git a/docs/src/env.d.ts b/docs/src/env.d.ts
index acef35f..e16c13c 100644
--- a/docs/src/env.d.ts
+++ b/docs/src/env.d.ts
@@ -1,2 +1 @@
///
-///
diff --git a/docs/src/fonts/font-face.css b/docs/src/fonts/font-face.css
deleted file mode 100644
index d074775..0000000
--- a/docs/src/fonts/font-face.css
+++ /dev/null
@@ -1,5 +0,0 @@
-@font-face {
- font-family: "Geist Sans Variable";
- src: url("./GeistVariableVF.woff2") format("woff2");
- font-display: swap;
-}
diff --git a/docs/src/layouts/DocsLayout.astro b/docs/src/layouts/DocsLayout.astro
new file mode 100644
index 0000000..64cfc1e
--- /dev/null
+++ b/docs/src/layouts/DocsLayout.astro
@@ -0,0 +1,125 @@
+---
+import PageNavigation from '@/components/PageNavigation.astro'
+
+import Sidebar from '@/components/Sidebar.astro'
+
+import Toc from '@/components/Toc.astro'
+
+import { siteConfig } from '@/config/site'
+import { badgeVariants } from '@/registry/new-york/ui/badge'
+import type { CollectionEntry } from 'astro:content'
+import RootLayout from './RootLayout.astro'
+
+export type Props = {
+ entry: CollectionEntry<'docs'>
+}
+
+const { entry } = Astro.props
+const { headings } = await entry.render()
+const { pathname } = Astro.url
+---
+
+
+
+
+
+
+
+
+
Docs
+
+
+
+
+ {entry.data.title}
+
+
+
+
+ {entry.data.title}
+
+ {
+ entry.data.description
+? (
+
+ {entry.data.description}
+
+ )
+: null
+ }
+
+ {
+ entry.data.links
+? (
+
+ )
+: null
+ }
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/layouts/RootLayout.astro b/docs/src/layouts/RootLayout.astro
new file mode 100644
index 0000000..7dea045
--- /dev/null
+++ b/docs/src/layouts/RootLayout.astro
@@ -0,0 +1,101 @@
+---
+import Footer from '@/components/Footer.astro'
+import Header from '@/components/Header.astro'
+
+import { siteConfig } from '@/config/site'
+
+import './main.css'
+
+type Props = {
+ title?: string
+ description?: string
+ url?: string
+}
+
+const { title, description, url } = Astro.props
+---
+
+
+
+
+
+
+
+
+
{title ?? siteConfig.title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/layouts/main.css b/docs/src/layouts/main.css
new file mode 100644
index 0000000..0a33a04
--- /dev/null
+++ b/docs/src/layouts/main.css
@@ -0,0 +1,134 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@layer base {
+ :root {
+ --background: 0 0% 100%;
+ --foreground: 240 10% 3.9%;
+ --card: 0 0% 100%;
+ --card-foreground: 240 10% 3.9%;
+ --popover: 0 0% 100%;
+ --popover-foreground: 240 10% 3.9%;
+ --primary: 240 5.9% 10%;
+ --primary-foreground: 0 0% 98%;
+ --secondary: 240 4.8% 95.9%;
+ --secondary-foreground: 240 5.9% 10%;
+ --muted: 240 4.8% 95.9%;
+ --muted-foreground: 240 3.8% 46.1%;
+ --accent: 240 4.8% 95.9%;
+ --accent-foreground: 240 5.9% 10%;
+ --destructive: 0 72.22% 50.59%;
+ --destructive-foreground: 0 0% 98%;
+ --border: 240 5.9% 90%;
+ --input: 240 5.9% 90%;
+ --ring: 240 5% 64.9%;
+ --radius: 0.5rem;
+ }
+
+ .dark {
+ --background: 240 10% 3.9%;
+ --foreground: 0 0% 98%;
+ --card: 240 10% 3.9%;
+ --card-foreground: 0 0% 98%;
+ --popover: 240 10% 3.9%;
+ --popover-foreground: 0 0% 98%;
+ --primary: 0 0% 98%;
+ --primary-foreground: 240 5.9% 10%;
+ --secondary: 240 3.7% 15.9%;
+ --secondary-foreground: 0 0% 98%;
+ --muted: 240 3.7% 15.9%;
+ --muted-foreground: 240 5% 64.9%;
+ --accent: 240 3.7% 15.9%;
+ --accent-foreground: 0 0% 98%;
+ --destructive: 0 62.8% 30.6%;
+ --destructive-foreground: 0 85.7% 97.3%;
+ --border: 240 3.7% 15.9%;
+ --input: 240 3.7% 15.9%;
+ --ring: 240 4.9% 83.9%;
+ }
+}
+
+@layer base {
+ * {
+ @apply border-border;
+ }
+
+ body {
+ @apply bg-background font-sans text-foreground antialiased;
+ }
+}
+
+@layer utilities {
+ .step {
+ counter-increment: step;
+ }
+
+ .step:before {
+ @apply absolute inline-flex h-9 w-9 items-center justify-center rounded-full border-4 border-background bg-muted text-center -indent-px font-mono text-base font-medium ml-[-50px] mt-[-4px];
+ content: counter(step);
+ }
+}
+
+::-webkit-scrollbar {
+ width: 15px;
+}
+
+::-webkit-scrollbar:horizontal {
+ height: 15px;
+}
+
+::-webkit-scrollbar-thumb,
+::-webkit-scrollbar-thumb:horizontal {
+ border-radius: 9999px;
+ border: 4px solid transparent;
+ background-clip: content-box;
+ @apply bg-accent
+}
+
+::-webkit-scrollbar-corner,
+::-webkit-scrollbar-corner:horizontal {
+ @apply bg-transparent
+}
+
+.astro-code[data-language] code .highlighted {
+ background-color: rgba(101, 117, 133, .16);
+ transition: background-color 0.5s;
+ margin: 0 -24px;
+ padding: 0 24px;
+ width: calc(100% + 48px);
+ display: inline-block;
+}
+
+.astro-code[data-language] pre {
+ position: relative;
+ z-index: 1;
+ margin: 0;
+ padding: 20px 0;
+ background: transparent;
+ overflow-x: auto;
+}
+
+.astro-code[data-language] pre,
+.astro-code[data-language] code {
+ direction: ltr;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+:not(pre)>code {
+ border-radius: 4px;
+ padding: 3px 6px;
+ background-color: rgba(101, 117, 133, .16);
+ transition: color .25s, background-color .5s;
+}
diff --git a/docs/src/pages/docs/[...slug].astro b/docs/src/pages/docs/[...slug].astro
new file mode 100644
index 0000000..f6d1a95
--- /dev/null
+++ b/docs/src/pages/docs/[...slug].astro
@@ -0,0 +1,23 @@
+---
+import { components } from '@/components/mdx'
+import DocsLayout from '@/layouts/DocsLayout.astro'
+import { getCollection } from 'astro:content'
+import type { InferGetStaticPropsType } from 'astro'
+
+export async function getStaticPaths() {
+ const docsEntries = await getCollection('docs')
+ return docsEntries.map(entry => ({
+ params: { slug: entry.slug === 'index' ? '/' : entry.slug },
+ props: { entry },
+ }))
+}
+
+export type Props = InferGetStaticPropsType
+
+const { entry } = Astro.props
+const { Content } = await entry.render()
+---
+
+
+
+
diff --git a/docs/src/pages/index.astro b/docs/src/pages/index.astro
new file mode 100644
index 0000000..df1e5b3
--- /dev/null
+++ b/docs/src/pages/index.astro
@@ -0,0 +1,40 @@
+---
+import { PageActions, PageHeader, PageHeaderDescription, PageHeaderHeading } from '@/components/page-header'
+
+import { siteConfig } from '@/config/site'
+
+import RootLayout from '@/layouts/RootLayout.astro'
+
+import { buttonVariants } from '@/registry/new-york/ui/button'
+---
+
+
+
+
+ Build your component library
+ Beautifully designed components that you can copy and paste into your apps.
+
+
+
+ Get Started
+
+
+ GitHub
+
+
+
+
+
diff --git a/docs/src/registry/new-york/ui/tabs.ts b/docs/src/registry/new-york/ui/tabs.ts
index 42a6954..f774e51 100644
--- a/docs/src/registry/new-york/ui/tabs.ts
+++ b/docs/src/registry/new-york/ui/tabs.ts
@@ -1,13 +1,13 @@
import { cn } from '@/lib/utils'
-import { computed, Directive, Input, input } from '@angular/core'
-
+import { booleanAttribute, computed, Directive, input } from '@angular/core'
import {
RdxTabsContentDirective,
RdxTabsListDirective,
RdxTabsRootDirective,
RdxTabsTriggerDirective,
} from '@radix-ng/primitives/tabs'
+import type { BooleanInput } from '@angular/cdk/coercion'
@Directive({
selector: '[ubTabs]',
@@ -15,12 +15,12 @@ import {
hostDirectives: [
{
directive: RdxTabsRootDirective,
- inputs: ['defaultValue: ubDefaultValue'],
+ inputs: ['defaultValue: defaultValue'],
},
],
})
export class UbTabsDirective {
- @Input() ubDefaultValue?: string
+ defaultValue = input()
}
@Directive({
@@ -45,7 +45,7 @@ export class UbTabsListDirective {
selector: '[ubTabsTrigger]',
standalone: true,
hostDirectives: [
- { directive: RdxTabsTriggerDirective, inputs: ['value: value'] },
+ { directive: RdxTabsTriggerDirective, inputs: ['value: value', 'disabled: disabled'] },
],
host: {
'[class]': 'computedClass()',
@@ -53,6 +53,9 @@ export class UbTabsListDirective {
})
export class UbTabsTriggerDirective {
readonly value = input.required()
+ readonly disabled = input(false, {
+ transform: booleanAttribute,
+ })
readonly class = input()
protected computedClass = computed(() =>
diff --git a/docs/src/schemas/badge.ts b/docs/src/schemas/badge.ts
deleted file mode 100644
index ac343e8..0000000
--- a/docs/src/schemas/badge.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { z } from 'astro/zod'
-
-function badgeSchema(): z.ZodObject<{ variant: z.ZodDefault>, text: z.ZodString, class: z.ZodOptional }, 'strip', z.ZodTypeAny, { variant: 'default' | 'note' | 'danger' | 'success' | 'caution' | 'tip', text: string, class?: string | undefined }, { text: string, variant?: 'default' | 'note' | 'danger' | 'success' | 'caution' | 'tip' | undefined, class?: string | undefined }> {
- return z.object({
- variant: z
- .enum(['note', 'danger', 'success', 'caution', 'tip', 'default'])
- .default('default'),
- text: z.string(),
- class: z.string().optional(),
- })
-}
-
-export const BadgeComponentSchema = badgeSchema()
- .extend({
- size: z.enum(['small', 'medium', 'large']).default('small'),
- })
- .passthrough()
-
-export type BadgeComponentProps = z.input
-
-export function BadgeConfigSchema(): z.ZodOptional>, text: z.ZodString, class: z.ZodOptional }, 'strip', z.ZodTypeAny, { variant: 'default' | 'note' | 'danger' | 'success' | 'caution' | 'tip', text: string, class?: string | undefined }, { text: string, variant?: 'default' | 'note' | 'danger' | 'success' | 'caution' | 'tip' | undefined, class?: string | undefined }>]>, { variant: 'default' | 'note' | 'danger' | 'success' | 'caution' | 'tip', text: string, class?: string | undefined }, string | { text: string, variant?: 'default' | 'note' | 'danger' | 'success' | 'caution' | 'tip' | undefined, class?: string | undefined }>> {
- return z
- .union([z.string(), badgeSchema()])
- .transform((badge) => {
- if (typeof badge === 'string') {
- return { variant: 'default' as const, text: badge }
- }
- return badge
- })
- .optional()
-}
-
-export type Badge = z.output>
diff --git a/docs/src/schemas/prevNextLink.ts b/docs/src/schemas/prevNextLink.ts
deleted file mode 100644
index 2a4383d..0000000
--- a/docs/src/schemas/prevNextLink.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { z } from 'astro/zod'
-
-export function PrevNextLinkConfigSchema(): z.ZodOptional
- /** The navigation link text. */
- label: z.ZodOptional
-}, 'strict', z.ZodTypeAny, { link?: string | undefined, label?: string | undefined }, { link?: string | undefined, label?: string | undefined }>]>> {
- return z
- .union([
- z.boolean(),
- z.string(),
- z
- .object({
- /** The navigation link URL. */
- link: z.string().optional(),
- /** The navigation link text. */
- label: z.string().optional(),
- })
- .strict(),
- ])
- .optional()
-}
-
-export type PrevNextLinkUserConfig = z.input<
- ReturnType
->
-export type PrevNextLinkConfig = z.output<
- ReturnType
->
diff --git a/docs/src/schemas/sidebar.ts b/docs/src/schemas/sidebar.ts
deleted file mode 100644
index 235b981..0000000
--- a/docs/src/schemas/sidebar.ts
+++ /dev/null
@@ -1,124 +0,0 @@
-import { z } from 'astro/zod'
-import type { AstroBuiltinAttributes } from 'astro'
-import type { HTMLAttributes } from 'astro/types'
-import { stripLeadingAndTrailingSlashes } from '../utils/path'
-import { BadgeConfigSchema } from './badge'
-
-const SidebarBaseSchema = z.object({
- /** The visible label for this item in the sidebar. */
- label: z.string(),
- /** Translations of the `label` for each supported language. */
- translations: z.record(z.string()).default({}),
- /** Adds a badge to the link item */
- badge: BadgeConfigSchema(),
-})
-
-const SidebarGroupSchema = SidebarBaseSchema.extend({
- /** Whether this item should be collapsed by default. */
- collapsed: z.boolean().default(false),
-})
-
-// HTML attributes that can be added to an anchor element, validated as
-// `Record` but typed as `HTMLAttributes<'a'>`
-// for user convenience.
-const linkHTMLAttributesSchema = z.record(
- z.union([z.string(), z.number(), z.boolean(), z.undefined()]),
-) as z.Schema<
- Omit, keyof AstroBuiltinAttributes | 'children'>
->
-export type LinkHTMLAttributes = z.infer
-
-export function SidebarLinkItemHTMLAttributesSchema(): z.ZodDefault, keyof AstroBuiltinAttributes | 'children'>, z.ZodTypeDef, Omit, keyof AstroBuiltinAttributes | 'children'>>> {
- return linkHTMLAttributesSchema.default({})
-}
-
-const SidebarLinkItemSchema = SidebarBaseSchema.extend({
- /** The link to this itemβs content. Can be a relative link to local files or the full URL of an external page. */
- link: z.string(),
- /** HTML attributes to add to the link item. */
- attrs: SidebarLinkItemHTMLAttributesSchema(),
-}).strict()
-export type SidebarLinkItem = z.infer
-
-const AutoSidebarGroupSchema = SidebarGroupSchema.extend({
- /** Enable autogenerating a sidebar category from a specific docs directory. */
- autogenerate: z.object({
- /** The directory to generate sidebar items for. */
- directory: z.string().transform(stripLeadingAndTrailingSlashes),
- /**
- * Whether the autogenerated subgroups should be collapsed by default.
- * Defaults to the `AutoSidebarGroup` `collapsed` value.
- */
- collapsed: z.boolean().optional(),
- // TODO: not supported by Docusaurus but would be good to have
- /** How many directories deep to include from this directory in the sidebar. Default: `Infinity`. */
- // depth: z.number().optional(),
- }),
-}).strict()
-export type AutoSidebarGroup = z.infer
-
-type ManualSidebarGroupInput = z.input & {
- /** Array of links and subcategories to display in this category. */
- items: Array<
- | z.input
- | z.input
- | z.input
- | z.input
- | ManualSidebarGroupInput
- >
-}
-
-type ManualSidebarGroupOutput = z.output & {
- /** Array of links and subcategories to display in this category. */
- items: Array<
- | z.output
- | z.output
- | z.output
- | z.output
- | ManualSidebarGroupOutput
- >
-}
-
-const InternalSidebarLinkItemSchema = SidebarBaseSchema.partial({
- label: true,
-}).extend({
- /** The link to this itemβs content. Must be a slug of a Content Collection entry. */
- slug: z.string(),
- /** HTML attributes to add to the link item. */
- attrs: SidebarLinkItemHTMLAttributesSchema(),
-})
-const InternalSidebarLinkItemShorthandSchema = z
- .string()
- .transform(slug => InternalSidebarLinkItemSchema.parse({ slug }))
-
-const ManualSidebarGroupSchema: z.ZodType<
- ManualSidebarGroupOutput,
- z.ZodTypeDef,
- ManualSidebarGroupInput
-> = SidebarGroupSchema.extend({
- /** Array of links and subcategories to display in this category. */
- items: z.lazy(() =>
- z
- .union([
- SidebarLinkItemSchema,
- ManualSidebarGroupSchema,
- AutoSidebarGroupSchema,
- InternalSidebarLinkItemSchema,
- InternalSidebarLinkItemShorthandSchema,
- ])
- .array(),
- ),
-}).strict()
-
-export type InternalSidebarLinkItem = z.output<
- typeof InternalSidebarLinkItemSchema
->
-
-export const SidebarItemSchema = z.union([
- SidebarLinkItemSchema,
- ManualSidebarGroupSchema,
- AutoSidebarGroupSchema,
- InternalSidebarLinkItemSchema,
- InternalSidebarLinkItemShorthandSchema,
-])
-export type SidebarItem = z.infer
diff --git a/docs/src/style/markdown.css b/docs/src/style/markdown.css
deleted file mode 100644
index f4ef294..0000000
--- a/docs/src/style/markdown.css
+++ /dev/null
@@ -1,315 +0,0 @@
-.sl-marldown-content h1:not(:where(.not-content *)) {
- @apply mt-2 scroll-m-20 text-4xl font-bold;
-}
-.sl-markdown-content h2:not(:where(.not-content *)) {
- @apply mt-12 scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-tight first:mt-0;
-}
-.sl-marldown-content h3:not(:where(.not-content *)) {
- @apply mt-8 scroll-m-20 text-xl font-semibold tracking-tight;
-}
-.sl-marldown-content h4:not(:where(.not-content *)) {
- @apply mt-8 scroll-m-20 text-lg font-semibold tracking-tight;
-}
-.sl-marldown-content h5:not(:where(.not-content *)) {
- @apply mt-8 scroll-m-20 text-lg font-semibold tracking-tight;
-}
-.sl-marldown-content h6:not(:where(.not-content *)) {
- @apply mt-8 scroll-m-20 text-base font-semibold tracking-tight;
-}
-.sl-markdown-content a:not(:where(.not-content *)) {
- @apply font-medium underline underline-offset-4;
-}
-.sl-markdown-content p:not(:where(.not-content *)) {
- @apply leading-7 [&:not(:first-child)]:mt-6;
-}
-.sl-markdown-content
- ul:not(:where(.not-content *))
- + :not(:where(.sl-steps *)) {
- @apply my-6 ml-6 list-disc;
-}
-.sl-markdown-content
- ol:not(:where(.not-content *))
- + :not(:where(.sl-steps *)) {
- @apply my-6 ml-6 list-decimal;
-}
-.sl-markdown-content
- li:not(:where(.not-content *))
- + :not(:where(.sl-steps *)) {
- @apply mt-2;
-}
-.sl-markdown-content blockquote:not(:where(.not-content *)) {
- @apply mt-6 border-l-2 pl-6 italic;
-}
-.sl-markdown-content img:not(:where(.not-content *)) {
- @apply rounded-md;
-}
-.sl-markdown-content hr:not(:where(.not-content *)) {
- @apply my-4 md:my-8;
-}
-.sl-markdown-content table:not(:where(.not-content *)) {
- @apply w-full overflow-hidden rounded-lg;
-}
-.sl-markdown-content tr:not(:where(.not-content *)) {
- @apply m-0 border-t p-0;
-}
-.sl-markdown-content th:not(:where(.not-content *)) {
- @apply border px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right;
-}
-.sl-markdown-content td:not(:where(.not-content *)) {
- @apply border px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right;
-}
-.sl-markdown-content pre:not(:where(.not-content *)) {
- @apply mb-4 mt-6 max-h-[650px] overflow-x-auto rounded-lg border bg-zinc-950 py-4 dark:bg-zinc-900;
-}
-.sl-markdown-content code:not(:where(.not-content *)) {
- @apply relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm;
-}
-.sl-markdown-content
- :not(a, strong, em, del, span, input, code)
- + :not(a, strong, em, del, span, input, code, :where(.not-content *)) {
- margin-top: 1rem;
-}
-
-/* Headings after non-headings have more spacing. */
-.sl-markdown-content
- :not(h1, h2, h3, h4, h5, h6)
- + :is(h1, h2, h3, h4, h5, h6):not(:where(.not-content *)) {
- margin-top: 1.5em;
-}
-
-.sl-markdown-content li + li:not(:where(.not-content *)),
-.sl-markdown-content dt + dt:not(:where(.not-content *)),
-.sl-markdown-content dt + dd:not(:where(.not-content *)),
-.sl-markdown-content dd + dd:not(:where(.not-content *)) {
- margin-top: 0.25rem;
-}
-
-.sl-markdown-content li:not(:where(.not-content *)) {
- overflow-wrap: anywhere;
-}
-
-.sl-markdown-content
- li
- > :last-child:not(li, ul, ol):not(
- a,
- strong,
- em,
- del,
- span,
- input,
- :where(.not-content *)
- ) {
- margin-bottom: 1.25rem;
-}
-
-.sl-markdown-content dt:not(:where(.not-content *)) {
- font-weight: 700;
-}
-.sl-markdown-content dd:not(:where(.not-content *)) {
- padding-inline-start: 1rem;
-}
-
-.sl-markdown-content :is(h1, h2, h3, h4, h5, h6):not(:where(.not-content *)) {
- color: var(--sl-color-white);
- line-height: var(--sl-line-height-headings);
- font-weight: 600;
-}
-
-.sl-markdown-content
- :is(img, picture, video, canvas, svg, iframe):not(:where(.not-content *)) {
- display: block;
- max-width: 100%;
- height: auto;
-}
-
-.sl-markdown-content h1:not(:where(.not-content *)) {
- font-size: var(--sl-text-h1);
-}
-.sl-markdown-content h2:not(:where(.not-content *)) {
- font-size: var(--sl-text-h2);
-}
-.sl-markdown-content h3:not(:where(.not-content *)) {
- font-size: var(--sl-text-h3);
-}
-.sl-markdown-content h4:not(:where(.not-content *)) {
- font-size: var(--sl-text-h4);
-}
-.sl-markdown-content h5:not(:where(.not-content *)) {
- font-size: var(--sl-text-h5);
-}
-.sl-markdown-content h6:not(:where(.not-content *)) {
- font-size: var(--sl-text-h6);
-}
-
-.sl-markdown-content a:not(:where(.not-content *)) {
- color: var(--sl-color-text-accent);
-}
-.sl-markdown-content a:hover:not(:where(.not-content *)) {
- color: var(--sl-color-white);
-}
-
-.sl-markdown-content code:not(:where(.not-content *)) {
- background-color: var(--sl-color-bg-inline-code);
- margin-block: -0.125rem;
- padding: 0.125rem 0.375rem;
- font-size: var(--sl-text-code-sm);
-}
-.sl-markdown-content :is(h1, h2, h3, h4, h5, h6) code {
- font-size: inherit;
-}
-
-.sl-markdown-content pre:not(:where(.not-content *)) {
- border: 1px solid var(--sl-color-gray-5);
- padding: 0.75rem 1rem;
- font-size: var(--sl-text-code);
- tab-size: 2;
-}
-
-.sl-markdown-content pre code:not(:where(.not-content *)) {
- all: unset;
- font-family: var(--__sl-font-mono);
-}
-
-.sl-markdown-content blockquote:not(:where(.not-content *)) {
- border-inline-start: 1px solid var(--sl-color-gray-5);
- padding-inline-start: 1rem;
-}
-
-/* Table styling */
-.sl-markdown-content table:not(:where(.not-content *)) {
- display: block;
- overflow: auto;
- border-spacing: 0;
-}
-.sl-markdown-content :is(th, td):not(:where(.not-content *)) {
- border-bottom: 1px solid var(--sl-color-gray-5);
- padding: 0.5rem 1rem;
- /* Align text to the top of the row in multiline tables. */
- vertical-align: baseline;
-}
-.sl-markdown-content
- :is(th:first-child, td:first-child):not(:where(.not-content *)) {
- padding-inline-start: 0;
-}
-.sl-markdown-content
- :is(th:last-child, td:last-child):not(:where(.not-content *)) {
- padding-inline-end: 0;
-}
-.sl-markdown-content th:not(:where(.not-content *)) {
- color: var(--sl-color-white);
- font-weight: 600;
-}
-/* Align headings to the start of the line unless set by the `align` attribute. */
-.sl-markdown-content th:not([align]):not(:where(.not-content *)) {
- text-align: start;
-}
-/* s, s, and s inside asides */
-.sl-markdown-content
- .starlight-aside
- :is(th, td, hr, blockquote):not(:where(.not-content *)) {
- border-color: var(--sl-color-gray-4);
-}
-@supports (
- border-color:
- color-mix(in srgb, var(--sl-color-asides-text-accent) 30%, transparent)
-) {
- .sl-markdown-content
- .starlight-aside
- :is(th, td, hr, blockquote):not(:where(.not-content *)) {
- border-color: color-mix(
- in srgb,
- var(--sl-color-asides-text-accent) 30%,
- transparent
- );
- }
-}
-
-/* inside asides */
-@supports (
- border-color:
- color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent)
-) {
- .sl-markdown-content .starlight-aside code:not(:where(.not-content *)) {
- background-color: color-mix(
- in srgb,
- var(--sl-color-asides-text-accent) 12%,
- transparent
- );
- }
-}
-
-.sl-markdown-content hr:not(:where(.not-content *)) {
- border: 0;
- border-bottom: 1px solid var(--sl-color-hairline);
-}
-
-/* and styles */
-.sl-markdown-content details:not(:where(.not-content *)) {
- --sl-details-border-color: var(--sl-color-gray-5);
- --sl-details-border-color--hover: var(--sl-color-text-accent);
-
- border-inline-start: 2px solid var(--sl-details-border-color);
- padding-inline-start: 1rem;
-}
-.sl-markdown-content details:not([open]):hover:not(:where(.not-content *)),
-.sl-markdown-content details:has(> summary:hover):not(:where(.not-content *)) {
- border-color: var(--sl-details-border-color--hover);
-}
-.sl-markdown-content summary:not(:where(.not-content *)) {
- color: var(--sl-color-white);
- cursor: pointer;
- display: block; /* Needed to hide the default marker in some browsers. */
- font-weight: 600;
- /* Expand the outline so that the marker cannot distort it. */
- margin-inline-start: -0.5rem;
- padding-inline-start: 0.5rem;
-}
-.sl-markdown-content details[open] > summary:not(:where(.not-content *)) {
- margin-bottom: 1rem;
-}
-
-/* marker styles */
-.sl-markdown-content summary:not(:where(.not-content *))::marker,
-.sl-markdown-content
- summary:not(:where(.not-content *))::-webkit-details-marker {
- display: none;
-}
-.sl-markdown-content summary:not(:where(.not-content *))::before {
- --sl-details-marker-size: 1.25rem;
-
- background-color: currentColor;
- content: "";
- display: inline-block;
- height: var(--sl-details-marker-size);
- width: var(--sl-details-marker-size);
- margin-inline: calc((var(--sl-details-marker-size) / 4) * -1) 0.25rem;
- vertical-align: middle;
- -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");
- -webkit-mask-repeat: no-repeat;
- mask-repeat: no-repeat;
-}
-@media (prefers-reduced-motion: no-preference) {
- .sl-markdown-content summary:not(:where(.not-content *))::before {
- transition: transform 0.2s ease-in-out;
- }
-}
-.sl-markdown-content
- details[open]
- > summary:not(:where(.not-content *))::before {
- transform: rotateZ(90deg);
-}
-[dir="rtl"] .sl-markdown-content summary:not(:where(.not-content *))::before,
-.sl-markdown-content [dir="rtl"] summary:not(:where(.not-content *))::before {
- transform: rotateZ(180deg);
-}
-/* with only a paragraph automatically added when using MDX */
-.sl-markdown-content summary:not(:where(.not-content *)) p:only-child {
- display: inline;
-}
-
-/* styles inside asides */
-.sl-markdown-content .starlight-aside details:not(:where(.not-content *)) {
- --sl-details-border-color: var(--sl-color-asides-border);
- --sl-details-border-color--hover: var(--sl-color-asides-text-accent);
-}
diff --git a/docs/src/tailwind.css b/docs/src/tailwind.css
deleted file mode 100644
index 0824247..0000000
--- a/docs/src/tailwind.css
+++ /dev/null
@@ -1,109 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-@layer base {
- :root {
- --background: 0 0% 100%;
- --foreground: 240 10% 3.9%;
- --card: 0 0% 100%;
- --card-foreground: 240 10% 3.9%;
- --popover: 0 0% 100%;
- --popover-foreground: 240 10% 3.9%;
- --primary: 240 5.9% 10%;
- --primary-foreground: 0 0% 98%;
- --secondary: 240 4.8% 95.9%;
- --secondary-foreground: 240 5.9% 10%;
- --muted: 240 4.8% 95.9%;
- --muted-foreground: 240 3.8% 46.1%;
- --accent: 240 4.8% 95.9%;
- --accent-foreground: 240 5.9% 10%;
- --destructive: 0 72.22% 50.59%;
- --destructive-foreground: 0 0% 98%;
- --border: 240 5.9% 90%;
- --input: 240 5.9% 90%;
- --ring: 240 5% 64.9%;
- --radius: 0.5rem;
-
- --chart-1: 12 76% 61%;
- --chart-2: 173 58% 39%;
- --chart-3: 197 37% 24%;
- --chart-4: 43 74% 66%;
- --chart-5: 27 87% 67%;
-
- --sl-color-bg-sidebar: hsl(var(--background));
- --sl-color-bg-nav: hsl(var(--background));
- --sl-color-black: hsl(var(--background));
- --sl-sidebar-width: 28rem;
- }
-
- [data-theme="dark"] {
- --background: 240 10% 3.9%;
- --foreground: 0 0% 98%;
- --card: 240 10% 3.9%;
- --card-foreground: 0 0% 98%;
- --popover: 240 10% 3.9%;
- --popover-foreground: 0 0% 98%;
- --primary: 0 0% 98%;
- --primary-foreground: 240 5.9% 10%;
- --secondary: 240 3.7% 15.9%;
- --secondary-foreground: 0 0% 98%;
- --muted: 240 3.7% 15.9%;
- --muted-foreground: 240 5% 64.9%;
- --accent: 240 3.7% 15.9%;
- --accent-foreground: 0 0% 98%;
- --destructive: 0 62.8% 30.6%;
- --destructive-foreground: 0 85.7% 97.3%;
- --border: 240 3.7% 15.9%;
- --input: 240 3.7% 15.9%;
- --ring: 240 4.9% 83.9%;
-
- --chart-1: 220 70% 50%;
- --chart-2: 160 60% 45%;
- --chart-3: 30 80% 55%;
- --chart-4: 280 65% 60%;
- --chart-5: 340 75% 55%;
- }
-}
-
-@layer base {
- * {
- @apply border-border;
- }
- html {
- @apply scroll-smooth;
- }
- body {
- @apply bg-background text-foreground;
- /* font-feature-settings: "rlig" 1, "calt" 1; */
- font-synthesis-weight: none;
- text-rendering: optimizeLegibility;
- }
-}
-
-@layer utilities {
- .step {
- counter-increment: step;
- }
-
- .step:before {
- @apply absolute w-9 h-9 bg-muted rounded-full font-mono font-medium text-center text-base inline-flex items-center justify-center -indent-px border-4 border-background;
- @apply ml-[-50px] mt-[-4px];
- content: counter(step);
- }
-
- .chunk-container {
- @apply shadow-none;
- }
-
- .chunk-container::after {
- content: "";
- @apply absolute -inset-4 shadow-xl rounded-xl border;
- }
-}
-
-@media (max-width: 640px) {
- .container {
- @apply px-4;
- }
-}
diff --git a/docs/src/utils/base.ts b/docs/src/utils/base.ts
deleted file mode 100644
index 1838946..0000000
--- a/docs/src/utils/base.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { stripLeadingSlash, stripTrailingSlash } from './path'
-
-const base = stripTrailingSlash(import.meta.env.BASE_URL)
-
-/** Get the a root-relative URL path with the siteβs `base` prefixed. */
-export function pathWithBase(path: string): string {
- path = stripLeadingSlash(path)
- return path ? `${base}/${path}` : `${base}/`
-}
-
-/** Get the a root-relative file URL path with the siteβs `base` prefixed. */
-export function fileWithBase(path: string): string {
- path = stripLeadingSlash(path)
- return path ? `${base}/${path}` : base
-}
diff --git a/docs/src/utils/createPathFormatter.ts b/docs/src/utils/createPathFormatter.ts
deleted file mode 100644
index 0840912..0000000
--- a/docs/src/utils/createPathFormatter.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import type { AstroConfig } from 'astro'
-import { fileWithBase, pathWithBase } from './base'
-import {
- ensureHtmlExtension,
- ensureTrailingSlash,
- stripHtmlExtension,
- stripTrailingSlash,
-} from './path'
-
-interface FormatPathOptions {
- format?: AstroConfig['build']['format']
- trailingSlash?: AstroConfig['trailingSlash']
-}
-
-const defaultFormatStrategy = {
- addBase: pathWithBase,
- handleExtension: (href: string) => stripHtmlExtension(href),
-}
-
-const formatStrategies = {
- file: {
- addBase: fileWithBase,
- handleExtension: (href: string) => ensureHtmlExtension(href),
- },
- directory: defaultFormatStrategy,
- preserve: defaultFormatStrategy,
-}
-
-const trailingSlashStrategies = {
- always: ensureTrailingSlash,
- never: stripTrailingSlash,
- ignore: (href: string) => href,
-}
-
-/** Format a path based on the project config. */
-function formatPath(
- href: string,
- { format = 'directory', trailingSlash = 'ignore' }: FormatPathOptions,
-): string {
- const formatStrategy = formatStrategies[format]
- const trailingSlashStrategy = trailingSlashStrategies[trailingSlash]
-
- // Add base
- href = formatStrategy.addBase(href)
-
- // Handle extension
- href = formatStrategy.handleExtension(href)
-
- // Skip trailing slash handling for `build.format: 'file'`
- if (format === 'file')
- return href
-
- // Handle trailing slash
- href = href === '/' ? href : trailingSlashStrategy(href)
-
- return href
-}
-
-export function createPathFormatter(opts: FormatPathOptions) {
- return (href: string) => formatPath(href, opts)
-}
diff --git a/docs/src/utils/format-path.ts b/docs/src/utils/format-path.ts
deleted file mode 100644
index b3234de..0000000
--- a/docs/src/utils/format-path.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import project from 'virtual:starlight/project-context'
-import { createPathFormatter } from './createPathFormatter'
-
-export const formatPath = createPathFormatter({
- format: project.build.format,
- trailingSlash: project.trailingSlash,
-})
diff --git a/docs/src/utils/i18n.ts b/docs/src/utils/i18n.ts
deleted file mode 100644
index 39932eb..0000000
--- a/docs/src/utils/i18n.ts
+++ /dev/null
@@ -1,231 +0,0 @@
-import { AstroError } from 'astro/errors'
-import type { AstroConfig } from 'astro'
-import type StarlightConfig from 'virtual:starlight/user-config'
-
-/** Informations about the built-in default locale used as a fallback when no locales are defined. */
-export const BuiltInDefaultLocale = { ...getLocaleInfo('en'), lang: 'en' }
-
-/**
- * A list of well-known right-to-left languages used as a fallback when determining the text
- * direction of a locale is not supported by the `Intl.Locale` API in the current environment.
- *
- * @see getLocaleDir()
- * @see https://en.wikipedia.org/wiki/IETF_language_tag#List_of_common_primary_language_subtags
- */
-const wellKnownRTL = ['ar', 'fa', 'he', 'prs', 'ps', 'syc', 'ug', 'ur']
-
-/**
- * Processes the Astro and Starlight i18n configurations to generate/update them accordingly:
- *
- * - If no Astro and Starlight i18n configurations are provided, the built-in default locale is
- * used in Starlight and the generated Astro i18n configuration will match it.
- * - If only a Starlight i18n configuration is provided, an equivalent Astro i18n configuration is
- * generated.
- * - If only an Astro i18n configuration is provided, an equivalent Starlight i18n configuration is
- * used.
- * - If both an Astro and Starlight i18n configurations are provided, an error is thrown.
- */
-export function processI18nConfig(
- starlightConfig: typeof StarlightConfig,
- astroI18nConfig: AstroConfig['i18n'],
-): { astroI18nConfig: { defaultLocale: string, locales: (string | { path: string, codes: [string, ...string[]] })[], routing: 'manual' | { prefixDefaultLocale: boolean, redirectToDefaultLocale: boolean, fallbackType: 'redirect' | 'rewrite' }, fallback?: Record | undefined, domains?: Record | undefined }, starlightConfig: typeof StarlightConfig } {
- // We don't know what to do if both an Astro and Starlight i18n configuration are provided.
- if (astroI18nConfig && !starlightConfig.isUsingBuiltInDefaultLocale) {
- throw new AstroError(
- 'Cannot provide both an Astro `i18n` configuration and a Starlight `locales` configuration.',
- 'Remove one of the two configurations.\nSee more at https://starlight.astro.build/guides/i18n/',
- )
- }
- else if (astroI18nConfig) {
- // If a Starlight compatible Astro i18n configuration is provided, we generate the matching
- // Starlight configuration.
- return {
- astroI18nConfig,
- starlightConfig: {
- ...starlightConfig,
- ...getStarlightI18nConfig(astroI18nConfig),
- } as typeof StarlightConfig,
- }
- }
- // Otherwise, we generate the Astro i18n configuration based on the Starlight configuration.
- return {
- astroI18nConfig: getAstroI18nConfig(starlightConfig),
- starlightConfig,
- }
-}
-
-/** Generate an Astro i18n configuration based on a Starlight configuration. */
-function getAstroI18nConfig(
- config: typeof StarlightConfig,
-): NonNullable {
- return {
- defaultLocale:
- config.defaultLocale.lang
- ?? config.defaultLocale.locale
- ?? BuiltInDefaultLocale.lang,
- locales: config.locales
- ? Object.entries(config.locales).map(([locale, localeConfig]) => {
- return {
- codes: [localeConfig?.lang ?? locale],
- path:
- locale === 'root'
- ? (localeConfig?.lang ?? BuiltInDefaultLocale.lang)
- : locale,
- }
- })
- : [config.defaultLocale.lang],
- routing: {
- prefixDefaultLocale:
- // Sites with multiple languages without a root locale.
- (config.isMultilingual && config.locales?.root === undefined)
- // Sites with a single non-root language different from the built-in default locale.
- || (!config.isMultilingual && config.locales !== undefined),
- redirectToDefaultLocale: false,
- fallbackType: 'redirect', // or 'rewrite' based on your requirement
- },
- }
-}
-
-/** Generate a Starlight i18n configuration based on an Astro configuration. */
-function getStarlightI18nConfig(
- astroI18nConfig: NonNullable,
-): Pick<
- typeof StarlightConfig,
- 'isMultilingual' | 'locales' | 'defaultLocale'
- > {
- if (astroI18nConfig.routing === 'manual') {
- throw new AstroError(
- 'Starlight is not compatible with the `manual` routing option in the Astro i18n configuration.',
- )
- }
-
- const prefixDefaultLocale = astroI18nConfig.routing.prefixDefaultLocale
- const isMultilingual = astroI18nConfig.locales.length > 1
- const isMonolingualWithRootLocale = !isMultilingual && !prefixDefaultLocale
-
- const locales = isMonolingualWithRootLocale
- ? undefined
- : Object.fromEntries(
- astroI18nConfig.locales.map(locale => [
- isDefaultAstroLocale(astroI18nConfig, locale) && !prefixDefaultLocale
- ? 'root'
- : isAstroLocaleExtendedConfig(locale)
- ? locale.path
- : locale,
- inferStarlightLocaleFromAstroLocale(locale),
- ]),
- )
-
- const defaultAstroLocale = astroI18nConfig.locales.find(locale =>
- isDefaultAstroLocale(astroI18nConfig, locale),
- )
-
- // This should never happen as Astro validation should prevent this case.
- if (!defaultAstroLocale) {
- throw new AstroError(
- 'Astro default locale not found.',
- 'This should never happen. Please open a new issue: https://github.com/withastro/starlight/issues/new?template=---01-bug-report.yml',
- )
- }
-
- return {
- isMultilingual,
- locales,
- defaultLocale: {
- ...inferStarlightLocaleFromAstroLocale(defaultAstroLocale),
- locale:
- isMonolingualWithRootLocale || (isMultilingual && !prefixDefaultLocale)
- ? undefined
- : isAstroLocaleExtendedConfig(defaultAstroLocale)
- ? defaultAstroLocale.codes[0]
- : defaultAstroLocale,
- },
- }
-}
-
-/** Infer Starlight locale informations based on a locale from an Astro i18n configuration. */
-function inferStarlightLocaleFromAstroLocale(astroLocale: AstroLocale): { lang: string, label: string, dir: 'rtl' | 'ltr' } {
- const lang = isAstroLocaleExtendedConfig(astroLocale)
- ? astroLocale.codes[0]
- : astroLocale
- return { ...getLocaleInfo(lang), lang }
-}
-
-/** Check if the passed locale is the default locale in an Astro i18n configuration. */
-function isDefaultAstroLocale(
- astroI18nConfig: NonNullable,
- locale: AstroLocale,
-): boolean {
- return (
- (isAstroLocaleExtendedConfig(locale) ? locale.path : locale)
- === astroI18nConfig.defaultLocale
- )
-}
-
-/**
- * Check if the passed Astro locale is using the object variant.
- * @see AstroLocaleExtendedConfig
- */
-function isAstroLocaleExtendedConfig(
- locale: AstroLocale,
-): locale is AstroLocaleExtendedConfig {
- return typeof locale !== 'string'
-}
-
-/** Returns the locale informations such as a label and a direction based on a BCP-47 tag. */
-function getLocaleInfo(lang: string): { label: string, dir: 'rtl' | 'ltr' } {
- try {
- const locale = new Intl.Locale(lang)
- const label = new Intl.DisplayNames(locale, { type: 'language' }).of(lang)
- if (!label || lang === label)
- throw new Error('Label not found.')
- return {
- label: label[0]?.toLocaleUpperCase(locale) + label.slice(1),
- dir: getLocaleDir(locale),
- }
- }
- catch {
- throw new AstroError(
- `Failed to get locale informations for the '${lang}' locale.`,
- 'Make sure to provide a valid BCP-47 tags (e.g. en, ar, or zh-CN).',
- )
- }
-}
-
-/**
- * Returns the direction of the passed locale.
- * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getTextInfo
- */
-function getLocaleDir(locale: Intl.Locale): 'ltr' | 'rtl' {
- if ('textInfo' in locale) {
- // @ts-expect-error - `textInfo` is not typed but is available in v8 based environments.
- return locale.textInfo.direction
- }
- else if ('getTextInfo' in locale) {
- // @ts-expect-error - `getTextInfo` is not typed but is available in some non-v8 based environments.
- return locale.getTextInfo().direction
- }
- // Firefox does not support `textInfo` or `getTextInfo` yet so we fallback to a well-known list
- // of right-to-left languages.
- return wellKnownRTL.includes(locale.language) ? 'rtl' : 'ltr'
-}
-
-/**
- * Get the string for the passed language from a dictionary object.
- *
- * TODO: Make this clever. Currently a simple key look-up, but should use
- * BCP-47 mapping so that e.g. `en-US` returns `en` strings, and use the
- * siteβs default locale as a last resort.
- *
- * @example
- * pickLang({ en: 'Hello', fr: 'Bonjour' }, 'en'); // => 'Hello'
- */
-export function pickLang>(
- dictionary: T,
- lang: keyof T,
-): string | undefined {
- return dictionary[lang]
-}
-
-type AstroLocale = NonNullable['locales'][number]
-type AstroLocaleExtendedConfig = Exclude
diff --git a/docs/src/utils/navigation.ts b/docs/src/utils/navigation.ts
deleted file mode 100644
index b9e7d8d..0000000
--- a/docs/src/utils/navigation.ts
+++ /dev/null
@@ -1,475 +0,0 @@
-import { AstroError } from 'astro/errors'
-import config from 'virtual:starlight/user-config'
-import { createPathFormatter } from './createPathFormatter'
-import { formatPath } from './format-path'
-import { pickLang } from './i18n'
-import {
- ensureLeadingSlash,
- ensureTrailingSlash,
- stripLeadingAndTrailingSlashes,
-} from './path'
-import { getLocaleRoutes, type Route, routes } from './routing'
-import { localeToLang, slugToPathname } from './slugs'
-import type { Badge } from '../schemas/badge'
-import type { PrevNextLinkConfig } from '../schemas/prevNextLink'
-import type {
- AutoSidebarGroup,
- InternalSidebarLinkItem,
- LinkHTMLAttributes,
- SidebarItem,
- SidebarLinkItem,
-} from '../schemas/sidebar'
-
-const DirKey = Symbol('DirKey')
-const SlugKey = Symbol('SlugKey')
-
-export interface Link {
- type: 'link'
- label: string
- href: string
- isCurrent: boolean
- badge: Badge | undefined
- attrs: LinkHTMLAttributes
-}
-
-interface Group {
- type: 'group'
- label: string
- entries: (Link | Group)[]
- collapsed: boolean
- badge: Badge | undefined
-}
-
-export type SidebarEntry = Link | Group
-
-/**
- * A representation of the route structure. For each object entry:
- * if itβs a folder, the key is the directory name, and value is the directory
- * content; if itβs a route entry, the key is the last segment of the route, and value
- * is the full entry.
- */
-interface Dir {
- [DirKey]: undefined
- [SlugKey]: string
- [item: string]: Dir | Route
-}
-
-/** Remove the extension from a path. */
-const stripExtension = (path: string): string => path.replace(/\.\w+$/, '')
-
-/** Create a new directory object. */
-function makeDir(slug: string): Dir {
- const dir = {} as Dir
- // Add DirKey and SlugKey as non-enumerable properties so that `Object.entries(dir)` ignores them.
- Object.defineProperty(dir, DirKey, { enumerable: false })
- Object.defineProperty(dir, SlugKey, { value: slug, enumerable: false })
- return dir
-}
-
-/** Test if the passed object is a directory record. */
-function isDir(data: Record): data is Dir {
- return DirKey in data
-}
-
-/** Convert an item in a userβs sidebar config to a sidebar entry. */
-function configItemToEntry(
- item: SidebarItem,
- currentPathname: string,
- locale: string | undefined,
- routes: Route[],
-): SidebarEntry {
- if ('link' in item) {
- return linkFromSidebarLinkItem(item, locale, currentPathname)
- }
- else if ('autogenerate' in item) {
- return groupFromAutogenerateConfig(item, locale, routes, currentPathname)
- }
- else if ('slug' in item) {
- return linkFromInternalSidebarLinkItem(item, locale, currentPathname)
- }
- else {
- return {
- type: 'group',
- label: pickLang(item.translations, localeToLang(locale)) || item.label,
- entries: item.items.map(i =>
- configItemToEntry(i, currentPathname, locale, routes),
- ),
- collapsed: item.collapsed,
- badge: item.badge,
- }
- }
-}
-
-/** Autogenerate a group of links from a userβs sidebar config. */
-function groupFromAutogenerateConfig(
- item: AutoSidebarGroup,
- locale: string | undefined,
- routes: Route[],
- currentPathname: string,
-): Group {
- const { collapsed: subgroupCollapsed, directory } = item.autogenerate
- const localeDir = locale ? `${locale}/${directory}` : directory
- const dirDocs = routes.filter(
- doc =>
- // Match against `foo.md` or `foo/index.md`.
- stripExtension(doc.id) === localeDir
- // Match against `foo/anything/else.md`.
- || doc.id.startsWith(`${localeDir}/`),
- )
- const tree = treeify(dirDocs, localeDir)
- return {
- type: 'group',
- label: pickLang(item.translations, localeToLang(locale)) || item.label,
- entries: sidebarFromDir(
- tree,
- currentPathname,
- locale,
- subgroupCollapsed ?? item.collapsed,
- ),
- collapsed: item.collapsed,
- badge: item.badge,
- }
-}
-
-/** Check if a string starts with one of `http://` or `https://`. */
-const isAbsolute = (link: string): boolean => /^https?:\/\//.test(link)
-
-/** Create a link entry from a manual link item in user config. */
-function linkFromSidebarLinkItem(
- item: SidebarLinkItem,
- locale: string | undefined,
- currentPathname: string,
-): Link {
- let href = item.link
- if (!isAbsolute(href)) {
- href = ensureLeadingSlash(href)
- // Inject current locale into link.
- if (locale)
- href = `/${locale}${href}`
- }
- const label = pickLang(item.translations, localeToLang(locale)) || item.label
- return makeSidebarLink(href, label, currentPathname, item.badge, item.attrs)
-}
-
-/** Create a link entry from an automatic internal link item in user config. */
-function linkFromInternalSidebarLinkItem(
- item: InternalSidebarLinkItem,
- locale: string | undefined,
- currentPathname: string,
-): Link {
- let slugWithLocale = locale ? `${locale}/${item.slug}` : item.slug
- // Astro passes root `index.[md|mdx]` entries with a slug of `index`
- slugWithLocale = slugWithLocale.replace(/\/?index$/, '')
- const entry = routes.find(entry => slugWithLocale === entry.slug)
- if (!entry) {
- const hasExternalSlashes
- = item.slug.at(0) === '/' || item.slug.at(-1) === '/'
- if (hasExternalSlashes) {
- throw new AstroError(
- `The slug \`"${item.slug}"\` specified in the Starlight sidebar config must not start or end with a slash.`,
- `Please try updating \`"${item.slug}"\` to \`"${stripLeadingAndTrailingSlashes(item.slug)}"\`.`,
- )
- }
- else {
- throw new AstroError(
- `The slug \`"${item.slug}"\` specified in the Starlight sidebar config does not exist.`,
- 'Update the Starlight config to reference a valid entry slug in the docs content collection.\n'
- + 'Learn more about Astro content collection slugs at https://docs.astro.build/en/reference/api-reference/#getentry',
- )
- }
- }
- const label
- = pickLang(item.translations, localeToLang(locale))
- || item.label
- || entry.entry.data.title
- return makeSidebarLink(
- entry.slug,
- label,
- currentPathname,
- item.badge,
- item.attrs,
- )
-}
-
-/** Process sidebar link options to create a link entry. */
-function makeSidebarLink(
- href: string,
- label: string,
- currentPathname: string,
- badge?: Badge,
- attrs?: LinkHTMLAttributes,
-): Link {
- if (!isAbsolute(href)) {
- href = formatPath(href)
- }
- const isCurrent = pathsMatch(encodeURI(href), currentPathname)
- return makeLink({ label, href, isCurrent, badge, attrs })
-}
-
-/** Create a link entry */
-function makeLink({
- isCurrent = false,
- attrs = {},
- badge = undefined,
- ...opts
-}: {
- label: string
- href: string
- isCurrent?: boolean
- badge?: Badge | undefined
- attrs?: LinkHTMLAttributes | undefined
-}): Link {
- return { type: 'link', ...opts, badge, isCurrent, attrs }
-}
-
-/** Test if two paths are equivalent even if formatted differently. */
-function pathsMatch(pathA: string, pathB: string): boolean {
- const format = createPathFormatter({ trailingSlash: 'never' })
- return format(pathA) === format(pathB)
-}
-
-/** Get the segments leading to a page. */
-function getBreadcrumbs(path: string, baseDir: string): string[] {
- // Strip extension from path.
- const pathWithoutExt = stripExtension(path)
- // Index paths will match `baseDir` and donβt include breadcrumbs.
- if (pathWithoutExt === baseDir)
- return []
- // Ensure base directory ends in a trailing slash.
- baseDir = ensureTrailingSlash(baseDir)
- // Strip base directory from path if present.
- const relativePath = pathWithoutExt.startsWith(baseDir)
- ? pathWithoutExt.replace(baseDir, '')
- : pathWithoutExt
-
- return relativePath.split('/')
-}
-
-/** Turn a flat array of routes into a tree structure. */
-function treeify(routes: Route[], baseDir: string): Dir {
- const treeRoot: Dir = makeDir(baseDir)
- routes
- // Remove any entries that should be hidden
- .filter(doc => !doc.entry.data.sidebar.hidden)
- // Sort by depth, to build the tree depth first.
- .sort((a, b) => b.id.split('/').length - a.id.split('/').length)
- // Build the tree
- .forEach((doc) => {
- const parts = getBreadcrumbs(doc.id, baseDir)
- let currentNode = treeRoot
-
- parts.forEach((part, index) => {
- const isLeaf = index === parts.length - 1
-
- // Handle directory index pages by renaming them to `index`
- if (isLeaf && Object.prototype.hasOwnProperty.call(currentNode, part)) {
- currentNode = currentNode[part] as Dir
- part = 'index'
- }
-
- // Recurse down the tree if this isnβt the leaf node.
- if (!isLeaf) {
- const path = currentNode[SlugKey]
- currentNode[part] ||= makeDir(
- stripLeadingAndTrailingSlashes(`${path}/${part}`),
- )
- currentNode = currentNode[part] as Dir
- }
- else {
- currentNode[part] = doc
- }
- })
- })
-
- return treeRoot
-}
-
-/** Create a link entry for a given content collection entry. */
-function linkFromRoute(route: Route, currentPathname: string): Link {
- return makeSidebarLink(
- slugToPathname(route.slug),
- route.entry.data.sidebar.label || route.entry.data.title,
- currentPathname,
- route.entry.data.sidebar.badge,
- route.entry.data.sidebar.attrs,
- )
-}
-
-/**
- * Get the sort weight for a given route or directory. Lower numbers rank higher.
- * Directories have the weight of the lowest weighted route they contain.
- */
-function getOrder(routeOrDir: Route | Dir): number {
- return isDir(routeOrDir)
- ? Math.min(...Object.values(routeOrDir).flatMap(getOrder))
- : (routeOrDir.entry.data.sidebar.order ?? Number.MAX_VALUE)
-}
-
-/** Sort a directoryβs entries by user-specified order or alphabetically if no order specified. */
-function sortDirEntries(dir: [string, Dir | Route][]): [string, Dir | Route][] {
- const collator = new Intl.Collator(localeToLang(undefined))
- return dir.sort(([_keyA, a], [_keyB, b]) => {
- const [aOrder, bOrder] = [getOrder(a), getOrder(b)]
- // Pages are sorted by order in ascending order.
- if (aOrder !== bOrder)
- return aOrder < bOrder ? -1 : 1
- // If two pages have the same order value they will be sorted by their slug.
- return collator.compare(
- isDir(a) ? a[SlugKey] : a.slug,
- isDir(b) ? b[SlugKey] : b.slug,
- )
- })
-}
-
-/** Create a group entry for a given content collection directory. */
-function groupFromDir(
- dir: Dir,
- fullPath: string,
- dirName: string,
- currentPathname: string,
- locale: string | undefined,
- collapsed: boolean,
-): Group {
- const entries = sortDirEntries(Object.entries(dir)).map(([key, dirOrRoute]) =>
- dirToItem(
- dirOrRoute,
- `${fullPath}/${key}`,
- key,
- currentPathname,
- locale,
- collapsed,
- ),
- )
- return {
- type: 'group',
- label: dirName,
- entries,
- collapsed,
- badge: undefined,
- }
-}
-
-/** Create a sidebar entry for a directory or content entry. */
-function dirToItem(
- dirOrRoute: Dir[string],
- fullPath: string,
- dirName: string,
- currentPathname: string,
- locale: string | undefined,
- collapsed: boolean,
-): SidebarEntry {
- return isDir(dirOrRoute)
- ? groupFromDir(
- dirOrRoute,
- fullPath,
- dirName,
- currentPathname,
- locale,
- collapsed,
- )
- : linkFromRoute(dirOrRoute, currentPathname)
-}
-
-/** Create a sidebar entry for a given content directory. */
-function sidebarFromDir(
- tree: Dir,
- currentPathname: string,
- locale: string | undefined,
- collapsed: boolean,
-): SidebarEntry[] {
- return sortDirEntries(Object.entries(tree)).map(([key, dirOrRoute]) =>
- dirToItem(dirOrRoute, key, key, currentPathname, locale, collapsed),
- )
-}
-
-/** Get the sidebar for the current page. */
-export function getSidebar(
- pathname: string,
- locale: string | undefined,
-): SidebarEntry[] {
- const routes = getLocaleRoutes(locale)
- if (config.sidebar) {
- return config.sidebar.map(group =>
- configItemToEntry(group, pathname, locale, routes),
- )
- }
- else {
- const tree = treeify(routes, locale || '')
- return sidebarFromDir(tree, pathname, locale, false)
- }
-}
-
-/** Turn the nested tree structure of a sidebar into a flat list of all the links. */
-export function flattenSidebar(sidebar: SidebarEntry[]): Link[] {
- return sidebar.flatMap(entry =>
- entry.type === 'group' ? flattenSidebar(entry.entries) : entry,
- )
-}
-
-/** Get previous/next pages in the sidebar or the ones from the frontmatter if any. */
-export function getPrevNextLinks(
- sidebar: SidebarEntry[],
- paginationEnabled: boolean,
- config: {
- prev?: PrevNextLinkConfig
- next?: PrevNextLinkConfig
- },
-): {
- /** Link to previous page in the sidebar. */
- prev: Link | undefined
- /** Link to next page in the sidebar. */
- next: Link | undefined
- } {
- const entries = flattenSidebar(sidebar)
- const currentIndex = entries.findIndex(entry => entry.isCurrent)
- const prev = applyPrevNextLinkConfig(
- entries[currentIndex - 1],
- paginationEnabled,
- config.prev,
- )
- const next = applyPrevNextLinkConfig(
- currentIndex > -1 ? entries[currentIndex + 1] : undefined,
- paginationEnabled,
- config.next,
- )
- return { prev, next }
-}
-
-/** Apply a prev/next link config to a navigation link. */
-function applyPrevNextLinkConfig(
- link: Link | undefined,
- paginationEnabled: boolean,
- config: PrevNextLinkConfig | undefined,
-): Link | undefined {
- // Explicitly remove the link.
- if (config === false) {
- return undefined
- }
- // Use the generated link if any.
- else if (config === true) {
- return link
- }
- // If a link exists, update its label if needed.
- else if (typeof config === 'string' && link) {
- return { ...link, label: config }
- }
- else if (typeof config === 'object') {
- if (link) {
- // If a link exists, update both its label and href if needed.
- return {
- ...link,
- label: config.label ?? link.label,
- href: config.link ?? link.href,
- // Explicitly remove sidebar link attributes for prev/next links.
- attrs: {},
- }
- }
- else if (config.link && config.label) {
- // If there is no link and the frontmatter contains both a URL and a label,
- // create a new link.
- return makeLink({ href: config.link, label: config.label })
- }
- }
- // Otherwise, if the global config is enabled, return the generated link if any.
- return paginationEnabled ? link : undefined
-}
diff --git a/docs/src/utils/path.ts b/docs/src/utils/path.ts
deleted file mode 100644
index 7f6007e..0000000
--- a/docs/src/utils/path.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-/** Ensure the passed path starts with a leading slash. */
-export function ensureLeadingSlash(href: string): string {
- if (href[0] !== '/')
- href = `/${href}`
- return href
-}
-
-/** Ensure the passed path ends with a trailing slash. */
-export function ensureTrailingSlash(href: string): string {
- if (href[href.length - 1] !== '/')
- href += '/'
- return href
-}
-
-/** Ensure the passed path starts and ends with slashes. */
-export function ensureLeadingAndTrailingSlashes(href: string): string {
- href = ensureLeadingSlash(href)
- href = ensureTrailingSlash(href)
- return href
-}
-
-/** Ensure the passed path does not start with a leading slash. */
-export function stripLeadingSlash(href: string): string {
- if (href[0] === '/')
- href = href.slice(1)
- return href
-}
-
-/** Ensure the passed path does not end with a trailing slash. */
-export function stripTrailingSlash(href: string): string {
- if (href[href.length - 1] === '/')
- href = href.slice(0, -1)
- return href
-}
-
-/** Ensure the passed path does not start and end with slashes. */
-export function stripLeadingAndTrailingSlashes(href: string): string {
- href = stripLeadingSlash(href)
- href = stripTrailingSlash(href)
- return href
-}
-
-/** Remove the extension from a path. */
-export function stripHtmlExtension(path: string): string {
- const pathWithoutTrailingSlash = stripTrailingSlash(path)
- return pathWithoutTrailingSlash.endsWith('.html')
- ? pathWithoutTrailingSlash.slice(0, -5)
- : path
-}
-
-/** Add '.html' extension to a path. */
-export function ensureHtmlExtension(path: string): string {
- path = stripLeadingAndTrailingSlashes(path)
- if (!path.endsWith('.html')) {
- path = path ? `${path}.html` : '/index.html'
- }
- return ensureLeadingSlash(path)
-}
diff --git a/docs/src/utils/routing.ts b/docs/src/utils/routing.ts
deleted file mode 100644
index 6c672d2..0000000
--- a/docs/src/utils/routing.ts
+++ /dev/null
@@ -1,153 +0,0 @@
-import { type CollectionEntry, getCollection } from 'astro:content'
-import config from 'virtual:starlight/user-config'
-import type { GetStaticPathsItem } from 'astro'
-import { BuiltInDefaultLocale } from './i18n'
-import {
- type LocaleData,
- localizedId,
- localizedSlug,
- slugToLocaleData,
- slugToParam,
-} from './slugs'
-import { validateLogoImports } from './validateLogoImports'
-
-// Validate any user-provided logos imported correctly.
-// We do this here so all pages trigger it and at the top level so it runs just once.
-validateLogoImports()
-
-export type StarlightDocsEntry = Omit, 'slug'> & {
- slug: string
-}
-
-export interface Route extends LocaleData {
- /** Content collection entry for the current page. Includes frontmatter at `data`. */
- entry: StarlightDocsEntry
- /** Locale metadata for the page content. Can be different from top-level locale values when a page is using fallback content. */
- entryMeta: LocaleData
- /** The slug, a.k.a. permalink, for this page. */
- slug: string
- /** The unique ID for this page. */
- id: string
- /** True if this page is untranslated in the current language and using fallback content from the default locale. */
- isFallback?: true
- [key: string]: unknown
-}
-
-interface Path extends GetStaticPathsItem {
- params: { slug: string | undefined }
- props: Route
-}
-
-/**
- * Astro is inconsistent in its `index.md` slug generation. In most cases,
- * `index` is stripped, but in the root of a collection, we get a slug of `index`.
- * We map that to an empty string for consistent behaviour.
- */
-const normalizeIndexSlug = (slug: string): string => (slug === 'index' ? '' : slug)
-
-/** All entries in the docs content collection. */
-const docs: StarlightDocsEntry[] = (
- (await getCollection('docs', ({ data }) => {
- // In production, filter out drafts.
- return import.meta.env.MODE !== 'production' || data.draft === false
- })) ?? []
-).map(({ slug, ...entry }) => ({
- ...entry,
- slug: normalizeIndexSlug(slug),
-}))
-
-function getRoutes(): Route[] {
- const routes: Route[] = docs.map(entry => ({
- entry,
- slug: entry.slug,
- id: entry.id,
- entryMeta: slugToLocaleData(entry.slug),
- ...slugToLocaleData(entry.slug),
- }))
-
- // In multilingual sites, add required fallback routes.
- if (config.isMultilingual) {
- /** Entries in the docs content collection for the default locale. */
- const defaultLocaleDocs = getLocaleDocs(
- config.defaultLocale?.locale === 'root'
- ? undefined
- : config.defaultLocale?.locale,
- )
- for (const key in config.locales) {
- if (key === config.defaultLocale.locale)
- continue
- const localeConfig = config.locales[key]
- if (!localeConfig)
- continue
- const locale = key === 'root' ? undefined : key
- const localeDocs = getLocaleDocs(locale)
- for (const fallback of defaultLocaleDocs) {
- const slug = localizedSlug(fallback.slug, locale)
- const id = localizedId(fallback.id, locale)
- const doesNotNeedFallback = localeDocs.some(doc => doc.slug === slug)
- if (doesNotNeedFallback)
- continue
- routes.push({
- entry: fallback,
- slug,
- id,
- isFallback: true,
- lang: localeConfig.lang || BuiltInDefaultLocale.lang,
- locale,
- dir: localeConfig.dir,
- entryMeta: slugToLocaleData(fallback.slug),
- })
- }
- }
- }
-
- return routes
-}
-export const routes = getRoutes()
-
-function getPaths(): Path[] {
- return routes.map(route => ({
- params: { slug: slugToParam(route.slug) },
- props: route,
- }))
-}
-export const paths = getPaths()
-
-/**
- * Get all routes for a specific locale.
- * A locale of `undefined` is treated as the βrootβ locale, if configured.
- */
-export function getLocaleRoutes(locale: string | undefined): Route[] {
- return filterByLocale(routes, locale)
-}
-
-/**
- * Get all entries in the docs content collection for a specific locale.
- * A locale of `undefined` is treated as the βrootβ locale, if configured.
- */
-function getLocaleDocs(locale: string | undefined): StarlightDocsEntry[] {
- return filterByLocale(docs, locale)
-}
-
-/** Filter an array to find items whose slug matches the passed locale. */
-function filterByLocale(
- items: T[],
- locale: string | undefined,
-): T[] {
- if (config.locales) {
- if (locale && locale in config.locales) {
- return items.filter(
- i => i.slug === locale || i.slug.startsWith(`${locale}/`),
- )
- }
- else if (config.locales.root) {
- const langKeys = Object.keys(config.locales).filter(k => k !== 'root')
- const isLangIndex = new RegExp(`^(${langKeys.join('|')})$`)
- const isLangDir = new RegExp(`^(${langKeys.join('|')})/`)
- return items.filter(
- i => !isLangIndex.test(i.slug) && !isLangDir.test(i.slug),
- )
- }
- }
- return items
-}
diff --git a/docs/src/utils/slugs.ts b/docs/src/utils/slugs.ts
deleted file mode 100644
index a84381a..0000000
--- a/docs/src/utils/slugs.ts
+++ /dev/null
@@ -1,140 +0,0 @@
-import config from 'virtual:starlight/user-config'
-import { BuiltInDefaultLocale } from './i18n'
-
-export interface LocaleData {
- /** Writing direction. */
- dir: 'ltr' | 'rtl'
- /** BCP-47 language tag. */
- lang: string
- /** The base path at which a language is served. `undefined` for root locale slugs. */
- locale: string | undefined
-}
-
-/**
- * Get the βlocaleβ of a slug. This is the base path at which a language is served.
- * For example, if French docs are in `src/content/docs/french/`, the locale is `french`.
- * Root locale slugs will return `undefined`.
- * @param slug A collection entry slug
- */
-function slugToLocale(slug: string): string | undefined {
- const locales = Object.keys(config.locales || {})
- const baseSegment = slug.split('/')[0]
- if (baseSegment && locales.includes(baseSegment))
- return baseSegment
- return undefined
-}
-
-/** Get locale information for a given slug. */
-export function slugToLocaleData(slug: string): LocaleData {
- const locale = slugToLocale(slug)
- return { dir: localeToDir(locale), lang: localeToLang(locale), locale }
-}
-
-/**
- * Get the BCP-47 language tag for the given locale.
- * @param locale Locale string or `undefined` for the root locale.
- */
-export function localeToLang(locale: string | undefined): string {
- const lang = locale
- ? config.locales?.[locale]?.lang
- : config.locales?.root?.lang
- const defaultLang
- = config.defaultLocale?.lang || config.defaultLocale?.locale
- return lang || defaultLang || BuiltInDefaultLocale.lang
-}
-
-/**
- * Get the configured writing direction for the given locale.
- * @param locale Locale string or `undefined` for the root locale.
- */
-function localeToDir(locale: string | undefined): 'ltr' | 'rtl' {
- const dir = locale
- ? config.locales?.[locale]?.dir
- : config.locales?.root?.dir
- return dir || config.defaultLocale.dir
-}
-
-export function slugToParam(slug: string): string | undefined {
- return slug === 'index' || slug === ''
- ? undefined
- : slug.endsWith('/index')
- ? slug.replace(/\/index$/, '')
- : slug
-}
-
-export function slugToPathname(slug: string): string {
- const param = slugToParam(slug)
- return param ? `/${param}/` : '/'
-}
-
-/**
- * Convert a slug to a different locale.
- * For example, passing a slug of `en/home` and a locale of `fr` results in `fr/home`.
- * An undefined locale is treated as the root locale, resulting in `home`
- * @param slug A collection entry slug
- * @param locale The target locale
- * @example
- * localizedSlug('en/home', 'fr') // => 'fr/home'
- * localizedSlug('en/home', undefined) // => 'home'
- */
-export function localizedSlug(
- slug: string,
- locale: string | undefined,
-): string {
- const slugLocale = slugToLocale(slug)
- if (slugLocale === locale)
- return slug
- locale = locale || ''
- if (slugLocale === slug)
- return locale
- if (slugLocale) {
- return slug
- .replace(`${slugLocale}/`, locale ? `${locale}/` : '')
- .replace(/\/$/, '')
- }
- return slug ? `${locale}/${slug}` : locale
-}
-
-/**
- * Convert a collection entry ID to a different locale.
- * For example, passing an ID of `en/home.md` and a locale of `fr` results in `fr/home.md`.
- * An undefined locale is treated as the root locale, resulting in `home.md`.
- * @param id A collection entry ID
- * @param locale The target locale
- * @example
- * localizedSlug('en/home.md', 'fr') // => 'fr/home.md'
- * localizedSlug('en/home.md', undefined) // => 'home.md'
- */
-export function localizedId(id: string, locale: string | undefined): string {
- const idLocale = slugToLocale(id)
- if (idLocale) {
- return id.replace(`${idLocale}/`, locale ? `${locale}/` : '')
- }
- else if (locale) {
- return `${locale}/${id}`
- }
- else {
- return id
- }
-}
-
-/** Extract the slug from a URL. */
-export function urlToSlug(url: URL): string {
- let pathname = url.pathname
- const base = import.meta.env.BASE_URL.replace(/\/$/, '')
- if (pathname.startsWith(base))
- pathname = pathname.replace(base, '')
- const segments = pathname.split('/')
- const htmlExt = '.html'
- if (segments.at(-1) === 'index.html') {
- // Remove trailing `index.html`.
- segments.pop()
- }
- else if (segments.at(-1)?.endsWith(htmlExt)) {
- // Remove trailing `.html`.
- const last = segments.pop()
- if (last)
- segments.push(last.slice(0, -1 * htmlExt.length))
- }
- return segments.filter(Boolean).join('/')
-}
diff --git a/docs/src/utils/validateLogoImports.ts b/docs/src/utils/validateLogoImports.ts
deleted file mode 100644
index a3b5afa..0000000
--- a/docs/src/utils/validateLogoImports.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import config from 'virtual:starlight/user-config'
-import { logos } from 'virtual:starlight/user-images'
-
-/** Check user-imported logo images have resolved correctly. */
-export function validateLogoImports(): void {
- if (config.logo) {
- let err: string | undefined
- if ('src' in config.logo) {
- if (!logos.dark || !logos.light) {
- err = `Could not resolve logo import for "${config.logo.src}" (logo.src)`
- }
- }
- else {
- if (!logos.dark) {
- err = `Could not resolve logo import for "${config.logo.dark}" (logo.dark)`
- }
- else if (!logos.light) {
- err = `Could not resolve logo import for "${config.logo.light}" (logo.light)`
- }
- }
- if (err)
- throw new Error(err)
- }
-}
diff --git a/docs/src/virtual.d.ts b/docs/src/virtual.d.ts
deleted file mode 100644
index bf6ce50..0000000
--- a/docs/src/virtual.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-declare module 'virtual:starlight/user-config' {
- const Config: import('@astrojs/starlight/types').StarlightConfig
- export default Config
-}
-
-declare module 'virtual:starlight/user-images' {
- type ImageMetadata = import('astro').ImageMetadata
- export const logos: {
- dark?: ImageMetadata
- light?: ImageMetadata
- }
-}
-
-declare module 'virtual:starlight/project-context' {
- const ProjectContext: {
- root: string
- srcDir: string
- trailingSlash: import('astro').AstroConfig['trailingSlash']
- build: {
- format: import('astro').AstroConfig['build']['format']
- }
- }
- export default ProjectContext
-}
diff --git a/docs/tailwind.config.mjs b/docs/tailwind.config.mjs
index 892fbbe..0e87975 100644
--- a/docs/tailwind.config.mjs
+++ b/docs/tailwind.config.mjs
@@ -1,5 +1,3 @@
-import starlightPlugin from '@astrojs/starlight-tailwind'
-import colors from 'tailwindcss/colors'
import { fontFamily } from 'tailwindcss/defaultTheme'
/** @type {import('tailwindcss').Config} */
@@ -18,7 +16,6 @@ export default {
},
extend: {
colors: {
- gray: colors.stone,
border: 'hsl(var(--border))',
input: 'hsl(var(--input))',
ring: 'hsl(var(--ring))',
@@ -41,7 +38,6 @@ export default {
foreground: 'hsl(var(--muted-foreground))',
},
accent: {
- ...colors.neutral,
DEFAULT: 'hsl(var(--accent))',
foreground: 'hsl(var(--accent-foreground))',
},
@@ -78,8 +74,5 @@ export default {
},
},
},
- corePlugins: {
- preflight: true,
- },
- plugins: [starlightPlugin()],
+ plugins: [require('tailwindcss-animate')],
}
diff --git a/docs/src/lib/highlighter-theme.json b/docs/theme/dark.json
similarity index 99%
rename from docs/src/lib/highlighter-theme.json
rename to docs/theme/dark.json
index d1a46c3..7a3aa82 100644
--- a/docs/src/lib/highlighter-theme.json
+++ b/docs/theme/dark.json
@@ -1,5 +1,5 @@
{
- "name": "Lambda Studio β Blackout",
+ "name": "blackout",
"semanticHighlighting": true,
"colors": {
"editorLink.activeForeground": "#ca8a0488",
diff --git a/docs/tsconfig.app.json b/docs/tsconfig.app.json
index d5cf814..e9c63db 100644
--- a/docs/tsconfig.app.json
+++ b/docs/tsconfig.app.json
@@ -3,9 +3,11 @@
"compileOnSave": false,
"compilerOptions": {
"target": "es2020",
- "lib": ["es2020", "dom"],
+ "lib": [
+ "es2020",
+ "dom"
+ ],
"experimentalDecorators": true,
- "baseUrl": "./",
"module": "es2020",
"moduleResolution": "node",
"strict": true,
@@ -20,7 +22,15 @@
"outDir": "./dist/out-tsc",
"sourceMap": true,
"forceConsistentCasingInFileNames": true,
- "skipLibCheck": true
+ "skipLibCheck": true,
+ "plugins": [
+ {
+ "name": "@astrojs/ts-plugin"
+ },
+ {
+ "name": "@angular/language-service"
+ }
+ ]
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false,
@@ -30,5 +40,7 @@
"allowJs": false
},
"files": [],
- "include": ["src/**/*.ts"]
+ "include": [
+ "src/**/*.ts"
+ ]
}
diff --git a/docs/tsconfig.json b/docs/tsconfig.json
index c5450d3..09e0072 100644
--- a/docs/tsconfig.json
+++ b/docs/tsconfig.json
@@ -3,7 +3,20 @@
"compilerOptions": {
"baseUrl": ".",
"paths": {
- "@/*": ["src/*"]
- }
+ "@/*": [
+ "src/*"
+ ]
+ },
+ "plugins": [
+ {
+ "name": "@astrojs/ts-plugin"
+ },
+ {
+ "name": "@angular/language-service"
+ }
+ ]
+ },
+ "angularCompilerOptions": {
+ "strictTemplates": true
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c6742b5..bcd5c2d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -118,56 +118,35 @@ importers:
docs:
dependencies:
'@analogjs/astro-angular':
- specifier: ^1.7.2
+ specifier: ^1.8.1
version: 1.8.1(wa22xwtew2vcg253fw45ld34za)
- '@angular-devkit/build-angular':
- specifier: ^18.2.1
- version: 18.2.5(@angular/compiler-cli@18.2.5(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(@angular/platform-server@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))))(@types/node@22.6.1)(chokidar@3.6.0)(karma@6.4.4)(tailwindcss@3.4.13)(typescript@5.5.4)
'@angular/animations':
- specifier: ^18.2.1
+ specifier: ^18.2.5
version: 18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))
'@angular/cdk':
specifier: ^18.2.1
version: 18.2.5(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)
'@angular/common':
- specifier: ^18.2.1
+ specifier: ^18.2.5
version: 18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)
- '@angular/compiler':
- specifier: ^18.2.1
- version: 18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))
- '@angular/compiler-cli':
- specifier: ^18.2.1
- version: 18.2.5(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4)
'@angular/core':
- specifier: ^18.2.1
+ specifier: ^18.2.5
version: 18.2.5(rxjs@7.8.1)(zone.js@0.14.10)
- '@angular/forms':
- specifier: ^18.2.1
- version: 18.2.5(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1)
- '@angular/language-service':
- specifier: ^18.2.1
- version: 18.2.5
- '@angular/platform-browser':
- specifier: ^18.2.1
- version: 18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))
- '@angular/platform-browser-dynamic':
- specifier: ^18.2.1
- version: 18.2.5(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))
- '@angular/platform-server':
- specifier: ^18.2.1
- version: 18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))
'@astrojs/check':
specifier: ^0.9.3
version: 0.9.3(prettier@3.3.3)(typescript@5.5.4)
- '@astrojs/starlight':
- specifier: ^0.26.1
- version: 0.26.4(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))
- '@astrojs/starlight-tailwind':
- specifier: ^2.0.3
- version: 2.0.3(@astrojs/starlight@0.26.4(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)))(@astrojs/tailwind@5.1.1(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))(tailwindcss@3.4.13))(tailwindcss@3.4.13)
+ '@astrojs/mdx':
+ specifier: ^3.1.7
+ version: 3.1.7(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))
+ '@astrojs/sitemap':
+ specifier: ^3.1.6
+ version: 3.1.6
'@astrojs/tailwind':
- specifier: ^5.1.0
+ specifier: ^5.1.1
version: 5.1.1(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))(tailwindcss@3.4.13)
+ '@astrojs/ts-plugin':
+ specifier: ^1.10.2
+ version: 1.10.2
'@ng-icons/core':
specifier: ^29.0.0
version: 29.5.0(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)
@@ -175,20 +154,14 @@ importers:
specifier: ^29.0.0
version: 29.5.0
'@ng-icons/radix-icons':
- specifier: ^29.0.0
+ specifier: ^29.5.0
version: 29.5.0
- '@pagefind/default-ui':
- specifier: ^1.1.0
- version: 1.1.1
'@radix-ng/primitives':
specifier: ^0.10.0
version: 0.10.0(@angular/cdk@18.2.5(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))
astro:
- specifier: ^4.14.5
+ specifier: ^4.15.9
version: 4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)
- astro-auto-import:
- specifier: ^0.4.2
- version: 0.4.2(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))
class-variance-authority:
specifier: ^0.7.0
version: 0.7.0
@@ -201,49 +174,64 @@ importers:
hast-util-select:
specifier: ^6.0.2
version: 6.0.2
- lodash.template:
- specifier: ^4.5.0
- version: 4.5.0
rehype:
specifier: ^13.0.1
version: 13.0.1
rxjs:
specifier: ^7.8.1
version: 7.8.1
- sharp:
- specifier: ^0.32.5
- version: 0.32.6
tailwind-merge:
specifier: ^2.4.0
version: 2.5.2
tailwindcss:
- specifier: ^3.4.4
+ specifier: ^3.4.13
version: 3.4.13
+ tailwindcss-animate:
+ specifier: ^1.0.7
+ version: 1.0.7(tailwindcss@3.4.13)
tslib:
specifier: ^2.7.0
version: 2.7.0
- typescript:
- specifier: ^5.5.3
- version: 5.5.4
unist-util-visit:
specifier: ^5.0.0
version: 5.0.0
- vfile:
- specifier: ^6.0.2
- version: 6.0.3
zone.js:
specifier: ~0.14.10
version: 0.14.10
devDependencies:
+ '@angular-devkit/build-angular':
+ specifier: ^18.2.5
+ version: 18.2.5(@angular/compiler-cli@18.2.5(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(@angular/platform-server@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))))(@types/node@22.6.1)(chokidar@3.6.0)(karma@6.4.4)(tailwindcss@3.4.13)(typescript@5.5.4)
+ '@angular/cli':
+ specifier: ^18.2.6
+ version: 18.2.6(chokidar@3.6.0)
+ '@angular/compiler':
+ specifier: ^18.2.5
+ version: 18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))
+ '@angular/compiler-cli':
+ specifier: ^18.2.5
+ version: 18.2.5(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4)
+ '@angular/language-service':
+ specifier: ^18.2.5
+ version: 18.2.5
+ '@angular/platform-browser':
+ specifier: ^18.2.5
+ version: 18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))
+ '@angular/platform-browser-dynamic':
+ specifier: ^18.2.5
+ version: 18.2.5(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))
+ '@angular/platform-server':
+ specifier: ^18.2.5
+ version: 18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))
+ '@shikijs/transformers':
+ specifier: ^1.20.0
+ version: 1.20.0
'@types/hast':
specifier: ^3.0.4
version: 3.0.4
- '@types/lodash.template':
- specifier: ^4.5.1
- version: 4.5.3
- prettier:
- specifier: ^3.3.3
- version: 3.3.3
+ typescript:
+ specifier: ~5.5.0
+ version: 5.5.4
packages:
@@ -287,6 +275,10 @@ packages:
resolution: {integrity: sha512-c7sVoW85Yqj7IYvNKxtNSGS5I7gWpORorg/xxLZX3OkHWXDrwYbb5LN/2p5/Aytxyb0aXl4o5fFOu6CUwcaLUw==}
engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+ '@angular-devkit/architect@0.1802.6':
+ resolution: {integrity: sha512-oF7cPFdTLxeuvXkK/opSdIxZ1E4LrBbmuytQ/nCoAGOaKBWdqvwagRZ6jVhaI0Gwu48rkcV7Zhesg/ESNnROdw==}
+ engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+
'@angular-devkit/build-angular@18.2.5':
resolution: {integrity: sha512-dIvb0AHoRIMM6tLuG4t6lDDslSAYP77wqytodsN317UzFOuuCPernXbO8NJs+QHxj09nPsem1T5vnvpO2E/PVQ==}
engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
@@ -344,6 +336,19 @@ packages:
chokidar:
optional: true
+ '@angular-devkit/core@18.2.6':
+ resolution: {integrity: sha512-la4CFvs5PcRWSkQ/H7TB5cPZirFVA9GoWk5LzIk8si6VjWBJRm8b3keKJoC9LlNeABRUIR5z0ocYkyQQUhdMfg==}
+ engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+ peerDependencies:
+ chokidar: ^3.5.2
+ peerDependenciesMeta:
+ chokidar:
+ optional: true
+
+ '@angular-devkit/schematics@18.2.6':
+ resolution: {integrity: sha512-uIttrQ2cQ2PWAFFVPeCoNR8xvs7tPJ2i8gzqsIwYdge107xDC6u9CqfgmBqPDSFpWj+IiC2Jwcm8Z4HYKU4+7A==}
+ engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+
'@angular/animations@18.2.5':
resolution: {integrity: sha512-IlXtW/Nj48ZzjHUzH1TykZcSR64ScJx39T3IHnjV2z/bVATzZ36JGoadQHdqpJNKBodYJNgtJCGLCbgAvGWY2g==}
engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0}
@@ -383,6 +388,11 @@ packages:
'@angular/core': ^18.0.0 || ^19.0.0
rxjs: ^6.5.3 || ^7.4.0
+ '@angular/cli@18.2.6':
+ resolution: {integrity: sha512-tdXsnV/w+Rgu8q0zFsLU5L9ImTVqrTol1vppHaQkJ/vuoHy+s8ZEbBqhVrO/ffosNb2xseUybGYvqMS4zkNQjg==}
+ engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+ hasBin: true
+
'@angular/common@18.2.5':
resolution: {integrity: sha512-m+KJrtbFXTE36jP/po6UAMeUR/enQxRHpVGLCRcIcE7VWVH1ZcOvoW1yqh2A6k+KxWXeajlq/Z04nnMhcoxMRw==}
engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0}
@@ -414,15 +424,6 @@ packages:
rxjs: ^6.5.3 || ^7.4.0
zone.js: ~0.14.10
- '@angular/forms@18.2.5':
- resolution: {integrity: sha512-ohKeH+EZCCIyGSiFYlraWLzssGAZc13P92cuYpXB62322PkcA5u0IT72mML9JWGKRqF2zteVsw4koWHVxXM5mA==}
- engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0}
- peerDependencies:
- '@angular/common': 18.2.5
- '@angular/core': 18.2.5
- '@angular/platform-browser': 18.2.5
- rxjs: ^6.5.3 || ^7.4.0
-
'@angular/language-service@18.2.5':
resolution: {integrity: sha512-JE6ck4UWXayiG8ptJJtkrKCjy+5Ftktgsoj4QGdQzMhbpia7Wge5XDj28o+bwEFndRnP6ihRtud63IvOz9aKFQ==}
engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0}
@@ -553,18 +554,6 @@ packages:
'@astrojs/sitemap@3.1.6':
resolution: {integrity: sha512-1Qp2NvAzVImqA6y+LubKi1DVhve/hXXgFvB0szxiipzh7BvtuKe4oJJ9dXSqaubaTkt4nMa6dv6RCCAYeB6xaQ==}
- '@astrojs/starlight-tailwind@2.0.3':
- resolution: {integrity: sha512-ZwbdXS/9rxYlo3tKZoTZoBPUnaaqek02b341dHwOkmMT0lIR2w+8k0mRUGxnRaYtPdMcaL+nYFd8RUa8sjdyRg==}
- peerDependencies:
- '@astrojs/starlight': '>=0.9.0'
- '@astrojs/tailwind': ^5.0.0
- tailwindcss: ^3.3.3
-
- '@astrojs/starlight@0.26.4':
- resolution: {integrity: sha512-ks+GAYkYGZxuCjAJR88HFafY4/K73PtkbYniGaptmdB0yDJY/HwJ/s1vIuig3j63oq9otQfuZFByxWsb4x1urg==}
- peerDependencies:
- astro: ^4.8.6
-
'@astrojs/tailwind@5.1.1':
resolution: {integrity: sha512-LwurA10uIKcGRxQP2R81RvAnBT0WPKzBntXZBF4hrAefDgM5Uumn0nsGr6tdIjSARgYz4X+Cq/Vh78t3bql3yw==}
peerDependencies:
@@ -575,6 +564,9 @@ packages:
resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==}
engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0}
+ '@astrojs/ts-plugin@1.10.2':
+ resolution: {integrity: sha512-Q7EvUh9dU9Ufi6Jfe5JRcisBuremlLZ7jJImUY2/eMe6OVwCXSmETDir/tVwT0K+lnfNiUwju9qHZYX2/5ch0Q==}
+
'@astrojs/yaml2ts@0.2.1':
resolution: {integrity: sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==}
@@ -586,10 +578,6 @@ packages:
resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
engines: {node: '>=6.9.0'}
- '@babel/compat-data@7.24.4':
- resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==}
- engines: {node: '>=6.9.0'}
-
'@babel/compat-data@7.25.4':
resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==}
engines: {node: '>=6.9.0'}
@@ -602,10 +590,6 @@ packages:
resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.24.5':
- resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==}
- engines: {node: '>=6.9.0'}
-
'@babel/generator@7.25.0':
resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==}
engines: {node: '>=6.9.0'}
@@ -663,10 +647,6 @@ packages:
resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-module-imports@7.24.3':
- resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-module-imports@7.24.7':
resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==}
engines: {node: '>=6.9.0'}
@@ -715,10 +695,6 @@ packages:
resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==}
engines: {node: '>=6.9.0'}
- '@babel/helper-split-export-declaration@7.24.5':
- resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-split-export-declaration@7.24.7':
resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==}
engines: {node: '>=6.9.0'}
@@ -739,10 +715,6 @@ packages:
resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-option@7.23.5':
- resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-validator-option@7.24.8':
resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==}
engines: {node: '>=6.9.0'}
@@ -1285,10 +1257,6 @@ packages:
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'}
- '@ctrl/tinycolor@4.1.0':
- resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==}
- engines: {node: '>=14'}
-
'@discoveryjs/json-ext@0.6.1':
resolution: {integrity: sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==}
engines: {node: '>=14.17.0'}
@@ -1919,18 +1887,6 @@ packages:
resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@expressive-code/core@0.35.6':
- resolution: {integrity: sha512-xGqCkmfkgT7lr/rvmfnYdDSeTdCSp1otAHgoFS6wNEeO7wGDPpxdosVqYiIcQ8CfWUABh/pGqWG90q+MV3824A==}
-
- '@expressive-code/plugin-frames@0.35.6':
- resolution: {integrity: sha512-CqjSWjDJ3wabMJZfL9ZAzH5UAGKg7KWsf1TBzr4xvUbZvWoBtLA/TboBML0U1Ls8h/4TRCIvR4VEb8dv5+QG3w==}
-
- '@expressive-code/plugin-shiki@0.35.6':
- resolution: {integrity: sha512-xm+hzi9BsmhkDUGuyAWIydOAWer7Cs9cj8FM0t4HXaQ+qCubprT6wJZSKUxuvFJIUsIOqk1xXFaJzGJGnWtKMg==}
-
- '@expressive-code/plugin-text-markers@0.35.6':
- resolution: {integrity: sha512-/k9eWVZSCs+uEKHR++22Uu6eIbHWEciVHbIuD8frT8DlqTtHYaaiwHPncO6KFWnGDz5i/gL7oyl6XmOi/E6GVg==}
-
'@humanwhocodes/module-importer@1.0.1':
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
@@ -2044,6 +2000,10 @@ packages:
cpu: [x64]
os: [win32]
+ '@inquirer/checkbox@2.5.0':
+ resolution: {integrity: sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==}
+ engines: {node: '>=18'}
+
'@inquirer/confirm@3.1.22':
resolution: {integrity: sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==}
engines: {node: '>=18'}
@@ -2052,10 +2012,46 @@ packages:
resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==}
engines: {node: '>=18'}
+ '@inquirer/editor@2.2.0':
+ resolution: {integrity: sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==}
+ engines: {node: '>=18'}
+
+ '@inquirer/expand@2.3.0':
+ resolution: {integrity: sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==}
+ engines: {node: '>=18'}
+
'@inquirer/figures@1.0.6':
resolution: {integrity: sha512-yfZzps3Cso2UbM7WlxKwZQh2Hs6plrbjs1QnzQDZhK2DgyCo6D8AaHps9olkNcUFlcYERMqU3uJSp1gmy3s/qQ==}
engines: {node: '>=18'}
+ '@inquirer/input@2.3.0':
+ resolution: {integrity: sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==}
+ engines: {node: '>=18'}
+
+ '@inquirer/number@1.1.0':
+ resolution: {integrity: sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==}
+ engines: {node: '>=18'}
+
+ '@inquirer/password@2.2.0':
+ resolution: {integrity: sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==}
+ engines: {node: '>=18'}
+
+ '@inquirer/prompts@5.3.8':
+ resolution: {integrity: sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==}
+ engines: {node: '>=18'}
+
+ '@inquirer/rawlist@2.3.0':
+ resolution: {integrity: sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==}
+ engines: {node: '>=18'}
+
+ '@inquirer/search@1.1.0':
+ resolution: {integrity: sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==}
+ engines: {node: '>=18'}
+
+ '@inquirer/select@2.5.0':
+ resolution: {integrity: sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==}
+ engines: {node: '>=18'}
+
'@inquirer/type@1.5.5':
resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==}
engines: {node: '>=18'}
@@ -2121,6 +2117,12 @@ packages:
'@leichtgewicht/ip-codec@2.0.5':
resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==}
+ '@listr2/prompt-adapter-inquirer@2.0.15':
+ resolution: {integrity: sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ '@inquirer/prompts': '>= 3 < 6'
+
'@lmdb/lmdb-darwin-arm64@3.0.13':
resolution: {integrity: sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==}
cpu: [arm64]
@@ -2217,36 +2219,45 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@oslojs/encoding@1.0.0':
- resolution: {integrity: sha512-dyIB0SdZgMm5BhGwdSp8rMxEFIopLKxDG1vxIBaiogyom6ZqH2aXPb6DEC2WzOOWKdPSq1cxdNeRx2wAn1Z+ZQ==}
+ '@npmcli/agent@2.2.2':
+ resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==}
+ engines: {node: ^16.14.0 || >=18.0.0}
- '@pagefind/darwin-arm64@1.1.1':
- resolution: {integrity: sha512-tZ9tysUmQpFs2EqWG2+E1gc+opDAhSyZSsgKmFzhnWfkK02YHZhvL5XJXEZDqYy3s1FAKhwjTg8XDxneuBlDZQ==}
- cpu: [arm64]
- os: [darwin]
+ '@npmcli/fs@3.1.1':
+ resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- '@pagefind/darwin-x64@1.1.1':
- resolution: {integrity: sha512-ChohLQ39dLwaxQv0jIQB/SavP3TM5K5ENfDTqIdzLkmfs3+JlzSDyQKcJFjTHYcCzQOZVeieeGq8PdqvLJxJxQ==}
- cpu: [x64]
- os: [darwin]
+ '@npmcli/git@5.0.8':
+ resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@npmcli/installed-package-contents@2.1.0':
+ resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ hasBin: true
- '@pagefind/default-ui@1.1.1':
- resolution: {integrity: sha512-ZM0zDatWDnac/VGHhQCiM7UgA4ca8jpjA+VfuTJyHJBaxGqZMQnm4WoTz9E0KFcue1Bh9kxpu7uWFZfwpZZk0A==}
+ '@npmcli/node-gyp@3.0.0':
+ resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- '@pagefind/linux-arm64@1.1.1':
- resolution: {integrity: sha512-H5P6wDoCoAbdsWp0Zx0DxnLUrwTGWGLu/VI1rcN2CyFdY2EGSvPQsbGBMrseKRNuIrJDFtxHHHyjZ7UbzaM9EA==}
- cpu: [arm64]
- os: [linux]
+ '@npmcli/package-json@5.2.1':
+ resolution: {integrity: sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
- '@pagefind/linux-x64@1.1.1':
- resolution: {integrity: sha512-yJs7tTYbL2MI3HT+ngs9E1BfUbY9M4/YzA0yEM5xBo4Xl8Yu8Qg2xZTOQ1/F6gwvMrjCUFo8EoACs6LRDhtMrQ==}
- cpu: [x64]
- os: [linux]
+ '@npmcli/promise-spawn@7.0.2':
+ resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
- '@pagefind/windows-x64@1.1.1':
- resolution: {integrity: sha512-b7/qPqgIl+lMzkQ8fJt51SfguB396xbIIR+VZ3YrL2tLuyifDJ1wL5mEm+ddmHxJ2Fki340paPcDan9en5OmAw==}
- cpu: [x64]
- os: [win32]
+ '@npmcli/redact@2.0.1':
+ resolution: {integrity: sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@npmcli/run-script@8.1.0':
+ resolution: {integrity: sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@oslojs/encoding@1.0.0':
+ resolution: {integrity: sha512-dyIB0SdZgMm5BhGwdSp8rMxEFIopLKxDG1vxIBaiogyom6ZqH2aXPb6DEC2WzOOWKdPSq1cxdNeRx2wAn1Z+ZQ==}
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
@@ -2476,21 +2487,52 @@ packages:
cpu: [x64]
os: [win32]
- '@shikijs/core@1.18.0':
- resolution: {integrity: sha512-VK4BNVCd2leY62Nm2JjyxtRLkyrZT/tv104O81eyaCjHq4Adceq2uJVFJJAIof6lT1mBwZrEo2qT/T+grv3MQQ==}
+ '@schematics/angular@18.2.6':
+ resolution: {integrity: sha512-Y988EoOEQDLEyHu3414T6AeVUyx21AexBHQNbUNQkK8cxlxyB6m1eH1cx6vFgLRFUTsLVv+C6Ln/ICNTfLcG4A==}
+ engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'}
+
+ '@shikijs/core@1.20.0':
+ resolution: {integrity: sha512-KlO3iE0THzSdYkzDFugt8SHe6FR3qNYTkmpbdW1d6xo8juQkMjybxAw/cBi2npL2eb2F4PbbnSs5Z9tDusfvyg==}
- '@shikijs/engine-javascript@1.18.0':
- resolution: {integrity: sha512-qoP/aO/ATNwYAUw1YMdaip/YVEstMZEgrwhePm83Ll9OeQPuxDZd48szZR8oSQNQBT8m8UlWxZv8EA3lFuyI5A==}
+ '@shikijs/engine-javascript@1.20.0':
+ resolution: {integrity: sha512-ZUMo758uduM0Tfgzi/kd+0IKMbNdumCxxWjY36uf1DIs2Qyg9HIq3vA1Wfa/vc6HE7tHWFpANRi3mv7UzJ68MQ==}
- '@shikijs/engine-oniguruma@1.18.0':
- resolution: {integrity: sha512-B9u0ZKI/cud+TcmF8Chyh+R4V5qQVvyDOqXC2l2a4x73PBSBc6sZ0JRAX3eqyJswqir6ktwApUUGBYePdKnMJg==}
+ '@shikijs/engine-oniguruma@1.20.0':
+ resolution: {integrity: sha512-MQ40WkVTZk7by33ces4PGK6XNFSo6PYvKTSAr2kTWdRNhFmOcnaX+1XzvFwB26eySXR7U74t91czZ1qJkEgxTA==}
- '@shikijs/types@1.18.0':
- resolution: {integrity: sha512-O9N36UEaGGrxv1yUrN2nye7gDLG5Uq0/c1LyfmxsvzNPqlHzWo9DI0A4+fhW2y3bGKuQu/fwS7EPdKJJCowcVA==}
+ '@shikijs/transformers@1.20.0':
+ resolution: {integrity: sha512-TNS5KAErbNIOm1QqabuVaU77NOs5xWfpjpnqME059SA8yddr3mN5ZNAeCI+4QAAnNqZd8RKXjp+9hw66f5ak/A==}
+
+ '@shikijs/types@1.20.0':
+ resolution: {integrity: sha512-y+EaDvU2K6/GaXOKXxJaGnr1XtmZMF7MfS0pSEDdxEq66gCtKsLwQvVwoQFdp7R7dLlNAro3ijEE19sMZ0pzqg==}
'@shikijs/vscode-textmate@9.2.2':
resolution: {integrity: sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==}
+ '@sigstore/bundle@2.3.2':
+ resolution: {integrity: sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@sigstore/core@1.1.0':
+ resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@sigstore/protobuf-specs@0.3.2':
+ resolution: {integrity: sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@sigstore/sign@2.3.2':
+ resolution: {integrity: sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@sigstore/tuf@2.3.4':
+ resolution: {integrity: sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@sigstore/verify@1.2.1':
+ resolution: {integrity: sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
'@sindresorhus/merge-streams@2.3.0':
resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
engines: {node: '>=18'}
@@ -2514,6 +2556,14 @@ packages:
'@ts-morph/common@0.22.0':
resolution: {integrity: sha512-HqNBuV/oIlMKdkLshXd1zKBqNQCsuPEsgQOkfFQ/eUKjRlwndXW1AjN9LVkBEIukm00gGXSRmfkl0Wv5VXLnlw==}
+ '@tufjs/canonical-json@2.0.0':
+ resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ '@tufjs/models@2.0.1':
+ resolution: {integrity: sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
'@types/acorn@4.0.6':
resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
@@ -2625,9 +2675,6 @@ packages:
'@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
- '@types/node@18.19.50':
- resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==}
-
'@types/node@22.5.4':
resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==}
@@ -2877,6 +2924,13 @@ packages:
'@xtuc/long@4.2.2':
resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+ '@yarnpkg/lockfile@1.1.0':
+ resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==}
+
+ abbrev@2.0.0:
+ resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
accepts@1.3.8:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
@@ -2904,6 +2958,10 @@ packages:
resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==}
engines: {node: '>= 14'}
+ aggregate-error@3.1.0:
+ resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
+ engines: {node: '>=8'}
+
ajv-formats@2.1.1:
resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
peerDependencies:
@@ -3018,21 +3076,10 @@ packages:
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
hasBin: true
- astro-auto-import@0.4.2:
- resolution: {integrity: sha512-ZgWZQ58+EhbEym1+aoUnNyECOy0wsG5uRUs+rVp/7BzHtj1V76J2qkhjaTWLplgNb+8WrzhvTQNxytmXRCW+Ow==}
- engines: {node: '>=16.0.0'}
- peerDependencies:
- astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta
-
astro-eslint-parser@1.0.3:
resolution: {integrity: sha512-AGsGgcg7Jg9UpyCDgvl/EkdYpe1oMkFdmC2Zl+KWneoieLCtQIFjmcY8yt41gcNx4mby0w8BBJQcBmPuf8UAoQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- astro-expressive-code@0.35.6:
- resolution: {integrity: sha512-1U4KrvFuodaCV3z4I1bIR16SdhQlPkolGsYTtiANxPZUVv/KitGSCTjzksrkPonn1XuwVqvnwmUUVzTLWngnBA==}
- peerDependencies:
- astro: ^4.0.0-beta || ^3.3.0
-
astro@4.15.9:
resolution: {integrity: sha512-51oXq9qrZ5OPWYmEXt1kGrvWmVeWsx28SgBTzi2XW6iwcnW/wC5ONm6ol6qBGSCF93tQvZplXvuzpaw1injECA==}
engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
@@ -3055,9 +3102,6 @@ packages:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
- b4a@1.6.6:
- resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==}
-
babel-loader@9.1.3:
resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
engines: {node: '>= 14.15.0'}
@@ -3086,21 +3130,6 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
- bare-events@2.4.2:
- resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==}
-
- bare-fs@2.3.5:
- resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==}
-
- bare-os@2.4.4:
- resolution: {integrity: sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==}
-
- bare-path@2.1.3:
- resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==}
-
- bare-stream@2.3.0:
- resolution: {integrity: sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==}
-
base-64@1.0.0:
resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==}
@@ -3117,9 +3146,6 @@ packages:
bcp-47-match@2.0.3:
resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==}
- bcp-47@2.1.0:
- resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==}
-
big.js@5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
@@ -3157,11 +3183,6 @@ packages:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
- browserslist@4.23.0:
- resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
-
browserslist@4.23.3:
resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
@@ -3209,6 +3230,10 @@ packages:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
+ cacache@18.0.4:
+ resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
call-bind@1.0.7:
resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
engines: {node: '>= 0.4'}
@@ -3231,9 +3256,6 @@ packages:
caniuse-api@3.0.0:
resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
- caniuse-lite@1.0.30001620:
- resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==}
-
caniuse-lite@1.0.30001663:
resolution: {integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==}
@@ -3281,6 +3303,9 @@ packages:
character-reference-invalid@2.0.1:
resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
+ chardet@0.7.0:
+ resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+
check-error@2.1.1:
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
engines: {node: '>= 16'}
@@ -3289,9 +3314,6 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
- chownr@1.1.4:
- resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
-
chownr@2.0.0:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
engines: {node: '>=10'}
@@ -3314,6 +3336,10 @@ packages:
resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
engines: {node: '>=4'}
+ clean-stack@2.2.0:
+ resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
+ engines: {node: '>=6'}
+
cli-boxes@3.0.0:
resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
engines: {node: '>=10'}
@@ -3637,18 +3663,10 @@ packages:
decode-named-character-reference@1.0.2:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
- decompress-response@6.0.0:
- resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
- engines: {node: '>=10'}
-
deep-eql@5.0.2:
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
engines: {node: '>=6'}
- deep-extend@0.6.0:
- resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
- engines: {node: '>=4.0.0'}
-
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -3777,9 +3795,6 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- electron-to-chromium@1.4.774:
- resolution: {integrity: sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==}
-
electron-to-chromium@1.5.27:
resolution: {integrity: sha512-o37j1vZqCoEgBuWWXLHQgTN/KDKe7zwpiY5CPeq2RvUqOyJw9xnrULzZAEVQ5p4h+zjMk7hgtOoPdnLxr7m/jw==}
@@ -3807,8 +3822,8 @@ packages:
resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
engines: {node: '>= 0.8'}
- end-of-stream@1.4.4:
- resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ encoding@0.1.13:
+ resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
engine.io-parser@5.2.3:
resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
@@ -3842,6 +3857,9 @@ packages:
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
engines: {node: '>=18'}
+ err-code@2.0.3:
+ resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
+
errno@0.1.8:
resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
hasBin: true
@@ -4160,17 +4178,13 @@ packages:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
- expand-template@2.0.3:
- resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
- engines: {node: '>=6'}
+ exponential-backoff@3.1.1:
+ resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
express@4.21.0:
resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==}
engines: {node: '>= 0.10.0'}
- expressive-code@0.35.6:
- resolution: {integrity: sha512-+mx+TPTbMqgo0mL92Xh9QgjW0kSQIsEivMgEcOnaqKqL7qCw8Vkqc5Rg/di7ZYw4aMUSr74VTc+w8GQWu05j1g==}
-
extend-shallow@2.0.1:
resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
engines: {node: '>=0.10.0'}
@@ -4178,12 +4192,13 @@ packages:
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+ external-editor@3.1.0:
+ resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
+ engines: {node: '>=4'}
+
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- fast-fifo@1.3.2:
- resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
-
fast-glob@3.3.2:
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
@@ -4290,9 +4305,6 @@ packages:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
- fs-constants@1.0.0:
- resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
-
fs-extra@11.2.0:
resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
engines: {node: '>=14.14'}
@@ -4305,6 +4317,10 @@ packages:
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
engines: {node: '>= 8'}
+ fs-minipass@3.0.3:
+ resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
@@ -4350,9 +4366,6 @@ packages:
resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==}
hasBin: true
- github-from-package@0.0.0:
- resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
-
github-slugger@2.0.0:
resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
@@ -4447,12 +4460,6 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
- hast-util-embedded@3.0.0:
- resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==}
-
- hast-util-format@1.1.0:
- resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==}
-
hast-util-from-html@2.0.3:
resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
@@ -4462,21 +4469,12 @@ packages:
hast-util-has-property@3.0.0:
resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==}
- hast-util-is-body-ok-link@3.0.0:
- resolution: {integrity: sha512-VFHY5bo2nY8HiV6nir2ynmEB1XkxzuUffhEGeVx7orbu/B1KaGyeGgMZldvMVx5xWrDlLLG/kQ6YkJAMkBEx0w==}
-
hast-util-is-element@3.0.0:
resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
- hast-util-minify-whitespace@1.0.0:
- resolution: {integrity: sha512-gD1m4YJSIk62ij32TlhFNqsC3dOQvpA4QAhyZOZFAT4u8LfEfB6N+F0V9oXQGBWXoqrs0h9wQRKa8RCeo8j61g==}
-
hast-util-parse-selector@4.0.0:
resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
- hast-util-phrasing@3.0.1:
- resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==}
-
hast-util-raw@9.0.4:
resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==}
@@ -4511,15 +4509,16 @@ packages:
hastscript@8.0.0:
resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
- hastscript@9.0.0:
- resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==}
-
hookable@5.5.3:
resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
hosted-git-info@2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+ hosted-git-info@7.0.2:
+ resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
hpack.js@2.1.6:
resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
@@ -4532,9 +4531,6 @@ packages:
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
- html-whitespace-sensitive-tag-names@3.0.0:
- resolution: {integrity: sha512-KlClZ3/Qy5UgvpvVvDomGhnQhNWH5INE8GwvSIQ9CWt1K0zbbXrl7eN5bWaafOZgtmO3jMPwUqmrmEwinhPq1w==}
-
htmlparser2@8.0.2:
resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
@@ -4555,6 +4551,10 @@ packages:
http-parser-js@0.5.8:
resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
+ http-proxy-agent@7.0.2:
+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
+ engines: {node: '>= 14'}
+
http-proxy-middleware@2.0.6:
resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
engines: {node: '>=12.0.0'}
@@ -4613,6 +4613,10 @@ packages:
ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ ignore-walk@6.0.5:
+ resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
ignore@5.3.1:
resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
engines: {node: '>= 4'}
@@ -4650,8 +4654,9 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- ini@1.3.8:
- resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+ ini@4.1.3:
+ resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
inline-style-parser@0.1.1:
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
@@ -4659,6 +4664,10 @@ packages:
inline-style-parser@0.2.4:
resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
+ ip-address@9.0.5:
+ resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
+ engines: {node: '>= 12'}
+
ipaddr.js@1.9.1:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
engines: {node: '>= 0.10'}
@@ -4750,6 +4759,9 @@ packages:
resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}
engines: {node: '>=12'}
+ is-lambda@1.0.1:
+ resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
+
is-module@1.0.0:
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
@@ -4820,6 +4832,10 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ isexe@3.1.1:
+ resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
+ engines: {node: '>=16'}
+
isobject@3.0.1:
resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
engines: {node: '>=0.10.0'}
@@ -4854,6 +4870,9 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
+ jsbn@1.1.0:
+ resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
+
jsdoc-type-pratt-parser@4.0.0:
resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==}
engines: {node: '>=12.0.0'}
@@ -4882,6 +4901,10 @@ packages:
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+ json-parse-even-better-errors@3.0.2:
+ resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
@@ -4912,6 +4935,10 @@ packages:
jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ jsonparse@1.3.1:
+ resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
+ engines: {'0': node >= 0.2.0}
+
karma-source-map-support@1.4.0:
resolution: {integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==}
@@ -5093,6 +5120,10 @@ packages:
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
engines: {node: '>=6'}
+ make-fetch-happen@13.0.1:
+ resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
markdown-extensions@2.0.0:
resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
engines: {node: '>=16'}
@@ -5103,9 +5134,6 @@ packages:
mdast-util-definitions@6.0.0:
resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==}
- mdast-util-directive@3.0.0:
- resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
-
mdast-util-find-and-replace@3.0.1:
resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
@@ -5191,9 +5219,6 @@ packages:
micromark-core-commonmark@2.0.1:
resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==}
- micromark-extension-directive@3.0.2:
- resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==}
-
micromark-extension-gfm-autolink-literal@2.1.0:
resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
@@ -5337,10 +5362,6 @@ packages:
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
engines: {node: '>=18'}
- mimic-response@3.1.0:
- resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
- engines: {node: '>=10'}
-
min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
@@ -5372,6 +5393,26 @@ packages:
minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ minipass-collect@2.0.1:
+ resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minipass-fetch@3.0.5:
+ resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ minipass-flush@1.0.5:
+ resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
+ engines: {node: '>= 8'}
+
+ minipass-pipeline@1.2.4:
+ resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
+ engines: {node: '>=8'}
+
+ minipass-sized@1.0.3:
+ resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
+ engines: {node: '>=8'}
+
minipass@3.3.6:
resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
engines: {node: '>=8'}
@@ -5388,9 +5429,6 @@ packages:
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
engines: {node: '>= 8'}
- mkdirp-classic@0.5.3:
- resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
-
mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
@@ -5471,9 +5509,6 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- napi-build-utils@1.0.2:
- resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
-
natural-compare-lite@1.4.0:
resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
@@ -5503,10 +5538,6 @@ packages:
nlcst-to-string@4.0.0:
resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==}
- node-abi@3.68.0:
- resolution: {integrity: sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==}
- engines: {node: '>=10'}
-
node-addon-api@3.2.1:
resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==}
@@ -5536,15 +5567,26 @@ packages:
resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==}
hasBin: true
- node-releases@2.0.14:
- resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
+ node-gyp@10.2.0:
+ resolution: {integrity: sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+ hasBin: true
node-releases@2.0.18:
resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
+ nopt@7.2.1:
+ resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ hasBin: true
+
normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+ normalize-package-data@6.0.2:
+ resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
@@ -5556,6 +5598,34 @@ packages:
not@0.1.0:
resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==}
+ npm-bundled@3.0.1:
+ resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ npm-install-checks@6.3.0:
+ resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ npm-normalize-package-bin@3.0.1:
+ resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ npm-package-arg@11.0.3:
+ resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ npm-packlist@8.0.2:
+ resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ npm-pick-manifest@9.1.0:
+ resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ npm-registry-fetch@17.1.0:
+ resolution: {integrity: sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
npm-run-path@4.0.1:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
@@ -5643,6 +5713,10 @@ packages:
ordered-binary@1.5.1:
resolution: {integrity: sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==}
+ os-tmpdir@1.0.2:
+ resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+ engines: {node: '>=0.10.0'}
+
p-limit@2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
@@ -5671,6 +5745,10 @@ packages:
resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ p-map@4.0.0:
+ resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
+ engines: {node: '>=10'}
+
p-queue@8.0.1:
resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==}
engines: {node: '>=18'}
@@ -5693,8 +5771,9 @@ packages:
package-manager-detector@0.2.0:
resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==}
- pagefind@1.1.1:
- resolution: {integrity: sha512-U2YR0dQN5B2fbIXrLtt/UXNS0yWSSYfePaad1KcBPTi0p+zRtsVjwmoPaMQgTks5DnHNbmDxyJUL5TGaLljK3A==}
+ pacote@18.0.6:
+ resolution: {integrity: sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==}
+ engines: {node: ^16.14.0 || >=18.0.0}
hasBin: true
parent-module@1.0.1:
@@ -6091,11 +6170,6 @@ packages:
resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
engines: {node: ^10 || ^12 || >=14}
- prebuild-install@7.1.2:
- resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==}
- engines: {node: '>=10'}
- hasBin: true
-
preferred-pm@4.0.0:
resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==}
engines: {node: '>=18.12'}
@@ -6122,9 +6196,25 @@ packages:
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
engines: {node: '>=6'}
+ proc-log@4.2.0:
+ resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ promise-inflight@1.0.1:
+ resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
+ peerDependencies:
+ bluebird: '*'
+ peerDependenciesMeta:
+ bluebird:
+ optional: true
+
+ promise-retry@2.0.1:
+ resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
+ engines: {node: '>=10'}
+
prompts@2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
@@ -6139,9 +6229,6 @@ packages:
prr@1.0.1:
resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
- pump@3.0.2:
- resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==}
-
punycode@1.4.1:
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
@@ -6160,9 +6247,6 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
- queue-tick@1.0.1:
- resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
-
randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
@@ -6177,10 +6261,6 @@ packages:
rc9@2.1.2:
resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==}
- rc@1.2.8:
- resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
- hasBin: true
-
read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
@@ -6249,12 +6329,6 @@ packages:
resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
hasBin: true
- rehype-expressive-code@0.35.6:
- resolution: {integrity: sha512-pPdE+pRcRw01kxMOwHQjuRxgwlblZt5+wAc3w2aPGgmcnn57wYjn07iKO7zaznDxYVxMYVvYlnL+R3vWFQS4Gw==}
-
- rehype-format@5.0.1:
- resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==}
-
rehype-parse@9.0.0:
resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==}
@@ -6267,9 +6341,6 @@ packages:
rehype@13.0.1:
resolution: {integrity: sha512-AcSLS2mItY+0fYu9xKxOu1LhUZeBZZBx8//5HKzF+0XP+eP8+6a5MXn2+DW2kfXR6Dtp1FEXMVrjyKAcvcU8vg==}
- remark-directive@3.0.0:
- resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
-
remark-gfm@4.0.0:
resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
@@ -6345,6 +6416,10 @@ packages:
retext@9.0.0:
resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==}
+ retry@0.12.0:
+ resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
+ engines: {node: '>= 4'}
+
retry@0.13.1:
resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
engines: {node: '>= 4'}
@@ -6503,10 +6578,6 @@ packages:
resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
engines: {node: '>=8'}
- sharp@0.32.6:
- resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==}
- engines: {node: '>=14.15.0'}
-
sharp@0.33.5:
resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@@ -6522,8 +6593,8 @@ packages:
shell-quote@1.8.1:
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
- shiki@1.18.0:
- resolution: {integrity: sha512-8jo7tOXr96h9PBQmOHVrltnETn1honZZY76YA79MHheGQg55jBvbm9dtU+MI5pjC5NJCFuA6rvVTLVeSW5cE4A==}
+ shiki@1.20.0:
+ resolution: {integrity: sha512-MZJJ1PCFsQB1Piq+25wiz0a75yUv8Q3/fzy7SzRx5ONdjdtGdyiKwYn8vb/FnK5kjS0voWGnPpjG16POauUR+g==}
side-channel@1.0.6:
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
@@ -6539,11 +6610,9 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
- simple-concat@1.0.1:
- resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
-
- simple-get@4.0.1:
- resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
+ sigstore@2.3.1:
+ resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==}
+ engines: {node: ^16.14.0 || >=18.0.0}
simple-git-hooks@2.11.1:
resolution: {integrity: sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==}
@@ -6583,6 +6652,10 @@ packages:
resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
engines: {node: '>=18'}
+ smart-buffer@4.2.0:
+ resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
+ engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
+
socket.io-adapter@2.5.5:
resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==}
@@ -6597,6 +6670,14 @@ packages:
sockjs@0.3.24:
resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
+ socks-proxy-agent@8.0.4:
+ resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==}
+ engines: {node: '>= 14'}
+
+ socks@2.8.3:
+ resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==}
+ engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
+
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
@@ -6646,6 +6727,13 @@ packages:
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ sprintf-js@1.1.3:
+ resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+
+ ssri@10.0.6:
+ resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
stable-hash@0.0.4:
resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==}
@@ -6678,9 +6766,6 @@ packages:
resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==}
engines: {node: '>=8.0'}
- streamx@2.20.1:
- resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==}
-
string-argv@0.3.2:
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
engines: {node: '>=0.6.19'}
@@ -6734,10 +6819,6 @@ packages:
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
engines: {node: '>=8'}
- strip-json-comments@2.0.1:
- resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
- engines: {node: '>=0.10.0'}
-
strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
@@ -6780,6 +6861,10 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
+ symbol-observable@4.0.0:
+ resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==}
+ engines: {node: '>=0.10'}
+
synckit@0.6.2:
resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==}
engines: {node: '>=12.20'}
@@ -6791,6 +6876,11 @@ packages:
tailwind-merge@2.5.2:
resolution: {integrity: sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==}
+ tailwindcss-animate@1.0.7:
+ resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
+ peerDependencies:
+ tailwindcss: '>=3.0.0 || insiders'
+
tailwindcss@3.4.13:
resolution: {integrity: sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==}
engines: {node: '>=14.0.0'}
@@ -6800,19 +6890,6 @@ packages:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
- tar-fs@2.1.1:
- resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
-
- tar-fs@3.0.6:
- resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==}
-
- tar-stream@2.2.0:
- resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
- engines: {node: '>=6'}
-
- tar-stream@3.1.7:
- resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
-
tar@6.2.1:
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
engines: {node: '>=10'}
@@ -6838,9 +6915,6 @@ packages:
engines: {node: '>=10'}
hasBin: true
- text-decoder@1.2.0:
- resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==}
-
text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
@@ -6878,6 +6952,10 @@ packages:
resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==}
engines: {node: '>=14.0.0'}
+ tmp@0.0.33:
+ resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
+ engines: {node: '>=0.6.0'}
+
tmp@0.2.3:
resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==}
engines: {node: '>=14.14'}
@@ -6954,8 +7032,9 @@ packages:
engines: {node: '>=18.0.0'}
hasBin: true
- tunnel-agent@0.6.0:
- resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
+ tuf-js@2.2.1:
+ resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==}
+ engines: {node: ^16.14.0 || >=18.0.0}
type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
@@ -7019,9 +7098,6 @@ packages:
typescript:
optional: true
- undici-types@5.26.5:
- resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
-
undici-types@6.19.8:
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
@@ -7048,6 +7124,14 @@ packages:
unified@11.0.5:
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
+ unique-filename@3.0.0:
+ resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ unique-slug@4.0.0:
+ resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
unist-util-find-after@5.0.0:
resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==}
@@ -7097,12 +7181,6 @@ packages:
resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==}
hasBin: true
- update-browserslist-db@1.0.16:
- resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==}
- hasBin: true
- peerDependencies:
- browserslist: '>= 4.21.0'
-
update-browserslist-db@1.1.0:
resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==}
hasBin: true
@@ -7126,6 +7204,10 @@ packages:
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+ validate-npm-package-name@5.0.1:
+ resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
@@ -7449,6 +7531,11 @@ packages:
engines: {node: '>= 8'}
hasBin: true
+ which@4.0.0:
+ resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==}
+ engines: {node: ^16.13.0 || >=18.0.0}
+ hasBin: true
+
why-is-node-running@2.3.0:
resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
engines: {node: '>=8'}
@@ -7637,6 +7724,13 @@ snapshots:
transitivePeerDependencies:
- chokidar
+ '@angular-devkit/architect@0.1802.6(chokidar@3.6.0)':
+ dependencies:
+ '@angular-devkit/core': 18.2.6(chokidar@3.6.0)
+ rxjs: 7.8.1
+ transitivePeerDependencies:
+ - chokidar
+
'@angular-devkit/build-angular@18.2.5(@angular/compiler-cli@18.2.5(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(@angular/platform-server@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))))(@types/node@22.6.1)(chokidar@3.6.0)(karma@6.4.4)(tailwindcss@3.4.13)(typescript@5.5.4)':
dependencies:
'@ampproject/remapping': 2.3.0
@@ -7660,7 +7754,7 @@ snapshots:
ansi-colors: 4.1.3
autoprefixer: 10.4.20(postcss@8.4.41)
babel-loader: 9.1.3(@babel/core@7.25.2)(webpack@5.94.0(esbuild@0.23.0))
- browserslist: 4.23.0
+ browserslist: 4.23.3
copy-webpack-plugin: 12.0.2(webpack@5.94.0(esbuild@0.23.0))
critters: 0.0.24
css-loader: 7.1.2(webpack@5.94.0(esbuild@0.23.0))
@@ -7746,6 +7840,27 @@ snapshots:
optionalDependencies:
chokidar: 3.6.0
+ '@angular-devkit/core@18.2.6(chokidar@3.6.0)':
+ dependencies:
+ ajv: 8.17.1
+ ajv-formats: 3.0.1(ajv@8.17.1)
+ jsonc-parser: 3.3.1
+ picomatch: 4.0.2
+ rxjs: 7.8.1
+ source-map: 0.7.4
+ optionalDependencies:
+ chokidar: 3.6.0
+
+ '@angular-devkit/schematics@18.2.6(chokidar@3.6.0)':
+ dependencies:
+ '@angular-devkit/core': 18.2.6(chokidar@3.6.0)
+ jsonc-parser: 3.3.1
+ magic-string: 0.30.11
+ ora: 5.4.1
+ rxjs: 7.8.1
+ transitivePeerDependencies:
+ - chokidar
+
'@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))':
dependencies:
'@angular/core': 18.2.5(rxjs@7.8.1)(zone.js@0.14.10)
@@ -7762,7 +7877,7 @@ snapshots:
'@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2)
'@inquirer/confirm': 3.1.22
'@vitejs/plugin-basic-ssl': 1.1.0(vite@5.4.6(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6))
- browserslist: 4.23.0
+ browserslist: 4.23.3
critters: 0.0.24
esbuild: 0.23.0
fast-glob: 3.3.2
@@ -7806,7 +7921,7 @@ snapshots:
'@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2)
'@inquirer/confirm': 3.1.22
'@vitejs/plugin-basic-ssl': 1.1.0(vite@5.4.6(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6))
- browserslist: 4.23.0
+ browserslist: 4.23.3
critters: 0.0.24
esbuild: 0.23.0
fast-glob: 3.3.2
@@ -7849,6 +7964,30 @@ snapshots:
optionalDependencies:
parse5: 7.1.2
+ '@angular/cli@18.2.6(chokidar@3.6.0)':
+ dependencies:
+ '@angular-devkit/architect': 0.1802.6(chokidar@3.6.0)
+ '@angular-devkit/core': 18.2.6(chokidar@3.6.0)
+ '@angular-devkit/schematics': 18.2.6(chokidar@3.6.0)
+ '@inquirer/prompts': 5.3.8
+ '@listr2/prompt-adapter-inquirer': 2.0.15(@inquirer/prompts@5.3.8)
+ '@schematics/angular': 18.2.6(chokidar@3.6.0)
+ '@yarnpkg/lockfile': 1.1.0
+ ini: 4.1.3
+ jsonc-parser: 3.3.1
+ listr2: 8.2.4
+ npm-package-arg: 11.0.3
+ npm-pick-manifest: 9.1.0
+ pacote: 18.0.6
+ resolve: 1.22.8
+ semver: 7.6.3
+ symbol-observable: 4.0.0
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - bluebird
+ - chokidar
+ - supports-color
+
'@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)':
dependencies:
'@angular/core': 18.2.5(rxjs@7.8.1)(zone.js@0.14.10)
@@ -7859,7 +7998,7 @@ snapshots:
dependencies:
'@angular/compiler': 18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))
'@babel/core': 7.25.2
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/sourcemap-codec': 1.5.0
chokidar: 3.6.0
convert-source-map: 1.9.0
reflect-metadata: 0.2.2
@@ -7882,14 +8021,6 @@ snapshots:
tslib: 2.7.0
zone.js: 0.14.10
- '@angular/forms@18.2.5(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1)':
- dependencies:
- '@angular/common': 18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)
- '@angular/core': 18.2.5(rxjs@7.8.1)(zone.js@0.14.10)
- '@angular/platform-browser': 18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))
- rxjs: 7.8.1
- tslib: 2.7.0
-
'@angular/language-service@18.2.5': {}
'@angular/platform-browser-dynamic@18.2.5(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.5(@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)))':
@@ -8032,7 +8163,7 @@ snapshots:
remark-parse: 11.0.0
remark-rehype: 11.1.1
remark-smartypants: 3.0.2
- shiki: 1.18.0
+ shiki: 1.20.0
unified: 11.0.5
unist-util-remove-position: 5.0.0
unist-util-visit: 5.0.0
@@ -8071,39 +8202,6 @@ snapshots:
stream-replace-string: 2.0.0
zod: 3.23.8
- '@astrojs/starlight-tailwind@2.0.3(@astrojs/starlight@0.26.4(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)))(@astrojs/tailwind@5.1.1(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))(tailwindcss@3.4.13))(tailwindcss@3.4.13)':
- dependencies:
- '@astrojs/starlight': 0.26.4(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))
- '@astrojs/tailwind': 5.1.1(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))(tailwindcss@3.4.13)
- tailwindcss: 3.4.13
-
- '@astrojs/starlight@0.26.4(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))':
- dependencies:
- '@astrojs/mdx': 3.1.7(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))
- '@astrojs/sitemap': 3.1.6
- '@pagefind/default-ui': 1.1.1
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- astro: 4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)
- astro-expressive-code: 0.35.6(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))
- bcp-47: 2.1.0
- hast-util-from-html: 2.0.3
- hast-util-select: 6.0.2
- hast-util-to-string: 3.0.0
- hastscript: 9.0.0
- mdast-util-directive: 3.0.0
- mdast-util-to-markdown: 2.1.0
- mdast-util-to-string: 4.0.0
- pagefind: 1.1.1
- rehype: 13.0.1
- rehype-format: 5.0.1
- remark-directive: 3.0.0
- unified: 11.0.5
- unist-util-visit: 5.0.0
- vfile: 6.0.3
- transitivePeerDependencies:
- - supports-color
-
'@astrojs/tailwind@5.1.1(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))(tailwindcss@3.4.13)':
dependencies:
astro: 4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)
@@ -8126,6 +8224,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@astrojs/ts-plugin@1.10.2':
+ dependencies:
+ '@astrojs/compiler': 2.10.3
+ '@astrojs/yaml2ts': 0.2.1
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@volar/language-core': 2.4.5
+ '@volar/typescript': 2.4.5
+ semver: 7.6.3
+ vscode-languageserver-textdocument: 1.0.12
+
'@astrojs/yaml2ts@0.2.1':
dependencies:
yaml: 2.5.0
@@ -8140,15 +8248,13 @@ snapshots:
'@babel/highlight': 7.24.7
picocolors: 1.1.0
- '@babel/compat-data@7.24.4': {}
-
'@babel/compat-data@7.25.4': {}
'@babel/core@7.24.5':
dependencies:
'@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.24.2
- '@babel/generator': 7.24.5
+ '@babel/generator': 7.25.6
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5)
'@babel/helpers': 7.24.5
@@ -8168,7 +8274,7 @@ snapshots:
dependencies:
'@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.24.7
- '@babel/generator': 7.25.0
+ '@babel/generator': 7.25.6
'@babel/helper-compilation-targets': 7.25.2
'@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
'@babel/helpers': 7.25.6
@@ -8177,20 +8283,13 @@ snapshots:
'@babel/traverse': 7.25.6
'@babel/types': 7.25.6
convert-source-map: 2.0.0
- debug: 4.3.6
+ debug: 4.3.7
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.24.5':
- dependencies:
- '@babel/types': 7.24.5
- '@jridgewell/gen-mapping': 0.3.5
- '@jridgewell/trace-mapping': 0.3.25
- jsesc: 2.5.2
-
'@babel/generator@7.25.0':
dependencies:
'@babel/types': 7.25.6
@@ -8218,8 +8317,8 @@ snapshots:
'@babel/helper-compilation-targets@7.23.6':
dependencies:
- '@babel/compat-data': 7.24.4
- '@babel/helper-validator-option': 7.23.5
+ '@babel/compat-data': 7.25.4
+ '@babel/helper-validator-option': 7.24.8
browserslist: 4.23.3
lru-cache: 5.1.1
semver: 6.3.1
@@ -8267,12 +8366,12 @@ snapshots:
'@babel/helper-function-name@7.23.0':
dependencies:
- '@babel/template': 7.24.0
- '@babel/types': 7.24.5
+ '@babel/template': 7.25.0
+ '@babel/types': 7.25.6
'@babel/helper-hoist-variables@7.22.5':
dependencies:
- '@babel/types': 7.24.5
+ '@babel/types': 7.25.6
'@babel/helper-member-expression-to-functions@7.24.8':
dependencies:
@@ -8281,10 +8380,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-imports@7.24.3':
- dependencies:
- '@babel/types': 7.24.5
-
'@babel/helper-module-imports@7.24.7':
dependencies:
'@babel/traverse': 7.25.6
@@ -8296,10 +8391,12 @@ snapshots:
dependencies:
'@babel/core': 7.24.5
'@babel/helper-environment-visitor': 7.22.20
- '@babel/helper-module-imports': 7.24.3
+ '@babel/helper-module-imports': 7.24.7
'@babel/helper-simple-access': 7.24.5
- '@babel/helper-split-export-declaration': 7.24.5
+ '@babel/helper-split-export-declaration': 7.24.7
'@babel/helper-validator-identifier': 7.24.5
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)':
dependencies:
@@ -8337,7 +8434,7 @@ snapshots:
'@babel/helper-simple-access@7.24.5':
dependencies:
- '@babel/types': 7.24.5
+ '@babel/types': 7.25.6
'@babel/helper-simple-access@7.24.7':
dependencies:
@@ -8353,10 +8450,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helper-split-export-declaration@7.24.5':
- dependencies:
- '@babel/types': 7.24.5
-
'@babel/helper-split-export-declaration@7.24.7':
dependencies:
'@babel/types': 7.25.6
@@ -8369,8 +8462,6 @@ snapshots:
'@babel/helper-validator-identifier@7.24.7': {}
- '@babel/helper-validator-option@7.23.5': {}
-
'@babel/helper-validator-option@7.24.8': {}
'@babel/helper-wrap-function@7.25.0':
@@ -8383,9 +8474,9 @@ snapshots:
'@babel/helpers@7.24.5':
dependencies:
- '@babel/template': 7.24.0
- '@babel/traverse': 7.24.5
- '@babel/types': 7.24.5
+ '@babel/template': 7.25.0
+ '@babel/traverse': 7.25.6
+ '@babel/types': 7.25.6
transitivePeerDependencies:
- supports-color
@@ -8396,7 +8487,7 @@ snapshots:
'@babel/highlight@7.24.5':
dependencies:
- '@babel/helper-validator-identifier': 7.24.5
+ '@babel/helper-validator-identifier': 7.24.7
chalk: 2.4.2
js-tokens: 4.0.0
picocolors: 1.1.0
@@ -8410,7 +8501,7 @@ snapshots:
'@babel/parser@7.24.5':
dependencies:
- '@babel/types': 7.24.5
+ '@babel/types': 7.25.6
'@babel/parser@7.25.6':
dependencies:
@@ -8992,7 +9083,7 @@ snapshots:
babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2)
babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2)
babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2)
- core-js-compat: 3.37.1
+ core-js-compat: 3.38.1
semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -9001,7 +9092,7 @@ snapshots:
dependencies:
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
- '@babel/types': 7.24.5
+ '@babel/types': 7.25.6
esutils: 2.0.3
'@babel/regjsgen@0.8.0': {}
@@ -9015,8 +9106,8 @@ snapshots:
'@babel/template@7.24.0':
dependencies:
'@babel/code-frame': 7.24.7
- '@babel/parser': 7.24.5
- '@babel/types': 7.24.5
+ '@babel/parser': 7.25.6
+ '@babel/types': 7.25.6
'@babel/template@7.25.0':
dependencies:
@@ -9027,13 +9118,13 @@ snapshots:
'@babel/traverse@7.24.5':
dependencies:
'@babel/code-frame': 7.24.7
- '@babel/generator': 7.24.5
+ '@babel/generator': 7.25.6
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-split-export-declaration': 7.24.5
- '@babel/parser': 7.24.5
- '@babel/types': 7.24.5
+ '@babel/helper-split-export-declaration': 7.24.7
+ '@babel/parser': 7.25.6
+ '@babel/types': 7.25.6
debug: 4.3.7
globals: 11.12.0
transitivePeerDependencies:
@@ -9077,8 +9168,6 @@ snapshots:
'@colors/colors@1.5.0':
optional: true
- '@ctrl/tinycolor@4.1.0': {}
-
'@discoveryjs/json-ext@0.6.1': {}
'@emmetio/abbreviation@2.3.3':
@@ -9444,31 +9533,6 @@ snapshots:
'@eslint/object-schema@2.1.4': {}
- '@expressive-code/core@0.35.6':
- dependencies:
- '@ctrl/tinycolor': 4.1.0
- hast-util-select: 6.0.2
- hast-util-to-html: 9.0.3
- hast-util-to-text: 4.0.2
- hastscript: 9.0.0
- postcss: 8.4.47
- postcss-nested: 6.0.1(postcss@8.4.47)
- unist-util-visit: 5.0.0
- unist-util-visit-parents: 6.0.1
-
- '@expressive-code/plugin-frames@0.35.6':
- dependencies:
- '@expressive-code/core': 0.35.6
-
- '@expressive-code/plugin-shiki@0.35.6':
- dependencies:
- '@expressive-code/core': 0.35.6
- shiki: 1.18.0
-
- '@expressive-code/plugin-text-markers@0.35.6':
- dependencies:
- '@expressive-code/core': 0.35.6
-
'@humanwhocodes/module-importer@1.0.1': {}
'@humanwhocodes/retry@0.3.0': {}
@@ -9548,6 +9612,14 @@ snapshots:
'@img/sharp-win32-x64@0.33.5':
optional: true
+ '@inquirer/checkbox@2.5.0':
+ dependencies:
+ '@inquirer/core': 9.2.1
+ '@inquirer/figures': 1.0.6
+ '@inquirer/type': 1.5.5
+ ansi-escapes: 4.3.2
+ yoctocolors-cjs: 2.1.2
+
'@inquirer/confirm@3.1.22':
dependencies:
'@inquirer/core': 9.2.1
@@ -9568,8 +9640,70 @@ snapshots:
wrap-ansi: 6.2.0
yoctocolors-cjs: 2.1.2
+ '@inquirer/editor@2.2.0':
+ dependencies:
+ '@inquirer/core': 9.2.1
+ '@inquirer/type': 1.5.5
+ external-editor: 3.1.0
+
+ '@inquirer/expand@2.3.0':
+ dependencies:
+ '@inquirer/core': 9.2.1
+ '@inquirer/type': 1.5.5
+ yoctocolors-cjs: 2.1.2
+
'@inquirer/figures@1.0.6': {}
+ '@inquirer/input@2.3.0':
+ dependencies:
+ '@inquirer/core': 9.2.1
+ '@inquirer/type': 1.5.5
+
+ '@inquirer/number@1.1.0':
+ dependencies:
+ '@inquirer/core': 9.2.1
+ '@inquirer/type': 1.5.5
+
+ '@inquirer/password@2.2.0':
+ dependencies:
+ '@inquirer/core': 9.2.1
+ '@inquirer/type': 1.5.5
+ ansi-escapes: 4.3.2
+
+ '@inquirer/prompts@5.3.8':
+ dependencies:
+ '@inquirer/checkbox': 2.5.0
+ '@inquirer/confirm': 3.1.22
+ '@inquirer/editor': 2.2.0
+ '@inquirer/expand': 2.3.0
+ '@inquirer/input': 2.3.0
+ '@inquirer/number': 1.1.0
+ '@inquirer/password': 2.2.0
+ '@inquirer/rawlist': 2.3.0
+ '@inquirer/search': 1.1.0
+ '@inquirer/select': 2.5.0
+
+ '@inquirer/rawlist@2.3.0':
+ dependencies:
+ '@inquirer/core': 9.2.1
+ '@inquirer/type': 1.5.5
+ yoctocolors-cjs: 2.1.2
+
+ '@inquirer/search@1.1.0':
+ dependencies:
+ '@inquirer/core': 9.2.1
+ '@inquirer/figures': 1.0.6
+ '@inquirer/type': 1.5.5
+ yoctocolors-cjs: 2.1.2
+
+ '@inquirer/select@2.5.0':
+ dependencies:
+ '@inquirer/core': 9.2.1
+ '@inquirer/figures': 1.0.6
+ '@inquirer/type': 1.5.5
+ ansi-escapes: 4.3.2
+ yoctocolors-cjs: 2.1.2
+
'@inquirer/type@1.5.5':
dependencies:
mute-stream: 1.0.0
@@ -9592,7 +9726,7 @@ snapshots:
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
'@jridgewell/resolve-uri@3.1.2': {}
@@ -9611,7 +9745,7 @@ snapshots:
'@jridgewell/trace-mapping@0.3.25':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/sourcemap-codec': 1.5.0
'@jsdevtools/ez-spawn@3.0.4':
dependencies:
@@ -9638,6 +9772,11 @@ snapshots:
'@leichtgewicht/ip-codec@2.0.5': {}
+ '@listr2/prompt-adapter-inquirer@2.0.15(@inquirer/prompts@5.3.8)':
+ dependencies:
+ '@inquirer/prompts': 5.3.8
+ '@inquirer/type': 1.5.5
+
'@lmdb/lmdb-darwin-arm64@3.0.13':
optional: true
@@ -9735,24 +9874,72 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.17.1
- '@oslojs/encoding@1.0.0': {}
+ '@npmcli/agent@2.2.2':
+ dependencies:
+ agent-base: 7.1.1
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.5
+ lru-cache: 10.4.3
+ socks-proxy-agent: 8.0.4
+ transitivePeerDependencies:
+ - supports-color
- '@pagefind/darwin-arm64@1.1.1':
- optional: true
+ '@npmcli/fs@3.1.1':
+ dependencies:
+ semver: 7.6.3
- '@pagefind/darwin-x64@1.1.1':
- optional: true
+ '@npmcli/git@5.0.8':
+ dependencies:
+ '@npmcli/promise-spawn': 7.0.2
+ ini: 4.1.3
+ lru-cache: 10.4.3
+ npm-pick-manifest: 9.1.0
+ proc-log: 4.2.0
+ promise-inflight: 1.0.1
+ promise-retry: 2.0.1
+ semver: 7.6.3
+ which: 4.0.0
+ transitivePeerDependencies:
+ - bluebird
- '@pagefind/default-ui@1.1.1': {}
+ '@npmcli/installed-package-contents@2.1.0':
+ dependencies:
+ npm-bundled: 3.0.1
+ npm-normalize-package-bin: 3.0.1
- '@pagefind/linux-arm64@1.1.1':
- optional: true
+ '@npmcli/node-gyp@3.0.0': {}
- '@pagefind/linux-x64@1.1.1':
- optional: true
+ '@npmcli/package-json@5.2.1':
+ dependencies:
+ '@npmcli/git': 5.0.8
+ glob: 10.4.5
+ hosted-git-info: 7.0.2
+ json-parse-even-better-errors: 3.0.2
+ normalize-package-data: 6.0.2
+ proc-log: 4.2.0
+ semver: 7.6.3
+ transitivePeerDependencies:
+ - bluebird
- '@pagefind/windows-x64@1.1.1':
- optional: true
+ '@npmcli/promise-spawn@7.0.2':
+ dependencies:
+ which: 4.0.0
+
+ '@npmcli/redact@2.0.1': {}
+
+ '@npmcli/run-script@8.1.0':
+ dependencies:
+ '@npmcli/node-gyp': 3.0.0
+ '@npmcli/package-json': 5.2.1
+ '@npmcli/promise-spawn': 7.0.2
+ node-gyp: 10.2.0
+ proc-log: 4.2.0
+ which: 4.0.0
+ transitivePeerDependencies:
+ - bluebird
+ - supports-color
+
+ '@oslojs/encoding@1.0.0': {}
'@pkgjs/parseargs@0.11.0':
optional: true
@@ -9918,33 +10105,77 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.21.2':
optional: true
- '@shikijs/core@1.18.0':
+ '@schematics/angular@18.2.6(chokidar@3.6.0)':
dependencies:
- '@shikijs/engine-javascript': 1.18.0
- '@shikijs/engine-oniguruma': 1.18.0
- '@shikijs/types': 1.18.0
+ '@angular-devkit/core': 18.2.6(chokidar@3.6.0)
+ '@angular-devkit/schematics': 18.2.6(chokidar@3.6.0)
+ jsonc-parser: 3.3.1
+ transitivePeerDependencies:
+ - chokidar
+
+ '@shikijs/core@1.20.0':
+ dependencies:
+ '@shikijs/engine-javascript': 1.20.0
+ '@shikijs/engine-oniguruma': 1.20.0
+ '@shikijs/types': 1.20.0
'@shikijs/vscode-textmate': 9.2.2
'@types/hast': 3.0.4
hast-util-to-html: 9.0.3
- '@shikijs/engine-javascript@1.18.0':
+ '@shikijs/engine-javascript@1.20.0':
dependencies:
- '@shikijs/types': 1.18.0
+ '@shikijs/types': 1.20.0
'@shikijs/vscode-textmate': 9.2.2
oniguruma-to-js: 0.4.3
- '@shikijs/engine-oniguruma@1.18.0':
+ '@shikijs/engine-oniguruma@1.20.0':
dependencies:
- '@shikijs/types': 1.18.0
+ '@shikijs/types': 1.20.0
'@shikijs/vscode-textmate': 9.2.2
- '@shikijs/types@1.18.0':
+ '@shikijs/transformers@1.20.0':
+ dependencies:
+ shiki: 1.20.0
+
+ '@shikijs/types@1.20.0':
dependencies:
'@shikijs/vscode-textmate': 9.2.2
'@types/hast': 3.0.4
'@shikijs/vscode-textmate@9.2.2': {}
+ '@sigstore/bundle@2.3.2':
+ dependencies:
+ '@sigstore/protobuf-specs': 0.3.2
+
+ '@sigstore/core@1.1.0': {}
+
+ '@sigstore/protobuf-specs@0.3.2': {}
+
+ '@sigstore/sign@2.3.2':
+ dependencies:
+ '@sigstore/bundle': 2.3.2
+ '@sigstore/core': 1.1.0
+ '@sigstore/protobuf-specs': 0.3.2
+ make-fetch-happen: 13.0.1
+ proc-log: 4.2.0
+ promise-retry: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@sigstore/tuf@2.3.4':
+ dependencies:
+ '@sigstore/protobuf-specs': 0.3.2
+ tuf-js: 2.2.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@sigstore/verify@1.2.1':
+ dependencies:
+ '@sigstore/bundle': 2.3.2
+ '@sigstore/core': 1.1.0
+ '@sigstore/protobuf-specs': 0.3.2
+
'@sindresorhus/merge-streams@2.3.0': {}
'@socket.io/component-emitter@3.1.2':
@@ -9979,13 +10210,20 @@ snapshots:
mkdirp: 3.0.1
path-browserify: 1.0.1
+ '@tufjs/canonical-json@2.0.0': {}
+
+ '@tufjs/models@2.0.1':
+ dependencies:
+ '@tufjs/canonical-json': 2.0.0
+ minimatch: 9.0.5
+
'@types/acorn@4.0.6':
dependencies:
'@types/estree': 1.0.5
'@types/babel__core@7.20.5':
dependencies:
- '@babel/parser': 7.24.5
+ '@babel/parser': 7.25.6
'@babel/types': 7.25.6
'@types/babel__generator': 7.6.8
'@types/babel__template': 7.4.4
@@ -9997,7 +10235,7 @@ snapshots:
'@types/babel__template@7.4.4':
dependencies:
- '@babel/parser': 7.24.5
+ '@babel/parser': 7.25.6
'@babel/types': 7.25.6
'@types/babel__traverse@7.20.6':
@@ -10007,20 +10245,20 @@ snapshots:
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/bonjour@3.5.13':
dependencies:
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/connect-history-api-fallback@1.5.4':
dependencies:
'@types/express-serve-static-core': 4.19.5
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/connect@3.4.38':
dependencies:
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/cookie@0.4.1':
optional: true
@@ -10056,7 +10294,7 @@ snapshots:
'@types/express-serve-static-core@4.19.5':
dependencies:
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/qs': 6.9.16
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
@@ -10081,7 +10319,7 @@ snapshots:
'@types/http-proxy@1.17.15':
dependencies:
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/json-schema@7.0.15': {}
@@ -10101,7 +10339,7 @@ snapshots:
'@types/mdast@4.0.4':
dependencies:
- '@types/unist': 2.0.10
+ '@types/unist': 3.0.3
'@types/mdx@2.0.13': {}
@@ -10115,18 +10353,14 @@ snapshots:
'@types/nlcst@2.0.3':
dependencies:
- '@types/unist': 2.0.10
+ '@types/unist': 3.0.3
'@types/node-forge@1.3.11':
dependencies:
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/node@17.0.45': {}
- '@types/node@18.19.50':
- dependencies:
- undici-types: 5.26.5
-
'@types/node@22.5.4':
dependencies:
undici-types: 6.19.8
@@ -10152,12 +10386,12 @@ snapshots:
'@types/sax@1.2.7':
dependencies:
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/send@0.17.4':
dependencies:
'@types/mime': 1.3.5
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/serve-index@1.9.4':
dependencies:
@@ -10166,12 +10400,12 @@ snapshots:
'@types/serve-static@1.15.7':
dependencies:
'@types/http-errors': 2.0.4
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/send': 0.17.4
'@types/sockjs@0.3.36':
dependencies:
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@types/unist@2.0.10': {}
@@ -10181,7 +10415,7 @@ snapshots:
'@types/ws@8.5.12':
dependencies:
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
'@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)':
dependencies:
@@ -10483,6 +10717,10 @@ snapshots:
'@xtuc/long@4.2.2': {}
+ '@yarnpkg/lockfile@1.1.0': {}
+
+ abbrev@2.0.0: {}
+
accepts@1.3.8:
dependencies:
mime-types: 2.1.35
@@ -10509,6 +10747,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ aggregate-error@3.1.0:
+ dependencies:
+ clean-stack: 2.2.0
+ indent-string: 4.0.0
+
ajv-formats@2.1.1(ajv@8.17.1):
optionalDependencies:
ajv: 8.17.1
@@ -10599,12 +10842,6 @@ snapshots:
astring@1.9.0: {}
- astro-auto-import@0.4.2(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)):
- dependencies:
- '@types/node': 18.19.50
- acorn: 8.12.1
- astro: 4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)
-
astro-eslint-parser@1.0.3(typescript@5.5.4):
dependencies:
'@astrojs/compiler': 2.10.3
@@ -10624,11 +10861,6 @@ snapshots:
- supports-color
- typescript
- astro-expressive-code@0.35.6(astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)):
- dependencies:
- astro: 4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)
- rehype-expressive-code: 0.35.6
-
astro@4.15.9(@types/node@22.6.1)(less@4.2.0)(rollup@4.21.2)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4):
dependencies:
'@astrojs/compiler': 2.10.3
@@ -10681,15 +10913,15 @@ snapshots:
prompts: 2.4.2
rehype: 13.0.1
semver: 7.6.3
- shiki: 1.18.0
+ shiki: 1.20.0
string-width: 7.2.0
strip-ansi: 7.1.0
tinyexec: 0.3.0
tsconfck: 3.1.3(typescript@5.5.4)
unist-util-visit: 5.0.0
vfile: 6.0.3
- vite: 5.4.3(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)
- vitefu: 1.0.2(vite@5.4.3(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6))
+ vite: 5.4.6(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)
+ vitefu: 1.0.2(vite@5.4.6(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6))
which-pm: 3.0.0
xxhash-wasm: 1.0.2
yargs-parser: 21.1.1
@@ -10738,8 +10970,6 @@ snapshots:
axobject-query@4.1.0: {}
- b4a@1.6.6: {}
-
babel-loader@9.1.3(@babel/core@7.25.2)(webpack@5.94.0(esbuild@0.23.0)):
dependencies:
'@babel/core': 7.25.2
@@ -10775,30 +11005,6 @@ snapshots:
balanced-match@1.0.2: {}
- bare-events@2.4.2:
- optional: true
-
- bare-fs@2.3.5:
- dependencies:
- bare-events: 2.4.2
- bare-path: 2.1.3
- bare-stream: 2.3.0
- optional: true
-
- bare-os@2.4.4:
- optional: true
-
- bare-path@2.1.3:
- dependencies:
- bare-os: 2.4.4
- optional: true
-
- bare-stream@2.3.0:
- dependencies:
- b4a: 1.6.6
- streamx: 2.20.1
- optional: true
-
base-64@1.0.0: {}
base64-js@1.5.1: {}
@@ -10810,12 +11016,6 @@ snapshots:
bcp-47-match@2.0.3: {}
- bcp-47@2.1.0:
- dependencies:
- is-alphabetical: 2.0.1
- is-alphanumerical: 2.0.1
- is-decimal: 2.0.1
-
big.js@5.2.2: {}
binary-extensions@2.3.0: {}
@@ -10860,7 +11060,7 @@ snapshots:
dependencies:
ansi-align: 3.0.1
camelcase: 7.0.1
- chalk: 5.2.0
+ chalk: 5.3.0
cli-boxes: 3.0.0
string-width: 5.1.2
type-fest: 2.19.0
@@ -10880,13 +11080,6 @@ snapshots:
dependencies:
fill-range: 7.1.1
- browserslist@4.23.0:
- dependencies:
- caniuse-lite: 1.0.30001620
- electron-to-chromium: 1.4.774
- node-releases: 2.0.14
- update-browserslist-db: 1.0.16(browserslist@4.23.0)
-
browserslist@4.23.3:
dependencies:
caniuse-lite: 1.0.30001663
@@ -10949,6 +11142,21 @@ snapshots:
cac@6.7.14: {}
+ cacache@18.0.4:
+ dependencies:
+ '@npmcli/fs': 3.1.1
+ fs-minipass: 3.0.3
+ glob: 10.4.5
+ lru-cache: 10.4.3
+ minipass: 7.1.2
+ minipass-collect: 2.0.1
+ minipass-flush: 1.0.5
+ minipass-pipeline: 1.2.4
+ p-map: 4.0.0
+ ssri: 10.0.6
+ tar: 6.2.1
+ unique-filename: 3.0.0
+
call-bind@1.0.7:
dependencies:
es-define-property: 1.0.0
@@ -10972,8 +11180,6 @@ snapshots:
lodash.memoize: 4.1.2
lodash.uniq: 4.5.0
- caniuse-lite@1.0.30001620: {}
-
caniuse-lite@1.0.30001663: {}
ccount@2.0.1: {}
@@ -11015,6 +11221,8 @@ snapshots:
character-reference-invalid@2.0.1: {}
+ chardet@0.7.0: {}
+
check-error@2.1.1: {}
chokidar@3.6.0:
@@ -11029,8 +11237,6 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- chownr@1.1.4: {}
-
chownr@2.0.0: {}
chrome-trace-event@1.0.4: {}
@@ -11049,6 +11255,8 @@ snapshots:
dependencies:
escape-string-regexp: 1.0.5
+ clean-stack@2.2.0: {}
+
cli-boxes@3.0.0: {}
cli-cursor@3.1.0:
@@ -11117,11 +11325,13 @@ snapshots:
dependencies:
color-name: 1.1.4
simple-swizzle: 0.2.2
+ optional: true
color@4.2.3:
dependencies:
color-convert: 2.0.1
color-string: 1.9.1
+ optional: true
colord@2.9.3: {}
@@ -11212,7 +11422,7 @@ snapshots:
core-js-compat@3.37.1:
dependencies:
- browserslist: 4.23.0
+ browserslist: 4.23.3
core-js-compat@3.38.1:
dependencies:
@@ -11377,14 +11587,8 @@ snapshots:
dependencies:
character-entities: 2.0.2
- decompress-response@6.0.0:
- dependencies:
- mimic-response: 3.1.0
-
deep-eql@5.0.2: {}
- deep-extend@0.6.0: {}
-
deep-is@0.1.4: {}
deepmerge@4.3.1: {}
@@ -11495,8 +11699,6 @@ snapshots:
ee-first@1.1.1: {}
- electron-to-chromium@1.4.774: {}
-
electron-to-chromium@1.5.27: {}
emmet@2.4.11:
@@ -11516,9 +11718,10 @@ snapshots:
encodeurl@2.0.0: {}
- end-of-stream@1.4.4:
+ encoding@0.1.13:
dependencies:
- once: 1.4.0
+ iconv-lite: 0.6.3
+ optional: true
engine.io-parser@5.2.3:
optional: true
@@ -11562,6 +11765,8 @@ snapshots:
environment@1.1.0: {}
+ err-code@2.0.3: {}
+
errno@0.1.8:
dependencies:
prr: 1.0.1
@@ -12079,7 +12284,7 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
- expand-template@2.0.3: {}
+ exponential-backoff@3.1.1: {}
express@4.21.0:
dependencies:
@@ -12117,22 +12322,19 @@ snapshots:
transitivePeerDependencies:
- supports-color
- expressive-code@0.35.6:
- dependencies:
- '@expressive-code/core': 0.35.6
- '@expressive-code/plugin-frames': 0.35.6
- '@expressive-code/plugin-shiki': 0.35.6
- '@expressive-code/plugin-text-markers': 0.35.6
-
extend-shallow@2.0.1:
dependencies:
is-extendable: 0.1.1
extend@3.0.2: {}
- fast-deep-equal@3.1.3: {}
+ external-editor@3.1.0:
+ dependencies:
+ chardet: 0.7.0
+ iconv-lite: 0.4.24
+ tmp: 0.0.33
- fast-fifo@1.3.2: {}
+ fast-deep-equal@3.1.3: {}
fast-glob@3.3.2:
dependencies:
@@ -12232,9 +12434,9 @@ snapshots:
flattie@1.1.1: {}
- follow-redirects@1.15.9(debug@4.3.6):
+ follow-redirects@1.15.9(debug@4.3.7):
optionalDependencies:
- debug: 4.3.6
+ debug: 4.3.7
foreground-child@3.3.0:
dependencies:
@@ -12251,8 +12453,6 @@ snapshots:
fresh@0.5.2: {}
- fs-constants@1.0.0: {}
-
fs-extra@11.2.0:
dependencies:
graceful-fs: 4.2.11
@@ -12270,6 +12470,10 @@ snapshots:
dependencies:
minipass: 3.3.6
+ fs-minipass@3.0.3:
+ dependencies:
+ minipass: 7.1.2
+
fs.realpath@1.0.0: {}
fsevents@2.3.3:
@@ -12312,8 +12516,6 @@ snapshots:
pathe: 1.1.2
tar: 6.2.1
- github-from-package@0.0.0: {}
-
github-slugger@2.0.0: {}
glob-parent@5.1.2:
@@ -12422,21 +12624,6 @@ snapshots:
dependencies:
function-bind: 1.1.2
- hast-util-embedded@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-is-element: 3.0.0
-
- hast-util-format@1.1.0:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-embedded: 3.0.0
- hast-util-minify-whitespace: 1.0.0
- hast-util-phrasing: 3.0.1
- hast-util-whitespace: 3.0.0
- html-whitespace-sensitive-tag-names: 3.0.0
- unist-util-visit-parents: 6.0.1
-
hast-util-from-html@2.0.3:
dependencies:
'@types/hast': 3.0.4
@@ -12461,34 +12648,14 @@ snapshots:
dependencies:
'@types/hast': 3.0.4
- hast-util-is-body-ok-link@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
-
hast-util-is-element@3.0.0:
dependencies:
'@types/hast': 3.0.4
- hast-util-minify-whitespace@1.0.0:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-embedded: 3.0.0
- hast-util-is-element: 3.0.0
- hast-util-whitespace: 3.0.0
- unist-util-is: 6.0.0
-
hast-util-parse-selector@4.0.0:
dependencies:
'@types/hast': 3.0.4
- hast-util-phrasing@3.0.1:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-embedded: 3.0.0
- hast-util-has-property: 3.0.0
- hast-util-is-body-ok-link: 3.0.0
- hast-util-is-element: 3.0.0
-
hast-util-raw@9.0.4:
dependencies:
'@types/hast': 3.0.4
@@ -12614,18 +12781,14 @@ snapshots:
property-information: 6.5.0
space-separated-tokens: 2.0.2
- hastscript@9.0.0:
- dependencies:
- '@types/hast': 3.0.4
- comma-separated-tokens: 2.0.3
- hast-util-parse-selector: 4.0.0
- property-information: 6.5.0
- space-separated-tokens: 2.0.2
-
hookable@5.5.3: {}
hosted-git-info@2.8.9: {}
+ hosted-git-info@7.0.2:
+ dependencies:
+ lru-cache: 10.4.3
+
hpack.js@2.1.6:
dependencies:
inherits: 2.0.4
@@ -12639,8 +12802,6 @@ snapshots:
html-void-elements@3.0.0: {}
- html-whitespace-sensitive-tag-names@3.0.0: {}
-
htmlparser2@8.0.2:
dependencies:
domelementtype: 2.3.0
@@ -12669,10 +12830,17 @@ snapshots:
http-parser-js@0.5.8: {}
+ http-proxy-agent@7.0.2:
+ dependencies:
+ agent-base: 7.1.1
+ debug: 4.3.7
+ transitivePeerDependencies:
+ - supports-color
+
http-proxy-middleware@2.0.6(@types/express@4.17.21):
dependencies:
'@types/http-proxy': 1.17.15
- http-proxy: 1.18.1(debug@4.3.6)
+ http-proxy: 1.18.1(debug@4.3.7)
is-glob: 4.0.3
is-plain-obj: 3.0.0
micromatch: 4.0.8
@@ -12684,18 +12852,18 @@ snapshots:
http-proxy-middleware@3.0.0:
dependencies:
'@types/http-proxy': 1.17.15
- debug: 4.3.6
- http-proxy: 1.18.1(debug@4.3.6)
+ debug: 4.3.7
+ http-proxy: 1.18.1(debug@4.3.7)
is-glob: 4.0.3
is-plain-obj: 3.0.0
micromatch: 4.0.8
transitivePeerDependencies:
- supports-color
- http-proxy@1.18.1(debug@4.3.6):
+ http-proxy@1.18.1(debug@4.3.7):
dependencies:
eventemitter3: 4.0.7
- follow-redirects: 1.15.9(debug@4.3.6)
+ follow-redirects: 1.15.9(debug@4.3.7)
requires-port: 1.0.0
transitivePeerDependencies:
- debug
@@ -12710,7 +12878,7 @@ snapshots:
https-proxy-agent@7.0.5:
dependencies:
agent-base: 7.1.1
- debug: 4.3.6
+ debug: 4.3.7
transitivePeerDependencies:
- supports-color
@@ -12736,6 +12904,10 @@ snapshots:
ieee754@1.2.1: {}
+ ignore-walk@6.0.5:
+ dependencies:
+ minimatch: 9.0.5
+
ignore@5.3.1: {}
image-size@0.5.5:
@@ -12763,12 +12935,17 @@ snapshots:
inherits@2.0.4: {}
- ini@1.3.8: {}
+ ini@4.1.3: {}
inline-style-parser@0.1.1: {}
inline-style-parser@0.2.4: {}
+ ip-address@9.0.5:
+ dependencies:
+ jsbn: 1.1.0
+ sprintf-js: 1.1.3
+
ipaddr.js@1.9.1: {}
ipaddr.js@2.2.0: {}
@@ -12789,7 +12966,8 @@ snapshots:
is-arrayish@0.2.1: {}
- is-arrayish@0.3.2: {}
+ is-arrayish@0.3.2:
+ optional: true
is-binary-path@2.1.0:
dependencies:
@@ -12837,6 +13015,8 @@ snapshots:
is-interactive@2.0.0: {}
+ is-lambda@1.0.1: {}
+
is-module@1.0.0: {}
is-network-error@1.1.0: {}
@@ -12884,6 +13064,8 @@ snapshots:
isexe@2.0.0: {}
+ isexe@3.1.1: {}
+
isobject@3.0.1: {}
istanbul-lib-coverage@3.2.2: {}
@@ -12891,7 +13073,7 @@ snapshots:
istanbul-lib-instrument@6.0.3:
dependencies:
'@babel/core': 7.25.2
- '@babel/parser': 7.24.5
+ '@babel/parser': 7.25.6
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 7.6.3
@@ -12906,7 +13088,7 @@ snapshots:
jest-worker@27.5.1:
dependencies:
- '@types/node': 22.5.4
+ '@types/node': 22.6.1
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -12923,6 +13105,8 @@ snapshots:
dependencies:
argparse: 2.0.1
+ jsbn@1.1.0: {}
+
jsdoc-type-pratt-parser@4.0.0: {}
jsdoc-type-pratt-parser@4.1.0: {}
@@ -12937,6 +13121,8 @@ snapshots:
json-parse-even-better-errors@2.3.1: {}
+ json-parse-even-better-errors@3.0.2: {}
+
json-schema-traverse@0.4.1: {}
json-schema-traverse@1.0.0: {}
@@ -12967,6 +13153,8 @@ snapshots:
optionalDependencies:
graceful-fs: 4.2.11
+ jsonparse@1.3.1: {}
+
karma-source-map-support@1.4.0:
dependencies:
source-map-support: 0.5.21
@@ -12982,7 +13170,7 @@ snapshots:
dom-serialize: 2.2.1
glob: 7.2.3
graceful-fs: 4.2.11
- http-proxy: 1.18.1(debug@4.3.6)
+ http-proxy: 1.18.1(debug@4.3.7)
isbinaryfile: 4.0.10
lodash: 4.17.21
log4js: 6.9.1
@@ -13216,6 +13404,23 @@ snapshots:
semver: 5.7.2
optional: true
+ make-fetch-happen@13.0.1:
+ dependencies:
+ '@npmcli/agent': 2.2.2
+ cacache: 18.0.4
+ http-cache-semantics: 4.1.1
+ is-lambda: 1.0.1
+ minipass: 7.1.2
+ minipass-fetch: 3.0.5
+ minipass-flush: 1.0.5
+ minipass-pipeline: 1.2.4
+ negotiator: 0.6.3
+ proc-log: 4.2.0
+ promise-retry: 2.0.1
+ ssri: 10.0.6
+ transitivePeerDependencies:
+ - supports-color
+
markdown-extensions@2.0.0: {}
markdown-table@3.0.3: {}
@@ -13226,19 +13431,6 @@ snapshots:
'@types/unist': 3.0.3
unist-util-visit: 5.0.0
- mdast-util-directive@3.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- '@types/unist': 3.0.3
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.1
- mdast-util-to-markdown: 2.1.0
- parse-entities: 4.0.1
- stringify-entities: 4.0.4
- unist-util-visit-parents: 6.0.1
- transitivePeerDependencies:
- - supports-color
-
mdast-util-find-and-replace@3.0.1:
dependencies:
'@types/mdast': 4.0.4
@@ -13453,16 +13645,6 @@ snapshots:
micromark-util-symbol: 2.0.0
micromark-util-types: 2.0.0
- micromark-extension-directive@3.0.2:
- dependencies:
- devlop: 1.1.0
- micromark-factory-space: 2.0.0
- micromark-factory-whitespace: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
- parse-entities: 4.0.1
-
micromark-extension-gfm-autolink-literal@2.1.0:
dependencies:
micromark-util-character: 2.1.0
@@ -13741,8 +13923,6 @@ snapshots:
mimic-function@5.0.1: {}
- mimic-response@3.1.0: {}
-
min-indent@1.0.1: {}
mini-css-extract-plugin@2.9.0(webpack@5.94.0(esbuild@0.23.0)):
@@ -13771,6 +13951,30 @@ snapshots:
minimist@1.2.8: {}
+ minipass-collect@2.0.1:
+ dependencies:
+ minipass: 7.1.2
+
+ minipass-fetch@3.0.5:
+ dependencies:
+ minipass: 7.1.2
+ minipass-sized: 1.0.3
+ minizlib: 2.1.2
+ optionalDependencies:
+ encoding: 0.1.13
+
+ minipass-flush@1.0.5:
+ dependencies:
+ minipass: 3.3.6
+
+ minipass-pipeline@1.2.4:
+ dependencies:
+ minipass: 3.3.6
+
+ minipass-sized@1.0.3:
+ dependencies:
+ minipass: 3.3.6
+
minipass@3.3.6:
dependencies:
yallist: 4.0.0
@@ -13784,8 +13988,6 @@ snapshots:
minipass: 3.3.6
yallist: 4.0.0
- mkdirp-classic@0.5.3: {}
-
mkdirp@0.5.6:
dependencies:
minimist: 1.2.8
@@ -13868,8 +14070,6 @@ snapshots:
nanoid@3.3.7: {}
- napi-build-utils@1.0.2: {}
-
natural-compare-lite@1.4.0: {}
natural-compare@1.4.0: {}
@@ -13896,10 +14096,6 @@ snapshots:
dependencies:
'@types/nlcst': 2.0.3
- node-abi@3.68.0:
- dependencies:
- semver: 7.6.3
-
node-addon-api@3.2.1:
optional: true
@@ -13924,10 +14120,27 @@ snapshots:
node-gyp-build@4.8.2:
optional: true
- node-releases@2.0.14: {}
+ node-gyp@10.2.0:
+ dependencies:
+ env-paths: 2.2.1
+ exponential-backoff: 3.1.1
+ glob: 10.4.5
+ graceful-fs: 4.2.11
+ make-fetch-happen: 13.0.1
+ nopt: 7.2.1
+ proc-log: 4.2.0
+ semver: 7.6.3
+ tar: 6.2.1
+ which: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
node-releases@2.0.18: {}
+ nopt@7.2.1:
+ dependencies:
+ abbrev: 2.0.0
+
normalize-package-data@2.5.0:
dependencies:
hosted-git-info: 2.8.9
@@ -13935,12 +14148,59 @@ snapshots:
semver: 5.7.2
validate-npm-package-license: 3.0.4
+ normalize-package-data@6.0.2:
+ dependencies:
+ hosted-git-info: 7.0.2
+ semver: 7.6.3
+ validate-npm-package-license: 3.0.4
+
normalize-path@3.0.0: {}
normalize-range@0.1.2: {}
not@0.1.0: {}
+ npm-bundled@3.0.1:
+ dependencies:
+ npm-normalize-package-bin: 3.0.1
+
+ npm-install-checks@6.3.0:
+ dependencies:
+ semver: 7.6.3
+
+ npm-normalize-package-bin@3.0.1: {}
+
+ npm-package-arg@11.0.3:
+ dependencies:
+ hosted-git-info: 7.0.2
+ proc-log: 4.2.0
+ semver: 7.6.3
+ validate-npm-package-name: 5.0.1
+
+ npm-packlist@8.0.2:
+ dependencies:
+ ignore-walk: 6.0.5
+
+ npm-pick-manifest@9.1.0:
+ dependencies:
+ npm-install-checks: 6.3.0
+ npm-normalize-package-bin: 3.0.1
+ npm-package-arg: 11.0.3
+ semver: 7.6.3
+
+ npm-registry-fetch@17.1.0:
+ dependencies:
+ '@npmcli/redact': 2.0.1
+ jsonparse: 1.3.1
+ make-fetch-happen: 13.0.1
+ minipass: 7.1.2
+ minipass-fetch: 3.0.5
+ minizlib: 2.1.2
+ npm-package-arg: 11.0.3
+ proc-log: 4.2.0
+ transitivePeerDependencies:
+ - supports-color
+
npm-run-path@4.0.1:
dependencies:
path-key: 3.1.1
@@ -14056,6 +14316,8 @@ snapshots:
ordered-binary@1.5.1: {}
+ os-tmpdir@1.0.2: {}
+
p-limit@2.3.0:
dependencies:
p-try: 2.2.0
@@ -14084,6 +14346,10 @@ snapshots:
dependencies:
p-limit: 4.0.0
+ p-map@4.0.0:
+ dependencies:
+ aggregate-error: 3.1.0
+
p-queue@8.0.1:
dependencies:
eventemitter3: 5.0.1
@@ -14103,13 +14369,28 @@ snapshots:
package-manager-detector@0.2.0: {}
- pagefind@1.1.1:
- optionalDependencies:
- '@pagefind/darwin-arm64': 1.1.1
- '@pagefind/darwin-x64': 1.1.1
- '@pagefind/linux-arm64': 1.1.1
- '@pagefind/linux-x64': 1.1.1
- '@pagefind/windows-x64': 1.1.1
+ pacote@18.0.6:
+ dependencies:
+ '@npmcli/git': 5.0.8
+ '@npmcli/installed-package-contents': 2.1.0
+ '@npmcli/package-json': 5.2.1
+ '@npmcli/promise-spawn': 7.0.2
+ '@npmcli/run-script': 8.1.0
+ cacache: 18.0.4
+ fs-minipass: 3.0.3
+ minipass: 7.1.2
+ npm-package-arg: 11.0.3
+ npm-packlist: 8.0.2
+ npm-pick-manifest: 9.1.0
+ npm-registry-fetch: 17.1.0
+ proc-log: 4.2.0
+ promise-retry: 2.0.1
+ sigstore: 2.3.1
+ ssri: 10.0.6
+ tar: 6.2.1
+ transitivePeerDependencies:
+ - bluebird
+ - supports-color
parent-module@1.0.1:
dependencies:
@@ -14474,21 +14755,6 @@ snapshots:
picocolors: 1.1.0
source-map-js: 1.2.1
- prebuild-install@7.1.2:
- dependencies:
- detect-libc: 2.0.3
- expand-template: 2.0.3
- github-from-package: 0.0.0
- minimist: 1.2.8
- mkdirp-classic: 0.5.3
- napi-build-utils: 1.0.2
- node-abi: 3.68.0
- pump: 3.0.2
- rc: 1.2.8
- simple-get: 4.0.1
- tar-fs: 2.1.1
- tunnel-agent: 0.6.0
-
preferred-pm@4.0.0:
dependencies:
find-up-simple: 1.0.0
@@ -14500,14 +14766,24 @@ snapshots:
prettier@2.8.7:
optional: true
- prettier@3.3.3: {}
+ prettier@3.3.3:
+ optional: true
pretty-bytes@6.1.1: {}
prismjs@1.29.0: {}
+ proc-log@4.2.0: {}
+
process-nextick-args@2.0.1: {}
+ promise-inflight@1.0.1: {}
+
+ promise-retry@2.0.1:
+ dependencies:
+ err-code: 2.0.3
+ retry: 0.12.0
+
prompts@2.4.2:
dependencies:
kleur: 3.0.3
@@ -14523,11 +14799,6 @@ snapshots:
prr@1.0.1:
optional: true
- pump@3.0.2:
- dependencies:
- end-of-stream: 1.4.4
- once: 1.4.0
-
punycode@1.4.1:
optional: true
@@ -14542,8 +14813,6 @@ snapshots:
queue-microtask@1.2.3: {}
- queue-tick@1.0.1: {}
-
randombytes@2.1.0:
dependencies:
safe-buffer: 5.2.1
@@ -14562,13 +14831,6 @@ snapshots:
defu: 6.1.4
destr: 2.0.3
- rc@1.2.8:
- dependencies:
- deep-extend: 0.6.0
- ini: 1.3.8
- minimist: 1.2.8
- strip-json-comments: 2.0.1
-
read-cache@1.0.0:
dependencies:
pify: 2.3.0
@@ -14652,15 +14914,6 @@ snapshots:
dependencies:
jsesc: 0.5.0
- rehype-expressive-code@0.35.6:
- dependencies:
- expressive-code: 0.35.6
-
- rehype-format@5.0.1:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-format: 1.1.0
-
rehype-parse@9.0.0:
dependencies:
'@types/hast': 3.0.4
@@ -14686,15 +14939,6 @@ snapshots:
rehype-stringify: 10.0.0
unified: 11.0.5
- remark-directive@3.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-directive: 3.0.0
- micromark-extension-directive: 3.0.2
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
remark-gfm@4.0.0:
dependencies:
'@types/mdast': 4.0.4
@@ -14811,6 +15055,8 @@ snapshots:
retext-stringify: 4.0.0
unified: 11.0.5
+ retry@0.12.0: {}
+
retry@0.13.1: {}
reusify@1.0.4: {}
@@ -15012,17 +15258,6 @@ snapshots:
dependencies:
kind-of: 6.0.3
- sharp@0.32.6:
- dependencies:
- color: 4.2.3
- detect-libc: 2.0.3
- node-addon-api: 6.1.0
- prebuild-install: 7.1.2
- semver: 7.6.3
- simple-get: 4.0.1
- tar-fs: 3.0.6
- tunnel-agent: 0.6.0
-
sharp@0.33.5:
dependencies:
color: 4.2.3
@@ -15058,12 +15293,12 @@ snapshots:
shell-quote@1.8.1: {}
- shiki@1.18.0:
+ shiki@1.20.0:
dependencies:
- '@shikijs/core': 1.18.0
- '@shikijs/engine-javascript': 1.18.0
- '@shikijs/engine-oniguruma': 1.18.0
- '@shikijs/types': 1.18.0
+ '@shikijs/core': 1.20.0
+ '@shikijs/engine-javascript': 1.20.0
+ '@shikijs/engine-oniguruma': 1.20.0
+ '@shikijs/types': 1.20.0
'@shikijs/vscode-textmate': 9.2.2
'@types/hast': 3.0.4
@@ -15080,19 +15315,23 @@ snapshots:
signal-exit@4.1.0: {}
- simple-concat@1.0.1: {}
-
- simple-get@4.0.1:
+ sigstore@2.3.1:
dependencies:
- decompress-response: 6.0.0
- once: 1.4.0
- simple-concat: 1.0.1
+ '@sigstore/bundle': 2.3.2
+ '@sigstore/core': 1.1.0
+ '@sigstore/protobuf-specs': 0.3.2
+ '@sigstore/sign': 2.3.2
+ '@sigstore/tuf': 2.3.4
+ '@sigstore/verify': 1.2.1
+ transitivePeerDependencies:
+ - supports-color
simple-git-hooks@2.11.1: {}
simple-swizzle@0.2.2:
dependencies:
is-arrayish: 0.3.2
+ optional: true
sisteransi@1.0.5: {}
@@ -15121,6 +15360,8 @@ snapshots:
ansi-styles: 6.2.1
is-fullwidth-code-point: 5.0.0
+ smart-buffer@4.2.0: {}
+
socket.io-adapter@2.5.5:
dependencies:
debug: 4.3.7
@@ -15160,6 +15401,19 @@ snapshots:
uuid: 8.3.2
websocket-driver: 0.7.4
+ socks-proxy-agent@8.0.4:
+ dependencies:
+ agent-base: 7.1.1
+ debug: 4.3.7
+ socks: 2.8.3
+ transitivePeerDependencies:
+ - supports-color
+
+ socks@2.8.3:
+ dependencies:
+ ip-address: 9.0.5
+ smart-buffer: 4.2.0
+
source-map-js@1.2.1: {}
source-map-loader@5.0.0(webpack@5.94.0(esbuild@0.23.0)):
@@ -15221,6 +15475,12 @@ snapshots:
sprintf-js@1.0.3: {}
+ sprintf-js@1.1.3: {}
+
+ ssri@10.0.6:
+ dependencies:
+ minipass: 7.1.2
+
stable-hash@0.0.4: {}
stackback@0.0.2: {}
@@ -15248,14 +15508,6 @@ snapshots:
- supports-color
optional: true
- streamx@2.20.1:
- dependencies:
- fast-fifo: 1.3.2
- queue-tick: 1.0.1
- text-decoder: 1.2.0
- optionalDependencies:
- bare-events: 2.4.2
-
string-argv@0.3.2: {}
string-width@4.2.3:
@@ -15309,8 +15561,6 @@ snapshots:
dependencies:
min-indent: 1.0.1
- strip-json-comments@2.0.1: {}
-
strip-json-comments@3.1.1: {}
style-to-object@0.4.4:
@@ -15361,6 +15611,8 @@ snapshots:
csso: 5.0.5
picocolors: 1.1.0
+ symbol-observable@4.0.0: {}
+
synckit@0.6.2:
dependencies:
tslib: 2.7.0
@@ -15372,6 +15624,10 @@ snapshots:
tailwind-merge@2.5.2: {}
+ tailwindcss-animate@1.0.7(tailwindcss@3.4.13):
+ dependencies:
+ tailwindcss: 3.4.13
+
tailwindcss@3.4.13:
dependencies:
'@alloc/quick-lru': 5.2.0
@@ -15401,35 +15657,6 @@ snapshots:
tapable@2.2.1: {}
- tar-fs@2.1.1:
- dependencies:
- chownr: 1.1.4
- mkdirp-classic: 0.5.3
- pump: 3.0.2
- tar-stream: 2.2.0
-
- tar-fs@3.0.6:
- dependencies:
- pump: 3.0.2
- tar-stream: 3.1.7
- optionalDependencies:
- bare-fs: 2.3.5
- bare-path: 2.1.3
-
- tar-stream@2.2.0:
- dependencies:
- bl: 4.1.0
- end-of-stream: 1.4.4
- fs-constants: 1.0.0
- inherits: 2.0.4
- readable-stream: 3.6.2
-
- tar-stream@3.1.7:
- dependencies:
- b4a: 1.6.6
- fast-fifo: 1.3.2
- streamx: 2.20.1
-
tar@6.2.1:
dependencies:
chownr: 2.0.0
@@ -15457,10 +15684,6 @@ snapshots:
commander: 2.20.3
source-map-support: 0.5.21
- text-decoder@1.2.0:
- dependencies:
- b4a: 1.6.6
-
text-table@0.2.0: {}
thenify-all@1.6.0:
@@ -15487,6 +15710,10 @@ snapshots:
tinyspy@3.0.0: {}
+ tmp@0.0.33:
+ dependencies:
+ os-tmpdir: 1.0.2
+
tmp@0.2.3:
optional: true
@@ -15549,9 +15776,13 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- tunnel-agent@0.6.0:
+ tuf-js@2.2.1:
dependencies:
- safe-buffer: 5.2.1
+ '@tufjs/models': 2.0.1
+ debug: 4.3.7
+ make-fetch-happen: 13.0.1
+ transitivePeerDependencies:
+ - supports-color
type-check@0.4.0:
dependencies:
@@ -15622,8 +15853,6 @@ snapshots:
- supports-color
- vue-tsc
- undici-types@5.26.5: {}
-
undici-types@6.19.8: {}
unicode-canonical-property-names-ecmascript@2.0.1: {}
@@ -15649,6 +15878,14 @@ snapshots:
trough: 2.2.0
vfile: 6.0.3
+ unique-filename@3.0.0:
+ dependencies:
+ unique-slug: 4.0.0
+
+ unique-slug@4.0.0:
+ dependencies:
+ imurmurhash: 0.1.4
+
unist-util-find-after@5.0.0:
dependencies:
'@types/unist': 3.0.3
@@ -15718,12 +15955,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- update-browserslist-db@1.0.16(browserslist@4.23.0):
- dependencies:
- browserslist: 4.23.0
- escalade: 3.1.2
- picocolors: 1.1.0
-
update-browserslist-db@1.1.0(browserslist@4.23.3):
dependencies:
browserslist: 4.23.3
@@ -15745,6 +15976,8 @@ snapshots:
spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1
+ validate-npm-package-name@5.0.1: {}
+
vary@1.1.2: {}
vfile-location@5.0.3:
@@ -15792,18 +16025,6 @@ snapshots:
sass: 1.77.6
terser: 5.31.6
- vite@5.4.3(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6):
- dependencies:
- esbuild: 0.21.5
- postcss: 8.4.47
- rollup: 4.21.2
- optionalDependencies:
- '@types/node': 22.6.1
- fsevents: 2.3.3
- less: 4.2.0
- sass: 1.77.6
- terser: 5.31.6
-
vite@5.4.6(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6):
dependencies:
esbuild: 0.21.5
@@ -15816,9 +16037,9 @@ snapshots:
sass: 1.77.6
terser: 5.31.6
- vitefu@1.0.2(vite@5.4.3(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)):
+ vitefu@1.0.2(vite@5.4.6(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)):
optionalDependencies:
- vite: 5.4.3(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)
+ vite: 5.4.6(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)
vitest@2.0.5(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6):
dependencies:
@@ -16072,7 +16293,7 @@ snapshots:
'@webassemblyjs/wasm-parser': 1.12.1
acorn: 8.12.1
acorn-import-attributes: 1.9.5(acorn@8.12.1)
- browserslist: 4.23.0
+ browserslist: 4.23.3
chrome-trace-event: 1.0.4
enhanced-resolve: 5.17.1
es-module-lexer: 1.5.4
@@ -16112,6 +16333,10 @@ snapshots:
dependencies:
isexe: 2.0.0
+ which@4.0.0:
+ dependencies:
+ isexe: 3.1.1
+
why-is-node-running@2.3.0:
dependencies:
siginfo: 2.0.0