From 23fa65444a73e76108aebaf6435a771c3f1a0777 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20UB?= <22903142+adrian-ub@users.noreply.github.com> Date: Tue, 24 Sep 2024 12:26:20 -0500 Subject: [PATCH] chore: restructure workspace --- .changeset/README.md | 8 - .changeset/config.json | 14 - .../DISCUSSION_TEMPLATE/blocks-request.yml | 25 - .github/FUNDING.yml | 2 + .github/ISSUE_TEMPLATE/bug_report.yml | 85 - .github/ISSUE_TEMPLATE/config.yml | 5 - .github/ISSUE_TEMPLATE/feature_request.yml | 55 - .github/changeset-version.js | 12 - .github/version-script-beta.js | 21 - .github/version-script-next.js | 21 - .github/workflows/ci.yml | 53 + .github/workflows/issue-stale.yml | 25 - .github/workflows/prerelease-comment.yml | 65 - .github/workflows/prerelease.yml | 60 - .github/workflows/release.yml | 56 +- .gitignore | 49 +- .npmrc | 4 +- .verdaccio/config.yml | 28 - .vscode/extensions.json | 6 - .vscode/settings.json | 38 + CONTRIBUTING.md | 1 + README.md | 35 +- apps/www/astro.config.mjs | 118 - apps/www/src/__registry__/examples.ts | 28 - apps/www/src/components/SelectStyle/index.ts | 4 - .../SelectStyle/rehype-select-style.ts | 113 - apps/www/src/components/component-preview.ts | 30 - apps/www/src/config/site.ts | 13 - apps/www/src/constants.ts | 1 - apps/www/src/lib/utils.ts | 6 - .../pages/registry/colors/index/index.json.ts | 5 - .../src/pages/registry/index/index.json.ts | 7 - .../registry/styles/[style]/[name].json.ts | 59 - .../pages/registry/styles/index/index.json.ts | 5 - .../src/pages/registry/themes/[theme].json.ts | 41 - apps/www/src/registry/blocks.ts | 3 - apps/www/src/registry/charts.ts | 3 - apps/www/src/registry/colors.ts | 1609 --- .../registry/default/example/alert-demo.ts | 35 - .../default/example/alert-destructive.ts | 35 - .../registry/default/example/avatar-demo.ts | 18 - .../registry/default/example/badge-demo.ts | 13 - .../default/example/badge-destructive.ts | 13 - .../registry/default/example/badge-outline.ts | 13 - .../default/example/badge-secondary.ts | 13 - .../registry/default/example/button-demo.ts | 13 - .../default/example/button-destructive.ts | 13 - .../registry/default/example/button-ghost.ts | 13 - .../registry/default/example/button-icon.ts | 21 - .../registry/default/example/button-link.ts | 13 - .../default/example/button-loading.ts | 21 - .../default/example/button-outline.ts | 13 - .../default/example/button-secondary.ts | 13 - .../default/example/button-with-icon.ts | 21 - .../registry/default/example/input-demo.ts | 13 - .../default/example/input-disabled.ts | 13 - .../registry/default/example/input-file.ts | 19 - .../registry/default/example/table-demo.ts | 117 - .../default/example/typography-large.ts | 12 - .../default/example/typography-muted.ts | 12 - .../default/example/typography-small.ts | 12 - .../default/ui/accordion.directive.ts | 85 - .../registry/default/ui/alert.directive.ts | 77 - .../registry/default/ui/avatar.directive.ts | 52 - .../registry/default/ui/badge.directive.ts | 44 - .../default/ui/breadcrumb.directive.ts | 129 - .../registry/default/ui/button.directive.ts | 64 - .../src/registry/default/ui/card.directive.ts | 85 - .../registry/default/ui/input.directive.ts | 35 - .../registry/default/ui/label.directive.ts | 28 - .../default/ui/separator.directive.ts | 22 - .../registry/default/ui/skeleton.directive.ts | 17 - .../registry/default/ui/switch.directive.ts | 29 - .../registry/default/ui/table.directive.ts | 119 - apps/www/src/registry/examples.ts | 3 - .../registry/new-york/example/alert-demo.ts | 35 - .../new-york/example/alert-destructive.ts | 35 - .../registry/new-york/example/avatar-demo.ts | 18 - .../registry/new-york/example/badge-demo.ts | 13 - .../new-york/example/badge-destructive.ts | 13 - .../new-york/example/badge-outline.ts | 13 - .../new-york/example/badge-secondary.ts | 13 - .../registry/new-york/example/button-demo.ts | 13 - .../new-york/example/button-destructive.ts | 13 - .../registry/new-york/example/button-ghost.ts | 13 - .../registry/new-york/example/button-icon.ts | 21 - .../registry/new-york/example/button-link.ts | 13 - .../new-york/example/button-loading.ts | 21 - .../new-york/example/button-outline.ts | 13 - .../new-york/example/button-secondary.ts | 13 - .../new-york/example/button-with-icon.ts | 21 - .../registry/new-york/example/input-demo.ts | 13 - .../new-york/example/input-disabled.ts | 13 - .../registry/new-york/example/input-file.ts | 19 - .../registry/new-york/example/table-demo.ts | 117 - .../new-york/example/typography-h3.ts | 14 - .../new-york/example/typography-large.ts | 12 - .../new-york/example/typography-muted.ts | 12 - .../new-york/example/typography-small.ts | 12 - .../new-york/ui/accordion.directive.ts | 85 - .../registry/new-york/ui/alert.directive.ts | 77 - .../registry/new-york/ui/avatar.directive.ts | 52 - .../registry/new-york/ui/badge.directive.ts | 44 - .../new-york/ui/breadcrumb.directive.ts | 129 - .../registry/new-york/ui/button.directive.ts | 65 - .../registry/new-york/ui/card.directive.ts | 85 - .../registry/new-york/ui/input.directive.ts | 35 - .../registry/new-york/ui/label.directive.ts | 28 - .../new-york/ui/separator.directive.ts | 22 - .../new-york/ui/skeleton.directive.ts | 17 - .../registry/new-york/ui/switch.directive.ts | 29 - .../registry/new-york/ui/table.directive.ts | 122 - apps/www/src/registry/registry.ts | 7 - apps/www/src/registry/styles.ts | 12 - apps/www/src/registry/themes.ts | 756 -- apps/www/src/registry/ui.ts | 80 - apps/www/src/schemas/badge.ts | 31 - apps/www/src/utils/base.ts | 15 - apps/www/src/utils/format-path.ts | 7 - apps/www/src/utils/path.ts | 54 - apps/www/src/virtual.d.ts | 24 - apps/www/tailwind.config.mjs | 85 - build.config.ts | 12 + {apps/www => docs}/.gitignore | 0 {apps/www => docs}/.vscode/extensions.json | 0 {apps/www => docs}/.vscode/launch.json | 0 .../.vscode/simple-query.code-snippets | 0 docs/astro.config.mjs | 118 + {apps/www => docs}/package.json | 2 +- {apps/www => docs}/public/favicon.ico | Bin {apps/www => docs}/public/og.jpg | Bin {apps/www => docs}/public/schema.json | 0 docs/src/__registry__/examples.ts | 28 + {apps/www => docs}/src/assets/logo.svg | 0 .../src/components/ComponentPreview.astro | 0 .../src/components/ComponentSource.astro | 0 .../src/components/SelectStyle/Item.astro | 0 .../src/components/SelectStyle/Select.astro | 0 docs/src/components/SelectStyle/index.ts | 4 + .../SelectStyle/rehype-select-style.ts | 114 + docs/src/components/component-preview.ts | 31 + .../components/starlight/ContentPanel.astro | 0 .../src/components/starlight/Hero.astro | 0 .../starlight/MarkdownContent.astro | 0 .../starlight/MobileMenuToggle.astro | 0 .../src/components/starlight/PageFrame.astro | 0 .../components/starlight/PageSidebar.astro | 0 .../src/components/starlight/PageTitle.astro | 0 .../src/components/starlight/Pagination.astro | 0 .../src/components/starlight/Search.astro | 0 .../src/components/starlight/Sidebar.astro | 0 .../components/starlight/SidebarSublist.astro | 0 .../src/components/starlight/SiteTitle.astro | 0 .../components/starlight/SocialIcons.astro | 0 .../starlight/TwoColumnContent.astro | 0 .../components/starlight/header/Header.astro | 0 .../components/starlight/header/MainNav.astro | 0 docs/src/config/site.ts | 13 + docs/src/constants.ts | 1 + {apps/www => docs}/src/content/config.ts | 6 +- .../src/content/docs/docs/cli.mdx | 0 .../src/content/docs/docs/components-json.mdx | 0 .../docs/docs/components/accordion.mdx | 0 .../content/docs/docs/components/alert.mdx | 0 .../content/docs/docs/components/avatar.mdx | 0 .../content/docs/docs/components/badge.mdx | 0 .../docs/docs/components/breadcrumb.mdx | 0 .../content/docs/docs/components/button.mdx | 0 .../content/docs/docs/components/input.mdx | 0 .../docs/docs/components/separator.mdx | 0 .../content/docs/docs/components/skeleton.mdx | 0 .../content/docs/docs/components/switch.mdx | 0 .../content/docs/docs/components/table.mdx | 0 .../src/content/docs/docs/components/tabs.mdx | 0 .../docs/docs/components/typography.mdx | 0 .../src/content/docs/docs/index.mdx | 0 .../docs/docs/installation/angular.mdx | 0 .../content/docs/docs/installation/astro.mdx | 0 .../content/docs/docs/installation/index.mdx | 0 .../src/content/docs/docs/theming.mdx | 0 {apps/www => docs}/src/content/docs/index.mdx | 0 {apps/www => docs}/src/env.d.ts | 0 .../src/fonts/GeistVariableVF.woff2 | Bin {apps/www => docs}/src/fonts/font-face.css | 0 .../src/lib/highlighter-theme.json | 0 docs/src/lib/utils.ts | 6 + .../src/pages/registry/colors/[base].json.ts | 54 +- .../pages/registry/colors/index/index.json.ts | 5 + docs/src/pages/registry/index/index.json.ts | 7 + .../registry/styles/[style]/[name].json.ts | 59 + .../pages/registry/styles/index/index.json.ts | 5 + .../src/pages/registry/themes.css.ts | 18 +- .../src/pages/registry/themes/[theme].json.ts | 41 + docs/src/registry/blocks.ts | 3 + docs/src/registry/charts.ts | 3 + docs/src/registry/colors.ts | 1609 +++ .../default/example/accordion-demo.ts | 16 +- .../registry/default/example/alert-demo.ts | 35 + .../default/example/alert-destructive.ts | 35 + .../registry/default/example/avatar-demo.ts | 18 + .../registry/default/example/badge-demo.ts | 13 + .../default/example/badge-destructive.ts | 13 + .../registry/default/example/badge-outline.ts | 13 + .../default/example/badge-secondary.ts | 13 + .../default/example/breadcrumb-demo.ts | 36 +- .../registry/default/example/button-demo.ts | 13 + .../default/example/button-destructive.ts | 13 + .../registry/default/example/button-ghost.ts | 13 + .../registry/default/example/button-icon.ts | 21 + .../registry/default/example/button-link.ts | 13 + .../default/example/button-loading.ts | 21 + .../default/example/button-outline.ts | 13 + .../default/example/button-secondary.ts | 13 + .../default/example/button-with-icon.ts | 21 + .../registry/default/example/input-demo.ts | 13 + .../default/example/input-disabled.ts | 13 + .../registry/default/example/input-file.ts | 19 + .../default/example/separator-demo.ts | 14 +- .../registry/default/example/skeleton-card.ts | 14 +- .../registry/default/example/skeleton-demo.ts | 14 +- .../registry/default/example/switch-demo.ts | 16 +- .../registry/default/example/table-demo.ts | 117 + .../src/registry/default/example/tabs-demo.ts | 52 +- .../default/example/typography-blockquote.ts | 10 +- .../default/example/typography-demo.ts | 10 +- .../registry/default/example/typography-h1.ts | 10 +- .../registry/default/example/typography-h2.ts | 10 +- .../registry/default/example/typography-h3.ts | 10 +- .../registry/default/example/typography-h4.ts | 10 +- .../default/example/typography-inline-code.ts | 10 +- .../default/example/typography-large.ts | 12 + .../default/example/typography-lead.ts | 10 +- .../default/example/typography-list.ts | 10 +- .../default/example/typography-muted.ts | 12 + .../registry/default/example/typography-p.ts | 10 +- .../default/example/typography-small.ts | 12 + .../default/example/typography-table.ts | 10 +- .../default/ui/accordion.directive.ts | 83 + .../registry/default/ui/alert.directive.ts | 77 + .../registry/default/ui/avatar.directive.ts | 52 + .../registry/default/ui/badge.directive.ts | 44 + .../default/ui/breadcrumb.directive.ts | 129 + .../registry/default/ui/button.directive.ts | 64 + .../src/registry/default/ui/card.directive.ts | 85 + .../registry/default/ui/input.directive.ts | 35 + .../registry/default/ui/label.directive.ts | 28 + .../default/ui/separator.directive.ts | 22 + .../registry/default/ui/skeleton.directive.ts | 17 + .../registry/default/ui/switch.directive.ts | 29 + .../registry/default/ui/table.directive.ts | 119 + .../src/registry/default/ui/tabs.directive.ts | 64 +- docs/src/registry/examples.ts | 3 + .../new-york/example/accordion-demo.ts | 16 +- .../registry/new-york/example/alert-demo.ts | 35 + .../new-york/example/alert-destructive.ts | 35 + .../registry/new-york/example/avatar-demo.ts | 18 + .../registry/new-york/example/badge-demo.ts | 13 + .../new-york/example/badge-destructive.ts | 13 + .../new-york/example/badge-outline.ts | 13 + .../new-york/example/badge-secondary.ts | 13 + .../new-york/example/breadcrumb-demo.ts | 36 +- .../registry/new-york/example/button-demo.ts | 13 + .../new-york/example/button-destructive.ts | 13 + .../registry/new-york/example/button-ghost.ts | 13 + .../registry/new-york/example/button-icon.ts | 21 + .../registry/new-york/example/button-link.ts | 13 + .../new-york/example/button-loading.ts | 21 + .../new-york/example/button-outline.ts | 13 + .../new-york/example/button-secondary.ts | 13 + .../new-york/example/button-with-icon.ts | 21 + .../registry/new-york/example/input-demo.ts | 13 + .../new-york/example/input-disabled.ts | 13 + .../registry/new-york/example/input-file.ts | 19 + .../new-york/example/separator-demo.ts | 14 +- .../new-york/example/skeleton-card.ts | 14 +- .../new-york/example/skeleton-demo.ts | 14 +- .../registry/new-york/example/switch-demo.ts | 16 +- .../registry/new-york/example/table-demo.ts | 117 + .../registry/new-york/example/tabs-demo.ts | 52 +- .../new-york/example/typography-blockquote.ts | 10 +- .../new-york/example/typography-demo.ts | 10 +- .../new-york/example/typography-h1.ts | 10 +- .../new-york/example/typography-h2.ts | 10 +- .../new-york/example/typography-h3.ts | 14 + .../new-york/example/typography-h4.ts | 10 +- .../example/typography-inline-code.ts | 10 +- .../new-york/example/typography-large.ts | 12 + .../new-york/example/typography-lead.ts | 10 +- .../new-york/example/typography-list.ts | 10 +- .../new-york/example/typography-muted.ts | 12 + .../registry/new-york/example/typography-p.ts | 10 +- .../new-york/example/typography-small.ts | 12 + .../new-york/example/typography-table.ts | 10 +- .../new-york/ui/accordion.directive.ts | 83 + .../registry/new-york/ui/alert.directive.ts | 77 + .../registry/new-york/ui/avatar.directive.ts | 52 + .../registry/new-york/ui/badge.directive.ts | 44 + .../new-york/ui/breadcrumb.directive.ts | 129 + .../registry/new-york/ui/button.directive.ts | 65 + .../registry/new-york/ui/card.directive.ts | 85 + .../registry/new-york/ui/input.directive.ts | 35 + .../registry/new-york/ui/label.directive.ts | 28 + .../new-york/ui/separator.directive.ts | 22 + .../new-york/ui/skeleton.directive.ts | 17 + .../registry/new-york/ui/switch.directive.ts | 29 + .../registry/new-york/ui/table.directive.ts | 122 + .../registry/new-york/ui/tabs.directive.ts | 64 +- docs/src/registry/registry.ts | 7 + {apps/www => docs}/src/registry/schema.ts | 32 +- docs/src/registry/styles.ts | 12 + docs/src/registry/themes.ts | 756 ++ docs/src/registry/ui.ts | 80 + docs/src/schemas/badge.ts | 33 + .../www => docs}/src/schemas/prevNextLink.ts | 13 +- {apps/www => docs}/src/schemas/sidebar.ts | 57 +- {apps/www => docs}/src/style/markdown.css | 0 {apps/www => docs}/src/tailwind.css | 0 docs/src/utils/base.ts | 15 + .../src/utils/createPathFormatter.ts | 35 +- docs/src/utils/format-path.ts | 7 + {apps/www => docs}/src/utils/i18n.ts | 162 +- {apps/www => docs}/src/utils/navigation.ts | 381 +- docs/src/utils/path.ts | 58 + {apps/www => docs}/src/utils/routing.ts | 112 +- {apps/www => docs}/src/utils/slugs.ts | 106 +- .../src/utils/validateLogoImports.ts | 23 +- docs/src/virtual.d.ts | 24 + docs/tailwind.config.mjs | 85 + {apps/www => docs}/tsconfig.app.json | 20 +- {apps/www => docs}/tsconfig.json | 0 eslint.config.js | 9 + nx.json | 10 - package.json | 106 +- packages/cli/.gitignore | 3 - packages/cli/CHANGELOG.md | 13 - packages/cli/README.md | 43 - packages/cli/package.json | 75 - packages/cli/src/commands/add.ts | 213 - packages/cli/src/commands/diff.ts | 196 - packages/cli/src/commands/init.ts | 373 - packages/cli/src/index.ts | 29 - packages/cli/src/utils/get-config.ts | 99 - packages/cli/src/utils/get-package-info.ts | 9 - packages/cli/src/utils/get-package-manager.ts | 13 - packages/cli/src/utils/get-project-info.ts | 108 - packages/cli/src/utils/handle-error.ts | 16 - packages/cli/src/utils/logger.ts | 19 - packages/cli/src/utils/registry/index.ts | 156 - packages/cli/src/utils/transformers/index.ts | 51 - .../utils/transformers/transform-css-vars.ts | 107 - packages/cli/tsconfig.json | 24 - packages/cli/tsup.config.ts | 12 - pnpm-lock.yaml | 8968 +++++++++-------- pnpm-workspace.yaml | 6 +- project.json | 14 - src/cli.ts | 31 + src/commands/add.ts | 218 + src/commands/diff.ts | 201 + src/commands/init.ts | 379 + src/utils/get-config.ts | 102 + src/utils/get-package-info.ts | 9 + src/utils/get-package-manager.ts | 16 + src/utils/get-project-info.ts | 112 + src/utils/handle-error.ts | 18 + src/utils/logger.ts | 20 + src/utils/registry/index.ts | 165 + .../cli/src => src}/utils/registry/schema.ts | 8 +- .../cli/src => src}/utils/resolve-import.ts | 12 +- {packages/cli/src => src}/utils/templates.ts | 10 +- src/utils/transformers/index.ts | 53 + src/utils/transformers/transform-css-vars.ts | 108 + .../utils/transformers/transform-import.ts | 35 +- .../utils/transformers/transform-tw-prefix.ts | 173 +- test/cli.test.ts | 7 + tsconfig.base.json | 22 - tsconfig.json | 15 + 376 files changed, 13184 insertions(+), 12903 deletions(-) delete mode 100644 .changeset/README.md delete mode 100644 .changeset/config.json delete mode 100644 .github/DISCUSSION_TEMPLATE/blocks-request.yml create mode 100644 .github/FUNDING.yml delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 .github/changeset-version.js delete mode 100644 .github/version-script-beta.js delete mode 100644 .github/version-script-next.js create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/issue-stale.yml delete mode 100644 .github/workflows/prerelease-comment.yml delete mode 100644 .github/workflows/prerelease.yml delete mode 100644 .verdaccio/config.yml delete mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 CONTRIBUTING.md delete mode 100644 apps/www/astro.config.mjs delete mode 100644 apps/www/src/__registry__/examples.ts delete mode 100644 apps/www/src/components/SelectStyle/index.ts delete mode 100644 apps/www/src/components/SelectStyle/rehype-select-style.ts delete mode 100644 apps/www/src/components/component-preview.ts delete mode 100644 apps/www/src/config/site.ts delete mode 100644 apps/www/src/constants.ts delete mode 100644 apps/www/src/lib/utils.ts delete mode 100644 apps/www/src/pages/registry/colors/index/index.json.ts delete mode 100644 apps/www/src/pages/registry/index/index.json.ts delete mode 100644 apps/www/src/pages/registry/styles/[style]/[name].json.ts delete mode 100644 apps/www/src/pages/registry/styles/index/index.json.ts delete mode 100644 apps/www/src/pages/registry/themes/[theme].json.ts delete mode 100644 apps/www/src/registry/blocks.ts delete mode 100644 apps/www/src/registry/charts.ts delete mode 100644 apps/www/src/registry/colors.ts delete mode 100644 apps/www/src/registry/default/example/alert-demo.ts delete mode 100644 apps/www/src/registry/default/example/alert-destructive.ts delete mode 100644 apps/www/src/registry/default/example/avatar-demo.ts delete mode 100644 apps/www/src/registry/default/example/badge-demo.ts delete mode 100644 apps/www/src/registry/default/example/badge-destructive.ts delete mode 100644 apps/www/src/registry/default/example/badge-outline.ts delete mode 100644 apps/www/src/registry/default/example/badge-secondary.ts delete mode 100644 apps/www/src/registry/default/example/button-demo.ts delete mode 100644 apps/www/src/registry/default/example/button-destructive.ts delete mode 100644 apps/www/src/registry/default/example/button-ghost.ts delete mode 100644 apps/www/src/registry/default/example/button-icon.ts delete mode 100644 apps/www/src/registry/default/example/button-link.ts delete mode 100644 apps/www/src/registry/default/example/button-loading.ts delete mode 100644 apps/www/src/registry/default/example/button-outline.ts delete mode 100644 apps/www/src/registry/default/example/button-secondary.ts delete mode 100644 apps/www/src/registry/default/example/button-with-icon.ts delete mode 100644 apps/www/src/registry/default/example/input-demo.ts delete mode 100644 apps/www/src/registry/default/example/input-disabled.ts delete mode 100644 apps/www/src/registry/default/example/input-file.ts delete mode 100644 apps/www/src/registry/default/example/table-demo.ts delete mode 100644 apps/www/src/registry/default/example/typography-large.ts delete mode 100644 apps/www/src/registry/default/example/typography-muted.ts delete mode 100644 apps/www/src/registry/default/example/typography-small.ts delete mode 100644 apps/www/src/registry/default/ui/accordion.directive.ts delete mode 100644 apps/www/src/registry/default/ui/alert.directive.ts delete mode 100644 apps/www/src/registry/default/ui/avatar.directive.ts delete mode 100644 apps/www/src/registry/default/ui/badge.directive.ts delete mode 100644 apps/www/src/registry/default/ui/breadcrumb.directive.ts delete mode 100644 apps/www/src/registry/default/ui/button.directive.ts delete mode 100644 apps/www/src/registry/default/ui/card.directive.ts delete mode 100644 apps/www/src/registry/default/ui/input.directive.ts delete mode 100644 apps/www/src/registry/default/ui/label.directive.ts delete mode 100644 apps/www/src/registry/default/ui/separator.directive.ts delete mode 100644 apps/www/src/registry/default/ui/skeleton.directive.ts delete mode 100644 apps/www/src/registry/default/ui/switch.directive.ts delete mode 100644 apps/www/src/registry/default/ui/table.directive.ts delete mode 100644 apps/www/src/registry/examples.ts delete mode 100644 apps/www/src/registry/new-york/example/alert-demo.ts delete mode 100644 apps/www/src/registry/new-york/example/alert-destructive.ts delete mode 100644 apps/www/src/registry/new-york/example/avatar-demo.ts delete mode 100644 apps/www/src/registry/new-york/example/badge-demo.ts delete mode 100644 apps/www/src/registry/new-york/example/badge-destructive.ts delete mode 100644 apps/www/src/registry/new-york/example/badge-outline.ts delete mode 100644 apps/www/src/registry/new-york/example/badge-secondary.ts delete mode 100644 apps/www/src/registry/new-york/example/button-demo.ts delete mode 100644 apps/www/src/registry/new-york/example/button-destructive.ts delete mode 100644 apps/www/src/registry/new-york/example/button-ghost.ts delete mode 100644 apps/www/src/registry/new-york/example/button-icon.ts delete mode 100644 apps/www/src/registry/new-york/example/button-link.ts delete mode 100644 apps/www/src/registry/new-york/example/button-loading.ts delete mode 100644 apps/www/src/registry/new-york/example/button-outline.ts delete mode 100644 apps/www/src/registry/new-york/example/button-secondary.ts delete mode 100644 apps/www/src/registry/new-york/example/button-with-icon.ts delete mode 100644 apps/www/src/registry/new-york/example/input-demo.ts delete mode 100644 apps/www/src/registry/new-york/example/input-disabled.ts delete mode 100644 apps/www/src/registry/new-york/example/input-file.ts delete mode 100644 apps/www/src/registry/new-york/example/table-demo.ts delete mode 100644 apps/www/src/registry/new-york/example/typography-h3.ts delete mode 100644 apps/www/src/registry/new-york/example/typography-large.ts delete mode 100644 apps/www/src/registry/new-york/example/typography-muted.ts delete mode 100644 apps/www/src/registry/new-york/example/typography-small.ts delete mode 100644 apps/www/src/registry/new-york/ui/accordion.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/alert.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/avatar.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/badge.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/breadcrumb.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/button.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/card.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/input.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/label.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/separator.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/skeleton.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/switch.directive.ts delete mode 100644 apps/www/src/registry/new-york/ui/table.directive.ts delete mode 100644 apps/www/src/registry/registry.ts delete mode 100644 apps/www/src/registry/styles.ts delete mode 100644 apps/www/src/registry/themes.ts delete mode 100644 apps/www/src/registry/ui.ts delete mode 100644 apps/www/src/schemas/badge.ts delete mode 100644 apps/www/src/utils/base.ts delete mode 100644 apps/www/src/utils/format-path.ts delete mode 100644 apps/www/src/utils/path.ts delete mode 100644 apps/www/src/virtual.d.ts delete mode 100644 apps/www/tailwind.config.mjs create mode 100644 build.config.ts rename {apps/www => docs}/.gitignore (100%) rename {apps/www => docs}/.vscode/extensions.json (100%) rename {apps/www => docs}/.vscode/launch.json (100%) rename {apps/www => docs}/.vscode/simple-query.code-snippets (100%) create mode 100644 docs/astro.config.mjs rename {apps/www => docs}/package.json (98%) rename {apps/www => docs}/public/favicon.ico (100%) rename {apps/www => docs}/public/og.jpg (100%) rename {apps/www => docs}/public/schema.json (100%) create mode 100644 docs/src/__registry__/examples.ts rename {apps/www => docs}/src/assets/logo.svg (100%) rename {apps/www => docs}/src/components/ComponentPreview.astro (100%) rename {apps/www => docs}/src/components/ComponentSource.astro (100%) rename {apps/www => docs}/src/components/SelectStyle/Item.astro (100%) rename {apps/www => docs}/src/components/SelectStyle/Select.astro (100%) create mode 100644 docs/src/components/SelectStyle/index.ts create mode 100644 docs/src/components/SelectStyle/rehype-select-style.ts create mode 100644 docs/src/components/component-preview.ts rename {apps/www => docs}/src/components/starlight/ContentPanel.astro (100%) rename {apps/www => docs}/src/components/starlight/Hero.astro (100%) rename {apps/www => docs}/src/components/starlight/MarkdownContent.astro (100%) rename {apps/www => docs}/src/components/starlight/MobileMenuToggle.astro (100%) rename {apps/www => docs}/src/components/starlight/PageFrame.astro (100%) rename {apps/www => docs}/src/components/starlight/PageSidebar.astro (100%) rename {apps/www => docs}/src/components/starlight/PageTitle.astro (100%) rename {apps/www => docs}/src/components/starlight/Pagination.astro (100%) rename {apps/www => docs}/src/components/starlight/Search.astro (100%) rename {apps/www => docs}/src/components/starlight/Sidebar.astro (100%) rename {apps/www => docs}/src/components/starlight/SidebarSublist.astro (100%) rename {apps/www => docs}/src/components/starlight/SiteTitle.astro (100%) rename {apps/www => docs}/src/components/starlight/SocialIcons.astro (100%) rename {apps/www => docs}/src/components/starlight/TwoColumnContent.astro (100%) rename {apps/www => docs}/src/components/starlight/header/Header.astro (100%) rename {apps/www => docs}/src/components/starlight/header/MainNav.astro (100%) create mode 100644 docs/src/config/site.ts create mode 100644 docs/src/constants.ts rename {apps/www => docs}/src/content/config.ts (71%) rename {apps/www => docs}/src/content/docs/docs/cli.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components-json.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/accordion.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/alert.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/avatar.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/badge.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/breadcrumb.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/button.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/input.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/separator.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/skeleton.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/switch.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/table.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/tabs.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/components/typography.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/index.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/installation/angular.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/installation/astro.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/installation/index.mdx (100%) rename {apps/www => docs}/src/content/docs/docs/theming.mdx (100%) rename {apps/www => docs}/src/content/docs/index.mdx (100%) rename {apps/www => docs}/src/env.d.ts (100%) rename {apps/www => docs}/src/fonts/GeistVariableVF.woff2 (100%) rename {apps/www => docs}/src/fonts/font-face.css (100%) rename {apps/www => docs}/src/lib/highlighter-theme.json (100%) create mode 100644 docs/src/lib/utils.ts rename {apps/www => docs}/src/pages/registry/colors/[base].json.ts (76%) create mode 100644 docs/src/pages/registry/colors/index/index.json.ts create mode 100644 docs/src/pages/registry/index/index.json.ts create mode 100644 docs/src/pages/registry/styles/[style]/[name].json.ts create mode 100644 docs/src/pages/registry/styles/index/index.json.ts rename {apps/www => docs}/src/pages/registry/themes.css.ts (91%) create mode 100644 docs/src/pages/registry/themes/[theme].json.ts create mode 100644 docs/src/registry/blocks.ts create mode 100644 docs/src/registry/charts.ts create mode 100644 docs/src/registry/colors.ts rename {apps/www => docs}/src/registry/default/example/accordion-demo.ts (72%) create mode 100644 docs/src/registry/default/example/alert-demo.ts create mode 100644 docs/src/registry/default/example/alert-destructive.ts create mode 100644 docs/src/registry/default/example/avatar-demo.ts create mode 100644 docs/src/registry/default/example/badge-demo.ts create mode 100644 docs/src/registry/default/example/badge-destructive.ts create mode 100644 docs/src/registry/default/example/badge-outline.ts create mode 100644 docs/src/registry/default/example/badge-secondary.ts rename {apps/www => docs}/src/registry/default/example/breadcrumb-demo.ts (63%) create mode 100644 docs/src/registry/default/example/button-demo.ts create mode 100644 docs/src/registry/default/example/button-destructive.ts create mode 100644 docs/src/registry/default/example/button-ghost.ts create mode 100644 docs/src/registry/default/example/button-icon.ts create mode 100644 docs/src/registry/default/example/button-link.ts create mode 100644 docs/src/registry/default/example/button-loading.ts create mode 100644 docs/src/registry/default/example/button-outline.ts create mode 100644 docs/src/registry/default/example/button-secondary.ts create mode 100644 docs/src/registry/default/example/button-with-icon.ts create mode 100644 docs/src/registry/default/example/input-demo.ts create mode 100644 docs/src/registry/default/example/input-disabled.ts create mode 100644 docs/src/registry/default/example/input-file.ts rename {apps/www => docs}/src/registry/default/example/separator-demo.ts (68%) rename {apps/www => docs}/src/registry/default/example/skeleton-card.ts (56%) rename {apps/www => docs}/src/registry/default/example/skeleton-demo.ts (55%) rename {apps/www => docs}/src/registry/default/example/switch-demo.ts (63%) create mode 100644 docs/src/registry/default/example/table-demo.ts rename {apps/www => docs}/src/registry/default/example/tabs-demo.ts (76%) rename {apps/www => docs}/src/registry/default/example/typography-blockquote.ts (60%) rename {apps/www => docs}/src/registry/default/example/typography-demo.ts (97%) rename {apps/www => docs}/src/registry/default/example/typography-h1.ts (55%) rename {apps/www => docs}/src/registry/default/example/typography-h2.ts (55%) rename {apps/www => docs}/src/registry/default/example/typography-h3.ts (50%) rename {apps/www => docs}/src/registry/default/example/typography-h4.ts (52%) rename {apps/www => docs}/src/registry/default/example/typography-inline-code.ts (56%) create mode 100644 docs/src/registry/default/example/typography-large.ts rename {apps/www => docs}/src/registry/default/example/typography-lead.ts (57%) rename {apps/www => docs}/src/registry/default/example/typography-list.ts (62%) create mode 100644 docs/src/registry/default/example/typography-muted.ts rename {apps/www => docs}/src/registry/default/example/typography-p.ts (61%) create mode 100644 docs/src/registry/default/example/typography-small.ts rename {apps/www => docs}/src/registry/default/example/typography-table.ts (92%) create mode 100644 docs/src/registry/default/ui/accordion.directive.ts create mode 100644 docs/src/registry/default/ui/alert.directive.ts create mode 100644 docs/src/registry/default/ui/avatar.directive.ts create mode 100644 docs/src/registry/default/ui/badge.directive.ts create mode 100644 docs/src/registry/default/ui/breadcrumb.directive.ts create mode 100644 docs/src/registry/default/ui/button.directive.ts create mode 100644 docs/src/registry/default/ui/card.directive.ts create mode 100644 docs/src/registry/default/ui/input.directive.ts create mode 100644 docs/src/registry/default/ui/label.directive.ts create mode 100644 docs/src/registry/default/ui/separator.directive.ts create mode 100644 docs/src/registry/default/ui/skeleton.directive.ts create mode 100644 docs/src/registry/default/ui/switch.directive.ts create mode 100644 docs/src/registry/default/ui/table.directive.ts rename {apps/www => docs}/src/registry/default/ui/tabs.directive.ts (51%) create mode 100644 docs/src/registry/examples.ts rename {apps/www => docs}/src/registry/new-york/example/accordion-demo.ts (72%) create mode 100644 docs/src/registry/new-york/example/alert-demo.ts create mode 100644 docs/src/registry/new-york/example/alert-destructive.ts create mode 100644 docs/src/registry/new-york/example/avatar-demo.ts create mode 100644 docs/src/registry/new-york/example/badge-demo.ts create mode 100644 docs/src/registry/new-york/example/badge-destructive.ts create mode 100644 docs/src/registry/new-york/example/badge-outline.ts create mode 100644 docs/src/registry/new-york/example/badge-secondary.ts rename {apps/www => docs}/src/registry/new-york/example/breadcrumb-demo.ts (63%) create mode 100644 docs/src/registry/new-york/example/button-demo.ts create mode 100644 docs/src/registry/new-york/example/button-destructive.ts create mode 100644 docs/src/registry/new-york/example/button-ghost.ts create mode 100644 docs/src/registry/new-york/example/button-icon.ts create mode 100644 docs/src/registry/new-york/example/button-link.ts create mode 100644 docs/src/registry/new-york/example/button-loading.ts create mode 100644 docs/src/registry/new-york/example/button-outline.ts create mode 100644 docs/src/registry/new-york/example/button-secondary.ts create mode 100644 docs/src/registry/new-york/example/button-with-icon.ts create mode 100644 docs/src/registry/new-york/example/input-demo.ts create mode 100644 docs/src/registry/new-york/example/input-disabled.ts create mode 100644 docs/src/registry/new-york/example/input-file.ts rename {apps/www => docs}/src/registry/new-york/example/separator-demo.ts (68%) rename {apps/www => docs}/src/registry/new-york/example/skeleton-card.ts (55%) rename {apps/www => docs}/src/registry/new-york/example/skeleton-demo.ts (54%) rename {apps/www => docs}/src/registry/new-york/example/switch-demo.ts (63%) create mode 100644 docs/src/registry/new-york/example/table-demo.ts rename {apps/www => docs}/src/registry/new-york/example/tabs-demo.ts (76%) rename {apps/www => docs}/src/registry/new-york/example/typography-blockquote.ts (60%) rename {apps/www => docs}/src/registry/new-york/example/typography-demo.ts (97%) rename {apps/www => docs}/src/registry/new-york/example/typography-h1.ts (55%) rename {apps/www => docs}/src/registry/new-york/example/typography-h2.ts (55%) create mode 100644 docs/src/registry/new-york/example/typography-h3.ts rename {apps/www => docs}/src/registry/new-york/example/typography-h4.ts (52%) rename {apps/www => docs}/src/registry/new-york/example/typography-inline-code.ts (56%) create mode 100644 docs/src/registry/new-york/example/typography-large.ts rename {apps/www => docs}/src/registry/new-york/example/typography-lead.ts (57%) rename {apps/www => docs}/src/registry/new-york/example/typography-list.ts (62%) create mode 100644 docs/src/registry/new-york/example/typography-muted.ts rename {apps/www => docs}/src/registry/new-york/example/typography-p.ts (61%) create mode 100644 docs/src/registry/new-york/example/typography-small.ts rename {apps/www => docs}/src/registry/new-york/example/typography-table.ts (92%) create mode 100644 docs/src/registry/new-york/ui/accordion.directive.ts create mode 100644 docs/src/registry/new-york/ui/alert.directive.ts create mode 100644 docs/src/registry/new-york/ui/avatar.directive.ts create mode 100644 docs/src/registry/new-york/ui/badge.directive.ts create mode 100644 docs/src/registry/new-york/ui/breadcrumb.directive.ts create mode 100644 docs/src/registry/new-york/ui/button.directive.ts create mode 100644 docs/src/registry/new-york/ui/card.directive.ts create mode 100644 docs/src/registry/new-york/ui/input.directive.ts create mode 100644 docs/src/registry/new-york/ui/label.directive.ts create mode 100644 docs/src/registry/new-york/ui/separator.directive.ts create mode 100644 docs/src/registry/new-york/ui/skeleton.directive.ts create mode 100644 docs/src/registry/new-york/ui/switch.directive.ts create mode 100644 docs/src/registry/new-york/ui/table.directive.ts rename {apps/www => docs}/src/registry/new-york/ui/tabs.directive.ts (51%) create mode 100644 docs/src/registry/registry.ts rename {apps/www => docs}/src/registry/schema.ts (64%) create mode 100644 docs/src/registry/styles.ts create mode 100644 docs/src/registry/themes.ts create mode 100644 docs/src/registry/ui.ts create mode 100644 docs/src/schemas/badge.ts rename {apps/www => docs}/src/schemas/prevNextLink.ts (80%) rename {apps/www => docs}/src/schemas/sidebar.ts (83%) rename {apps/www => docs}/src/style/markdown.css (100%) rename {apps/www => docs}/src/tailwind.css (100%) create mode 100644 docs/src/utils/base.ts rename {apps/www => docs}/src/utils/createPathFormatter.ts (61%) create mode 100644 docs/src/utils/format-path.ts rename {apps/www => docs}/src/utils/i18n.ts (64%) rename {apps/www => docs}/src/utils/navigation.ts (60%) create mode 100644 docs/src/utils/path.ts rename {apps/www => docs}/src/utils/routing.ts (57%) rename {apps/www => docs}/src/utils/slugs.ts (57%) rename {apps/www => docs}/src/utils/validateLogoImports.ts (56%) create mode 100644 docs/src/virtual.d.ts create mode 100644 docs/tailwind.config.mjs rename {apps/www => docs}/tsconfig.app.json (100%) rename {apps/www => docs}/tsconfig.json (100%) create mode 100644 eslint.config.js delete mode 100644 nx.json delete mode 100644 packages/cli/.gitignore delete mode 100644 packages/cli/CHANGELOG.md delete mode 100644 packages/cli/README.md delete mode 100644 packages/cli/package.json delete mode 100644 packages/cli/src/commands/add.ts delete mode 100644 packages/cli/src/commands/diff.ts delete mode 100644 packages/cli/src/commands/init.ts delete mode 100644 packages/cli/src/index.ts delete mode 100644 packages/cli/src/utils/get-config.ts delete mode 100644 packages/cli/src/utils/get-package-info.ts delete mode 100644 packages/cli/src/utils/get-package-manager.ts delete mode 100644 packages/cli/src/utils/get-project-info.ts delete mode 100644 packages/cli/src/utils/handle-error.ts delete mode 100644 packages/cli/src/utils/logger.ts delete mode 100644 packages/cli/src/utils/registry/index.ts delete mode 100644 packages/cli/src/utils/transformers/index.ts delete mode 100644 packages/cli/src/utils/transformers/transform-css-vars.ts delete mode 100644 packages/cli/tsconfig.json delete mode 100644 packages/cli/tsup.config.ts delete mode 100644 project.json create mode 100644 src/cli.ts create mode 100644 src/commands/add.ts create mode 100644 src/commands/diff.ts create mode 100644 src/commands/init.ts create mode 100644 src/utils/get-config.ts create mode 100644 src/utils/get-package-info.ts create mode 100644 src/utils/get-package-manager.ts create mode 100644 src/utils/get-project-info.ts create mode 100644 src/utils/handle-error.ts create mode 100644 src/utils/logger.ts create mode 100644 src/utils/registry/index.ts rename {packages/cli/src => src}/utils/registry/schema.ts (89%) rename {packages/cli/src => src}/utils/resolve-import.ts (61%) rename {packages/cli/src => src}/utils/templates.ts (99%) create mode 100644 src/utils/transformers/index.ts create mode 100644 src/utils/transformers/transform-css-vars.ts rename {packages/cli/src => src}/utils/transformers/transform-import.ts (59%) rename {packages/cli/src => src}/utils/transformers/transform-tw-prefix.ts (53%) create mode 100644 test/cli.test.ts delete mode 100644 tsconfig.base.json create mode 100644 tsconfig.json diff --git a/.changeset/README.md b/.changeset/README.md deleted file mode 100644 index e5b6d8d..0000000 --- a/.changeset/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Changesets - -Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works -with multi-package repos, or single-package repos to help you version and publish your code. You can -find the full documentation for it [in our repository](https://github.com/changesets/changesets) - -We have a quick list of common questions to get you started engaging with this project in -[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json deleted file mode 100644 index 2707074..0000000 --- a/.changeset/config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://unpkg.com/@changesets/config@3.0.2/schema.json", - "changelog": [ - "@changesets/changelog-github", - { "repo": "adrian-ub/shadcn-ng" } - ], - "commit": false, - "fixed": [], - "linked": [], - "access": "public", - "baseBranch": "main", - "updateInternalDependencies": "patch", - "ignore": ["www"] -} diff --git a/.github/DISCUSSION_TEMPLATE/blocks-request.yml b/.github/DISCUSSION_TEMPLATE/blocks-request.yml deleted file mode 100644 index d23ca30..0000000 --- a/.github/DISCUSSION_TEMPLATE/blocks-request.yml +++ /dev/null @@ -1,25 +0,0 @@ -title: "[blocks]: " -labels: ["Blocks Request"] -body: - - type: markdown - attributes: - value: | - ### Thanks for taking the time to create a block request! Please search open/closed requests before submitting, as the block or a similar one may have already been requested. - - - type: textarea - id: block-description - attributes: - label: Description - description: Tell us about your block request - placeholder: "A dashboard for an e-commerce website showing sales, orders, and customers..." - validations: - required: true - - - type: input - id: block-example-url - attributes: - label: Example - description: Link to an example of the block - placeholder: ex. https://example.com - validations: - required: false diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..25021fe --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: [adrian-ub] +opencollective: adrian-ub diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 0330c21..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: "Bug report" -description: Report an issue -title: "[bug]: " -labels: ["bug"] -body: - - type: markdown - attributes: - value: | - ### Thanks for taking the time to create a bug report. Please search open/closed issues before submitting, as the issue may have already been reported/addressed. - - - type: markdown - attributes: - value: | - #### If you aren't sure this is a bug or not, please open a discussion instead: - - [Discussions](https://github.com/adrian-ub/shadcn-ng/discussions/new?category=general) - - - type: textarea - id: bug-description - attributes: - label: Describe the bug - description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us how in the description. Thanks! - placeholder: Bug description - validations: - required: true - - - type: input - id: components-affected - attributes: - label: Affected component/components - description: Which shadcn-ng components are affected? - placeholder: ex. Button, Checkbox... - validations: - required: true - - - type: textarea - id: reproduction - attributes: - label: How to reproduce - description: A step-by-step description of how to reproduce the bug. - placeholder: | - 1. Go to '...' - 2. Click on '....' - 3. See error - validations: - required: true - - - type: input - id: codesandbox-stackblitz - attributes: - label: Codesandbox/StackBlitz link - description: | - A link to a CodeSandbox or StackBlitz that includes a minimal reproduction of the problem. In rare cases when not applicable, you can link to a GitHub repository that we can easily run to recreate the issue. If a report is vague and does not have a reproduction, it will be closed without warning. - - > [!CAUTION] - > If you skip this step, this issue might be **labeled** with `please add a reproduction` and **closed**. - validations: - required: false - - - type: textarea - id: logs - attributes: - label: Logs - description: "Please include browser console and server logs around the time this bug occurred. Optional if provided reproduction. Please try not to insert an image but copy paste the log text." - render: bash - - - type: textarea - id: system-info - attributes: - label: System Info - description: Information about browsers, system or binaries that's relevant. - render: bash - placeholder: System, Binaries, Browsers - validations: - required: true - - - type: checkboxes - id: terms - attributes: - label: Before submitting - description: By submitting this issue, you agree to follow our [Contributing Guidelines](https://github.com/adrian-ub/shadcn-ng/blob/main/CONTRIBUTING.md). - options: - - label: I've made research efforts and searched the documentation - required: true - - label: I've searched for existing issues - required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 4d1e383..0000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Get Help - url: https://github.com/adrian-ub/shadcn-ng/discussions/new?category=general - about: If you can't get something to work the way you expect, open a question in our discussion forums. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index 4e08aa0..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: "Feature request" -description: Create a feature request for shadcn-ng -title: "[feat]: " -labels: ["area: request"] -body: - - type: markdown - attributes: - value: | - ### Thanks for taking the time to create a feature request! Please search open/closed issues before submitting, as the issue may have already been reported/addressed. - - - type: markdown - attributes: - value: | - #### If you aren't sure this is a bug or not, please open a discussion instead: - - [Discussions](https://github.com/adrian-ub/shadcn-ng/discussions/new?category=general) - - - type: textarea - id: feature-description - attributes: - label: Feature description - description: Tell us about your feature request - placeholder: "I think this feature would be great because..." - value: "Describe your feature request..." - validations: - required: true - - - type: input - id: components-affected - attributes: - label: Affected component/components - description: Is this feature request relevant to any of the already existing components? - placeholder: ex. Button, Checkbox... - validations: - required: false - - - type: textarea - id: context - attributes: - label: Additional Context - description: Add any other context about the feature here. - placeholder: ex. screenshots, Stack Overflow links, forum links, etc. - value: "Additional details here..." - validations: - required: false - - - type: checkboxes - id: terms - attributes: - label: Before submitting - description: By submitting this issue, you agree to follow our [Contributing Guidelines](https://github.com/adrian-ub/shadcn-ng/blob/main/CONTRIBUTING.md). - options: - - label: I've made research efforts and searched the documentation - required: true - - label: I've searched for existing issues and PRs - required: true diff --git a/.github/changeset-version.js b/.github/changeset-version.js deleted file mode 100644 index e1b4cef..0000000 --- a/.github/changeset-version.js +++ /dev/null @@ -1,12 +0,0 @@ -// ORIGINALLY FROM CLOUDFLARE WRANGLER: -// https://github.com/cloudflare/wrangler2/blob/main/.github/changeset-version.js - -import { exec } from "child_process" - -// This script is used by the `release.yml` workflow to update the version of the packages being released. -// The standard step is only to run `changeset version` but this does not update the package-lock.json file. -// So we also run `npm install`, which does this update. -// This is a workaround until this is handled automatically by `changeset version`. -// See https://github.com/changesets/changesets/issues/421. -exec("npx changeset version") -exec("npm install") diff --git a/.github/version-script-beta.js b/.github/version-script-beta.js deleted file mode 100644 index 4dd5ea2..0000000 --- a/.github/version-script-beta.js +++ /dev/null @@ -1,21 +0,0 @@ -// ORIGINALLY FROM CLOUDFLARE WRANGLER: -// https://github.com/cloudflare/wrangler2/blob/main/.github/version-script.js - -import { exec } from "child_process" -import fs from "fs" - -const pkgJsonPath = "packages/cli/package.json" -try { - const pkg = JSON.parse(fs.readFileSync(pkgJsonPath)) - exec("git rev-parse --short HEAD", (err, stdout) => { - if (err) { - console.log(err) - process.exit(1) - } - pkg.version = "0.0.0-beta." + stdout.trim() - fs.writeFileSync(pkgJsonPath, JSON.stringify(pkg, null, "\t") + "\n") - }) -} catch (error) { - console.error(error) - process.exit(1) -} diff --git a/.github/version-script-next.js b/.github/version-script-next.js deleted file mode 100644 index c18a7af..0000000 --- a/.github/version-script-next.js +++ /dev/null @@ -1,21 +0,0 @@ -// ORIGINALLY FROM CLOUDFLARE WRANGLER: -// https://github.com/cloudflare/wrangler2/blob/main/.github/version-script.js - -import { exec } from "child_process" -import fs from "fs" - -const pkgJsonPath = "packages/cli/package.json" -try { - const pkg = JSON.parse(fs.readFileSync(pkgJsonPath)) - exec("git rev-parse --short HEAD", (err, stdout) => { - if (err) { - console.log(err) - process.exit(1) - } - pkg.version = "0.0.0-next." + stdout.trim() - fs.writeFileSync(pkgJsonPath, JSON.stringify(pkg, null, "\t") + "\n") - }) -} catch (error) { - console.error(error) - process.exit(1) -} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f855cb2 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,53 @@ +name: CI + +on: + push: + branches: + - main + + pull_request: + branches: + - main + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + run_install: false + - uses: actions/setup-node@v4 + with: + node-version: lts/* + cache: pnpm + + - run: pnpm i -g @antfu/ni + - run: nci + - run: nr lint + - run: nr typecheck + + test: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + node: [lts/*] + os: [ubuntu-latest, windows-latest, macos-latest] + fail-fast: false + + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + run_install: false + - name: Set node ${{ matrix.node }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + cache: pnpm + + - run: pnpm i -g @antfu/ni + - run: nci + - run: nr build + - run: nr test diff --git a/.github/workflows/issue-stale.yml b/.github/workflows/issue-stale.yml deleted file mode 100644 index 02bf8b7..0000000 --- a/.github/workflows/issue-stale.yml +++ /dev/null @@ -1,25 +0,0 @@ -# Adapted from vercel/next.js -name: Issue Stale -on: - workflow_dispatch: - schedule: - # This runs every day 20 minutes before midnight: https://crontab.guru/#40_23_*_*_* - - cron: "40 23 * * *" - -jobs: - stale: - runs-on: ubuntu-latest - if: github.repository_owner == 'adrian-ub' - steps: - - uses: actions/stale@v4 - id: stale-no-repro - name: "Close stale issues with no reproduction" - with: - close-issue-message: "This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you." - days-before-issue-close: 7 - days-before-issue-stale: 15 - stale-pr-label: "stale?" - days-before-pr-close: -1 - days-before-pr-stale: -1 - exempt-issue-labels: "roadmap,next,bug" - operations-per-run: 300 # 1 operation per 100 issues, the rest is to label/comment/close diff --git a/.github/workflows/prerelease-comment.yml b/.github/workflows/prerelease-comment.yml deleted file mode 100644 index 1fad87f..0000000 --- a/.github/workflows/prerelease-comment.yml +++ /dev/null @@ -1,65 +0,0 @@ -# Adapted from create-t3-app. -name: Write Beta Release comment - -on: - workflow_run: - workflows: ["Release - Beta"] - types: - - completed - -jobs: - comment: - if: | - github.repository_owner == 'adrian-ub' && - ${{ github.event.workflow_run.conclusion == 'success' }} - runs-on: ubuntu-latest - name: Write comment to the PR - steps: - - name: "Comment on PR" - uses: actions/github-script@v6 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - const allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ - owner: context.repo.owner, - repo: context.repo.repo, - run_id: context.payload.workflow_run.id, - }); - - for (const artifact of allArtifacts.data.artifacts) { - // Extract the PR number and package version from the artifact name - const match = /^npm-package-shadcn-ng@(.*?)-pr-(\d+)/.exec(artifact.name); - - if (match) { - require("fs").appendFileSync( - process.env.GITHUB_ENV, - `\nBETA_PACKAGE_VERSION=${match[1]}` + - `\nWORKFLOW_RUN_PR=${match[2]}` + - `\nWORKFLOW_RUN_ID=${context.payload.workflow_run.id}` - ); - break; - } - } - - - name: "Comment on PR with Link" - uses: marocchino/sticky-pull-request-comment@v2 - with: - number: ${{ env.WORKFLOW_RUN_PR }} - message: | - A new prerelease is available for testing: - - ```sh - npx shadcn-ng@${{ env.BETA_PACKAGE_VERSION }} - ``` - - - name: "Remove the autorelease label once published" - uses: actions/github-script@v6 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - github.rest.issues.removeLabel({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: '${{ env.WORKFLOW_RUN_PR }}', - name: '🚀 autorelease', - }); diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml deleted file mode 100644 index d949f95..0000000 --- a/.github/workflows/prerelease.yml +++ /dev/null @@ -1,60 +0,0 @@ -# Adapted from create-t3-app. - -name: Release - Beta - -on: - pull_request: - types: [labeled] - branches: - - main -jobs: - prerelease: - if: | - github.repository_owner == 'adrian-ub' && - contains(github.event.pull_request.labels.*.name, '🚀 autorelease') - name: Build & Publish a beta release to NPM - runs-on: ubuntu-latest - environment: Preview - - steps: - - name: Checkout Repo - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Use PNPM - uses: pnpm/action-setup@v4 - with: - version: 9.0.6 - - - name: Use Node.js 18 - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: "pnpm" - - - name: Install NPM Dependencies - run: pnpm install - - - name: Modify package.json version - run: node .github/version-script-beta.js - - - name: Authenticate to NPM - run: echo "//registry.npmjs.org/:_authToken=$NPM_ACCESS_TOKEN" >> packages/cli/.npmrc - env: - NPM_ACCESS_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }} - - - name: Publish Beta to NPM - run: pnpm pub:beta - - - name: get-npm-version - id: package-version - uses: martinbeentjes/npm-get-version-action@main - with: - path: packages/cli - - - name: Upload packaged artifact - uses: actions/upload-artifact@v2 - with: - name: npm-package-shadcn-ng@${{ steps.package-version.outputs.current-version }}-pr-${{ github.event.number }} # encode the PR number into the artifact name - path: packages/cli/dist/index.js diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ff6c380..ecbe5ce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,53 +1,33 @@ -# Adapted from create-t3-app. - name: Release +permissions: + id-token: write + contents: write + on: push: - branches: - - main + tags: + - 'v*' jobs: release: - if: ${{ github.repository_owner == 'adrian-ub' }} - name: Create a PR for release workflow runs-on: ubuntu-latest steps: - - name: Checkout Repo - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - - name: Use PNPM - uses: pnpm/action-setup@v4 - with: - version: 9.0.6 - - - name: Use Node.js 18 - uses: actions/setup-node@v3 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 with: - version: 9.0.6 - node-version: 18 - cache: "pnpm" + node-version: lts/* + registry-url: https://registry.npmjs.org/ - - name: Install NPM Dependencies - run: pnpm install - - # - name: Check for errors - # run: pnpm check - - - name: Build the package - run: pnpm build:cli + - run: pnpm dlx changelogithub + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - - name: Create Version PR or Publish to NPM - id: changesets - uses: changesets/action@v1.4.1 - with: - commit: "chore(release): version packages" - title: "chore(release): version packages" - version: node .github/changeset-version.js - publish: npx changeset publish + - run: pnpm install + - run: pnpm publish -r --access public env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }} - NODE_ENV: "production" + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + NPM_CONFIG_PROVENANCE: true diff --git a/.gitignore b/.gitignore index 4f4d87b..95f9ee9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,42 +1,11 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output +.cache +.DS_Store +.idea +*.log +*.tgz +coverage dist -tmp -/out-tsc - -# dependencies +lib-cov +logs node_modules - -# IDEs and editors -/.idea -.project -.classpath -.c9/ -*.launch -.settings/ -*.sublime-workspace - -# IDE - VSCode -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json - -# misc -/.sass-cache -/connect.lock -/coverage -/libpeerconnection.log -npm-debug.log -yarn-error.log -testem.log -/typings - -# System Files -.DS_Store -Thumbs.db - -.nx/cache -.nx/workspace-data +temp diff --git a/.npmrc b/.npmrc index 19be10e..7969496 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,2 @@ -strict-peer-dependencies=false -auto-install-peers=true +ignore-workspace-root-check=true +shell-emulator=true diff --git a/.verdaccio/config.yml b/.verdaccio/config.yml deleted file mode 100644 index 0a857ab..0000000 --- a/.verdaccio/config.yml +++ /dev/null @@ -1,28 +0,0 @@ -# path to a directory with all packages -storage: ../tmp/local-registry/storage - -# a list of other known repositories we can talk to -uplinks: - npmjs: - url: https://registry.npmjs.org - maxage: 60m - -packages: - '**': - # give all users (including non-authenticated users) full access - # because it is a local registry - access: $all - publish: $all - unpublish: $all - - # if package is not available locally, proxy requests to npm registry - proxy: npmjs - -# log settings -logs: - type: stdout - format: pretty - level: warn - -publish: - allow_offline: true # set offline to true to allow publish offline diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index bf14b26..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "recommendations": [ - - "nrwl.angular-console" - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..0a477dc --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,38 @@ +{ + // Disable the default formatter, use eslint instead + "prettier.enable": false, + "editor.formatOnSave": false, + + // Auto fix + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.organizeImports": "never" + }, + + // Silent the stylistic rules in you IDE, but still auto fix them + "eslint.rules.customizations": [ + { "rule": "style/*", "severity": "off" }, + { "rule": "*-indent", "severity": "off" }, + { "rule": "*-spacing", "severity": "off" }, + { "rule": "*-spaces", "severity": "off" }, + { "rule": "*-order", "severity": "off" }, + { "rule": "*-dangle", "severity": "off" }, + { "rule": "*-newline", "severity": "off" }, + { "rule": "*quotes", "severity": "off" }, + { "rule": "*semi", "severity": "off" } + ], + + // Enable eslint for all supported languages + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "markdown", + "json", + "jsonc", + "yaml" + ] +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5afbffe --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1 @@ +Please refer to https://github.com/adrian-ub/contribute diff --git a/README.md b/README.md index 221f117..d74c579 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,36 @@ # shadcn-ng -Accessible and customizable components that you can copy and paste into your apps. Free. Open Source. **Use this to build your own component library**. +[![npm version][npm-version-src]][npm-version-href] +[![npm downloads][npm-downloads-src]][npm-downloads-href] +[![bundle][bundle-src]][bundle-href] +[![JSDocs][jsdocs-src]][jsdocs-href] +[![License][license-src]][license-href] -![hero](apps/www/public/og.jpg) +Accessible and customizable components that you can copy and paste into your apps. Free. Open Source. Use this to build your own component library. -## Documentation +![hero](docs/public/og.jpg) -Visit http://ui.adrianub.dev/docs to view the documentation. +## Sponsors -## Contributing - -Please read the [contributing guide](/CONTRIBUTING.md). +

+ + + +

## License -Licensed under the [MIT license](https://github.com/adrian-ub/shadcn-ng/blob/main/LICENSE.md). +[MIT](./LICENSE) License © 2024-PRESENT [Adrián UB](https://github.com/adrian-ub) + + + +[npm-version-src]: https://img.shields.io/npm/v/shadcn-ng?style=flat&colorA=080f12&colorB=1fa669 +[npm-version-href]: https://npmjs.com/package/shadcn-ng +[npm-downloads-src]: https://img.shields.io/npm/dm/shadcn-ng?style=flat&colorA=080f12&colorB=1fa669 +[npm-downloads-href]: https://npmjs.com/package/shadcn-ng +[bundle-src]: https://img.shields.io/bundlephobia/minzip/shadcn-ng?style=flat&colorA=080f12&colorB=1fa669&label=minzip +[bundle-href]: https://bundlephobia.com/result?p=shadcn-ng +[license-src]: https://img.shields.io/github/license/adrian-ub/shadcn-ng.svg?style=flat&colorA=080f12&colorB=1fa669 +[license-href]: https://github.com/adrian-ub/shadcn-ng/blob/main/LICENSE +[jsdocs-src]: https://img.shields.io/badge/jsdocs-reference-080f12?style=flat&colorA=080f12&colorB=1fa669 +[jsdocs-href]: https://www.jsdocs.io/package/shadcn-ng diff --git a/apps/www/astro.config.mjs b/apps/www/astro.config.mjs deleted file mode 100644 index bbe4c05..0000000 --- a/apps/www/astro.config.mjs +++ /dev/null @@ -1,118 +0,0 @@ -import { defineConfig } from "astro/config"; -import starlight from "@astrojs/starlight"; -import tailwind from "@astrojs/tailwind"; -import angular from "@analogjs/astro-angular"; -import { siteConfig } from "./src/config/site"; -import theme from "./src/lib/highlighter-theme.json"; - -import AutoImport from "astro-auto-import"; - -// https://astro.build/config -export default defineConfig({ - site: siteConfig.url, - 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", - }, - }), - AutoImport({ - imports: [ - "@/components/ComponentPreview.astro", - "@/components/ComponentSource.astro", - ], - }), - tailwind(), - angular(), - ], - redirects: { - '/docs/components': '/docs/components/accordion', - }, - vite: { - optimizeDeps: { - include: [ - "@radix-ng/primitives", - "@angular/common", - "@angular/core", - "@angular/cdk", - "@ng-icons/core", - "@ng-icons/lucide", - ], - }, - ssr: { - noExternal: [ - "@radix-ng/primitives", - "@angular/cdk", - "@ng-icons/core", - "@ng-icons/lucide", - ], - }, - }, -}); diff --git a/apps/www/src/__registry__/examples.ts b/apps/www/src/__registry__/examples.ts deleted file mode 100644 index 1ba17b8..0000000 --- a/apps/www/src/__registry__/examples.ts +++ /dev/null @@ -1,28 +0,0 @@ -export const examples: Record> = {}; - -const components = import.meta.glob(`../registry/**/example/*.ts`); - -for (const path in components) { - const component = components[path]; - const name = path.split('/')[2]; - const componentName = path.split('/').pop()?.replace('.ts', ''); - if (!componentName || !name) { - continue; - } - - if (!examples[name]) { - examples[name] = {}; - } - - examples[name][componentName] = { - name: componentName, - type: "components:example", - registryDependencies: [name], - component, - source: "", - files: [path], - category: "undefined", - subcategory: "undefined", - chunks: [] - }; -} diff --git a/apps/www/src/components/SelectStyle/index.ts b/apps/www/src/components/SelectStyle/index.ts deleted file mode 100644 index 7a7b7ea..0000000 --- a/apps/www/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/apps/www/src/components/SelectStyle/rehype-select-style.ts b/apps/www/src/components/SelectStyle/rehype-select-style.ts deleted file mode 100644 index 3abda2c..0000000 --- a/apps/www/src/components/SelectStyle/rehype-select-style.ts +++ /dev/null @@ -1,113 +0,0 @@ -import type { Element } from "hast"; -import { select } from "hast-util-select"; -import { rehype } from "rehype"; -import { CONTINUE, SKIP, visit } from "unist-util-visit"; - -interface Panel { - panelId: string; - tabId: string; - label: string; -} - -declare module "vfile" { - interface DataMap { - // @ts-ignore - 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; -const getIDs = () => { - 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(function tabs() { - 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 const processPanels = (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/apps/www/src/components/component-preview.ts b/apps/www/src/components/component-preview.ts deleted file mode 100644 index fd578e2..0000000 --- a/apps/www/src/components/component-preview.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Component, computed, input } from '@angular/core'; -import { AsyncPipe, NgComponentOutlet } from '@angular/common'; - -import { examples } from '@/__registry__/examples' - -@Component({ - standalone: true, - selector: 'component-preview', - imports: [NgComponentOutlet, AsyncPipe], - template: ` - @let componentRender = this.component() | async; - - @if(!componentRender || !componentRender.default) { -
Loading...
- } @else { - - } - ` -}) -export class ComponentPeviewComponent { - styleName = input(); - nameExample = input(); - examples = examples; - - component = computed(async () => { - if (!this.styleName() || !this.nameExample()) return null; - - return await examples[this.styleName()!][this.nameExample()!].component(); - }); -} diff --git a/apps/www/src/config/site.ts b/apps/www/src/config/site.ts deleted file mode 100644 index 1fbec99..0000000 --- a/apps/www/src/config/site.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const siteConfig = { - name: "shadcn-ng", - 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.", - links: { - twitter: "https://twitter.com/adrianub", - github: "https://github.com/adrian-ub/shadcn-ng", - }, -}; - -export type SiteConfig = typeof siteConfig; diff --git a/apps/www/src/constants.ts b/apps/www/src/constants.ts deleted file mode 100644 index 44308b8..0000000 --- a/apps/www/src/constants.ts +++ /dev/null @@ -1 +0,0 @@ -export const PAGE_TITLE_ID = "_top"; diff --git a/apps/www/src/lib/utils.ts b/apps/www/src/lib/utils.ts deleted file mode 100644 index a5ef193..0000000 --- a/apps/www/src/lib/utils.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { clsx, type ClassValue } from "clsx"; -import { twMerge } from "tailwind-merge"; - -export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)); -} diff --git a/apps/www/src/pages/registry/colors/index/index.json.ts b/apps/www/src/pages/registry/colors/index/index.json.ts deleted file mode 100644 index 27ce934..0000000 --- a/apps/www/src/pages/registry/colors/index/index.json.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { colorsData } from "@/registry/colors"; - -export async function GET() { - return new Response(JSON.stringify(colorsData(), null, 2)); -} diff --git a/apps/www/src/pages/registry/index/index.json.ts b/apps/www/src/pages/registry/index/index.json.ts deleted file mode 100644 index 33c621c..0000000 --- a/apps/www/src/pages/registry/index/index.json.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { registry } from "@/registry/registry"; - -export async function GET() { - const names = registry.filter((item) => item.type === "components:ui"); - const registryJson = JSON.stringify(names, null, 2); - return new Response(registryJson); -} diff --git a/apps/www/src/pages/registry/styles/[style]/[name].json.ts b/apps/www/src/pages/registry/styles/[style]/[name].json.ts deleted file mode 100644 index 7c2cc44..0000000 --- a/apps/www/src/pages/registry/styles/[style]/[name].json.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { registry } from "@/registry/registry"; -import type { RegistryEntry } from "@/registry/schema"; -import { styles } from "@/registry/styles"; -import { readFileSync } from "fs"; -import path, { basename } from "path"; - -export async function getStaticPaths() { - return registry - .filter((item) => item.type === "components:ui") - .flatMap((item) => { - return styles.map((style) => ({ - params: { - style: style.name, - name: item.name, - }, - props: { - componentRegistry: item, - }, - })); - }); -} - -export async function GET({ - params, - props, -}: { - params: { - style: string; - name: string; - }; - props: { - componentRegistry: RegistryEntry; - }; -}) { - const { style } = params; - const { componentRegistry } = props; - const files = componentRegistry.files.map((file) => { - const content = readFileSync( - path.join(process.cwd(), "src", "registry", style, file), - "utf8" - ); - - return { - name: basename(file), - content, - }; - }); - - return new Response( - JSON.stringify( - { - ...componentRegistry, - files, - }, - null, - 2 - ) - ); -} diff --git a/apps/www/src/pages/registry/styles/index/index.json.ts b/apps/www/src/pages/registry/styles/index/index.json.ts deleted file mode 100644 index ae728ff..0000000 --- a/apps/www/src/pages/registry/styles/index/index.json.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { styles } from "@/registry/styles"; - -export async function GET() { - return new Response(JSON.stringify(styles, null, 2)); -} diff --git a/apps/www/src/pages/registry/themes/[theme].json.ts b/apps/www/src/pages/registry/themes/[theme].json.ts deleted file mode 100644 index 6929947..0000000 --- a/apps/www/src/pages/registry/themes/[theme].json.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { availableColors, colorMapping, colorsData } from "@/registry/colors"; - -export async function getStaticPaths() { - const paths = availableColors.map((color) => ({ - params: { theme: color }, - })); - - return paths; -} - -export async function GET({ params }: { params: { theme: string } }) { - const baseColor = params.theme; - - const payload = { - name: baseColor, - label: baseColor.charAt(0).toUpperCase() + baseColor.slice(1), - cssVars: {} as { [key: string]: { [key: string]: string } }, - }; - - for (const [mode, values] of Object.entries(colorMapping)) { - payload["cssVars"][mode] = {}; - for (const [key, value] of Object.entries(values)) { - if (typeof value === "string") { - const resolvedColor = value.replace(/{{base}}-/g, `${baseColor}-`); - payload["cssVars"][mode][key] = resolvedColor; - - const [resolvedBase, scale] = resolvedColor.split("-"); - const color = scale - ? colorsData()[resolvedBase].find( - (item: { scale: number }) => item.scale === parseInt(scale) - ) - : colorsData()[resolvedBase]; - if (color) { - payload["cssVars"][mode][key] = color.hslChannel; - } - } - } - } - - return new Response(JSON.stringify(payload, null, 2)); -} diff --git a/apps/www/src/registry/blocks.ts b/apps/www/src/registry/blocks.ts deleted file mode 100644 index 5255991..0000000 --- a/apps/www/src/registry/blocks.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { Registry } from "./schema"; - -export const blocks: Registry = []; diff --git a/apps/www/src/registry/charts.ts b/apps/www/src/registry/charts.ts deleted file mode 100644 index 9395091..0000000 --- a/apps/www/src/registry/charts.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { Registry } from "./schema"; - -export const charts: Registry = []; diff --git a/apps/www/src/registry/colors.ts b/apps/www/src/registry/colors.ts deleted file mode 100644 index d2c3e27..0000000 --- a/apps/www/src/registry/colors.ts +++ /dev/null @@ -1,1609 +0,0 @@ -export const colors = { - inherit: "inherit", - current: "currentColor", - transparent: "transparent", - black: { - hex: "#000000", - rgb: "rgb(0,0,0)", - hsl: "hsl(0,0%,0%)", - }, - white: { - hex: "#ffffff", - rgb: "rgb(255,255,255)", - hsl: "hsl(0,0%,100%)", - }, - slate: [ - { - scale: 50, - hex: "#f8fafc", - rgb: "rgb(248,250,252)", - hsl: "hsl(210,40%,98%)", - }, - { - scale: 100, - hex: "#f1f5f9", - rgb: "rgb(241,245,249)", - hsl: "hsl(210,40%,96.1%)", - }, - { - scale: 200, - hex: "#e2e8f0", - rgb: "rgb(226,232,240)", - hsl: "hsl(214.3,31.8%,91.4%)", - }, - { - scale: 300, - hex: "#cbd5e1", - rgb: "rgb(203,213,225)", - hsl: "hsl(212.7,26.8%,83.9%)", - }, - { - scale: 400, - hex: "#94a3b8", - rgb: "rgb(148,163,184)", - hsl: "hsl(215,20.2%,65.1%)", - }, - { - scale: 500, - hex: "#64748b", - rgb: "rgb(100,116,139)", - hsl: "hsl(215.4,16.3%,46.9%)", - }, - { - scale: 600, - hex: "#475569", - rgb: "rgb(71,85,105)", - hsl: "hsl(215.3,19.3%,34.5%)", - }, - { - scale: 700, - hex: "#334155", - rgb: "rgb(51,65,85)", - hsl: "hsl(215.3,25%,26.7%)", - }, - { - scale: 800, - hex: "#1e293b", - rgb: "rgb(30,41,59)", - hsl: "hsl(217.2,32.6%,17.5%)", - }, - { - scale: 900, - hex: "#0f172a", - rgb: "rgb(15,23,42)", - hsl: "hsl(222.2,47.4%,11.2%)", - }, - { - scale: 950, - hex: "#020617", - rgb: "rgb(2,6,23)", - hsl: "hsl(222.2,84%,4.9%)", - }, - ], - gray: [ - { - scale: 50, - hex: "#f9fafb", - rgb: "rgb(249,250,251)", - hsl: "hsl(210,20%,98%)", - }, - { - scale: 100, - hex: "#f3f4f6", - rgb: "rgb(243,244,246)", - hsl: "hsl(220,14.3%,95.9%)", - }, - { - scale: 200, - hex: "#e5e7eb", - rgb: "rgb(229,231,235)", - hsl: "hsl(220,13%,91%)", - }, - { - scale: 300, - hex: "#d1d5db", - rgb: "rgb(209,213,219)", - hsl: "hsl(216,12.2%,83.9%)", - }, - { - scale: 400, - hex: "#9ca3af", - rgb: "rgb(156,163,175)", - hsl: "hsl(217.9,10.6%,64.9%)", - }, - { - scale: 500, - hex: "#6b7280", - rgb: "rgb(107,114,128)", - hsl: "hsl(220,8.9%,46.1%)", - }, - { - scale: 600, - hex: "#4b5563", - rgb: "rgb(75,85,99)", - hsl: "hsl(215,13.8%,34.1%)", - }, - { - scale: 700, - hex: "#374151", - rgb: "rgb(55,65,81)", - hsl: "hsl(216.9,19.1%,26.7%)", - }, - { - scale: 800, - hex: "#1f2937", - rgb: "rgb(31,41,55)", - hsl: "hsl(215,27.9%,16.9%)", - }, - { - scale: 900, - hex: "#111827", - rgb: "rgb(17,24,39)", - hsl: "hsl(220.9,39.3%,11%)", - }, - { - scale: 950, - hex: "#030712", - rgb: "rgb(3,7,18)", - hsl: "hsl(224,71.4%,4.1%)", - }, - ], - zinc: [ - { - scale: 50, - hex: "#fafafa", - rgb: "rgb(250,250,250)", - hsl: "hsl(0,0%,98%)", - }, - { - scale: 100, - hex: "#f4f4f5", - rgb: "rgb(244,244,245)", - hsl: "hsl(240,4.8%,95.9%)", - }, - { - scale: 200, - hex: "#e4e4e7", - rgb: "rgb(228,228,231)", - hsl: "hsl(240,5.9%,90%)", - }, - { - scale: 300, - hex: "#d4d4d8", - rgb: "rgb(212,212,216)", - hsl: "hsl(240,4.9%,83.9%)", - }, - { - scale: 400, - hex: "#a1a1aa", - rgb: "rgb(161,161,170)", - hsl: "hsl(240,5%,64.9%)", - }, - { - scale: 500, - hex: "#71717a", - rgb: "rgb(113,113,122)", - hsl: "hsl(240,3.8%,46.1%)", - }, - { - scale: 600, - hex: "#52525b", - rgb: "rgb(82,82,91)", - hsl: "hsl(240,5.2%,33.9%)", - }, - { - scale: 700, - hex: "#3f3f46", - rgb: "rgb(63,63,70)", - hsl: "hsl(240,5.3%,26.1%)", - }, - { - scale: 800, - hex: "#27272a", - rgb: "rgb(39,39,42)", - hsl: "hsl(240,3.7%,15.9%)", - }, - { - scale: 900, - hex: "#18181b", - rgb: "rgb(24,24,27)", - hsl: "hsl(240,5.9%,10%)", - }, - { - scale: 950, - hex: "#09090b", - rgb: "rgb(9,9,11)", - hsl: "hsl(240,10%,3.9%)", - }, - ], - neutral: [ - { - scale: 50, - hex: "#fafafa", - rgb: "rgb(250,250,250)", - hsl: "hsl(0,0%,98%)", - }, - { - scale: 100, - hex: "#f5f5f5", - rgb: "rgb(245,245,245)", - hsl: "hsl(0,0%,96.1%)", - }, - { - scale: 200, - hex: "#e5e5e5", - rgb: "rgb(229,229,229)", - hsl: "hsl(0,0%,89.8%)", - }, - { - scale: 300, - hex: "#d4d4d4", - rgb: "rgb(212,212,212)", - hsl: "hsl(0,0%,83.1%)", - }, - { - scale: 400, - hex: "#a3a3a3", - rgb: "rgb(163,163,163)", - hsl: "hsl(0,0%,63.9%)", - }, - { - scale: 500, - hex: "#737373", - rgb: "rgb(115,115,115)", - hsl: "hsl(0,0%,45.1%)", - }, - { - scale: 600, - hex: "#525252", - rgb: "rgb(82,82,82)", - hsl: "hsl(0,0%,32.2%)", - }, - { - scale: 700, - hex: "#404040", - rgb: "rgb(64,64,64)", - hsl: "hsl(0,0%,25.1%)", - }, - { - scale: 800, - hex: "#262626", - rgb: "rgb(38,38,38)", - hsl: "hsl(0,0%,14.9%)", - }, - { - scale: 900, - hex: "#171717", - rgb: "rgb(23,23,23)", - hsl: "hsl(0,0%,9%)", - }, - { - scale: 950, - hex: "#0a0a0a", - rgb: "rgb(10,10,10)", - hsl: "hsl(0,0%,3.9%)", - }, - ], - stone: [ - { - scale: 50, - hex: "#fafaf9", - rgb: "rgb(250,250,249)", - hsl: "hsl(60,9.1%,97.8%)", - }, - { - scale: 100, - hex: "#f5f5f4", - rgb: "rgb(245,245,244)", - hsl: "hsl(60,4.8%,95.9%)", - }, - { - scale: 200, - hex: "#e7e5e4", - rgb: "rgb(231,229,228)", - hsl: "hsl(20,5.9%,90%)", - }, - { - scale: 300, - hex: "#d6d3d1", - rgb: "rgb(214,211,209)", - hsl: "hsl(24,5.7%,82.9%)", - }, - { - scale: 400, - hex: "#a8a29e", - rgb: "rgb(168,162,158)", - hsl: "hsl(24,5.4%,63.9%)", - }, - { - scale: 500, - hex: "#78716c", - rgb: "rgb(120,113,108)", - hsl: "hsl(25,5.3%,44.7%)", - }, - { - scale: 600, - hex: "#57534e", - rgb: "rgb(87,83,78)", - hsl: "hsl(33.3,5.5%,32.4%)", - }, - { - scale: 700, - hex: "#44403c", - rgb: "rgb(68,64,60)", - hsl: "hsl(30,6.3%,25.1%)", - }, - { - scale: 800, - hex: "#292524", - rgb: "rgb(41,37,36)", - hsl: "hsl(12,6.5%,15.1%)", - }, - { - scale: 900, - hex: "#1c1917", - rgb: "rgb(28,25,23)", - hsl: "hsl(24,9.8%,10%)", - }, - { - scale: 950, - hex: "#0c0a09", - rgb: "rgb(12,10,9)", - hsl: "hsl(20,14.3%,4.1%)", - }, - ], - red: [ - { - scale: 50, - hex: "#fef2f2", - rgb: "rgb(254,242,242)", - hsl: "hsl(0,85.7%,97.3%)", - }, - { - scale: 100, - hex: "#fee2e2", - rgb: "rgb(254,226,226)", - hsl: "hsl(0,93.3%,94.1%)", - }, - { - scale: 200, - hex: "#fecaca", - rgb: "rgb(254,202,202)", - hsl: "hsl(0,96.3%,89.4%)", - }, - { - scale: 300, - hex: "#fca5a5", - rgb: "rgb(252,165,165)", - hsl: "hsl(0,93.5%,81.8%)", - }, - { - scale: 400, - hex: "#f87171", - rgb: "rgb(248,113,113)", - hsl: "hsl(0,90.6%,70.8%)", - }, - { - scale: 500, - hex: "#ef4444", - rgb: "rgb(239,68,68)", - hsl: "hsl(0,84.2%,60.2%)", - }, - { - scale: 600, - hex: "#dc2626", - rgb: "rgb(220,38,38)", - hsl: "hsl(0,72.2%,50.6%)", - }, - { - scale: 700, - hex: "#b91c1c", - rgb: "rgb(185,28,28)", - hsl: "hsl(0,73.7%,41.8%)", - }, - { - scale: 800, - hex: "#991b1b", - rgb: "rgb(153,27,27)", - hsl: "hsl(0,70%,35.3%)", - }, - { - scale: 900, - hex: "#7f1d1d", - rgb: "rgb(127,29,29)", - hsl: "hsl(0,62.8%,30.6%)", - }, - { - scale: 950, - hex: "#450a0a", - rgb: "rgb(69,10,10)", - hsl: "hsl(0,74.7%,15.5%)", - }, - ], - orange: [ - { - scale: 50, - hex: "#fff7ed", - rgb: "rgb(255,247,237)", - hsl: "hsl(33.3,100%,96.5%)", - }, - { - scale: 100, - hex: "#ffedd5", - rgb: "rgb(255,237,213)", - hsl: "hsl(34.3,100%,91.8%)", - }, - { - scale: 200, - hex: "#fed7aa", - rgb: "rgb(254,215,170)", - hsl: "hsl(32.1,97.7%,83.1%)", - }, - { - scale: 300, - hex: "#fdba74", - rgb: "rgb(253,186,116)", - hsl: "hsl(30.7,97.2%,72.4%)", - }, - { - scale: 400, - hex: "#fb923c", - rgb: "rgb(251,146,60)", - hsl: "hsl(27,96%,61%)", - }, - { - scale: 500, - hex: "#f97316", - rgb: "rgb(249,115,22)", - hsl: "hsl(24.6,95%,53.1%)", - }, - { - scale: 600, - hex: "#ea580c", - rgb: "rgb(234,88,12)", - hsl: "hsl(20.5,90.2%,48.2%)", - }, - { - scale: 700, - hex: "#c2410c", - rgb: "rgb(194,65,12)", - hsl: "hsl(17.5,88.3%,40.4%)", - }, - { - scale: 800, - hex: "#9a3412", - rgb: "rgb(154,52,18)", - hsl: "hsl(15,79.1%,33.7%)", - }, - { - scale: 900, - hex: "#7c2d12", - rgb: "rgb(124,45,18)", - hsl: "hsl(15.3,74.6%,27.8%)", - }, - { - scale: 950, - hex: "#431407", - rgb: "rgb(67,20,7)", - hsl: "hsl(13,81.1%,14.5%)", - }, - ], - amber: [ - { - scale: 50, - hex: "#fffbeb", - rgb: "rgb(255,251,235)", - hsl: "hsl(48,100%,96.1%)", - }, - { - scale: 100, - hex: "#fef3c7", - rgb: "rgb(254,243,199)", - hsl: "hsl(48,96.5%,88.8%)", - }, - { - scale: 200, - hex: "#fde68a", - rgb: "rgb(253,230,138)", - hsl: "hsl(48,96.6%,76.7%)", - }, - { - scale: 300, - hex: "#fcd34d", - rgb: "rgb(252,211,77)", - hsl: "hsl(45.9,96.7%,64.5%)", - }, - { - scale: 400, - hex: "#fbbf24", - rgb: "rgb(251,191,36)", - hsl: "hsl(43.3,96.4%,56.3%)", - }, - { - scale: 500, - hex: "#f59e0b", - rgb: "rgb(245,158,11)", - hsl: "hsl(37.7,92.1%,50.2%)", - }, - { - scale: 600, - hex: "#d97706", - rgb: "rgb(217,119,6)", - hsl: "hsl(32.1,94.6%,43.7%)", - }, - { - scale: 700, - hex: "#b45309", - rgb: "rgb(180,83,9)", - hsl: "hsl(26,90.5%,37.1%)", - }, - { - scale: 800, - hex: "#92400e", - rgb: "rgb(146,64,14)", - hsl: "hsl(22.7,82.5%,31.4%)", - }, - { - scale: 900, - hex: "#78350f", - rgb: "rgb(120,53,15)", - hsl: "hsl(21.7,77.8%,26.5%)", - }, - { - scale: 950, - hex: "#451a03", - rgb: "rgb(69,26,3)", - hsl: "hsl(20.9,91.7%,14.1%)", - }, - ], - yellow: [ - { - scale: 50, - hex: "#fefce8", - rgb: "rgb(254,252,232)", - hsl: "hsl(54.5,91.7%,95.3%)", - }, - { - scale: 100, - hex: "#fef9c3", - rgb: "rgb(254,249,195)", - hsl: "hsl(54.9,96.7%,88%)", - }, - { - scale: 200, - hex: "#fef08a", - rgb: "rgb(254,240,138)", - hsl: "hsl(52.8,98.3%,76.9%)", - }, - { - scale: 300, - hex: "#fde047", - rgb: "rgb(253,224,71)", - hsl: "hsl(50.4,97.8%,63.5%)", - }, - { - scale: 400, - hex: "#facc15", - rgb: "rgb(250,204,21)", - hsl: "hsl(47.9,95.8%,53.1%)", - }, - { - scale: 500, - hex: "#eab308", - rgb: "rgb(234,179,8)", - hsl: "hsl(45.4,93.4%,47.5%)", - }, - { - scale: 600, - hex: "#ca8a04", - rgb: "rgb(202,138,4)", - hsl: "hsl(40.6,96.1%,40.4%)", - }, - { - scale: 700, - hex: "#a16207", - rgb: "rgb(161,98,7)", - hsl: "hsl(35.5,91.7%,32.9%)", - }, - { - scale: 800, - hex: "#854d0e", - rgb: "rgb(133,77,14)", - hsl: "hsl(31.8,81%,28.8%)", - }, - { - scale: 900, - hex: "#713f12", - rgb: "rgb(113,63,18)", - hsl: "hsl(28.4,72.5%,25.7%)", - }, - { - scale: 950, - hex: "#422006", - rgb: "rgb(66,32,6)", - hsl: "hsl(26,83.3%,14.1%)", - }, - ], - lime: [ - { - scale: 50, - hex: "#f7fee7", - rgb: "rgb(247,254,231)", - hsl: "hsl(78.3,92%,95.1%)", - }, - { - scale: 100, - hex: "#ecfccb", - rgb: "rgb(236,252,203)", - hsl: "hsl(79.6,89.1%,89.2%)", - }, - { - scale: 200, - hex: "#d9f99d", - rgb: "rgb(217,249,157)", - hsl: "hsl(80.9,88.5%,79.6%)", - }, - { - scale: 300, - hex: "#bef264", - rgb: "rgb(190,242,100)", - hsl: "hsl(82,84.5%,67.1%)", - }, - { - scale: 400, - hex: "#a3e635", - rgb: "rgb(163,230,53)", - hsl: "hsl(82.7,78%,55.5%)", - }, - { - scale: 500, - hex: "#84cc16", - rgb: "rgb(132,204,22)", - hsl: "hsl(83.7,80.5%,44.3%)", - }, - { - scale: 600, - hex: "#65a30d", - rgb: "rgb(101,163,13)", - hsl: "hsl(84.8,85.2%,34.5%)", - }, - { - scale: 700, - hex: "#4d7c0f", - rgb: "rgb(77,124,15)", - hsl: "hsl(85.9,78.4%,27.3%)", - }, - { - scale: 800, - hex: "#3f6212", - rgb: "rgb(63,98,18)", - hsl: "hsl(86.3,69%,22.7%)", - }, - { - scale: 900, - hex: "#365314", - rgb: "rgb(54,83,20)", - hsl: "hsl(87.6,61.2%,20.2%)", - }, - { - scale: 950, - hex: "#1a2e05", - rgb: "rgb(26,46,5)", - hsl: "hsl(89.3,80.4%,10%)", - }, - ], - green: [ - { - scale: 50, - hex: "#f0fdf4", - rgb: "rgb(240,253,244)", - hsl: "hsl(138.5,76.5%,96.7%)", - }, - { - scale: 100, - hex: "#dcfce7", - rgb: "rgb(220,252,231)", - hsl: "hsl(140.6,84.2%,92.5%)", - }, - { - scale: 200, - hex: "#bbf7d0", - rgb: "rgb(187,247,208)", - hsl: "hsl(141,78.9%,85.1%)", - }, - { - scale: 300, - hex: "#86efac", - rgb: "rgb(134,239,172)", - hsl: "hsl(141.7,76.6%,73.1%)", - }, - { - scale: 400, - hex: "#4ade80", - rgb: "rgb(74,222,128)", - hsl: "hsl(141.9,69.2%,58%)", - }, - { - scale: 500, - hex: "#22c55e", - rgb: "rgb(34,197,94)", - hsl: "hsl(142.1,70.6%,45.3%)", - }, - { - scale: 600, - hex: "#16a34a", - rgb: "rgb(22,163,74)", - hsl: "hsl(142.1,76.2%,36.3%)", - }, - { - scale: 700, - hex: "#15803d", - rgb: "rgb(21,128,61)", - hsl: "hsl(142.4,71.8%,29.2%)", - }, - { - scale: 800, - hex: "#166534", - rgb: "rgb(22,101,52)", - hsl: "hsl(142.8,64.2%,24.1%)", - }, - { - scale: 900, - hex: "#14532d", - rgb: "rgb(20,83,45)", - hsl: "hsl(143.8,61.2%,20.2%)", - }, - { - scale: 950, - hex: "#052e16", - rgb: "rgb(5,46,22)", - hsl: "hsl(144.9,80.4%,10%)", - }, - ], - emerald: [ - { - scale: 50, - hex: "#ecfdf5", - rgb: "rgb(236,253,245)", - hsl: "hsl(151.8,81%,95.9%)", - }, - { - scale: 100, - hex: "#d1fae5", - rgb: "rgb(209,250,229)", - hsl: "hsl(149.3,80.4%,90%)", - }, - { - scale: 200, - hex: "#a7f3d0", - rgb: "rgb(167,243,208)", - hsl: "hsl(152.4,76%,80.4%)", - }, - { - scale: 300, - hex: "#6ee7b7", - rgb: "rgb(110,231,183)", - hsl: "hsl(156.2,71.6%,66.9%)", - }, - { - scale: 400, - hex: "#34d399", - rgb: "rgb(52,211,153)", - hsl: "hsl(158.1,64.4%,51.6%)", - }, - { - scale: 500, - hex: "#10b981", - rgb: "rgb(16,185,129)", - hsl: "hsl(160.1,84.1%,39.4%)", - }, - { - scale: 600, - hex: "#059669", - rgb: "rgb(5,150,105)", - hsl: "hsl(161.4,93.5%,30.4%)", - }, - { - scale: 700, - hex: "#047857", - rgb: "rgb(4,120,87)", - hsl: "hsl(162.9,93.5%,24.3%)", - }, - { - scale: 800, - hex: "#065f46", - rgb: "rgb(6,95,70)", - hsl: "hsl(163.1,88.1%,19.8%)", - }, - { - scale: 900, - hex: "#064e3b", - rgb: "rgb(6,78,59)", - hsl: "hsl(164.2,85.7%,16.5%)", - }, - { - scale: 950, - hex: "#022c22", - rgb: "rgb(2,44,34)", - hsl: "hsl(165.7,91.3%,9%)", - }, - ], - teal: [ - { - scale: 50, - hex: "#f0fdfa", - rgb: "rgb(240,253,250)", - hsl: "hsl(166.2,76.5%,96.7%)", - }, - { - scale: 100, - hex: "#ccfbf1", - rgb: "rgb(204,251,241)", - hsl: "hsl(167.2,85.5%,89.2%)", - }, - { - scale: 200, - hex: "#99f6e4", - rgb: "rgb(153,246,228)", - hsl: "hsl(168.4,83.8%,78.2%)", - }, - { - scale: 300, - hex: "#5eead4", - rgb: "rgb(94,234,212)", - hsl: "hsl(170.6,76.9%,64.3%)", - }, - { - scale: 400, - hex: "#2dd4bf", - rgb: "rgb(45,212,191)", - hsl: "hsl(172.5,66%,50.4%)", - }, - { - scale: 500, - hex: "#14b8a6", - rgb: "rgb(20,184,166)", - hsl: "hsl(173.4,80.4%,40%)", - }, - { - scale: 600, - hex: "#0d9488", - rgb: "rgb(13,148,136)", - hsl: "hsl(174.7,83.9%,31.6%)", - }, - { - scale: 700, - hex: "#0f766e", - rgb: "rgb(15,118,110)", - hsl: "hsl(175.3,77.4%,26.1%)", - }, - { - scale: 800, - hex: "#115e59", - rgb: "rgb(17,94,89)", - hsl: "hsl(176.1,69.4%,21.8%)", - }, - { - scale: 900, - hex: "#134e4a", - rgb: "rgb(19,78,74)", - hsl: "hsl(175.9,60.8%,19%)", - }, - { - scale: 950, - hex: "#042f2e", - rgb: "rgb(4,47,46)", - hsl: "hsl(178.6,84.3%,10%)", - }, - ], - cyan: [ - { - scale: 50, - hex: "#ecfeff", - rgb: "rgb(236,254,255)", - hsl: "hsl(183.2,100%,96.3%)", - }, - { - scale: 100, - hex: "#cffafe", - rgb: "rgb(207,250,254)", - hsl: "hsl(185.1,95.9%,90.4%)", - }, - { - scale: 200, - hex: "#a5f3fc", - rgb: "rgb(165,243,252)", - hsl: "hsl(186.2,93.5%,81.8%)", - }, - { - scale: 300, - hex: "#67e8f9", - rgb: "rgb(103,232,249)", - hsl: "hsl(187,92.4%,69%)", - }, - { - scale: 400, - hex: "#22d3ee", - rgb: "rgb(34,211,238)", - hsl: "hsl(187.9,85.7%,53.3%)", - }, - { - scale: 500, - hex: "#06b6d4", - rgb: "rgb(6,182,212)", - hsl: "hsl(188.7,94.5%,42.7%)", - }, - { - scale: 600, - hex: "#0891b2", - rgb: "rgb(8,145,178)", - hsl: "hsl(191.6,91.4%,36.5%)", - }, - { - scale: 700, - hex: "#0e7490", - rgb: "rgb(14,116,144)", - hsl: "hsl(192.9,82.3%,31%)", - }, - { - scale: 800, - hex: "#155e75", - rgb: "rgb(21,94,117)", - hsl: "hsl(194.4,69.6%,27.1%)", - }, - { - scale: 900, - hex: "#164e63", - rgb: "rgb(22,78,99)", - hsl: "hsl(196.4,63.6%,23.7%)", - }, - { - scale: 950, - hex: "#083344", - rgb: "rgb(8,51,68)", - hsl: "hsl(197,78.9%,14.9%)", - }, - ], - sky: [ - { - scale: 50, - hex: "#f0f9ff", - rgb: "rgb(240,249,255)", - hsl: "hsl(204,100%,97.1%)", - }, - { - scale: 100, - hex: "#e0f2fe", - rgb: "rgb(224,242,254)", - hsl: "hsl(204,93.8%,93.7%)", - }, - { - scale: 200, - hex: "#bae6fd", - rgb: "rgb(186,230,253)", - hsl: "hsl(200.6,94.4%,86.1%)", - }, - { - scale: 300, - hex: "#7dd3fc", - rgb: "rgb(125,211,252)", - hsl: "hsl(199.4,95.5%,73.9%)", - }, - { - scale: 400, - hex: "#38bdf8", - rgb: "rgb(56,189,248)", - hsl: "hsl(198.4,93.2%,59.6%)", - }, - { - scale: 500, - hex: "#0ea5e9", - rgb: "rgb(14,165,233)", - hsl: "hsl(198.6,88.7%,48.4%)", - }, - { - scale: 600, - hex: "#0284c7", - rgb: "rgb(2,132,199)", - hsl: "hsl(200.4,98%,39.4%)", - }, - { - scale: 700, - hex: "#0369a1", - rgb: "rgb(3,105,161)", - hsl: "hsl(201.3,96.3%,32.2%)", - }, - { - scale: 800, - hex: "#075985", - rgb: "rgb(7,89,133)", - hsl: "hsl(201,90%,27.5%)", - }, - { - scale: 900, - hex: "#0c4a6e", - rgb: "rgb(12,74,110)", - hsl: "hsl(202,80.3%,23.9%)", - }, - { - scale: 950, - hex: "#082f49", - rgb: "rgb(8,47,73)", - hsl: "hsl(204,80.2%,15.9%)", - }, - ], - blue: [ - { - scale: 50, - hex: "#eff6ff", - rgb: "rgb(239,246,255)", - hsl: "hsl(213.8,100%,96.9%)", - }, - { - scale: 100, - hex: "#dbeafe", - rgb: "rgb(219,234,254)", - hsl: "hsl(214.3,94.6%,92.7%)", - }, - { - scale: 200, - hex: "#bfdbfe", - rgb: "rgb(191,219,254)", - hsl: "hsl(213.3,96.9%,87.3%)", - }, - { - scale: 300, - hex: "#93c5fd", - rgb: "rgb(147,197,253)", - hsl: "hsl(211.7,96.4%,78.4%)", - }, - { - scale: 400, - hex: "#60a5fa", - rgb: "rgb(96,165,250)", - hsl: "hsl(213.1,93.9%,67.8%)", - }, - { - scale: 500, - hex: "#3b82f6", - rgb: "rgb(59,130,246)", - hsl: "hsl(217.2,91.2%,59.8%)", - }, - { - scale: 600, - hex: "#2563eb", - rgb: "rgb(37,99,235)", - hsl: "hsl(221.2,83.2%,53.3%)", - }, - { - scale: 700, - hex: "#1d4ed8", - rgb: "rgb(29,78,216)", - hsl: "hsl(224.3,76.3%,48%)", - }, - { - scale: 800, - hex: "#1e40af", - rgb: "rgb(30,64,175)", - hsl: "hsl(225.9,70.7%,40.2%)", - }, - { - scale: 900, - hex: "#1e3a8a", - rgb: "rgb(30,58,138)", - hsl: "hsl(224.4,64.3%,32.9%)", - }, - { - scale: 950, - hex: "#172554", - rgb: "rgb(23,37,84)", - hsl: "hsl(226.2,57%,21%)", - }, - ], - indigo: [ - { - scale: 50, - hex: "#eef2ff", - rgb: "rgb(238,242,255)", - hsl: "hsl(225.9,100%,96.7%)", - }, - { - scale: 100, - hex: "#e0e7ff", - rgb: "rgb(224,231,255)", - hsl: "hsl(226.5,100%,93.9%)", - }, - { - scale: 200, - hex: "#c7d2fe", - rgb: "rgb(199,210,254)", - hsl: "hsl(228,96.5%,88.8%)", - }, - { - scale: 300, - hex: "#a5b4fc", - rgb: "rgb(165,180,252)", - hsl: "hsl(229.7,93.5%,81.8%)", - }, - { - scale: 400, - hex: "#818cf8", - rgb: "rgb(129,140,248)", - hsl: "hsl(234.5,89.5%,73.9%)", - }, - { - scale: 500, - hex: "#6366f1", - rgb: "rgb(99,102,241)", - hsl: "hsl(238.7,83.5%,66.7%)", - }, - { - scale: 600, - hex: "#4f46e5", - rgb: "rgb(79,70,229)", - hsl: "hsl(243.4,75.4%,58.6%)", - }, - { - scale: 700, - hex: "#4338ca", - rgb: "rgb(67,56,202)", - hsl: "hsl(244.5,57.9%,50.6%)", - }, - { - scale: 800, - hex: "#3730a3", - rgb: "rgb(55,48,163)", - hsl: "hsl(243.7,54.5%,41.4%)", - }, - { - scale: 900, - hex: "#312e81", - rgb: "rgb(49,46,129)", - hsl: "hsl(242.2,47.4%,34.3%)", - }, - { - scale: 950, - hex: "#1e1b4b", - rgb: "rgb(30,27,75)", - hsl: "hsl(243.8,47.1%,20%)", - }, - ], - violet: [ - { - scale: 50, - hex: "#f5f3ff", - rgb: "rgb(245,243,255)", - hsl: "hsl(250,100%,97.6%)", - }, - { - scale: 100, - hex: "#ede9fe", - rgb: "rgb(237,233,254)", - hsl: "hsl(251.4,91.3%,95.5%)", - }, - { - scale: 200, - hex: "#ddd6fe", - rgb: "rgb(221,214,254)", - hsl: "hsl(250.5,95.2%,91.8%)", - }, - { - scale: 300, - hex: "#c4b5fd", - rgb: "rgb(196,181,253)", - hsl: "hsl(252.5,94.7%,85.1%)", - }, - { - scale: 400, - hex: "#a78bfa", - rgb: "rgb(167,139,250)", - hsl: "hsl(255.1,91.7%,76.3%)", - }, - { - scale: 500, - hex: "#8b5cf6", - rgb: "rgb(139,92,246)", - hsl: "hsl(258.3,89.5%,66.3%)", - }, - { - scale: 600, - hex: "#7c3aed", - rgb: "rgb(124,58,237)", - hsl: "hsl(262.1,83.3%,57.8%)", - }, - { - scale: 700, - hex: "#6d28d9", - rgb: "rgb(109,40,217)", - hsl: "hsl(263.4,70%,50.4%)", - }, - { - scale: 800, - hex: "#5b21b6", - rgb: "rgb(91,33,182)", - hsl: "hsl(263.4,69.3%,42.2%)", - }, - { - scale: 900, - hex: "#4c1d95", - rgb: "rgb(76,29,149)", - hsl: "hsl(263.5,67.4%,34.9%)", - }, - { - scale: 950, - hex: "#1e1b4b", - rgb: "rgb(46,16,101)", - hsl: "hsl(261.2,72.6%,22.9%)", - }, - ], - purple: [ - { - scale: 50, - hex: "#faf5ff", - rgb: "rgb(250,245,255)", - hsl: "hsl(270,100%,98%)", - }, - { - scale: 100, - hex: "#f3e8ff", - rgb: "rgb(243,232,255)", - hsl: "hsl(268.7,100%,95.5%)", - }, - { - scale: 200, - hex: "#e9d5ff", - rgb: "rgb(233,213,255)", - hsl: "hsl(268.6,100%,91.8%)", - }, - { - scale: 300, - hex: "#d8b4fe", - rgb: "rgb(216,180,254)", - hsl: "hsl(269.2,97.4%,85.1%)", - }, - { - scale: 400, - hex: "#c084fc", - rgb: "rgb(192,132,252)", - hsl: "hsl(270,95.2%,75.3%)", - }, - { - scale: 500, - hex: "#a855f7", - rgb: "rgb(168,85,247)", - hsl: "hsl(270.7,91%,65.1%)", - }, - { - scale: 600, - hex: "#9333ea", - rgb: "rgb(147,51,234)", - hsl: "hsl(271.5,81.3%,55.9%)", - }, - { - scale: 700, - hex: "#7e22ce", - rgb: "rgb(126,34,206)", - hsl: "hsl(272.1,71.7%,47.1%)", - }, - { - scale: 800, - hex: "#6b21a8", - rgb: "rgb(107,33,168)", - hsl: "hsl(272.9,67.2%,39.4%)", - }, - { - scale: 900, - hex: "#581c87", - rgb: "rgb(88,28,135)", - hsl: "hsl(273.6,65.6%,32%)", - }, - { - scale: 950, - hex: "#3b0764", - rgb: "rgb(59,7,100)", - hsl: "hsl(273.5,86.9%,21%)", - }, - ], - fuchsia: [ - { - scale: 50, - hex: "#fdf4ff", - rgb: "rgb(253,244,255)", - hsl: "hsl(289.1,100%,97.8%)", - }, - { - scale: 100, - hex: "#fae8ff", - rgb: "rgb(250,232,255)", - hsl: "hsl(287,100%,95.5%)", - }, - { - scale: 200, - hex: "#f5d0fe", - rgb: "rgb(245,208,254)", - hsl: "hsl(288.3,95.8%,90.6%)", - }, - { - scale: 300, - hex: "#f0abfc", - rgb: "rgb(240,171,252)", - hsl: "hsl(291.1,93.1%,82.9%)", - }, - { - scale: 400, - hex: "#e879f9", - rgb: "rgb(232,121,249)", - hsl: "hsl(292,91.4%,72.5%)", - }, - { - scale: 500, - hex: "#d946ef", - rgb: "rgb(217,70,239)", - hsl: "hsl(292.2,84.1%,60.6%)", - }, - { - scale: 600, - hex: "#c026d3", - rgb: "rgb(192,38,211)", - hsl: "hsl(293.4,69.5%,48.8%)", - }, - { - scale: 700, - hex: "#a21caf", - rgb: "rgb(162,28,175)", - hsl: "hsl(294.7,72.4%,39.8%)", - }, - { - scale: 800, - hex: "#86198f", - rgb: "rgb(134,25,143)", - hsl: "hsl(295.4,70.2%,32.9%)", - }, - { - scale: 900, - hex: "#701a75", - rgb: "rgb(112,26,117)", - hsl: "hsl(296.7,63.6%,28%)", - }, - { - scale: 950, - hex: "#4a044e", - rgb: "rgb(74,4,78)", - hsl: "hsl(296.8,90.2%,16.1%)", - }, - ], - pink: [ - { - scale: 50, - hex: "#fdf2f8", - rgb: "rgb(253,242,248)", - hsl: "hsl(327.3,73.3%,97.1%)", - }, - { - scale: 100, - hex: "#fce7f3", - rgb: "rgb(252,231,243)", - hsl: "hsl(325.7,77.8%,94.7%)", - }, - { - scale: 200, - hex: "#fbcfe8", - rgb: "rgb(251,207,232)", - hsl: "hsl(325.9,84.6%,89.8%)", - }, - { - scale: 300, - hex: "#f9a8d4", - rgb: "rgb(249,168,212)", - hsl: "hsl(327.4,87.1%,81.8%)", - }, - { - scale: 400, - hex: "#f472b6", - rgb: "rgb(244,114,182)", - hsl: "hsl(328.6,85.5%,70.2%)", - }, - { - scale: 500, - hex: "#ec4899", - rgb: "rgb(236,72,153)", - hsl: "hsl(330.4,81.2%,60.4%)", - }, - { - scale: 600, - hex: "#db2777", - rgb: "rgb(219,39,119)", - hsl: "hsl(333.3,71.4%,50.6%)", - }, - { - scale: 700, - hex: "#be185d", - rgb: "rgb(190,24,93)", - hsl: "hsl(335.1,77.6%,42%)", - }, - { - scale: 800, - hex: "#9d174d", - rgb: "rgb(157,23,77)", - hsl: "hsl(335.8,74.4%,35.3%)", - }, - { - scale: 900, - hex: "#831843", - rgb: "rgb(131,24,67)", - hsl: "hsl(335.9,69%,30.4%)", - }, - { - scale: 950, - hex: "#500724", - rgb: "rgb(80,7,36)", - hsl: "hsl(336.2,83.9%,17.1%)", - }, - ], - rose: [ - { - scale: 50, - hex: "#fff1f2", - rgb: "rgb(255,241,242)", - hsl: "hsl(355.7,100%,97.3%)", - }, - { - scale: 100, - hex: "#ffe4e6", - rgb: "rgb(255,228,230)", - hsl: "hsl(355.6,100%,94.7%)", - }, - { - scale: 200, - hex: "#fecdd3", - rgb: "rgb(254,205,211)", - hsl: "hsl(352.7,96.1%,90%)", - }, - { - scale: 300, - hex: "#fda4af", - rgb: "rgb(253,164,175)", - hsl: "hsl(352.6,95.7%,81.8%)", - }, - { - scale: 400, - hex: "#fb7185", - rgb: "rgb(251,113,133)", - hsl: "hsl(351.3,94.5%,71.4%)", - }, - { - scale: 500, - hex: "#f43f5e", - rgb: "rgb(244,63,94)", - hsl: "hsl(349.7,89.2%,60.2%)", - }, - { - scale: 600, - hex: "#e11d48", - rgb: "rgb(225,29,72)", - hsl: "hsl(346.8,77.2%,49.8%)", - }, - { - scale: 700, - hex: "#be123c", - rgb: "rgb(190,18,60)", - hsl: "hsl(345.3,82.7%,40.8%)", - }, - { - scale: 800, - hex: "#9f1239", - rgb: "rgb(159,18,57)", - hsl: "hsl(343.4,79.7%,34.7%)", - }, - { - scale: 900, - hex: "#881337", - rgb: "rgb(136,19,55)", - hsl: "hsl(341.5,75.5%,30.4%)", - }, - { - scale: 950, - hex: "#4c0519", - rgb: "rgb(76,5,25)", - hsl: "hsl(343.1,87.7%,15.9%)", - }, - ], -}; - -export const colorMapping = { - light: { - background: "white", - foreground: "{{base}}-950", - card: "white", - "card-foreground": "{{base}}-950", - popover: "white", - "popover-foreground": "{{base}}-950", - primary: "{{base}}-900", - "primary-foreground": "{{base}}-50", - secondary: "{{base}}-100", - "secondary-foreground": "{{base}}-900", - muted: "{{base}}-100", - "muted-foreground": "{{base}}-500", - accent: "{{base}}-100", - "accent-foreground": "{{base}}-900", - destructive: "red-500", - "destructive-foreground": "{{base}}-50", - border: "{{base}}-200", - input: "{{base}}-200", - ring: "{{base}}-950", - "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%", - }, - dark: { - background: "{{base}}-950", - foreground: "{{base}}-50", - card: "{{base}}-950", - "card-foreground": "{{base}}-50", - popover: "{{base}}-950", - "popover-foreground": "{{base}}-50", - primary: "{{base}}-50", - "primary-foreground": "{{base}}-900", - secondary: "{{base}}-800", - "secondary-foreground": "{{base}}-50", - muted: "{{base}}-800", - "muted-foreground": "{{base}}-400", - accent: "{{base}}-800", - "accent-foreground": "{{base}}-50", - destructive: "red-900", - "destructive-foreground": "{{base}}-50", - border: "{{base}}-800", - input: "{{base}}-800", - ring: "{{base}}-300", - "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%", - }, -} as const; - -export const colorsData = () => { - const responseColorsData: Record = {}; - for (const [color, value] of Object.entries(colors)) { - if (typeof value === "string") { - responseColorsData[color] = value; - continue; - } - - if (Array.isArray(value)) { - responseColorsData[color] = value.map((item) => ({ - ...item, - rgbChannel: item.rgb.replace(/^rgb\((\d+),(\d+),(\d+)\)$/, "$1 $2 $3"), - hslChannel: item.hsl.replace( - /^hsl\(([\d.]+),([\d.]+%),([\d.]+%)\)$/, - "$1 $2 $3" - ), - })); - continue; - } - - if (typeof value === "object") { - responseColorsData[color] = { - ...value, - rgbChannel: value.rgb.replace(/^rgb\((\d+),(\d+),(\d+)\)$/, "$1 $2 $3"), - hslChannel: value.hsl.replace( - /^hsl\(([\d.]+),([\d.]+%),([\d.]+%)\)$/, - "$1 $2 $3" - ), - }; - } - } - - return responseColorsData; -}; - -export const availableColors: string[] = [ - "slate", - "gray", - "zinc", - "neutral", - "stone", -]; diff --git a/apps/www/src/registry/default/example/alert-demo.ts b/apps/www/src/registry/default/example/alert-demo.ts deleted file mode 100644 index 1d374af..0000000 --- a/apps/www/src/registry/default/example/alert-demo.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Component } from "@angular/core"; -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { lucideTerminal } from "@ng-icons/lucide"; - -import { - UbAlertDirective, - UbAlertTitleDirective, - UbAlertDescriptionDirective, - UbAlertIconDirective, -} from "@/registry/default/ui/alert.directive"; - -@Component({ - standalone: true, - selector: "alert-demo-default", - imports: [ - NgIconComponent, - UbAlertDirective, - UbAlertTitleDirective, - UbAlertDescriptionDirective, - UbAlertIconDirective, - ], - viewProviders: [provideIcons({ lucideTerminal })], - template: ` -
- -
Heads up!
-
- You can add components and dependencies to your app using the cli. -
-
- `, -}) -export class AlertDemoDefault { } - -export default AlertDemoDefault; diff --git a/apps/www/src/registry/default/example/alert-destructive.ts b/apps/www/src/registry/default/example/alert-destructive.ts deleted file mode 100644 index 020bab6..0000000 --- a/apps/www/src/registry/default/example/alert-destructive.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Component } from "@angular/core"; -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { lucideTerminal } from "@ng-icons/lucide"; - -import { - UbAlertDirective, - UbAlertTitleDirective, - UbAlertDescriptionDirective, - UbAlertIconDirective, -} from "@/registry/default/ui/alert.directive"; - -@Component({ - standalone: true, - selector: "alert-destructive-default", - imports: [ - NgIconComponent, - UbAlertDirective, - UbAlertTitleDirective, - UbAlertDescriptionDirective, - UbAlertIconDirective, - ], - viewProviders: [provideIcons({ lucideTerminal })], - template: ` -
- -
Heads up!
-
- You can add components and dependencies to your app using the cli. -
-
- `, -}) -export class AlertDestructiveDefault { } - -export default AlertDestructiveDefault; diff --git a/apps/www/src/registry/default/example/avatar-demo.ts b/apps/www/src/registry/default/example/avatar-demo.ts deleted file mode 100644 index e623ed7..0000000 --- a/apps/www/src/registry/default/example/avatar-demo.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Component } from '@angular/core'; - -import { UbAvatarDirective, UbAvatarImageDirective, UbAvatarFallbackDirective } from '@/registry/default/ui/avatar.directive' - -@Component({ - standalone: true, - selector: 'avatar-demo-default', - imports: [UbAvatarDirective, UbAvatarImageDirective, UbAvatarFallbackDirective], - template: ` - - @adrianub - UB - - ` -}) -export class AvatarDemoDefault { } - -export default AvatarDemoDefault; diff --git a/apps/www/src/registry/default/example/badge-demo.ts b/apps/www/src/registry/default/example/badge-demo.ts deleted file mode 100644 index 62342f2..0000000 --- a/apps/www/src/registry/default/example/badge-demo.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbBadgeDirective } from "@/registry/default/ui/badge.directive"; - -@Component({ - standalone: true, - selector: "badge-demo-default", - imports: [UbBadgeDirective], - template: `
Badge
`, -}) -export class BadgeDemoDefault { } - -export default BadgeDemoDefault; diff --git a/apps/www/src/registry/default/example/badge-destructive.ts b/apps/www/src/registry/default/example/badge-destructive.ts deleted file mode 100644 index 7c3853e..0000000 --- a/apps/www/src/registry/default/example/badge-destructive.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbBadgeDirective } from "@/registry/default/ui/badge.directive"; - -@Component({ - standalone: true, - selector: "badge-destructive-default", - imports: [UbBadgeDirective], - template: `
Badge
`, -}) -export class BadgeDestructiveDefault { } - -export default BadgeDestructiveDefault; diff --git a/apps/www/src/registry/default/example/badge-outline.ts b/apps/www/src/registry/default/example/badge-outline.ts deleted file mode 100644 index e761623..0000000 --- a/apps/www/src/registry/default/example/badge-outline.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbBadgeDirective } from "@/registry/default/ui/badge.directive"; - -@Component({ - standalone: true, - selector: "badge-demo-default", - imports: [UbBadgeDirective], - template: `
Badge
`, -}) -export class BadgeOutlineDefault { } - -export default BadgeOutlineDefault; diff --git a/apps/www/src/registry/default/example/badge-secondary.ts b/apps/www/src/registry/default/example/badge-secondary.ts deleted file mode 100644 index ab9a6bd..0000000 --- a/apps/www/src/registry/default/example/badge-secondary.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbBadgeDirective } from "@/registry/default/ui/badge.directive"; - -@Component({ - standalone: true, - selector: "badge-secondary-default", - imports: [UbBadgeDirective], - template: `
Badge
`, -}) -export class BadgeSecondaryDefault { } - -export default BadgeSecondaryDefault; diff --git a/apps/www/src/registry/default/example/button-demo.ts b/apps/www/src/registry/default/example/button-demo.ts deleted file mode 100644 index 3f7f0da..0000000 --- a/apps/www/src/registry/default/example/button-demo.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/default/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-demo-default", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonDemoDefault { } - -export default ButtonDemoDefault; diff --git a/apps/www/src/registry/default/example/button-destructive.ts b/apps/www/src/registry/default/example/button-destructive.ts deleted file mode 100644 index 2ec5079..0000000 --- a/apps/www/src/registry/default/example/button-destructive.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/default/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-destructive-default", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonDestructiveDefault { } - -export default ButtonDestructiveDefault; diff --git a/apps/www/src/registry/default/example/button-ghost.ts b/apps/www/src/registry/default/example/button-ghost.ts deleted file mode 100644 index b13e661..0000000 --- a/apps/www/src/registry/default/example/button-ghost.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/default/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-ghost-default", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonGhostDefault { } - -export default ButtonGhostDefault; diff --git a/apps/www/src/registry/default/example/button-icon.ts b/apps/www/src/registry/default/example/button-icon.ts deleted file mode 100644 index c37639c..0000000 --- a/apps/www/src/registry/default/example/button-icon.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Component } from "@angular/core"; - -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { lucideChevronRight } from "@ng-icons/lucide"; - -import { UbButtonDirective } from "@/registry/default/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-icon-default", - imports: [UbButtonDirective, NgIconComponent], - viewProviders: [provideIcons({ lucideChevronRight })], - template: ` - - `, -}) -export class ButtonIconDefault { } - -export default ButtonIconDefault; diff --git a/apps/www/src/registry/default/example/button-link.ts b/apps/www/src/registry/default/example/button-link.ts deleted file mode 100644 index 733670a..0000000 --- a/apps/www/src/registry/default/example/button-link.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/default/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-link-default", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonLinkDefault { } - -export default ButtonLinkDefault; diff --git a/apps/www/src/registry/default/example/button-loading.ts b/apps/www/src/registry/default/example/button-loading.ts deleted file mode 100644 index 24bde1d..0000000 --- a/apps/www/src/registry/default/example/button-loading.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Component } from "@angular/core"; - -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { radixReload } from "@ng-icons/radix-icons"; - -import { UbButtonDirective } from "@/registry/default/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-loading-default", - imports: [UbButtonDirective, NgIconComponent], - viewProviders: [provideIcons({ radixReload })], - template: ` - - `, -}) -export class ButtonLoadingDefault { } - -export default ButtonLoadingDefault; diff --git a/apps/www/src/registry/default/example/button-outline.ts b/apps/www/src/registry/default/example/button-outline.ts deleted file mode 100644 index 02181fc..0000000 --- a/apps/www/src/registry/default/example/button-outline.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/default/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-outline-default", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonOutlineDefault { } - -export default ButtonOutlineDefault; diff --git a/apps/www/src/registry/default/example/button-secondary.ts b/apps/www/src/registry/default/example/button-secondary.ts deleted file mode 100644 index 0b09521..0000000 --- a/apps/www/src/registry/default/example/button-secondary.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/default/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-secondary-default", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonSecondaryDefault { } - -export default ButtonSecondaryDefault; diff --git a/apps/www/src/registry/default/example/button-with-icon.ts b/apps/www/src/registry/default/example/button-with-icon.ts deleted file mode 100644 index 7fff28a..0000000 --- a/apps/www/src/registry/default/example/button-with-icon.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Component } from "@angular/core"; - -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { radixEnvelopeOpen } from "@ng-icons/radix-icons"; - -import { UbButtonDirective } from "@/registry/default/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-with-icon-default", - imports: [UbButtonDirective, NgIconComponent], - viewProviders: [provideIcons({ radixEnvelopeOpen })], - template: ` - - `, -}) -export class ButtonWithIconDefault { } - -export default ButtonWithIconDefault; diff --git a/apps/www/src/registry/default/example/input-demo.ts b/apps/www/src/registry/default/example/input-demo.ts deleted file mode 100644 index cce5715..0000000 --- a/apps/www/src/registry/default/example/input-demo.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbInputDirective } from "@/registry/default/ui/input.directive"; - -@Component({ - standalone: true, - selector: "input-demo-default", - imports: [UbInputDirective], - template: ``, -}) -export class InputDemoDefault { } - -export default InputDemoDefault; diff --git a/apps/www/src/registry/default/example/input-disabled.ts b/apps/www/src/registry/default/example/input-disabled.ts deleted file mode 100644 index 12828de..0000000 --- a/apps/www/src/registry/default/example/input-disabled.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbInputDirective } from "@/registry/default/ui/input.directive"; - -@Component({ - standalone: true, - selector: "input-disabled-default", - imports: [UbInputDirective], - template: ``, -}) -export class InputDisabledDefault { } - -export default InputDisabledDefault; diff --git a/apps/www/src/registry/default/example/input-file.ts b/apps/www/src/registry/default/example/input-file.ts deleted file mode 100644 index b8d05cd..0000000 --- a/apps/www/src/registry/default/example/input-file.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbInputDirective } from "@/registry/default/ui/input.directive"; -import { UbLabelDirective } from "@/registry/default/ui/label.directive"; - -@Component({ - standalone: true, - selector: "input-file-default", - imports: [UbInputDirective, UbLabelDirective], - template: ` -
- - -
- `, -}) -export class InputFileDefault { } - -export default InputFileDefault; diff --git a/apps/www/src/registry/default/example/table-demo.ts b/apps/www/src/registry/default/example/table-demo.ts deleted file mode 100644 index 8e53950..0000000 --- a/apps/www/src/registry/default/example/table-demo.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { Component } from "@angular/core"; - -import { - UbTableDirective, - UbTableCaptionDirective, - UbTableHeaderDirective, - UbTableRowDirective, - UbTableHeadDirective, - UbTableBodyDirective, - UbTableCellDirective, - UbTableFooterDirective, -} from "@/registry/default/ui/table.directive"; - -@Component({ - standalone: true, - selector: "table-demo-default", - imports: [ - UbTableDirective, - UbTableCaptionDirective, - UbTableHeaderDirective, - UbTableRowDirective, - UbTableHeadDirective, - UbTableBodyDirective, - UbTableCellDirective, - UbTableFooterDirective, - ], - template: ` - - - - - - - - - - - - - - @for (invoice of invoices; track $index) { - - - - - - - } - - - - - - - - -
- A list of your recent invoices. -
InvoiceStatusMethodAmount
- {{ invoice.invoice }} - - {{ invoice.paymentStatus }} - - {{ invoice.paymentMethod }} - - {{ invoice.totalAmount }} -
Total$2,500.00
- `, -}) -export class TableDemoDefault { - invoices = [ - { - invoice: "INV001", - paymentStatus: "Paid", - totalAmount: "$250.00", - paymentMethod: "Credit Card", - }, - { - invoice: "INV002", - paymentStatus: "Pending", - totalAmount: "$150.00", - paymentMethod: "PayPal", - }, - { - invoice: "INV003", - paymentStatus: "Unpaid", - totalAmount: "$350.00", - paymentMethod: "Bank Transfer", - }, - { - invoice: "INV004", - paymentStatus: "Paid", - totalAmount: "$450.00", - paymentMethod: "Credit Card", - }, - { - invoice: "INV005", - paymentStatus: "Paid", - totalAmount: "$550.00", - paymentMethod: "PayPal", - }, - { - invoice: "INV006", - paymentStatus: "Pending", - totalAmount: "$200.00", - paymentMethod: "Bank Transfer", - }, - { - invoice: "INV007", - paymentStatus: "Unpaid", - totalAmount: "$300.00", - paymentMethod: "Credit Card", - }, - ]; -} - -export default TableDemoDefault; diff --git a/apps/www/src/registry/default/example/typography-large.ts b/apps/www/src/registry/default/example/typography-large.ts deleted file mode 100644 index 9b0380a..0000000 --- a/apps/www/src/registry/default/example/typography-large.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - standalone: true, - selector: "typography-large-default", - template: ` -
Are you absolutely sure?
- `, -}) -export class TypographyLargeDefault { } - -export default TypographyLargeDefault; diff --git a/apps/www/src/registry/default/example/typography-muted.ts b/apps/www/src/registry/default/example/typography-muted.ts deleted file mode 100644 index 42584bd..0000000 --- a/apps/www/src/registry/default/example/typography-muted.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - standalone: true, - selector: "typography-muted-default", - template: ` -

Enter your email address.

- `, -}) -export class TypographyMutedDefault { } - -export default TypographyMutedDefault; diff --git a/apps/www/src/registry/default/example/typography-small.ts b/apps/www/src/registry/default/example/typography-small.ts deleted file mode 100644 index e45a32f..0000000 --- a/apps/www/src/registry/default/example/typography-small.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - standalone: true, - selector: "typography-small-default", - template: ` - Email address - `, -}) -export class TypographySmallDefault { } - -export default TypographySmallDefault; diff --git a/apps/www/src/registry/default/ui/accordion.directive.ts b/apps/www/src/registry/default/ui/accordion.directive.ts deleted file mode 100644 index 7d73b55..0000000 --- a/apps/www/src/registry/default/ui/accordion.directive.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Component, computed, Directive, input } from '@angular/core'; -import type { ClassValue } from 'clsx'; - -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { lucideChevronDown } from "@ng-icons/lucide"; - -import { - RdxAccordionContentDirective, - RdxAccordionHeaderDirective, - RdxAccordionItemDirective, - RdxAccordionRootDirective, - RdxAccordionTriggerDirective -} from '@radix-ng/primitives/accordion'; -import { cn } from '@/lib/utils'; - - -@Directive({ - standalone: true, - selector: '[ubAccordion]', - hostDirectives: [RdxAccordionRootDirective], -}) -export class UbAccordionDirective { } - -@Directive({ - standalone: true, - selector: '[ubAccordionItem]', - hostDirectives: [ - { - directive: RdxAccordionItemDirective, - inputs: ['disabled', 'value'] - } - ], - host: { - '[class]': 'computedClass()' - } -}) -export class UbAccordionItemDirective { - class = input(); - computedClass = computed(() => { - return cn('border-b', this.class()); - }) -} - - -@Component({ - standalone: true, - selector: '[ubAccordionTrigger], ub-accordion-trigger', - imports: [RdxAccordionHeaderDirective, RdxAccordionTriggerDirective, NgIconComponent], - viewProviders: [provideIcons({ lucideChevronDown })], - template: ` -

- -

- ` -}) -export class UbAccordionTriggerDirective { - class = input(); - computedClass = computed(() => { - return cn('flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>ng-icon]:rotate-180', this.class()); - }) -} - -@Component({ - standalone: true, - selector: '[ubAccordionContent], ub-accordion-content', - hostDirectives: [RdxAccordionContentDirective], - host: { - 'class': - 'overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down' - }, - template: ` -
- -
- ` -}) -export class UbAccordionContentDirective { - class = input(); - computedClass = computed(() => { - return cn('pb-4 pt-0', this.class()); - }) -} diff --git a/apps/www/src/registry/default/ui/alert.directive.ts b/apps/www/src/registry/default/ui/alert.directive.ts deleted file mode 100644 index 6ca7143..0000000 --- a/apps/www/src/registry/default/ui/alert.directive.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -const alertVariants = cva( - "relative w-full rounded-lg border p-4 [&>[ubAlertIcon]~*]:pl-7 [&>[ubAlertIcon]+div]:translate-y-[-3px] [&>[ubAlertIcon]]:absolute [&>[ubAlertIcon]]:left-4 [&>[ubAlertIcon]]:top-4 [&>[ubAlertIcon]]:text-foreground", - { - variants: { - variant: { - default: "bg-background text-foreground", - destructive: - "border-destructive/50 text-destructive dark:border-destructive [&>[ubAlertIcon]]:text-destructive", - }, - }, - defaultVariants: { - variant: "default", - }, - } -); - -type AlertProps = VariantProps; -type UbAlertVariant = NonNullable; - -@Directive({ - selector: "div[ubAlert]", - standalone: true, - host: { - role: "alert", - "[class]": "computedClass()", - }, -}) -export class UbAlertDirective { - readonly class = input(); - readonly variant = input("default"); - - protected computedClass = computed(() => - cn(alertVariants({ variant: this.variant(), class: this.class() })) - ); -} - -@Directive({ - standalone: true, - selector: "[ubAlertIcon]", -}) -export class UbAlertIconDirective {} - -@Directive({ - selector: "h5[ubAlertTitle]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbAlertTitleDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn("mb-1 font-medium leading-none tracking-tight", this.class()) - ); -} - -@Directive({ - selector: "div[ubAlertDescription]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbAlertDescriptionDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn("text-sm [&_p]:leading-relaxed", this.class()) - ); -} diff --git a/apps/www/src/registry/default/ui/avatar.directive.ts b/apps/www/src/registry/default/ui/avatar.directive.ts deleted file mode 100644 index 0595427..0000000 --- a/apps/www/src/registry/default/ui/avatar.directive.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { cn } from '@/lib/utils'; -import { computed, Directive, input } from '@angular/core'; - -import { RdxAvatarRootDirective, RdxAvatarImageDirective, RdxAvatarFallbackDirective } from '@radix-ng/primitives/avatar' - -@Directive({ - standalone: true, - selector: 'span[ubAvatar]', - hostDirectives: [RdxAvatarRootDirective], - host: { - '[class]': 'computedClass()' - } -}) -export class UbAvatarDirective { - readonly class = input(); - - readonly computedClass = computed(() => { - return cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', this.class()); - }) -} - -@Directive({ - standalone: true, - selector: 'img[ubAvatarImage]', - hostDirectives: [RdxAvatarImageDirective], - host: { - '[class]': 'computedClass()' - } -}) -export class UbAvatarImageDirective { - readonly class = input(); - - readonly computedClass = computed(() => { - return cn('aspect-square h-full w-full', this.class()); - }) -} - -@Directive({ - standalone: true, - selector: 'span[ubAvatarFallback]', - hostDirectives: [RdxAvatarFallbackDirective], - host: { - '[class]': 'computedClass()' - } -}) -export class UbAvatarFallbackDirective { - readonly class = input(); - - readonly computedClass = computed(() => { - return cn('flex h-full w-full items-center justify-center rounded-full bg-muted', this.class()); - }) -} diff --git a/apps/www/src/registry/default/ui/badge.directive.ts b/apps/www/src/registry/default/ui/badge.directive.ts deleted file mode 100644 index d8b4547..0000000 --- a/apps/www/src/registry/default/ui/badge.directive.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -const badgeVariants = cva( - "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", - { - variants: { - variant: { - default: - "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", - secondary: - "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", - destructive: - "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", - outline: "text-foreground", - }, - }, - defaultVariants: { - variant: "default", - }, - } -); - -type BadgeProps = VariantProps; - -export type UbBadgeVariant = NonNullable; - -@Directive({ - selector: "[ubBadge]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbBadgeDirective { - readonly class = input(); - readonly variant = input("default"); - - protected computedClass = computed(() => - cn(badgeVariants({ variant: this.variant(), class: this.class() })) - ); -} diff --git a/apps/www/src/registry/default/ui/breadcrumb.directive.ts b/apps/www/src/registry/default/ui/breadcrumb.directive.ts deleted file mode 100644 index 1fc8fcd..0000000 --- a/apps/www/src/registry/default/ui/breadcrumb.directive.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { Component, computed, Directive, input } from "@angular/core"; - -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { radixChevronRight, radixDotsHorizontal } from "@ng-icons/radix-icons"; - -import { cn } from "@/lib/utils"; - -@Directive({ - selector: "nav[ubBreadcrumb]", - standalone: true, - host: { - "[attr.aria-label]": '"breadcrumb"', - }, -}) -export class UbBreadcrumbDirective {} - -@Directive({ - selector: "ol[ubBreadcrumbList]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbListDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn( - "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5", - this.class() - ) - ); -} - -@Directive({ - selector: "li[ubBreadcrumbItem]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbItemDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn("inline-flex items-center gap-1.5", this.class()) - ); -} - -@Directive({ - selector: "[ubBreadcrumbLink], a[ubBreadcrumbLink]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbLinkDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn("transition-colors hover:text-foreground", this.class()) - ); -} - -@Directive({ - selector: "span[ubBreadcrumbPage]", - standalone: true, - host: { - role: "link", - "[attr.aria-disabled]": "true", - "[attr.aria-current]": '"page"', - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbPageDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn("font-normal text-foreground", this.class()) - ); -} - -@Component({ - selector: "li[ubBreadcrumbSeparator]", - standalone: true, - imports: [NgIconComponent], - viewProviders: [provideIcons({ radixChevronRight })], - template: ` - - @if (ref.children.length == 0) { - - } - `, - host: { - role: "presentation", - "[attr.aria-hidden]": "true", - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbSeparatorComponent { - readonly class = input(); - - protected computedClass = computed(() => - cn("[&>svg]:size-3.5", this.class()) - ); -} - -@Component({ - selector: "span[ubBreadcrumbEllipsis]", - standalone: true, - imports: [NgIconComponent], - viewProviders: [provideIcons({ radixDotsHorizontal })], - template: ` - - More - `, - host: { - role: "presentation", - "[attr.aria-hidden]": "true", - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbEllipsisComponent { - readonly class = input(); - - protected computedClass = computed(() => - cn("flex h-9 w-9 items-center justify-center", this.class()) - ); -} diff --git a/apps/www/src/registry/default/ui/button.directive.ts b/apps/www/src/registry/default/ui/button.directive.ts deleted file mode 100644 index 88f1def..0000000 --- a/apps/www/src/registry/default/ui/button.directive.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -export const buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", - { - variants: { - variant: { - default: "bg-primary text-primary-foreground hover:bg-primary/90", - destructive: - "bg-destructive text-destructive-foreground hover:bg-destructive/90", - outline: - "border border-input bg-background hover:bg-accent hover:text-accent-foreground", - secondary: - "bg-secondary text-secondary-foreground hover:bg-secondary/80", - ghost: "hover:bg-accent hover:text-accent-foreground", - link: "text-primary underline-offset-4 hover:underline", - }, - size: { - default: "h-10 px-4 py-2", - sm: "h-9 rounded-md px-3", - lg: "h-11 rounded-md px-8", - icon: "h-10 w-10", - }, - }, - defaultVariants: { - variant: "default", - size: "default", - }, - } -); - -type ButtonProps = VariantProps; - -export type UbButtonSize = NonNullable; -export type UbButtonVariant = NonNullable; - -@Directive({ - selector: "[ubButton]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbButtonDirective { - readonly class = input(); - - readonly variant = input("default"); - - readonly size = input("default"); - - protected computedClass = computed(() => - cn( - buttonVariants({ - variant: this.variant(), - size: this.size(), - class: this.class(), - }) - ) - ); -} diff --git a/apps/www/src/registry/default/ui/card.directive.ts b/apps/www/src/registry/default/ui/card.directive.ts deleted file mode 100644 index add0f8e..0000000 --- a/apps/www/src/registry/default/ui/card.directive.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cn } from "@/lib/utils"; - -@Directive({ - standalone: true, - selector: "[ubCard]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("rounded-lg border bg-card text-card-foreground shadow-sm", this.class()) - ); -} - -@Directive({ - standalone: true, - selector: "[ubCardHeader]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardHeaderDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("flex flex-col space-y-1.5 p-6", this.class()) - ); -} - -@Directive({ - standalone: true, - selector: "[ubCardTitle]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardTitleDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("text-2xl font-semibold leading-none tracking-tight", this.class()) - ); -} - -@Directive({ - standalone: true, - selector: "[ubCardDescription]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardDescriptionDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("text-sm text-muted-foreground", this.class()) - ); -} - -@Directive({ - standalone: true, - selector: "[ubCardContent]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardContentDirective { - readonly class = input(); - protected computedClass = computed(() => cn("p-6 pt-0", this.class())); -} - -@Directive({ - standalone: true, - selector: "[ubCardFooter]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardFooterDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("flex items-center p-6 pt-0", this.class()) - ); -} diff --git a/apps/www/src/registry/default/ui/input.directive.ts b/apps/www/src/registry/default/ui/input.directive.ts deleted file mode 100644 index 49869cb..0000000 --- a/apps/www/src/registry/default/ui/input.directive.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cn } from "@/lib/utils"; - -export type InputType = - | "date" - | "datetime-local" - | "email" - | "month" - | "number" - | "password" - | "tel" - | "file" - | "search" - | "text"; - -@Directive({ - selector: "[ubInput]", - standalone: true, - host: { - "[class]": "computedClass()", - "[type]": "type()", - }, -}) -export class UbInputDirective { - readonly type = input.required(); - readonly class = input(); - - protected computedClass = computed(() => - cn( - "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", - this.class() - ) - ); -} diff --git a/apps/www/src/registry/default/ui/label.directive.ts b/apps/www/src/registry/default/ui/label.directive.ts deleted file mode 100644 index 8359fde..0000000 --- a/apps/www/src/registry/default/ui/label.directive.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { RdxLabelDirective } from "@radix-ng/primitives/label"; -import { cva } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -const labelVariants = cva( - "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" -); - -@Directive({ - selector: "[ubLabel]", - standalone: true, - hostDirectives: [ - { - directive: RdxLabelDirective, - inputs: ["htmlFor"], - }, - ], - host: { - "[class]": "computedClass()", - }, -}) -export class UbLabelDirective { - readonly class = input(""); - protected computedClass = computed(() => cn(labelVariants(), this.class())); -} diff --git a/apps/www/src/registry/default/ui/separator.directive.ts b/apps/www/src/registry/default/ui/separator.directive.ts deleted file mode 100644 index bdd25d3..0000000 --- a/apps/www/src/registry/default/ui/separator.directive.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { cn } from "@/lib/utils"; -import { computed, Directive, input } from "@angular/core"; - -@Directive({ - standalone: true, - selector: "[ubSeperator]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbSeparatorDirective { - readonly class = input(); - readonly orientation = input<"horizontal" | "vertical">("horizontal"); - - protected computedClass = computed(() => - cn( - "shrink-0 bg-border", - this.orientation() === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", - this.class() - ) - ); -} diff --git a/apps/www/src/registry/default/ui/skeleton.directive.ts b/apps/www/src/registry/default/ui/skeleton.directive.ts deleted file mode 100644 index fe15034..0000000 --- a/apps/www/src/registry/default/ui/skeleton.directive.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cn } from "@/lib/utils"; - -@Directive({ - selector: "[ubSkeleton]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbSkeletonDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("animate-pulse rounded-md bg-muted", this.class()) - ); -} diff --git a/apps/www/src/registry/default/ui/switch.directive.ts b/apps/www/src/registry/default/ui/switch.directive.ts deleted file mode 100644 index a7e9b45..0000000 --- a/apps/www/src/registry/default/ui/switch.directive.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { cn } from '@/lib/utils'; -import { Component, computed, input } from '@angular/core'; - -import { RdxSwitchRootDirective, RdxSwitchThumbDirective } from '@radix-ng/primitives/switch' - -@Component({ - standalone: true, - selector: 'button[ubSwitch]', - imports: [RdxSwitchThumbDirective], - hostDirectives: [ - { - directive: RdxSwitchRootDirective, - inputs: ['id', 'required', 'checked', 'disabled'], - outputs: ['onCheckedChange'] - } - ], - host: { - '[class]': 'computedClass()' - }, - template: ` - - ` -}) -export class SwitchDirective { - readonly class = input(); - readonly computedClass = computed(() => { - return cn('peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input', this.class()) - }); -} diff --git a/apps/www/src/registry/default/ui/table.directive.ts b/apps/www/src/registry/default/ui/table.directive.ts deleted file mode 100644 index bfb122b..0000000 --- a/apps/www/src/registry/default/ui/table.directive.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cn } from "@/lib/utils"; - -@Directive({ - selector: "table[ubTable]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn("w-full caption-bottom text-sm", this.class()) - ); -} - -@Directive({ - selector: "thead[ubTableHeader]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableHeaderDirective { - readonly class = input(""); - protected computedClass = computed(() => cn("[&_tr]:border-b", this.class())); -} - -@Directive({ - selector: "tbody[ubTableBody]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableBodyDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn("[&_tr:last-child]:border-0", this.class()) - ); -} - -@Directive({ - selector: "tfoot[ubTableFooter]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableFooterDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", this.class()) - ); -} - -@Directive({ - selector: "tr[ubTableRow]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableRowDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn( - "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", - this.class() - ) - ); -} - -@Directive({ - selector: "th[ubTableHead]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableHeadDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn( - "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0", - this.class() - ) - ); -} - -@Directive({ - selector: "td[ubTableCell]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableCellDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", this.class()) - ); -} - -@Directive({ - selector: "caption[ubTableCaption]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableCaptionDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn("mt-4 text-sm text-muted-foreground", this.class()) - ); -} diff --git a/apps/www/src/registry/examples.ts b/apps/www/src/registry/examples.ts deleted file mode 100644 index 679338e..0000000 --- a/apps/www/src/registry/examples.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { Registry } from "./schema"; - -export const examples: Registry = []; diff --git a/apps/www/src/registry/new-york/example/alert-demo.ts b/apps/www/src/registry/new-york/example/alert-demo.ts deleted file mode 100644 index 528a33a..0000000 --- a/apps/www/src/registry/new-york/example/alert-demo.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Component } from "@angular/core"; -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { lucideRocket } from "@ng-icons/lucide"; - -import { - UbAlertDirective, - UbAlertTitleDirective, - UbAlertDescriptionDirective, - UbAlertIconDirective, -} from "@/registry/new-york/ui/alert.directive"; - -@Component({ - standalone: true, - selector: "alert-demo-new-york", - imports: [ - NgIconComponent, - UbAlertDirective, - UbAlertTitleDirective, - UbAlertDescriptionDirective, - UbAlertIconDirective, - ], - viewProviders: [provideIcons({ lucideRocket })], - template: ` -
- -
Heads up!
-
- You can add components and dependencies to your app using the cli. -
-
- `, -}) -export class AlertDemoNewYork { } - -export default AlertDemoNewYork; diff --git a/apps/www/src/registry/new-york/example/alert-destructive.ts b/apps/www/src/registry/new-york/example/alert-destructive.ts deleted file mode 100644 index 826d846..0000000 --- a/apps/www/src/registry/new-york/example/alert-destructive.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Component } from "@angular/core"; -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { lucideRocket } from "@ng-icons/lucide"; - -import { - UbAlertDirective, - UbAlertTitleDirective, - UbAlertDescriptionDirective, - UbAlertIconDirective, -} from "@/registry/new-york/ui/alert.directive"; - -@Component({ - standalone: true, - selector: "alert-destructive-new-york", - imports: [ - NgIconComponent, - UbAlertDirective, - UbAlertTitleDirective, - UbAlertDescriptionDirective, - UbAlertIconDirective, - ], - viewProviders: [provideIcons({ lucideRocket })], - template: ` -
- -
Heads up!
-
- You can add components and dependencies to your app using the cli. -
-
- `, -}) -export class AlertDestructiveNewYork { } - -export default AlertDestructiveNewYork; diff --git a/apps/www/src/registry/new-york/example/avatar-demo.ts b/apps/www/src/registry/new-york/example/avatar-demo.ts deleted file mode 100644 index 44d1288..0000000 --- a/apps/www/src/registry/new-york/example/avatar-demo.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Component } from '@angular/core'; - -import { UbAvatarDirective, UbAvatarImageDirective, UbAvatarFallbackDirective } from '@/registry/new-york/ui/avatar.directive' - -@Component({ - standalone: true, - selector: 'avatar-demo-new-york', - imports: [UbAvatarDirective, UbAvatarImageDirective, UbAvatarFallbackDirective], - template: ` - - @adrianub - UB - - ` -}) -export class AvatarDemoNewYork { } - -export default AvatarDemoNewYork; diff --git a/apps/www/src/registry/new-york/example/badge-demo.ts b/apps/www/src/registry/new-york/example/badge-demo.ts deleted file mode 100644 index ba9b63a..0000000 --- a/apps/www/src/registry/new-york/example/badge-demo.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbBadgeDirective } from "@/registry/new-york/ui/badge.directive"; - -@Component({ - standalone: true, - selector: "badge-demo-new-york", - imports: [UbBadgeDirective], - template: `
Badge
`, -}) -export class BadgeDemoNewYork { } - -export default BadgeDemoNewYork; diff --git a/apps/www/src/registry/new-york/example/badge-destructive.ts b/apps/www/src/registry/new-york/example/badge-destructive.ts deleted file mode 100644 index 45f8428..0000000 --- a/apps/www/src/registry/new-york/example/badge-destructive.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbBadgeDirective } from "@/registry/new-york/ui/badge.directive"; - -@Component({ - standalone: true, - selector: "badge-destructive-new-york", - imports: [UbBadgeDirective], - template: `
Badge
`, -}) -export class BadgeDestructiveNewYork { } - -export default BadgeDestructiveNewYork; diff --git a/apps/www/src/registry/new-york/example/badge-outline.ts b/apps/www/src/registry/new-york/example/badge-outline.ts deleted file mode 100644 index 06ea012..0000000 --- a/apps/www/src/registry/new-york/example/badge-outline.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbBadgeDirective } from "@/registry/new-york/ui/badge.directive"; - -@Component({ - standalone: true, - selector: "badge-outline-new-york", - imports: [UbBadgeDirective], - template: `
Badge
`, -}) -export class BadgeOutlineNewYork { } - -export default BadgeOutlineNewYork; diff --git a/apps/www/src/registry/new-york/example/badge-secondary.ts b/apps/www/src/registry/new-york/example/badge-secondary.ts deleted file mode 100644 index c5899ab..0000000 --- a/apps/www/src/registry/new-york/example/badge-secondary.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbBadgeDirective } from "@/registry/new-york/ui/badge.directive"; - -@Component({ - standalone: true, - selector: "badge-secondary-new-york", - imports: [UbBadgeDirective], - template: `
Badge
`, -}) -export class BadgeSecondaryNewYork { } - -export default BadgeSecondaryNewYork; diff --git a/apps/www/src/registry/new-york/example/button-demo.ts b/apps/www/src/registry/new-york/example/button-demo.ts deleted file mode 100644 index aeed712..0000000 --- a/apps/www/src/registry/new-york/example/button-demo.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/new-york/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-demo-new-york", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonDemoNewYork { } - -export default ButtonDemoNewYork; diff --git a/apps/www/src/registry/new-york/example/button-destructive.ts b/apps/www/src/registry/new-york/example/button-destructive.ts deleted file mode 100644 index de385df..0000000 --- a/apps/www/src/registry/new-york/example/button-destructive.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/new-york/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-destructive-new-york", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonDestructiveNewYork { } - -export default ButtonDestructiveNewYork; diff --git a/apps/www/src/registry/new-york/example/button-ghost.ts b/apps/www/src/registry/new-york/example/button-ghost.ts deleted file mode 100644 index 58873cc..0000000 --- a/apps/www/src/registry/new-york/example/button-ghost.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/new-york/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-ghost-new-york", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonGhostNewYork { } - -export default ButtonGhostNewYork; diff --git a/apps/www/src/registry/new-york/example/button-icon.ts b/apps/www/src/registry/new-york/example/button-icon.ts deleted file mode 100644 index 7249324..0000000 --- a/apps/www/src/registry/new-york/example/button-icon.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Component } from "@angular/core"; - -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { lucideChevronRight } from "@ng-icons/lucide"; - -import { UbButtonDirective } from "@/registry/new-york/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-icon-new-york", - imports: [UbButtonDirective, NgIconComponent], - viewProviders: [provideIcons({ lucideChevronRight })], - template: ` - - `, -}) -export class ButtonIconNewYork { } - -export default ButtonIconNewYork; diff --git a/apps/www/src/registry/new-york/example/button-link.ts b/apps/www/src/registry/new-york/example/button-link.ts deleted file mode 100644 index 9ebd93a..0000000 --- a/apps/www/src/registry/new-york/example/button-link.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/new-york/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-link-new-york", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonLinkNewYork { } - -export default ButtonLinkNewYork; diff --git a/apps/www/src/registry/new-york/example/button-loading.ts b/apps/www/src/registry/new-york/example/button-loading.ts deleted file mode 100644 index fc093a0..0000000 --- a/apps/www/src/registry/new-york/example/button-loading.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Component } from "@angular/core"; - -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { radixReload } from "@ng-icons/radix-icons"; - -import { UbButtonDirective } from "@/registry/new-york/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-loading-new-york", - imports: [UbButtonDirective, NgIconComponent], - viewProviders: [provideIcons({ radixReload })], - template: ` - - `, -}) -export class ButtonLoadingNewYork { } - -export default ButtonLoadingNewYork; diff --git a/apps/www/src/registry/new-york/example/button-outline.ts b/apps/www/src/registry/new-york/example/button-outline.ts deleted file mode 100644 index ba259f0..0000000 --- a/apps/www/src/registry/new-york/example/button-outline.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/new-york/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-outline-new-york", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonOutlineNewYork { } - -export default ButtonOutlineNewYork; diff --git a/apps/www/src/registry/new-york/example/button-secondary.ts b/apps/www/src/registry/new-york/example/button-secondary.ts deleted file mode 100644 index 5a2d21a..0000000 --- a/apps/www/src/registry/new-york/example/button-secondary.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbButtonDirective } from "@/registry/new-york/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-secondary-new-york", - imports: [UbButtonDirective], - template: ``, -}) -export class ButtonSecondaryNewYork { } - -export default ButtonSecondaryNewYork; diff --git a/apps/www/src/registry/new-york/example/button-with-icon.ts b/apps/www/src/registry/new-york/example/button-with-icon.ts deleted file mode 100644 index 3b18288..0000000 --- a/apps/www/src/registry/new-york/example/button-with-icon.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Component } from "@angular/core"; - -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { radixEnvelopeOpen } from "@ng-icons/radix-icons"; - -import { UbButtonDirective } from "@/registry/new-york/ui/button.directive"; - -@Component({ - standalone: true, - selector: "button-with-icon-new-york", - imports: [UbButtonDirective, NgIconComponent], - viewProviders: [provideIcons({ radixEnvelopeOpen })], - template: ` - - `, -}) -export class ButtonWithIconNewYork { } - -export default ButtonWithIconNewYork; diff --git a/apps/www/src/registry/new-york/example/input-demo.ts b/apps/www/src/registry/new-york/example/input-demo.ts deleted file mode 100644 index 56ca005..0000000 --- a/apps/www/src/registry/new-york/example/input-demo.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbInputDirective } from "@/registry/new-york/ui/input.directive"; - -@Component({ - standalone: true, - selector: "input-demo-new-york", - imports: [UbInputDirective], - template: ` `, -}) -export class InputDemoNewYork { } - -export default InputDemoNewYork; diff --git a/apps/www/src/registry/new-york/example/input-disabled.ts b/apps/www/src/registry/new-york/example/input-disabled.ts deleted file mode 100644 index f64133d..0000000 --- a/apps/www/src/registry/new-york/example/input-disabled.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbInputDirective } from "@/registry/new-york/ui/input.directive"; - -@Component({ - standalone: true, - selector: "input-disabled-new-york", - imports: [UbInputDirective], - template: ` `, -}) -export class InputDisabledNewYork { } - -export default InputDisabledNewYork; diff --git a/apps/www/src/registry/new-york/example/input-file.ts b/apps/www/src/registry/new-york/example/input-file.ts deleted file mode 100644 index 11c33e5..0000000 --- a/apps/www/src/registry/new-york/example/input-file.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Component } from "@angular/core"; - -import { UbInputDirective } from "@/registry/new-york/ui/input.directive"; -import { UbLabelDirective } from "@/registry/new-york/ui/label.directive"; - -@Component({ - standalone: true, - selector: "input-file-new-york", - imports: [UbInputDirective, UbLabelDirective], - template: ` -
- - -
- `, -}) -export class InputFileNewYork { } - -export default InputFileNewYork; diff --git a/apps/www/src/registry/new-york/example/table-demo.ts b/apps/www/src/registry/new-york/example/table-demo.ts deleted file mode 100644 index 9ff103c..0000000 --- a/apps/www/src/registry/new-york/example/table-demo.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { Component } from "@angular/core"; - -import { - UbTableDirective, - UbTableCaptionDirective, - UbTableHeaderDirective, - UbTableRowDirective, - UbTableHeadDirective, - UbTableBodyDirective, - UbTableCellDirective, - UbTableFooterDirective, -} from "@/registry/new-york/ui/table.directive"; - -@Component({ - standalone: true, - selector: "table-demo-new-york", - imports: [ - UbTableDirective, - UbTableCaptionDirective, - UbTableHeaderDirective, - UbTableRowDirective, - UbTableHeadDirective, - UbTableBodyDirective, - UbTableCellDirective, - UbTableFooterDirective, - ], - template: ` - - - - - - - - - - - - - - @for (invoice of invoices; track $index) { - - - - - - - } - - - - - - - - -
- A list of your recent invoices. -
InvoiceStatusMethodAmount
- {{ invoice.invoice }} - - {{ invoice.paymentStatus }} - - {{ invoice.paymentMethod }} - - {{ invoice.totalAmount }} -
Total$2,500.00
- `, -}) -export class TableDemoNewYork { - invoices = [ - { - invoice: "INV001", - paymentStatus: "Paid", - totalAmount: "$250.00", - paymentMethod: "Credit Card", - }, - { - invoice: "INV002", - paymentStatus: "Pending", - totalAmount: "$150.00", - paymentMethod: "PayPal", - }, - { - invoice: "INV003", - paymentStatus: "Unpaid", - totalAmount: "$350.00", - paymentMethod: "Bank Transfer", - }, - { - invoice: "INV004", - paymentStatus: "Paid", - totalAmount: "$450.00", - paymentMethod: "Credit Card", - }, - { - invoice: "INV005", - paymentStatus: "Paid", - totalAmount: "$550.00", - paymentMethod: "PayPal", - }, - { - invoice: "INV006", - paymentStatus: "Pending", - totalAmount: "$200.00", - paymentMethod: "Bank Transfer", - }, - { - invoice: "INV007", - paymentStatus: "Unpaid", - totalAmount: "$300.00", - paymentMethod: "Credit Card", - }, - ]; -} - -export default TableDemoNewYork; diff --git a/apps/www/src/registry/new-york/example/typography-h3.ts b/apps/www/src/registry/new-york/example/typography-h3.ts deleted file mode 100644 index 58fd556..0000000 --- a/apps/www/src/registry/new-york/example/typography-h3.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - standalone: true, - selector: "typography-h3-new-york", - template: ` -

- The Joke Tax -

- `, -}) -export class TypographyH3NewYork { } - -export default TypographyH3NewYork; diff --git a/apps/www/src/registry/new-york/example/typography-large.ts b/apps/www/src/registry/new-york/example/typography-large.ts deleted file mode 100644 index 168c3b1..0000000 --- a/apps/www/src/registry/new-york/example/typography-large.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - standalone: true, - selector: "typography-large-new-york", - template: ` -
Are you absolutely sure?
- `, -}) -export class TypographyLargeNewYork { } - -export default TypographyLargeNewYork; diff --git a/apps/www/src/registry/new-york/example/typography-muted.ts b/apps/www/src/registry/new-york/example/typography-muted.ts deleted file mode 100644 index f6c46d8..0000000 --- a/apps/www/src/registry/new-york/example/typography-muted.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - standalone: true, - selector: "typography-muted-new-york", - template: ` -

Enter your email address.

- `, -}) -export class TypographyMutedNewYork { } - -export default TypographyMutedNewYork; diff --git a/apps/www/src/registry/new-york/example/typography-small.ts b/apps/www/src/registry/new-york/example/typography-small.ts deleted file mode 100644 index c9fc157..0000000 --- a/apps/www/src/registry/new-york/example/typography-small.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - standalone: true, - selector: "typography-small-new-york", - template: ` - Email address - `, -}) -export class TypographySmallNewYork { } - -export default TypographySmallNewYork; diff --git a/apps/www/src/registry/new-york/ui/accordion.directive.ts b/apps/www/src/registry/new-york/ui/accordion.directive.ts deleted file mode 100644 index 3ea48ef..0000000 --- a/apps/www/src/registry/new-york/ui/accordion.directive.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Component, computed, Directive, input } from '@angular/core'; -import type { ClassValue } from 'clsx'; - -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { lucideChevronDown } from "@ng-icons/lucide"; - -import { - RdxAccordionContentDirective, - RdxAccordionHeaderDirective, - RdxAccordionItemDirective, - RdxAccordionRootDirective, - RdxAccordionTriggerDirective -} from '@radix-ng/primitives/accordion'; -import { cn } from '@/lib/utils'; - - -@Directive({ - standalone: true, - selector: '[ubAccordion]', - hostDirectives: [RdxAccordionRootDirective], -}) -export class UbAccordionDirective { } - -@Directive({ - standalone: true, - selector: '[ubAccordionItem]', - hostDirectives: [ - { - directive: RdxAccordionItemDirective, - inputs: ['disabled', 'value'] - } - ], - host: { - '[class]': 'computedClass()' - } -}) -export class UbAccordionItemDirective { - class = input(); - computedClass = computed(() => { - return cn('border-b', this.class()); - }) -} - - -@Component({ - standalone: true, - selector: '[ubAccordionTrigger], ub-accordion-trigger', - imports: [RdxAccordionHeaderDirective, RdxAccordionTriggerDirective, NgIconComponent], - viewProviders: [provideIcons({ lucideChevronDown })], - template: ` -

- -

- ` -}) -export class UbAccordionTriggerDirective { - class = input(); - computedClass = computed(() => { - return cn('flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>ng-icon]:rotate-180', this.class()); - }) -} - -@Component({ - standalone: true, - selector: '[ubAccordionContent], ub-accordion-content', - hostDirectives: [RdxAccordionContentDirective], - host: { - 'class': - 'overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down' - }, - template: ` -
- -
- ` -}) -export class UbAccordionContentDirective { - class = input(); - computedClass = computed(() => { - return cn('pb-4 pt-0', this.class()); - }) -} diff --git a/apps/www/src/registry/new-york/ui/alert.directive.ts b/apps/www/src/registry/new-york/ui/alert.directive.ts deleted file mode 100644 index aa1aae0..0000000 --- a/apps/www/src/registry/new-york/ui/alert.directive.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -const alertVariants = cva( - "relative w-full rounded-lg border px-4 py-3 text-sm [&>[ubAlertIcon]+div]:translate-y-[-3px] [&>[ubAlertIcon]]:absolute [&>[ubAlertIcon]]:left-4 [&>[ubAlertIcon]]:top-4 [&>[ubAlertIcon]]:text-foreground [&>[ubAlertIcon]~*]:pl-7", - { - variants: { - variant: { - default: "bg-background text-foreground", - destructive: - "border-destructive/50 text-destructive dark:border-destructive [&>[ubAlertIcon]]:text-destructive", - }, - }, - defaultVariants: { - variant: "default", - }, - } -); - -type AlertProps = VariantProps; -type UbAlertVariant = NonNullable; - -@Directive({ - selector: "div[ubAlert]", - standalone: true, - host: { - role: "alert", - "[class]": "computedClass()", - }, -}) -export class UbAlertDirective { - readonly class = input(); - readonly variant = input("default"); - - protected computedClass = computed(() => - cn(alertVariants({ variant: this.variant(), class: this.class() })) - ); -} - -@Directive({ - standalone: true, - selector: "[ubAlertIcon]", -}) -export class UbAlertIconDirective {} - -@Directive({ - selector: "h5[ubAlertTitle]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbAlertTitleDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn("mb-1 font-medium leading-none tracking-tight", this.class()) - ); -} - -@Directive({ - selector: "div[ubAlertDescription]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbAlertDescriptionDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn("text-sm [&_p]:leading-relaxed", this.class()) - ); -} diff --git a/apps/www/src/registry/new-york/ui/avatar.directive.ts b/apps/www/src/registry/new-york/ui/avatar.directive.ts deleted file mode 100644 index 0595427..0000000 --- a/apps/www/src/registry/new-york/ui/avatar.directive.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { cn } from '@/lib/utils'; -import { computed, Directive, input } from '@angular/core'; - -import { RdxAvatarRootDirective, RdxAvatarImageDirective, RdxAvatarFallbackDirective } from '@radix-ng/primitives/avatar' - -@Directive({ - standalone: true, - selector: 'span[ubAvatar]', - hostDirectives: [RdxAvatarRootDirective], - host: { - '[class]': 'computedClass()' - } -}) -export class UbAvatarDirective { - readonly class = input(); - - readonly computedClass = computed(() => { - return cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', this.class()); - }) -} - -@Directive({ - standalone: true, - selector: 'img[ubAvatarImage]', - hostDirectives: [RdxAvatarImageDirective], - host: { - '[class]': 'computedClass()' - } -}) -export class UbAvatarImageDirective { - readonly class = input(); - - readonly computedClass = computed(() => { - return cn('aspect-square h-full w-full', this.class()); - }) -} - -@Directive({ - standalone: true, - selector: 'span[ubAvatarFallback]', - hostDirectives: [RdxAvatarFallbackDirective], - host: { - '[class]': 'computedClass()' - } -}) -export class UbAvatarFallbackDirective { - readonly class = input(); - - readonly computedClass = computed(() => { - return cn('flex h-full w-full items-center justify-center rounded-full bg-muted', this.class()); - }) -} diff --git a/apps/www/src/registry/new-york/ui/badge.directive.ts b/apps/www/src/registry/new-york/ui/badge.directive.ts deleted file mode 100644 index 03f5337..0000000 --- a/apps/www/src/registry/new-york/ui/badge.directive.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -export const badgeVariants = cva( - "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", - { - variants: { - variant: { - default: - "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80", - secondary: - "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", - destructive: - "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80", - outline: "text-foreground", - }, - }, - defaultVariants: { - variant: "default", - }, - } -); - -type BadgeProps = VariantProps; - -export type UbBadgeVariant = NonNullable; - -@Directive({ - selector: "[ubBadge]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbBadgeDirective { - readonly class = input(); - readonly variant = input("default"); - - protected computedClass = computed(() => - cn(badgeVariants({ variant: this.variant(), class: this.class() })) - ); -} diff --git a/apps/www/src/registry/new-york/ui/breadcrumb.directive.ts b/apps/www/src/registry/new-york/ui/breadcrumb.directive.ts deleted file mode 100644 index 1fc8fcd..0000000 --- a/apps/www/src/registry/new-york/ui/breadcrumb.directive.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { Component, computed, Directive, input } from "@angular/core"; - -import { NgIconComponent, provideIcons } from "@ng-icons/core"; -import { radixChevronRight, radixDotsHorizontal } from "@ng-icons/radix-icons"; - -import { cn } from "@/lib/utils"; - -@Directive({ - selector: "nav[ubBreadcrumb]", - standalone: true, - host: { - "[attr.aria-label]": '"breadcrumb"', - }, -}) -export class UbBreadcrumbDirective {} - -@Directive({ - selector: "ol[ubBreadcrumbList]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbListDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn( - "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5", - this.class() - ) - ); -} - -@Directive({ - selector: "li[ubBreadcrumbItem]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbItemDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn("inline-flex items-center gap-1.5", this.class()) - ); -} - -@Directive({ - selector: "[ubBreadcrumbLink], a[ubBreadcrumbLink]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbLinkDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn("transition-colors hover:text-foreground", this.class()) - ); -} - -@Directive({ - selector: "span[ubBreadcrumbPage]", - standalone: true, - host: { - role: "link", - "[attr.aria-disabled]": "true", - "[attr.aria-current]": '"page"', - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbPageDirective { - readonly class = input(); - - protected computedClass = computed(() => - cn("font-normal text-foreground", this.class()) - ); -} - -@Component({ - selector: "li[ubBreadcrumbSeparator]", - standalone: true, - imports: [NgIconComponent], - viewProviders: [provideIcons({ radixChevronRight })], - template: ` - - @if (ref.children.length == 0) { - - } - `, - host: { - role: "presentation", - "[attr.aria-hidden]": "true", - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbSeparatorComponent { - readonly class = input(); - - protected computedClass = computed(() => - cn("[&>svg]:size-3.5", this.class()) - ); -} - -@Component({ - selector: "span[ubBreadcrumbEllipsis]", - standalone: true, - imports: [NgIconComponent], - viewProviders: [provideIcons({ radixDotsHorizontal })], - template: ` - - More - `, - host: { - role: "presentation", - "[attr.aria-hidden]": "true", - "[class]": "computedClass()", - }, -}) -export class UbBreadcrumbEllipsisComponent { - readonly class = input(); - - protected computedClass = computed(() => - cn("flex h-9 w-9 items-center justify-center", this.class()) - ); -} diff --git a/apps/www/src/registry/new-york/ui/button.directive.ts b/apps/www/src/registry/new-york/ui/button.directive.ts deleted file mode 100644 index 39df23d..0000000 --- a/apps/www/src/registry/new-york/ui/button.directive.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -export const buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", - { - variants: { - variant: { - default: - "bg-primary text-primary-foreground shadow hover:bg-primary/90", - destructive: - "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", - outline: - "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", - secondary: - "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", - ghost: "hover:bg-accent hover:text-accent-foreground", - link: "text-primary underline-offset-4 hover:underline", - }, - size: { - default: "h-9 px-4 py-2", - sm: "h-8 rounded-md px-3 text-xs", - lg: "h-10 rounded-md px-8", - icon: "h-9 w-9", - }, - }, - defaultVariants: { - variant: "default", - size: "default", - }, - } -); - -type ButtonProps = VariantProps; - -export type ButtonSize = NonNullable; -export type ButtonVariant = NonNullable; - -@Directive({ - selector: "[ubButton]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbButtonDirective { - readonly class = input(); - - readonly variant = input("default"); - - readonly size = input("default"); - - protected computedClass = computed(() => - cn( - buttonVariants({ - variant: this.variant(), - size: this.size(), - class: this.class(), - }) - ) - ); -} diff --git a/apps/www/src/registry/new-york/ui/card.directive.ts b/apps/www/src/registry/new-york/ui/card.directive.ts deleted file mode 100644 index 3bbb103..0000000 --- a/apps/www/src/registry/new-york/ui/card.directive.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cn } from "@/lib/utils"; - -@Directive({ - standalone: true, - selector: "[ubCard]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("rounded-xl border bg-card text-card-foreground shadow", this.class()) - ); -} - -@Directive({ - standalone: true, - selector: "[ubCardHeader]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardHeaderDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("flex flex-col space-y-1.5 p-6", this.class()) - ); -} - -@Directive({ - standalone: true, - selector: "[ubCardTitle]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardTitleDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("font-semibold leading-none tracking-tight", this.class()) - ); -} - -@Directive({ - standalone: true, - selector: "[ubCardDescription]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardDescriptionDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("text-sm text-muted-foreground", this.class()) - ); -} - -@Directive({ - standalone: true, - selector: "[ubCardContent]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardContentDirective { - readonly class = input(); - protected computedClass = computed(() => cn("p-6 pt-0", this.class())); -} - -@Directive({ - standalone: true, - selector: "[ubCardFooter]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbCardFooterDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("flex items-center p-6 pt-0", this.class()) - ); -} diff --git a/apps/www/src/registry/new-york/ui/input.directive.ts b/apps/www/src/registry/new-york/ui/input.directive.ts deleted file mode 100644 index 36aa768..0000000 --- a/apps/www/src/registry/new-york/ui/input.directive.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cn } from "@/lib/utils"; - -export type InputType = - | "date" - | "datetime-local" - | "email" - | "month" - | "number" - | "password" - | "tel" - | "file" - | "search" - | "text"; - -@Directive({ - selector: "[ubInput]", - standalone: true, - host: { - "[class]": "computedClass()", - "[type]": "type()", - }, -}) -export class UbInputDirective { - readonly type = input.required(); - readonly class = input(); - - protected computedClass = computed(() => - cn( - "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50", - this.class() - ) - ); -} diff --git a/apps/www/src/registry/new-york/ui/label.directive.ts b/apps/www/src/registry/new-york/ui/label.directive.ts deleted file mode 100644 index 8359fde..0000000 --- a/apps/www/src/registry/new-york/ui/label.directive.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { RdxLabelDirective } from "@radix-ng/primitives/label"; -import { cva } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -const labelVariants = cva( - "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" -); - -@Directive({ - selector: "[ubLabel]", - standalone: true, - hostDirectives: [ - { - directive: RdxLabelDirective, - inputs: ["htmlFor"], - }, - ], - host: { - "[class]": "computedClass()", - }, -}) -export class UbLabelDirective { - readonly class = input(""); - protected computedClass = computed(() => cn(labelVariants(), this.class())); -} diff --git a/apps/www/src/registry/new-york/ui/separator.directive.ts b/apps/www/src/registry/new-york/ui/separator.directive.ts deleted file mode 100644 index bdd25d3..0000000 --- a/apps/www/src/registry/new-york/ui/separator.directive.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { cn } from "@/lib/utils"; -import { computed, Directive, input } from "@angular/core"; - -@Directive({ - standalone: true, - selector: "[ubSeperator]", - host: { - "[class]": "computedClass()", - }, -}) -export class UbSeparatorDirective { - readonly class = input(); - readonly orientation = input<"horizontal" | "vertical">("horizontal"); - - protected computedClass = computed(() => - cn( - "shrink-0 bg-border", - this.orientation() === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", - this.class() - ) - ); -} diff --git a/apps/www/src/registry/new-york/ui/skeleton.directive.ts b/apps/www/src/registry/new-york/ui/skeleton.directive.ts deleted file mode 100644 index 099e7f3..0000000 --- a/apps/www/src/registry/new-york/ui/skeleton.directive.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cn } from "@/lib/utils"; - -@Directive({ - selector: "[ubSkeleton]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbSkeletonDirective { - readonly class = input(); - protected computedClass = computed(() => - cn("animate-pulse rounded-md bg-primary/10", this.class()) - ); -} diff --git a/apps/www/src/registry/new-york/ui/switch.directive.ts b/apps/www/src/registry/new-york/ui/switch.directive.ts deleted file mode 100644 index 7a77ce9..0000000 --- a/apps/www/src/registry/new-york/ui/switch.directive.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { cn } from '@/lib/utils'; -import { Component, computed, input } from '@angular/core'; - -import { RdxSwitchRootDirective, RdxSwitchThumbDirective } from '@radix-ng/primitives/switch' - -@Component({ - standalone: true, - selector: 'button[ubSwitch]', - imports: [RdxSwitchThumbDirective], - hostDirectives: [ - { - directive: RdxSwitchRootDirective, - inputs: ['id', 'required', 'checked', 'disabled'], - outputs: ['onCheckedChange'] - } - ], - host: { - '[class]': 'computedClass()' - }, - template: ` - - ` -}) -export class SwitchDirective { - readonly class = input(); - readonly computedClass = computed(() => { - return cn('peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input', this.class()) - }); -} diff --git a/apps/www/src/registry/new-york/ui/table.directive.ts b/apps/www/src/registry/new-york/ui/table.directive.ts deleted file mode 100644 index e23232e..0000000 --- a/apps/www/src/registry/new-york/ui/table.directive.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { computed, Directive, input } from "@angular/core"; - -import { cn } from "@/lib/utils"; - -@Directive({ - selector: "table[ubTable]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn("w-full caption-bottom text-sm", this.class()) - ); -} - -@Directive({ - selector: "thead[ubTableHeader]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableHeaderDirective { - readonly class = input(""); - protected computedClass = computed(() => cn("[&_tr]:border-b", this.class())); -} - -@Directive({ - selector: "tbody[ubTableBody]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableBodyDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn("[&_tr:last-child]:border-0", this.class()) - ); -} - -@Directive({ - selector: "tfoot[ubTableFooter]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableFooterDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", this.class()) - ); -} - -@Directive({ - selector: "tr[ubTableRow]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableRowDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn( - "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", - this.class() - ) - ); -} - -@Directive({ - selector: "th[ubTableHead]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableHeadDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn( - "h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", - this.class() - ) - ); -} - -@Directive({ - selector: "td[ubTableCell]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableCellDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn( - "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", - this.class() - ) - ); -} - -@Directive({ - selector: "caption[ubTableCaption]", - standalone: true, - host: { - "[class]": "computedClass()", - }, -}) -export class UbTableCaptionDirective { - readonly class = input(""); - protected computedClass = computed(() => - cn("mt-4 text-sm text-muted-foreground", this.class()) - ); -} diff --git a/apps/www/src/registry/registry.ts b/apps/www/src/registry/registry.ts deleted file mode 100644 index 740f2f9..0000000 --- a/apps/www/src/registry/registry.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { blocks } from "./blocks"; -import { charts } from "./charts"; -import { examples } from "./examples"; -import type { Registry } from "./schema"; -import { ui } from "./ui"; - -export const registry: Registry = [...ui, ...examples, ...blocks, ...charts]; diff --git a/apps/www/src/registry/styles.ts b/apps/www/src/registry/styles.ts deleted file mode 100644 index c3b98ee..0000000 --- a/apps/www/src/registry/styles.ts +++ /dev/null @@ -1,12 +0,0 @@ -export const styles = [ - { - name: "default", - label: "Default", - }, - { - name: "new-york", - label: "New York", - }, -] as const; - -export type Style = (typeof styles)[number]; diff --git a/apps/www/src/registry/themes.ts b/apps/www/src/registry/themes.ts deleted file mode 100644 index 8db7e38..0000000 --- a/apps/www/src/registry/themes.ts +++ /dev/null @@ -1,756 +0,0 @@ -export const themes = [ - { - name: "zinc", - label: "Zinc", - activeColor: { - light: "240 5.9% 10%", - dark: "240 5.2% 33.9%", - }, - cssVars: { - light: { - 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 84.2% 60.2%", - "destructive-foreground": "0 0% 98%", - border: "240 5.9% 90%", - input: "240 5.9% 90%", - ring: "240 5.9% 10%", - 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%", - }, - 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 0% 98%", - 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%", - }, - }, - }, - { - name: "slate", - label: "Slate", - activeColor: { - light: "215.4 16.3% 46.9%", - dark: "215.3 19.3% 34.5%", - }, - cssVars: { - light: { - background: "0 0% 100%", - foreground: "222.2 84% 4.9%", - card: "0 0% 100%", - "card-foreground": "222.2 84% 4.9%", - popover: "0 0% 100%", - "popover-foreground": "222.2 84% 4.9%", - primary: "222.2 47.4% 11.2%", - "primary-foreground": "210 40% 98%", - secondary: "210 40% 96.1%", - "secondary-foreground": "222.2 47.4% 11.2%", - muted: "210 40% 96.1%", - "muted-foreground": "215.4 16.3% 46.9%", - accent: "210 40% 96.1%", - "accent-foreground": "222.2 47.4% 11.2%", - destructive: "0 84.2% 60.2%", - "destructive-foreground": "210 40% 98%", - border: "214.3 31.8% 91.4%", - input: "214.3 31.8% 91.4%", - ring: "222.2 84% 4.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%", - }, - dark: { - background: "222.2 84% 4.9%", - foreground: "210 40% 98%", - card: "222.2 84% 4.9%", - "card-foreground": "210 40% 98%", - popover: "222.2 84% 4.9%", - "popover-foreground": "210 40% 98%", - primary: "210 40% 98%", - "primary-foreground": "222.2 47.4% 11.2%", - secondary: "217.2 32.6% 17.5%", - "secondary-foreground": "210 40% 98%", - muted: "217.2 32.6% 17.5%", - "muted-foreground": "215 20.2% 65.1%", - accent: "217.2 32.6% 17.5%", - "accent-foreground": "210 40% 98%", - destructive: "0 62.8% 30.6%", - "destructive-foreground": "210 40% 98%", - border: "217.2 32.6% 17.5%", - input: "217.2 32.6% 17.5%", - ring: "212.7 26.8% 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%", - }, - }, - }, - { - name: "stone", - label: "Stone", - activeColor: { - light: "25 5.3% 44.7%", - dark: "33.3 5.5% 32.4%", - }, - cssVars: { - light: { - background: "0 0% 100%", - foreground: "20 14.3% 4.1%", - card: "0 0% 100%", - "card-foreground": "20 14.3% 4.1%", - popover: "0 0% 100%", - "popover-foreground": "20 14.3% 4.1%", - primary: "24 9.8% 10%", - "primary-foreground": "60 9.1% 97.8%", - secondary: "60 4.8% 95.9%", - "secondary-foreground": "24 9.8% 10%", - muted: "60 4.8% 95.9%", - "muted-foreground": "25 5.3% 44.7%", - accent: "60 4.8% 95.9%", - "accent-foreground": "24 9.8% 10%", - destructive: "0 84.2% 60.2%", - "destructive-foreground": "60 9.1% 97.8%", - border: "20 5.9% 90%", - input: "20 5.9% 90%", - ring: "20 14.3% 4.1%", - radius: "0.95rem", - "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%", - }, - dark: { - background: "20 14.3% 4.1%", - foreground: "60 9.1% 97.8%", - card: "20 14.3% 4.1%", - "card-foreground": "60 9.1% 97.8%", - popover: "20 14.3% 4.1%", - "popover-foreground": "60 9.1% 97.8%", - primary: "60 9.1% 97.8%", - "primary-foreground": "24 9.8% 10%", - secondary: "12 6.5% 15.1%", - "secondary-foreground": "60 9.1% 97.8%", - muted: "12 6.5% 15.1%", - "muted-foreground": "24 5.4% 63.9%", - accent: "12 6.5% 15.1%", - "accent-foreground": "60 9.1% 97.8%", - destructive: "0 62.8% 30.6%", - "destructive-foreground": "60 9.1% 97.8%", - border: "12 6.5% 15.1%", - input: "12 6.5% 15.1%", - ring: "24 5.7% 82.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%", - }, - }, - }, - { - name: "gray", - label: "Gray", - activeColor: { - light: "220 8.9% 46.1%", - dark: "215 13.8% 34.1%", - }, - cssVars: { - light: { - background: "0 0% 100%", - foreground: "224 71.4% 4.1%", - card: "0 0% 100%", - "card-foreground": "224 71.4% 4.1%", - popover: "0 0% 100%", - "popover-foreground": "224 71.4% 4.1%", - primary: "220.9 39.3% 11%", - "primary-foreground": "210 20% 98%", - secondary: "220 14.3% 95.9%", - "secondary-foreground": "220.9 39.3% 11%", - muted: "220 14.3% 95.9%", - "muted-foreground": "220 8.9% 46.1%", - accent: "220 14.3% 95.9%", - "accent-foreground": "220.9 39.3% 11%", - destructive: "0 84.2% 60.2%", - "destructive-foreground": "210 20% 98%", - border: "220 13% 91%", - input: "220 13% 91%", - ring: "224 71.4% 4.1%", - radius: "0.35rem", - "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%", - }, - dark: { - background: "224 71.4% 4.1%", - foreground: "210 20% 98%", - card: "224 71.4% 4.1%", - "card-foreground": "210 20% 98%", - popover: "224 71.4% 4.1%", - "popover-foreground": "210 20% 98%", - primary: "210 20% 98%", - "primary-foreground": "220.9 39.3% 11%", - secondary: "215 27.9% 16.9%", - "secondary-foreground": "210 20% 98%", - muted: "215 27.9% 16.9%", - "muted-foreground": "217.9 10.6% 64.9%", - accent: "215 27.9% 16.9%", - "accent-foreground": "210 20% 98%", - destructive: "0 62.8% 30.6%", - "destructive-foreground": "210 20% 98%", - border: "215 27.9% 16.9%", - input: "215 27.9% 16.9%", - ring: "216 12.2% 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%", - }, - }, - }, - { - name: "neutral", - label: "Neutral", - activeColor: { - light: "0 0% 45.1%", - dark: "0 0% 32.2%", - }, - cssVars: { - light: { - background: "0 0% 100%", - foreground: "0 0% 3.9%", - card: "0 0% 100%", - "card-foreground": "0 0% 3.9%", - popover: "0 0% 100%", - "popover-foreground": "0 0% 3.9%", - primary: "0 0% 9%", - "primary-foreground": "0 0% 98%", - secondary: "0 0% 96.1%", - "secondary-foreground": "0 0% 9%", - muted: "0 0% 96.1%", - "muted-foreground": "0 0% 45.1%", - accent: "0 0% 96.1%", - "accent-foreground": "0 0% 9%", - destructive: "0 84.2% 60.2%", - "destructive-foreground": "0 0% 98%", - border: "0 0% 89.8%", - input: "0 0% 89.8%", - ring: "0 0% 3.9%", - "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%", - }, - dark: { - background: "0 0% 3.9%", - foreground: "0 0% 98%", - card: "0 0% 3.9%", - "card-foreground": "0 0% 98%", - popover: "0 0% 3.9%", - "popover-foreground": "0 0% 98%", - primary: "0 0% 98%", - "primary-foreground": "0 0% 9%", - secondary: "0 0% 14.9%", - "secondary-foreground": "0 0% 98%", - muted: "0 0% 14.9%", - "muted-foreground": "0 0% 63.9%", - accent: "0 0% 14.9%", - "accent-foreground": "0 0% 98%", - destructive: "0 62.8% 30.6%", - "destructive-foreground": "0 0% 98%", - border: "0 0% 14.9%", - input: "0 0% 14.9%", - ring: "0 0% 83.1%", - "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%", - }, - }, - }, - { - name: "red", - label: "Red", - activeColor: { - light: "0 72.2% 50.6%", - dark: "0 72.2% 50.6%", - }, - cssVars: { - light: { - background: "0 0% 100%", - foreground: "0 0% 3.9%", - card: "0 0% 100%", - "card-foreground": "0 0% 3.9%", - popover: "0 0% 100%", - "popover-foreground": "0 0% 3.9%", - primary: "0 72.2% 50.6%", - "primary-foreground": "0 85.7% 97.3%", - secondary: "0 0% 96.1%", - "secondary-foreground": "0 0% 9%", - muted: "0 0% 96.1%", - "muted-foreground": "0 0% 45.1%", - accent: "0 0% 96.1%", - "accent-foreground": "0 0% 9%", - destructive: "0 84.2% 60.2%", - "destructive-foreground": "0 0% 98%", - border: "0 0% 89.8%", - input: "0 0% 89.8%", - ring: "0 72.2% 50.6%", - radius: "0.4rem", - "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%", - }, - dark: { - background: "0 0% 3.9%", - foreground: "0 0% 98%", - card: "0 0% 3.9%", - "card-foreground": "0 0% 98%", - popover: "0 0% 3.9%", - "popover-foreground": "0 0% 98%", - primary: "0 72.2% 50.6%", - "primary-foreground": "0 85.7% 97.3%", - secondary: "0 0% 14.9%", - "secondary-foreground": "0 0% 98%", - muted: "0 0% 14.9%", - "muted-foreground": "0 0% 63.9%", - accent: "0 0% 14.9%", - "accent-foreground": "0 0% 98%", - destructive: "0 62.8% 30.6%", - "destructive-foreground": "0 0% 98%", - border: "0 0% 14.9%", - input: "0 0% 14.9%", - ring: "0 72.2% 50.6%", - "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%", - }, - }, - }, - { - name: "rose", - label: "Rose", - activeColor: { - light: "346.8 77.2% 49.8%", - dark: "346.8 77.2% 49.8%", - }, - cssVars: { - light: { - 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: "346.8 77.2% 49.8%", - "primary-foreground": "355.7 100% 97.3%", - 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 84.2% 60.2%", - "destructive-foreground": "0 0% 98%", - border: "240 5.9% 90%", - input: "240 5.9% 90%", - ring: "346.8 77.2% 49.8%", - 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%", - }, - dark: { - background: "20 14.3% 4.1%", - foreground: "0 0% 95%", - popover: "0 0% 9%", - "popover-foreground": "0 0% 95%", - card: "24 9.8% 10%", - "card-foreground": "0 0% 95%", - primary: "346.8 77.2% 49.8%", - "primary-foreground": "355.7 100% 97.3%", - secondary: "240 3.7% 15.9%", - "secondary-foreground": "0 0% 98%", - muted: "0 0% 15%", - "muted-foreground": "240 5% 64.9%", - accent: "12 6.5% 15.1%", - "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: "346.8 77.2% 49.8%", - "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%", - }, - }, - }, - { - name: "orange", - label: "Orange", - activeColor: { - light: "24.6 95% 53.1%", - dark: "20.5 90.2% 48.2%", - }, - cssVars: { - light: { - background: "0 0% 100%", - foreground: "20 14.3% 4.1%", - card: "0 0% 100%", - "card-foreground": "20 14.3% 4.1%", - popover: "0 0% 100%", - "popover-foreground": "20 14.3% 4.1%", - primary: "24.6 95% 53.1%", - "primary-foreground": "60 9.1% 97.8%", - secondary: "60 4.8% 95.9%", - "secondary-foreground": "24 9.8% 10%", - muted: "60 4.8% 95.9%", - "muted-foreground": "25 5.3% 44.7%", - accent: "60 4.8% 95.9%", - "accent-foreground": "24 9.8% 10%", - destructive: "0 84.2% 60.2%", - "destructive-foreground": "60 9.1% 97.8%", - border: "20 5.9% 90%", - input: "20 5.9% 90%", - ring: "24.6 95% 53.1%", - radius: "0.95rem", - "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%", - }, - dark: { - background: "20 14.3% 4.1%", - foreground: "60 9.1% 97.8%", - card: "20 14.3% 4.1%", - "card-foreground": "60 9.1% 97.8%", - popover: "20 14.3% 4.1%", - "popover-foreground": "60 9.1% 97.8%", - primary: "20.5 90.2% 48.2%", - "primary-foreground": "60 9.1% 97.8%", - secondary: "12 6.5% 15.1%", - "secondary-foreground": "60 9.1% 97.8%", - muted: "12 6.5% 15.1%", - "muted-foreground": "24 5.4% 63.9%", - accent: "12 6.5% 15.1%", - "accent-foreground": "60 9.1% 97.8%", - destructive: "0 72.2% 50.6%", - "destructive-foreground": "60 9.1% 97.8%", - border: "12 6.5% 15.1%", - input: "12 6.5% 15.1%", - ring: "20.5 90.2% 48.2%", - "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%", - }, - }, - }, - { - name: "green", - label: "Green", - activeColor: { - light: "142.1 76.2% 36.3%", - dark: "142.1 70.6% 45.3%", - }, - cssVars: { - light: { - 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: "142.1 76.2% 36.3%", - "primary-foreground": "355.7 100% 97.3%", - 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 84.2% 60.2%", - "destructive-foreground": "0 0% 98%", - border: "240 5.9% 90%", - input: "240 5.9% 90%", - ring: "142.1 76.2% 36.3%", - "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%", - }, - dark: { - background: "20 14.3% 4.1%", - foreground: "0 0% 95%", - popover: "0 0% 9%", - "popover-foreground": "0 0% 95%", - card: "24 9.8% 10%", - "card-foreground": "0 0% 95%", - primary: "142.1 70.6% 45.3%", - "primary-foreground": "144.9 80.4% 10%", - secondary: "240 3.7% 15.9%", - "secondary-foreground": "0 0% 98%", - muted: "0 0% 15%", - "muted-foreground": "240 5% 64.9%", - accent: "12 6.5% 15.1%", - "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: "142.4 71.8% 29.2%", - "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%", - }, - }, - }, - { - name: "blue", - label: "Blue", - activeColor: { - light: "221.2 83.2% 53.3%", - dark: "217.2 91.2% 59.8%", - }, - cssVars: { - light: { - background: "0 0% 100%", - foreground: "222.2 84% 4.9%", - card: "0 0% 100%", - "card-foreground": "222.2 84% 4.9%", - popover: "0 0% 100%", - "popover-foreground": "222.2 84% 4.9%", - primary: "221.2 83.2% 53.3%", - "primary-foreground": "210 40% 98%", - secondary: "210 40% 96.1%", - "secondary-foreground": "222.2 47.4% 11.2%", - muted: "210 40% 96.1%", - "muted-foreground": "215.4 16.3% 46.9%", - accent: "210 40% 96.1%", - "accent-foreground": "222.2 47.4% 11.2%", - destructive: "0 84.2% 60.2%", - "destructive-foreground": "210 40% 98%", - border: "214.3 31.8% 91.4%", - input: "214.3 31.8% 91.4%", - ring: "221.2 83.2% 53.3%", - "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%", - }, - dark: { - background: "222.2 84% 4.9%", - foreground: "210 40% 98%", - card: "222.2 84% 4.9%", - "card-foreground": "210 40% 98%", - popover: "222.2 84% 4.9%", - "popover-foreground": "210 40% 98%", - primary: "217.2 91.2% 59.8%", - "primary-foreground": "222.2 47.4% 11.2%", - secondary: "217.2 32.6% 17.5%", - "secondary-foreground": "210 40% 98%", - muted: "217.2 32.6% 17.5%", - "muted-foreground": "215 20.2% 65.1%", - accent: "217.2 32.6% 17.5%", - "accent-foreground": "210 40% 98%", - destructive: "0 62.8% 30.6%", - "destructive-foreground": "210 40% 98%", - border: "217.2 32.6% 17.5%", - input: "217.2 32.6% 17.5%", - ring: "224.3 76.3% 48%", - "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%", - }, - }, - }, - { - name: "yellow", - label: "Yellow", - activeColor: { - light: "47.9 95.8% 53.1%", - dark: "47.9 95.8% 53.1%", - }, - cssVars: { - light: { - background: "0 0% 100%", - foreground: "20 14.3% 4.1%", - card: "0 0% 100%", - "card-foreground": "20 14.3% 4.1%", - popover: "0 0% 100%", - "popover-foreground": "20 14.3% 4.1%", - primary: "47.9 95.8% 53.1%", - "primary-foreground": "26 83.3% 14.1%", - secondary: "60 4.8% 95.9%", - "secondary-foreground": "24 9.8% 10%", - muted: "60 4.8% 95.9%", - "muted-foreground": "25 5.3% 44.7%", - accent: "60 4.8% 95.9%", - "accent-foreground": "24 9.8% 10%", - destructive: "0 84.2% 60.2%", - "destructive-foreground": "60 9.1% 97.8%", - border: "20 5.9% 90%", - input: "20 5.9% 90%", - ring: "20 14.3% 4.1%", - radius: "0.95rem", - "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%", - }, - dark: { - background: "20 14.3% 4.1%", - foreground: "60 9.1% 97.8%", - card: "20 14.3% 4.1%", - "card-foreground": "60 9.1% 97.8%", - popover: "20 14.3% 4.1%", - "popover-foreground": "60 9.1% 97.8%", - primary: "47.9 95.8% 53.1%", - "primary-foreground": "26 83.3% 14.1%", - secondary: "12 6.5% 15.1%", - "secondary-foreground": "60 9.1% 97.8%", - muted: "12 6.5% 15.1%", - "muted-foreground": "24 5.4% 63.9%", - accent: "12 6.5% 15.1%", - "accent-foreground": "60 9.1% 97.8%", - destructive: "0 62.8% 30.6%", - "destructive-foreground": "60 9.1% 97.8%", - border: "12 6.5% 15.1%", - input: "12 6.5% 15.1%", - ring: "35.5 91.7% 32.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%", - }, - }, - }, - { - name: "violet", - label: "Violet", - activeColor: { - light: "262.1 83.3% 57.8%", - dark: "263.4 70% 50.4%", - }, - cssVars: { - light: { - background: "0 0% 100%", - foreground: "224 71.4% 4.1%", - card: "0 0% 100%", - "card-foreground": "224 71.4% 4.1%", - popover: "0 0% 100%", - "popover-foreground": "224 71.4% 4.1%", - primary: "262.1 83.3% 57.8%", - "primary-foreground": "210 20% 98%", - secondary: "220 14.3% 95.9%", - "secondary-foreground": "220.9 39.3% 11%", - muted: "220 14.3% 95.9%", - "muted-foreground": "220 8.9% 46.1%", - accent: "220 14.3% 95.9%", - "accent-foreground": "220.9 39.3% 11%", - destructive: "0 84.2% 60.2%", - "destructive-foreground": "210 20% 98%", - border: "220 13% 91%", - input: "220 13% 91%", - ring: "262.1 83.3% 57.8%", - "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%", - }, - dark: { - background: "224 71.4% 4.1%", - foreground: "210 20% 98%", - card: "224 71.4% 4.1%", - "card-foreground": "210 20% 98%", - popover: "224 71.4% 4.1%", - "popover-foreground": "210 20% 98%", - primary: "263.4 70% 50.4%", - "primary-foreground": "210 20% 98%", - secondary: "215 27.9% 16.9%", - "secondary-foreground": "210 20% 98%", - muted: "215 27.9% 16.9%", - "muted-foreground": "217.9 10.6% 64.9%", - accent: "215 27.9% 16.9%", - "accent-foreground": "210 20% 98%", - destructive: "0 62.8% 30.6%", - "destructive-foreground": "210 20% 98%", - border: "215 27.9% 16.9%", - input: "215 27.9% 16.9%", - ring: "263.4 70% 50.4%", - "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%", - }, - }, - }, -] as const; - -export type Theme = (typeof themes)[number]; diff --git a/apps/www/src/registry/ui.ts b/apps/www/src/registry/ui.ts deleted file mode 100644 index 37563f5..0000000 --- a/apps/www/src/registry/ui.ts +++ /dev/null @@ -1,80 +0,0 @@ -import type { Registry } from "./schema"; - -export const ui: Registry = [ - { - name: "accordion", - type: "components:ui", - dependencies: ["@ng-icons/core", "@ng-icons/lucide", "@radix-ng/primitives"], - files: ["ui/accordion.directive.ts"], - }, - { - name: "alert", - type: "components:ui", - files: ["ui/alert.directive.ts"], - }, - { - name: "avatar", - type: "components:ui", - dependencies: ["@radix-ng/primitives"], - files: ["ui/avatar.directive.ts"], - }, - { - name: "badge", - type: "components:ui", - files: ["ui/badge.directive.ts"], - }, - { - name: "breadcrumb", - type: "components:ui", - files: ["ui/breadcrumb.directive.ts"], - dependencies: ["@ng-icons/core", "@ng-icons/radix-icons"], - }, - { - name: "button", - type: "components:ui", - files: ["ui/button.directive.ts"], - }, - { - name: "card", - type: "components:ui", - files: ["ui/card.directive.ts"], - }, - { - name: "input", - type: "components:ui", - files: ["ui/input.directive.ts"], - }, - { - name: "label", - type: "components:ui", - dependencies: ["@radix-ng/primitives"], - files: ["ui/label.directive.ts"], - }, - { - name: "separator", - type: "components:ui", - files: ["ui/separator.directive.ts"], - }, - { - name: "skeleton", - type: "components:ui", - files: ["ui/skeleton.directive.ts"], - }, - { - name: "switch", - type: "components:ui", - dependencies: ["@radix-ng/primitives"], - files: ["ui/switch.directive.ts"], - }, - { - name: "table", - type: "components:ui", - files: ["ui/table.directive.ts"], - }, - { - name: "tabs", - type: "components:ui", - dependencies: ["@angular/cdk", "@radix-ng/primitives"], - files: ["ui/tabs.directive.ts"], - }, -]; diff --git a/apps/www/src/schemas/badge.ts b/apps/www/src/schemas/badge.ts deleted file mode 100644 index 36dafcb..0000000 --- a/apps/www/src/schemas/badge.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { z } from "astro/zod"; - -const badgeSchema = () => - 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 const BadgeConfigSchema = () => - 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/apps/www/src/utils/base.ts b/apps/www/src/utils/base.ts deleted file mode 100644 index 1f2f3c8..0000000 --- a/apps/www/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) { - 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) { - path = stripLeadingSlash(path); - return path ? base + "/" + path : base; -} diff --git a/apps/www/src/utils/format-path.ts b/apps/www/src/utils/format-path.ts deleted file mode 100644 index 494b594..0000000 --- a/apps/www/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/apps/www/src/utils/path.ts b/apps/www/src/utils/path.ts deleted file mode 100644 index ee7f8ce..0000000 --- a/apps/www/src/utils/path.ts +++ /dev/null @@ -1,54 +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) { - 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) { - 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) { - const pathWithoutTrailingSlash = stripTrailingSlash(path); - return pathWithoutTrailingSlash.endsWith(".html") - ? pathWithoutTrailingSlash.slice(0, -5) - : path; -} - -/** Add '.html' extension to a path. */ -export function ensureHtmlExtension(path: string) { - path = stripLeadingAndTrailingSlashes(path); - if (!path.endsWith(".html")) { - path = path ? path + ".html" : "/index.html"; - } - return ensureLeadingSlash(path); -} diff --git a/apps/www/src/virtual.d.ts b/apps/www/src/virtual.d.ts deleted file mode 100644 index 695553c..0000000 --- a/apps/www/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/apps/www/tailwind.config.mjs b/apps/www/tailwind.config.mjs deleted file mode 100644 index 474ef57..0000000 --- a/apps/www/tailwind.config.mjs +++ /dev/null @@ -1,85 +0,0 @@ -import colors from "tailwindcss/colors"; -import starlightPlugin from "@astrojs/starlight-tailwind"; -import { fontFamily } from "tailwindcss/defaultTheme"; - -/** @type {import('tailwindcss').Config} */ -export default { - darkMode: "class", - content: [ - "./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue,directive.ts}", - ], - theme: { - container: { - center: true, - padding: "2rem", - screens: { - "2xl": "1400px", - }, - }, - extend: { - colors: { - gray: colors.stone, - border: "hsl(var(--border))", - input: "hsl(var(--input))", - ring: "hsl(var(--ring))", - background: "hsl(var(--background))", - foreground: "hsl(var(--foreground))", - primary: { - DEFAULT: "hsl(var(--primary))", - foreground: "hsl(var(--primary-foreground))", - }, - secondary: { - DEFAULT: "hsl(var(--secondary))", - foreground: "hsl(var(--secondary-foreground))", - }, - destructive: { - DEFAULT: "hsl(var(--destructive))", - foreground: "hsl(var(--destructive-foreground))", - }, - muted: { - DEFAULT: "hsl(var(--muted))", - foreground: "hsl(var(--muted-foreground))", - }, - accent: { - ...colors.neutral, - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))", - }, - popover: { - DEFAULT: "hsl(var(--popover))", - foreground: "hsl(var(--popover-foreground))", - }, - card: { - DEFAULT: "hsl(var(--card))", - foreground: "hsl(var(--card-foreground))", - }, - }, - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)", - }, - 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", - }, - fontFamily: { - sans: ["Geist Sans Variable", ...fontFamily.sans], - }, - }, - }, - corePlugins: { - preflight: true, - }, - plugins: [starlightPlugin()], -}; diff --git a/build.config.ts b/build.config.ts new file mode 100644 index 0000000..df5eb5f --- /dev/null +++ b/build.config.ts @@ -0,0 +1,12 @@ +import { defineBuildConfig } from 'unbuild' + +export default defineBuildConfig({ + entries: [ + 'src/cli', + ], + declaration: true, + clean: true, + rollup: { + emitCJS: true, + }, +}) diff --git a/apps/www/.gitignore b/docs/.gitignore similarity index 100% rename from apps/www/.gitignore rename to docs/.gitignore diff --git a/apps/www/.vscode/extensions.json b/docs/.vscode/extensions.json similarity index 100% rename from apps/www/.vscode/extensions.json rename to docs/.vscode/extensions.json diff --git a/apps/www/.vscode/launch.json b/docs/.vscode/launch.json similarity index 100% rename from apps/www/.vscode/launch.json rename to docs/.vscode/launch.json diff --git a/apps/www/.vscode/simple-query.code-snippets b/docs/.vscode/simple-query.code-snippets similarity index 100% rename from apps/www/.vscode/simple-query.code-snippets rename to docs/.vscode/simple-query.code-snippets diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs new file mode 100644 index 0000000..5ca0355 --- /dev/null +++ b/docs/astro.config.mjs @@ -0,0 +1,118 @@ +import angular from '@analogjs/astro-angular' +import starlight from '@astrojs/starlight' +import tailwind from '@astrojs/tailwind' +import { defineConfig } from 'astro/config' +import AutoImport from 'astro-auto-import' +import { siteConfig } from './src/config/site' + +import theme from './src/lib/highlighter-theme.json' + +// https://astro.build/config +export default defineConfig({ + site: siteConfig.url, + 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', + }, + }), + AutoImport({ + imports: [ + '@/components/ComponentPreview.astro', + '@/components/ComponentSource.astro', + ], + }), + tailwind(), + angular(), + ], + redirects: { + '/docs/components': '/docs/components/accordion', + }, + vite: { + optimizeDeps: { + include: [ + '@radix-ng/primitives', + '@angular/common', + '@angular/core', + '@angular/cdk', + '@ng-icons/core', + '@ng-icons/lucide', + ], + }, + ssr: { + noExternal: [ + '@radix-ng/primitives', + '@angular/cdk', + '@ng-icons/core', + '@ng-icons/lucide', + ], + }, + }, +}) diff --git a/apps/www/package.json b/docs/package.json similarity index 98% rename from apps/www/package.json rename to docs/package.json index dfc4307..4821bc7 100644 --- a/apps/www/package.json +++ b/docs/package.json @@ -1,5 +1,5 @@ { - "name": "www", + "name": "docs", "type": "module", "version": "0.0.1", "private": true, diff --git a/apps/www/public/favicon.ico b/docs/public/favicon.ico similarity index 100% rename from apps/www/public/favicon.ico rename to docs/public/favicon.ico diff --git a/apps/www/public/og.jpg b/docs/public/og.jpg similarity index 100% rename from apps/www/public/og.jpg rename to docs/public/og.jpg diff --git a/apps/www/public/schema.json b/docs/public/schema.json similarity index 100% rename from apps/www/public/schema.json rename to docs/public/schema.json diff --git a/docs/src/__registry__/examples.ts b/docs/src/__registry__/examples.ts new file mode 100644 index 0000000..983ced3 --- /dev/null +++ b/docs/src/__registry__/examples.ts @@ -0,0 +1,28 @@ +export const examples: Record> = {} + +const components = import.meta.glob(`../registry/**/example/*.ts`) + +for (const path in components) { + const component = components[path] + const name = path.split('/')[2] + const componentName = path.split('/').pop()?.replace('.ts', '') + if (!componentName || !name) { + continue + } + + if (!examples[name]) { + examples[name] = {} + } + + examples[name][componentName] = { + name: componentName, + type: 'components:example', + registryDependencies: [name], + component, + source: '', + files: [path], + category: 'undefined', + subcategory: 'undefined', + chunks: [], + } +} diff --git a/apps/www/src/assets/logo.svg b/docs/src/assets/logo.svg similarity index 100% rename from apps/www/src/assets/logo.svg rename to docs/src/assets/logo.svg diff --git a/apps/www/src/components/ComponentPreview.astro b/docs/src/components/ComponentPreview.astro similarity index 100% rename from apps/www/src/components/ComponentPreview.astro rename to docs/src/components/ComponentPreview.astro diff --git a/apps/www/src/components/ComponentSource.astro b/docs/src/components/ComponentSource.astro similarity index 100% rename from apps/www/src/components/ComponentSource.astro rename to docs/src/components/ComponentSource.astro diff --git a/apps/www/src/components/SelectStyle/Item.astro b/docs/src/components/SelectStyle/Item.astro similarity index 100% rename from apps/www/src/components/SelectStyle/Item.astro rename to docs/src/components/SelectStyle/Item.astro diff --git a/apps/www/src/components/SelectStyle/Select.astro b/docs/src/components/SelectStyle/Select.astro similarity index 100% rename from apps/www/src/components/SelectStyle/Select.astro rename to docs/src/components/SelectStyle/Select.astro diff --git a/docs/src/components/SelectStyle/index.ts b/docs/src/components/SelectStyle/index.ts new file mode 100644 index 0000000..90e42c3 --- /dev/null +++ b/docs/src/components/SelectStyle/index.ts @@ -0,0 +1,4 @@ +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 new file mode 100644 index 0000000..fb7c83e --- /dev/null +++ b/docs/src/components/SelectStyle/rehype-select-style.ts @@ -0,0 +1,114 @@ +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 { + // @ts-ignore + 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() { + 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) { + 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/component-preview.ts b/docs/src/components/component-preview.ts new file mode 100644 index 0000000..2462fa3 --- /dev/null +++ b/docs/src/components/component-preview.ts @@ -0,0 +1,31 @@ +import { examples } from '@/__registry__/examples' +import { AsyncPipe, NgComponentOutlet } from '@angular/common' + +import { Component, computed, input } from '@angular/core' + +@Component({ + standalone: true, + selector: 'component-preview', + imports: [NgComponentOutlet, AsyncPipe], + template: ` + @let componentRender = this.component() | async; + + @if(!componentRender || !componentRender.default) { +
Loading...
+ } @else { + + } + `, +}) +export class ComponentPeviewComponent { + styleName = input() + nameExample = input() + examples = examples + + component = computed(async () => { + if (!this.styleName() || !this.nameExample()) + return null + + return await examples[this.styleName()!][this.nameExample()!].component() + }) +} diff --git a/apps/www/src/components/starlight/ContentPanel.astro b/docs/src/components/starlight/ContentPanel.astro similarity index 100% rename from apps/www/src/components/starlight/ContentPanel.astro rename to docs/src/components/starlight/ContentPanel.astro diff --git a/apps/www/src/components/starlight/Hero.astro b/docs/src/components/starlight/Hero.astro similarity index 100% rename from apps/www/src/components/starlight/Hero.astro rename to docs/src/components/starlight/Hero.astro diff --git a/apps/www/src/components/starlight/MarkdownContent.astro b/docs/src/components/starlight/MarkdownContent.astro similarity index 100% rename from apps/www/src/components/starlight/MarkdownContent.astro rename to docs/src/components/starlight/MarkdownContent.astro diff --git a/apps/www/src/components/starlight/MobileMenuToggle.astro b/docs/src/components/starlight/MobileMenuToggle.astro similarity index 100% rename from apps/www/src/components/starlight/MobileMenuToggle.astro rename to docs/src/components/starlight/MobileMenuToggle.astro diff --git a/apps/www/src/components/starlight/PageFrame.astro b/docs/src/components/starlight/PageFrame.astro similarity index 100% rename from apps/www/src/components/starlight/PageFrame.astro rename to docs/src/components/starlight/PageFrame.astro diff --git a/apps/www/src/components/starlight/PageSidebar.astro b/docs/src/components/starlight/PageSidebar.astro similarity index 100% rename from apps/www/src/components/starlight/PageSidebar.astro rename to docs/src/components/starlight/PageSidebar.astro diff --git a/apps/www/src/components/starlight/PageTitle.astro b/docs/src/components/starlight/PageTitle.astro similarity index 100% rename from apps/www/src/components/starlight/PageTitle.astro rename to docs/src/components/starlight/PageTitle.astro diff --git a/apps/www/src/components/starlight/Pagination.astro b/docs/src/components/starlight/Pagination.astro similarity index 100% rename from apps/www/src/components/starlight/Pagination.astro rename to docs/src/components/starlight/Pagination.astro diff --git a/apps/www/src/components/starlight/Search.astro b/docs/src/components/starlight/Search.astro similarity index 100% rename from apps/www/src/components/starlight/Search.astro rename to docs/src/components/starlight/Search.astro diff --git a/apps/www/src/components/starlight/Sidebar.astro b/docs/src/components/starlight/Sidebar.astro similarity index 100% rename from apps/www/src/components/starlight/Sidebar.astro rename to docs/src/components/starlight/Sidebar.astro diff --git a/apps/www/src/components/starlight/SidebarSublist.astro b/docs/src/components/starlight/SidebarSublist.astro similarity index 100% rename from apps/www/src/components/starlight/SidebarSublist.astro rename to docs/src/components/starlight/SidebarSublist.astro diff --git a/apps/www/src/components/starlight/SiteTitle.astro b/docs/src/components/starlight/SiteTitle.astro similarity index 100% rename from apps/www/src/components/starlight/SiteTitle.astro rename to docs/src/components/starlight/SiteTitle.astro diff --git a/apps/www/src/components/starlight/SocialIcons.astro b/docs/src/components/starlight/SocialIcons.astro similarity index 100% rename from apps/www/src/components/starlight/SocialIcons.astro rename to docs/src/components/starlight/SocialIcons.astro diff --git a/apps/www/src/components/starlight/TwoColumnContent.astro b/docs/src/components/starlight/TwoColumnContent.astro similarity index 100% rename from apps/www/src/components/starlight/TwoColumnContent.astro rename to docs/src/components/starlight/TwoColumnContent.astro diff --git a/apps/www/src/components/starlight/header/Header.astro b/docs/src/components/starlight/header/Header.astro similarity index 100% rename from apps/www/src/components/starlight/header/Header.astro rename to docs/src/components/starlight/header/Header.astro diff --git a/apps/www/src/components/starlight/header/MainNav.astro b/docs/src/components/starlight/header/MainNav.astro similarity index 100% rename from apps/www/src/components/starlight/header/MainNav.astro rename to docs/src/components/starlight/header/MainNav.astro diff --git a/docs/src/config/site.ts b/docs/src/config/site.ts new file mode 100644 index 0000000..e83095a --- /dev/null +++ b/docs/src/config/site.ts @@ -0,0 +1,13 @@ +export const siteConfig = { + name: 'shadcn-ng', + 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.', + links: { + twitter: 'https://twitter.com/adrianub', + github: 'https://github.com/adrian-ub/shadcn-ng', + }, +} + +export type SiteConfig = typeof siteConfig diff --git a/docs/src/constants.ts b/docs/src/constants.ts new file mode 100644 index 0000000..f8e40be --- /dev/null +++ b/docs/src/constants.ts @@ -0,0 +1 @@ +export const PAGE_TITLE_ID = '_top' diff --git a/apps/www/src/content/config.ts b/docs/src/content/config.ts similarity index 71% rename from apps/www/src/content/config.ts rename to docs/src/content/config.ts index 4da8cf3..0e5301c 100644 --- a/apps/www/src/content/config.ts +++ b/docs/src/content/config.ts @@ -1,5 +1,5 @@ -import { defineCollection, z } from "astro:content"; -import { docsSchema } from "@astrojs/starlight/schema"; +import { docsSchema } from '@astrojs/starlight/schema' +import { defineCollection, z } from 'astro:content' export const collections = { docs: defineCollection({ @@ -14,4 +14,4 @@ export const collections = { }), }), }), -}; +} diff --git a/apps/www/src/content/docs/docs/cli.mdx b/docs/src/content/docs/docs/cli.mdx similarity index 100% rename from apps/www/src/content/docs/docs/cli.mdx rename to docs/src/content/docs/docs/cli.mdx diff --git a/apps/www/src/content/docs/docs/components-json.mdx b/docs/src/content/docs/docs/components-json.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components-json.mdx rename to docs/src/content/docs/docs/components-json.mdx diff --git a/apps/www/src/content/docs/docs/components/accordion.mdx b/docs/src/content/docs/docs/components/accordion.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/accordion.mdx rename to docs/src/content/docs/docs/components/accordion.mdx diff --git a/apps/www/src/content/docs/docs/components/alert.mdx b/docs/src/content/docs/docs/components/alert.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/alert.mdx rename to docs/src/content/docs/docs/components/alert.mdx diff --git a/apps/www/src/content/docs/docs/components/avatar.mdx b/docs/src/content/docs/docs/components/avatar.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/avatar.mdx rename to docs/src/content/docs/docs/components/avatar.mdx diff --git a/apps/www/src/content/docs/docs/components/badge.mdx b/docs/src/content/docs/docs/components/badge.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/badge.mdx rename to docs/src/content/docs/docs/components/badge.mdx diff --git a/apps/www/src/content/docs/docs/components/breadcrumb.mdx b/docs/src/content/docs/docs/components/breadcrumb.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/breadcrumb.mdx rename to docs/src/content/docs/docs/components/breadcrumb.mdx diff --git a/apps/www/src/content/docs/docs/components/button.mdx b/docs/src/content/docs/docs/components/button.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/button.mdx rename to docs/src/content/docs/docs/components/button.mdx diff --git a/apps/www/src/content/docs/docs/components/input.mdx b/docs/src/content/docs/docs/components/input.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/input.mdx rename to docs/src/content/docs/docs/components/input.mdx diff --git a/apps/www/src/content/docs/docs/components/separator.mdx b/docs/src/content/docs/docs/components/separator.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/separator.mdx rename to docs/src/content/docs/docs/components/separator.mdx diff --git a/apps/www/src/content/docs/docs/components/skeleton.mdx b/docs/src/content/docs/docs/components/skeleton.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/skeleton.mdx rename to docs/src/content/docs/docs/components/skeleton.mdx diff --git a/apps/www/src/content/docs/docs/components/switch.mdx b/docs/src/content/docs/docs/components/switch.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/switch.mdx rename to docs/src/content/docs/docs/components/switch.mdx diff --git a/apps/www/src/content/docs/docs/components/table.mdx b/docs/src/content/docs/docs/components/table.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/table.mdx rename to docs/src/content/docs/docs/components/table.mdx diff --git a/apps/www/src/content/docs/docs/components/tabs.mdx b/docs/src/content/docs/docs/components/tabs.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/tabs.mdx rename to docs/src/content/docs/docs/components/tabs.mdx diff --git a/apps/www/src/content/docs/docs/components/typography.mdx b/docs/src/content/docs/docs/components/typography.mdx similarity index 100% rename from apps/www/src/content/docs/docs/components/typography.mdx rename to docs/src/content/docs/docs/components/typography.mdx diff --git a/apps/www/src/content/docs/docs/index.mdx b/docs/src/content/docs/docs/index.mdx similarity index 100% rename from apps/www/src/content/docs/docs/index.mdx rename to docs/src/content/docs/docs/index.mdx diff --git a/apps/www/src/content/docs/docs/installation/angular.mdx b/docs/src/content/docs/docs/installation/angular.mdx similarity index 100% rename from apps/www/src/content/docs/docs/installation/angular.mdx rename to docs/src/content/docs/docs/installation/angular.mdx diff --git a/apps/www/src/content/docs/docs/installation/astro.mdx b/docs/src/content/docs/docs/installation/astro.mdx similarity index 100% rename from apps/www/src/content/docs/docs/installation/astro.mdx rename to docs/src/content/docs/docs/installation/astro.mdx diff --git a/apps/www/src/content/docs/docs/installation/index.mdx b/docs/src/content/docs/docs/installation/index.mdx similarity index 100% rename from apps/www/src/content/docs/docs/installation/index.mdx rename to docs/src/content/docs/docs/installation/index.mdx diff --git a/apps/www/src/content/docs/docs/theming.mdx b/docs/src/content/docs/docs/theming.mdx similarity index 100% rename from apps/www/src/content/docs/docs/theming.mdx rename to docs/src/content/docs/docs/theming.mdx diff --git a/apps/www/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx similarity index 100% rename from apps/www/src/content/docs/index.mdx rename to docs/src/content/docs/index.mdx diff --git a/apps/www/src/env.d.ts b/docs/src/env.d.ts similarity index 100% rename from apps/www/src/env.d.ts rename to docs/src/env.d.ts diff --git a/apps/www/src/fonts/GeistVariableVF.woff2 b/docs/src/fonts/GeistVariableVF.woff2 similarity index 100% rename from apps/www/src/fonts/GeistVariableVF.woff2 rename to docs/src/fonts/GeistVariableVF.woff2 diff --git a/apps/www/src/fonts/font-face.css b/docs/src/fonts/font-face.css similarity index 100% rename from apps/www/src/fonts/font-face.css rename to docs/src/fonts/font-face.css diff --git a/apps/www/src/lib/highlighter-theme.json b/docs/src/lib/highlighter-theme.json similarity index 100% rename from apps/www/src/lib/highlighter-theme.json rename to docs/src/lib/highlighter-theme.json diff --git a/docs/src/lib/utils.ts b/docs/src/lib/utils.ts new file mode 100644 index 0000000..d32b0fe --- /dev/null +++ b/docs/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from 'clsx' +import { twMerge } from 'tailwind-merge' + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/apps/www/src/pages/registry/colors/[base].json.ts b/docs/src/pages/registry/colors/[base].json.ts similarity index 76% rename from apps/www/src/pages/registry/colors/[base].json.ts rename to docs/src/pages/registry/colors/[base].json.ts index ceca092..8da63aa 100644 --- a/apps/www/src/pages/registry/colors/[base].json.ts +++ b/docs/src/pages/registry/colors/[base].json.ts @@ -1,10 +1,10 @@ -import { colorMapping, colorsData, availableColors } from "@/registry/colors"; -import template from "lodash.template"; +import { availableColors, colorMapping, colorsData } from '@/registry/colors' +import template from 'lodash.template' const BASE_STYLES = `@tailwind base; @tailwind components; @tailwind utilities; - `; + ` const BASE_STYLES_WITH_VARIABLES = `@tailwind base; @tailwind components; @@ -74,54 +74,54 @@ const BASE_STYLES_WITH_VARIABLES = `@tailwind base; body { @apply bg-background text-foreground; } -}`; +}` export async function getStaticPaths() { - const paths = availableColors.map((color) => ({ + const paths = availableColors.map(color => ({ params: { base: color }, - })); + })) - return paths; + return paths } export async function GET({ params }: { params: { base: string } }) { - const baseColor = params.base; + const baseColor = params.base const base: Record = { inlineColors: {}, cssVars: {}, - }; + } for (const [mode, values] of Object.entries(colorMapping)) { - base["inlineColors"][mode] = {}; - base["cssVars"][mode] = {}; + base.inlineColors[mode] = {} + base.cssVars[mode] = {} for (const [key, value] of Object.entries(values)) { - if (typeof value === "string") { + if (typeof value === 'string') { // Chart colors do not have a 1-to-1 mapping with tailwind colors. - if (key.startsWith("chart-")) { - base["cssVars"][mode][key] = value; - continue; + if (key.startsWith('chart-')) { + base.cssVars[mode][key] = value + continue } - const resolvedColor = value.replace(/{{base}}-/g, `${baseColor}-`); - base["inlineColors"][mode][key] = resolvedColor; + const resolvedColor = value.replace(/\{\{base\}\}-/g, `${baseColor}-`) + base.inlineColors[mode][key] = resolvedColor - const [resolvedBase, scale] = resolvedColor.split("-"); + const [resolvedBase, scale] = resolvedColor.split('-') const color = scale ? colorsData()[resolvedBase].find( - (item: { scale: number }) => item.scale === parseInt(scale) - ) - : colorsData()[resolvedBase]; + (item: { scale: number }) => item.scale === Number.parseInt(scale), + ) + : colorsData()[resolvedBase] if (color) { - base["cssVars"][mode][key] = color.hslChannel; + base.cssVars[mode][key] = color.hslChannel } } } } - base["inlineColorsTemplate"] = template(BASE_STYLES)({}); - base["cssVarsTemplate"] = template(BASE_STYLES_WITH_VARIABLES)({ - colors: base["cssVars"], - }); + base.inlineColorsTemplate = template(BASE_STYLES)({}) + base.cssVarsTemplate = template(BASE_STYLES_WITH_VARIABLES)({ + colors: base.cssVars, + }) - return new Response(JSON.stringify(base, null, 2)); + return new Response(JSON.stringify(base, null, 2)) } diff --git a/docs/src/pages/registry/colors/index/index.json.ts b/docs/src/pages/registry/colors/index/index.json.ts new file mode 100644 index 0000000..8abc7bd --- /dev/null +++ b/docs/src/pages/registry/colors/index/index.json.ts @@ -0,0 +1,5 @@ +import { colorsData } from '@/registry/colors' + +export async function GET() { + return new Response(JSON.stringify(colorsData(), null, 2)) +} diff --git a/docs/src/pages/registry/index/index.json.ts b/docs/src/pages/registry/index/index.json.ts new file mode 100644 index 0000000..1d33c0f --- /dev/null +++ b/docs/src/pages/registry/index/index.json.ts @@ -0,0 +1,7 @@ +import { registry } from '@/registry/registry' + +export async function GET() { + const names = registry.filter(item => item.type === 'components:ui') + const registryJson = JSON.stringify(names, null, 2) + return new Response(registryJson) +} diff --git a/docs/src/pages/registry/styles/[style]/[name].json.ts b/docs/src/pages/registry/styles/[style]/[name].json.ts new file mode 100644 index 0000000..0297d75 --- /dev/null +++ b/docs/src/pages/registry/styles/[style]/[name].json.ts @@ -0,0 +1,59 @@ +import { readFileSync } from 'node:fs' +import path, { basename } from 'node:path' +import { registry } from '@/registry/registry' +import { styles } from '@/registry/styles' +import type { RegistryEntry } from '@/registry/schema' + +export async function getStaticPaths() { + return registry + .filter(item => item.type === 'components:ui') + .flatMap((item) => { + return styles.map(style => ({ + params: { + style: style.name, + name: item.name, + }, + props: { + componentRegistry: item, + }, + })) + }) +} + +export async function GET({ + params, + props, +}: { + params: { + style: string + name: string + } + props: { + componentRegistry: RegistryEntry + } +}) { + const { style } = params + const { componentRegistry } = props + const files = componentRegistry.files.map((file) => { + const content = readFileSync( + path.join(process.cwd(), 'src', 'registry', style, file), + 'utf8', + ) + + return { + name: basename(file), + content, + } + }) + + return new Response( + JSON.stringify( + { + ...componentRegistry, + files, + }, + null, + 2, + ), + ) +} diff --git a/docs/src/pages/registry/styles/index/index.json.ts b/docs/src/pages/registry/styles/index/index.json.ts new file mode 100644 index 0000000..fff7dc1 --- /dev/null +++ b/docs/src/pages/registry/styles/index/index.json.ts @@ -0,0 +1,5 @@ +import { styles } from '@/registry/styles' + +export async function GET() { + return new Response(JSON.stringify(styles, null, 2)) +} diff --git a/apps/www/src/pages/registry/themes.css.ts b/docs/src/pages/registry/themes.css.ts similarity index 91% rename from apps/www/src/pages/registry/themes.css.ts rename to docs/src/pages/registry/themes.css.ts index 7e5d528..ac61959 100644 --- a/apps/www/src/pages/registry/themes.css.ts +++ b/docs/src/pages/registry/themes.css.ts @@ -1,8 +1,8 @@ -import { themes } from "@/registry/themes"; -import template from "lodash.template"; +import { themes } from '@/registry/themes' +import template from 'lodash.template' export async function GET() { - const themeCSS = []; + const themeCSS = [] const THEME_STYLES_WITH_VARIABLES = ` .theme-<%- theme %> { @@ -67,20 +67,20 @@ export async function GET() { --destructive-foreground: <%- colors.dark["destructive-foreground"] %>; --ring: <%- colors.dark["ring"] %>; -}`; +}` for (const theme of themes) { themeCSS.push( template(THEME_STYLES_WITH_VARIABLES)({ colors: theme.cssVars, theme: theme.name, - }) - ); + }), + ) } - return new Response(themeCSS.join("\n"), { + return new Response(themeCSS.join('\n'), { headers: { - "Content-Type": "text/css", + 'Content-Type': 'text/css', }, - }); + }) } diff --git a/docs/src/pages/registry/themes/[theme].json.ts b/docs/src/pages/registry/themes/[theme].json.ts new file mode 100644 index 0000000..1e0ae54 --- /dev/null +++ b/docs/src/pages/registry/themes/[theme].json.ts @@ -0,0 +1,41 @@ +import { availableColors, colorMapping, colorsData } from '@/registry/colors' + +export async function getStaticPaths() { + const paths = availableColors.map(color => ({ + params: { theme: color }, + })) + + return paths +} + +export async function GET({ params }: { params: { theme: string } }) { + const baseColor = params.theme + + const payload = { + name: baseColor, + label: baseColor.charAt(0).toUpperCase() + baseColor.slice(1), + cssVars: {} as { [key: string]: { [key: string]: string } }, + } + + for (const [mode, values] of Object.entries(colorMapping)) { + payload.cssVars[mode] = {} + for (const [key, value] of Object.entries(values)) { + if (typeof value === 'string') { + const resolvedColor = value.replace(/\{\{base\}\}-/g, `${baseColor}-`) + payload.cssVars[mode][key] = resolvedColor + + const [resolvedBase, scale] = resolvedColor.split('-') + const color = scale + ? colorsData()[resolvedBase].find( + (item: { scale: number }) => item.scale === Number.parseInt(scale), + ) + : colorsData()[resolvedBase] + if (color) { + payload.cssVars[mode][key] = color.hslChannel + } + } + } + } + + return new Response(JSON.stringify(payload, null, 2)) +} diff --git a/docs/src/registry/blocks.ts b/docs/src/registry/blocks.ts new file mode 100644 index 0000000..5b849e7 --- /dev/null +++ b/docs/src/registry/blocks.ts @@ -0,0 +1,3 @@ +import type { Registry } from './schema' + +export const blocks: Registry = [] diff --git a/docs/src/registry/charts.ts b/docs/src/registry/charts.ts new file mode 100644 index 0000000..a0c9e0b --- /dev/null +++ b/docs/src/registry/charts.ts @@ -0,0 +1,3 @@ +import type { Registry } from './schema' + +export const charts: Registry = [] diff --git a/docs/src/registry/colors.ts b/docs/src/registry/colors.ts new file mode 100644 index 0000000..d86af37 --- /dev/null +++ b/docs/src/registry/colors.ts @@ -0,0 +1,1609 @@ +export const colors = { + inherit: 'inherit', + current: 'currentColor', + transparent: 'transparent', + black: { + hex: '#000000', + rgb: 'rgb(0,0,0)', + hsl: 'hsl(0,0%,0%)', + }, + white: { + hex: '#ffffff', + rgb: 'rgb(255,255,255)', + hsl: 'hsl(0,0%,100%)', + }, + slate: [ + { + scale: 50, + hex: '#f8fafc', + rgb: 'rgb(248,250,252)', + hsl: 'hsl(210,40%,98%)', + }, + { + scale: 100, + hex: '#f1f5f9', + rgb: 'rgb(241,245,249)', + hsl: 'hsl(210,40%,96.1%)', + }, + { + scale: 200, + hex: '#e2e8f0', + rgb: 'rgb(226,232,240)', + hsl: 'hsl(214.3,31.8%,91.4%)', + }, + { + scale: 300, + hex: '#cbd5e1', + rgb: 'rgb(203,213,225)', + hsl: 'hsl(212.7,26.8%,83.9%)', + }, + { + scale: 400, + hex: '#94a3b8', + rgb: 'rgb(148,163,184)', + hsl: 'hsl(215,20.2%,65.1%)', + }, + { + scale: 500, + hex: '#64748b', + rgb: 'rgb(100,116,139)', + hsl: 'hsl(215.4,16.3%,46.9%)', + }, + { + scale: 600, + hex: '#475569', + rgb: 'rgb(71,85,105)', + hsl: 'hsl(215.3,19.3%,34.5%)', + }, + { + scale: 700, + hex: '#334155', + rgb: 'rgb(51,65,85)', + hsl: 'hsl(215.3,25%,26.7%)', + }, + { + scale: 800, + hex: '#1e293b', + rgb: 'rgb(30,41,59)', + hsl: 'hsl(217.2,32.6%,17.5%)', + }, + { + scale: 900, + hex: '#0f172a', + rgb: 'rgb(15,23,42)', + hsl: 'hsl(222.2,47.4%,11.2%)', + }, + { + scale: 950, + hex: '#020617', + rgb: 'rgb(2,6,23)', + hsl: 'hsl(222.2,84%,4.9%)', + }, + ], + gray: [ + { + scale: 50, + hex: '#f9fafb', + rgb: 'rgb(249,250,251)', + hsl: 'hsl(210,20%,98%)', + }, + { + scale: 100, + hex: '#f3f4f6', + rgb: 'rgb(243,244,246)', + hsl: 'hsl(220,14.3%,95.9%)', + }, + { + scale: 200, + hex: '#e5e7eb', + rgb: 'rgb(229,231,235)', + hsl: 'hsl(220,13%,91%)', + }, + { + scale: 300, + hex: '#d1d5db', + rgb: 'rgb(209,213,219)', + hsl: 'hsl(216,12.2%,83.9%)', + }, + { + scale: 400, + hex: '#9ca3af', + rgb: 'rgb(156,163,175)', + hsl: 'hsl(217.9,10.6%,64.9%)', + }, + { + scale: 500, + hex: '#6b7280', + rgb: 'rgb(107,114,128)', + hsl: 'hsl(220,8.9%,46.1%)', + }, + { + scale: 600, + hex: '#4b5563', + rgb: 'rgb(75,85,99)', + hsl: 'hsl(215,13.8%,34.1%)', + }, + { + scale: 700, + hex: '#374151', + rgb: 'rgb(55,65,81)', + hsl: 'hsl(216.9,19.1%,26.7%)', + }, + { + scale: 800, + hex: '#1f2937', + rgb: 'rgb(31,41,55)', + hsl: 'hsl(215,27.9%,16.9%)', + }, + { + scale: 900, + hex: '#111827', + rgb: 'rgb(17,24,39)', + hsl: 'hsl(220.9,39.3%,11%)', + }, + { + scale: 950, + hex: '#030712', + rgb: 'rgb(3,7,18)', + hsl: 'hsl(224,71.4%,4.1%)', + }, + ], + zinc: [ + { + scale: 50, + hex: '#fafafa', + rgb: 'rgb(250,250,250)', + hsl: 'hsl(0,0%,98%)', + }, + { + scale: 100, + hex: '#f4f4f5', + rgb: 'rgb(244,244,245)', + hsl: 'hsl(240,4.8%,95.9%)', + }, + { + scale: 200, + hex: '#e4e4e7', + rgb: 'rgb(228,228,231)', + hsl: 'hsl(240,5.9%,90%)', + }, + { + scale: 300, + hex: '#d4d4d8', + rgb: 'rgb(212,212,216)', + hsl: 'hsl(240,4.9%,83.9%)', + }, + { + scale: 400, + hex: '#a1a1aa', + rgb: 'rgb(161,161,170)', + hsl: 'hsl(240,5%,64.9%)', + }, + { + scale: 500, + hex: '#71717a', + rgb: 'rgb(113,113,122)', + hsl: 'hsl(240,3.8%,46.1%)', + }, + { + scale: 600, + hex: '#52525b', + rgb: 'rgb(82,82,91)', + hsl: 'hsl(240,5.2%,33.9%)', + }, + { + scale: 700, + hex: '#3f3f46', + rgb: 'rgb(63,63,70)', + hsl: 'hsl(240,5.3%,26.1%)', + }, + { + scale: 800, + hex: '#27272a', + rgb: 'rgb(39,39,42)', + hsl: 'hsl(240,3.7%,15.9%)', + }, + { + scale: 900, + hex: '#18181b', + rgb: 'rgb(24,24,27)', + hsl: 'hsl(240,5.9%,10%)', + }, + { + scale: 950, + hex: '#09090b', + rgb: 'rgb(9,9,11)', + hsl: 'hsl(240,10%,3.9%)', + }, + ], + neutral: [ + { + scale: 50, + hex: '#fafafa', + rgb: 'rgb(250,250,250)', + hsl: 'hsl(0,0%,98%)', + }, + { + scale: 100, + hex: '#f5f5f5', + rgb: 'rgb(245,245,245)', + hsl: 'hsl(0,0%,96.1%)', + }, + { + scale: 200, + hex: '#e5e5e5', + rgb: 'rgb(229,229,229)', + hsl: 'hsl(0,0%,89.8%)', + }, + { + scale: 300, + hex: '#d4d4d4', + rgb: 'rgb(212,212,212)', + hsl: 'hsl(0,0%,83.1%)', + }, + { + scale: 400, + hex: '#a3a3a3', + rgb: 'rgb(163,163,163)', + hsl: 'hsl(0,0%,63.9%)', + }, + { + scale: 500, + hex: '#737373', + rgb: 'rgb(115,115,115)', + hsl: 'hsl(0,0%,45.1%)', + }, + { + scale: 600, + hex: '#525252', + rgb: 'rgb(82,82,82)', + hsl: 'hsl(0,0%,32.2%)', + }, + { + scale: 700, + hex: '#404040', + rgb: 'rgb(64,64,64)', + hsl: 'hsl(0,0%,25.1%)', + }, + { + scale: 800, + hex: '#262626', + rgb: 'rgb(38,38,38)', + hsl: 'hsl(0,0%,14.9%)', + }, + { + scale: 900, + hex: '#171717', + rgb: 'rgb(23,23,23)', + hsl: 'hsl(0,0%,9%)', + }, + { + scale: 950, + hex: '#0a0a0a', + rgb: 'rgb(10,10,10)', + hsl: 'hsl(0,0%,3.9%)', + }, + ], + stone: [ + { + scale: 50, + hex: '#fafaf9', + rgb: 'rgb(250,250,249)', + hsl: 'hsl(60,9.1%,97.8%)', + }, + { + scale: 100, + hex: '#f5f5f4', + rgb: 'rgb(245,245,244)', + hsl: 'hsl(60,4.8%,95.9%)', + }, + { + scale: 200, + hex: '#e7e5e4', + rgb: 'rgb(231,229,228)', + hsl: 'hsl(20,5.9%,90%)', + }, + { + scale: 300, + hex: '#d6d3d1', + rgb: 'rgb(214,211,209)', + hsl: 'hsl(24,5.7%,82.9%)', + }, + { + scale: 400, + hex: '#a8a29e', + rgb: 'rgb(168,162,158)', + hsl: 'hsl(24,5.4%,63.9%)', + }, + { + scale: 500, + hex: '#78716c', + rgb: 'rgb(120,113,108)', + hsl: 'hsl(25,5.3%,44.7%)', + }, + { + scale: 600, + hex: '#57534e', + rgb: 'rgb(87,83,78)', + hsl: 'hsl(33.3,5.5%,32.4%)', + }, + { + scale: 700, + hex: '#44403c', + rgb: 'rgb(68,64,60)', + hsl: 'hsl(30,6.3%,25.1%)', + }, + { + scale: 800, + hex: '#292524', + rgb: 'rgb(41,37,36)', + hsl: 'hsl(12,6.5%,15.1%)', + }, + { + scale: 900, + hex: '#1c1917', + rgb: 'rgb(28,25,23)', + hsl: 'hsl(24,9.8%,10%)', + }, + { + scale: 950, + hex: '#0c0a09', + rgb: 'rgb(12,10,9)', + hsl: 'hsl(20,14.3%,4.1%)', + }, + ], + red: [ + { + scale: 50, + hex: '#fef2f2', + rgb: 'rgb(254,242,242)', + hsl: 'hsl(0,85.7%,97.3%)', + }, + { + scale: 100, + hex: '#fee2e2', + rgb: 'rgb(254,226,226)', + hsl: 'hsl(0,93.3%,94.1%)', + }, + { + scale: 200, + hex: '#fecaca', + rgb: 'rgb(254,202,202)', + hsl: 'hsl(0,96.3%,89.4%)', + }, + { + scale: 300, + hex: '#fca5a5', + rgb: 'rgb(252,165,165)', + hsl: 'hsl(0,93.5%,81.8%)', + }, + { + scale: 400, + hex: '#f87171', + rgb: 'rgb(248,113,113)', + hsl: 'hsl(0,90.6%,70.8%)', + }, + { + scale: 500, + hex: '#ef4444', + rgb: 'rgb(239,68,68)', + hsl: 'hsl(0,84.2%,60.2%)', + }, + { + scale: 600, + hex: '#dc2626', + rgb: 'rgb(220,38,38)', + hsl: 'hsl(0,72.2%,50.6%)', + }, + { + scale: 700, + hex: '#b91c1c', + rgb: 'rgb(185,28,28)', + hsl: 'hsl(0,73.7%,41.8%)', + }, + { + scale: 800, + hex: '#991b1b', + rgb: 'rgb(153,27,27)', + hsl: 'hsl(0,70%,35.3%)', + }, + { + scale: 900, + hex: '#7f1d1d', + rgb: 'rgb(127,29,29)', + hsl: 'hsl(0,62.8%,30.6%)', + }, + { + scale: 950, + hex: '#450a0a', + rgb: 'rgb(69,10,10)', + hsl: 'hsl(0,74.7%,15.5%)', + }, + ], + orange: [ + { + scale: 50, + hex: '#fff7ed', + rgb: 'rgb(255,247,237)', + hsl: 'hsl(33.3,100%,96.5%)', + }, + { + scale: 100, + hex: '#ffedd5', + rgb: 'rgb(255,237,213)', + hsl: 'hsl(34.3,100%,91.8%)', + }, + { + scale: 200, + hex: '#fed7aa', + rgb: 'rgb(254,215,170)', + hsl: 'hsl(32.1,97.7%,83.1%)', + }, + { + scale: 300, + hex: '#fdba74', + rgb: 'rgb(253,186,116)', + hsl: 'hsl(30.7,97.2%,72.4%)', + }, + { + scale: 400, + hex: '#fb923c', + rgb: 'rgb(251,146,60)', + hsl: 'hsl(27,96%,61%)', + }, + { + scale: 500, + hex: '#f97316', + rgb: 'rgb(249,115,22)', + hsl: 'hsl(24.6,95%,53.1%)', + }, + { + scale: 600, + hex: '#ea580c', + rgb: 'rgb(234,88,12)', + hsl: 'hsl(20.5,90.2%,48.2%)', + }, + { + scale: 700, + hex: '#c2410c', + rgb: 'rgb(194,65,12)', + hsl: 'hsl(17.5,88.3%,40.4%)', + }, + { + scale: 800, + hex: '#9a3412', + rgb: 'rgb(154,52,18)', + hsl: 'hsl(15,79.1%,33.7%)', + }, + { + scale: 900, + hex: '#7c2d12', + rgb: 'rgb(124,45,18)', + hsl: 'hsl(15.3,74.6%,27.8%)', + }, + { + scale: 950, + hex: '#431407', + rgb: 'rgb(67,20,7)', + hsl: 'hsl(13,81.1%,14.5%)', + }, + ], + amber: [ + { + scale: 50, + hex: '#fffbeb', + rgb: 'rgb(255,251,235)', + hsl: 'hsl(48,100%,96.1%)', + }, + { + scale: 100, + hex: '#fef3c7', + rgb: 'rgb(254,243,199)', + hsl: 'hsl(48,96.5%,88.8%)', + }, + { + scale: 200, + hex: '#fde68a', + rgb: 'rgb(253,230,138)', + hsl: 'hsl(48,96.6%,76.7%)', + }, + { + scale: 300, + hex: '#fcd34d', + rgb: 'rgb(252,211,77)', + hsl: 'hsl(45.9,96.7%,64.5%)', + }, + { + scale: 400, + hex: '#fbbf24', + rgb: 'rgb(251,191,36)', + hsl: 'hsl(43.3,96.4%,56.3%)', + }, + { + scale: 500, + hex: '#f59e0b', + rgb: 'rgb(245,158,11)', + hsl: 'hsl(37.7,92.1%,50.2%)', + }, + { + scale: 600, + hex: '#d97706', + rgb: 'rgb(217,119,6)', + hsl: 'hsl(32.1,94.6%,43.7%)', + }, + { + scale: 700, + hex: '#b45309', + rgb: 'rgb(180,83,9)', + hsl: 'hsl(26,90.5%,37.1%)', + }, + { + scale: 800, + hex: '#92400e', + rgb: 'rgb(146,64,14)', + hsl: 'hsl(22.7,82.5%,31.4%)', + }, + { + scale: 900, + hex: '#78350f', + rgb: 'rgb(120,53,15)', + hsl: 'hsl(21.7,77.8%,26.5%)', + }, + { + scale: 950, + hex: '#451a03', + rgb: 'rgb(69,26,3)', + hsl: 'hsl(20.9,91.7%,14.1%)', + }, + ], + yellow: [ + { + scale: 50, + hex: '#fefce8', + rgb: 'rgb(254,252,232)', + hsl: 'hsl(54.5,91.7%,95.3%)', + }, + { + scale: 100, + hex: '#fef9c3', + rgb: 'rgb(254,249,195)', + hsl: 'hsl(54.9,96.7%,88%)', + }, + { + scale: 200, + hex: '#fef08a', + rgb: 'rgb(254,240,138)', + hsl: 'hsl(52.8,98.3%,76.9%)', + }, + { + scale: 300, + hex: '#fde047', + rgb: 'rgb(253,224,71)', + hsl: 'hsl(50.4,97.8%,63.5%)', + }, + { + scale: 400, + hex: '#facc15', + rgb: 'rgb(250,204,21)', + hsl: 'hsl(47.9,95.8%,53.1%)', + }, + { + scale: 500, + hex: '#eab308', + rgb: 'rgb(234,179,8)', + hsl: 'hsl(45.4,93.4%,47.5%)', + }, + { + scale: 600, + hex: '#ca8a04', + rgb: 'rgb(202,138,4)', + hsl: 'hsl(40.6,96.1%,40.4%)', + }, + { + scale: 700, + hex: '#a16207', + rgb: 'rgb(161,98,7)', + hsl: 'hsl(35.5,91.7%,32.9%)', + }, + { + scale: 800, + hex: '#854d0e', + rgb: 'rgb(133,77,14)', + hsl: 'hsl(31.8,81%,28.8%)', + }, + { + scale: 900, + hex: '#713f12', + rgb: 'rgb(113,63,18)', + hsl: 'hsl(28.4,72.5%,25.7%)', + }, + { + scale: 950, + hex: '#422006', + rgb: 'rgb(66,32,6)', + hsl: 'hsl(26,83.3%,14.1%)', + }, + ], + lime: [ + { + scale: 50, + hex: '#f7fee7', + rgb: 'rgb(247,254,231)', + hsl: 'hsl(78.3,92%,95.1%)', + }, + { + scale: 100, + hex: '#ecfccb', + rgb: 'rgb(236,252,203)', + hsl: 'hsl(79.6,89.1%,89.2%)', + }, + { + scale: 200, + hex: '#d9f99d', + rgb: 'rgb(217,249,157)', + hsl: 'hsl(80.9,88.5%,79.6%)', + }, + { + scale: 300, + hex: '#bef264', + rgb: 'rgb(190,242,100)', + hsl: 'hsl(82,84.5%,67.1%)', + }, + { + scale: 400, + hex: '#a3e635', + rgb: 'rgb(163,230,53)', + hsl: 'hsl(82.7,78%,55.5%)', + }, + { + scale: 500, + hex: '#84cc16', + rgb: 'rgb(132,204,22)', + hsl: 'hsl(83.7,80.5%,44.3%)', + }, + { + scale: 600, + hex: '#65a30d', + rgb: 'rgb(101,163,13)', + hsl: 'hsl(84.8,85.2%,34.5%)', + }, + { + scale: 700, + hex: '#4d7c0f', + rgb: 'rgb(77,124,15)', + hsl: 'hsl(85.9,78.4%,27.3%)', + }, + { + scale: 800, + hex: '#3f6212', + rgb: 'rgb(63,98,18)', + hsl: 'hsl(86.3,69%,22.7%)', + }, + { + scale: 900, + hex: '#365314', + rgb: 'rgb(54,83,20)', + hsl: 'hsl(87.6,61.2%,20.2%)', + }, + { + scale: 950, + hex: '#1a2e05', + rgb: 'rgb(26,46,5)', + hsl: 'hsl(89.3,80.4%,10%)', + }, + ], + green: [ + { + scale: 50, + hex: '#f0fdf4', + rgb: 'rgb(240,253,244)', + hsl: 'hsl(138.5,76.5%,96.7%)', + }, + { + scale: 100, + hex: '#dcfce7', + rgb: 'rgb(220,252,231)', + hsl: 'hsl(140.6,84.2%,92.5%)', + }, + { + scale: 200, + hex: '#bbf7d0', + rgb: 'rgb(187,247,208)', + hsl: 'hsl(141,78.9%,85.1%)', + }, + { + scale: 300, + hex: '#86efac', + rgb: 'rgb(134,239,172)', + hsl: 'hsl(141.7,76.6%,73.1%)', + }, + { + scale: 400, + hex: '#4ade80', + rgb: 'rgb(74,222,128)', + hsl: 'hsl(141.9,69.2%,58%)', + }, + { + scale: 500, + hex: '#22c55e', + rgb: 'rgb(34,197,94)', + hsl: 'hsl(142.1,70.6%,45.3%)', + }, + { + scale: 600, + hex: '#16a34a', + rgb: 'rgb(22,163,74)', + hsl: 'hsl(142.1,76.2%,36.3%)', + }, + { + scale: 700, + hex: '#15803d', + rgb: 'rgb(21,128,61)', + hsl: 'hsl(142.4,71.8%,29.2%)', + }, + { + scale: 800, + hex: '#166534', + rgb: 'rgb(22,101,52)', + hsl: 'hsl(142.8,64.2%,24.1%)', + }, + { + scale: 900, + hex: '#14532d', + rgb: 'rgb(20,83,45)', + hsl: 'hsl(143.8,61.2%,20.2%)', + }, + { + scale: 950, + hex: '#052e16', + rgb: 'rgb(5,46,22)', + hsl: 'hsl(144.9,80.4%,10%)', + }, + ], + emerald: [ + { + scale: 50, + hex: '#ecfdf5', + rgb: 'rgb(236,253,245)', + hsl: 'hsl(151.8,81%,95.9%)', + }, + { + scale: 100, + hex: '#d1fae5', + rgb: 'rgb(209,250,229)', + hsl: 'hsl(149.3,80.4%,90%)', + }, + { + scale: 200, + hex: '#a7f3d0', + rgb: 'rgb(167,243,208)', + hsl: 'hsl(152.4,76%,80.4%)', + }, + { + scale: 300, + hex: '#6ee7b7', + rgb: 'rgb(110,231,183)', + hsl: 'hsl(156.2,71.6%,66.9%)', + }, + { + scale: 400, + hex: '#34d399', + rgb: 'rgb(52,211,153)', + hsl: 'hsl(158.1,64.4%,51.6%)', + }, + { + scale: 500, + hex: '#10b981', + rgb: 'rgb(16,185,129)', + hsl: 'hsl(160.1,84.1%,39.4%)', + }, + { + scale: 600, + hex: '#059669', + rgb: 'rgb(5,150,105)', + hsl: 'hsl(161.4,93.5%,30.4%)', + }, + { + scale: 700, + hex: '#047857', + rgb: 'rgb(4,120,87)', + hsl: 'hsl(162.9,93.5%,24.3%)', + }, + { + scale: 800, + hex: '#065f46', + rgb: 'rgb(6,95,70)', + hsl: 'hsl(163.1,88.1%,19.8%)', + }, + { + scale: 900, + hex: '#064e3b', + rgb: 'rgb(6,78,59)', + hsl: 'hsl(164.2,85.7%,16.5%)', + }, + { + scale: 950, + hex: '#022c22', + rgb: 'rgb(2,44,34)', + hsl: 'hsl(165.7,91.3%,9%)', + }, + ], + teal: [ + { + scale: 50, + hex: '#f0fdfa', + rgb: 'rgb(240,253,250)', + hsl: 'hsl(166.2,76.5%,96.7%)', + }, + { + scale: 100, + hex: '#ccfbf1', + rgb: 'rgb(204,251,241)', + hsl: 'hsl(167.2,85.5%,89.2%)', + }, + { + scale: 200, + hex: '#99f6e4', + rgb: 'rgb(153,246,228)', + hsl: 'hsl(168.4,83.8%,78.2%)', + }, + { + scale: 300, + hex: '#5eead4', + rgb: 'rgb(94,234,212)', + hsl: 'hsl(170.6,76.9%,64.3%)', + }, + { + scale: 400, + hex: '#2dd4bf', + rgb: 'rgb(45,212,191)', + hsl: 'hsl(172.5,66%,50.4%)', + }, + { + scale: 500, + hex: '#14b8a6', + rgb: 'rgb(20,184,166)', + hsl: 'hsl(173.4,80.4%,40%)', + }, + { + scale: 600, + hex: '#0d9488', + rgb: 'rgb(13,148,136)', + hsl: 'hsl(174.7,83.9%,31.6%)', + }, + { + scale: 700, + hex: '#0f766e', + rgb: 'rgb(15,118,110)', + hsl: 'hsl(175.3,77.4%,26.1%)', + }, + { + scale: 800, + hex: '#115e59', + rgb: 'rgb(17,94,89)', + hsl: 'hsl(176.1,69.4%,21.8%)', + }, + { + scale: 900, + hex: '#134e4a', + rgb: 'rgb(19,78,74)', + hsl: 'hsl(175.9,60.8%,19%)', + }, + { + scale: 950, + hex: '#042f2e', + rgb: 'rgb(4,47,46)', + hsl: 'hsl(178.6,84.3%,10%)', + }, + ], + cyan: [ + { + scale: 50, + hex: '#ecfeff', + rgb: 'rgb(236,254,255)', + hsl: 'hsl(183.2,100%,96.3%)', + }, + { + scale: 100, + hex: '#cffafe', + rgb: 'rgb(207,250,254)', + hsl: 'hsl(185.1,95.9%,90.4%)', + }, + { + scale: 200, + hex: '#a5f3fc', + rgb: 'rgb(165,243,252)', + hsl: 'hsl(186.2,93.5%,81.8%)', + }, + { + scale: 300, + hex: '#67e8f9', + rgb: 'rgb(103,232,249)', + hsl: 'hsl(187,92.4%,69%)', + }, + { + scale: 400, + hex: '#22d3ee', + rgb: 'rgb(34,211,238)', + hsl: 'hsl(187.9,85.7%,53.3%)', + }, + { + scale: 500, + hex: '#06b6d4', + rgb: 'rgb(6,182,212)', + hsl: 'hsl(188.7,94.5%,42.7%)', + }, + { + scale: 600, + hex: '#0891b2', + rgb: 'rgb(8,145,178)', + hsl: 'hsl(191.6,91.4%,36.5%)', + }, + { + scale: 700, + hex: '#0e7490', + rgb: 'rgb(14,116,144)', + hsl: 'hsl(192.9,82.3%,31%)', + }, + { + scale: 800, + hex: '#155e75', + rgb: 'rgb(21,94,117)', + hsl: 'hsl(194.4,69.6%,27.1%)', + }, + { + scale: 900, + hex: '#164e63', + rgb: 'rgb(22,78,99)', + hsl: 'hsl(196.4,63.6%,23.7%)', + }, + { + scale: 950, + hex: '#083344', + rgb: 'rgb(8,51,68)', + hsl: 'hsl(197,78.9%,14.9%)', + }, + ], + sky: [ + { + scale: 50, + hex: '#f0f9ff', + rgb: 'rgb(240,249,255)', + hsl: 'hsl(204,100%,97.1%)', + }, + { + scale: 100, + hex: '#e0f2fe', + rgb: 'rgb(224,242,254)', + hsl: 'hsl(204,93.8%,93.7%)', + }, + { + scale: 200, + hex: '#bae6fd', + rgb: 'rgb(186,230,253)', + hsl: 'hsl(200.6,94.4%,86.1%)', + }, + { + scale: 300, + hex: '#7dd3fc', + rgb: 'rgb(125,211,252)', + hsl: 'hsl(199.4,95.5%,73.9%)', + }, + { + scale: 400, + hex: '#38bdf8', + rgb: 'rgb(56,189,248)', + hsl: 'hsl(198.4,93.2%,59.6%)', + }, + { + scale: 500, + hex: '#0ea5e9', + rgb: 'rgb(14,165,233)', + hsl: 'hsl(198.6,88.7%,48.4%)', + }, + { + scale: 600, + hex: '#0284c7', + rgb: 'rgb(2,132,199)', + hsl: 'hsl(200.4,98%,39.4%)', + }, + { + scale: 700, + hex: '#0369a1', + rgb: 'rgb(3,105,161)', + hsl: 'hsl(201.3,96.3%,32.2%)', + }, + { + scale: 800, + hex: '#075985', + rgb: 'rgb(7,89,133)', + hsl: 'hsl(201,90%,27.5%)', + }, + { + scale: 900, + hex: '#0c4a6e', + rgb: 'rgb(12,74,110)', + hsl: 'hsl(202,80.3%,23.9%)', + }, + { + scale: 950, + hex: '#082f49', + rgb: 'rgb(8,47,73)', + hsl: 'hsl(204,80.2%,15.9%)', + }, + ], + blue: [ + { + scale: 50, + hex: '#eff6ff', + rgb: 'rgb(239,246,255)', + hsl: 'hsl(213.8,100%,96.9%)', + }, + { + scale: 100, + hex: '#dbeafe', + rgb: 'rgb(219,234,254)', + hsl: 'hsl(214.3,94.6%,92.7%)', + }, + { + scale: 200, + hex: '#bfdbfe', + rgb: 'rgb(191,219,254)', + hsl: 'hsl(213.3,96.9%,87.3%)', + }, + { + scale: 300, + hex: '#93c5fd', + rgb: 'rgb(147,197,253)', + hsl: 'hsl(211.7,96.4%,78.4%)', + }, + { + scale: 400, + hex: '#60a5fa', + rgb: 'rgb(96,165,250)', + hsl: 'hsl(213.1,93.9%,67.8%)', + }, + { + scale: 500, + hex: '#3b82f6', + rgb: 'rgb(59,130,246)', + hsl: 'hsl(217.2,91.2%,59.8%)', + }, + { + scale: 600, + hex: '#2563eb', + rgb: 'rgb(37,99,235)', + hsl: 'hsl(221.2,83.2%,53.3%)', + }, + { + scale: 700, + hex: '#1d4ed8', + rgb: 'rgb(29,78,216)', + hsl: 'hsl(224.3,76.3%,48%)', + }, + { + scale: 800, + hex: '#1e40af', + rgb: 'rgb(30,64,175)', + hsl: 'hsl(225.9,70.7%,40.2%)', + }, + { + scale: 900, + hex: '#1e3a8a', + rgb: 'rgb(30,58,138)', + hsl: 'hsl(224.4,64.3%,32.9%)', + }, + { + scale: 950, + hex: '#172554', + rgb: 'rgb(23,37,84)', + hsl: 'hsl(226.2,57%,21%)', + }, + ], + indigo: [ + { + scale: 50, + hex: '#eef2ff', + rgb: 'rgb(238,242,255)', + hsl: 'hsl(225.9,100%,96.7%)', + }, + { + scale: 100, + hex: '#e0e7ff', + rgb: 'rgb(224,231,255)', + hsl: 'hsl(226.5,100%,93.9%)', + }, + { + scale: 200, + hex: '#c7d2fe', + rgb: 'rgb(199,210,254)', + hsl: 'hsl(228,96.5%,88.8%)', + }, + { + scale: 300, + hex: '#a5b4fc', + rgb: 'rgb(165,180,252)', + hsl: 'hsl(229.7,93.5%,81.8%)', + }, + { + scale: 400, + hex: '#818cf8', + rgb: 'rgb(129,140,248)', + hsl: 'hsl(234.5,89.5%,73.9%)', + }, + { + scale: 500, + hex: '#6366f1', + rgb: 'rgb(99,102,241)', + hsl: 'hsl(238.7,83.5%,66.7%)', + }, + { + scale: 600, + hex: '#4f46e5', + rgb: 'rgb(79,70,229)', + hsl: 'hsl(243.4,75.4%,58.6%)', + }, + { + scale: 700, + hex: '#4338ca', + rgb: 'rgb(67,56,202)', + hsl: 'hsl(244.5,57.9%,50.6%)', + }, + { + scale: 800, + hex: '#3730a3', + rgb: 'rgb(55,48,163)', + hsl: 'hsl(243.7,54.5%,41.4%)', + }, + { + scale: 900, + hex: '#312e81', + rgb: 'rgb(49,46,129)', + hsl: 'hsl(242.2,47.4%,34.3%)', + }, + { + scale: 950, + hex: '#1e1b4b', + rgb: 'rgb(30,27,75)', + hsl: 'hsl(243.8,47.1%,20%)', + }, + ], + violet: [ + { + scale: 50, + hex: '#f5f3ff', + rgb: 'rgb(245,243,255)', + hsl: 'hsl(250,100%,97.6%)', + }, + { + scale: 100, + hex: '#ede9fe', + rgb: 'rgb(237,233,254)', + hsl: 'hsl(251.4,91.3%,95.5%)', + }, + { + scale: 200, + hex: '#ddd6fe', + rgb: 'rgb(221,214,254)', + hsl: 'hsl(250.5,95.2%,91.8%)', + }, + { + scale: 300, + hex: '#c4b5fd', + rgb: 'rgb(196,181,253)', + hsl: 'hsl(252.5,94.7%,85.1%)', + }, + { + scale: 400, + hex: '#a78bfa', + rgb: 'rgb(167,139,250)', + hsl: 'hsl(255.1,91.7%,76.3%)', + }, + { + scale: 500, + hex: '#8b5cf6', + rgb: 'rgb(139,92,246)', + hsl: 'hsl(258.3,89.5%,66.3%)', + }, + { + scale: 600, + hex: '#7c3aed', + rgb: 'rgb(124,58,237)', + hsl: 'hsl(262.1,83.3%,57.8%)', + }, + { + scale: 700, + hex: '#6d28d9', + rgb: 'rgb(109,40,217)', + hsl: 'hsl(263.4,70%,50.4%)', + }, + { + scale: 800, + hex: '#5b21b6', + rgb: 'rgb(91,33,182)', + hsl: 'hsl(263.4,69.3%,42.2%)', + }, + { + scale: 900, + hex: '#4c1d95', + rgb: 'rgb(76,29,149)', + hsl: 'hsl(263.5,67.4%,34.9%)', + }, + { + scale: 950, + hex: '#1e1b4b', + rgb: 'rgb(46,16,101)', + hsl: 'hsl(261.2,72.6%,22.9%)', + }, + ], + purple: [ + { + scale: 50, + hex: '#faf5ff', + rgb: 'rgb(250,245,255)', + hsl: 'hsl(270,100%,98%)', + }, + { + scale: 100, + hex: '#f3e8ff', + rgb: 'rgb(243,232,255)', + hsl: 'hsl(268.7,100%,95.5%)', + }, + { + scale: 200, + hex: '#e9d5ff', + rgb: 'rgb(233,213,255)', + hsl: 'hsl(268.6,100%,91.8%)', + }, + { + scale: 300, + hex: '#d8b4fe', + rgb: 'rgb(216,180,254)', + hsl: 'hsl(269.2,97.4%,85.1%)', + }, + { + scale: 400, + hex: '#c084fc', + rgb: 'rgb(192,132,252)', + hsl: 'hsl(270,95.2%,75.3%)', + }, + { + scale: 500, + hex: '#a855f7', + rgb: 'rgb(168,85,247)', + hsl: 'hsl(270.7,91%,65.1%)', + }, + { + scale: 600, + hex: '#9333ea', + rgb: 'rgb(147,51,234)', + hsl: 'hsl(271.5,81.3%,55.9%)', + }, + { + scale: 700, + hex: '#7e22ce', + rgb: 'rgb(126,34,206)', + hsl: 'hsl(272.1,71.7%,47.1%)', + }, + { + scale: 800, + hex: '#6b21a8', + rgb: 'rgb(107,33,168)', + hsl: 'hsl(272.9,67.2%,39.4%)', + }, + { + scale: 900, + hex: '#581c87', + rgb: 'rgb(88,28,135)', + hsl: 'hsl(273.6,65.6%,32%)', + }, + { + scale: 950, + hex: '#3b0764', + rgb: 'rgb(59,7,100)', + hsl: 'hsl(273.5,86.9%,21%)', + }, + ], + fuchsia: [ + { + scale: 50, + hex: '#fdf4ff', + rgb: 'rgb(253,244,255)', + hsl: 'hsl(289.1,100%,97.8%)', + }, + { + scale: 100, + hex: '#fae8ff', + rgb: 'rgb(250,232,255)', + hsl: 'hsl(287,100%,95.5%)', + }, + { + scale: 200, + hex: '#f5d0fe', + rgb: 'rgb(245,208,254)', + hsl: 'hsl(288.3,95.8%,90.6%)', + }, + { + scale: 300, + hex: '#f0abfc', + rgb: 'rgb(240,171,252)', + hsl: 'hsl(291.1,93.1%,82.9%)', + }, + { + scale: 400, + hex: '#e879f9', + rgb: 'rgb(232,121,249)', + hsl: 'hsl(292,91.4%,72.5%)', + }, + { + scale: 500, + hex: '#d946ef', + rgb: 'rgb(217,70,239)', + hsl: 'hsl(292.2,84.1%,60.6%)', + }, + { + scale: 600, + hex: '#c026d3', + rgb: 'rgb(192,38,211)', + hsl: 'hsl(293.4,69.5%,48.8%)', + }, + { + scale: 700, + hex: '#a21caf', + rgb: 'rgb(162,28,175)', + hsl: 'hsl(294.7,72.4%,39.8%)', + }, + { + scale: 800, + hex: '#86198f', + rgb: 'rgb(134,25,143)', + hsl: 'hsl(295.4,70.2%,32.9%)', + }, + { + scale: 900, + hex: '#701a75', + rgb: 'rgb(112,26,117)', + hsl: 'hsl(296.7,63.6%,28%)', + }, + { + scale: 950, + hex: '#4a044e', + rgb: 'rgb(74,4,78)', + hsl: 'hsl(296.8,90.2%,16.1%)', + }, + ], + pink: [ + { + scale: 50, + hex: '#fdf2f8', + rgb: 'rgb(253,242,248)', + hsl: 'hsl(327.3,73.3%,97.1%)', + }, + { + scale: 100, + hex: '#fce7f3', + rgb: 'rgb(252,231,243)', + hsl: 'hsl(325.7,77.8%,94.7%)', + }, + { + scale: 200, + hex: '#fbcfe8', + rgb: 'rgb(251,207,232)', + hsl: 'hsl(325.9,84.6%,89.8%)', + }, + { + scale: 300, + hex: '#f9a8d4', + rgb: 'rgb(249,168,212)', + hsl: 'hsl(327.4,87.1%,81.8%)', + }, + { + scale: 400, + hex: '#f472b6', + rgb: 'rgb(244,114,182)', + hsl: 'hsl(328.6,85.5%,70.2%)', + }, + { + scale: 500, + hex: '#ec4899', + rgb: 'rgb(236,72,153)', + hsl: 'hsl(330.4,81.2%,60.4%)', + }, + { + scale: 600, + hex: '#db2777', + rgb: 'rgb(219,39,119)', + hsl: 'hsl(333.3,71.4%,50.6%)', + }, + { + scale: 700, + hex: '#be185d', + rgb: 'rgb(190,24,93)', + hsl: 'hsl(335.1,77.6%,42%)', + }, + { + scale: 800, + hex: '#9d174d', + rgb: 'rgb(157,23,77)', + hsl: 'hsl(335.8,74.4%,35.3%)', + }, + { + scale: 900, + hex: '#831843', + rgb: 'rgb(131,24,67)', + hsl: 'hsl(335.9,69%,30.4%)', + }, + { + scale: 950, + hex: '#500724', + rgb: 'rgb(80,7,36)', + hsl: 'hsl(336.2,83.9%,17.1%)', + }, + ], + rose: [ + { + scale: 50, + hex: '#fff1f2', + rgb: 'rgb(255,241,242)', + hsl: 'hsl(355.7,100%,97.3%)', + }, + { + scale: 100, + hex: '#ffe4e6', + rgb: 'rgb(255,228,230)', + hsl: 'hsl(355.6,100%,94.7%)', + }, + { + scale: 200, + hex: '#fecdd3', + rgb: 'rgb(254,205,211)', + hsl: 'hsl(352.7,96.1%,90%)', + }, + { + scale: 300, + hex: '#fda4af', + rgb: 'rgb(253,164,175)', + hsl: 'hsl(352.6,95.7%,81.8%)', + }, + { + scale: 400, + hex: '#fb7185', + rgb: 'rgb(251,113,133)', + hsl: 'hsl(351.3,94.5%,71.4%)', + }, + { + scale: 500, + hex: '#f43f5e', + rgb: 'rgb(244,63,94)', + hsl: 'hsl(349.7,89.2%,60.2%)', + }, + { + scale: 600, + hex: '#e11d48', + rgb: 'rgb(225,29,72)', + hsl: 'hsl(346.8,77.2%,49.8%)', + }, + { + scale: 700, + hex: '#be123c', + rgb: 'rgb(190,18,60)', + hsl: 'hsl(345.3,82.7%,40.8%)', + }, + { + scale: 800, + hex: '#9f1239', + rgb: 'rgb(159,18,57)', + hsl: 'hsl(343.4,79.7%,34.7%)', + }, + { + scale: 900, + hex: '#881337', + rgb: 'rgb(136,19,55)', + hsl: 'hsl(341.5,75.5%,30.4%)', + }, + { + scale: 950, + hex: '#4c0519', + rgb: 'rgb(76,5,25)', + hsl: 'hsl(343.1,87.7%,15.9%)', + }, + ], +} + +export const colorMapping = { + light: { + 'background': 'white', + 'foreground': '{{base}}-950', + 'card': 'white', + 'card-foreground': '{{base}}-950', + 'popover': 'white', + 'popover-foreground': '{{base}}-950', + 'primary': '{{base}}-900', + 'primary-foreground': '{{base}}-50', + 'secondary': '{{base}}-100', + 'secondary-foreground': '{{base}}-900', + 'muted': '{{base}}-100', + 'muted-foreground': '{{base}}-500', + 'accent': '{{base}}-100', + 'accent-foreground': '{{base}}-900', + 'destructive': 'red-500', + 'destructive-foreground': '{{base}}-50', + 'border': '{{base}}-200', + 'input': '{{base}}-200', + 'ring': '{{base}}-950', + '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%', + }, + dark: { + 'background': '{{base}}-950', + 'foreground': '{{base}}-50', + 'card': '{{base}}-950', + 'card-foreground': '{{base}}-50', + 'popover': '{{base}}-950', + 'popover-foreground': '{{base}}-50', + 'primary': '{{base}}-50', + 'primary-foreground': '{{base}}-900', + 'secondary': '{{base}}-800', + 'secondary-foreground': '{{base}}-50', + 'muted': '{{base}}-800', + 'muted-foreground': '{{base}}-400', + 'accent': '{{base}}-800', + 'accent-foreground': '{{base}}-50', + 'destructive': 'red-900', + 'destructive-foreground': '{{base}}-50', + 'border': '{{base}}-800', + 'input': '{{base}}-800', + 'ring': '{{base}}-300', + '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%', + }, +} as const + +export function colorsData() { + const responseColorsData: Record = {} + for (const [color, value] of Object.entries(colors)) { + if (typeof value === 'string') { + responseColorsData[color] = value + continue + } + + if (Array.isArray(value)) { + responseColorsData[color] = value.map(item => ({ + ...item, + rgbChannel: item.rgb.replace(/^rgb\((\d+),(\d+),(\d+)\)$/, '$1 $2 $3'), + hslChannel: item.hsl.replace( + /^hsl\(([\d.]+),([\d.]+%),([\d.]+%)\)$/, + '$1 $2 $3', + ), + })) + continue + } + + if (typeof value === 'object') { + responseColorsData[color] = { + ...value, + rgbChannel: value.rgb.replace(/^rgb\((\d+),(\d+),(\d+)\)$/, '$1 $2 $3'), + hslChannel: value.hsl.replace( + /^hsl\(([\d.]+),([\d.]+%),([\d.]+%)\)$/, + '$1 $2 $3', + ), + } + } + } + + return responseColorsData +} + +export const availableColors: string[] = [ + 'slate', + 'gray', + 'zinc', + 'neutral', + 'stone', +] diff --git a/apps/www/src/registry/default/example/accordion-demo.ts b/docs/src/registry/default/example/accordion-demo.ts similarity index 72% rename from apps/www/src/registry/default/example/accordion-demo.ts rename to docs/src/registry/default/example/accordion-demo.ts index f94ed0d..8128878 100644 --- a/apps/www/src/registry/default/example/accordion-demo.ts +++ b/docs/src/registry/default/example/accordion-demo.ts @@ -1,12 +1,12 @@ -import { Component } from '@angular/core'; +import { UbAccordionContentDirective, UbAccordionDirective, UbAccordionItemDirective, UbAccordionTriggerDirective } from '@/registry/default/ui/accordion.directive' -import { UbAccordionDirective, UbAccordionItemDirective, UbAccordionTriggerDirective, UbAccordionContentDirective } from '@/registry/default/ui/accordion.directive' +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: 'accordion-demo-default', - imports: [UbAccordionDirective, UbAccordionItemDirective, UbAccordionTriggerDirective, UbAccordionContentDirective], - template: ` + standalone: true, + selector: 'accordion-demo-default', + imports: [UbAccordionDirective, UbAccordionItemDirective, UbAccordionTriggerDirective, UbAccordionContentDirective], + template: `
Is it accessible? @@ -27,8 +27,8 @@ import { UbAccordionDirective, UbAccordionItemDirective, UbAccordionTriggerDirec
- ` + `, }) export class AccordionDemoDefault { } -export default AccordionDemoDefault; +export default AccordionDemoDefault diff --git a/docs/src/registry/default/example/alert-demo.ts b/docs/src/registry/default/example/alert-demo.ts new file mode 100644 index 0000000..98bd692 --- /dev/null +++ b/docs/src/registry/default/example/alert-demo.ts @@ -0,0 +1,35 @@ +import { + UbAlertDescriptionDirective, + UbAlertDirective, + UbAlertIconDirective, + UbAlertTitleDirective, +} from '@/registry/default/ui/alert.directive' +import { Component } from '@angular/core' +import { NgIconComponent, provideIcons } from '@ng-icons/core' + +import { lucideTerminal } from '@ng-icons/lucide' + +@Component({ + standalone: true, + selector: 'alert-demo-default', + imports: [ + NgIconComponent, + UbAlertDirective, + UbAlertTitleDirective, + UbAlertDescriptionDirective, + UbAlertIconDirective, + ], + viewProviders: [provideIcons({ lucideTerminal })], + template: ` +
+ +
Heads up!
+
+ You can add components and dependencies to your app using the cli. +
+
+ `, +}) +export class AlertDemoDefault { } + +export default AlertDemoDefault diff --git a/docs/src/registry/default/example/alert-destructive.ts b/docs/src/registry/default/example/alert-destructive.ts new file mode 100644 index 0000000..17f998c --- /dev/null +++ b/docs/src/registry/default/example/alert-destructive.ts @@ -0,0 +1,35 @@ +import { + UbAlertDescriptionDirective, + UbAlertDirective, + UbAlertIconDirective, + UbAlertTitleDirective, +} from '@/registry/default/ui/alert.directive' +import { Component } from '@angular/core' +import { NgIconComponent, provideIcons } from '@ng-icons/core' + +import { lucideTerminal } from '@ng-icons/lucide' + +@Component({ + standalone: true, + selector: 'alert-destructive-default', + imports: [ + NgIconComponent, + UbAlertDirective, + UbAlertTitleDirective, + UbAlertDescriptionDirective, + UbAlertIconDirective, + ], + viewProviders: [provideIcons({ lucideTerminal })], + template: ` +
+ +
Heads up!
+
+ You can add components and dependencies to your app using the cli. +
+
+ `, +}) +export class AlertDestructiveDefault { } + +export default AlertDestructiveDefault diff --git a/docs/src/registry/default/example/avatar-demo.ts b/docs/src/registry/default/example/avatar-demo.ts new file mode 100644 index 0000000..e73c4aa --- /dev/null +++ b/docs/src/registry/default/example/avatar-demo.ts @@ -0,0 +1,18 @@ +import { UbAvatarDirective, UbAvatarFallbackDirective, UbAvatarImageDirective } from '@/registry/default/ui/avatar.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'avatar-demo-default', + imports: [UbAvatarDirective, UbAvatarImageDirective, UbAvatarFallbackDirective], + template: ` + + @adrianub + UB + + `, +}) +export class AvatarDemoDefault { } + +export default AvatarDemoDefault diff --git a/docs/src/registry/default/example/badge-demo.ts b/docs/src/registry/default/example/badge-demo.ts new file mode 100644 index 0000000..9e4ef68 --- /dev/null +++ b/docs/src/registry/default/example/badge-demo.ts @@ -0,0 +1,13 @@ +import { UbBadgeDirective } from '@/registry/default/ui/badge.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'badge-demo-default', + imports: [UbBadgeDirective], + template: `
Badge
`, +}) +export class BadgeDemoDefault { } + +export default BadgeDemoDefault diff --git a/docs/src/registry/default/example/badge-destructive.ts b/docs/src/registry/default/example/badge-destructive.ts new file mode 100644 index 0000000..20f67e0 --- /dev/null +++ b/docs/src/registry/default/example/badge-destructive.ts @@ -0,0 +1,13 @@ +import { UbBadgeDirective } from '@/registry/default/ui/badge.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'badge-destructive-default', + imports: [UbBadgeDirective], + template: `
Badge
`, +}) +export class BadgeDestructiveDefault { } + +export default BadgeDestructiveDefault diff --git a/docs/src/registry/default/example/badge-outline.ts b/docs/src/registry/default/example/badge-outline.ts new file mode 100644 index 0000000..88a9e6a --- /dev/null +++ b/docs/src/registry/default/example/badge-outline.ts @@ -0,0 +1,13 @@ +import { UbBadgeDirective } from '@/registry/default/ui/badge.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'badge-demo-default', + imports: [UbBadgeDirective], + template: `
Badge
`, +}) +export class BadgeOutlineDefault { } + +export default BadgeOutlineDefault diff --git a/docs/src/registry/default/example/badge-secondary.ts b/docs/src/registry/default/example/badge-secondary.ts new file mode 100644 index 0000000..3ae6cf6 --- /dev/null +++ b/docs/src/registry/default/example/badge-secondary.ts @@ -0,0 +1,13 @@ +import { UbBadgeDirective } from '@/registry/default/ui/badge.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'badge-secondary-default', + imports: [UbBadgeDirective], + template: `
Badge
`, +}) +export class BadgeSecondaryDefault { } + +export default BadgeSecondaryDefault diff --git a/apps/www/src/registry/default/example/breadcrumb-demo.ts b/docs/src/registry/default/example/breadcrumb-demo.ts similarity index 63% rename from apps/www/src/registry/default/example/breadcrumb-demo.ts rename to docs/src/registry/default/example/breadcrumb-demo.ts index 8223906..8115b00 100644 --- a/apps/www/src/registry/default/example/breadcrumb-demo.ts +++ b/docs/src/registry/default/example/breadcrumb-demo.ts @@ -1,6 +1,19 @@ -import { Component } from "@angular/core"; - import { + UbBreadcrumbDirective, + UbBreadcrumbEllipsisComponent, + UbBreadcrumbItemDirective, + UbBreadcrumbLinkDirective, + UbBreadcrumbListDirective, + UbBreadcrumbPageDirective, + UbBreadcrumbSeparatorComponent, +} from '@/registry/default/ui/breadcrumb.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'breadcrumb-demo-default', + imports: [ UbBreadcrumbDirective, UbBreadcrumbListDirective, UbBreadcrumbItemDirective, @@ -8,21 +21,8 @@ import { UbBreadcrumbSeparatorComponent, UbBreadcrumbEllipsisComponent, UbBreadcrumbPageDirective, -} from "@/registry/default/ui/breadcrumb.directive"; - -@Component({ - standalone: true, - selector: "breadcrumb-demo-default", - imports: [ - UbBreadcrumbDirective, - UbBreadcrumbListDirective, - UbBreadcrumbItemDirective, - UbBreadcrumbLinkDirective, - UbBreadcrumbSeparatorComponent, - UbBreadcrumbEllipsisComponent, - UbBreadcrumbPageDirective, - ], - template: ` + ], + template: `
- ` + `, }) export class TabsDemoDefault { } -export default TabsDemoDefault; +export default TabsDemoDefault diff --git a/apps/www/src/registry/default/example/typography-blockquote.ts b/docs/src/registry/default/example/typography-blockquote.ts similarity index 60% rename from apps/www/src/registry/default/example/typography-blockquote.ts rename to docs/src/registry/default/example/typography-blockquote.ts index f84f4c9..c9e76de 100644 --- a/apps/www/src/registry/default/example/typography-blockquote.ts +++ b/docs/src/registry/default/example/typography-blockquote.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-blockquote-default", - template: ` + standalone: true, + selector: 'typography-blockquote-default', + template: `
"After all," he said, "everyone enjoys a good joke, so it's only fair that they should pay for the privilege." @@ -12,4 +12,4 @@ import { Component } from "@angular/core"; }) export class TypographyBlockquoteDefault { } -export default TypographyBlockquoteDefault; +export default TypographyBlockquoteDefault diff --git a/apps/www/src/registry/default/example/typography-demo.ts b/docs/src/registry/default/example/typography-demo.ts similarity index 97% rename from apps/www/src/registry/default/example/typography-demo.ts rename to docs/src/registry/default/example/typography-demo.ts index 172eec7..161af07 100644 --- a/apps/www/src/registry/default/example/typography-demo.ts +++ b/docs/src/registry/default/example/typography-demo.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-demo-default", - template: ` + standalone: true, + selector: 'typography-demo-default', + template: `

Taxing Laughter: The Joke Tax Chronicles

@@ -11,4 +11,4 @@ import { Component } from "@angular/core"; }) export class TypographyH1Default { } -export default TypographyH1Default; +export default TypographyH1Default diff --git a/apps/www/src/registry/default/example/typography-h2.ts b/docs/src/registry/default/example/typography-h2.ts similarity index 55% rename from apps/www/src/registry/default/example/typography-h2.ts rename to docs/src/registry/default/example/typography-h2.ts index 74d964f..9ef3cbd 100644 --- a/apps/www/src/registry/default/example/typography-h2.ts +++ b/docs/src/registry/default/example/typography-h2.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-h2-default", - template: ` + standalone: true, + selector: 'typography-h2-default', + template: `

The People of the Kingdom

@@ -11,4 +11,4 @@ import { Component } from "@angular/core"; }) export class TypographyH2Default { } -export default TypographyH2Default; +export default TypographyH2Default diff --git a/apps/www/src/registry/default/example/typography-h3.ts b/docs/src/registry/default/example/typography-h3.ts similarity index 50% rename from apps/www/src/registry/default/example/typography-h3.ts rename to docs/src/registry/default/example/typography-h3.ts index 42c035a..ef61ca8 100644 --- a/apps/www/src/registry/default/example/typography-h3.ts +++ b/docs/src/registry/default/example/typography-h3.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-h3-default", - template: ` + standalone: true, + selector: 'typography-h3-default', + template: `

The Joke Tax

@@ -11,4 +11,4 @@ import { Component } from "@angular/core"; }) export class TypographyH3Default { } -export default TypographyH3Default; +export default TypographyH3Default diff --git a/apps/www/src/registry/default/example/typography-h4.ts b/docs/src/registry/default/example/typography-h4.ts similarity index 52% rename from apps/www/src/registry/default/example/typography-h4.ts rename to docs/src/registry/default/example/typography-h4.ts index 0cf1c12..9026d00 100644 --- a/apps/www/src/registry/default/example/typography-h4.ts +++ b/docs/src/registry/default/example/typography-h4.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-h4-default", - template: ` + standalone: true, + selector: 'typography-h4-default', + template: `

People stopped telling jokes

@@ -11,4 +11,4 @@ import { Component } from "@angular/core"; }) export class TypographyH4Default { } -export default TypographyH4Default; +export default TypographyH4Default diff --git a/apps/www/src/registry/default/example/typography-inline-code.ts b/docs/src/registry/default/example/typography-inline-code.ts similarity index 56% rename from apps/www/src/registry/default/example/typography-inline-code.ts rename to docs/src/registry/default/example/typography-inline-code.ts index bd6be15..ce0a184 100644 --- a/apps/www/src/registry/default/example/typography-inline-code.ts +++ b/docs/src/registry/default/example/typography-inline-code.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-inline-code-default", - template: ` + standalone: true, + selector: 'typography-inline-code-default', + template: ` {{ "@" }}radix-ui/react-alert-dialog @@ -11,4 +11,4 @@ import { Component } from "@angular/core"; }) export class TypographyInlineCodeDefault { } -export default TypographyInlineCodeDefault; +export default TypographyInlineCodeDefault diff --git a/docs/src/registry/default/example/typography-large.ts b/docs/src/registry/default/example/typography-large.ts new file mode 100644 index 0000000..6cd63e3 --- /dev/null +++ b/docs/src/registry/default/example/typography-large.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'typography-large-default', + template: ` +
Are you absolutely sure?
+ `, +}) +export class TypographyLargeDefault { } + +export default TypographyLargeDefault diff --git a/apps/www/src/registry/default/example/typography-lead.ts b/docs/src/registry/default/example/typography-lead.ts similarity index 57% rename from apps/www/src/registry/default/example/typography-lead.ts rename to docs/src/registry/default/example/typography-lead.ts index f0eb566..06ab011 100644 --- a/apps/www/src/registry/default/example/typography-lead.ts +++ b/docs/src/registry/default/example/typography-lead.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-lead-default", - template: ` + standalone: true, + selector: 'typography-lead-default', + template: `

A modal dialog that interrupts the user with important content and expects a response. @@ -12,4 +12,4 @@ import { Component } from "@angular/core"; }) export class TypographyLeadDefault { } -export default TypographyLeadDefault; +export default TypographyLeadDefault diff --git a/apps/www/src/registry/default/example/typography-list.ts b/docs/src/registry/default/example/typography-list.ts similarity index 62% rename from apps/www/src/registry/default/example/typography-list.ts rename to docs/src/registry/default/example/typography-list.ts index f304e0a..e4ea1fe 100644 --- a/apps/www/src/registry/default/example/typography-list.ts +++ b/docs/src/registry/default/example/typography-list.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-list-default", - template: ` + standalone: true, + selector: 'typography-list-default', + template: `

  • 1st level of puns: 5 gold coins
  • 2nd level of jokes: 10 gold coins
  • @@ -13,4 +13,4 @@ import { Component } from "@angular/core"; }) export class TypographyListDefault { } -export default TypographyListDefault; +export default TypographyListDefault diff --git a/docs/src/registry/default/example/typography-muted.ts b/docs/src/registry/default/example/typography-muted.ts new file mode 100644 index 0000000..8a93300 --- /dev/null +++ b/docs/src/registry/default/example/typography-muted.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'typography-muted-default', + template: ` +

    Enter your email address.

    + `, +}) +export class TypographyMutedDefault { } + +export default TypographyMutedDefault diff --git a/apps/www/src/registry/default/example/typography-p.ts b/docs/src/registry/default/example/typography-p.ts similarity index 61% rename from apps/www/src/registry/default/example/typography-p.ts rename to docs/src/registry/default/example/typography-p.ts index 16e2c25..db31b00 100644 --- a/apps/www/src/registry/default/example/typography-p.ts +++ b/docs/src/registry/default/example/typography-p.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-p-default", - template: ` + standalone: true, + selector: 'typography-p-default', + template: `

    The king, seeing how much happier his subjects were, realized the error of his ways and repealed the joke tax. @@ -12,4 +12,4 @@ import { Component } from "@angular/core"; }) export class TypographyPDefault { } -export default TypographyPDefault; +export default TypographyPDefault diff --git a/docs/src/registry/default/example/typography-small.ts b/docs/src/registry/default/example/typography-small.ts new file mode 100644 index 0000000..e6eefa2 --- /dev/null +++ b/docs/src/registry/default/example/typography-small.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'typography-small-default', + template: ` + Email address + `, +}) +export class TypographySmallDefault { } + +export default TypographySmallDefault diff --git a/apps/www/src/registry/default/example/typography-table.ts b/docs/src/registry/default/example/typography-table.ts similarity index 92% rename from apps/www/src/registry/default/example/typography-table.ts rename to docs/src/registry/default/example/typography-table.ts index 03641db..5cc44f4 100644 --- a/apps/www/src/registry/default/example/typography-table.ts +++ b/docs/src/registry/default/example/typography-table.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-table-default", - template: ` + standalone: true, + selector: 'typography-table-default', + template: `

    @@ -64,4 +64,4 @@ import { Component } from "@angular/core"; }) export class TypographyTableDefault { } -export default TypographyTableDefault; +export default TypographyTableDefault diff --git a/docs/src/registry/default/ui/accordion.directive.ts b/docs/src/registry/default/ui/accordion.directive.ts new file mode 100644 index 0000000..134caf3 --- /dev/null +++ b/docs/src/registry/default/ui/accordion.directive.ts @@ -0,0 +1,83 @@ +import { cn } from '@/lib/utils' +import { Component, computed, Directive, input } from '@angular/core' + +import { NgIconComponent, provideIcons } from '@ng-icons/core' +import { lucideChevronDown } from '@ng-icons/lucide' + +import { + RdxAccordionContentDirective, + RdxAccordionHeaderDirective, + RdxAccordionItemDirective, + RdxAccordionRootDirective, + RdxAccordionTriggerDirective, +} from '@radix-ng/primitives/accordion' +import type { ClassValue } from 'clsx' + +@Directive({ + standalone: true, + selector: '[ubAccordion]', + hostDirectives: [RdxAccordionRootDirective], +}) +export class UbAccordionDirective { } + +@Directive({ + standalone: true, + selector: '[ubAccordionItem]', + hostDirectives: [ + { + directive: RdxAccordionItemDirective, + inputs: ['disabled', 'value'], + }, + ], + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAccordionItemDirective { + class = input() + computedClass = computed(() => { + return cn('border-b', this.class()) + }) +} + +@Component({ + standalone: true, + selector: '[ubAccordionTrigger], ub-accordion-trigger', + imports: [RdxAccordionHeaderDirective, RdxAccordionTriggerDirective, NgIconComponent], + viewProviders: [provideIcons({ lucideChevronDown })], + template: ` +

    + +

    + `, +}) +export class UbAccordionTriggerDirective { + class = input() + computedClass = computed(() => { + return cn('flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>ng-icon]:rotate-180', this.class()) + }) +} + +@Component({ + standalone: true, + selector: '[ubAccordionContent], ub-accordion-content', + hostDirectives: [RdxAccordionContentDirective], + host: { + class: + 'overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down', + }, + template: ` +
    + +
    + `, +}) +export class UbAccordionContentDirective { + class = input() + computedClass = computed(() => { + return cn('pb-4 pt-0', this.class()) + }) +} diff --git a/docs/src/registry/default/ui/alert.directive.ts b/docs/src/registry/default/ui/alert.directive.ts new file mode 100644 index 0000000..5e94ab6 --- /dev/null +++ b/docs/src/registry/default/ui/alert.directive.ts @@ -0,0 +1,77 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +import { cva, type VariantProps } from 'class-variance-authority' + +const alertVariants = cva( + 'relative w-full rounded-lg border p-4 [&>[ubAlertIcon]~*]:pl-7 [&>[ubAlertIcon]+div]:translate-y-[-3px] [&>[ubAlertIcon]]:absolute [&>[ubAlertIcon]]:left-4 [&>[ubAlertIcon]]:top-4 [&>[ubAlertIcon]]:text-foreground', + { + variants: { + variant: { + default: 'bg-background text-foreground', + destructive: + 'border-destructive/50 text-destructive dark:border-destructive [&>[ubAlertIcon]]:text-destructive', + }, + }, + defaultVariants: { + variant: 'default', + }, + }, +) + +type AlertProps = VariantProps +type UbAlertVariant = NonNullable + +@Directive({ + selector: 'div[ubAlert]', + standalone: true, + host: { + 'role': 'alert', + '[class]': 'computedClass()', + }, +}) +export class UbAlertDirective { + readonly class = input() + readonly variant = input('default') + + protected computedClass = computed(() => + cn(alertVariants({ variant: this.variant(), class: this.class() })), + ) +} + +@Directive({ + standalone: true, + selector: '[ubAlertIcon]', +}) +export class UbAlertIconDirective {} + +@Directive({ + selector: 'h5[ubAlertTitle]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAlertTitleDirective { + readonly class = input() + + protected computedClass = computed(() => + cn('mb-1 font-medium leading-none tracking-tight', this.class()), + ) +} + +@Directive({ + selector: 'div[ubAlertDescription]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAlertDescriptionDirective { + readonly class = input() + + protected computedClass = computed(() => + cn('text-sm [&_p]:leading-relaxed', this.class()), + ) +} diff --git a/docs/src/registry/default/ui/avatar.directive.ts b/docs/src/registry/default/ui/avatar.directive.ts new file mode 100644 index 0000000..2555412 --- /dev/null +++ b/docs/src/registry/default/ui/avatar.directive.ts @@ -0,0 +1,52 @@ +import { cn } from '@/lib/utils' +import { computed, Directive, input } from '@angular/core' + +import { RdxAvatarFallbackDirective, RdxAvatarImageDirective, RdxAvatarRootDirective } from '@radix-ng/primitives/avatar' + +@Directive({ + standalone: true, + selector: 'span[ubAvatar]', + hostDirectives: [RdxAvatarRootDirective], + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAvatarDirective { + readonly class = input() + + readonly computedClass = computed(() => { + return cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', this.class()) + }) +} + +@Directive({ + standalone: true, + selector: 'img[ubAvatarImage]', + hostDirectives: [RdxAvatarImageDirective], + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAvatarImageDirective { + readonly class = input() + + readonly computedClass = computed(() => { + return cn('aspect-square h-full w-full', this.class()) + }) +} + +@Directive({ + standalone: true, + selector: 'span[ubAvatarFallback]', + hostDirectives: [RdxAvatarFallbackDirective], + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAvatarFallbackDirective { + readonly class = input() + + readonly computedClass = computed(() => { + return cn('flex h-full w-full items-center justify-center rounded-full bg-muted', this.class()) + }) +} diff --git a/docs/src/registry/default/ui/badge.directive.ts b/docs/src/registry/default/ui/badge.directive.ts new file mode 100644 index 0000000..b1ddd86 --- /dev/null +++ b/docs/src/registry/default/ui/badge.directive.ts @@ -0,0 +1,44 @@ +import { cn } from '@/lib/utils' +import { computed, Directive, input } from '@angular/core' + +import { cva, type VariantProps } from 'class-variance-authority' + +const badgeVariants = cva( + 'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', + { + variants: { + variant: { + default: + 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80', + secondary: + 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80', + destructive: + 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80', + outline: 'text-foreground', + }, + }, + defaultVariants: { + variant: 'default', + }, + }, +) + +type BadgeProps = VariantProps + +export type UbBadgeVariant = NonNullable + +@Directive({ + selector: '[ubBadge]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbBadgeDirective { + readonly class = input() + readonly variant = input('default') + + protected computedClass = computed(() => + cn(badgeVariants({ variant: this.variant(), class: this.class() })), + ) +} diff --git a/docs/src/registry/default/ui/breadcrumb.directive.ts b/docs/src/registry/default/ui/breadcrumb.directive.ts new file mode 100644 index 0000000..2629ce0 --- /dev/null +++ b/docs/src/registry/default/ui/breadcrumb.directive.ts @@ -0,0 +1,129 @@ +import { cn } from '@/lib/utils' + +import { Component, computed, Directive, input } from '@angular/core' +import { NgIconComponent, provideIcons } from '@ng-icons/core' + +import { radixChevronRight, radixDotsHorizontal } from '@ng-icons/radix-icons' + +@Directive({ + selector: 'nav[ubBreadcrumb]', + standalone: true, + host: { + '[attr.aria-label]': '"breadcrumb"', + }, +}) +export class UbBreadcrumbDirective {} + +@Directive({ + selector: 'ol[ubBreadcrumbList]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbListDirective { + readonly class = input() + + protected computedClass = computed(() => + cn( + 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', + this.class(), + ), + ) +} + +@Directive({ + selector: 'li[ubBreadcrumbItem]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbItemDirective { + readonly class = input() + + protected computedClass = computed(() => + cn('inline-flex items-center gap-1.5', this.class()), + ) +} + +@Directive({ + selector: '[ubBreadcrumbLink], a[ubBreadcrumbLink]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbLinkDirective { + readonly class = input() + + protected computedClass = computed(() => + cn('transition-colors hover:text-foreground', this.class()), + ) +} + +@Directive({ + selector: 'span[ubBreadcrumbPage]', + standalone: true, + host: { + 'role': 'link', + '[attr.aria-disabled]': 'true', + '[attr.aria-current]': '"page"', + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbPageDirective { + readonly class = input() + + protected computedClass = computed(() => + cn('font-normal text-foreground', this.class()), + ) +} + +@Component({ + selector: 'li[ubBreadcrumbSeparator]', + standalone: true, + imports: [NgIconComponent], + viewProviders: [provideIcons({ radixChevronRight })], + template: ` + + @if (ref.children.length == 0) { + + } + `, + host: { + 'role': 'presentation', + '[attr.aria-hidden]': 'true', + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbSeparatorComponent { + readonly class = input() + + protected computedClass = computed(() => + cn('[&>svg]:size-3.5', this.class()), + ) +} + +@Component({ + selector: 'span[ubBreadcrumbEllipsis]', + standalone: true, + imports: [NgIconComponent], + viewProviders: [provideIcons({ radixDotsHorizontal })], + template: ` + + More + `, + host: { + 'role': 'presentation', + '[attr.aria-hidden]': 'true', + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbEllipsisComponent { + readonly class = input() + + protected computedClass = computed(() => + cn('flex h-9 w-9 items-center justify-center', this.class()), + ) +} diff --git a/docs/src/registry/default/ui/button.directive.ts b/docs/src/registry/default/ui/button.directive.ts new file mode 100644 index 0000000..62812b6 --- /dev/null +++ b/docs/src/registry/default/ui/button.directive.ts @@ -0,0 +1,64 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +import { cva, type VariantProps } from 'class-variance-authority' + +export const buttonVariants = cva( + 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', + { + variants: { + variant: { + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + destructive: + 'bg-destructive text-destructive-foreground hover:bg-destructive/90', + outline: + 'border border-input bg-background hover:bg-accent hover:text-accent-foreground', + secondary: + 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-10 px-4 py-2', + sm: 'h-9 rounded-md px-3', + lg: 'h-11 rounded-md px-8', + icon: 'h-10 w-10', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +) + +type ButtonProps = VariantProps + +export type UbButtonSize = NonNullable +export type UbButtonVariant = NonNullable + +@Directive({ + selector: '[ubButton]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbButtonDirective { + readonly class = input() + + readonly variant = input('default') + + readonly size = input('default') + + protected computedClass = computed(() => + cn( + buttonVariants({ + variant: this.variant(), + size: this.size(), + class: this.class(), + }), + ), + ) +} diff --git a/docs/src/registry/default/ui/card.directive.ts b/docs/src/registry/default/ui/card.directive.ts new file mode 100644 index 0000000..994d0be --- /dev/null +++ b/docs/src/registry/default/ui/card.directive.ts @@ -0,0 +1,85 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +@Directive({ + standalone: true, + selector: '[ubCard]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardDirective { + readonly class = input() + protected computedClass = computed(() => + cn('rounded-lg border bg-card text-card-foreground shadow-sm', this.class()), + ) +} + +@Directive({ + standalone: true, + selector: '[ubCardHeader]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardHeaderDirective { + readonly class = input() + protected computedClass = computed(() => + cn('flex flex-col space-y-1.5 p-6', this.class()), + ) +} + +@Directive({ + standalone: true, + selector: '[ubCardTitle]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardTitleDirective { + readonly class = input() + protected computedClass = computed(() => + cn('text-2xl font-semibold leading-none tracking-tight', this.class()), + ) +} + +@Directive({ + standalone: true, + selector: '[ubCardDescription]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardDescriptionDirective { + readonly class = input() + protected computedClass = computed(() => + cn('text-sm text-muted-foreground', this.class()), + ) +} + +@Directive({ + standalone: true, + selector: '[ubCardContent]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardContentDirective { + readonly class = input() + protected computedClass = computed(() => cn('p-6 pt-0', this.class())) +} + +@Directive({ + standalone: true, + selector: '[ubCardFooter]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardFooterDirective { + readonly class = input() + protected computedClass = computed(() => + cn('flex items-center p-6 pt-0', this.class()), + ) +} diff --git a/docs/src/registry/default/ui/input.directive.ts b/docs/src/registry/default/ui/input.directive.ts new file mode 100644 index 0000000..051a9aa --- /dev/null +++ b/docs/src/registry/default/ui/input.directive.ts @@ -0,0 +1,35 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +export type InputType = + | 'date' + | 'datetime-local' + | 'email' + | 'month' + | 'number' + | 'password' + | 'tel' + | 'file' + | 'search' + | 'text' + +@Directive({ + selector: '[ubInput]', + standalone: true, + host: { + '[class]': 'computedClass()', + '[type]': 'type()', + }, +}) +export class UbInputDirective { + readonly type = input.required() + readonly class = input() + + protected computedClass = computed(() => + cn( + 'flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50', + this.class(), + ), + ) +} diff --git a/docs/src/registry/default/ui/label.directive.ts b/docs/src/registry/default/ui/label.directive.ts new file mode 100644 index 0000000..d1ca397 --- /dev/null +++ b/docs/src/registry/default/ui/label.directive.ts @@ -0,0 +1,28 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' +import { RdxLabelDirective } from '@radix-ng/primitives/label' + +import { cva } from 'class-variance-authority' + +const labelVariants = cva( + 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70', +) + +@Directive({ + selector: '[ubLabel]', + standalone: true, + hostDirectives: [ + { + directive: RdxLabelDirective, + inputs: ['htmlFor'], + }, + ], + host: { + '[class]': 'computedClass()', + }, +}) +export class UbLabelDirective { + readonly class = input('') + protected computedClass = computed(() => cn(labelVariants(), this.class())) +} diff --git a/docs/src/registry/default/ui/separator.directive.ts b/docs/src/registry/default/ui/separator.directive.ts new file mode 100644 index 0000000..760b9f3 --- /dev/null +++ b/docs/src/registry/default/ui/separator.directive.ts @@ -0,0 +1,22 @@ +import { cn } from '@/lib/utils' +import { computed, Directive, input } from '@angular/core' + +@Directive({ + standalone: true, + selector: '[ubSeperator]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbSeparatorDirective { + readonly class = input() + readonly orientation = input<'horizontal' | 'vertical'>('horizontal') + + protected computedClass = computed(() => + cn( + 'shrink-0 bg-border', + this.orientation() === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]', + this.class(), + ), + ) +} diff --git a/docs/src/registry/default/ui/skeleton.directive.ts b/docs/src/registry/default/ui/skeleton.directive.ts new file mode 100644 index 0000000..c1ff700 --- /dev/null +++ b/docs/src/registry/default/ui/skeleton.directive.ts @@ -0,0 +1,17 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +@Directive({ + selector: '[ubSkeleton]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbSkeletonDirective { + readonly class = input() + protected computedClass = computed(() => + cn('animate-pulse rounded-md bg-muted', this.class()), + ) +} diff --git a/docs/src/registry/default/ui/switch.directive.ts b/docs/src/registry/default/ui/switch.directive.ts new file mode 100644 index 0000000..584bdd2 --- /dev/null +++ b/docs/src/registry/default/ui/switch.directive.ts @@ -0,0 +1,29 @@ +import { cn } from '@/lib/utils' +import { Component, computed, input } from '@angular/core' + +import { RdxSwitchRootDirective, RdxSwitchThumbDirective } from '@radix-ng/primitives/switch' + +@Component({ + standalone: true, + selector: 'button[ubSwitch]', + imports: [RdxSwitchThumbDirective], + hostDirectives: [ + { + directive: RdxSwitchRootDirective, + inputs: ['id', 'required', 'checked', 'disabled'], + outputs: ['onCheckedChange'], + }, + ], + host: { + '[class]': 'computedClass()', + }, + template: ` + + `, +}) +export class SwitchDirective { + readonly class = input() + readonly computedClass = computed(() => { + return cn('peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input', this.class()) + }) +} diff --git a/docs/src/registry/default/ui/table.directive.ts b/docs/src/registry/default/ui/table.directive.ts new file mode 100644 index 0000000..ba0325b --- /dev/null +++ b/docs/src/registry/default/ui/table.directive.ts @@ -0,0 +1,119 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +@Directive({ + selector: 'table[ubTable]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableDirective { + readonly class = input('') + protected computedClass = computed(() => + cn('w-full caption-bottom text-sm', this.class()), + ) +} + +@Directive({ + selector: 'thead[ubTableHeader]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableHeaderDirective { + readonly class = input('') + protected computedClass = computed(() => cn('[&_tr]:border-b', this.class())) +} + +@Directive({ + selector: 'tbody[ubTableBody]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableBodyDirective { + readonly class = input('') + protected computedClass = computed(() => + cn('[&_tr:last-child]:border-0', this.class()), + ) +} + +@Directive({ + selector: 'tfoot[ubTableFooter]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableFooterDirective { + readonly class = input('') + protected computedClass = computed(() => + cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', this.class()), + ) +} + +@Directive({ + selector: 'tr[ubTableRow]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableRowDirective { + readonly class = input('') + protected computedClass = computed(() => + cn( + 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted', + this.class(), + ), + ) +} + +@Directive({ + selector: 'th[ubTableHead]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableHeadDirective { + readonly class = input('') + protected computedClass = computed(() => + cn( + 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0', + this.class(), + ), + ) +} + +@Directive({ + selector: 'td[ubTableCell]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableCellDirective { + readonly class = input('') + protected computedClass = computed(() => + cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', this.class()), + ) +} + +@Directive({ + selector: 'caption[ubTableCaption]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableCaptionDirective { + readonly class = input('') + protected computedClass = computed(() => + cn('mt-4 text-sm text-muted-foreground', this.class()), + ) +} diff --git a/apps/www/src/registry/default/ui/tabs.directive.ts b/docs/src/registry/default/ui/tabs.directive.ts similarity index 51% rename from apps/www/src/registry/default/ui/tabs.directive.ts rename to docs/src/registry/default/ui/tabs.directive.ts index ad8e78d..99a4055 100644 --- a/apps/www/src/registry/default/ui/tabs.directive.ts +++ b/docs/src/registry/default/ui/tabs.directive.ts @@ -1,86 +1,86 @@ -import { computed, Directive, Input, input } from "@angular/core"; +import { cn } from '@/lib/utils' + +import { computed, Directive, Input, input } from '@angular/core' import { RdxTabsContentDirective, RdxTabsListDirective, RdxTabsRootDirective, RdxTabsTriggerDirective, -} from "@radix-ng/primitives/tabs"; - -import { cn } from "@/lib/utils"; +} from '@radix-ng/primitives/tabs' @Directive({ - selector: "[ubTabs]", + selector: '[ubTabs]', standalone: true, hostDirectives: [ { directive: RdxTabsRootDirective, - inputs: ["defaultValue: defaultValue"], + inputs: ['defaultValue: defaultValue'], }, ], }) export class UbTabsDirective { - @Input() defaultValue?: string; + @Input() defaultValue?: string } @Directive({ - selector: "[ubTabsList]", + selector: '[ubTabsList]', standalone: true, hostDirectives: [RdxTabsListDirective], host: { - "[class]": "computedClass()", + '[class]': 'computedClass()', }, }) export class UbTabsListDirective { - readonly class = input(); + readonly class = input() protected computedClass = computed(() => cn( - "inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground", - this.class() - ) - ); + 'inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground', + this.class(), + ), + ) } @Directive({ - selector: "[ubTabsTrigger]", + selector: '[ubTabsTrigger]', standalone: true, hostDirectives: [ - { directive: RdxTabsTriggerDirective, inputs: ["value: value"] }, + { directive: RdxTabsTriggerDirective, inputs: ['value: value'] }, ], host: { - "[class]": "computedClass()", + '[class]': 'computedClass()', }, }) export class UbTabsTriggerDirective { - readonly value = input.required(); + readonly value = input.required() - readonly class = input(); + readonly class = input() protected computedClass = computed(() => cn( - "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm", - this.class() - ) - ); + 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm', + this.class(), + ), + ) } @Directive({ - selector: "[ubTabsContent]", + selector: '[ubTabsContent]', standalone: true, hostDirectives: [ - { directive: RdxTabsContentDirective, inputs: ["value: value"] }, + { directive: RdxTabsContentDirective, inputs: ['value: value'] }, ], host: { - "[class]": "computedClass()", + '[class]': 'computedClass()', }, }) export class UbTabsContentDirective { - readonly value = input.required(); + readonly value = input.required() - readonly class = input(); + readonly class = input() protected computedClass = computed(() => cn( - "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", - this.class() - ) - ); + 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', + this.class(), + ), + ) } diff --git a/docs/src/registry/examples.ts b/docs/src/registry/examples.ts new file mode 100644 index 0000000..f7c92b3 --- /dev/null +++ b/docs/src/registry/examples.ts @@ -0,0 +1,3 @@ +import type { Registry } from './schema' + +export const examples: Registry = [] diff --git a/apps/www/src/registry/new-york/example/accordion-demo.ts b/docs/src/registry/new-york/example/accordion-demo.ts similarity index 72% rename from apps/www/src/registry/new-york/example/accordion-demo.ts rename to docs/src/registry/new-york/example/accordion-demo.ts index 0d76828..65afcae 100644 --- a/apps/www/src/registry/new-york/example/accordion-demo.ts +++ b/docs/src/registry/new-york/example/accordion-demo.ts @@ -1,12 +1,12 @@ -import { Component } from '@angular/core'; +import { UbAccordionContentDirective, UbAccordionDirective, UbAccordionItemDirective, UbAccordionTriggerDirective } from '@/registry/new-york/ui/accordion.directive' -import { UbAccordionDirective, UbAccordionItemDirective, UbAccordionTriggerDirective, UbAccordionContentDirective } from '@/registry/new-york/ui/accordion.directive' +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: 'accordion-demo-new-york', - imports: [UbAccordionDirective, UbAccordionItemDirective, UbAccordionTriggerDirective, UbAccordionContentDirective], - template: ` + standalone: true, + selector: 'accordion-demo-new-york', + imports: [UbAccordionDirective, UbAccordionItemDirective, UbAccordionTriggerDirective, UbAccordionContentDirective], + template: `
    Is it accessible? @@ -27,8 +27,8 @@ import { UbAccordionDirective, UbAccordionItemDirective, UbAccordionTriggerDirec
    - ` + `, }) export class AccordionDemoNewYork { } -export default AccordionDemoNewYork; +export default AccordionDemoNewYork diff --git a/docs/src/registry/new-york/example/alert-demo.ts b/docs/src/registry/new-york/example/alert-demo.ts new file mode 100644 index 0000000..1b6da24 --- /dev/null +++ b/docs/src/registry/new-york/example/alert-demo.ts @@ -0,0 +1,35 @@ +import { + UbAlertDescriptionDirective, + UbAlertDirective, + UbAlertIconDirective, + UbAlertTitleDirective, +} from '@/registry/new-york/ui/alert.directive' +import { Component } from '@angular/core' +import { NgIconComponent, provideIcons } from '@ng-icons/core' + +import { lucideRocket } from '@ng-icons/lucide' + +@Component({ + standalone: true, + selector: 'alert-demo-new-york', + imports: [ + NgIconComponent, + UbAlertDirective, + UbAlertTitleDirective, + UbAlertDescriptionDirective, + UbAlertIconDirective, + ], + viewProviders: [provideIcons({ lucideRocket })], + template: ` +
    + +
    Heads up!
    +
    + You can add components and dependencies to your app using the cli. +
    +
    + `, +}) +export class AlertDemoNewYork { } + +export default AlertDemoNewYork diff --git a/docs/src/registry/new-york/example/alert-destructive.ts b/docs/src/registry/new-york/example/alert-destructive.ts new file mode 100644 index 0000000..8ccb602 --- /dev/null +++ b/docs/src/registry/new-york/example/alert-destructive.ts @@ -0,0 +1,35 @@ +import { + UbAlertDescriptionDirective, + UbAlertDirective, + UbAlertIconDirective, + UbAlertTitleDirective, +} from '@/registry/new-york/ui/alert.directive' +import { Component } from '@angular/core' +import { NgIconComponent, provideIcons } from '@ng-icons/core' + +import { lucideRocket } from '@ng-icons/lucide' + +@Component({ + standalone: true, + selector: 'alert-destructive-new-york', + imports: [ + NgIconComponent, + UbAlertDirective, + UbAlertTitleDirective, + UbAlertDescriptionDirective, + UbAlertIconDirective, + ], + viewProviders: [provideIcons({ lucideRocket })], + template: ` +
    + +
    Heads up!
    +
    + You can add components and dependencies to your app using the cli. +
    +
    + `, +}) +export class AlertDestructiveNewYork { } + +export default AlertDestructiveNewYork diff --git a/docs/src/registry/new-york/example/avatar-demo.ts b/docs/src/registry/new-york/example/avatar-demo.ts new file mode 100644 index 0000000..f953be2 --- /dev/null +++ b/docs/src/registry/new-york/example/avatar-demo.ts @@ -0,0 +1,18 @@ +import { UbAvatarDirective, UbAvatarFallbackDirective, UbAvatarImageDirective } from '@/registry/new-york/ui/avatar.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'avatar-demo-new-york', + imports: [UbAvatarDirective, UbAvatarImageDirective, UbAvatarFallbackDirective], + template: ` + + @adrianub + UB + + `, +}) +export class AvatarDemoNewYork { } + +export default AvatarDemoNewYork diff --git a/docs/src/registry/new-york/example/badge-demo.ts b/docs/src/registry/new-york/example/badge-demo.ts new file mode 100644 index 0000000..907ce37 --- /dev/null +++ b/docs/src/registry/new-york/example/badge-demo.ts @@ -0,0 +1,13 @@ +import { UbBadgeDirective } from '@/registry/new-york/ui/badge.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'badge-demo-new-york', + imports: [UbBadgeDirective], + template: `
    Badge
    `, +}) +export class BadgeDemoNewYork { } + +export default BadgeDemoNewYork diff --git a/docs/src/registry/new-york/example/badge-destructive.ts b/docs/src/registry/new-york/example/badge-destructive.ts new file mode 100644 index 0000000..ce86f67 --- /dev/null +++ b/docs/src/registry/new-york/example/badge-destructive.ts @@ -0,0 +1,13 @@ +import { UbBadgeDirective } from '@/registry/new-york/ui/badge.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'badge-destructive-new-york', + imports: [UbBadgeDirective], + template: `
    Badge
    `, +}) +export class BadgeDestructiveNewYork { } + +export default BadgeDestructiveNewYork diff --git a/docs/src/registry/new-york/example/badge-outline.ts b/docs/src/registry/new-york/example/badge-outline.ts new file mode 100644 index 0000000..0160a02 --- /dev/null +++ b/docs/src/registry/new-york/example/badge-outline.ts @@ -0,0 +1,13 @@ +import { UbBadgeDirective } from '@/registry/new-york/ui/badge.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'badge-outline-new-york', + imports: [UbBadgeDirective], + template: `
    Badge
    `, +}) +export class BadgeOutlineNewYork { } + +export default BadgeOutlineNewYork diff --git a/docs/src/registry/new-york/example/badge-secondary.ts b/docs/src/registry/new-york/example/badge-secondary.ts new file mode 100644 index 0000000..5827324 --- /dev/null +++ b/docs/src/registry/new-york/example/badge-secondary.ts @@ -0,0 +1,13 @@ +import { UbBadgeDirective } from '@/registry/new-york/ui/badge.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'badge-secondary-new-york', + imports: [UbBadgeDirective], + template: `
    Badge
    `, +}) +export class BadgeSecondaryNewYork { } + +export default BadgeSecondaryNewYork diff --git a/apps/www/src/registry/new-york/example/breadcrumb-demo.ts b/docs/src/registry/new-york/example/breadcrumb-demo.ts similarity index 63% rename from apps/www/src/registry/new-york/example/breadcrumb-demo.ts rename to docs/src/registry/new-york/example/breadcrumb-demo.ts index 73e6ad8..fa1417c 100644 --- a/apps/www/src/registry/new-york/example/breadcrumb-demo.ts +++ b/docs/src/registry/new-york/example/breadcrumb-demo.ts @@ -1,6 +1,19 @@ -import { Component } from "@angular/core"; - import { + UbBreadcrumbDirective, + UbBreadcrumbEllipsisComponent, + UbBreadcrumbItemDirective, + UbBreadcrumbLinkDirective, + UbBreadcrumbListDirective, + UbBreadcrumbPageDirective, + UbBreadcrumbSeparatorComponent, +} from '@/registry/new-york/ui/breadcrumb.directive' + +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'breadcrumb-demo-new-york', + imports: [ UbBreadcrumbDirective, UbBreadcrumbListDirective, UbBreadcrumbItemDirective, @@ -8,21 +21,8 @@ import { UbBreadcrumbSeparatorComponent, UbBreadcrumbEllipsisComponent, UbBreadcrumbPageDirective, -} from "@/registry/new-york/ui/breadcrumb.directive"; - -@Component({ - standalone: true, - selector: "breadcrumb-demo-new-york", - imports: [ - UbBreadcrumbDirective, - UbBreadcrumbListDirective, - UbBreadcrumbItemDirective, - UbBreadcrumbLinkDirective, - UbBreadcrumbSeparatorComponent, - UbBreadcrumbEllipsisComponent, - UbBreadcrumbPageDirective, - ], - template: ` + ], + template: `
    + + + + + + + + + + + + + @for (invoice of invoices; track $index) { + + + + + + + } + + + + + + + + +
    + A list of your recent invoices. +
    InvoiceStatusMethodAmount
    + {{ invoice.invoice }} + + {{ invoice.paymentStatus }} + + {{ invoice.paymentMethod }} + + {{ invoice.totalAmount }} +
    Total$2,500.00
    + `, +}) +export class TableDemoNewYork { + invoices = [ + { + invoice: 'INV001', + paymentStatus: 'Paid', + totalAmount: '$250.00', + paymentMethod: 'Credit Card', + }, + { + invoice: 'INV002', + paymentStatus: 'Pending', + totalAmount: '$150.00', + paymentMethod: 'PayPal', + }, + { + invoice: 'INV003', + paymentStatus: 'Unpaid', + totalAmount: '$350.00', + paymentMethod: 'Bank Transfer', + }, + { + invoice: 'INV004', + paymentStatus: 'Paid', + totalAmount: '$450.00', + paymentMethod: 'Credit Card', + }, + { + invoice: 'INV005', + paymentStatus: 'Paid', + totalAmount: '$550.00', + paymentMethod: 'PayPal', + }, + { + invoice: 'INV006', + paymentStatus: 'Pending', + totalAmount: '$200.00', + paymentMethod: 'Bank Transfer', + }, + { + invoice: 'INV007', + paymentStatus: 'Unpaid', + totalAmount: '$300.00', + paymentMethod: 'Credit Card', + }, + ] +} + +export default TableDemoNewYork diff --git a/apps/www/src/registry/new-york/example/tabs-demo.ts b/docs/src/registry/new-york/example/tabs-demo.ts similarity index 76% rename from apps/www/src/registry/new-york/example/tabs-demo.ts rename to docs/src/registry/new-york/example/tabs-demo.ts index 875c670..223b80b 100644 --- a/apps/www/src/registry/new-york/example/tabs-demo.ts +++ b/docs/src/registry/new-york/example/tabs-demo.ts @@ -1,33 +1,33 @@ -import { Component } from '@angular/core'; +import { UbButtonDirective } from '@/registry/new-york/ui/button.directive' -import { UbTabsContentDirective, UbTabsDirective, UbTabsListDirective, UbTabsTriggerDirective } from '@/registry/new-york/ui/tabs.directive'; -import { UbCardDirective, UbCardHeaderDirective, UbCardTitleDirective, UbCardDescriptionDirective, UbCardContentDirective, UbCardFooterDirective } from '@/registry/new-york/ui/card.directive'; -import { UbButtonDirective } from '@/registry/new-york/ui/button.directive'; -import { UbLabelDirective } from '@/registry/new-york/ui/label.directive'; -import { UbInputDirective } from '@/registry/new-york/ui/input.directive'; +import { UbCardContentDirective, UbCardDescriptionDirective, UbCardDirective, UbCardFooterDirective, UbCardHeaderDirective, UbCardTitleDirective } from '@/registry/new-york/ui/card.directive' +import { UbInputDirective } from '@/registry/new-york/ui/input.directive' +import { UbLabelDirective } from '@/registry/new-york/ui/label.directive' +import { UbTabsContentDirective, UbTabsDirective, UbTabsListDirective, UbTabsTriggerDirective } from '@/registry/new-york/ui/tabs.directive' +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: 'tabs-demo-new-york', - imports: [ - UbTabsDirective, - UbTabsListDirective, - UbTabsTriggerDirective, - UbTabsContentDirective, + standalone: true, + selector: 'tabs-demo-new-york', + imports: [ + UbTabsDirective, + UbTabsListDirective, + UbTabsTriggerDirective, + UbTabsContentDirective, - UbCardDirective, - UbCardHeaderDirective, - UbCardTitleDirective, - UbCardDescriptionDirective, - UbCardContentDirective, - UbCardFooterDirective, + UbCardDirective, + UbCardHeaderDirective, + UbCardTitleDirective, + UbCardDescriptionDirective, + UbCardContentDirective, + UbCardFooterDirective, - UbButtonDirective, + UbButtonDirective, - UbLabelDirective, - UbInputDirective - ], - template: ` + UbLabelDirective, + UbInputDirective, + ], + template: `
    @@ -82,8 +82,8 @@ import { UbInputDirective } from '@/registry/new-york/ui/input.directive';
- ` + `, }) export class TabsDemoNewYork { } -export default TabsDemoNewYork; +export default TabsDemoNewYork diff --git a/apps/www/src/registry/new-york/example/typography-blockquote.ts b/docs/src/registry/new-york/example/typography-blockquote.ts similarity index 60% rename from apps/www/src/registry/new-york/example/typography-blockquote.ts rename to docs/src/registry/new-york/example/typography-blockquote.ts index 406074d..d167ac1 100644 --- a/apps/www/src/registry/new-york/example/typography-blockquote.ts +++ b/docs/src/registry/new-york/example/typography-blockquote.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-blockquote-new-york", - template: ` + standalone: true, + selector: 'typography-blockquote-new-york', + template: `
"After all," he said, "everyone enjoys a good joke, so it's only fair that they should pay for the privilege." @@ -12,4 +12,4 @@ import { Component } from "@angular/core"; }) export class TypographyBlockquoteNewYork { } -export default TypographyBlockquoteNewYork; +export default TypographyBlockquoteNewYork diff --git a/apps/www/src/registry/new-york/example/typography-demo.ts b/docs/src/registry/new-york/example/typography-demo.ts similarity index 97% rename from apps/www/src/registry/new-york/example/typography-demo.ts rename to docs/src/registry/new-york/example/typography-demo.ts index c8c0d02..f438174 100644 --- a/apps/www/src/registry/new-york/example/typography-demo.ts +++ b/docs/src/registry/new-york/example/typography-demo.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-demo-new-york", - template: ` + standalone: true, + selector: 'typography-demo-new-york', + template: `

Taxing Laughter: The Joke Tax Chronicles

@@ -11,4 +11,4 @@ import { Component } from "@angular/core"; }) export class TypographyH1NewYork { } -export default TypographyH1NewYork; +export default TypographyH1NewYork diff --git a/apps/www/src/registry/new-york/example/typography-h2.ts b/docs/src/registry/new-york/example/typography-h2.ts similarity index 55% rename from apps/www/src/registry/new-york/example/typography-h2.ts rename to docs/src/registry/new-york/example/typography-h2.ts index 7cb1a0e..4c1f3d6 100644 --- a/apps/www/src/registry/new-york/example/typography-h2.ts +++ b/docs/src/registry/new-york/example/typography-h2.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-h2-new-york", - template: ` + standalone: true, + selector: 'typography-h2-new-york', + template: `

The People of the Kingdom

@@ -11,4 +11,4 @@ import { Component } from "@angular/core"; }) export class TypographyH2NewYork { } -export default TypographyH2NewYork; +export default TypographyH2NewYork diff --git a/docs/src/registry/new-york/example/typography-h3.ts b/docs/src/registry/new-york/example/typography-h3.ts new file mode 100644 index 0000000..9376c99 --- /dev/null +++ b/docs/src/registry/new-york/example/typography-h3.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'typography-h3-new-york', + template: ` +

+ The Joke Tax +

+ `, +}) +export class TypographyH3NewYork { } + +export default TypographyH3NewYork diff --git a/apps/www/src/registry/new-york/example/typography-h4.ts b/docs/src/registry/new-york/example/typography-h4.ts similarity index 52% rename from apps/www/src/registry/new-york/example/typography-h4.ts rename to docs/src/registry/new-york/example/typography-h4.ts index 08c8ab0..8414674 100644 --- a/apps/www/src/registry/new-york/example/typography-h4.ts +++ b/docs/src/registry/new-york/example/typography-h4.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-h4-new-york", - template: ` + standalone: true, + selector: 'typography-h4-new-york', + template: `

People stopped telling jokes

@@ -11,4 +11,4 @@ import { Component } from "@angular/core"; }) export class TypographyH4NewYork { } -export default TypographyH4NewYork; +export default TypographyH4NewYork diff --git a/apps/www/src/registry/new-york/example/typography-inline-code.ts b/docs/src/registry/new-york/example/typography-inline-code.ts similarity index 56% rename from apps/www/src/registry/new-york/example/typography-inline-code.ts rename to docs/src/registry/new-york/example/typography-inline-code.ts index 9f1d3df..a2b48d9 100644 --- a/apps/www/src/registry/new-york/example/typography-inline-code.ts +++ b/docs/src/registry/new-york/example/typography-inline-code.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-inline-code-new-york", - template: ` + standalone: true, + selector: 'typography-inline-code-new-york', + template: ` {{ "@" }}radix-ui/react-alert-dialog @@ -11,4 +11,4 @@ import { Component } from "@angular/core"; }) export class TypographyInlineCodeNewYork { } -export default TypographyInlineCodeNewYork; +export default TypographyInlineCodeNewYork diff --git a/docs/src/registry/new-york/example/typography-large.ts b/docs/src/registry/new-york/example/typography-large.ts new file mode 100644 index 0000000..c953de0 --- /dev/null +++ b/docs/src/registry/new-york/example/typography-large.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'typography-large-new-york', + template: ` +
Are you absolutely sure?
+ `, +}) +export class TypographyLargeNewYork { } + +export default TypographyLargeNewYork diff --git a/apps/www/src/registry/new-york/example/typography-lead.ts b/docs/src/registry/new-york/example/typography-lead.ts similarity index 57% rename from apps/www/src/registry/new-york/example/typography-lead.ts rename to docs/src/registry/new-york/example/typography-lead.ts index 9bde197..7af8844 100644 --- a/apps/www/src/registry/new-york/example/typography-lead.ts +++ b/docs/src/registry/new-york/example/typography-lead.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-lead-new-york", - template: ` + standalone: true, + selector: 'typography-lead-new-york', + template: `

A modal dialog that interrupts the user with important content and expects a response. @@ -12,4 +12,4 @@ import { Component } from "@angular/core"; }) export class TypographyLeadNewYork { } -export default TypographyLeadNewYork; +export default TypographyLeadNewYork diff --git a/apps/www/src/registry/new-york/example/typography-list.ts b/docs/src/registry/new-york/example/typography-list.ts similarity index 62% rename from apps/www/src/registry/new-york/example/typography-list.ts rename to docs/src/registry/new-york/example/typography-list.ts index c85d7b4..f5da00a 100644 --- a/apps/www/src/registry/new-york/example/typography-list.ts +++ b/docs/src/registry/new-york/example/typography-list.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-list-new-york", - template: ` + standalone: true, + selector: 'typography-list-new-york', + template: `

  • 1st level of puns: 5 gold coins
  • 2nd level of jokes: 10 gold coins
  • @@ -13,4 +13,4 @@ import { Component } from "@angular/core"; }) export class TypographyListNewYork { } -export default TypographyListNewYork; +export default TypographyListNewYork diff --git a/docs/src/registry/new-york/example/typography-muted.ts b/docs/src/registry/new-york/example/typography-muted.ts new file mode 100644 index 0000000..b427ccd --- /dev/null +++ b/docs/src/registry/new-york/example/typography-muted.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'typography-muted-new-york', + template: ` +

    Enter your email address.

    + `, +}) +export class TypographyMutedNewYork { } + +export default TypographyMutedNewYork diff --git a/apps/www/src/registry/new-york/example/typography-p.ts b/docs/src/registry/new-york/example/typography-p.ts similarity index 61% rename from apps/www/src/registry/new-york/example/typography-p.ts rename to docs/src/registry/new-york/example/typography-p.ts index dcbe161..edca529 100644 --- a/apps/www/src/registry/new-york/example/typography-p.ts +++ b/docs/src/registry/new-york/example/typography-p.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-p-new-york", - template: ` + standalone: true, + selector: 'typography-p-new-york', + template: `

    The king, seeing how much happier his subjects were, realized the error of his ways and repealed the joke tax. @@ -12,4 +12,4 @@ import { Component } from "@angular/core"; }) export class TypographyPNewYork { } -export default TypographyPNewYork; +export default TypographyPNewYork diff --git a/docs/src/registry/new-york/example/typography-small.ts b/docs/src/registry/new-york/example/typography-small.ts new file mode 100644 index 0000000..8246c35 --- /dev/null +++ b/docs/src/registry/new-york/example/typography-small.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core' + +@Component({ + standalone: true, + selector: 'typography-small-new-york', + template: ` + Email address + `, +}) +export class TypographySmallNewYork { } + +export default TypographySmallNewYork diff --git a/apps/www/src/registry/new-york/example/typography-table.ts b/docs/src/registry/new-york/example/typography-table.ts similarity index 92% rename from apps/www/src/registry/new-york/example/typography-table.ts rename to docs/src/registry/new-york/example/typography-table.ts index 27ca9f9..29b2c33 100644 --- a/apps/www/src/registry/new-york/example/typography-table.ts +++ b/docs/src/registry/new-york/example/typography-table.ts @@ -1,9 +1,9 @@ -import { Component } from "@angular/core"; +import { Component } from '@angular/core' @Component({ - standalone: true, - selector: "typography-table-new-york", - template: ` + standalone: true, + selector: 'typography-table-new-york', + template: `

    @@ -64,4 +64,4 @@ import { Component } from "@angular/core"; }) export class TypographyTableNewYork { } -export default TypographyTableNewYork; +export default TypographyTableNewYork diff --git a/docs/src/registry/new-york/ui/accordion.directive.ts b/docs/src/registry/new-york/ui/accordion.directive.ts new file mode 100644 index 0000000..9901e68 --- /dev/null +++ b/docs/src/registry/new-york/ui/accordion.directive.ts @@ -0,0 +1,83 @@ +import { cn } from '@/lib/utils' +import { Component, computed, Directive, input } from '@angular/core' + +import { NgIconComponent, provideIcons } from '@ng-icons/core' +import { lucideChevronDown } from '@ng-icons/lucide' + +import { + RdxAccordionContentDirective, + RdxAccordionHeaderDirective, + RdxAccordionItemDirective, + RdxAccordionRootDirective, + RdxAccordionTriggerDirective, +} from '@radix-ng/primitives/accordion' +import type { ClassValue } from 'clsx' + +@Directive({ + standalone: true, + selector: '[ubAccordion]', + hostDirectives: [RdxAccordionRootDirective], +}) +export class UbAccordionDirective { } + +@Directive({ + standalone: true, + selector: '[ubAccordionItem]', + hostDirectives: [ + { + directive: RdxAccordionItemDirective, + inputs: ['disabled', 'value'], + }, + ], + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAccordionItemDirective { + class = input() + computedClass = computed(() => { + return cn('border-b', this.class()) + }) +} + +@Component({ + standalone: true, + selector: '[ubAccordionTrigger], ub-accordion-trigger', + imports: [RdxAccordionHeaderDirective, RdxAccordionTriggerDirective, NgIconComponent], + viewProviders: [provideIcons({ lucideChevronDown })], + template: ` +

    + +

    + `, +}) +export class UbAccordionTriggerDirective { + class = input() + computedClass = computed(() => { + return cn('flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>ng-icon]:rotate-180', this.class()) + }) +} + +@Component({ + standalone: true, + selector: '[ubAccordionContent], ub-accordion-content', + hostDirectives: [RdxAccordionContentDirective], + host: { + class: + 'overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down', + }, + template: ` +
    + +
    + `, +}) +export class UbAccordionContentDirective { + class = input() + computedClass = computed(() => { + return cn('pb-4 pt-0', this.class()) + }) +} diff --git a/docs/src/registry/new-york/ui/alert.directive.ts b/docs/src/registry/new-york/ui/alert.directive.ts new file mode 100644 index 0000000..a214d80 --- /dev/null +++ b/docs/src/registry/new-york/ui/alert.directive.ts @@ -0,0 +1,77 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +import { cva, type VariantProps } from 'class-variance-authority' + +const alertVariants = cva( + 'relative w-full rounded-lg border px-4 py-3 text-sm [&>[ubAlertIcon]+div]:translate-y-[-3px] [&>[ubAlertIcon]]:absolute [&>[ubAlertIcon]]:left-4 [&>[ubAlertIcon]]:top-4 [&>[ubAlertIcon]]:text-foreground [&>[ubAlertIcon]~*]:pl-7', + { + variants: { + variant: { + default: 'bg-background text-foreground', + destructive: + 'border-destructive/50 text-destructive dark:border-destructive [&>[ubAlertIcon]]:text-destructive', + }, + }, + defaultVariants: { + variant: 'default', + }, + }, +) + +type AlertProps = VariantProps +type UbAlertVariant = NonNullable + +@Directive({ + selector: 'div[ubAlert]', + standalone: true, + host: { + 'role': 'alert', + '[class]': 'computedClass()', + }, +}) +export class UbAlertDirective { + readonly class = input() + readonly variant = input('default') + + protected computedClass = computed(() => + cn(alertVariants({ variant: this.variant(), class: this.class() })), + ) +} + +@Directive({ + standalone: true, + selector: '[ubAlertIcon]', +}) +export class UbAlertIconDirective {} + +@Directive({ + selector: 'h5[ubAlertTitle]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAlertTitleDirective { + readonly class = input() + + protected computedClass = computed(() => + cn('mb-1 font-medium leading-none tracking-tight', this.class()), + ) +} + +@Directive({ + selector: 'div[ubAlertDescription]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAlertDescriptionDirective { + readonly class = input() + + protected computedClass = computed(() => + cn('text-sm [&_p]:leading-relaxed', this.class()), + ) +} diff --git a/docs/src/registry/new-york/ui/avatar.directive.ts b/docs/src/registry/new-york/ui/avatar.directive.ts new file mode 100644 index 0000000..2555412 --- /dev/null +++ b/docs/src/registry/new-york/ui/avatar.directive.ts @@ -0,0 +1,52 @@ +import { cn } from '@/lib/utils' +import { computed, Directive, input } from '@angular/core' + +import { RdxAvatarFallbackDirective, RdxAvatarImageDirective, RdxAvatarRootDirective } from '@radix-ng/primitives/avatar' + +@Directive({ + standalone: true, + selector: 'span[ubAvatar]', + hostDirectives: [RdxAvatarRootDirective], + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAvatarDirective { + readonly class = input() + + readonly computedClass = computed(() => { + return cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', this.class()) + }) +} + +@Directive({ + standalone: true, + selector: 'img[ubAvatarImage]', + hostDirectives: [RdxAvatarImageDirective], + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAvatarImageDirective { + readonly class = input() + + readonly computedClass = computed(() => { + return cn('aspect-square h-full w-full', this.class()) + }) +} + +@Directive({ + standalone: true, + selector: 'span[ubAvatarFallback]', + hostDirectives: [RdxAvatarFallbackDirective], + host: { + '[class]': 'computedClass()', + }, +}) +export class UbAvatarFallbackDirective { + readonly class = input() + + readonly computedClass = computed(() => { + return cn('flex h-full w-full items-center justify-center rounded-full bg-muted', this.class()) + }) +} diff --git a/docs/src/registry/new-york/ui/badge.directive.ts b/docs/src/registry/new-york/ui/badge.directive.ts new file mode 100644 index 0000000..5148729 --- /dev/null +++ b/docs/src/registry/new-york/ui/badge.directive.ts @@ -0,0 +1,44 @@ +import { cn } from '@/lib/utils' +import { computed, Directive, input } from '@angular/core' + +import { cva, type VariantProps } from 'class-variance-authority' + +export const badgeVariants = cva( + 'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', + { + variants: { + variant: { + default: + 'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80', + secondary: + 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80', + destructive: + 'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80', + outline: 'text-foreground', + }, + }, + defaultVariants: { + variant: 'default', + }, + }, +) + +type BadgeProps = VariantProps + +export type UbBadgeVariant = NonNullable + +@Directive({ + selector: '[ubBadge]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbBadgeDirective { + readonly class = input() + readonly variant = input('default') + + protected computedClass = computed(() => + cn(badgeVariants({ variant: this.variant(), class: this.class() })), + ) +} diff --git a/docs/src/registry/new-york/ui/breadcrumb.directive.ts b/docs/src/registry/new-york/ui/breadcrumb.directive.ts new file mode 100644 index 0000000..2629ce0 --- /dev/null +++ b/docs/src/registry/new-york/ui/breadcrumb.directive.ts @@ -0,0 +1,129 @@ +import { cn } from '@/lib/utils' + +import { Component, computed, Directive, input } from '@angular/core' +import { NgIconComponent, provideIcons } from '@ng-icons/core' + +import { radixChevronRight, radixDotsHorizontal } from '@ng-icons/radix-icons' + +@Directive({ + selector: 'nav[ubBreadcrumb]', + standalone: true, + host: { + '[attr.aria-label]': '"breadcrumb"', + }, +}) +export class UbBreadcrumbDirective {} + +@Directive({ + selector: 'ol[ubBreadcrumbList]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbListDirective { + readonly class = input() + + protected computedClass = computed(() => + cn( + 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', + this.class(), + ), + ) +} + +@Directive({ + selector: 'li[ubBreadcrumbItem]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbItemDirective { + readonly class = input() + + protected computedClass = computed(() => + cn('inline-flex items-center gap-1.5', this.class()), + ) +} + +@Directive({ + selector: '[ubBreadcrumbLink], a[ubBreadcrumbLink]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbLinkDirective { + readonly class = input() + + protected computedClass = computed(() => + cn('transition-colors hover:text-foreground', this.class()), + ) +} + +@Directive({ + selector: 'span[ubBreadcrumbPage]', + standalone: true, + host: { + 'role': 'link', + '[attr.aria-disabled]': 'true', + '[attr.aria-current]': '"page"', + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbPageDirective { + readonly class = input() + + protected computedClass = computed(() => + cn('font-normal text-foreground', this.class()), + ) +} + +@Component({ + selector: 'li[ubBreadcrumbSeparator]', + standalone: true, + imports: [NgIconComponent], + viewProviders: [provideIcons({ radixChevronRight })], + template: ` + + @if (ref.children.length == 0) { + + } + `, + host: { + 'role': 'presentation', + '[attr.aria-hidden]': 'true', + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbSeparatorComponent { + readonly class = input() + + protected computedClass = computed(() => + cn('[&>svg]:size-3.5', this.class()), + ) +} + +@Component({ + selector: 'span[ubBreadcrumbEllipsis]', + standalone: true, + imports: [NgIconComponent], + viewProviders: [provideIcons({ radixDotsHorizontal })], + template: ` + + More + `, + host: { + 'role': 'presentation', + '[attr.aria-hidden]': 'true', + '[class]': 'computedClass()', + }, +}) +export class UbBreadcrumbEllipsisComponent { + readonly class = input() + + protected computedClass = computed(() => + cn('flex h-9 w-9 items-center justify-center', this.class()), + ) +} diff --git a/docs/src/registry/new-york/ui/button.directive.ts b/docs/src/registry/new-york/ui/button.directive.ts new file mode 100644 index 0000000..4c51fc8 --- /dev/null +++ b/docs/src/registry/new-york/ui/button.directive.ts @@ -0,0 +1,65 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +import { cva, type VariantProps } from 'class-variance-authority' + +export const buttonVariants = cva( + 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50', + { + variants: { + variant: { + default: + 'bg-primary text-primary-foreground shadow hover:bg-primary/90', + destructive: + 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90', + outline: + 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground', + secondary: + 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-9 px-4 py-2', + sm: 'h-8 rounded-md px-3 text-xs', + lg: 'h-10 rounded-md px-8', + icon: 'h-9 w-9', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +) + +type ButtonProps = VariantProps + +export type ButtonSize = NonNullable +export type ButtonVariant = NonNullable + +@Directive({ + selector: '[ubButton]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbButtonDirective { + readonly class = input() + + readonly variant = input('default') + + readonly size = input('default') + + protected computedClass = computed(() => + cn( + buttonVariants({ + variant: this.variant(), + size: this.size(), + class: this.class(), + }), + ), + ) +} diff --git a/docs/src/registry/new-york/ui/card.directive.ts b/docs/src/registry/new-york/ui/card.directive.ts new file mode 100644 index 0000000..9d25ba3 --- /dev/null +++ b/docs/src/registry/new-york/ui/card.directive.ts @@ -0,0 +1,85 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +@Directive({ + standalone: true, + selector: '[ubCard]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardDirective { + readonly class = input() + protected computedClass = computed(() => + cn('rounded-xl border bg-card text-card-foreground shadow', this.class()), + ) +} + +@Directive({ + standalone: true, + selector: '[ubCardHeader]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardHeaderDirective { + readonly class = input() + protected computedClass = computed(() => + cn('flex flex-col space-y-1.5 p-6', this.class()), + ) +} + +@Directive({ + standalone: true, + selector: '[ubCardTitle]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardTitleDirective { + readonly class = input() + protected computedClass = computed(() => + cn('font-semibold leading-none tracking-tight', this.class()), + ) +} + +@Directive({ + standalone: true, + selector: '[ubCardDescription]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardDescriptionDirective { + readonly class = input() + protected computedClass = computed(() => + cn('text-sm text-muted-foreground', this.class()), + ) +} + +@Directive({ + standalone: true, + selector: '[ubCardContent]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardContentDirective { + readonly class = input() + protected computedClass = computed(() => cn('p-6 pt-0', this.class())) +} + +@Directive({ + standalone: true, + selector: '[ubCardFooter]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbCardFooterDirective { + readonly class = input() + protected computedClass = computed(() => + cn('flex items-center p-6 pt-0', this.class()), + ) +} diff --git a/docs/src/registry/new-york/ui/input.directive.ts b/docs/src/registry/new-york/ui/input.directive.ts new file mode 100644 index 0000000..42b0341 --- /dev/null +++ b/docs/src/registry/new-york/ui/input.directive.ts @@ -0,0 +1,35 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +export type InputType = + | 'date' + | 'datetime-local' + | 'email' + | 'month' + | 'number' + | 'password' + | 'tel' + | 'file' + | 'search' + | 'text' + +@Directive({ + selector: '[ubInput]', + standalone: true, + host: { + '[class]': 'computedClass()', + '[type]': 'type()', + }, +}) +export class UbInputDirective { + readonly type = input.required() + readonly class = input() + + protected computedClass = computed(() => + cn( + 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50', + this.class(), + ), + ) +} diff --git a/docs/src/registry/new-york/ui/label.directive.ts b/docs/src/registry/new-york/ui/label.directive.ts new file mode 100644 index 0000000..d1ca397 --- /dev/null +++ b/docs/src/registry/new-york/ui/label.directive.ts @@ -0,0 +1,28 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' +import { RdxLabelDirective } from '@radix-ng/primitives/label' + +import { cva } from 'class-variance-authority' + +const labelVariants = cva( + 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70', +) + +@Directive({ + selector: '[ubLabel]', + standalone: true, + hostDirectives: [ + { + directive: RdxLabelDirective, + inputs: ['htmlFor'], + }, + ], + host: { + '[class]': 'computedClass()', + }, +}) +export class UbLabelDirective { + readonly class = input('') + protected computedClass = computed(() => cn(labelVariants(), this.class())) +} diff --git a/docs/src/registry/new-york/ui/separator.directive.ts b/docs/src/registry/new-york/ui/separator.directive.ts new file mode 100644 index 0000000..760b9f3 --- /dev/null +++ b/docs/src/registry/new-york/ui/separator.directive.ts @@ -0,0 +1,22 @@ +import { cn } from '@/lib/utils' +import { computed, Directive, input } from '@angular/core' + +@Directive({ + standalone: true, + selector: '[ubSeperator]', + host: { + '[class]': 'computedClass()', + }, +}) +export class UbSeparatorDirective { + readonly class = input() + readonly orientation = input<'horizontal' | 'vertical'>('horizontal') + + protected computedClass = computed(() => + cn( + 'shrink-0 bg-border', + this.orientation() === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]', + this.class(), + ), + ) +} diff --git a/docs/src/registry/new-york/ui/skeleton.directive.ts b/docs/src/registry/new-york/ui/skeleton.directive.ts new file mode 100644 index 0000000..0e20e69 --- /dev/null +++ b/docs/src/registry/new-york/ui/skeleton.directive.ts @@ -0,0 +1,17 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +@Directive({ + selector: '[ubSkeleton]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbSkeletonDirective { + readonly class = input() + protected computedClass = computed(() => + cn('animate-pulse rounded-md bg-primary/10', this.class()), + ) +} diff --git a/docs/src/registry/new-york/ui/switch.directive.ts b/docs/src/registry/new-york/ui/switch.directive.ts new file mode 100644 index 0000000..5f2ef59 --- /dev/null +++ b/docs/src/registry/new-york/ui/switch.directive.ts @@ -0,0 +1,29 @@ +import { cn } from '@/lib/utils' +import { Component, computed, input } from '@angular/core' + +import { RdxSwitchRootDirective, RdxSwitchThumbDirective } from '@radix-ng/primitives/switch' + +@Component({ + standalone: true, + selector: 'button[ubSwitch]', + imports: [RdxSwitchThumbDirective], + hostDirectives: [ + { + directive: RdxSwitchRootDirective, + inputs: ['id', 'required', 'checked', 'disabled'], + outputs: ['onCheckedChange'], + }, + ], + host: { + '[class]': 'computedClass()', + }, + template: ` + + `, +}) +export class SwitchDirective { + readonly class = input() + readonly computedClass = computed(() => { + return cn('peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input', this.class()) + }) +} diff --git a/docs/src/registry/new-york/ui/table.directive.ts b/docs/src/registry/new-york/ui/table.directive.ts new file mode 100644 index 0000000..82a25fa --- /dev/null +++ b/docs/src/registry/new-york/ui/table.directive.ts @@ -0,0 +1,122 @@ +import { cn } from '@/lib/utils' + +import { computed, Directive, input } from '@angular/core' + +@Directive({ + selector: 'table[ubTable]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableDirective { + readonly class = input('') + protected computedClass = computed(() => + cn('w-full caption-bottom text-sm', this.class()), + ) +} + +@Directive({ + selector: 'thead[ubTableHeader]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableHeaderDirective { + readonly class = input('') + protected computedClass = computed(() => cn('[&_tr]:border-b', this.class())) +} + +@Directive({ + selector: 'tbody[ubTableBody]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableBodyDirective { + readonly class = input('') + protected computedClass = computed(() => + cn('[&_tr:last-child]:border-0', this.class()), + ) +} + +@Directive({ + selector: 'tfoot[ubTableFooter]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableFooterDirective { + readonly class = input('') + protected computedClass = computed(() => + cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', this.class()), + ) +} + +@Directive({ + selector: 'tr[ubTableRow]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableRowDirective { + readonly class = input('') + protected computedClass = computed(() => + cn( + 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted', + this.class(), + ), + ) +} + +@Directive({ + selector: 'th[ubTableHead]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableHeadDirective { + readonly class = input('') + protected computedClass = computed(() => + cn( + 'h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]', + this.class(), + ), + ) +} + +@Directive({ + selector: 'td[ubTableCell]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableCellDirective { + readonly class = input('') + protected computedClass = computed(() => + cn( + 'p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]', + this.class(), + ), + ) +} + +@Directive({ + selector: 'caption[ubTableCaption]', + standalone: true, + host: { + '[class]': 'computedClass()', + }, +}) +export class UbTableCaptionDirective { + readonly class = input('') + protected computedClass = computed(() => + cn('mt-4 text-sm text-muted-foreground', this.class()), + ) +} diff --git a/apps/www/src/registry/new-york/ui/tabs.directive.ts b/docs/src/registry/new-york/ui/tabs.directive.ts similarity index 51% rename from apps/www/src/registry/new-york/ui/tabs.directive.ts rename to docs/src/registry/new-york/ui/tabs.directive.ts index 5bfbb6c..42a6954 100644 --- a/apps/www/src/registry/new-york/ui/tabs.directive.ts +++ b/docs/src/registry/new-york/ui/tabs.directive.ts @@ -1,86 +1,86 @@ -import { computed, Directive, Input, input } from "@angular/core"; +import { cn } from '@/lib/utils' + +import { computed, Directive, Input, input } from '@angular/core' import { RdxTabsContentDirective, RdxTabsListDirective, RdxTabsRootDirective, RdxTabsTriggerDirective, -} from "@radix-ng/primitives/tabs"; - -import { cn } from "@/lib/utils"; +} from '@radix-ng/primitives/tabs' @Directive({ - selector: "[ubTabs]", + selector: '[ubTabs]', standalone: true, hostDirectives: [ { directive: RdxTabsRootDirective, - inputs: ["defaultValue: ubDefaultValue"], + inputs: ['defaultValue: ubDefaultValue'], }, ], }) export class UbTabsDirective { - @Input() ubDefaultValue?: string; + @Input() ubDefaultValue?: string } @Directive({ - selector: "[ubTabsList]", + selector: '[ubTabsList]', standalone: true, hostDirectives: [RdxTabsListDirective], host: { - "[class]": "computedClass()", + '[class]': 'computedClass()', }, }) export class UbTabsListDirective { - readonly class = input(); + readonly class = input() protected computedClass = computed(() => cn( - "inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground", - this.class() - ) - ); + 'inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground', + this.class(), + ), + ) } @Directive({ - selector: "[ubTabsTrigger]", + selector: '[ubTabsTrigger]', standalone: true, hostDirectives: [ - { directive: RdxTabsTriggerDirective, inputs: ["value: value"] }, + { directive: RdxTabsTriggerDirective, inputs: ['value: value'] }, ], host: { - "[class]": "computedClass()", + '[class]': 'computedClass()', }, }) export class UbTabsTriggerDirective { - readonly value = input.required(); + readonly value = input.required() - readonly class = input(); + readonly class = input() protected computedClass = computed(() => cn( - "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow", - this.class() - ) - ); + 'inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow', + this.class(), + ), + ) } @Directive({ - selector: "[ubTabsContent]", + selector: '[ubTabsContent]', standalone: true, hostDirectives: [ - { directive: RdxTabsContentDirective, inputs: ["value: value"] }, + { directive: RdxTabsContentDirective, inputs: ['value: value'] }, ], host: { - "[class]": "computedClass()", + '[class]': 'computedClass()', }, }) export class UbTabsContentDirective { - readonly value = input.required(); + readonly value = input.required() - readonly class = input(); + readonly class = input() protected computedClass = computed(() => cn( - "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", - this.class() - ) - ); + 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', + this.class(), + ), + ) } diff --git a/docs/src/registry/registry.ts b/docs/src/registry/registry.ts new file mode 100644 index 0000000..dec4eb0 --- /dev/null +++ b/docs/src/registry/registry.ts @@ -0,0 +1,7 @@ +import { blocks } from './blocks' +import { charts } from './charts' +import { examples } from './examples' +import { ui } from './ui' +import type { Registry } from './schema' + +export const registry: Registry = [...ui, ...examples, ...blocks, ...charts] diff --git a/apps/www/src/registry/schema.ts b/docs/src/registry/schema.ts similarity index 64% rename from apps/www/src/registry/schema.ts rename to docs/src/registry/schema.ts index 1fbac91..5988988 100644 --- a/apps/www/src/registry/schema.ts +++ b/docs/src/registry/schema.ts @@ -1,4 +1,4 @@ -import { z } from "astro/zod"; +import { z } from 'astro/zod' export const blockChunkSchema = z.object({ name: z.string(), @@ -11,7 +11,7 @@ export const blockChunkSchema = z.object({ className: z.string().nullish(), }) .optional(), -}); +}) export const registryEntrySchema = z.object({ name: z.string(), @@ -22,26 +22,26 @@ export const registryEntrySchema = z.object({ files: z.array(z.string()), source: z.string().optional(), type: z.enum([ - "components:ui", - "components:component", - "components:example", - "components:block", - "components:chart", + 'components:ui', + 'components:component', + 'components:example', + 'components:block', + 'components:chart', ]), category: z.string().optional(), subcategory: z.string().optional(), chunks: z.array(blockChunkSchema).optional(), -}); +}) -export const registrySchema = z.array(registryEntrySchema); +export const registrySchema = z.array(registryEntrySchema) -export type RegistryEntry = z.infer; +export type RegistryEntry = z.infer -export type Registry = z.infer; +export type Registry = z.infer export const blockSchema = registryEntrySchema.extend({ - type: z.literal("components:block"), - style: z.enum(["default", "new-york"]), + type: z.literal('components:block'), + style: z.enum(['default', 'new-york']), component: z.any(), container: z .object({ @@ -51,8 +51,8 @@ export const blockSchema = registryEntrySchema.extend({ .optional(), code: z.string(), highlightedCode: z.string(), -}); +}) -export type Block = z.infer; +export type Block = z.infer -export type BlockChunk = z.infer; +export type BlockChunk = z.infer diff --git a/docs/src/registry/styles.ts b/docs/src/registry/styles.ts new file mode 100644 index 0000000..4387500 --- /dev/null +++ b/docs/src/registry/styles.ts @@ -0,0 +1,12 @@ +export const styles = [ + { + name: 'default', + label: 'Default', + }, + { + name: 'new-york', + label: 'New York', + }, +] as const + +export type Style = (typeof styles)[number] diff --git a/docs/src/registry/themes.ts b/docs/src/registry/themes.ts new file mode 100644 index 0000000..43c920e --- /dev/null +++ b/docs/src/registry/themes.ts @@ -0,0 +1,756 @@ +export const themes = [ + { + name: 'zinc', + label: 'Zinc', + activeColor: { + light: '240 5.9% 10%', + dark: '240 5.2% 33.9%', + }, + cssVars: { + light: { + '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 84.2% 60.2%', + 'destructive-foreground': '0 0% 98%', + 'border': '240 5.9% 90%', + 'input': '240 5.9% 90%', + 'ring': '240 5.9% 10%', + '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%', + }, + 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 0% 98%', + '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%', + }, + }, + }, + { + name: 'slate', + label: 'Slate', + activeColor: { + light: '215.4 16.3% 46.9%', + dark: '215.3 19.3% 34.5%', + }, + cssVars: { + light: { + 'background': '0 0% 100%', + 'foreground': '222.2 84% 4.9%', + 'card': '0 0% 100%', + 'card-foreground': '222.2 84% 4.9%', + 'popover': '0 0% 100%', + 'popover-foreground': '222.2 84% 4.9%', + 'primary': '222.2 47.4% 11.2%', + 'primary-foreground': '210 40% 98%', + 'secondary': '210 40% 96.1%', + 'secondary-foreground': '222.2 47.4% 11.2%', + 'muted': '210 40% 96.1%', + 'muted-foreground': '215.4 16.3% 46.9%', + 'accent': '210 40% 96.1%', + 'accent-foreground': '222.2 47.4% 11.2%', + 'destructive': '0 84.2% 60.2%', + 'destructive-foreground': '210 40% 98%', + 'border': '214.3 31.8% 91.4%', + 'input': '214.3 31.8% 91.4%', + 'ring': '222.2 84% 4.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%', + }, + dark: { + 'background': '222.2 84% 4.9%', + 'foreground': '210 40% 98%', + 'card': '222.2 84% 4.9%', + 'card-foreground': '210 40% 98%', + 'popover': '222.2 84% 4.9%', + 'popover-foreground': '210 40% 98%', + 'primary': '210 40% 98%', + 'primary-foreground': '222.2 47.4% 11.2%', + 'secondary': '217.2 32.6% 17.5%', + 'secondary-foreground': '210 40% 98%', + 'muted': '217.2 32.6% 17.5%', + 'muted-foreground': '215 20.2% 65.1%', + 'accent': '217.2 32.6% 17.5%', + 'accent-foreground': '210 40% 98%', + 'destructive': '0 62.8% 30.6%', + 'destructive-foreground': '210 40% 98%', + 'border': '217.2 32.6% 17.5%', + 'input': '217.2 32.6% 17.5%', + 'ring': '212.7 26.8% 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%', + }, + }, + }, + { + name: 'stone', + label: 'Stone', + activeColor: { + light: '25 5.3% 44.7%', + dark: '33.3 5.5% 32.4%', + }, + cssVars: { + light: { + 'background': '0 0% 100%', + 'foreground': '20 14.3% 4.1%', + 'card': '0 0% 100%', + 'card-foreground': '20 14.3% 4.1%', + 'popover': '0 0% 100%', + 'popover-foreground': '20 14.3% 4.1%', + 'primary': '24 9.8% 10%', + 'primary-foreground': '60 9.1% 97.8%', + 'secondary': '60 4.8% 95.9%', + 'secondary-foreground': '24 9.8% 10%', + 'muted': '60 4.8% 95.9%', + 'muted-foreground': '25 5.3% 44.7%', + 'accent': '60 4.8% 95.9%', + 'accent-foreground': '24 9.8% 10%', + 'destructive': '0 84.2% 60.2%', + 'destructive-foreground': '60 9.1% 97.8%', + 'border': '20 5.9% 90%', + 'input': '20 5.9% 90%', + 'ring': '20 14.3% 4.1%', + 'radius': '0.95rem', + '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%', + }, + dark: { + 'background': '20 14.3% 4.1%', + 'foreground': '60 9.1% 97.8%', + 'card': '20 14.3% 4.1%', + 'card-foreground': '60 9.1% 97.8%', + 'popover': '20 14.3% 4.1%', + 'popover-foreground': '60 9.1% 97.8%', + 'primary': '60 9.1% 97.8%', + 'primary-foreground': '24 9.8% 10%', + 'secondary': '12 6.5% 15.1%', + 'secondary-foreground': '60 9.1% 97.8%', + 'muted': '12 6.5% 15.1%', + 'muted-foreground': '24 5.4% 63.9%', + 'accent': '12 6.5% 15.1%', + 'accent-foreground': '60 9.1% 97.8%', + 'destructive': '0 62.8% 30.6%', + 'destructive-foreground': '60 9.1% 97.8%', + 'border': '12 6.5% 15.1%', + 'input': '12 6.5% 15.1%', + 'ring': '24 5.7% 82.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%', + }, + }, + }, + { + name: 'gray', + label: 'Gray', + activeColor: { + light: '220 8.9% 46.1%', + dark: '215 13.8% 34.1%', + }, + cssVars: { + light: { + 'background': '0 0% 100%', + 'foreground': '224 71.4% 4.1%', + 'card': '0 0% 100%', + 'card-foreground': '224 71.4% 4.1%', + 'popover': '0 0% 100%', + 'popover-foreground': '224 71.4% 4.1%', + 'primary': '220.9 39.3% 11%', + 'primary-foreground': '210 20% 98%', + 'secondary': '220 14.3% 95.9%', + 'secondary-foreground': '220.9 39.3% 11%', + 'muted': '220 14.3% 95.9%', + 'muted-foreground': '220 8.9% 46.1%', + 'accent': '220 14.3% 95.9%', + 'accent-foreground': '220.9 39.3% 11%', + 'destructive': '0 84.2% 60.2%', + 'destructive-foreground': '210 20% 98%', + 'border': '220 13% 91%', + 'input': '220 13% 91%', + 'ring': '224 71.4% 4.1%', + 'radius': '0.35rem', + '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%', + }, + dark: { + 'background': '224 71.4% 4.1%', + 'foreground': '210 20% 98%', + 'card': '224 71.4% 4.1%', + 'card-foreground': '210 20% 98%', + 'popover': '224 71.4% 4.1%', + 'popover-foreground': '210 20% 98%', + 'primary': '210 20% 98%', + 'primary-foreground': '220.9 39.3% 11%', + 'secondary': '215 27.9% 16.9%', + 'secondary-foreground': '210 20% 98%', + 'muted': '215 27.9% 16.9%', + 'muted-foreground': '217.9 10.6% 64.9%', + 'accent': '215 27.9% 16.9%', + 'accent-foreground': '210 20% 98%', + 'destructive': '0 62.8% 30.6%', + 'destructive-foreground': '210 20% 98%', + 'border': '215 27.9% 16.9%', + 'input': '215 27.9% 16.9%', + 'ring': '216 12.2% 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%', + }, + }, + }, + { + name: 'neutral', + label: 'Neutral', + activeColor: { + light: '0 0% 45.1%', + dark: '0 0% 32.2%', + }, + cssVars: { + light: { + 'background': '0 0% 100%', + 'foreground': '0 0% 3.9%', + 'card': '0 0% 100%', + 'card-foreground': '0 0% 3.9%', + 'popover': '0 0% 100%', + 'popover-foreground': '0 0% 3.9%', + 'primary': '0 0% 9%', + 'primary-foreground': '0 0% 98%', + 'secondary': '0 0% 96.1%', + 'secondary-foreground': '0 0% 9%', + 'muted': '0 0% 96.1%', + 'muted-foreground': '0 0% 45.1%', + 'accent': '0 0% 96.1%', + 'accent-foreground': '0 0% 9%', + 'destructive': '0 84.2% 60.2%', + 'destructive-foreground': '0 0% 98%', + 'border': '0 0% 89.8%', + 'input': '0 0% 89.8%', + 'ring': '0 0% 3.9%', + '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%', + }, + dark: { + 'background': '0 0% 3.9%', + 'foreground': '0 0% 98%', + 'card': '0 0% 3.9%', + 'card-foreground': '0 0% 98%', + 'popover': '0 0% 3.9%', + 'popover-foreground': '0 0% 98%', + 'primary': '0 0% 98%', + 'primary-foreground': '0 0% 9%', + 'secondary': '0 0% 14.9%', + 'secondary-foreground': '0 0% 98%', + 'muted': '0 0% 14.9%', + 'muted-foreground': '0 0% 63.9%', + 'accent': '0 0% 14.9%', + 'accent-foreground': '0 0% 98%', + 'destructive': '0 62.8% 30.6%', + 'destructive-foreground': '0 0% 98%', + 'border': '0 0% 14.9%', + 'input': '0 0% 14.9%', + 'ring': '0 0% 83.1%', + '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%', + }, + }, + }, + { + name: 'red', + label: 'Red', + activeColor: { + light: '0 72.2% 50.6%', + dark: '0 72.2% 50.6%', + }, + cssVars: { + light: { + 'background': '0 0% 100%', + 'foreground': '0 0% 3.9%', + 'card': '0 0% 100%', + 'card-foreground': '0 0% 3.9%', + 'popover': '0 0% 100%', + 'popover-foreground': '0 0% 3.9%', + 'primary': '0 72.2% 50.6%', + 'primary-foreground': '0 85.7% 97.3%', + 'secondary': '0 0% 96.1%', + 'secondary-foreground': '0 0% 9%', + 'muted': '0 0% 96.1%', + 'muted-foreground': '0 0% 45.1%', + 'accent': '0 0% 96.1%', + 'accent-foreground': '0 0% 9%', + 'destructive': '0 84.2% 60.2%', + 'destructive-foreground': '0 0% 98%', + 'border': '0 0% 89.8%', + 'input': '0 0% 89.8%', + 'ring': '0 72.2% 50.6%', + 'radius': '0.4rem', + '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%', + }, + dark: { + 'background': '0 0% 3.9%', + 'foreground': '0 0% 98%', + 'card': '0 0% 3.9%', + 'card-foreground': '0 0% 98%', + 'popover': '0 0% 3.9%', + 'popover-foreground': '0 0% 98%', + 'primary': '0 72.2% 50.6%', + 'primary-foreground': '0 85.7% 97.3%', + 'secondary': '0 0% 14.9%', + 'secondary-foreground': '0 0% 98%', + 'muted': '0 0% 14.9%', + 'muted-foreground': '0 0% 63.9%', + 'accent': '0 0% 14.9%', + 'accent-foreground': '0 0% 98%', + 'destructive': '0 62.8% 30.6%', + 'destructive-foreground': '0 0% 98%', + 'border': '0 0% 14.9%', + 'input': '0 0% 14.9%', + 'ring': '0 72.2% 50.6%', + '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%', + }, + }, + }, + { + name: 'rose', + label: 'Rose', + activeColor: { + light: '346.8 77.2% 49.8%', + dark: '346.8 77.2% 49.8%', + }, + cssVars: { + light: { + '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': '346.8 77.2% 49.8%', + 'primary-foreground': '355.7 100% 97.3%', + '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 84.2% 60.2%', + 'destructive-foreground': '0 0% 98%', + 'border': '240 5.9% 90%', + 'input': '240 5.9% 90%', + 'ring': '346.8 77.2% 49.8%', + '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%', + }, + dark: { + 'background': '20 14.3% 4.1%', + 'foreground': '0 0% 95%', + 'popover': '0 0% 9%', + 'popover-foreground': '0 0% 95%', + 'card': '24 9.8% 10%', + 'card-foreground': '0 0% 95%', + 'primary': '346.8 77.2% 49.8%', + 'primary-foreground': '355.7 100% 97.3%', + 'secondary': '240 3.7% 15.9%', + 'secondary-foreground': '0 0% 98%', + 'muted': '0 0% 15%', + 'muted-foreground': '240 5% 64.9%', + 'accent': '12 6.5% 15.1%', + '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': '346.8 77.2% 49.8%', + '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%', + }, + }, + }, + { + name: 'orange', + label: 'Orange', + activeColor: { + light: '24.6 95% 53.1%', + dark: '20.5 90.2% 48.2%', + }, + cssVars: { + light: { + 'background': '0 0% 100%', + 'foreground': '20 14.3% 4.1%', + 'card': '0 0% 100%', + 'card-foreground': '20 14.3% 4.1%', + 'popover': '0 0% 100%', + 'popover-foreground': '20 14.3% 4.1%', + 'primary': '24.6 95% 53.1%', + 'primary-foreground': '60 9.1% 97.8%', + 'secondary': '60 4.8% 95.9%', + 'secondary-foreground': '24 9.8% 10%', + 'muted': '60 4.8% 95.9%', + 'muted-foreground': '25 5.3% 44.7%', + 'accent': '60 4.8% 95.9%', + 'accent-foreground': '24 9.8% 10%', + 'destructive': '0 84.2% 60.2%', + 'destructive-foreground': '60 9.1% 97.8%', + 'border': '20 5.9% 90%', + 'input': '20 5.9% 90%', + 'ring': '24.6 95% 53.1%', + 'radius': '0.95rem', + '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%', + }, + dark: { + 'background': '20 14.3% 4.1%', + 'foreground': '60 9.1% 97.8%', + 'card': '20 14.3% 4.1%', + 'card-foreground': '60 9.1% 97.8%', + 'popover': '20 14.3% 4.1%', + 'popover-foreground': '60 9.1% 97.8%', + 'primary': '20.5 90.2% 48.2%', + 'primary-foreground': '60 9.1% 97.8%', + 'secondary': '12 6.5% 15.1%', + 'secondary-foreground': '60 9.1% 97.8%', + 'muted': '12 6.5% 15.1%', + 'muted-foreground': '24 5.4% 63.9%', + 'accent': '12 6.5% 15.1%', + 'accent-foreground': '60 9.1% 97.8%', + 'destructive': '0 72.2% 50.6%', + 'destructive-foreground': '60 9.1% 97.8%', + 'border': '12 6.5% 15.1%', + 'input': '12 6.5% 15.1%', + 'ring': '20.5 90.2% 48.2%', + '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%', + }, + }, + }, + { + name: 'green', + label: 'Green', + activeColor: { + light: '142.1 76.2% 36.3%', + dark: '142.1 70.6% 45.3%', + }, + cssVars: { + light: { + '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': '142.1 76.2% 36.3%', + 'primary-foreground': '355.7 100% 97.3%', + '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 84.2% 60.2%', + 'destructive-foreground': '0 0% 98%', + 'border': '240 5.9% 90%', + 'input': '240 5.9% 90%', + 'ring': '142.1 76.2% 36.3%', + '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%', + }, + dark: { + 'background': '20 14.3% 4.1%', + 'foreground': '0 0% 95%', + 'popover': '0 0% 9%', + 'popover-foreground': '0 0% 95%', + 'card': '24 9.8% 10%', + 'card-foreground': '0 0% 95%', + 'primary': '142.1 70.6% 45.3%', + 'primary-foreground': '144.9 80.4% 10%', + 'secondary': '240 3.7% 15.9%', + 'secondary-foreground': '0 0% 98%', + 'muted': '0 0% 15%', + 'muted-foreground': '240 5% 64.9%', + 'accent': '12 6.5% 15.1%', + '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': '142.4 71.8% 29.2%', + '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%', + }, + }, + }, + { + name: 'blue', + label: 'Blue', + activeColor: { + light: '221.2 83.2% 53.3%', + dark: '217.2 91.2% 59.8%', + }, + cssVars: { + light: { + 'background': '0 0% 100%', + 'foreground': '222.2 84% 4.9%', + 'card': '0 0% 100%', + 'card-foreground': '222.2 84% 4.9%', + 'popover': '0 0% 100%', + 'popover-foreground': '222.2 84% 4.9%', + 'primary': '221.2 83.2% 53.3%', + 'primary-foreground': '210 40% 98%', + 'secondary': '210 40% 96.1%', + 'secondary-foreground': '222.2 47.4% 11.2%', + 'muted': '210 40% 96.1%', + 'muted-foreground': '215.4 16.3% 46.9%', + 'accent': '210 40% 96.1%', + 'accent-foreground': '222.2 47.4% 11.2%', + 'destructive': '0 84.2% 60.2%', + 'destructive-foreground': '210 40% 98%', + 'border': '214.3 31.8% 91.4%', + 'input': '214.3 31.8% 91.4%', + 'ring': '221.2 83.2% 53.3%', + '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%', + }, + dark: { + 'background': '222.2 84% 4.9%', + 'foreground': '210 40% 98%', + 'card': '222.2 84% 4.9%', + 'card-foreground': '210 40% 98%', + 'popover': '222.2 84% 4.9%', + 'popover-foreground': '210 40% 98%', + 'primary': '217.2 91.2% 59.8%', + 'primary-foreground': '222.2 47.4% 11.2%', + 'secondary': '217.2 32.6% 17.5%', + 'secondary-foreground': '210 40% 98%', + 'muted': '217.2 32.6% 17.5%', + 'muted-foreground': '215 20.2% 65.1%', + 'accent': '217.2 32.6% 17.5%', + 'accent-foreground': '210 40% 98%', + 'destructive': '0 62.8% 30.6%', + 'destructive-foreground': '210 40% 98%', + 'border': '217.2 32.6% 17.5%', + 'input': '217.2 32.6% 17.5%', + 'ring': '224.3 76.3% 48%', + '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%', + }, + }, + }, + { + name: 'yellow', + label: 'Yellow', + activeColor: { + light: '47.9 95.8% 53.1%', + dark: '47.9 95.8% 53.1%', + }, + cssVars: { + light: { + 'background': '0 0% 100%', + 'foreground': '20 14.3% 4.1%', + 'card': '0 0% 100%', + 'card-foreground': '20 14.3% 4.1%', + 'popover': '0 0% 100%', + 'popover-foreground': '20 14.3% 4.1%', + 'primary': '47.9 95.8% 53.1%', + 'primary-foreground': '26 83.3% 14.1%', + 'secondary': '60 4.8% 95.9%', + 'secondary-foreground': '24 9.8% 10%', + 'muted': '60 4.8% 95.9%', + 'muted-foreground': '25 5.3% 44.7%', + 'accent': '60 4.8% 95.9%', + 'accent-foreground': '24 9.8% 10%', + 'destructive': '0 84.2% 60.2%', + 'destructive-foreground': '60 9.1% 97.8%', + 'border': '20 5.9% 90%', + 'input': '20 5.9% 90%', + 'ring': '20 14.3% 4.1%', + 'radius': '0.95rem', + '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%', + }, + dark: { + 'background': '20 14.3% 4.1%', + 'foreground': '60 9.1% 97.8%', + 'card': '20 14.3% 4.1%', + 'card-foreground': '60 9.1% 97.8%', + 'popover': '20 14.3% 4.1%', + 'popover-foreground': '60 9.1% 97.8%', + 'primary': '47.9 95.8% 53.1%', + 'primary-foreground': '26 83.3% 14.1%', + 'secondary': '12 6.5% 15.1%', + 'secondary-foreground': '60 9.1% 97.8%', + 'muted': '12 6.5% 15.1%', + 'muted-foreground': '24 5.4% 63.9%', + 'accent': '12 6.5% 15.1%', + 'accent-foreground': '60 9.1% 97.8%', + 'destructive': '0 62.8% 30.6%', + 'destructive-foreground': '60 9.1% 97.8%', + 'border': '12 6.5% 15.1%', + 'input': '12 6.5% 15.1%', + 'ring': '35.5 91.7% 32.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%', + }, + }, + }, + { + name: 'violet', + label: 'Violet', + activeColor: { + light: '262.1 83.3% 57.8%', + dark: '263.4 70% 50.4%', + }, + cssVars: { + light: { + 'background': '0 0% 100%', + 'foreground': '224 71.4% 4.1%', + 'card': '0 0% 100%', + 'card-foreground': '224 71.4% 4.1%', + 'popover': '0 0% 100%', + 'popover-foreground': '224 71.4% 4.1%', + 'primary': '262.1 83.3% 57.8%', + 'primary-foreground': '210 20% 98%', + 'secondary': '220 14.3% 95.9%', + 'secondary-foreground': '220.9 39.3% 11%', + 'muted': '220 14.3% 95.9%', + 'muted-foreground': '220 8.9% 46.1%', + 'accent': '220 14.3% 95.9%', + 'accent-foreground': '220.9 39.3% 11%', + 'destructive': '0 84.2% 60.2%', + 'destructive-foreground': '210 20% 98%', + 'border': '220 13% 91%', + 'input': '220 13% 91%', + 'ring': '262.1 83.3% 57.8%', + '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%', + }, + dark: { + 'background': '224 71.4% 4.1%', + 'foreground': '210 20% 98%', + 'card': '224 71.4% 4.1%', + 'card-foreground': '210 20% 98%', + 'popover': '224 71.4% 4.1%', + 'popover-foreground': '210 20% 98%', + 'primary': '263.4 70% 50.4%', + 'primary-foreground': '210 20% 98%', + 'secondary': '215 27.9% 16.9%', + 'secondary-foreground': '210 20% 98%', + 'muted': '215 27.9% 16.9%', + 'muted-foreground': '217.9 10.6% 64.9%', + 'accent': '215 27.9% 16.9%', + 'accent-foreground': '210 20% 98%', + 'destructive': '0 62.8% 30.6%', + 'destructive-foreground': '210 20% 98%', + 'border': '215 27.9% 16.9%', + 'input': '215 27.9% 16.9%', + 'ring': '263.4 70% 50.4%', + '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%', + }, + }, + }, +] as const + +export type Theme = (typeof themes)[number] diff --git a/docs/src/registry/ui.ts b/docs/src/registry/ui.ts new file mode 100644 index 0000000..7097100 --- /dev/null +++ b/docs/src/registry/ui.ts @@ -0,0 +1,80 @@ +import type { Registry } from './schema' + +export const ui: Registry = [ + { + name: 'accordion', + type: 'components:ui', + dependencies: ['@ng-icons/core', '@ng-icons/lucide', '@radix-ng/primitives'], + files: ['ui/accordion.directive.ts'], + }, + { + name: 'alert', + type: 'components:ui', + files: ['ui/alert.directive.ts'], + }, + { + name: 'avatar', + type: 'components:ui', + dependencies: ['@radix-ng/primitives'], + files: ['ui/avatar.directive.ts'], + }, + { + name: 'badge', + type: 'components:ui', + files: ['ui/badge.directive.ts'], + }, + { + name: 'breadcrumb', + type: 'components:ui', + files: ['ui/breadcrumb.directive.ts'], + dependencies: ['@ng-icons/core', '@ng-icons/radix-icons'], + }, + { + name: 'button', + type: 'components:ui', + files: ['ui/button.directive.ts'], + }, + { + name: 'card', + type: 'components:ui', + files: ['ui/card.directive.ts'], + }, + { + name: 'input', + type: 'components:ui', + files: ['ui/input.directive.ts'], + }, + { + name: 'label', + type: 'components:ui', + dependencies: ['@radix-ng/primitives'], + files: ['ui/label.directive.ts'], + }, + { + name: 'separator', + type: 'components:ui', + files: ['ui/separator.directive.ts'], + }, + { + name: 'skeleton', + type: 'components:ui', + files: ['ui/skeleton.directive.ts'], + }, + { + name: 'switch', + type: 'components:ui', + dependencies: ['@radix-ng/primitives'], + files: ['ui/switch.directive.ts'], + }, + { + name: 'table', + type: 'components:ui', + files: ['ui/table.directive.ts'], + }, + { + name: 'tabs', + type: 'components:ui', + dependencies: ['@angular/cdk', '@radix-ng/primitives'], + files: ['ui/tabs.directive.ts'], + }, +] diff --git a/docs/src/schemas/badge.ts b/docs/src/schemas/badge.ts new file mode 100644 index 0000000..98de49d --- /dev/null +++ b/docs/src/schemas/badge.ts @@ -0,0 +1,33 @@ +import { z } from 'astro/zod' + +function badgeSchema() { + 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() { + 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/apps/www/src/schemas/prevNextLink.ts b/docs/src/schemas/prevNextLink.ts similarity index 80% rename from apps/www/src/schemas/prevNextLink.ts rename to docs/src/schemas/prevNextLink.ts index 4d4aa39..6cc4f44 100644 --- a/apps/www/src/schemas/prevNextLink.ts +++ b/docs/src/schemas/prevNextLink.ts @@ -1,7 +1,7 @@ -import { z } from "astro/zod"; +import { z } from 'astro/zod' -export const PrevNextLinkConfigSchema = () => - z +export function PrevNextLinkConfigSchema() { + return z .union([ z.boolean(), z.string(), @@ -14,11 +14,12 @@ export const PrevNextLinkConfigSchema = () => }) .strict(), ]) - .optional(); + .optional() +} export type PrevNextLinkUserConfig = z.input< ReturnType ->; +> export type PrevNextLinkConfig = z.output< ReturnType ->; +> diff --git a/apps/www/src/schemas/sidebar.ts b/docs/src/schemas/sidebar.ts similarity index 83% rename from apps/www/src/schemas/sidebar.ts rename to docs/src/schemas/sidebar.ts index 5c184e3..69178d6 100644 --- a/apps/www/src/schemas/sidebar.ts +++ b/docs/src/schemas/sidebar.ts @@ -1,8 +1,8 @@ -import type { AstroBuiltinAttributes } from "astro"; -import type { HTMLAttributes } from "astro/types"; -import { z } from "astro/zod"; -import { BadgeConfigSchema } from "./badge"; -import { stripLeadingAndTrailingSlashes } from "../utils/path"; +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. */ @@ -11,33 +11,34 @@ const SidebarBaseSchema = z.object({ 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()]) + z.union([z.string(), z.number(), z.boolean(), z.undefined()]), ) as z.Schema< - Omit, keyof AstroBuiltinAttributes | "children"> ->; -export type LinkHTMLAttributes = z.infer; + Omit, keyof AstroBuiltinAttributes | 'children'> +> +export type LinkHTMLAttributes = z.infer -export const SidebarLinkItemHTMLAttributesSchema = () => - linkHTMLAttributesSchema.default({}); +export function SidebarLinkItemHTMLAttributesSchema() { + 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; +}).strict() +export type SidebarLinkItem = z.infer const AutoSidebarGroupSchema = SidebarGroupSchema.extend({ /** Enable autogenerating a sidebar category from a specific docs directory. */ @@ -53,8 +54,8 @@ const AutoSidebarGroupSchema = SidebarGroupSchema.extend({ /** How many directories deep to include from this directory in the sidebar. Default: `Infinity`. */ // depth: z.number().optional(), }), -}).strict(); -export type AutoSidebarGroup = z.infer; +}).strict() +export type AutoSidebarGroup = z.infer type ManualSidebarGroupInput = z.input & { /** Array of links and subcategories to display in this category. */ @@ -64,8 +65,8 @@ type ManualSidebarGroupInput = z.input & { | z.input | z.input | ManualSidebarGroupInput - >; -}; + > +} type ManualSidebarGroupOutput = z.output & { /** Array of links and subcategories to display in this category. */ @@ -75,8 +76,8 @@ type ManualSidebarGroupOutput = z.output & { | z.output | z.output | ManualSidebarGroupOutput - >; -}; + > +} const ManualSidebarGroupSchema: z.ZodType< ManualSidebarGroupOutput, @@ -93,9 +94,9 @@ const ManualSidebarGroupSchema: z.ZodType< InternalSidebarLinkItemSchema, InternalSidebarLinkItemShorthandSchema, ]) - .array() + .array(), ), -}).strict(); +}).strict() const InternalSidebarLinkItemSchema = SidebarBaseSchema.partial({ label: true, @@ -104,13 +105,13 @@ const InternalSidebarLinkItemSchema = SidebarBaseSchema.partial({ slug: z.string(), /** HTML attributes to add to the link item. */ attrs: SidebarLinkItemHTMLAttributesSchema(), -}); +}) const InternalSidebarLinkItemShorthandSchema = z .string() - .transform((slug) => InternalSidebarLinkItemSchema.parse({ slug })); + .transform(slug => InternalSidebarLinkItemSchema.parse({ slug })) export type InternalSidebarLinkItem = z.output< typeof InternalSidebarLinkItemSchema ->; +> export const SidebarItemSchema = z.union([ SidebarLinkItemSchema, @@ -118,5 +119,5 @@ export const SidebarItemSchema = z.union([ AutoSidebarGroupSchema, InternalSidebarLinkItemSchema, InternalSidebarLinkItemShorthandSchema, -]); -export type SidebarItem = z.infer; +]) +export type SidebarItem = z.infer diff --git a/apps/www/src/style/markdown.css b/docs/src/style/markdown.css similarity index 100% rename from apps/www/src/style/markdown.css rename to docs/src/style/markdown.css diff --git a/apps/www/src/tailwind.css b/docs/src/tailwind.css similarity index 100% rename from apps/www/src/tailwind.css rename to docs/src/tailwind.css diff --git a/docs/src/utils/base.ts b/docs/src/utils/base.ts new file mode 100644 index 0000000..8cb7722 --- /dev/null +++ b/docs/src/utils/base.ts @@ -0,0 +1,15 @@ +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) { + 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) { + path = stripLeadingSlash(path) + return path ? `${base}/${path}` : base +} diff --git a/apps/www/src/utils/createPathFormatter.ts b/docs/src/utils/createPathFormatter.ts similarity index 61% rename from apps/www/src/utils/createPathFormatter.ts rename to docs/src/utils/createPathFormatter.ts index 5eebf33..49c95b1 100644 --- a/apps/www/src/utils/createPathFormatter.ts +++ b/docs/src/utils/createPathFormatter.ts @@ -1,21 +1,21 @@ -import type { AstroConfig } from "astro"; -import { fileWithBase, pathWithBase } from "./base"; +import type { AstroConfig } from 'astro' +import { fileWithBase, pathWithBase } from './base' import { ensureHtmlExtension, ensureTrailingSlash, stripHtmlExtension, stripTrailingSlash, -} from "./path"; +} from './path' interface FormatPathOptions { - format?: AstroConfig["build"]["format"]; - trailingSlash?: AstroConfig["trailingSlash"]; + format?: AstroConfig['build']['format'] + trailingSlash?: AstroConfig['trailingSlash'] } const defaultFormatStrategy = { addBase: pathWithBase, handleExtension: (href: string) => stripHtmlExtension(href), -}; +} const formatStrategies = { file: { @@ -24,37 +24,38 @@ const formatStrategies = { }, 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 + { format = 'directory', trailingSlash = 'ignore' }: FormatPathOptions, ) { - const formatStrategy = formatStrategies[format]; - const trailingSlashStrategy = trailingSlashStrategies[trailingSlash]; + const formatStrategy = formatStrategies[format] + const trailingSlashStrategy = trailingSlashStrategies[trailingSlash] // Add base - href = formatStrategy.addBase(href); + href = formatStrategy.addBase(href) // Handle extension - href = formatStrategy.handleExtension(href); + href = formatStrategy.handleExtension(href) // Skip trailing slash handling for `build.format: 'file'` - if (format === "file") return href; + if (format === 'file') + return href // Handle trailing slash - href = href === "/" ? href : trailingSlashStrategy(href); + href = href === '/' ? href : trailingSlashStrategy(href) - return href; + return href } export function createPathFormatter(opts: FormatPathOptions) { - return (href: string) => formatPath(href, opts); + return (href: string) => formatPath(href, opts) } diff --git a/docs/src/utils/format-path.ts b/docs/src/utils/format-path.ts new file mode 100644 index 0000000..b3234de --- /dev/null +++ b/docs/src/utils/format-path.ts @@ -0,0 +1,7 @@ +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/apps/www/src/utils/i18n.ts b/docs/src/utils/i18n.ts similarity index 64% rename from apps/www/src/utils/i18n.ts rename to docs/src/utils/i18n.ts index 57865a3..71f4589 100644 --- a/apps/www/src/utils/i18n.ts +++ b/docs/src/utils/i18n.ts @@ -1,9 +1,9 @@ -import type { AstroConfig } from "astro"; -import { AstroError } from "astro/errors"; -import type StarlightConfig from "virtual:starlight/user-config"; +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" }; +export const BuiltInDefaultLocale = { ...getLocaleInfo('en'), lang: 'en' } /** * A list of well-known right-to-left languages used as a fallback when determining the text @@ -12,7 +12,7 @@ export const BuiltInDefaultLocale = { ...getLocaleInfo("en"), lang: "en" }; * @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"]; +const wellKnownRTL = ['ar', 'fa', 'he', 'prs', 'ps', 'syc', 'ug', 'ur'] /** * Processes the Astro and Starlight i18n configurations to generate/update them accordingly: @@ -27,15 +27,16 @@ const wellKnownRTL = ["ar", "fa", "he", "prs", "ps", "syc", "ug", "ur"]; */ export function processI18nConfig( starlightConfig: typeof StarlightConfig, - astroI18nConfig: AstroConfig["i18n"] + astroI18nConfig: AstroConfig['i18n'], ) { // 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) { + '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 { @@ -44,86 +45,86 @@ export function processI18nConfig( ...starlightConfig, ...getStarlightI18nConfig(astroI18nConfig), } as typeof StarlightConfig, - }; + } } // Otherwise, we generate the Astro i18n configuration based on the Starlight configuration. return { astroI18nConfig: getAstroI18nConfig(starlightConfig), - starlightConfig: starlightConfig, - }; + starlightConfig, + } } /** Generate an Astro i18n configuration based on a Starlight configuration. */ function getAstroI18nConfig( - config: typeof StarlightConfig -): NonNullable { + config: typeof StarlightConfig, +): NonNullable { return { defaultLocale: - config.defaultLocale.lang ?? - config.defaultLocale.locale ?? - BuiltInDefaultLocale.lang, + 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" + 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) || + (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), + || (!config.isMultilingual && config.locales !== undefined), redirectToDefaultLocale: false, }, - }; + } } /** Generate a Starlight i18n configuration based on an Astro configuration. */ function getStarlightI18nConfig( - astroI18nConfig: NonNullable + astroI18nConfig: NonNullable, ): Pick< typeof StarlightConfig, - "isMultilingual" | "locales" | "defaultLocale" -> { - if (astroI18nConfig.routing === "manual") { + 'isMultilingual' | 'locales' | 'defaultLocale' + > { + if (astroI18nConfig.routing === 'manual') { throw new AstroError( - "Starlight is not compatible with the `manual` routing option in the Astro i18n configuration." - ); + '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 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) - ); + 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" - ); + '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 { @@ -138,26 +139,26 @@ function getStarlightI18nConfig( ? defaultAstroLocale.codes[0] : defaultAstroLocale, }, - }; + } } /** Infer Starlight locale informations based on a locale from an Astro i18n configuration. */ function inferStarlightLocaleFromAstroLocale(astroLocale: AstroLocale) { const lang = isAstroLocaleExtendedConfig(astroLocale) ? astroLocale.codes[0] - : astroLocale; - return { ...getLocaleInfo(lang), lang }; + : 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 + astroI18nConfig: NonNullable, + locale: AstroLocale, ) { return ( - (isAstroLocaleExtendedConfig(locale) ? locale.path : locale) === - astroI18nConfig.defaultLocale - ); + (isAstroLocaleExtendedConfig(locale) ? locale.path : locale) + === astroI18nConfig.defaultLocale + ) } /** @@ -165,26 +166,28 @@ function isDefaultAstroLocale( * @see AstroLocaleExtendedConfig */ function isAstroLocaleExtendedConfig( - locale: AstroLocale + locale: AstroLocale, ): locale is AstroLocaleExtendedConfig { - return typeof locale !== "string"; + 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) { 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."); + 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 (error) { + } + } + catch (error) { 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)." - ); + 'Make sure to provide a valid BCP-47 tags (e.g. en, ar, or zh-CN).', + ) } } @@ -192,17 +195,18 @@ function getLocaleInfo(lang: string) { * 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) { +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) { + 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; + 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"; + return wellKnownRTL.includes(locale.language) ? 'rtl' : 'ltr' } /** @@ -217,10 +221,10 @@ function getLocaleDir(locale: Intl.Locale): "ltr" | "rtl" { */ export function pickLang>( dictionary: T, - lang: keyof T + lang: keyof T, ): string | undefined { - return dictionary[lang]; + return dictionary[lang] } -type AstroLocale = NonNullable["locales"][number]; -type AstroLocaleExtendedConfig = Exclude; +type AstroLocale = NonNullable['locales'][number] +type AstroLocaleExtendedConfig = Exclude diff --git a/apps/www/src/utils/navigation.ts b/docs/src/utils/navigation.ts similarity index 60% rename from apps/www/src/utils/navigation.ts rename to docs/src/utils/navigation.ts index 47f4140..7653b70 100644 --- a/apps/www/src/utils/navigation.ts +++ b/docs/src/utils/navigation.ts @@ -1,46 +1,46 @@ -import { AstroError } from "astro/errors"; -import config from "virtual:starlight/user-config"; -import type { Badge } from "../schemas/badge"; -import type { PrevNextLinkConfig } from "../schemas/prevNextLink"; +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"; -import { createPathFormatter } from "./createPathFormatter"; -import { formatPath } from "./format-path"; -import { pickLang } from "./i18n"; -import { - ensureLeadingSlash, - ensureTrailingSlash, - stripLeadingAndTrailingSlashes, -} from "./path"; -import { getLocaleRoutes, routes, type Route } from "./routing"; -import { localeToLang, slugToPathname } from "./slugs"; +} from '../schemas/sidebar' -const DirKey = Symbol("DirKey"); -const SlugKey = Symbol("SlugKey"); +const DirKey = Symbol('DirKey') +const SlugKey = Symbol('SlugKey') export interface Link { - type: "link"; - label: string; - href: string; - isCurrent: boolean; - badge: Badge | undefined; - attrs: LinkHTMLAttributes; + 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; + type: 'group' + label: string + entries: (Link | Group)[] + collapsed: boolean + badge: Badge | undefined } -export type SidebarEntry = Link | Group; +export type SidebarEntry = Link | Group /** * A representation of the route structure. For each object entry: @@ -49,23 +49,23 @@ export type SidebarEntry = Link | Group; * is the full entry. */ interface Dir { - [DirKey]: undefined; - [SlugKey]: string; - [item: string]: Dir | Route; + [DirKey]: undefined + [SlugKey]: string + [item: string]: Dir | Route } /** Create a new directory object. */ function makeDir(slug: string): Dir { - const dir = {} as 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; + 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; + return DirKey in data } /** Convert an item in a user’s sidebar config to a sidebar entry. */ @@ -73,24 +73,27 @@ function configItemToEntry( item: SidebarItem, currentPathname: string, locale: string | undefined, - routes: Route[] + 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 { + 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", + type: 'group', label: pickLang(item.translations, localeToLang(locale)) || item.label, - entries: item.items.map((i) => - configItemToEntry(i, currentPathname, locale, routes) + entries: item.items.map(i => + configItemToEntry(i, currentPathname, locale, routes), ), collapsed: item.collapsed, badge: item.badge, - }; + } } } @@ -99,88 +102,90 @@ function groupFromAutogenerateConfig( item: AutoSidebarGroup, locale: string | undefined, routes: Route[], - currentPathname: string + currentPathname: string, ): Group { - const { collapsed: subgroupCollapsed, directory } = item.autogenerate; - const localeDir = locale ? locale + "/" + directory : directory; + const { collapsed: subgroupCollapsed, directory } = item.autogenerate + const localeDir = locale ? `${locale}/${directory}` : directory const dirDocs = routes.filter( - (doc) => + doc => // Match against `foo.md` or `foo/index.md`. - stripExtension(doc.id) === localeDir || + stripExtension(doc.id) === localeDir // Match against `foo/anything/else.md`. - doc.id.startsWith(localeDir + "/") - ); - const tree = treeify(dirDocs, localeDir); + || doc.id.startsWith(`${localeDir}/`), + ) + const tree = treeify(dirDocs, localeDir) return { - type: "group", + type: 'group', label: pickLang(item.translations, localeToLang(locale)) || item.label, entries: sidebarFromDir( tree, currentPathname, locale, - subgroupCollapsed ?? item.collapsed + subgroupCollapsed ?? item.collapsed, ), collapsed: item.collapsed, badge: item.badge, - }; + } } /** Check if a string starts with one of `http://` or `https://`. */ -const isAbsolute = (link: string) => /^https?:\/\//.test(link); +const isAbsolute = (link: string) => /^https?:\/\//.test(link) /** Create a link entry from a manual link item in user config. */ function linkFromSidebarLinkItem( item: SidebarLinkItem, locale: string | undefined, - currentPathname: string + currentPathname: string, ) { - let href = item.link; + let href = item.link if (!isAbsolute(href)) { - href = ensureLeadingSlash(href); + href = ensureLeadingSlash(href) // Inject current locale into link. - if (locale) href = "/" + locale + href; + if (locale) + href = `/${locale}${href}` } - const label = pickLang(item.translations, localeToLang(locale)) || item.label; - return makeSidebarLink(href, label, currentPathname, item.badge, item.attrs); + 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 + currentPathname: string, ) { - let slugWithLocale = locale ? locale + "/" + item.slug : item.slug; + 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); + slugWithLocale = slugWithLocale.replace(/\/?index$/, '') + const entry = routes.find(entry => slugWithLocale === entry.slug) if (!entry) { - const hasExternalSlashes = - item.slug.at(0) === "/" || item.slug.at(-1) === "/"; + 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 { + `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" - ); + '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; + const label + = pickLang(item.translations, localeToLang(locale)) + || item.label + || entry.entry.data.title return makeSidebarLink( entry.slug, label, currentPathname, item.badge, - item.attrs - ); + item.attrs, + ) } /** Process sidebar link options to create a link entry. */ @@ -189,13 +194,13 @@ function makeSidebarLink( label: string, currentPathname: string, badge?: Badge, - attrs?: LinkHTMLAttributes + attrs?: LinkHTMLAttributes, ): Link { if (!isAbsolute(href)) { - href = formatPath(href); + href = formatPath(href) } - const isCurrent = pathsMatch(encodeURI(href), currentPathname); - return makeLink({ label, href, isCurrent, badge, attrs }); + const isCurrent = pathsMatch(encodeURI(href), currentPathname) + return makeLink({ label, href, isCurrent, badge, attrs }) } /** Create a link entry */ @@ -205,73 +210,75 @@ function makeLink({ badge = undefined, ...opts }: { - label: string; - href: string; - isCurrent?: boolean; - badge?: Badge | undefined; - attrs?: LinkHTMLAttributes | undefined; + label: string + href: string + isCurrent?: boolean + badge?: Badge | undefined + attrs?: LinkHTMLAttributes | undefined }): Link { - return { type: "link", ...opts, badge, isCurrent, attrs }; + return { type: 'link', ...opts, badge, isCurrent, attrs } } /** Test if two paths are equivalent even if formatted differently. */ function pathsMatch(pathA: string, pathB: string) { - const format = createPathFormatter({ trailingSlash: "never" }); - return format(pathA) === format(pathB); + 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); + const pathWithoutExt = stripExtension(path) // Index paths will match `baseDir` and don’t include breadcrumbs. - if (pathWithoutExt === baseDir) return []; + if (pathWithoutExt === baseDir) + return [] // Ensure base directory ends in a trailing slash. - baseDir = ensureTrailingSlash(baseDir); + baseDir = ensureTrailingSlash(baseDir) // Strip base directory from path if present. const relativePath = pathWithoutExt.startsWith(baseDir) - ? pathWithoutExt.replace(baseDir, "") - : pathWithoutExt; + ? pathWithoutExt.replace(baseDir, '') + : pathWithoutExt - return relativePath.split("/"); + 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); + const treeRoot: Dir = makeDir(baseDir) routes // Remove any entries that should be hidden - .filter((doc) => !doc.entry.data.sidebar.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) + .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; + const parts = getBreadcrumbs(doc.id, baseDir) + let currentNode = treeRoot parts.forEach((part, index) => { - const isLeaf = index === parts.length - 1; + const isLeaf = index === parts.length - 1 // Handle directory index pages by renaming them to `index` if (isLeaf && currentNode.hasOwnProperty(part)) { - currentNode = currentNode[part] as Dir; - part = "index"; + currentNode = currentNode[part] as Dir + part = 'index' } // Recurse down the tree if this isn’t the leaf node. if (!isLeaf) { - const path = currentNode[SlugKey]; + const path = currentNode[SlugKey] currentNode[part] ||= makeDir( - stripLeadingAndTrailingSlashes(path + "/" + part) - ); - currentNode = currentNode[part] as Dir; - } else { - currentNode[part] = doc; + stripLeadingAndTrailingSlashes(`${path}/${part}`), + ) + currentNode = currentNode[part] as Dir } - }); - }); + else { + currentNode[part] = doc + } + }) + }) - return treeRoot; + return treeRoot } /** Create a link entry for a given content collection entry. */ @@ -281,8 +288,8 @@ function linkFromRoute(route: Route, currentPathname: string): Link { route.entry.data.sidebar.label || route.entry.data.title, currentPathname, route.entry.data.sidebar.badge, - route.entry.data.sidebar.attrs - ); + route.entry.data.sidebar.attrs, + ) } /** @@ -293,22 +300,23 @@ function getOrder(routeOrDir: Route | Dir): number { return isDir(routeOrDir) ? Math.min(...Object.values(routeOrDir).flatMap(getOrder)) : // If no order value is found, set it to the largest number possible. - (routeOrDir.entry.data.sidebar.order ?? Number.MAX_VALUE); + (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)); + const collator = new Intl.Collator(localeToLang(undefined)) return dir.sort(([_keyA, a], [_keyB, b]) => { - const [aOrder, bOrder] = [getOrder(a), getOrder(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 (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 - ); - }); + isDir(b) ? b[SlugKey] : b.slug, + ) + }) } /** Create a group entry for a given content collection directory. */ @@ -318,7 +326,7 @@ function groupFromDir( dirName: string, currentPathname: string, locale: string | undefined, - collapsed: boolean + collapsed: boolean, ): Group { const entries = sortDirEntries(Object.entries(dir)).map(([key, dirOrRoute]) => dirToItem( @@ -327,16 +335,16 @@ function groupFromDir( key, currentPathname, locale, - collapsed - ) - ); + collapsed, + ), + ) return { - type: "group", + type: 'group', label: dirName, entries, collapsed, badge: undefined, - }; + } } /** Create a sidebar entry for a directory or content entry. */ @@ -346,18 +354,18 @@ function dirToItem( dirName: string, currentPathname: string, locale: string | undefined, - collapsed: boolean + collapsed: boolean, ): SidebarEntry { return isDir(dirOrRoute) ? groupFromDir( - dirOrRoute, - fullPath, - dirName, - currentPathname, - locale, - collapsed - ) - : linkFromRoute(dirOrRoute, currentPathname); + dirOrRoute, + fullPath, + dirName, + currentPathname, + locale, + collapsed, + ) + : linkFromRoute(dirOrRoute, currentPathname) } /** Create a sidebar entry for a given content directory. */ @@ -365,34 +373,35 @@ function sidebarFromDir( tree: Dir, currentPathname: string, locale: string | undefined, - collapsed: boolean + collapsed: boolean, ) { return sortDirEntries(Object.entries(tree)).map(([key, dirOrRoute]) => - dirToItem(dirOrRoute, key, key, currentPathname, locale, collapsed) - ); + dirToItem(dirOrRoute, key, key, currentPathname, locale, collapsed), + ) } /** Get the sidebar for the current page. */ export function getSidebar( pathname: string, - locale: string | undefined + locale: string | undefined, ): SidebarEntry[] { - const routes = getLocaleRoutes(locale); + 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); + 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 - ); + 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. */ @@ -400,44 +409,49 @@ export function getPrevNextLinks( sidebar: SidebarEntry[], paginationEnabled: boolean, config: { - prev?: PrevNextLinkConfig; - next?: PrevNextLinkConfig; - } + 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); + 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 - ); + config.prev, + ) const next = applyPrevNextLinkConfig( currentIndex > -1 ? entries[currentIndex + 1] : undefined, paginationEnabled, - config.next - ); - return { prev, next }; + 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 + config: PrevNextLinkConfig | undefined, ): Link | undefined { // Explicitly remove the link. - if (config === false) return undefined; + if (config === false) { + return undefined + } // Use the generated link if any. - else if (config === true) return link; + 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") { + 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 { @@ -446,16 +460,17 @@ function applyPrevNextLinkConfig( href: config.link ?? link.href, // Explicitly remove sidebar link attributes for prev/next links. attrs: {}, - }; - } else if (config.link && config.label) { + } + } + 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 }); + 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; + return paginationEnabled ? link : undefined } /** Remove the extension from a path. */ -const stripExtension = (path: string) => path.replace(/\.\w+$/, ""); +const stripExtension = (path: string) => path.replace(/\.\w+$/, '') diff --git a/docs/src/utils/path.ts b/docs/src/utils/path.ts new file mode 100644 index 0000000..7f6007e --- /dev/null +++ b/docs/src/utils/path.ts @@ -0,0 +1,58 @@ +/** 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/apps/www/src/utils/routing.ts b/docs/src/utils/routing.ts similarity index 57% rename from apps/www/src/utils/routing.ts rename to docs/src/utils/routing.ts index d4c7704..6c672d2 100644 --- a/apps/www/src/utils/routing.ts +++ b/docs/src/utils/routing.ts @@ -1,41 +1,41 @@ -import type { GetStaticPathsItem } from "astro"; -import { type CollectionEntry, getCollection } from "astro:content"; -import config from "virtual:starlight/user-config"; +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"; -import { BuiltInDefaultLocale } from "./i18n"; +} 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(); +validateLogoImports() -export type StarlightDocsEntry = Omit, "slug"> & { - slug: string; -}; +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; + 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; + entryMeta: LocaleData /** The slug, a.k.a. permalink, for this page. */ - slug: string; + slug: string /** The unique ID for this page. */ - id: string; + 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; + isFallback?: true + [key: string]: unknown } interface Path extends GetStaticPathsItem { - params: { slug: string | undefined }; - props: Route; + params: { slug: string | undefined } + props: Route } /** @@ -43,47 +43,50 @@ interface Path extends GetStaticPathsItem { * `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) => (slug === "index" ? "" : slug); +const normalizeIndexSlug = (slug: string): string => (slug === 'index' ? '' : slug) /** All entries in the docs content collection. */ const docs: StarlightDocsEntry[] = ( - (await getCollection("docs", ({ data }) => { + (await getCollection('docs', ({ data }) => { // In production, filter out drafts. - return import.meta.env.MODE !== "production" || data.draft === false; + 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) => ({ + 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" + config.defaultLocale?.locale === 'root' ? undefined - : config.defaultLocale?.locale - ); + : 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); + 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; + 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, @@ -93,29 +96,29 @@ function getRoutes(): Route[] { locale, dir: localeConfig.dir, entryMeta: slugToLocaleData(fallback.slug), - }); + }) } } } - return routes; + return routes } -export const routes = getRoutes(); +export const routes = getRoutes() function getPaths(): Path[] { - return routes.map((route) => ({ + return routes.map(route => ({ params: { slug: slugToParam(route.slug) }, props: route, - })); + })) } -export const paths = getPaths(); +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); + return filterByLocale(routes, locale) } /** @@ -123,27 +126,28 @@ export function getLocaleRoutes(locale: string | undefined): Route[] { * A locale of `undefined` is treated as the “root” locale, if configured. */ function getLocaleDocs(locale: string | undefined): StarlightDocsEntry[] { - return filterByLocale(docs, locale); + return filterByLocale(docs, locale) } /** Filter an array to find items whose slug matches the passed locale. */ function filterByLocale( items: T[], - locale: string | undefined + 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("|")})/`); + 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) - ); + i => !isLangIndex.test(i.slug) && !isLangDir.test(i.slug), + ) } } - return items; + return items } diff --git a/apps/www/src/utils/slugs.ts b/docs/src/utils/slugs.ts similarity index 57% rename from apps/www/src/utils/slugs.ts rename to docs/src/utils/slugs.ts index 2b71408..a84381a 100644 --- a/apps/www/src/utils/slugs.ts +++ b/docs/src/utils/slugs.ts @@ -1,13 +1,13 @@ -import config from "virtual:starlight/user-config"; -import { BuiltInDefaultLocale } from "./i18n"; +import config from 'virtual:starlight/user-config' +import { BuiltInDefaultLocale } from './i18n' export interface LocaleData { /** Writing direction. */ - dir: "ltr" | "rtl"; + dir: 'ltr' | 'rtl' /** BCP-47 language tag. */ - lang: string; + lang: string /** The base path at which a language is served. `undefined` for root locale slugs. */ - locale: string | undefined; + locale: string | undefined } /** @@ -17,16 +17,17 @@ export interface LocaleData { * @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; + 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 }; + const locale = slugToLocale(slug) + return { dir: localeToDir(locale), lang: localeToLang(locale), locale } } /** @@ -36,34 +37,34 @@ export function slugToLocaleData(slug: string): LocaleData { 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; + : 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" { +function localeToDir(locale: string | undefined): 'ltr' | 'rtl' { const dir = locale ? config.locales?.[locale]?.dir - : config.locales?.root?.dir; - return dir || config.defaultLocale.dir; + : config.locales?.root?.dir + return dir || config.defaultLocale.dir } export function slugToParam(slug: string): string | undefined { - return slug === "index" || slug === "" + return slug === 'index' || slug === '' ? undefined - : slug.endsWith("/index") - ? slug.replace(/\/index$/, "") - : slug; + : slug.endsWith('/index') + ? slug.replace(/\/index$/, '') + : slug } export function slugToPathname(slug: string): string { - const param = slugToParam(slug); - return param ? "/" + param + "/" : "/"; + const param = slugToParam(slug) + return param ? `/${param}/` : '/' } /** @@ -78,18 +79,20 @@ export function slugToPathname(slug: string): string { */ export function localizedSlug( slug: string, - locale: string | undefined + locale: string | undefined, ): string { - const slugLocale = slugToLocale(slug); - if (slugLocale === locale) return slug; - locale = locale || ""; - if (slugLocale === slug) return locale; + 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(/\/$/, ""); + .replace(`${slugLocale}/`, locale ? `${locale}/` : '') + .replace(/\/$/, '') } - return slug ? locale + "/" + slug : locale; + return slug ? `${locale}/${slug}` : locale } /** @@ -103,30 +106,35 @@ export function localizedSlug( * localizedSlug('en/home.md', undefined) // => 'home.md' */ export function localizedId(id: string, locale: string | undefined): string { - const idLocale = slugToLocale(id); + const idLocale = slugToLocale(id) if (idLocale) { - return id.replace(idLocale + "/", locale ? locale + "/" : ""); - } else if (locale) { - return locale + "/" + id; - } else { - return id; + 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") { + 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)) { + 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)); + const last = segments.pop() + if (last) + segments.push(last.slice(0, -1 * htmlExt.length)) } - return segments.filter(Boolean).join("/"); + return segments.filter(Boolean).join('/') } diff --git a/apps/www/src/utils/validateLogoImports.ts b/docs/src/utils/validateLogoImports.ts similarity index 56% rename from apps/www/src/utils/validateLogoImports.ts rename to docs/src/utils/validateLogoImports.ts index 02eeefc..a3b5afa 100644 --- a/apps/www/src/utils/validateLogoImports.ts +++ b/docs/src/utils/validateLogoImports.ts @@ -1,21 +1,24 @@ -import config from "virtual:starlight/user-config"; -import { logos } from "virtual:starlight/user-images"; +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) { + 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)`; + err = `Could not resolve logo import for "${config.logo.src}" (logo.src)` } - } else { + } + 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)`; + 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); + if (err) + throw new Error(err) } } diff --git a/docs/src/virtual.d.ts b/docs/src/virtual.d.ts new file mode 100644 index 0000000..bf6ce50 --- /dev/null +++ b/docs/src/virtual.d.ts @@ -0,0 +1,24 @@ +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 new file mode 100644 index 0000000..892fbbe --- /dev/null +++ b/docs/tailwind.config.mjs @@ -0,0 +1,85 @@ +import starlightPlugin from '@astrojs/starlight-tailwind' +import colors from 'tailwindcss/colors' +import { fontFamily } from 'tailwindcss/defaultTheme' + +/** @type {import('tailwindcss').Config} */ +export default { + darkMode: 'class', + content: [ + './src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue,directive.ts}', + ], + theme: { + container: { + center: true, + padding: '2rem', + screens: { + '2xl': '1400px', + }, + }, + extend: { + colors: { + gray: colors.stone, + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))', + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))', + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))', + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))', + }, + accent: { + ...colors.neutral, + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))', + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))', + }, + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))', + }, + }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)', + }, + 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', + }, + fontFamily: { + sans: ['Geist Sans Variable', ...fontFamily.sans], + }, + }, + }, + corePlugins: { + preflight: true, + }, + plugins: [starlightPlugin()], +} diff --git a/apps/www/tsconfig.app.json b/docs/tsconfig.app.json similarity index 100% rename from apps/www/tsconfig.app.json rename to docs/tsconfig.app.json index 2dbe44c..d5cf814 100644 --- a/apps/www/tsconfig.app.json +++ b/docs/tsconfig.app.json @@ -2,24 +2,24 @@ "extends": "./tsconfig.json", "compileOnSave": false, "compilerOptions": { + "target": "es2020", + "lib": ["es2020", "dom"], + "experimentalDecorators": true, "baseUrl": "./", - "outDir": "./dist/out-tsc", - "forceConsistentCasingInFileNames": true, + "module": "es2020", + "moduleResolution": "node", "strict": true, + "noFallthroughCasesInSwitch": true, "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "sourceMap": true, + "noPropertyAccessFromIndexSignature": true, "declaration": false, "downlevelIteration": true, - "experimentalDecorators": true, - "moduleResolution": "node", "importHelpers": true, "noEmit": false, - "target": "es2020", - "module": "es2020", - "lib": ["es2020", "dom"], + "outDir": "./dist/out-tsc", + "sourceMap": true, + "forceConsistentCasingInFileNames": true, "skipLibCheck": true }, "angularCompilerOptions": { diff --git a/apps/www/tsconfig.json b/docs/tsconfig.json similarity index 100% rename from apps/www/tsconfig.json rename to docs/tsconfig.json diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..e634f76 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,9 @@ +// @ts-check +import antfu from '@antfu/eslint-config' + +export default antfu( + { + type: 'lib', + ignores: ['docs'], + }, +) diff --git a/nx.json b/nx.json deleted file mode 100644 index 52230f1..0000000 --- a/nx.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "nx/presets/npm.json", - "$schema": "./node_modules/nx/schemas/nx-schema.json", - "targetDefaults": { - "build": { - "cache": true, - "dependsOn": ["^build"] - } - } -} diff --git a/package.json b/package.json index 52406d0..9638831 100644 --- a/package.json +++ b/package.json @@ -1,24 +1,98 @@ { - "name": "ui", + "name": "shadcn-ng", + "type": "module", "version": "0.0.0", + "packageManager": "pnpm@9.9.0", + "description": "Accessible and customizable components that you can copy and paste into your apps. Free. Open Source. Use this to build your own component library.", + "author": "Adrián UB", "license": "MIT", - "type": "module", + "funding": "https://github.com/sponsors/adrian-ub", + "homepage": "https://github.com/adrian-ub/shadcn-ng#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/adrian-ub/shadcn-ng.git" + }, + "bugs": "https://github.com/adrian-ub/shadcn-ng/issues", + "keywords": [], + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/cli.d.ts", + "import": "./dist/cli.mjs", + "require": "./dist/cli.cjs" + } + }, + "main": "./dist/cli.mjs", + "module": "./dist/cli.mjs", + "types": "./dist/cli.d.ts", + "typesVersions": { + "*": { + "*": [ + "./dist/*", + "./dist/cli.d.ts" + ] + } + }, + "bin": { + "shadcn-ng": "./dist/cli.mjs" + }, + "files": [ + "dist" + ], "scripts": { - "release": "changeset version", - "build:cli": "nx build shadcn-ng", - "pub:beta": "cd packages/cli && pnpm pub:beta", - "pub:release": "cd packages/cli && pnpm pub:release" + "build": "unbuild", + "dev": "unbuild --stub", + "lint": "eslint .", + "prepublishOnly": "nr build", + "release": "bumpp && npm publish", + "start": "esno src/cli.ts", + "test": "vitest", + "typecheck": "tsc --noEmit", + "prepare": "simple-git-hooks", + "shadcn-ng": "esno src/cli.ts" + }, + "dependencies": { + "@antfu/ni": "^0.23.0", + "chalk": "5.2.0", + "commander": "^10.0.0", + "cosmiconfig": "^8.1.3", + "diff": "^5.1.0", + "execa": "^7.0.0", + "fast-glob": "^3.3.2", + "fs-extra": "^11.1.0", + "https-proxy-agent": "^6.2.0", + "lodash.template": "^4.5.0", + "node-fetch": "^3.3.0", + "ora": "^6.1.2", + "prompts": "^2.4.2", + "ts-morph": "^18.0.0", + "tsconfig-paths": "^4.2.0", + "zod": "^3.20.2" }, - "private": true, "devDependencies": { - "@changesets/changelog-github": "^0.5.0", - "@changesets/cli": "^2.27.7", - "@nx/js": "19.5.6", - "cross-env": "^7.0.3", - "nx": "19.5.6", - "verdaccio": "^5.0.4" - }, - "nx": { - "includedScripts": [] + "@antfu/eslint-config": "^3.3.2", + "@antfu/utils": "^0.7.10", + "@types/diff": "^5.0.3", + "@types/fs-extra": "^11.0.1", + "@types/lodash.template": "^4.5.1", + "@types/node": "^22.5.4", + "@types/prompts": "^2.4.2", + "bumpp": "^9.5.2", + "eslint": "^9.9.1", + "esno": "^4.7.0", + "lint-staged": "^15.2.10", + "pnpm": "^9.9.0", + "simple-git-hooks": "^2.11.1", + "type-fest": "^3.8.0", + "typescript": "^5.5.4", + "unbuild": "^2.0.0", + "vite": "^5.4.3", + "vitest": "^2.0.5" + }, + "simple-git-hooks": { + "pre-commit": "pnpm lint-staged" + }, + "lint-staged": { + "*": "eslint --fix" } } diff --git a/packages/cli/.gitignore b/packages/cli/.gitignore deleted file mode 100644 index dac6408..0000000 --- a/packages/cli/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -components -dist -.turbo \ No newline at end of file diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md deleted file mode 100644 index 9f9c4fb..0000000 --- a/packages/cli/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -# shadcn-ng - -## 0.0.2 - -### Patch Changes - -- [`3934b13`](https://github.com/adrian-ub/shadcn-ng/commit/3934b13437802ac51948dd298fbb5da43953bee3) Thanks [@adrian-ub](https://github.com/adrian-ub)! - change tailwind.config.ts to tailwind.config.js - -## 0.0.1 - -### Patch Changes - -- [`8d8782b`](https://github.com/adrian-ub/shadcn-ng/commit/8d8782b46222175a64837a4891a4c07117a3e3ad) Thanks [@adrian-ub](https://github.com/adrian-ub)! - chore: remove unnecessary dependencies diff --git a/packages/cli/README.md b/packages/cli/README.md deleted file mode 100644 index fb5e937..0000000 --- a/packages/cli/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# shadcn-ng - -A CLI for adding components to your project. - -## Usage - -Use the `init` command to initialize dependencies for a new project. - -The `init` command installs dependencies, adds the `cn` util, configures `tailwind.config.ts`, and CSS variables for the project. - -```bash -npx shadcn-ng init -``` - -## add - -Use the `add` command to add components to your project. - -The `add` command adds a component to your project and installs all required dependencies. - -```bash -npx shadcn-ng add [component] -``` - -### Example - -```bash -npx shadcn-ng add alert-dialog -``` - -You can also run the command without any arguments to view a list of all available components: - -```bash -npx shadcn-ng add -``` - -## Documentation - -Visit https://ui.adrianub.dev/docs/cli to view the documentation. - -## License - -Licensed under the [MIT license](https://github.com/adrian-ub/shadcn-ng/blob/main/LICENSE.md). diff --git a/packages/cli/package.json b/packages/cli/package.json deleted file mode 100644 index 05b58b7..0000000 --- a/packages/cli/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "shadcn-ng", - "version": "0.0.2", - "description": "Add components to your apps.", - "publishConfig": { - "access": "public" - }, - "license": "MIT", - "author": { - "name": "Adrián UB", - "url": "https://twitter.com/adrianub" - }, - "repository": { - "type": "git", - "url": "https://github.com/adrian-ub/shadcn-ng.git", - "directory": "packages/cli" - }, - "files": [ - "dist" - ], - "keywords": [ - "components", - "ui", - "tailwind", - "radix-ui", - "shadcn", - "shadcn-ng", - "ng", - "angular" - ], - "type": "module", - "exports": "./dist/index.js", - "bin": "./dist/index.js", - "scripts": { - "dev": "tsup --watch", - "build": "tsup", - "typecheck": "tsc --noEmit", - "clean": "rimraf dist && rimraf components", - "start:dev": "cross-env COMPONENTS_REGISTRY_URL=http://localhost:4321 node dist/index.js", - "start": "node dist/index.js", - "format:write": "prettier --write \"**/*.{ts,tsx,mdx}\" --cache", - "format:check": "prettier --check \"**/*.{ts,tsx,mdx}\" --cache", - "release": "changeset version", - "pub:beta": "pnpm build && pnpm publish --no-git-checks --access public --tag beta", - "pub:next": "pnpm build && pnpm publish --no-git-checks --access public --tag next", - "pub:release": "pnpm build && pnpm publish --access public" - }, - "dependencies": { - "@antfu/ni": "^0.21.4", - "chalk": "5.2.0", - "commander": "^10.0.0", - "cosmiconfig": "^8.1.3", - "diff": "^5.1.0", - "execa": "^7.0.0", - "fast-glob": "^3.3.2", - "fs-extra": "^11.1.0", - "https-proxy-agent": "^6.2.0", - "lodash.template": "^4.5.0", - "node-fetch": "^3.3.0", - "ora": "^6.1.2", - "prompts": "^2.4.2", - "ts-morph": "^18.0.0", - "tsconfig-paths": "^4.2.0", - "zod": "^3.20.2" - }, - "devDependencies": { - "@types/diff": "^5.0.3", - "@types/fs-extra": "^11.0.1", - "@types/lodash.template": "^4.5.1", - "@types/prompts": "^2.4.2", - "tsup": "^6.6.3", - "type-fest": "^3.8.0", - "typescript": "^4.9.3" - } -} diff --git a/packages/cli/src/commands/add.ts b/packages/cli/src/commands/add.ts deleted file mode 100644 index 2e937e7..0000000 --- a/packages/cli/src/commands/add.ts +++ /dev/null @@ -1,213 +0,0 @@ -import { existsSync, promises as fs } from "fs"; -import path from "path"; -import { getConfig } from "@/src/utils/get-config"; -import { getPackageManager } from "@/src/utils/get-package-manager"; -import { handleError } from "@/src/utils/handle-error"; -import { logger } from "@/src/utils/logger"; -import { - fetchTree, - getItemTargetPath, - getRegistryBaseColor, - getRegistryIndex, - resolveTree, -} from "@/src/utils/registry"; -import { transform } from "@/src/utils/transformers"; -import chalk from "chalk"; -import { Command } from "commander"; -import { execa } from "execa"; -import ora from "ora"; -import prompts from "prompts"; -import { z } from "zod"; - -const addOptionsSchema = z.object({ - components: z.array(z.string()).optional(), - yes: z.boolean(), - overwrite: z.boolean(), - cwd: z.string(), - all: z.boolean(), - path: z.string().optional(), -}); - -export const add = new Command() - .name("add") - .description("add a component to your project") - .argument("[components...]", "the components to add") - .option("-y, --yes", "skip confirmation prompt.", true) - .option("-o, --overwrite", "overwrite existing files.", false) - .option( - "-c, --cwd ", - "the working directory. defaults to the current directory.", - process.cwd() - ) - .option("-a, --all", "add all available components", false) - .option("-p, --path ", "the path to add the component to.") - .action(async (components, opts) => { - try { - const options = addOptionsSchema.parse({ - components, - ...opts, - }); - - const cwd = path.resolve(options.cwd); - - if (!existsSync(cwd)) { - logger.error(`The path ${cwd} does not exist. Please try again.`); - process.exit(1); - } - - const config = await getConfig(cwd); - if (!config) { - logger.warn( - `Configuration is missing. Please run ${chalk.green( - `init` - )} to create a components.json file.` - ); - process.exit(1); - } - - const registryIndex = await getRegistryIndex(); - - let selectedComponents = options.all - ? registryIndex.map((entry) => entry.name) - : options.components; - if (!options.components?.length && !options.all) { - const { components } = await prompts({ - type: "multiselect", - name: "components", - message: "Which components would you like to add?", - hint: "Space to select. A to toggle all. Enter to submit.", - instructions: false, - choices: registryIndex.map((entry) => ({ - title: entry.name, - value: entry.name, - selected: options.all - ? true - : options.components?.includes(entry.name), - })), - }); - selectedComponents = components; - } - - if (!selectedComponents?.length) { - logger.warn("No components selected. Exiting."); - process.exit(0); - } - - const tree = await resolveTree(registryIndex, selectedComponents); - const payload = await fetchTree(config.style, tree); - const baseColor = await getRegistryBaseColor(config.tailwind.baseColor); - - if (!payload.length) { - logger.warn("Selected components not found. Exiting."); - process.exit(0); - } - - if (!options.yes) { - const { proceed } = await prompts({ - type: "confirm", - name: "proceed", - message: `Ready to install components and dependencies. Proceed?`, - initial: true, - }); - - if (!proceed) { - process.exit(0); - } - } - - const spinner = ora(`Installing components...`).start(); - for (const item of payload) { - spinner.text = `Installing ${item.name}...`; - const targetDir = await getItemTargetPath( - config, - item, - options.path ? path.resolve(cwd, options.path) : undefined - ); - - if (!targetDir) { - continue; - } - - if (!existsSync(targetDir)) { - await fs.mkdir(targetDir, { recursive: true }); - } - - const existingComponent = item.files.filter((file) => - existsSync(path.resolve(targetDir, file.name)) - ); - - if (existingComponent.length && !options.overwrite) { - if (selectedComponents.includes(item.name)) { - spinner.stop(); - const { overwrite } = await prompts({ - type: "confirm", - name: "overwrite", - message: `Component ${item.name} already exists. Would you like to overwrite?`, - initial: false, - }); - - if (!overwrite) { - logger.info( - `Skipped ${item.name}. To overwrite, run with the ${chalk.green( - "--overwrite" - )} flag.` - ); - continue; - } - - spinner.start(`Installing ${item.name}...`); - } else { - continue; - } - } - - for (const file of item.files) { - let filePath = path.resolve(targetDir, file.name); - - // Run transformers. - const content = await transform({ - filename: file.name, - raw: file.content, - config, - baseColor, - }); - - await fs.writeFile(filePath, content); - } - - const packageManager = await getPackageManager(cwd); - - // Install dependencies. - if (item.dependencies?.length) { - await execa( - packageManager, - [ - packageManager === "npm" ? "install" : "add", - ...item.dependencies, - ], - { - cwd, - } - ); - } - - // Install devDependencies. - if (item.devDependencies?.length) { - await execa( - packageManager, - [ - packageManager === "npm" ? "install" : "add", - "-D", - ...item.devDependencies, - ], - { - cwd, - } - ); - } - } - spinner.succeed(`Done.`); - } catch (error) { - handleError(error); - } - }); diff --git a/packages/cli/src/commands/diff.ts b/packages/cli/src/commands/diff.ts deleted file mode 100644 index 2cf2339..0000000 --- a/packages/cli/src/commands/diff.ts +++ /dev/null @@ -1,196 +0,0 @@ -import { existsSync, promises as fs } from "fs"; -import path from "path"; -import { Config, getConfig } from "@/src/utils/get-config"; -import { handleError } from "@/src/utils/handle-error"; -import { logger } from "@/src/utils/logger"; -import { - fetchTree, - getItemTargetPath, - getRegistryBaseColor, - getRegistryIndex, -} from "@/src/utils/registry"; -import { registryIndexSchema } from "@/src/utils/registry/schema"; -import { transform } from "@/src/utils/transformers"; -import chalk from "chalk"; -import { Command } from "commander"; -import { diffLines, type Change } from "diff"; -import { z } from "zod"; - -const updateOptionsSchema = z.object({ - component: z.string().optional(), - yes: z.boolean(), - cwd: z.string(), - path: z.string().optional(), -}); - -export const diff = new Command() - .name("diff") - .description("check for updates against the registry") - .argument("[component]", "the component name") - .option("-y, --yes", "skip confirmation prompt.", false) - .option( - "-c, --cwd ", - "the working directory. defaults to the current directory.", - process.cwd() - ) - .action(async (name, opts) => { - try { - const options = updateOptionsSchema.parse({ - component: name, - ...opts, - }); - - const cwd = path.resolve(options.cwd); - - if (!existsSync(cwd)) { - logger.error(`The path ${cwd} does not exist. Please try again.`); - process.exit(1); - } - - const config = await getConfig(cwd); - if (!config) { - logger.warn( - `Configuration is missing. Please run ${chalk.green( - `init` - )} to create a components.json file.` - ); - process.exit(1); - } - - const registryIndex = await getRegistryIndex(); - - if (!options.component) { - const targetDir = config.resolvedPaths.components; - - // Find all components that exist in the project. - const projectComponents = registryIndex.filter((item) => { - for (const file of item.files) { - const filePath = path.resolve(targetDir, file); - if (existsSync(filePath)) { - return true; - } - } - - return false; - }); - - // Check for updates. - const componentsWithUpdates = []; - for (const component of projectComponents) { - const changes = await diffComponent(component, config); - if (changes.length) { - componentsWithUpdates.push({ - name: component.name, - changes, - }); - } - } - - if (!componentsWithUpdates.length) { - logger.info("No updates found."); - process.exit(0); - } - - logger.info("The following components have updates available:"); - for (const component of componentsWithUpdates) { - logger.info(`- ${component.name}`); - for (const change of component.changes) { - logger.info(` - ${change.filePath}`); - } - } - logger.break(); - logger.info( - `Run ${chalk.green(`diff `)} to see the changes.` - ); - process.exit(0); - } - - // Show diff for a single component. - const component = registryIndex.find( - (item) => item.name === options.component - ); - - if (!component) { - logger.error( - `The component ${chalk.green(options.component)} does not exist.` - ); - process.exit(1); - } - - const changes = await diffComponent(component, config); - - if (!changes.length) { - logger.info(`No updates found for ${options.component}.`); - process.exit(0); - } - - for (const change of changes) { - logger.info(`- ${change.filePath}`); - await printDiff(change.patch); - logger.info(""); - } - } catch (error) { - handleError(error); - } - }); - -async function diffComponent( - component: z.infer[number], - config: Config -) { - const payload = await fetchTree(config.style, [component]); - const baseColor = await getRegistryBaseColor(config.tailwind.baseColor); - - const changes = []; - - for (const item of payload) { - const targetDir = await getItemTargetPath(config, item); - - if (!targetDir) { - continue; - } - - for (const file of item.files) { - const filePath = path.resolve(targetDir, file.name); - - if (!existsSync(filePath)) { - continue; - } - - const fileContent = await fs.readFile(filePath, "utf8"); - - const registryContent = await transform({ - filename: file.name, - raw: file.content, - config, - baseColor, - }); - - const patch = diffLines(registryContent as string, fileContent); - if (patch.length > 1) { - changes.push({ - file: file.name, - filePath, - patch, - }); - } - } - } - - return changes; -} - -async function printDiff(diff: Change[]) { - diff.forEach((part) => { - if (part) { - if (part.added) { - return process.stdout.write(chalk.green(part.value)); - } - if (part.removed) { - return process.stdout.write(chalk.red(part.value)); - } - - return process.stdout.write(part.value); - } - }); -} diff --git a/packages/cli/src/commands/init.ts b/packages/cli/src/commands/init.ts deleted file mode 100644 index 7f34d89..0000000 --- a/packages/cli/src/commands/init.ts +++ /dev/null @@ -1,373 +0,0 @@ -import { existsSync, promises as fs } from "fs"; -import path from "path"; -import { - DEFAULT_COMPONENTS, - DEFAULT_TAILWIND_CONFIG, - DEFAULT_TAILWIND_CSS, - DEFAULT_UTILS, - getConfig, - rawConfigSchema, - resolveConfigPaths, - type Config, -} from "@/src/utils/get-config"; -import { getPackageManager } from "@/src/utils/get-package-manager"; -import { getProjectConfig, preFlight } from "@/src/utils/get-project-info"; -import { handleError } from "@/src/utils/handle-error"; -import { logger } from "@/src/utils/logger"; -import { - getRegistryBaseColor, - getRegistryBaseColors, - getRegistryStyles, -} from "@/src/utils/registry"; -import * as templates from "@/src/utils/templates"; -import chalk from "chalk"; -import { Command } from "commander"; -import { execa } from "execa"; -import template from "lodash.template"; -import ora from "ora"; -import prompts from "prompts"; -import { z } from "zod"; - -import { applyPrefixesCss } from "../utils/transformers/transform-tw-prefix"; - -const PROJECT_DEPENDENCIES = [ - "tailwindcss-animate", - "class-variance-authority", - "clsx", - "tailwind-merge", -]; - -const initOptionsSchema = z.object({ - cwd: z.string(), - yes: z.boolean(), - defaults: z.boolean(), -}); - -export const init = new Command() - .name("init") - .description("initialize your project and install dependencies") - .option("-y, --yes", "skip confirmation prompt.", false) - .option("-d, --defaults,", "use default configuration.", false) - .option( - "-c, --cwd ", - "the working directory. defaults to the current directory.", - process.cwd() - ) - .action(async (opts) => { - try { - const options = initOptionsSchema.parse(opts); - const cwd = path.resolve(options.cwd); - - // Ensure target directory exists. - if (!existsSync(cwd)) { - logger.error(`The path ${cwd} does not exist. Please try again.`); - process.exit(1); - } - - preFlight(cwd); - - const projectConfig = await getProjectConfig(cwd); - if (projectConfig) { - const config = await promptForMinimalConfig( - cwd, - projectConfig, - opts.defaults - ); - await runInit(cwd, config); - } else { - // Read config. - const existingConfig = await getConfig(cwd); - const config = await promptForConfig(cwd, existingConfig, options.yes); - await runInit(cwd, config); - } - - logger.info(""); - logger.info( - `${chalk.green( - "Success!" - )} Project initialization completed. You may now add components.` - ); - logger.info(""); - } catch (error) { - handleError(error); - } - }); - -export async function promptForConfig( - cwd: string, - defaultConfig: Config | null = null, - skip = false -) { - const highlight = (text: string) => chalk.cyan(text); - - const styles = await getRegistryStyles(); - const baseColors = await getRegistryBaseColors(); - - const options = await prompts([ - { - type: "select", - name: "style", - message: `Which ${highlight("style")} would you like to use?`, - choices: styles.map((style) => ({ - title: style.label, - value: style.name, - })), - }, - { - type: "select", - name: "tailwindBaseColor", - message: `Which color would you like to use as ${highlight( - "base color" - )}?`, - choices: baseColors.map((color) => ({ - title: color.label, - value: color.name, - })), - }, - { - type: "text", - name: "tailwindCss", - message: `Where is your ${highlight("global CSS")} file?`, - initial: defaultConfig?.tailwind.css ?? DEFAULT_TAILWIND_CSS, - }, - { - type: "toggle", - name: "tailwindCssVariables", - message: `Would you like to use ${highlight( - "CSS variables" - )} for colors?`, - initial: defaultConfig?.tailwind.cssVariables ?? true, - active: "yes", - inactive: "no", - }, - { - type: "text", - name: "tailwindPrefix", - message: `Are you using a custom ${highlight( - "tailwind prefix eg. tw-" - )}? (Leave blank if not)`, - initial: "", - }, - { - type: "text", - name: "tailwindConfig", - message: `Where is your ${highlight("tailwind.config.js")} located?`, - initial: defaultConfig?.tailwind.config ?? DEFAULT_TAILWIND_CONFIG, - }, - { - type: "text", - name: "components", - message: `Configure the import alias for ${highlight("components")}:`, - initial: defaultConfig?.aliases["components"] ?? DEFAULT_COMPONENTS, - }, - { - type: "text", - name: "utils", - message: `Configure the import alias for ${highlight("utils")}:`, - initial: defaultConfig?.aliases["utils"] ?? DEFAULT_UTILS, - }, - ]); - - const config = rawConfigSchema.parse({ - $schema: "https://ui.adrianub.dev/schema.json", - style: options.style, - tailwind: { - config: options.tailwindConfig, - css: options.tailwindCss, - baseColor: options.tailwindBaseColor, - cssVariables: options.tailwindCssVariables, - prefix: options.tailwindPrefix, - }, - aliases: { - utils: options.utils, - components: options.components, - }, - }); - - if (!skip) { - const { proceed } = await prompts({ - type: "confirm", - name: "proceed", - message: `Write configuration to ${highlight( - "components.json" - )}. Proceed?`, - initial: true, - }); - - if (!proceed) { - process.exit(0); - } - } - - // Write to file. - logger.info(""); - const spinner = ora(`Writing components.json...`).start(); - const targetPath = path.resolve(cwd, "components.json"); - await fs.writeFile(targetPath, JSON.stringify(config, null, 2), "utf8"); - spinner.succeed(); - - return await resolveConfigPaths(cwd, config); -} - -export async function promptForMinimalConfig( - cwd: string, - defaultConfig: Config, - defaults = false -) { - const highlight = (text: string) => chalk.cyan(text); - let style = defaultConfig.style; - let baseColor = defaultConfig.tailwind.baseColor; - let cssVariables = defaultConfig.tailwind.cssVariables; - - if (!defaults) { - const styles = await getRegistryStyles(); - const baseColors = await getRegistryBaseColors(); - - const options = await prompts([ - { - type: "select", - name: "style", - message: `Which ${highlight("style")} would you like to use?`, - choices: styles.map((style) => ({ - title: style.label, - value: style.name, - })), - }, - { - type: "select", - name: "tailwindBaseColor", - message: `Which color would you like to use as ${highlight( - "base color" - )}?`, - choices: baseColors.map((color) => ({ - title: color.label, - value: color.name, - })), - }, - { - type: "toggle", - name: "tailwindCssVariables", - message: `Would you like to use ${highlight( - "CSS variables" - )} for colors?`, - initial: defaultConfig?.tailwind.cssVariables, - active: "yes", - inactive: "no", - }, - ]); - - style = options.style; - baseColor = options.tailwindBaseColor; - cssVariables = options.tailwindCssVariables; - } - - const config = rawConfigSchema.parse({ - $schema: defaultConfig?.$schema, - style, - tailwind: { - ...defaultConfig?.tailwind, - baseColor, - cssVariables, - }, - aliases: defaultConfig?.aliases, - }); - - // Write to file. - logger.info(""); - const spinner = ora(`Writing components.json...`).start(); - const targetPath = path.resolve(cwd, "components.json"); - await fs.writeFile(targetPath, JSON.stringify(config, null, 2), "utf8"); - spinner.succeed(); - - return await resolveConfigPaths(cwd, config); -} - -export async function runInit(cwd: string, config: Config) { - const spinner = ora(`Initializing project...`)?.start(); - - // Ensure all resolved paths directories exist. - for (const [key, resolvedPath] of Object.entries(config.resolvedPaths)) { - // Determine if the path is a file or directory. - // TODO: is there a better way to do this? - let dirname = path.extname(resolvedPath) - ? path.dirname(resolvedPath) - : resolvedPath; - - // If the utils alias is set to something like "@/lib/utils", - // assume this is a file and remove the "utils" file name. - // TODO: In future releases we should add support for individual utils. - if (key === "utils" && resolvedPath.endsWith("/utils")) { - // Remove /utils at the end. - dirname = dirname.replace(/\/utils$/, ""); - } - - if (!existsSync(dirname)) { - await fs.mkdir(dirname, { recursive: true }); - } - } - - // const extension = "ts"; - - const tailwindConfigExtension = path.extname( - config.resolvedPaths.tailwindConfig - ); - - let tailwindConfigTemplate: string; - if (tailwindConfigExtension === ".ts") { - tailwindConfigTemplate = config.tailwind.cssVariables - ? templates.TAILWIND_CONFIG_TS_WITH_VARIABLES - : templates.TAILWIND_CONFIG_TS; - } else { - tailwindConfigTemplate = config.tailwind.cssVariables - ? templates.TAILWIND_CONFIG_WITH_VARIABLES - : templates.TAILWIND_CONFIG; - } - - // Write tailwind config. - await fs.writeFile( - config.resolvedPaths.tailwindConfig, - template(tailwindConfigTemplate)({ - prefix: config.tailwind.prefix, - }), - "utf8" - ); - - // Write css file. - const baseColor = await getRegistryBaseColor(config.tailwind.baseColor); - if (baseColor) { - await fs.writeFile( - config.resolvedPaths.tailwindCss, - config.tailwind.cssVariables - ? config.tailwind.prefix - ? applyPrefixesCss(baseColor.cssVarsTemplate, config.tailwind.prefix) - : baseColor.cssVarsTemplate - : baseColor.inlineColorsTemplate, - "utf8" - ); - } - - // Write cn file. - await fs.writeFile( - `${config.resolvedPaths.utils}.ts`, - templates.UTILS, - "utf8" - ); - - spinner?.succeed(); - - // Install dependencies. - const dependenciesSpinner = ora(`Installing dependencies...`)?.start(); - const packageManager = await getPackageManager(cwd); - - // TODO: add support for other icon libraries. - const deps = [...PROJECT_DEPENDENCIES]; - - await execa( - packageManager, - [packageManager === "npm" ? "install" : "add", ...deps], - { - cwd, - } - ); - dependenciesSpinner?.succeed(); -} diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts deleted file mode 100644 index 7d5a69e..0000000 --- a/packages/cli/src/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env node -import { add } from "@/src/commands/add"; -import { diff } from "@/src/commands/diff"; -import { init } from "@/src/commands/init"; -import { Command } from "commander"; - -import { getPackageInfo } from "./utils/get-package-info"; - -process.on("SIGINT", () => process.exit(0)); -process.on("SIGTERM", () => process.exit(0)); - -async function main() { - const packageInfo = await getPackageInfo(); - - const program = new Command() - .name("shadcn-ng") - .description("add components and dependencies to your project") - .version( - packageInfo.version || "1.0.0", - "-v, --version", - "display the version number" - ); - - program.addCommand(init).addCommand(add).addCommand(diff); - - program.parse(); -} - -main(); diff --git a/packages/cli/src/utils/get-config.ts b/packages/cli/src/utils/get-config.ts deleted file mode 100644 index 9c9101b..0000000 --- a/packages/cli/src/utils/get-config.ts +++ /dev/null @@ -1,99 +0,0 @@ -import path from "path"; -import { resolveImport } from "@/src/utils/resolve-import"; -import { cosmiconfig } from "cosmiconfig"; -import { loadConfig } from "tsconfig-paths"; -import { z } from "zod"; - -export const DEFAULT_STYLE = "default"; -export const DEFAULT_COMPONENTS = "@/components"; -export const DEFAULT_UTILS = "@/lib/utils"; -export const DEFAULT_TAILWIND_CSS = "src/styles.css"; -export const DEFAULT_TAILWIND_CONFIG = "tailwind.config.js"; -export const DEFAULT_TAILWIND_BASE_COLOR = "slate"; - -// TODO: Figure out if we want to support all cosmiconfig formats. -// A simple components.json file would be nice. -const explorer = cosmiconfig("components", { - searchPlaces: ["components.json"], -}); - -export const rawConfigSchema = z - .object({ - $schema: z.string().optional(), - style: z.string(), - tailwind: z.object({ - config: z.string(), - css: z.string(), - baseColor: z.string(), - cssVariables: z.boolean().default(true), - prefix: z.string().default("").optional(), - }), - aliases: z.object({ - components: z.string(), - utils: z.string(), - ui: z.string().optional(), - }), - }) - .strict(); - -export type RawConfig = z.infer; - -export const configSchema = rawConfigSchema.extend({ - resolvedPaths: z.object({ - tailwindConfig: z.string(), - tailwindCss: z.string(), - utils: z.string(), - components: z.string(), - ui: z.string(), - }), -}); - -export type Config = z.infer; - -export async function getConfig(cwd: string) { - const config = await getRawConfig(cwd); - - if (!config) { - return null; - } - - return await resolveConfigPaths(cwd, config); -} - -export async function resolveConfigPaths(cwd: string, config: RawConfig) { - // Read tsconfig.json. - const tsConfig = await loadConfig(cwd); - - if (tsConfig.resultType === "failed") { - throw new Error( - `Failed to load tsconfig.json. ${tsConfig.message ?? ""}`.trim() - ); - } - - return configSchema.parse({ - ...config, - resolvedPaths: { - tailwindConfig: path.resolve(cwd, config.tailwind.config), - tailwindCss: path.resolve(cwd, config.tailwind.css), - utils: await resolveImport(config.aliases["utils"], tsConfig), - components: await resolveImport(config.aliases["components"], tsConfig), - ui: config.aliases["ui"] - ? await resolveImport(config.aliases["ui"], tsConfig) - : await resolveImport(config.aliases["components"], tsConfig), - }, - }); -} - -export async function getRawConfig(cwd: string): Promise { - try { - const configResult = await explorer.search(cwd); - - if (!configResult) { - return null; - } - - return rawConfigSchema.parse(configResult.config); - } catch (error) { - throw new Error(`Invalid configuration found in ${cwd}/components.json.`); - } -} diff --git a/packages/cli/src/utils/get-package-info.ts b/packages/cli/src/utils/get-package-info.ts deleted file mode 100644 index 34f19a0..0000000 --- a/packages/cli/src/utils/get-package-info.ts +++ /dev/null @@ -1,9 +0,0 @@ -import path from "path"; -import fs from "fs-extra"; -import { type PackageJson } from "type-fest"; - -export function getPackageInfo() { - const packageJsonPath = path.join("package.json"); - - return fs.readJSONSync(packageJsonPath) as PackageJson; -} diff --git a/packages/cli/src/utils/get-package-manager.ts b/packages/cli/src/utils/get-package-manager.ts deleted file mode 100644 index 708d722..0000000 --- a/packages/cli/src/utils/get-package-manager.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { detect } from "@antfu/ni"; - -export async function getPackageManager( - targetDir: string -): Promise<"yarn" | "pnpm" | "bun" | "npm"> { - const packageManager = await detect({ programmatic: true, cwd: targetDir }); - - if (packageManager === "yarn@berry") return "yarn"; - if (packageManager === "pnpm@6") return "pnpm"; - if (packageManager === "bun") return "bun"; - - return packageManager ?? "npm"; -} diff --git a/packages/cli/src/utils/get-project-info.ts b/packages/cli/src/utils/get-project-info.ts deleted file mode 100644 index e32dac0..0000000 --- a/packages/cli/src/utils/get-project-info.ts +++ /dev/null @@ -1,108 +0,0 @@ -import path from "path"; -import { - Config, - RawConfig, - getConfig, - resolveConfigPaths, -} from "@/src/utils/get-config"; -import fg from "fast-glob"; -import fs, { pathExists } from "fs-extra"; -import { loadConfig } from "tsconfig-paths"; - -const PROJECT_SHARED_IGNORE = ["**/node_modules/**", "dist", "coverage"]; - -export async function getProjectConfig(cwd: string): Promise { - // Check for existing component config. - const existingConfig = await getConfig(cwd); - if (existingConfig) { - return existingConfig; - } - - const tailwindCssFile = await getTailwindCssFile(cwd); - const tsConfigAliasPrefix = await getTsConfigAliasPrefix(cwd); - - if (!tailwindCssFile || !tsConfigAliasPrefix) { - return null; - } - - const isTsx = await isTypeScriptProject(cwd); - - const config: RawConfig = { - $schema: "https://ui.adrianub.dev/schema.json", - style: "new-york", - tailwind: { - config: isTsx ? "tailwind.config.ts" : "tailwind.config.js", - baseColor: "zinc", - css: tailwindCssFile, - cssVariables: true, - prefix: "", - }, - aliases: { - utils: `${tsConfigAliasPrefix}/lib/utils`, - components: `${tsConfigAliasPrefix}/components`, - }, - }; - - return await resolveConfigPaths(cwd, config); -} - -export async function getTailwindCssFile(cwd: string) { - const files = await fg.glob("**/*.css", { - cwd, - deep: 3, - ignore: PROJECT_SHARED_IGNORE, - }); - - if (!files.length) { - return null; - } - - for (const file of files) { - const contents = await fs.readFile(path.resolve(cwd, file), "utf8"); - // Assume that if the file contains `@tailwind base` it's the main css file. - if (contents.includes("@tailwind base")) { - return file; - } - } - - return null; -} - -export async function getTsConfigAliasPrefix(cwd: string) { - const tsConfig = await loadConfig(cwd); - - if (tsConfig?.resultType === "failed" || !tsConfig?.paths) { - return null; - } - - // This assume that the first alias is the prefix. - for (const [alias, paths] of Object.entries(tsConfig.paths)) { - if (paths.includes("./*") || paths.includes("./src/*")) { - return alias.at(0); - } - } - - return null; -} - -export async function isTypeScriptProject(cwd: string) { - // Check if cwd has a tsconfig.json file. - return pathExists(path.resolve(cwd, "tsconfig.json")); -} - -export async function preFlight(cwd: string) { - // We need Tailwind CSS to be configured. - const tailwindConfig = await fg.glob("tailwind.config.*", { - cwd, - deep: 3, - ignore: PROJECT_SHARED_IGNORE, - }); - - if (!tailwindConfig.length) { - throw new Error( - "Tailwind CSS is not installed. Visit https://tailwindcss.com/docs/installation to get started." - ); - } - - return true; -} diff --git a/packages/cli/src/utils/handle-error.ts b/packages/cli/src/utils/handle-error.ts deleted file mode 100644 index cf8d5bc..0000000 --- a/packages/cli/src/utils/handle-error.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { logger } from "@/src/utils/logger"; - -export function handleError(error: unknown) { - if (typeof error === "string") { - logger.error(error); - process.exit(1); - } - - if (error instanceof Error) { - logger.error(error.message); - process.exit(1); - } - - logger.error("Something went wrong. Please try again."); - process.exit(1); -} diff --git a/packages/cli/src/utils/logger.ts b/packages/cli/src/utils/logger.ts deleted file mode 100644 index 4659730..0000000 --- a/packages/cli/src/utils/logger.ts +++ /dev/null @@ -1,19 +0,0 @@ -import chalk from "chalk"; - -export const logger = { - error(...args: unknown[]) { - console.log(chalk.red(...args)); - }, - warn(...args: unknown[]) { - console.log(chalk.yellow(...args)); - }, - info(...args: unknown[]) { - console.log(chalk.cyan(...args)); - }, - success(...args: unknown[]) { - console.log(chalk.green(...args)); - }, - break() { - console.log(""); - }, -}; diff --git a/packages/cli/src/utils/registry/index.ts b/packages/cli/src/utils/registry/index.ts deleted file mode 100644 index 0d640b2..0000000 --- a/packages/cli/src/utils/registry/index.ts +++ /dev/null @@ -1,156 +0,0 @@ -import path from "path"; -import { Config } from "@/src/utils/get-config"; -import { - registryBaseColorSchema, - registryIndexSchema, - registryItemWithContentSchema, - registryWithContentSchema, - stylesSchema, -} from "@/src/utils/registry/schema"; -import { HttpsProxyAgent } from "https-proxy-agent"; -import fetch from "node-fetch"; -import { z } from "zod"; - -const baseUrl = - process.env.COMPONENTS_REGISTRY_URL ?? "https://ui.adrianub.dev"; -const agent = process.env.https_proxy - ? new HttpsProxyAgent(process.env.https_proxy) - : undefined; - -export async function getRegistryIndex() { - try { - const [result] = await fetchRegistry(["index.json"]); - - return registryIndexSchema.parse(result); - } catch (error) { - throw new Error(`Failed to fetch components from registry.`); - } -} - -export async function getRegistryStyles() { - try { - const [result] = await fetchRegistry(["styles/index.json"]); - - return stylesSchema.parse(result); - } catch (error) { - throw new Error(`Failed to fetch styles from registry.`); - } -} - -export async function getRegistryBaseColors() { - return [ - { - name: "slate", - label: "Slate", - }, - { - name: "gray", - label: "Gray", - }, - { - name: "zinc", - label: "Zinc", - }, - { - name: "neutral", - label: "Neutral", - }, - { - name: "stone", - label: "Stone", - }, - ]; -} - -export async function getRegistryBaseColor(baseColor: string) { - try { - const [result] = await fetchRegistry([`colors/${baseColor}.json`]); - - return registryBaseColorSchema.parse(result); - } catch (error) { - throw new Error(`Failed to fetch base color from registry.`); - } -} - -export async function resolveTree( - index: z.infer, - names: string[] -) { - const tree: z.infer = []; - - for (const name of names) { - const entry = index.find((entry) => entry.name === name); - - if (!entry) { - continue; - } - - tree.push(entry); - - if (entry.registryDependencies) { - const dependencies = await resolveTree(index, entry.registryDependencies); - tree.push(...dependencies); - } - } - - return tree.filter( - (component, index, self) => - self.findIndex((c) => c.name === component.name) === index - ); -} - -export async function fetchTree( - style: string, - tree: z.infer -) { - try { - const paths = tree.map((item) => `styles/${style}/${item.name}.json`); - const result = await fetchRegistry(paths); - - return registryWithContentSchema.parse(result); - } catch (error) { - throw new Error(`Failed to fetch tree from registry.`); - } -} - -export async function getItemTargetPath( - config: Config, - item: Pick, "type">, - override?: string -) { - if (override) { - return override; - } - - if (item.type === "components:ui" && config.aliases.ui) { - return config.resolvedPaths.ui; - } - - const [parent, type] = item.type.split(":"); - if (!(parent in config.resolvedPaths)) { - return null; - } - - return path.join( - config.resolvedPaths[parent as keyof typeof config.resolvedPaths], - type - ); -} - -async function fetchRegistry(paths: string[]) { - try { - const results = await Promise.all( - paths.map(async (path) => { - const response = await fetch(`${baseUrl}/registry/${path}`, { - agent, - }); - return await response.json(); - }) - ); - - return results; - } catch (error) { - console.log(error); - throw new Error(`Failed to fetch registry from ${baseUrl}.`); - } -} diff --git a/packages/cli/src/utils/transformers/index.ts b/packages/cli/src/utils/transformers/index.ts deleted file mode 100644 index 7faee8e..0000000 --- a/packages/cli/src/utils/transformers/index.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { promises as fs } from "fs"; -import { tmpdir } from "os"; -import path from "path"; -import { Config } from "@/src/utils/get-config"; -import { registryBaseColorSchema } from "@/src/utils/registry/schema"; -import { transformCssVars } from "@/src/utils/transformers/transform-css-vars"; -import { transformImport } from "@/src/utils/transformers/transform-import"; -import { Project, ScriptKind, type SourceFile } from "ts-morph"; -import { z } from "zod"; - -import { transformTwPrefixes } from "./transform-tw-prefix"; - -export type TransformOpts = { - filename: string; - raw: string; - config: Config; - baseColor?: z.infer; -}; - -export type Transformer = ( - opts: TransformOpts & { - sourceFile: SourceFile; - } -) => Promise; - -const transformers: Transformer[] = [ - transformImport, - transformCssVars, - transformTwPrefixes, -]; - -const project = new Project({ - compilerOptions: {}, -}); - -async function createTempSourceFile(filename: string) { - const dir = await fs.mkdtemp(path.join(tmpdir(), "shadcn-")); - return path.join(dir, filename); -} - -export async function transform(opts: TransformOpts) { - const tempFile = await createTempSourceFile(opts.filename); - const sourceFile = project.createSourceFile(tempFile, opts.raw, { - scriptKind: ScriptKind.TSX, - }); - - for (const transformer of transformers) { - transformer({ sourceFile, ...opts }); - } - return sourceFile.getFullText(); -} diff --git a/packages/cli/src/utils/transformers/transform-css-vars.ts b/packages/cli/src/utils/transformers/transform-css-vars.ts deleted file mode 100644 index 46fd1b2..0000000 --- a/packages/cli/src/utils/transformers/transform-css-vars.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { registryBaseColorSchema } from "@/src/utils/registry/schema"; -import { Transformer } from "@/src/utils/transformers"; -import { SyntaxKind } from "ts-morph"; -import { z } from "zod"; - -export const transformCssVars: Transformer = async ({ - sourceFile, - config, - baseColor, -}) => { - // No transform if using css variables. - if (config.tailwind?.cssVariables || !baseColor?.inlineColors) { - return sourceFile; - } - - sourceFile.getDescendantsOfKind(SyntaxKind.StringLiteral).forEach((node) => { - const value = node.getText(); - if (value) { - const valueWithColorMapping = applyColorMapping( - value.replace(/"/g, ""), - baseColor.inlineColors - ); - node.replaceWithText(`"${valueWithColorMapping.trim()}"`); - } - }); - - return sourceFile; -}; - -// eg. hover:bg-primary-100 -> [hover, bg-primary, 100] -export function splitClassName(className: string): (string | null)[] { - if (!className.includes("/") && !className.includes(":")) { - return [null, className, null]; - } - - const parts: (string | null)[] = []; - // First we split to find the alpha. - let [rest, alpha] = className.split("/"); - - // Check if rest has a colon. - if (!rest.includes(":")) { - return [null, rest, alpha]; - } - - // Next we split the rest by the colon. - const split = rest.split(":"); - - // We take the last item from the split as the name. - const name = split.pop(); - - // We glue back the rest of the split. - const variant = split.join(":"); - - // Finally we push the variant, name and alpha. - parts.push(variant ?? null, name ?? null, alpha ?? null); - - return parts; -} - -const PREFIXES = ["bg-", "text-", "border-", "ring-offset-", "ring-"]; - -export function applyColorMapping( - input: string, - mapping: z.infer["inlineColors"] -) { - // Handle border classes. - if (input.includes(" border ")) { - input = input.replace(" border ", " border border-border "); - } - - // Build color mappings. - const classNames = input.split(" "); - const lightMode = new Set(); - const darkMode = new Set(); - for (let className of classNames) { - const [variant, value, modifier] = splitClassName(className); - const prefix = PREFIXES.find((prefix) => value?.startsWith(prefix)); - if (!prefix) { - if (!lightMode.has(className)) { - lightMode.add(className); - } - continue; - } - - const needle = value?.replace(prefix, ""); - if (needle && needle in mapping.light) { - lightMode.add( - [variant, `${prefix}${mapping.light[needle]}`] - .filter(Boolean) - .join(":") + (modifier ? `/${modifier}` : "") - ); - - darkMode.add( - ["dark", variant, `${prefix}${mapping.dark[needle]}`] - .filter(Boolean) - .join(":") + (modifier ? `/${modifier}` : "") - ); - continue; - } - - if (!lightMode.has(className)) { - lightMode.add(className); - } - } - - return [...Array.from(lightMode), ...Array.from(darkMode)].join(" ").trim(); -} diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json deleted file mode 100644 index 4318157..0000000 --- a/packages/cli/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "compilerOptions": { - "isolatedModules": false, - "baseUrl": ".", - "composite": false, - "declaration": true, - "declarationMap": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "inlineSources": false, - "moduleResolution": "node", - "noUnusedLocals": false, - "noUnusedParameters": false, - "preserveWatchOutput": true, - "skipLibCheck": true, - "strict": true, - "paths": { - "@/*": ["./*"] - } - }, - "include": ["src/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/packages/cli/tsup.config.ts b/packages/cli/tsup.config.ts deleted file mode 100644 index 5e496be..0000000 --- a/packages/cli/tsup.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig } from "tsup" - -export default defineConfig({ - clean: true, - dts: true, - entry: ["src/index.ts"], - format: ["esm"], - sourcemap: true, - minify: true, - target: "esnext", - outDir: "dist", -}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a13b9c0..fcafa9a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,100 +7,185 @@ settings: importers: .: + dependencies: + '@antfu/ni': + specifier: ^0.23.0 + version: 0.23.0 + chalk: + specifier: 5.2.0 + version: 5.2.0 + commander: + specifier: ^10.0.0 + version: 10.0.1 + cosmiconfig: + specifier: ^8.1.3 + version: 8.3.6(typescript@5.5.4) + diff: + specifier: ^5.1.0 + version: 5.2.0 + execa: + specifier: ^7.0.0 + version: 7.2.0 + fast-glob: + specifier: ^3.3.2 + version: 3.3.2 + fs-extra: + specifier: ^11.1.0 + version: 11.2.0 + https-proxy-agent: + specifier: ^6.2.0 + version: 6.2.1 + lodash.template: + specifier: ^4.5.0 + version: 4.5.0 + node-fetch: + specifier: ^3.3.0 + version: 3.3.2 + ora: + specifier: ^6.1.2 + version: 6.3.1 + prompts: + specifier: ^2.4.2 + version: 2.4.2 + ts-morph: + specifier: ^18.0.0 + version: 18.0.0 + tsconfig-paths: + specifier: ^4.2.0 + version: 4.2.0 + zod: + specifier: ^3.20.2 + version: 3.23.8 devDependencies: - '@changesets/changelog-github': - specifier: ^0.5.0 - version: 0.5.0 - '@changesets/cli': - specifier: ^2.27.7 - version: 2.27.7 - '@nx/js': - specifier: 19.5.6 - version: 19.5.6(@babel/traverse@7.25.3)(@types/node@22.4.1)(nx@19.5.6)(typescript@5.5.4)(verdaccio@5.32.0(typanion@3.14.0)) - cross-env: - specifier: ^7.0.3 - version: 7.0.3 - nx: - specifier: 19.5.6 - version: 19.5.6 - verdaccio: - specifier: ^5.0.4 - version: 5.32.0(typanion@3.14.0) - - apps/www: + '@antfu/eslint-config': + specifier: ^3.3.2 + version: 3.3.2(@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(@vue/compiler-sfc@3.3.10)(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)) + '@antfu/utils': + specifier: ^0.7.10 + version: 0.7.10 + '@types/diff': + specifier: ^5.0.3 + version: 5.2.2 + '@types/fs-extra': + specifier: ^11.0.1 + version: 11.0.4 + '@types/lodash.template': + specifier: ^4.5.1 + version: 4.5.3 + '@types/node': + specifier: ^22.5.4 + version: 22.5.4 + '@types/prompts': + specifier: ^2.4.2 + version: 2.4.9 + bumpp: + specifier: ^9.5.2 + version: 9.5.2(magicast@0.3.5) + eslint: + specifier: ^9.9.1 + version: 9.9.1(jiti@1.21.6) + esno: + specifier: ^4.7.0 + version: 4.7.0 + lint-staged: + specifier: ^15.2.10 + version: 15.2.10 + pnpm: + specifier: ^9.9.0 + version: 9.9.0 + simple-git-hooks: + specifier: ^2.11.1 + version: 2.11.1 + type-fest: + specifier: ^3.8.0 + version: 3.13.1 + typescript: + specifier: ^5.5.4 + version: 5.5.4 + unbuild: + specifier: ^2.0.0 + version: 2.0.0(sass@1.77.6)(typescript@5.5.4) + vite: + specifier: ^5.4.3 + version: 5.4.3(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + vitest: + specifier: ^2.0.5 + version: 2.0.5(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + + docs: dependencies: '@analogjs/astro-angular': specifier: ^1.7.2 - version: 1.7.2(ji6cl3wlb4m23dvqg7xxeumejq) + version: 1.8.1(lftbka73uudwbrml3ax5ill2iq) '@angular-devkit/build-angular': specifier: ^18.2.1 - version: 18.2.1(@angular/compiler-cli@18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(@angular/platform-server@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))))(@types/node@22.4.1)(chokidar@3.6.0)(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(typescript@5.5.4) + 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)(tailwindcss@3.4.13)(typescript@5.5.4) '@angular/animations': specifier: ^18.2.1 - version: 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) + 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.1(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.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 - version: 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + 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.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) + 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.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4) + 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 - version: 18.2.1(rxjs@7.8.1)(zone.js@0.14.10) + version: 18.2.5(rxjs@7.8.1)(zone.js@0.14.10) '@angular/forms': specifier: ^18.2.1 - version: 18.2.1(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.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.1 + version: 18.2.5 '@angular/platform-browser': specifier: ^18.2.1 - version: 18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) + 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.1(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))) + 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.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))) + 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.1(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)) + 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.1(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)))(@astrojs/tailwind@5.1.0(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4))) + 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/tailwind': specifier: ^5.1.0 - version: 5.1.0(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)) + 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) '@ng-icons/core': specifier: ^29.0.0 - version: 29.0.0(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + 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) '@ng-icons/lucide': specifier: ^29.0.0 - version: 29.0.0 + version: 29.5.0 '@ng-icons/radix-icons': specifier: ^29.0.0 - version: 29.0.0 + version: 29.5.0 '@pagefind/default-ui': specifier: ^1.1.0 - version: 1.1.0 + version: 1.1.1 '@radix-ng/primitives': specifier: ^0.10.0 - version: 0.10.0(@angular/cdk@18.2.1(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) + 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 - version: 4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4) + 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.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)) + 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 @@ -127,10 +212,10 @@ importers: version: 0.32.6 tailwind-merge: specifier: ^2.4.0 - version: 2.4.0 + version: 2.5.2 tailwindcss: specifier: ^3.4.4 - version: 3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)) + version: 3.4.13 tslib: specifier: ^2.7.0 version: 2.7.0 @@ -142,7 +227,7 @@ importers: version: 5.0.0 vfile: specifier: ^6.0.2 - version: 6.0.2 + version: 6.0.3 zone.js: specifier: ~0.14.10 version: 0.14.10 @@ -157,79 +242,6 @@ importers: specifier: ^3.3.3 version: 3.3.3 - packages/cli: - dependencies: - '@antfu/ni': - specifier: ^0.21.4 - version: 0.21.12 - chalk: - specifier: 5.2.0 - version: 5.2.0 - commander: - specifier: ^10.0.0 - version: 10.0.1 - cosmiconfig: - specifier: ^8.1.3 - version: 8.3.6(typescript@4.9.5) - diff: - specifier: ^5.1.0 - version: 5.2.0 - execa: - specifier: ^7.0.0 - version: 7.2.0 - fast-glob: - specifier: ^3.3.2 - version: 3.3.2 - fs-extra: - specifier: ^11.1.0 - version: 11.2.0 - https-proxy-agent: - specifier: ^6.2.0 - version: 6.2.1 - lodash.template: - specifier: ^4.5.0 - version: 4.5.0 - node-fetch: - specifier: ^3.3.0 - version: 3.3.2 - ora: - specifier: ^6.1.2 - version: 6.3.1 - prompts: - specifier: ^2.4.2 - version: 2.4.2 - ts-morph: - specifier: ^18.0.0 - version: 18.0.0 - tsconfig-paths: - specifier: ^4.2.0 - version: 4.2.0 - zod: - specifier: ^3.20.2 - version: 3.23.8 - devDependencies: - '@types/diff': - specifier: ^5.0.3 - version: 5.2.1 - '@types/fs-extra': - specifier: ^11.0.1 - version: 11.0.4 - '@types/lodash.template': - specifier: ^4.5.1 - version: 4.5.3 - '@types/prompts': - specifier: ^2.4.2 - version: 2.4.9 - tsup: - specifier: ^6.6.3 - version: 6.7.0(postcss@8.4.41)(ts-node@10.9.1(@types/node@22.4.1)(typescript@4.9.5))(typescript@4.9.5) - type-fest: - specifier: ^3.8.0 - version: 3.13.1 - typescript: - specifier: ^4.9.3 - version: 4.9.5 - packages: '@alloc/quick-lru@5.2.0': @@ -240,8 +252,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@analogjs/astro-angular@1.7.2': - resolution: {integrity: sha512-DCnAS2BUG43O21sUX/0nXuhGcJ9q7kPhKq728JGcW78UhDoZrs1MRJmbBpfw1htIgIFOV5gtiq1dKwvEL6LUiQ==} + '@analogjs/astro-angular@1.8.1': + resolution: {integrity: sha512-aBcx2QNMQv8t2uoITTjea7YXGfyFsjiDueDynfH3WV4er+MvCNVKLwrVA8x43k9hDJYUgbom8IwAQPBcM3+d3w==} peerDependencies: '@angular-devkit/build-angular': '>=16.0.0' '@angular/animations': '>=16.0.0' @@ -257,18 +269,23 @@ packages: tslib: ^2.4.0 zone.js: '>=0.13.3' - '@analogjs/vite-plugin-angular@1.7.2': - resolution: {integrity: sha512-G9GORO8yFsbF9mRaOmuhV9Wi7daJ9xktFZtjMKUG5s8tAj+TANZoC0aP+Aa2Uh6k4mxfoZywG+4R3AtWFtjiRg==} + '@analogjs/vite-plugin-angular@1.8.1': + resolution: {integrity: sha512-M7URKKDqAI2/OGe7G02Ch1hsGJ9ZL1u0p9YO9PO0LIJWuDKcsg0Y3KXJtK0GQ2RZ5ErBfxT89o8XYmtY7rP8Xw==} peerDependencies: '@angular-devkit/build-angular': ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - '@ngtools/webpack': ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + '@angular/build': ^18.0.0 + peerDependenciesMeta: + '@angular-devkit/build-angular': + optional: true + '@angular/build': + optional: true - '@angular-devkit/architect@0.1802.1': - resolution: {integrity: sha512-XTnJfCBMDQl3xF4w/eNrq821gbj2Ig1cqbzpRflhz4pqrANTAfHfPoIC7piWEZ60FNlHapzb6fvh6tJUGXG9og==} + '@angular-devkit/architect@0.1802.5': + 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/build-angular@18.2.1': - resolution: {integrity: sha512-ANsTWKjIlEvJ6s276TbwnDhkoHhQDfsNiRFUDRGBZu94UNR78ImQZSyKYGHJOeQQH6jpBtraA1rvW5WKozAtlw==} + '@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'} peerDependencies: '@angular/compiler-cli': ^18.0.0 @@ -308,15 +325,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.1802.1': - resolution: {integrity: sha512-xOP9Hxkj/mWYdMTa/8uNxFTv7z+3UiGdt4VAO7vetV5qkU/S9rRq8FEKviCc2llXfwkhInSgeeHpWKdATa+YIQ==} + '@angular-devkit/build-webpack@0.1802.5': + resolution: {integrity: sha512-6qkcrWBdkxojCVHGWcdJaz4G+7QTjFvmc+3g8xvLc9sYvJq1I059gfXhDnC0FxiA0MT4cY/26ECYWUHTD5CJLQ==} 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: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 - '@angular-devkit/core@18.2.1': - resolution: {integrity: sha512-fSuGj6CxiTFR+yjuVcaWqaVb5Wts39CSBYRO1BlsOlbuWFZ2NKC/BAb5bdxpB31heCBJi7e3XbPvcMMJIcnKlA==} + '@angular-devkit/core@18.2.5': + resolution: {integrity: sha512-r9TumPlJ8PvA2+yz4sp+bUHgtznaVKzhvXTN5qL1k4YP8LJ7iZWMR2FOP+HjukHZOTsenzmV9pszbogabqwoZQ==} 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 @@ -324,14 +341,14 @@ packages: chokidar: optional: true - '@angular/animations@18.2.1': - resolution: {integrity: sha512-jit452yuE6DMVV09E6RAjgapgw64mMVH31ccpPvMDekzPsTuP3KNKtgRFU/k2DFhYJvyczM1AqqlgccE/JGaRw==} + '@angular/animations@18.2.5': + resolution: {integrity: sha512-IlXtW/Nj48ZzjHUzH1TykZcSR64ScJx39T3IHnjV2z/bVATzZ36JGoadQHdqpJNKBodYJNgtJCGLCbgAvGWY2g==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/core': 18.2.1 + '@angular/core': 18.2.5 - '@angular/build@18.2.1': - resolution: {integrity: sha512-HwzjB+I31cAtjTTbbS2NbayzfcWthaKaofJlSmZIst3PN+GwLZ8DU0DRpd/xu5AXkk+DoAIWd+lzUIaqngz6ow==} + '@angular/build@18.2.5': + resolution: {integrity: sha512-XWkmjzgeUga0SJ0lYSYcTuYOWTyqcln2mNfBp7Ae/GZ+/7+APbedsIZEiZGZwveOIyOpTM5wguNSoe9khDl5Ig==} 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: '@angular/compiler-cli': ^18.0.0 @@ -356,91 +373,143 @@ packages: tailwindcss: optional: true - '@angular/cdk@18.2.1': - resolution: {integrity: sha512-6y4MmpEPXze6igUHkLsBUPkxw32F8+rmW0xVXZchkSyGlFgqfh53ueXoryWb0qL4s5enkNY6AzXnKAqHfPNkVQ==} + '@angular/cdk@18.2.5': + resolution: {integrity: sha512-HLg5cfrIrgNIJJ+0v3kLieHeLPJLFNOBO359holXOrKUPRG+XQ3CT8EzSvREFm1XkaSEsDC0+dnG0ouNhOPFpQ==} peerDependencies: '@angular/common': ^18.0.0 || ^19.0.0 '@angular/core': ^18.0.0 || ^19.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/common@18.2.1': - resolution: {integrity: sha512-N0ZJO1/iU9UhprplZRPvBcdRgA/i6l6Ng5gXs5ymHBJ0lxsB+mDVCmC4jISjR9gAWc426xXwLaOpuP5Gv3f/yg==} + '@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} peerDependencies: - '@angular/core': 18.2.1 + '@angular/core': 18.2.5 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@18.2.1': - resolution: {integrity: sha512-D+Qba0r6RfHfffzrebGYp54h05AxpkagLjit/GczKNgWSP1gIgZxSfi88D+GvFmeWvZxWN1ecAQ+yqft9hJqWg==} + '@angular/compiler-cli@18.2.5': + resolution: {integrity: sha512-CCCtZobUTUfId/RTYtuDCw5R1oK0w65hdAUMRP1MdGmd8bb8DKJA86u1QCWwozL3rbXlIIX4ognQ6urQ43k/Gw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} hasBin: true peerDependencies: - '@angular/compiler': 18.2.1 + '@angular/compiler': 18.2.5 typescript: '>=5.4 <5.6' - '@angular/compiler@18.2.1': - resolution: {integrity: sha512-5e9ygKEcsBoV6xpaGKVrtsLxLETlrM0oB7twl4qG/xuKYqCLj8cRQMcAKSqDfTPzWMOAQc7pHdk+uFVo/8dWHA==} + '@angular/compiler@18.2.5': + resolution: {integrity: sha512-vcqe9x4dGGAnMfPhEpcZyiSVgAiqJeK80LqP1vWoAmBR+HeOqAilSv6SflcLAtuTzwgzMMAvD2T+SMCgUvaqww==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/core': 18.2.1 + '@angular/core': 18.2.5 peerDependenciesMeta: '@angular/core': optional: true - '@angular/core@18.2.1': - resolution: {integrity: sha512-9KrSpJ65UlJZNXrE18NszcfOwb5LZgG+LYi5Doe7amt218R1bzb3trvuAm0ZzMaoKh4ugtUCkzEOd4FALPEX6w==} + '@angular/core@18.2.5': + resolution: {integrity: sha512-5BLVc5gXxzanQkADNS9WPsor3vNF5nQcyIHBi5VScErwM5vVZ7ATH1iZwaOg1ykDEVTFVhKDwD0X1aaqGDbhmQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.14.10 - '@angular/forms@18.2.1': - resolution: {integrity: sha512-T7z8KUuj2PoPxrMrAruQVJha+x4a9Y6IrKYtArgOQQlTwCEJuqpVYuOk5l3fwWpHE9bVEjvgkAMI1D5YXA/U6w==} + '@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.1 - '@angular/core': 18.2.1 - '@angular/platform-browser': 18.2.1 + '@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.1': - resolution: {integrity: sha512-JI4oox9ELNdDVg0uJqCwgyFoK4XrowV14wSoNpGhpTLModRg3eDS6q+8cKn27cjTQRZvpReyYSTfiZMB8j4eqQ==} + '@angular/language-service@18.2.5': + resolution: {integrity: sha512-JE6ck4UWXayiG8ptJJtkrKCjy+5Ftktgsoj4QGdQzMhbpia7Wge5XDj28o+bwEFndRnP6ihRtud63IvOz9aKFQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} - '@angular/platform-browser-dynamic@18.2.1': - resolution: {integrity: sha512-tYJHtshbaKrtnRA15k3vrveSVBqkVUGhINvGugFA2vMtdTOfhfPw+hhzYrcwJibgU49rHogCfI9mkIbpNRYntA==} + '@angular/platform-browser-dynamic@18.2.5': + resolution: {integrity: sha512-5u0IuAt1r5e2u2vSKhp3phnaf6hH89B/q7GErfPse1sdDfNI6wHVppxai28PAfAj9gwooJun6MjFWhJFLzS44A==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/common': 18.2.1 - '@angular/compiler': 18.2.1 - '@angular/core': 18.2.1 - '@angular/platform-browser': 18.2.1 + '@angular/common': 18.2.5 + '@angular/compiler': 18.2.5 + '@angular/core': 18.2.5 + '@angular/platform-browser': 18.2.5 - '@angular/platform-browser@18.2.1': - resolution: {integrity: sha512-hQABX7QotGmCIR3EhCBCDh5ZTvQao+JkuK5CCw2G1PkRfJMBwEpjNqnyhz41hZhWiGlucp9jgbeypppW+mIQEw==} + '@angular/platform-browser@18.2.5': + resolution: {integrity: sha512-PoX9idwnOpTJBlujzZ2nFGOsmCnZzOH7uNSWIR7trdoq0b1AFXfrxlCQ36qWamk7bbhJI4H28L8YTmKew/nXDA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/animations': 18.2.1 - '@angular/common': 18.2.1 - '@angular/core': 18.2.1 + '@angular/animations': 18.2.5 + '@angular/common': 18.2.5 + '@angular/core': 18.2.5 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@18.2.1': - resolution: {integrity: sha512-xU/7EGYk/HXAY2V7VEzBx4YcVQe3rPuojXPubdgKJ8ueQ7XVtwumv/LHM72/Yn8ChvYYaoGLtM7nI2rG1MVAag==} + '@angular/platform-server@18.2.5': + resolution: {integrity: sha512-or7FA4IfNOcxPLgoA4XISuOTFM00ScKX9+34EZL3TBPBoAirt1xb/6QPJjiH30BPx7lqhE4F2pd9gEJu0sKaPA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/animations': 18.2.1 - '@angular/common': 18.2.1 - '@angular/compiler': 18.2.1 - '@angular/core': 18.2.1 - '@angular/platform-browser': 18.2.1 + '@angular/animations': 18.2.5 + '@angular/common': 18.2.5 + '@angular/compiler': 18.2.5 + '@angular/core': 18.2.5 + '@angular/platform-browser': 18.2.5 + + '@antfu/eslint-config@3.3.2': + resolution: {integrity: sha512-cHWbGP7CccmuUz/Aj6KORuLitkxuj2sONX+4PN+fvfJKTkVc2WXs9xlhO4AxhF1CU4Pn05M07OjDBXErqEmHzw==} + hasBin: true + peerDependencies: + '@eslint-react/eslint-plugin': ^1.5.8 + '@prettier/plugin-xml': ^3.4.1 + '@unocss/eslint-plugin': '>=0.50.0' + astro-eslint-parser: ^1.0.2 + eslint: ^9.5.0 + eslint-plugin-astro: ^1.2.0 + eslint-plugin-format: '>=0.1.0' + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-refresh: ^0.4.4 + eslint-plugin-solid: ^0.14.3 + eslint-plugin-svelte: '>=2.35.1' + prettier-plugin-astro: ^0.13.0 + prettier-plugin-slidev: ^1.0.5 + svelte-eslint-parser: '>=0.37.0' + peerDependenciesMeta: + '@eslint-react/eslint-plugin': + optional: true + '@prettier/plugin-xml': + optional: true + '@unocss/eslint-plugin': + optional: true + astro-eslint-parser: + optional: true + eslint-plugin-astro: + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-refresh: + optional: true + eslint-plugin-solid: + optional: true + eslint-plugin-svelte: + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-slidev: + optional: true + svelte-eslint-parser: + optional: true - '@antfu/ni@0.21.12': - resolution: {integrity: sha512-2aDL3WUv8hMJb2L3r/PIQWsTLyq7RQr3v9xD16fiz6O8ys1xEyLhhTOv8gxtZvJiTzjTF5pHoArvRdesGL1DMQ==} + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} + + '@antfu/ni@0.23.0': + resolution: {integrity: sha512-R5/GkA3PfGewAXLzz6lN5XagunF6PKeDtWt8dbZQXvHfebLS0qEczV+Azg/d+tKgSh6kRBpxvu8oSjARdPtw0A==} hasBin: true + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + '@astrojs/check@0.9.3': resolution: {integrity: sha512-I6Dz45bMI5YRbp4yK2LKWsHH3/kkHRGdPGruGkLap6pqxhdcNh7oCgN04Ac+haDfc9ow5BYPGPmEhkwef15GQQ==} hasBin: true @@ -453,8 +522,8 @@ packages: '@astrojs/internal-helpers@0.4.1': resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} - '@astrojs/language-server@2.14.1': - resolution: {integrity: sha512-mkKtCTPRD4dyKdAqIP0zmmPyO/ZABOqFESnaVca47Dg/sAagJnDSEsDUDzNbHFh1+9Dj1o5y4iwNsxJboGdaNg==} + '@astrojs/language-server@2.14.2': + resolution: {integrity: sha512-daUJ/+/2pPF3eGG4tVdXKyw0tabUDrJKwLzU8VTuNhEHIn3VZAIES6VT3+mX0lmKcMiKM8/bjZdfY+fPfmnsMA==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -468,8 +537,8 @@ packages: '@astrojs/markdown-remark@5.2.0': resolution: {integrity: sha512-vWGM24KZXz11jR3JO+oqYU3T2qpuOi4uGivJ9SQLCAI01+vEkHC60YJMRvHPc+hwd60F7euNs1PeOEixIIiNQw==} - '@astrojs/mdx@3.1.3': - resolution: {integrity: sha512-hOM4dMM4RfJI254d3p/AnOZuk2VyKszRtuY5FBm+Xc4XdhIpGrR56OXMNEcWchtwz4HQyPe/eJSgvBjSROcQIQ==} + '@astrojs/mdx@3.1.7': + resolution: {integrity: sha512-8lGdCt+S0TrZgQpbcP3fQJc4cTeacAirtz9TpAMtHCWrQGW8slKt3WG4/0N+bhZgYRC4h5AT5drzFz+y3wvmsg==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} peerDependencies: astro: ^4.8.0 @@ -488,15 +557,15 @@ packages: '@astrojs/tailwind': ^5.0.0 tailwindcss: ^3.3.3 - '@astrojs/starlight@0.26.1': - resolution: {integrity: sha512-0qNYWZJ+ZOdSfM7du6fGuwUhyTHtAeRIl0zYe+dF0TxDvcakplO1SYLbGGX6lEVYE3PdBne7dcJww85bXZJIIQ==} + '@astrojs/starlight@0.26.4': + resolution: {integrity: sha512-ks+GAYkYGZxuCjAJR88HFafY4/K73PtkbYniGaptmdB0yDJY/HwJ/s1vIuig3j63oq9otQfuZFByxWsb4x1urg==} peerDependencies: astro: ^4.8.6 - '@astrojs/tailwind@5.1.0': - resolution: {integrity: sha512-BJoCDKuWhU9FT2qYg+fr6Nfb3qP4ShtyjXGHKA/4mHN94z7BGcmauQK23iy+YH5qWvTnhqkd6mQPQ1yTZTe9Ig==} + '@astrojs/tailwind@5.1.1': + resolution: {integrity: sha512-LwurA10uIKcGRxQP2R81RvAnBT0WPKzBntXZBF4hrAefDgM5Uumn0nsGr6tdIjSARgYz4X+Cq/Vh78t3bql3yw==} peerDependencies: - astro: ^3.0.0 || ^4.0.0 + astro: ^3.0.0 || ^4.0.0 || ^5.0.0-beta.0 tailwindcss: ^3.0.24 '@astrojs/telemetry@3.1.0': @@ -506,22 +575,42 @@ packages: '@astrojs/yaml2ts@0.2.1': resolution: {integrity: sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==} + '@babel/code-frame@7.24.2': + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} + '@babel/code-frame@7.24.7': resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.2': - resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} + '@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'} + + '@babel/core@7.24.5': + resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} engines: {node: '>=6.9.0'} '@babel/core@7.25.2': 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'} + '@babel/generator@7.25.6': + resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.24.7': resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} @@ -530,18 +619,22 @@ packages: resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.23.6': + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.25.2': resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.25.0': - resolution: {integrity: sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==} + '@babel/helper-create-class-features-plugin@7.25.4': + resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.25.0': - resolution: {integrity: sha512-q0T+dknZS+L5LDazIP+02gEZITG5unzvb6yIjcmj5i0eFrs5ToBV2m2JGH4EsE/gtP8ygEGLGApBgRIZkTm7zg==} + '@babel/helper-create-regexp-features-plugin@7.25.2': + resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -551,14 +644,36 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-environment-visitor@7.22.20': + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-function-name@7.23.0': + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-hoist-variables@7.22.5': + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.24.8': 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'} + '@babel/helper-module-transforms@7.24.5': + resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.25.2': resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} @@ -585,6 +700,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-simple-access@7.24.5': + resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-simple-access@7.24.7': resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} @@ -593,18 +712,34 @@ 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'} + '@babel/helper-string-parser@7.24.1': + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.8': resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.5': + resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.7': 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'} @@ -613,24 +748,31 @@ packages: resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.0': - resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} + '@babel/helpers@7.24.5': + resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.25.6': + resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.5': + resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.25.3': - resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} + '@babel/parser@7.24.5': + resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.0': - resolution: {integrity: sha512-dG0aApncVQwAUJa8tP1VHTnmU67BeIQvKafd3raEx315H54FfkZSz3B/TT+33ZQAjatGJA79gZqTtqL5QZUKXw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/parser@7.25.6': + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + engines: {node: '>=6.0.0'} + hasBin: true '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3': resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==} @@ -662,12 +804,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-proposal-decorators@7.24.7': - resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} @@ -690,12 +826,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-decorators@7.24.7': - resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-dynamic-import@7.8.3': resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: @@ -706,8 +836,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.24.7': - resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} + '@babel/plugin-syntax-import-assertions@7.25.6': + resolution: {integrity: sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -718,6 +848,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-attributes@7.25.6': + resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-meta@7.10.4': resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -776,12 +912,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.24.7': - resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -818,8 +948,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.24.7': - resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} + '@babel/plugin-transform-class-properties@7.25.4': + resolution: {integrity: sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -830,8 +960,8 @@ packages: peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.25.0': - resolution: {integrity: sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==} + '@babel/plugin-transform-classes@7.25.4': + resolution: {integrity: sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -902,12 +1032,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.24.7': - resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.25.2': resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==} engines: {node: '>=6.9.0'} @@ -1004,8 +1128,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.24.7': - resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} + '@babel/plugin-transform-private-methods@7.25.4': + resolution: {integrity: sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1076,12 +1200,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.25.0': - resolution: {integrity: sha512-LZicxFzHIw+Sa3pzgMgSz6gdpsdkfiMObHUzhSIrwKF0+/rP/nuR49u79pSS+zIFJ1FeGeqQD2Dq4QGFbOVvSw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.24.7': resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} engines: {node: '>=6.9.0'} @@ -1100,18 +1218,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.24.7': - resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} + '@babel/plugin-transform-unicode-sets-regex@7.25.4': + resolution: {integrity: sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.25.0': - resolution: {integrity: sha512-vYAA8PrCOeZfG4D87hmw1KJ1BPubghXP1e2MacRFwECGNKL76dkA38JEwYllbvQCpf/kLxsTtir0b8MtxKoVCw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/preset-env@7.25.3': resolution: {integrity: sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==} engines: {node: '>=6.9.0'} @@ -1123,12 +1235,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-typescript@7.24.7': - resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/regjsgen@0.8.0': resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} @@ -1136,91 +1242,46 @@ packages: resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + '@babel/standalone@7.24.5': + resolution: {integrity: sha512-Sl8oN9bGfRlNUA2jzfzoHEZxFBDliBlwi5mPVCAWKSlBNkXXJOHpu7SDOqjF6mRoTa6GNX/1kAWG3Tr+YQ3N7A==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.3': - resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} + '@babel/template@7.24.0': + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.2': - resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - '@changesets/apply-release-plan@7.0.4': - resolution: {integrity: sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==} - - '@changesets/assemble-release-plan@6.0.3': - resolution: {integrity: sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==} - - '@changesets/changelog-git@0.2.0': - resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} - - '@changesets/changelog-github@0.5.0': - resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} - - '@changesets/cli@2.27.7': - resolution: {integrity: sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==} - hasBin: true - - '@changesets/config@3.0.2': - resolution: {integrity: sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==} - - '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - - '@changesets/get-dependents-graph@2.1.1': - resolution: {integrity: sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==} - - '@changesets/get-github-info@0.6.0': - resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - - '@changesets/get-release-plan@4.0.3': - resolution: {integrity: sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==} - - '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - - '@changesets/git@3.0.0': - resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} - - '@changesets/logger@0.1.0': - resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} - - '@changesets/parse@0.4.0': - resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} - - '@changesets/pre@2.0.0': - resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} - - '@changesets/read@0.6.0': - resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} + '@babel/traverse@7.24.5': + resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} + engines: {node: '>=6.9.0'} - '@changesets/should-skip-package@0.1.0': - resolution: {integrity: sha512-FxG6Mhjw7yFStlSM7Z0Gmg3RiyQ98d/9VpQAZ3Fzr59dCOM9G6ZdYbjiSAt0XtFr9JR5U2tBaJWPjrkGGc618g==} + '@babel/traverse@7.25.6': + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + engines: {node: '>=6.9.0'} - '@changesets/types@4.1.0': - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + '@babel/types@7.24.5': + resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} + engines: {node: '>=6.9.0'} - '@changesets/types@6.0.0': - resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + '@babel/types@7.25.6': + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + engines: {node: '>=6.9.0'} - '@changesets/write@0.3.1': - resolution: {integrity: sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==} + '@clack/core@0.3.4': + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + '@clack/prompts@0.7.0': + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + bundledDependencies: + - is-unicode-supported '@ctrl/tinycolor@4.1.0': resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} engines: {node: '>=14'} - '@cypress/request@3.0.1': - resolution: {integrity: sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==} - engines: {node: '>= 6'} - '@discoveryjs/json-ext@0.6.1': resolution: {integrity: sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==} engines: {node: '>=14.17.0'} @@ -1246,14 +1307,28 @@ packages: '@emmetio/stream-reader@2.2.0': resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} - '@emnapi/core@1.2.0': - resolution: {integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==} - '@emnapi/runtime@1.2.0': resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} - '@emnapi/wasi-threads@1.0.1': - resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + '@es-joy/jsdoccomment@0.43.1': + resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==} + engines: {node: '>=16'} + + '@es-joy/jsdoccomment@0.48.0': + resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} + engines: {node: '>=16'} + + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} @@ -1267,8 +1342,14 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.17.19': - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1285,8 +1366,14 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.17.19': - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1303,8 +1390,14 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.17.19': - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -1321,8 +1414,14 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.17.19': - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -1339,8 +1438,14 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.17.19': - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -1357,8 +1462,14 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.17.19': - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -1375,8 +1486,14 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.17.19': - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1393,8 +1510,14 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.17.19': - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -1411,8 +1534,14 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.17.19': - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1429,8 +1558,14 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.17.19': - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1447,8 +1582,14 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.17.19': - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1465,8 +1606,14 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.17.19': - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1483,8 +1630,14 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.17.19': - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1501,8 +1654,14 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.17.19': - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1519,8 +1678,14 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.17.19': - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1537,8 +1702,14 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.17.19': - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1555,8 +1726,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.17.19': - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1579,8 +1756,14 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.17.19': - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1597,8 +1780,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.17.19': - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1615,8 +1804,14 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.17.19': - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1633,8 +1828,14 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.17.19': - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1651,8 +1852,14 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.17.19': - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1669,6 +1876,42 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-plugin-eslint-comments@4.4.0': + resolution: {integrity: sha512-yljsWl5Qv3IkIRmJ38h3NrHXFCm4EUl55M8doGTF6hvzvFF8kRpextgSrg2dwHev9lzBZyafCr9RelGIyQm6fw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/compat@1.1.1': + resolution: {integrity: sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.9.1': + resolution: {integrity: sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + 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==} @@ -1681,116 +1924,116 @@ packages: '@expressive-code/plugin-text-markers@0.35.6': resolution: {integrity: sha512-/k9eWVZSCs+uEKHR++22Uu6eIbHWEciVHbIuD8frT8DlqTtHYaaiwHPncO6KFWnGDz5i/gL7oyl6XmOi/E6GVg==} - '@img/sharp-darwin-arm64@0.33.4': - resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} + + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.33.4': - resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.2': - resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} - engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.2': - resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} - engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.0.2': - resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.0.2': - resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-s390x@1.0.2': - resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.0.2': - resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': - resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.0.2': - resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.33.4': - resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.33.4': - resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - '@img/sharp-linux-s390x@0.33.4': - resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==} - engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.33.4': - resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.33.4': - resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.33.4': - resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.33.4': - resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-ia32@0.33.4': - resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.33.4': - resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -1798,16 +2041,20 @@ packages: resolution: {integrity: sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==} engines: {node: '>=18'} - '@inquirer/core@9.0.10': - resolution: {integrity: sha512-TdESOKSVwf6+YWDz8GhS6nKscwzkIyakEzCLJ5Vh6O3Co2ClhCJ0A4MG909MUWfaWdpJm7DE45ii51/2Kat9tA==} + '@inquirer/core@9.2.1': + resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==} + engines: {node: '>=18'} + + '@inquirer/figures@1.0.6': + resolution: {integrity: sha512-yfZzps3Cso2UbM7WlxKwZQh2Hs6plrbjs1QnzQDZhK2DgyCo6D8AaHps9olkNcUFlcYERMqU3uJSp1gmy3s/qQ==} engines: {node: '>=18'} - '@inquirer/figures@1.0.5': - resolution: {integrity: sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==} + '@inquirer/type@1.5.5': + resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==} engines: {node: '>=18'} - '@inquirer/type@1.5.2': - resolution: {integrity: sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==} + '@inquirer/type@2.0.0': + resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==} engines: {node: '>=18'} '@isaacs/cliui@8.0.2': @@ -1818,10 +2065,6 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -1837,14 +2080,18 @@ packages: '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@jsdevtools/ez-spawn@3.0.4': + resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} + engines: {node: '>=10'} '@jsonjoy.com/base64@1.1.2': resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} @@ -1852,8 +2099,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.0.4': - resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==} + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -1897,12 +2144,6 @@ packages: cpu: [x64] os: [win32] - '@manypkg/find-root@1.1.0': - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} - - '@manypkg/get-packages@1.1.3': - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@mdx-js/mdx@3.0.1': resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} @@ -1936,23 +2177,21 @@ packages: cpu: [x64] os: [win32] - '@napi-rs/wasm-runtime@0.2.4': - resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - - '@ng-icons/core@29.0.0': - resolution: {integrity: sha512-HAPB4KbMMCkc7SEk/kKzyNzSIRO241bVtXWUMQPr/JuY5Gd7Jh2fFjdue0VIUBP3qjjCEMOhwdZV6zsefrVVaA==} + '@ng-icons/core@29.5.0': + resolution: {integrity: sha512-MpM8I/7uzUC7SKRt29d4ByCpKjk8sXTlOiLuBCTHG1uyI14jUZdpyhBwpCpGKpkqqmfxDkvN848hjhFiOKlBuA==} peerDependencies: + '@angular/common': '>=18.0.0' '@angular/core': '>=18.0.0' rxjs: ^6.5.3 || ^7.4.0 - '@ng-icons/lucide@29.0.0': - resolution: {integrity: sha512-sTkxb5rdRHtRyomKuQcT9s3OcJnA6WEF1e569PAXwxppswQcVoUceohkTaHkN43z2YqTNE7pcfMB35EmvpTI0g==} + '@ng-icons/lucide@29.5.0': + resolution: {integrity: sha512-+GUwNe8lo0HEqRbqmn0+XKD6uPMEnbTfgXYAEB2+e36Q9qYHdg8L3gNVjtgrE/rGqSqHnACTVzDoQ7Ro9GFB/Q==} - '@ng-icons/radix-icons@29.0.0': - resolution: {integrity: sha512-t7B2LVGMsrqrwhkjc8zLsw5v6AjBnx/vpDzu2KFF7DitXVDlqNG6HEcy6TVtVHgsNlRamtYR4OoBSZspDApFnw==} + '@ng-icons/radix-icons@29.5.0': + resolution: {integrity: sha512-fBk4Fd6NfMlqgrL6zIm0jT1xqBM/BRNiv3MUyT2eFGfCDdyO1ZAI7KRrQqQ6gvGmbaKCOcTJ9GLPayo0boYzXQ==} - '@ngtools/webpack@18.2.1': - resolution: {integrity: sha512-v86U3jOoy5R9ZWe9Q0LbHRx/IBw1lbn0ldBU+gIIepREyVvb9CcH/vAyIb2Fw1zaYvvfG1OyzdrHyW8iGXjdnQ==} + '@ngtools/webpack@18.2.5': + resolution: {integrity: sha512-L0n4eHObeqEOYRfSP+e4SeF/dmwxOIFy9xYvYCOUwOLrW4b3+a1+kkT30pqyfL72LFtpf0cmUwaWEFIcWl5PCg==} 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: '@angular/compiler-cli': ^18.0.0 @@ -1971,123 +2210,34 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nrwl/devkit@19.5.6': - resolution: {integrity: sha512-H7LGlwAktfL2GR4scwCfehuppmzcHJJt4C2PpiGEsfA74MKBw2/VGX15b29Mf36XbGS+Bx9vjvooZEt5HPCusw==} - - '@nrwl/js@19.5.6': - resolution: {integrity: sha512-mfTBvon1v/Ts1Crvv25raXGxpQe3cgPTNCP+D5SG6Vpe/vbLOYiBi90UhHIKXKZOQ73RRx+Wojgn+Zv5pDo13A==} - - '@nrwl/tao@19.5.6': - resolution: {integrity: sha512-p1bxEjW32bIHAiTp+PVdJpa2V9En2s9FigepHXyvmT2Aipisz96CKiDjexhPTjOZHUKtqA9FgmOIuVl3sBME3g==} - hasBin: true - - '@nrwl/workspace@19.5.6': - resolution: {integrity: sha512-k0Pria840szB3dIDCXOMbD4jbnaLCeGRYthE5duG5nPxTCbeMMu7pU1t0sv9IgpQZ/JrHeWliknWgaTlIguPug==} - - '@nx/devkit@19.5.6': - resolution: {integrity: sha512-zSToXLkhbAOQmqVTgUNHdLO0uOZz/iGwqEK4tuAhU5hhqTcpN1TZUI9BlINvtFJBLvbNroGrnIh0gTq9CPzVHw==} - peerDependencies: - nx: '>= 17 <= 20' - - '@nx/js@19.5.6': - resolution: {integrity: sha512-NNf6Zh4Z8k3dmkXkCUYrReH9ZpdAhvUQjwrWUHtmc5MnWTsQL12a01MwbMi4ReMzDLDjffDXjJFxYmbNYKaRzw==} - peerDependencies: - verdaccio: ^5.0.4 - peerDependenciesMeta: - verdaccio: - optional: true - - '@nx/nx-darwin-arm64@19.5.6': - resolution: {integrity: sha512-evEpUq571PQkhaLBR7ul5iqE2l97QS7Q37/rxoBuwJzyQ/QKHfNu5t032bR3KLyEOrv7golT10jMeoQlNeF7eQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@nx/nx-darwin-x64@19.5.6': - resolution: {integrity: sha512-o1tu0dOW7TZ80VN9N11FQL/3gHd1+t6NqtEmRClN0/sAh2MZyiBdbXv7UeN5HoKE7HAusiVFIxK3c1lxOvFtsQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@nx/nx-freebsd-x64@19.5.6': - resolution: {integrity: sha512-IUL0ROGpLUol9cuVJ7VeUvaB/ptxg7DOjMef1+LJeOgxl/SFNa0bj0kKpA/AQwujz6cLI7Ei7xLTVQOboNh1DA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - - '@nx/nx-linux-arm-gnueabihf@19.5.6': - resolution: {integrity: sha512-TGf1+cpWg5QiPEGW5kgxa1fVNyASMuqu+LvQ9CKhNYNz5EPD15yr/k6C0tOjgSXro3wi8TikTeG0Ln2hpmn6pw==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - - '@nx/nx-linux-arm64-gnu@19.5.6': - resolution: {integrity: sha512-4hZI5NmnBEAzr3NV/BtlPjbSVffLWGGCJ5tB/JB/NpW/vMtzOPCZ4RvsHuJMPprqHcXOdUnBgZFEcLbEMUXz0A==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@nx/nx-linux-arm64-musl@19.5.6': - resolution: {integrity: sha512-n0oIBblMN+nlcBUbrFUkRSyzKZVR+G1lzdZ3PuHVwLC664hkbijEBAdF2E321yRfv5ohQVY0UIYDZVFN2XhFUg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@nx/nx-linux-x64-gnu@19.5.6': - resolution: {integrity: sha512-IuoNo1bDHyJEeHom/n2m4+AA+UQ+Rlryvt9+bTdADclSFjmBLYCgbJwQRy7q9+vQk2mpQm0pQJv4d3XKCpDH+g==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@nx/nx-linux-x64-musl@19.5.6': - resolution: {integrity: sha512-FXtB8m/CSRkXLtDOAGfImO9OCUDIwYBssnvCVqX6PyPTBaVWo/GvX1O9WRbXSqSVIaJJTPn1aY/p6vptlGbDFw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@nx/nx-win32-arm64-msvc@19.5.6': - resolution: {integrity: sha512-aIDU84rjvxoqyUDIdN4VwS91Yec8bAtXOxjOFlF2acY2tXh0RjzmM+mkEP44nVAzFy0V1/cjzBKb6643FsEqdA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@nx/nx-win32-x64-msvc@19.5.6': - resolution: {integrity: sha512-zWB/2TjhNYKHbuPh++5hYitno3EpSFXrPND0I0VLec27WW7voRY9XQFFznA3omForU4FfmVhITcKCqzIb3EtpA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@nx/workspace@19.5.6': - resolution: {integrity: sha512-VkyHzSPI+++kLgftE6HA/jXcbn3zZwDYjhsrmSqwutj8BTuKhxs1YIL2gkzYVoTytF1wpWl3nk5MzqMGclptjA==} + '@oslojs/encoding@1.0.0': + resolution: {integrity: sha512-dyIB0SdZgMm5BhGwdSp8rMxEFIopLKxDG1vxIBaiogyom6ZqH2aXPb6DEC2WzOOWKdPSq1cxdNeRx2wAn1Z+ZQ==} - '@oslojs/encoding@0.4.1': - resolution: {integrity: sha512-hkjo6MuIK/kQR5CrGNdAPZhS01ZCXuWDRJ187zh6qqF2+yMHZpD9fAYpX8q2bOO6Ryhl3XpCT6kUX76N8hhm4Q==} - - '@pagefind/darwin-arm64@1.1.0': - resolution: {integrity: sha512-SLsXNLtSilGZjvqis8sX42fBWsWAVkcDh1oerxwqbac84HbiwxpxOC2jm8hRwcR0Z55HPZPWO77XeRix/8GwTg==} + '@pagefind/darwin-arm64@1.1.1': + resolution: {integrity: sha512-tZ9tysUmQpFs2EqWG2+E1gc+opDAhSyZSsgKmFzhnWfkK02YHZhvL5XJXEZDqYy3s1FAKhwjTg8XDxneuBlDZQ==} cpu: [arm64] os: [darwin] - '@pagefind/darwin-x64@1.1.0': - resolution: {integrity: sha512-QjQSE/L5oS1C8N8GdljGaWtjCBMgMtfrPAoiCmINTu9Y9dp0ggAyXvF8K7Qg3VyIMYJ6v8vg2PN7Z3b+AaAqUA==} + '@pagefind/darwin-x64@1.1.1': + resolution: {integrity: sha512-ChohLQ39dLwaxQv0jIQB/SavP3TM5K5ENfDTqIdzLkmfs3+JlzSDyQKcJFjTHYcCzQOZVeieeGq8PdqvLJxJxQ==} cpu: [x64] os: [darwin] - '@pagefind/default-ui@1.1.0': - resolution: {integrity: sha512-+XiAJAK++C64nQcD7s3Prdmd5S92lT05fwjOxm0L1jj80jbL+tmvcqkkFnPpoqhnicIPgcAX/Y5W0HRZnBt35w==} + '@pagefind/default-ui@1.1.1': + resolution: {integrity: sha512-ZM0zDatWDnac/VGHhQCiM7UgA4ca8jpjA+VfuTJyHJBaxGqZMQnm4WoTz9E0KFcue1Bh9kxpu7uWFZfwpZZk0A==} - '@pagefind/linux-arm64@1.1.0': - resolution: {integrity: sha512-8zjYCa2BtNEL7KnXtysPtBELCyv5DSQ4yHeK/nsEq6w4ToAMTBl0K06khqxdSGgjMSwwrxvLzq3so0LC5Q14dA==} + '@pagefind/linux-arm64@1.1.1': + resolution: {integrity: sha512-H5P6wDoCoAbdsWp0Zx0DxnLUrwTGWGLu/VI1rcN2CyFdY2EGSvPQsbGBMrseKRNuIrJDFtxHHHyjZ7UbzaM9EA==} cpu: [arm64] os: [linux] - '@pagefind/linux-x64@1.1.0': - resolution: {integrity: sha512-4lsg6VB7A6PWTwaP8oSmXV4O9H0IHX7AlwTDcfyT+YJo/sPXOVjqycD5cdBgqNLfUk8B9bkWcTDCRmJbHrKeCw==} + '@pagefind/linux-x64@1.1.1': + resolution: {integrity: sha512-yJs7tTYbL2MI3HT+ngs9E1BfUbY9M4/YzA0yEM5xBo4Xl8Yu8Qg2xZTOQ1/F6gwvMrjCUFo8EoACs6LRDhtMrQ==} cpu: [x64] os: [linux] - '@pagefind/windows-x64@1.1.0': - resolution: {integrity: sha512-OboCM76BcMKT9IoSfZuFhiqMRgTde8x4qDDvKulFmycgiJrlL5WnIqBHJLQxZq+o2KyZpoHF97iwsGAm8c32sQ==} + '@pagefind/windows-x64@1.1.1': + resolution: {integrity: sha512-b7/qPqgIl+lMzkQ8fJt51SfguB396xbIIR+VZ3YrL2tLuyifDJ1wL5mEm+ddmHxJ2Fki340paPcDan9en5OmAw==} cpu: [x64] os: [win32] @@ -2095,12 +2245,61 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@radix-ng/primitives@0.10.0': resolution: {integrity: sha512-KZpmHnwFkAhhdSlKH1oKavvb3HGNIocrIOAhISIhK4tHNebYbU2AkdoKlEr+o4CAZU1RPNwkQ09eWKhIGVvy3g==} peerDependencies: '@angular/cdk': ^18.0.0 '@angular/core': ^18.0.0 + '@rollup/plugin-alias@5.1.0': + resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-commonjs@25.0.7': + resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@15.2.3': + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@5.0.5': + resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/pluginutils@5.1.0': resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} @@ -2115,115 +2314,196 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.21.2': + resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.20.0': resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.21.2': + resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.20.0': resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.21.2': + resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.20.0': resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.21.2': + resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-linux-arm-gnueabihf@4.20.0': resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.21.2': + resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.20.0': resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.21.2': + resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.20.0': resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.21.2': + resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.20.0': resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.21.2': + resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': + resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.20.0': resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.21.2': + resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.20.0': resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.21.2': + resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.20.0': resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.21.2': + resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.20.0': resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.21.2': + resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.20.0': resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.21.2': + resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.20.0': resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.21.2': + resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.20.0': resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} cpu: [x64] os: [win32] - '@shikijs/core@1.13.0': - resolution: {integrity: sha512-Mj5NVfbAXcD1GnwOTSPl8hBn/T8UDpfFQTptp+p41n/CbUcJtOq98WaRD7Lz3hCglYotUTHUWtzu3JhK6XlkAA==} + '@rollup/rollup-win32-x64-msvc@4.21.2': + resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==} + cpu: [x64] + os: [win32] - '@shikijs/core@1.14.1': - resolution: {integrity: sha512-KyHIIpKNaT20FtFPFjCQB5WVSTpLR/n+jQXhWHWVUMm9MaOaG9BGOG0MSyt7yA4+Lm+4c9rTc03tt3nYzeYSfw==} + '@shikijs/core@1.18.0': + resolution: {integrity: sha512-VK4BNVCd2leY62Nm2JjyxtRLkyrZT/tv104O81eyaCjHq4Adceq2uJVFJJAIof6lT1mBwZrEo2qT/T+grv3MQQ==} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@shikijs/engine-javascript@1.18.0': + resolution: {integrity: sha512-qoP/aO/ATNwYAUw1YMdaip/YVEstMZEgrwhePm83Ll9OeQPuxDZd48szZR8oSQNQBT8m8UlWxZv8EA3lFuyI5A==} + + '@shikijs/engine-oniguruma@1.18.0': + resolution: {integrity: sha512-B9u0ZKI/cud+TcmF8Chyh+R4V5qQVvyDOqXC2l2a4x73PBSBc6sZ0JRAX3eqyJswqir6ktwApUUGBYePdKnMJg==} + + '@shikijs/types@1.18.0': + resolution: {integrity: sha512-O9N36UEaGGrxv1yUrN2nye7gDLG5Uq0/c1LyfmxsvzNPqlHzWo9DI0A4+fhW2y3bGKuQu/fwS7EPdKJJCowcVA==} + + '@shikijs/vscode-textmate@9.2.2': + resolution: {integrity: sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==} '@sindresorhus/merge-streams@2.3.0': resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} + '@stylistic/eslint-plugin@2.7.2': + resolution: {integrity: sha512-3DVLU5HEuk2pQoBmXJlzvrxbKNpu2mJ0SRqz5O/CJjyNCr12ZiPcYMEtuArTyPOk5i7bsAU44nywh1rGfe3gKQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + '@ts-morph/common@0.19.0': resolution: {integrity: sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==} '@ts-morph/common@0.22.0': resolution: {integrity: sha512-HqNBuV/oIlMKdkLshXd1zKBqNQCsuPEsgQOkfFQ/eUKjRlwndXW1AjN9LVkBEIukm00gGXSRmfkl0Wv5VXLnlw==} - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -2257,14 +2537,14 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/diff@5.2.1': - resolution: {integrity: sha512-uxpcuwWJGhe2AR1g8hD9F5OYGCqjqWnBUQFD8gMZsDbv8oPHzxJF6iMO6n8Tk0AdzlxoaaoQhOYlIg/PukVU8g==} + '@types/diff@5.2.2': + resolution: {integrity: sha512-qVqLpd49rmJA2nZzLVsmfS/aiiBpfVE95dHhPVwG0NmSBAt+riPxnj53wq2oBq5m4Q2RF1IWFEUpnZTgrQZfEQ==} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + '@types/eslint@8.56.10': + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} - '@types/eslint@9.6.0': - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -2287,8 +2567,8 @@ packages: '@types/http-errors@2.0.4': resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/http-proxy@1.17.14': - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + '@types/http-proxy@1.17.15': + resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -2299,8 +2579,11 @@ packages: '@types/lodash.template@4.5.3': resolution: {integrity: sha512-Mo0UYKLu1oXgkV9TVoXZLlXXjyIXlW7ZQRxi/4gQJmzJr63dmicE8gG0OkPjYTKBrBic852q0JzqrtNUWLBIyA==} - '@types/lodash@4.17.7': - resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} + '@types/lodash@4.17.9': + resolution: {integrity: sha512-w9iWudx1XWOHW5lQRS9iKpK/XuRhnN+0T7HvdCCd802FYkT1AMTnxndJHGrNJwRoRHkslGr4S29tjm1cT7x/7w==} + + '@types/mdast@3.0.15': + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -2323,42 +2606,39 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/node@18.19.42': - resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} + '@types/node@18.19.50': + resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@22.0.0': - resolution: {integrity: sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw==} + '@types/node@22.5.4': + resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} - '@types/node@22.4.1': - resolution: {integrity: sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg==} + '@types/node@22.6.1': + resolution: {integrity: sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw==} - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} '@types/prompts@2.4.9': resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + '@types/qs@6.9.16': + resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + '@types/retry@0.12.2': resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} '@types/sax@1.2.7': resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -2374,122 +2654,137 @@ packages: '@types/unist@2.0.10': resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - '@types/unist@3.0.2': - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} '@types/wrap-ansi@3.0.0': resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} - '@types/ws@8.5.11': - resolution: {integrity: sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==} + '@types/ws@8.5.12': + resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@verdaccio/auth@7.0.0-next-7.19': - resolution: {integrity: sha512-MFAwrLEl+3+V8EXcfG2TAnxPj36tFU/OIqyHmV2n0PjP6HLrHY2ss5D6euWm8kPZ4g9nijWu80ZkVDZDYFO0Dg==} - engines: {node: '>=18'} - - '@verdaccio/commons-api@10.2.0': - resolution: {integrity: sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ==} - engines: {node: '>=8'} - - '@verdaccio/config@7.0.0-next-7.19': - resolution: {integrity: sha512-XfKasBiKjH21iriYHGnbD+fMC42iQnhjKGK2Pi1I7+sj6qUT+PEnC52sPKcP/zGsy8fWNZRcsuwI1XUIj8hXhQ==} - engines: {node: '>=12'} - - '@verdaccio/core@7.0.0-next-7.19': - resolution: {integrity: sha512-1lJBZLvTruhc005ZH28jt0MZKtwmN3jh81nRI2Lc/tfLs8gcyXu4P+CQf0KqzvmwXmyYqLwkAP7NZ6b4h45uJw==} - engines: {node: '>=12'} + '@typescript-eslint/eslint-plugin@8.4.0': + resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@verdaccio/file-locking@10.3.1': - resolution: {integrity: sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g==} - engines: {node: '>=12'} + '@typescript-eslint/parser@8.4.0': + resolution: {integrity: sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@verdaccio/file-locking@12.0.0-next.1': - resolution: {integrity: sha512-Zb5G2HEhVRB0jCq4z7QA4dqTdRv/2kIsw2Nkm3j2HqC1OeJRxas3MJAF/OxzbAb1IN32lbg1zycMSk6NcbQkgQ==} - engines: {node: '>=12'} + '@typescript-eslint/scope-manager@8.4.0': + resolution: {integrity: sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@verdaccio/loaders@7.0.0-next-7.19': - resolution: {integrity: sha512-w5Up20SVN2Y/yYPwKaQ8MHudZH0C/VizX8OXHaVSbtEnVxt/nADsNFIGgmsKed11DI/zIcWSkfhiWodgKed/Yw==} - engines: {node: '>=18'} + '@typescript-eslint/type-utils@8.4.0': + resolution: {integrity: sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@verdaccio/local-storage-legacy@11.0.2': - resolution: {integrity: sha512-7AXG7qlcVFmF+Nue2oKaraprGRtaBvrQIOvc/E89+7hAe399V01KnZI6E/ET56u7U9fq0MSlp92HBcdotlpUXg==} - engines: {node: '>=12'} + '@typescript-eslint/types@7.9.0': + resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} + engines: {node: ^18.18.0 || >=20.0.0} - '@verdaccio/logger-7@7.0.0-next-7.19': - resolution: {integrity: sha512-5fRmWRkfTyX8Q2ib6IFrH1Q6uSugNCwsFP1vRqmb/3uANuMcZiFfCLR9E7BspW8ViYdU3UDwHUsfpJMIitzOPw==} - engines: {node: '>=12'} + '@typescript-eslint/types@8.4.0': + resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@verdaccio/logger-commons@7.0.0-next-7.19': - resolution: {integrity: sha512-ykqCvtmwl4QyiurAtMiAl2lufBuvNO3ENcsLdqYZIOO6LL8ie3agdwcJB6cpA8fiEWO1UsX0J3q3U1Drku4rTg==} - engines: {node: '>=12'} + '@typescript-eslint/typescript-estree@8.4.0': + resolution: {integrity: sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@verdaccio/logger-prettify@7.0.0-next-7.3': - resolution: {integrity: sha512-xPes4BuxEl1MUvDlYWO8oM3jcO3718p+ub7kx4kEGB48nTjF4wICkf/XdERj+cusE1dCodRWByNt9Hu32ER/JA==} - engines: {node: '>=12'} + '@typescript-eslint/utils@8.4.0': + resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 - '@verdaccio/logger@7.0.0-next-7.19': - resolution: {integrity: sha512-ogHwu53P9RZL/Xlc229Kb4jPoz7coEXZb4o2jmro3ax88vU+1z4DwYiUXx+/J592fpJLClLIdRHbaum7ICoY4Q==} - engines: {node: '>=18'} + '@typescript-eslint/visitor-keys@8.4.0': + resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@verdaccio/middleware@7.0.0-next-7.19': - resolution: {integrity: sha512-Kz4bExtMsGvy2/WvCZxgXTY1a7ATNVu6lXddIqgPSNWajQklrjXkm9KwoSpHcwoBhz4EptfFWbFZYMzUyVhV1Q==} - engines: {node: '>=12'} + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@verdaccio/search-indexer@7.0.0-next-7.2': - resolution: {integrity: sha512-ZkhqHHWP530dFr8EuicAa5sXFDlAYqiSgpNDPIyMaz1FkfqngeffhWdydXQgVb60d1OeJkpaf3utPE2kQwIXxQ==} - engines: {node: '>=12'} + '@vitejs/plugin-basic-ssl@1.1.0': + resolution: {integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==} + engines: {node: '>=14.6.0'} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - '@verdaccio/signature@7.0.0-next-7.5': - resolution: {integrity: sha512-xF0xGi10HOAQ7Mkwf6dC2fjaBrdxxqXE/HMh/l/O5/LpWoGFZ6xsm/3ZieVRJtIq/qvL5pmmO5Tn8lPS7pm5SQ==} - engines: {node: '>=14'} + '@vitest/eslint-plugin@1.1.0': + resolution: {integrity: sha512-Ur80Y27Wbw8gFHJ3cv6vypcjXmrx6QHfw+q435h6Q2L+tf+h4Xf5pJTCL4YU/Jps9EVeggQxS85OcUZU7sdXRw==} + peerDependencies: + '@typescript-eslint/utils': '>= 8.0' + eslint: '>= 8.57.0' + typescript: '>= 5.0.0' + vitest: '*' + peerDependenciesMeta: + '@typescript-eslint/utils': + optional: true + typescript: + optional: true + vitest: + optional: true - '@verdaccio/streams@10.2.1': - resolution: {integrity: sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ==} - engines: {node: '>=12', npm: '>=5'} + '@vitest/expect@2.0.5': + resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - '@verdaccio/tarball@12.0.0-next-7.19': - resolution: {integrity: sha512-T/g1bEjw5osfGWZqYnowu2uOHLKTcDKsNaDfC3dLLxo3oeDLrVXS8xCaWj7+ME/EGzTtTFKq1qEIQqUmdlk/aQ==} - engines: {node: '>=12'} + '@vitest/pretty-format@2.0.5': + resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} - '@verdaccio/ui-theme@7.0.0-next-7.19': - resolution: {integrity: sha512-PrrKjF6OaAB+pB3RVYH1SMNT/ZPT9U5XzFXWtfWI1YyyBHUs0qyO2Kvzq97hBsJMneCWXllFCmo0/v+3P8p57Q==} + '@vitest/runner@2.0.5': + resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==} - '@verdaccio/url@12.0.0-next-7.19': - resolution: {integrity: sha512-u/nBjo73PQC9+o6AFw5kpy5z3PehNjFi8PnZGEnEq50sNkbjBO8dBPmZEsqeQV72BWI4QPAxxdRxCvzVMJlw6w==} - engines: {node: '>=12'} + '@vitest/snapshot@2.0.5': + resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==} - '@verdaccio/utils@7.0.0-next-7.19': - resolution: {integrity: sha512-92rOVwxXqRQjwIWBHgYdEvdovPSA/LwatULFTtfkUJTK6yMNwuP3sk/99e5YD0DGPqlHfYZjowJw4ZITmM+W0Q==} - engines: {node: '>=12'} + '@vitest/spy@2.0.5': + resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - '@vitejs/plugin-basic-ssl@1.1.0': - resolution: {integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==} - engines: {node: '>=14.6.0'} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - '@volar/kit@2.4.0': - resolution: {integrity: sha512-uqwtPKhrbnP+3f8hs+ltDYXLZ6Wdbs54IzkaPocasI4aBhqWLht5qXctE1MqpZU52wbH359E0u9nhxEFmyon+w==} + '@volar/kit@2.4.5': + resolution: {integrity: sha512-ZzyErW5UiDfiIuJ/lpqc2Kx5PHDGDZ/bPlPJYpRcxlrn8Z8aDhRlsLHkNKcNiH65TmNahk2kbLaiejiqu6BD3A==} peerDependencies: typescript: '*' - '@volar/language-core@2.4.0': - resolution: {integrity: sha512-FTla+khE+sYK0qJP+6hwPAAUwiNHVMph4RUXpxf/FIPKUP61NFrVZorml4mjFShnueR2y9/j8/vnh09YwVdH7A==} + '@volar/language-core@2.4.5': + resolution: {integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==} - '@volar/language-server@2.4.0': - resolution: {integrity: sha512-rmGIjAxWekWQiGH97Mosb4juiD/hfFYNQKV5Py9r7vDOLSkbIwRhITbwHm88NJKs8P6TNc6w/PfBXN6yjKadJg==} + '@volar/language-server@2.4.5': + resolution: {integrity: sha512-l5PswE0JzCtstTlwBUpikeSa3lNUBJhTuWtj9KclZTGi2Uex4RcqGOhTiDsUUtvdv/hEuYCxGq1EdJJPlQsD/g==} - '@volar/language-service@2.4.0': - resolution: {integrity: sha512-4P3yeQXIL68mLfS3n6P3m02IRg3GnLHUU9k/1PCHEfm5FG9bySkDOc72dbBn2vAa2BxOqm18bmmZXrsWuQ5AOw==} + '@volar/language-service@2.4.5': + resolution: {integrity: sha512-xiFlL0aViGg6JhwAXyohPrdlID13uom8WQg6DWYaV8ob8RRy+zoLlBUI8SpQctwlWEO9poyrYK01revijAwkcw==} - '@volar/source-map@2.4.0': - resolution: {integrity: sha512-2ceY8/NEZvN6F44TXw2qRP6AQsvCYhV2bxaBPWxV9HqIfkbRydSksTFObCF1DBDNBfKiZTS8G/4vqV6cvjdOIQ==} + '@volar/source-map@2.4.5': + resolution: {integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==} - '@volar/typescript@2.4.0': - resolution: {integrity: sha512-9zx3lQWgHmVd+JRRAHUSRiEhe4TlzL7U7e6ulWXOxHH/WNYxzKwCvZD7WYWEZFdw4dHfTD9vUR0yPQO6GilCaQ==} + '@volar/typescript@2.4.5': + resolution: {integrity: sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==} '@vscode/emmet-helper@2.9.3': resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} @@ -2497,6 +2792,24 @@ packages: '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + '@vue/compiler-core@3.3.10': + resolution: {integrity: sha512-doe0hODR1+i1menPkRzJ5MNR6G+9uiZHIknK3Zn5OcIztu6GGw7u0XUzf3AgB8h/dfsZC9eouzoLo3c3+N/cVA==} + + '@vue/compiler-dom@3.3.10': + resolution: {integrity: sha512-NCrqF5fm10GXZIK0GrEAauBqdy+F2LZRt3yNHzrYjpYBuRssQbuPLtSnSNjyR9luHKkWSH8we5LMB3g+4z2HvA==} + + '@vue/compiler-sfc@3.3.10': + resolution: {integrity: sha512-xpcTe7Rw7QefOTRFFTlcfzozccvjM40dT45JtrE3onGm/jBLZ0JhpKu3jkV7rbDFLeeagR/5RlJ2Y9SvyS0lAg==} + + '@vue/compiler-ssr@3.3.10': + resolution: {integrity: sha512-12iM4jA4GEbskwXMmPcskK5wImc2ohKm408+o9iox3tfN9qua8xL0THIZtoe9OJHnXP4eOWZpgCAAThEveNlqQ==} + + '@vue/reactivity-transform@3.3.10': + resolution: {integrity: sha512-0xBdk+CKHWT+Gev8oZ63Tc0qFfj935YZx+UAynlutnrDZ4diFCVFMWixn65HzjE3S1iJppWOo6Tt1OzASH7VEg==} + + '@vue/shared@3.3.10': + resolution: {integrity: sha512-2y3Y2J1a3RhFa0WisHvACJR2ncvWiVHcP8t0Inxo+NKz+8RKO4ZV8eZgCxRgQoA6ITfV12L4E6POOL9HOU5nqw==} + '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -2548,25 +2861,6 @@ 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==} - - '@yarnpkg/parsers@3.0.0-rc.46': - resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} - engines: {node: '>=14.15.0'} - - '@zkochan/js-yaml@0.0.7': - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} - hasBin: true - - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -2581,27 +2875,15 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} - engines: {node: '>=0.4.0'} - acorn@8.12.1: resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true - address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - adjust-sourcemap-loader@4.0.0: resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} engines: {node: '>=8.9'} - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - agent-base@7.1.1: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} @@ -2635,9 +2917,6 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -2677,10 +2956,6 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -2692,12 +2967,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - apache-md5@1.1.8: - resolution: {integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==} - engines: {node: '>=8'} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -2708,8 +2980,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -2717,19 +2990,12 @@ packages: array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} - - assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} - astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true astro-auto-import@0.4.2: @@ -2743,24 +3009,11 @@ packages: peerDependencies: astro: ^4.0.0-beta || ^3.3.0 - astro@4.14.5: - resolution: {integrity: sha512-sv47kPE6FnvyxxHHcCePNwTKpOMKBq0r1m6WZYg6ag9j3yF9m72ov64NFB7c+hAMDUKgsHfVdLKjOOqDC/c+fA==} + 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'} hasBin: true - async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} - autoprefixer@10.4.19: resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} @@ -2775,15 +3028,6 @@ packages: peerDependencies: postcss: ^8.1.0 - aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - - aws4@1.13.0: - resolution: {integrity: sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==} - - axios@1.7.2: - resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} - axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -2798,21 +3042,13 @@ packages: '@babel/core': ^7.12.0 webpack: '>=5' - babel-plugin-const-enum@1.2.0: - resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - babel-plugin-macros@2.8.0: - resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} - babel-plugin-polyfill-corejs2@0.4.11: resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.10.4: - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + babel-plugin-polyfill-corejs3@0.10.6: + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -2821,15 +3057,6 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-transform-typescript-metadata@0.3.2: - resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} - peerDependencies: - '@babel/core': ^7 - '@babel/traverse': ^7 - peerDependenciesMeta: - '@babel/traverse': - optional: true - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -2839,17 +3066,17 @@ packages: bare-events@2.4.2: resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} - bare-fs@2.3.1: - resolution: {integrity: sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA==} + bare-fs@2.3.5: + resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==} - bare-os@2.4.0: - resolution: {integrity: sha512-v8DTT08AS/G0F9xrhyLtepoo9EJBJ85FRSMbu1pQUlAf6A8T0tEEQGMVObWeqpjhSPXsE0VGlluFBJu2fdoTNg==} + 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.1.3: - resolution: {integrity: sha512-tiDAH9H/kP+tvNO5sczyn9ZAA7utrSMobyDchsnyyXBuUe2FSQWbxhtuHB8jwpHYYevVo2UJpcmvvjrbHboUUQ==} + bare-stream@2.3.0: + resolution: {integrity: sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==} base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} @@ -2866,16 +3093,6 @@ packages: bcp-47@2.1.0: resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} - bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} - - bcryptjs@2.4.3: - resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} - - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -2889,8 +3106,8 @@ packages: bl@5.1.0: resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} bonjour-service@1.2.1: @@ -2913,11 +3130,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserify-zlib@0.1.4: - resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2926,9 +3140,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -2938,16 +3149,19 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + bumpp@9.5.2: + resolution: {integrity: sha512-L0awRXkMY4MLasVy3dyfM+2aU2Q4tyCDU45O7hxiB2SHZF8jurw3nmyifrtFJ4cI/JZIvu5ChCtf0i8yLfnohQ==} + engines: {node: '>=10'} + hasBin: true + bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - bundle-require@4.2.1: - resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' - bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -2956,6 +3170,14 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + c12@1.11.1: + resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==} + peerDependencies: + magicast: ^0.3.4 + peerDependenciesMeta: + magicast: + optional: true + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -2964,6 +3186,9 @@ packages: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -2976,18 +3201,22 @@ packages: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} - caniuse-lite@1.0.30001643: - resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==} + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001651: - resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} + caniuse-lite@1.0.30001620: + resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} - caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + caniuse-lite@1.0.30001663: + resolution: {integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -3007,17 +3236,27 @@ packages: character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + 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'} chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} @@ -3026,21 +3265,28 @@ packages: chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - ci-info@4.0.0: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + class-variance-authority@0.7.0: resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -3057,10 +3303,6 @@ packages: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} - cli-spinners@2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} - cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} @@ -3073,11 +3315,6 @@ packages: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} - clipanion@4.0.0-rc.3: - resolution: {integrity: sha512-+rJOJMt2N6Oikgtfqmo/Duvme7uz3SIedL2b6ycgCztQMiTfr3aQh2DDyLHl+QUPClKMNpSg3gDJFvNQYIcq1g==} - peerDependencies: - typanion: '*' - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -3124,17 +3361,12 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - columnify@1.6.0: - resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} - engines: {node: '>=8.0.0'} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -3142,6 +3374,10 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -3149,12 +3385,23 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -3166,10 +3413,17 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + connect-history-api-fallback@2.0.0: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -3203,23 +3457,12 @@ packages: core-js-compat@3.37.1: resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} - core-js@3.35.0: - resolution: {integrity: sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==} - - core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + core-js-compat@3.38.1: + resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} - - cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -3238,24 +3481,19 @@ packages: typescript: optional: true - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - critters@0.0.24: resolution: {integrity: sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==} - cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} - hasBin: true - - cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + css-declaration-sorter@7.2.0: + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + css-loader@7.1.2: resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==} engines: {node: '>= 18.12.0'} @@ -3274,6 +3512,14 @@ packages: css-selector-parser@3.0.5: resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} @@ -3283,20 +3529,32 @@ packages: engines: {node: '>=4'} hasBin: true - dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} + cssnano-preset-default@7.0.1: + resolution: {integrity: sha512-Fumyr+uZMcjYQeuHssAZxn0cKj3cdQc5GcxkBcmEzISGB+UW9CLNlU4tBOJbJGcPukFDlicG32eFbrc8K9V5pw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano-utils@5.0.0: + resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano@7.0.1: + resolution: {integrity: sha512-917Mej/4SdI7b55atsli3sU4MOJ9XDoKgnlCtQtXYj8XUFcM3riTuYHyqBBnnskawW+zWwp0KxJzpEUodlpqUg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - dataloader@1.4.0: - resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} - - dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} - debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -3305,9 +3563,8 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -3323,6 +3580,15 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -3330,10 +3596,21 @@ packages: 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==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + default-browser-id@5.0.0: resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} engines: {node: '>=18'} @@ -3353,17 +3630,12 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} @@ -3377,14 +3649,13 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -3392,11 +3663,6 @@ packages: detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - detect-port@1.6.1: - resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} - engines: {node: '>= 4.0.0'} - hasBin: true - deterministic-object-hash@2.0.2: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} engines: {node: '>=18'} @@ -3410,14 +3676,6 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -3437,6 +3695,10 @@ packages: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -3450,56 +3712,28 @@ packages: domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - dotenv-expand@11.0.6: - resolution: {integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==} - engines: {node: '>=12'} - dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - - dset@3.1.3: - resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - - duplexify@3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} - - duplexify@4.1.3: - resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - - ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true - - electron-to-chromium@1.5.11: - resolution: {integrity: sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==} + electron-to-chromium@1.4.774: + resolution: {integrity: sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==} - electron-to-chromium@1.5.2: - resolution: {integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==} + electron-to-chromium@1.5.27: + resolution: {integrity: sha512-o37j1vZqCoEgBuWWXLHQgTN/KDKe7zwpiY5CPeq2RvUqOyJw9xnrULzZAEVQ5p4h+zjMk7hgtOoPdnLxr7m/jw==} - emmet@2.4.7: - resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} + emmet@2.4.11: + resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -3518,21 +3752,21 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + enhanced-resolve@5.17.0: + resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + engines: {node: '>=10.13.0'} + enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} - enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -3541,11 +3775,6 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} - engines: {node: '>=4'} - hasBin: true - environment@1.1.0: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} @@ -3573,8 +3802,13 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} hasBin: true @@ -3599,19 +3833,201 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - + eslint-compat-utils@0.5.0: + resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-flat-gitignore@0.3.0: + resolution: {integrity: sha512-0Ndxo4qGhcewjTzw52TK06Mc00aDtHNTdeeW2JfONgDcLkRO/n/BteMRzNVpLQYxdCC/dFEilfM9fjjpGIJ9Og==} + peerDependencies: + eslint: ^9.5.0 + + eslint-flat-config-utils@0.3.1: + resolution: {integrity: sha512-eFT3EaoJN1hlN97xw4FIEX//h0TiFUobgl2l5uLkIwhVN9ahGq95Pbs+i1/B5UACA78LO3rco3JzuvxLdTUOPA==} + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-merge-processors@0.1.0: + resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} + peerDependencies: + eslint: '*' + + eslint-plugin-antfu@2.5.0: + resolution: {integrity: sha512-YLIWE22/ERe6Jpqt6bJdvALw8SWvf4x2DQjvVpRvAv8LrdHbwWckkoueAf8oQFgSOLsL1R/axa+exjpubPp0fw==} + peerDependencies: + eslint: '*' + + eslint-plugin-command@0.2.3: + resolution: {integrity: sha512-1bBYNfjZg60N2ZpLV5ATYSYyueIJ+zl5yKrTs0UFDdnyu07dNSZ7Xplnc+Wb6SXTdc1sIaoIrnuyhvztcltX6A==} + peerDependencies: + eslint: '*' + + eslint-plugin-es-x@7.6.0: + resolution: {integrity: sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-import-x@4.2.1: + resolution: {integrity: sha512-WWi2GedccIJa0zXxx3WDnTgouGQTtdYK1nhXMwywbqqAgB0Ov+p1pYBsWh3VaB0bvBOwLse6OfVII7jZD9xo5Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + eslint-plugin-jsdoc@50.2.2: + resolution: {integrity: sha512-i0ZMWA199DG7sjxlzXn5AeYZxpRfMJjDPUl7lL9eJJX8TPRoIaxJU4ys/joP5faM5AXE1eqW/dslCj3uj4Nqpg==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-jsonc@2.16.0: + resolution: {integrity: sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-markdown@5.1.0: + resolution: {integrity: sha512-SJeyKko1K6GwI0AN6xeCDToXDkfKZfXcexA6B+O2Wr2btUS9GrC+YgwSyVli5DJnctUHjFXcQ2cqTaAmVoLi2A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-n@17.10.2: + resolution: {integrity: sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + + eslint-plugin-no-only-tests@3.3.0: + resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} + engines: {node: '>=5.0.0'} + + eslint-plugin-perfectionist@3.4.0: + resolution: {integrity: sha512-vXyd1sFg3H/7aKgBUie62bA6E0EN3Dh0LCD5r4vR/IYtTljxOnyckI1AV0Arw4eYjC/W9T1X04Pl2mdLsdWtMA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + astro-eslint-parser: ^1.0.2 + eslint: '>=8.0.0' + svelte: '>=3.0.0' + svelte-eslint-parser: ^0.41.0 + vue-eslint-parser: '>=9.0.0' + peerDependenciesMeta: + astro-eslint-parser: + optional: true + svelte: + optional: true + svelte-eslint-parser: + optional: true + vue-eslint-parser: + optional: true + + eslint-plugin-regexp@2.6.0: + resolution: {integrity: sha512-FCL851+kislsTEQEMioAlpDuK5+E5vs0hi1bF8cFlPlHcEjeRhuAzEsGikXRreE+0j4WhW2uO54MqTjXtYOi3A==} + engines: {node: ^18 || >=20} + peerDependencies: + eslint: '>=8.44.0' + + eslint-plugin-toml@0.11.1: + resolution: {integrity: sha512-Y1WuMSzfZpeMIrmlP1nUh3kT8p96mThIq4NnHrYUhg10IKQgGfBZjAWnrg9fBqguiX4iFps/x/3Hb5TxBisfdw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-unicorn@55.0.0: + resolution: {integrity: sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==} + engines: {node: '>=18.18'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-plugin-unused-imports@4.1.3: + resolution: {integrity: sha512-lqrNZIZjFMUr7P06eoKtQLwyVRibvG7N+LtfKtObYGizAAGrcqLkc3tDx+iAik2z7q0j/XI3ihjupIqxhFabFA==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + + eslint-plugin-vue@9.28.0: + resolution: {integrity: sha512-ShrihdjIhOTxs+MfWun6oJWuk+g/LAhN+CiuOl/jjkG3l0F2AuK5NMTaWqyvBgkFtpYmyks6P4603mLmhNJW8g==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-yml@1.14.0: + resolution: {integrity: sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-processor-vue-blocks@0.1.2: + resolution: {integrity: sha512-PfpJ4uKHnqeL/fXUnzYkOax3aIenlwewXRX8jFinA1a2yCFnLgMuiH3xvCgvHHUlV2xJWQHbCTdiJWGwb3NqpQ==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: ^8.50.0 || ^9.0.0 + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.9.1: + resolution: {integrity: sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + esno@4.7.0: + resolution: {integrity: sha512-81owrjxIxOwqcABt20U09Wn8lpBo9K6ttqbGvQcB3VYNLJyaV1fvKkDtpZd3Rj5BX3WXiGiJCjUevKQGNICzJg==} + hasBin: true + + espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -3653,10 +4069,6 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -3683,11 +4095,8 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - express-rate-limit@5.5.1: - resolution: {integrity: sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==} - - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + express@4.21.0: + resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==} engines: {node: '>= 0.10.0'} expressive-code@0.35.6: @@ -3700,27 +4109,12 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} - 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.2.7: - resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} - engines: {node: '>=8'} - fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -3728,12 +4122,8 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-redact@3.5.0: - resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} - engines: {node: '>=6'} - - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} fast-uri@3.0.1: resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} @@ -3749,19 +4139,16 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} find-cache-dir@4.0.0: @@ -3787,16 +4174,23 @@ packages: find-yarn-workspace-root2@1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flattie@1.1.1: resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} engines: {node: '>=8'} - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -3804,21 +4198,10 @@ packages: debug: optional: true - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} - forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - - form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -3834,9 +4217,6 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} - front-matter@4.0.2: - resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} - fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} @@ -3844,13 +4224,12 @@ packages: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -3872,6 +4251,9 @@ packages: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -3884,8 +4266,12 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + + giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -3908,20 +4294,33 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - glob@6.0.4: - resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} deprecated: Glob versions prior to v9 are no longer supported globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.9.0: + resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} + engines: {node: '>=18'} + + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - globby@14.0.2: - resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} engines: {node: '>=18'} gopd@1.0.1: @@ -3930,22 +4329,16 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} - gunzip-maybe@1.4.2: - resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} - hasBin: true - handle-thing@2.0.1: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} - hasBin: true - has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -3972,8 +4365,11 @@ packages: hast-util-embedded@3.0.0: resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} - hast-util-from-html@2.0.1: - resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} + 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==} hast-util-from-parse5@8.0.1: resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} @@ -3987,6 +4383,9 @@ packages: 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==} @@ -4002,8 +4401,8 @@ packages: hast-util-to-estree@3.1.0: resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - hast-util-to-html@9.0.1: - resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} + hast-util-to-html@9.0.3: + resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} hast-util-to-jsx-runtime@2.3.0: resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} @@ -4030,9 +4429,11 @@ packages: hastscript@9.0.0: resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} - hosted-git-info@7.0.2: - resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} - engines: {node: ^16.14.0 || >=18.0.0} + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} @@ -4086,20 +4487,6 @@ packages: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} - http-signature@1.3.6: - resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} - engines: {node: '>=0.10'} - - http-status-codes@2.2.0: - resolution: {integrity: sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==} - - http-status-codes@2.3.0: - resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - https-proxy-agent@6.2.1: resolution: {integrity: sha512-ONsE3+yfZF2caH5+bJlcddtWqNI3Gvs5A38+ngvljxaBiRXRswym2c7yf8UAeFpRFKjFNHIFEHqR/OLAWJzyiA==} engines: {node: '>= 14'} @@ -4108,9 +4495,6 @@ packages: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} - human-id@1.0.2: - resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -4163,6 +4547,14 @@ packages: import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -4179,8 +4571,8 @@ packages: inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - inline-style-parser@0.2.3: - resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -4190,9 +4582,15 @@ packages: resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} engines: {node: '>= 10'} + is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} @@ -4206,20 +4604,18 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} - engines: {node: '>= 0.4'} + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - is-deflate@1.0.0: - resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} + is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} @@ -4250,9 +4646,8 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-gzip@1.0.0: - resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} - engines: {node: '>=0.10.0'} + is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} @@ -4270,6 +4665,9 @@ packages: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-network-error@1.1.0: resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} engines: {node: '>=16'} @@ -4278,6 +4676,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + is-plain-obj@3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} @@ -4290,8 +4692,8 @@ packages: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} - is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} @@ -4304,13 +4706,6 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -4319,21 +4714,13 @@ packages: resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} engines: {node: '>=12'} - is-unicode-supported@2.0.0: - resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} is-what@3.14.1: resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} @@ -4348,9 +4735,6 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -4362,19 +4746,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jake@10.9.2: - resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} - engines: {node: '>=10'} - hasBin: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -4383,10 +4754,6 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4398,8 +4765,13 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + jsdoc-type-pratt-parser@4.0.0: + resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + engines: {node: '>=12.0.0'} + + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} @@ -4410,6 +4782,14 @@ packages: engines: {node: '>=4'} hasBin: true + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -4419,53 +4799,33 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + jsonc-parser@2.3.1: resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - 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} - - jsonwebtoken@9.0.2: - resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} - engines: {node: '>=12', npm: '>=6'} - - jsprim@2.0.2: - resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} - engines: {'0': node >=0.6.0} - - jwa@1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} - - jws@3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - karma-source-map-support@1.4.0: resolution: {integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==} + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -4478,8 +4838,8 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - launch-editor@2.8.0: - resolution: {integrity: sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==} + launch-editor@2.9.1: + resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} less-loader@12.2.0: resolution: {integrity: sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==} @@ -4499,6 +4859,10 @@ packages: engines: {node: '>=6'} hasBin: true + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + license-webpack-plugin@4.0.2: resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==} peerDependencies: @@ -4518,9 +4882,10 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lint-staged@15.2.10: + resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==} + engines: {node: '>=18.12.0'} + hasBin: true listr2@8.2.4: resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} @@ -4530,10 +4895,6 @@ packages: resolution: {integrity: sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==} hasBin: true - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - load-yaml-file@0.2.0: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} @@ -4550,6 +4911,10 @@ packages: resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} engines: {node: '>= 12.13.0'} + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -4562,44 +4927,17 @@ packages: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lockfile@1.0.4: - resolution: {integrity: sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==} - - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - lodash._reinterpolate@3.0.0: resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - - lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - - lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - - lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - - lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} lodash.template@4.5.0: resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} @@ -4607,6 +4945,9 @@ packages: lodash.templatesettings@4.2.0: resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -4629,33 +4970,28 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - lowdb@1.0.0: - resolution: {integrity: sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==} - engines: {node: '>=4'} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - markdown-extensions@2.0.0: resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} engines: {node: '>=16'} @@ -4672,11 +5008,14 @@ packages: mdast-util-find-and-replace@3.0.1: resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + mdast-util-from-markdown@0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + mdast-util-from-markdown@2.0.1: resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} - mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} mdast-util-gfm-footnote@2.0.0: resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} @@ -4693,11 +5032,11 @@ packages: mdast-util-gfm@3.0.0: resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} + mdast-util-mdx-jsx@3.1.3: + resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} mdast-util-mdx@3.0.0: resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} @@ -4714,19 +5053,28 @@ packages: mdast-util-to-markdown@2.1.0: resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - memfs@4.11.0: - resolution: {integrity: sha512-+6kz90/YQoZuHvg3rn1CGPMZfEMaU5xe7xIavZMNiom2RNesiI8S37p9O9n+PlIUnUgretjLdM6HnqpZYl3X2g==} + memfs@4.12.0: + resolution: {integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==} engines: {node: '>= 4.0.0'} - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -4742,8 +5090,8 @@ packages: micromark-core-commonmark@2.0.1: resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} - micromark-extension-directive@3.0.1: - resolution: {integrity: sha512-VGV2uxUzhEZmaP7NSFo2vtq7M2nUD+WfmYQD+d8i/1nHbzE+rMy9uzTvUybBbNiVbrhOZibg3gbyoARGqgDWyg==} + 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==} @@ -4769,8 +5117,8 @@ packages: micromark-extension-mdx-expression@3.0.0: resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + micromark-extension-mdx-jsx@3.0.1: + resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} micromark-extension-mdx-md@2.0.0: resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} @@ -4787,8 +5135,8 @@ packages: micromark-factory-label@2.0.0: resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} + micromark-factory-mdx-expression@2.0.2: + resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} micromark-factory-space@2.0.0: resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} @@ -4844,11 +5192,14 @@ packages: micromark-util-types@2.0.0: resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + micromark@2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + micromark@4.0.0: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} mime-db@1.52.0: @@ -4868,16 +5219,6 @@ packages: engines: {node: '>=4'} hasBin: true - mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} - hasBin: true - - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -4894,6 +5235,10 @@ packages: 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'} + mini-css-extract-plugin@2.9.0: resolution: {integrity: sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==} engines: {node: '>= 12.13.0'} @@ -4914,10 +5259,6 @@ packages: resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} engines: {node: '>=10'} - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -4925,17 +5266,25 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: + 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 - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -4951,6 +5300,24 @@ packages: engines: {node: '>=10'} hasBin: true + mkdist@1.5.1: + resolution: {integrity: sha512-lCu1spNiA52o7IaKgZnOjg28nNHwYqUDjBfXePXyUtzD7Xhe6rRTkGTalQ/ALfrZC/SrPw2+A/0qkeJ+fPDZtQ==} + hasBin: true + peerDependencies: + sass: ^1.75.0 + typescript: '>=5.4.5' + vue-tsc: ^1.8.27 || ^2.0.14 + peerDependenciesMeta: + sass: + optional: true + typescript: + optional: true + vue-tsc: + optional: true + + mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -4986,16 +5353,9 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - mv@2.1.1: - resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} - engines: {node: '>=0.8.0'} - mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoclone@0.2.1: - resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} - nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -5004,9 +5364,11 @@ packages: napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - ncp@2.0.0: - resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} - hasBin: true + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} needle@3.3.1: resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} @@ -5031,8 +5393,8 @@ packages: nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} - node-abi@3.65.0: - resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==} + node-abi@3.68.0: + resolution: {integrity: sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==} engines: {node: '>=10'} node-addon-api@3.2.1: @@ -5045,23 +5407,8 @@ packages: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - node-fetch@2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} @@ -5075,16 +5422,19 @@ packages: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true - node-gyp-build@4.8.1: - resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} hasBin: true - node-machine-id@1.1.12: - resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -5096,10 +5446,6 @@ packages: not@0.1.0: resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} - npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} - npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -5111,17 +5457,10 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nx@19.5.6: - resolution: {integrity: sha512-qjP17aa5ViXSpo0bDgJ7O3b8EY/0+PbX7ZIKvG1g6qasohtfM1y4Sx2bbSow0zCKU0+r1LnR53Q0lyX4OOgtUg==} + nypm@0.3.8: + resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} + engines: {node: ^14.16.0 || >=16.10.0} hasBin: true - peerDependencies: - '@swc-node/register': ^1.8.0 - '@swc/core': ^1.3.85 - peerDependenciesMeta: - '@swc-node/register': - optional: true - '@swc/core': - optional: true object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -5138,12 +5477,8 @@ packages: obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - on-exit-leak-free@0.2.0: - resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} - - on-exit-leak-free@2.1.2: - resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} - engines: {node: '>=14.0.0'} + ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} @@ -5168,17 +5503,16 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} + oniguruma-to-js@0.4.3: + resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} + open@10.1.0: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - ora@5.3.0: - resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} - engines: {node: '>=10'} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} @@ -5188,24 +5522,13 @@ packages: resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - ora@8.0.1: - resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} + ora@8.1.0: + resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} engines: {node: '>=18'} 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'} - - outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -5234,10 +5557,6 @@ packages: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - p-queue@8.0.1: resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} engines: {node: '>=18'} @@ -5257,20 +5576,31 @@ packages: package-json-from-dist@1.0.0: resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - pagefind@1.1.0: - resolution: {integrity: sha512-1nmj0/vfYcMxNEQj0YDRp6bTVv9hI7HLdPhK/vBBYlrnwjATndQvHyicj5Y7pUHrpCFZpFnLVQXIF829tpFmaw==} - hasBin: true + package-manager-detector@0.2.0: + resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} - pako@0.2.9: - resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + pagefind@1.1.1: + resolution: {integrity: sha512-U2YR0dQN5B2fbIXrLtt/UXNS0yWSSYfePaad1KcBPTi0p+zRtsVjwmoPaMQgTks5DnHNbmDxyJUL5TGaLljK3A==} + hasBin: true parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + + parse-imports@2.1.1: + resolution: {integrity: sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==} + engines: {node: '>= 18'} + parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -5306,10 +5636,6 @@ packages: resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -5325,11 +5651,8 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - - path-to-regexp@6.2.2: - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -5339,17 +5662,21 @@ packages: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} - peek-stream@1.1.3: - resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -5359,38 +5686,19 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - pino-abstract-transport@0.5.0: - resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} - - pino-abstract-transport@1.1.0: - resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} - - pino-std-serializers@4.0.0: - resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} - - pino-std-serializers@6.2.2: - resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} - - pino@7.11.0: - resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} - hasBin: true - - pino@8.17.2: - resolution: {integrity: sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==} - hasBin: true - pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} @@ -5406,9 +5714,59 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} - pkginfo@0.4.1: - resolution: {integrity: sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==} - engines: {node: '>= 0.4.0'} + pkg-types@1.1.1: + resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + pnpm@9.9.0: + resolution: {integrity: sha512-YMGKzROL/2ldM5vmrRP36TbupnRWYNTMSndtUkfFQNDt7hpWNpXBg6ZuuRfviPK0/rH8JfMqetytx6rzQ46ZwQ==} + engines: {node: '>=18.12'} + hasBin: true + + postcss-calc@10.0.0: + resolution: {integrity: sha512-OmjhudoNTP0QleZCwl1i6NeBwN+5MZbY5ersLZz69mjJiDVv/p57RjRuKDkHeDWr4T+S97wQfsqRTNoDHB2e3g==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.0: + resolution: {integrity: sha512-5CN6fqtsEtEtwf3mFV3B4UaZnlYljPpzmGeDB4yCK067PnAtfLe9uX2aFZaEwxHE7HopG5rUkW8gyHrNAesHEg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-convert-values@7.0.0: + resolution: {integrity: sha512-bMuzDgXBbFbByPgj+/r6va8zNuIDUaIIbvAFgdO1t3zdgJZ77BZvu6dfWyd6gHEJnYzmeVr9ayUsAQL3/qLJ0w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-comments@7.0.0: + resolution: {integrity: sha512-xpSdzRqYmy4YIVmjfGyYXKaI1SRnK6CTr+4Zmvyof8ANwvgfZgGdVtmgAvzh59gJm808mJCWQC9tFN0KF5dEXA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-duplicates@7.0.0: + resolution: {integrity: sha512-bAnSuBop5LpAIUmmOSsuvtKAAKREB6BBIYStWUTGq8oG5q9fClDMMuY8i4UPI/cEcDx2TN+7PMnXYIId20UVDw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-empty@7.0.0: + resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-overridden@7.0.0: + resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} @@ -5422,18 +5780,6 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - postcss-load-config@4.0.2: resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} @@ -5462,6 +5808,42 @@ packages: postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + postcss-merge-longhand@7.0.0: + resolution: {integrity: sha512-0X8I4/9+G03X5/5NnrfopG/YEln2XU8heDh7YqBaiq2SeaKIG3n66ShZPjIolmVuLBQ0BEm3yS8o1mlCLHdW7A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-merge-rules@7.0.0: + resolution: {integrity: sha512-Zty3VlOsD6VSjBMu6PiHCVpLegtBT/qtZRVBcSeyEZ6q1iU5qTYT0WtEoLRV+YubZZguS5/ycfP+NRiKfjv6aw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-font-values@7.0.0: + resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-gradients@7.0.0: + resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-params@7.0.0: + resolution: {integrity: sha512-XOJAuX8Q/9GT1sGxlUvaFEe2H9n50bniLZblXXsAT/BwSfFYvzSZeFG7uupwc0KbKpTnflnQ7aMwGzX6JUWliQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-selectors@7.0.0: + resolution: {integrity: sha512-f00CExZhD6lNw2vTZbcnmfxVgaVKzUw6IRsIFX3JTT8GdsoABc1WnhhGwL1i8YPJ3sSWw39fv7XPtvLb+3Uitw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-modules-extract-imports@3.1.0: resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} engines: {node: ^10 || ^12 || >= 14} @@ -5486,87 +5868,153 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + postcss-nested@6.0.1: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 - postcss-selector-parser@6.1.1: - resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} + postcss-normalize-charset@7.0.0: + resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-display-values@7.0.0: + resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-positions@7.0.0: + resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-repeat-style@7.0.0: + resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-string@7.0.0: + resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-timing-functions@7.0.0: + resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-unicode@7.0.0: + resolution: {integrity: sha512-OnKV52/VFFDAim4n0pdI+JAhsolLBdnCKxE6VV5lW5Q/JeVGFN8UM8ur6/A3EAMLsT1ZRm3fDHh/rBoBQpqi2w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-url@7.0.0: + resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-whitespace@7.0.0: + resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-ordered-values@7.0.0: + resolution: {integrity: sha512-KROvC63A8UQW1eYDljQe1dtwc1E/M+mMwDT6z7khV/weHYLWTghaLRLunU7x1xw85lWFwVZOAGakxekYvKV+0w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-initial@7.0.0: + resolution: {integrity: sha512-iqGgmBxY9LrblZ0BKLjmrA1mC/cf9A/wYCCqSmD6tMi+xAyVl0+DfixZIHSVDMbCPRPjNmVF0DFGth/IDGelFQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-transforms@7.0.0: + resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} + postcss-svgo@7.0.0: + resolution: {integrity: sha512-Xj5DRdvA97yRy3wjbCH2NKXtDUwEnph6EHr5ZXszsBVKCNrKXYBjzAXqav7/Afz5WwJ/1peZoTguCEJIg7ytmA==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.31 + + postcss-unique-selectors@7.0.0: + resolution: {integrity: sha512-NYFqcft7vVQMZlQPsMdMPy+qU/zDpy95Malpw4GeA9ZZjM6dVXDshXtDmLc0m4WCD6XeZCJqjTfPT1USsdt+rA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.40: - resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.41: resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.44: + resolution: {integrity: sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.47: + 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@3.1.4: - resolution: {integrity: sha512-lEHd+yEm22jXdCphDrkvIJQU66EuLojPPtvZkpKIkiD+l0DMThF/niqZKJSoU8Vl7iuvtmzyMhir9LdVy5WMnA==} - engines: {node: '>=10'} - preferred-pm@4.0.0: resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} engines: {node: '>=18.12'} + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + prettier@2.8.7: resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} engines: {node: '>=10.13.0'} hasBin: true - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - prettier@3.3.3: resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} - proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - 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==} - process-warning@1.0.0: - resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} - - process-warning@3.0.0: - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - property-expr@2.0.6: - resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} - property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} @@ -5574,51 +6022,26 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - - pump@2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - - pumpify@1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.10.4: - resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} - engines: {node: '>=0.6'} - - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -5630,19 +6053,23 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -5651,27 +6078,19 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} - readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - real-require@0.1.0: - resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} - engines: {node: '>= 12.13.0'} - - real-require@0.2.0: - resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} - engines: {node: '>= 12.13.0'} + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} - regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + regenerate-unicode-properties@10.2.0: + resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} regenerate@1.4.2: @@ -5686,10 +6105,25 @@ packages: regex-parser@2.3.0: resolution: {integrity: sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==} + regex@4.3.2: + resolution: {integrity: sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==} + + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + regjsparser@0.9.1: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true @@ -5697,11 +6131,8 @@ packages: rehype-expressive-code@0.35.6: resolution: {integrity: sha512-pPdE+pRcRw01kxMOwHQjuRxgwlblZt5+wAc3w2aPGgmcnn57wYjn07iKO7zaznDxYVxMYVvYlnL+R3vWFQS4Gw==} - rehype-format@5.0.0: - resolution: {integrity: sha512-kM4II8krCHmUhxrlvzFSptvaWh280Fr7UGNJU5DCMuvmAwGCNmGfi9CvFAQK6JDjsNoRMWQStglK3zKJH685Wg==} - - rehype-minify-whitespace@6.0.0: - resolution: {integrity: sha512-i9It4YHR0Sf3GsnlR5jFUKXRr9oayvEk9GKQUkwZv6hs70OH9q3OCZrq9PpLvIGKt3W+JxBOxCidNVpH/6rWdA==} + rehype-format@5.0.1: + resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==} rehype-parse@9.0.0: resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} @@ -5727,8 +6158,8 @@ packages: remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} remark-smartypants@3.0.2: resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} @@ -5758,9 +6189,8 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} resolve-url-loader@5.0.0: resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} @@ -5785,8 +6215,8 @@ packages: retext-latin@4.0.0: resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} - retext-smartypants@6.1.0: - resolution: {integrity: sha512-LDPXg95346bqFZnDMHo0S7Rq5p64+B+N8Vz733+wPMDtwb9rCOs9LIdIEhrUOU+TAywX9St+ocQWJt8wrzivcQ==} + retext-smartypants@6.1.1: + resolution: {integrity: sha512-onsHf34i/GzgElJgtT1K2V+31yEhWs7NJboKNxXJcmVMMPxLpgxZ9iADoMdydd6j/bHic5F/aNq0CGqElEtu2g==} retext-stringify@4.0.0: resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} @@ -5805,15 +6235,16 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rimraf@2.4.5: - resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} - deprecated: Rimraf versions prior to v4 are no longer supported + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true - rimraf@5.0.9: - resolution: {integrity: sha512-3i7b8OcswU6CpU8Ej89quJD4O98id7TtVM5U4Mybh84zQXdrFmDLouWBEEaD/QfO3gDDfH+AGFCGsR7kngzQnA==} - engines: {node: 14 >=14.20 || 16 >=16.20 || >=18} - hasBin: true + rollup-plugin-dts@6.1.1: + resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} @@ -5825,6 +6256,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.21.2: + resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + run-applescript@7.0.0: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} @@ -5841,10 +6277,6 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -5885,6 +6317,13 @@ packages: resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} engines: {node: '>= 12.13.0'} + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -5904,18 +6343,13 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} serialize-javascript@6.0.2: @@ -5925,8 +6359,8 @@ packages: resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} engines: {node: '>= 0.8.0'} - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} set-function-length@1.2.2: @@ -5947,22 +6381,14 @@ packages: resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} engines: {node: '>=14.15.0'} - sharp@0.33.4: - resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==} - engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} @@ -5970,16 +6396,16 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - shiki@1.13.0: - resolution: {integrity: sha512-e0dWfnONbEv6xl7FJy3XIhsVHQ/65XHDZl92+6H9+4xWjfdo7pmkqG7Kg47KWtDiEtzM5Z+oEfb4vtRvoZ/X9w==} - - shiki@1.14.1: - resolution: {integrity: sha512-FujAN40NEejeXdzPt+3sZ3F2dx1U24BY2XTY01+MG8mbxCiA2XukXdcbyMyLAHJ/1AUUnQd1tZlvIjefWWEJeA==} + shiki@1.18.0: + resolution: {integrity: sha512-8jo7tOXr96h9PBQmOHVrltnETn1honZZY76YA79MHheGQg55jBvbm9dtU+MI5pjC5NJCFuA6rvVTLVeSW5cE4A==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -5993,6 +6419,10 @@ packages: simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-git-hooks@2.11.1: + resolution: {integrity: sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==} + hasBin: true + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -6004,14 +6434,17 @@ packages: engines: {node: '>=12.0.0', npm: '>=5.6.0'} hasBin: true - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} + slashes@3.0.12: + resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} + slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -6023,28 +6456,20 @@ packages: sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - sonic-boom@2.8.0: - resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} - - sonic-boom@3.8.0: - resolution: {integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==} - - sonic-boom@3.8.1: - resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} - source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + source-map-loader@5.0.0: resolution: {integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==} engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.72.1 - source-map-support@0.5.19: - resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -6056,15 +6481,23 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spawndamnit@2.0.0: - resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} spdy-transport@3.0.0: resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} @@ -6073,17 +6506,14 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - sshpk@1.18.0: - resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} - engines: {node: '>=0.10.0'} - hasBin: true + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} @@ -6093,6 +6523,9 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6101,17 +6534,15 @@ packages: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} - steno@0.4.4: - resolution: {integrity: sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==} - stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} - stream-shift@1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + streamx@2.20.1: + resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} - streamx@2.18.0: - resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -6121,6 +6552,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.1.0: + resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} + engines: {node: '>=18'} + string-width@7.2.0: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} @@ -6158,20 +6593,29 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-indent@3.0.0: + 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'} - strong-log-transformer@2.1.0: - resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} - engines: {node: '>=4'} - hasBin: true + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - style-to-object@1.0.6: - resolution: {integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==} + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + + stylehacks@7.0.0: + resolution: {integrity: sha512-47Nw4pQ6QJb4CA6dzF2m9810sjQik4dfk4UwAm5wlwhrW3syzZKF8AR4/cfO3Cr6lsFgAoznQq0Wg57qhjTA2A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} @@ -6194,11 +6638,24 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - tailwind-merge@2.4.0: - resolution: {integrity: sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + + synckit@0.6.2: + resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} + engines: {node: '>=12.20'} + + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + engines: {node: ^14.18.0 || >=16.0.0} - tailwindcss@3.4.7: - resolution: {integrity: sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==} + tailwind-merge@2.5.2: + resolution: {integrity: sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==} + + tailwindcss@3.4.13: + resolution: {integrity: sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==} engines: {node: '>=14.0.0'} hasBin: true @@ -6219,9 +6676,9 @@ packages: tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} terser-webpack-plugin@5.3.10: resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} @@ -6244,8 +6701,11 @@ packages: engines: {node: '>=10'} hasBin: true - text-decoder@1.1.1: - resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} + text-decoder@1.2.0: + resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -6260,28 +6720,26 @@ packages: peerDependencies: tslib: ^2 - thread-stream@0.15.2: - resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} - - thread-stream@2.7.0: - resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} + thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} - thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} + engines: {node: '>=14.0.0'} to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} @@ -6295,18 +6753,9 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - toposort@2.0.2: - resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} - - tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + toml-eslint-parser@0.10.0: + resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} tree-dump@1.0.2: resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} @@ -6324,6 +6773,12 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -6333,22 +6788,8 @@ packages: ts-morph@21.0.1: resolution: {integrity: sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg==} - ts-node@10.9.1: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - tsconfck@3.1.1: - resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==} + tsconfck@3.1.3: + resolution: {integrity: sha512-ulNZP1SVpRDesxeMLON/LtWM8HIgAJEIVpVVhBM6gsmvQ8+Rh+ZG7FWGvHh7Ah3pRABwVJWklWCr/BTZSv0xnQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -6367,35 +6808,38 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - tsup@6.7.0: - resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} - engines: {node: '>=14.18'} + tsx@4.10.5: + resolution: {integrity: sha512-twDSbf7Gtea4I2copqovUiNTEDrT8XNFXsuHpfGbdpW/z9ZW4fTghzzhAG0WfrCuJmJiOEY1nLIjq4u3oujRWQ==} + engines: {node: '>=18.0.0'} hasBin: true - peerDependencies: - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.1.0' - peerDependenciesMeta: - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} - typanion@3.14.0: - resolution: {integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==} + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} @@ -6417,40 +6861,39 @@ packages: typescript-auto-import-cache@0.3.3: resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true - typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true - uglify-js@3.19.1: - resolution: {integrity: sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==} - engines: {node: '>=0.8.0'} + ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + + unbuild@2.0.0: + resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} hasBin: true + peerDependencies: + typescript: ^5.1.6 + peerDependenciesMeta: + typescript: + optional: true undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.11.1: - resolution: {integrity: sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==} - undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} - unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + unicode-match-property-value-ecmascript@2.2.0: + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} engines: {node: '>=4'} unicode-property-aliases-ecmascript@2.1.0: @@ -6482,6 +6925,9 @@ packages: unist-util-remove-position@5.0.0: resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} @@ -6494,25 +6940,24 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unix-crypt-td-js@1.1.4: - resolution: {integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==} - unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + untyped@1.4.2: + 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 @@ -6522,9 +6967,6 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -6536,53 +6978,29 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - validator@13.11.0: - resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} - engines: {node: '>= 0.10'} - - validator@13.12.0: - resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} - engines: {node: '>= 0.10'} + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - verdaccio-audit@12.0.0-next-7.19: - resolution: {integrity: sha512-KQUDCun/z9q11tDcuMyBpricl5wMSKcfC5aqYMOCsQY6lUQAQ8XpqrrJiiuSsen9cdcdANDI0PVa86zP71J21g==} - engines: {node: '>=12'} - - verdaccio-htpasswd@12.0.0-next-7.19: - resolution: {integrity: sha512-nGONalP6SVecprhULwtiXYfDK2A0jbJEBierv+zM0ji4fCtriRdtBaEiaYBW1h2mCr7A8DVP0KJ5xX+tHatZuA==} - engines: {node: '>=12'} - - verdaccio@5.32.0: - resolution: {integrity: sha512-3s1wRiUVj6JpHJZUCM3zPzjqV5PMqnsINFUWe5CC62K9ZEejAGNhG0sy8sPF9oPFvrfL7+LKOyVpJtUVxXjSqA==} - engines: {node: '>=14'} - hasBin: true - - verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} - vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile@6.0.2: - resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite-node@2.0.5: + resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true - vite@5.4.0: - resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==} + vite@5.4.3: + resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -6612,8 +7030,8 @@ packages: terser: optional: true - vite@5.4.1: - resolution: {integrity: sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==} + vite@5.4.6: + resolution: {integrity: sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -6643,14 +7061,39 @@ packages: terser: optional: true - vitefu@0.2.5: - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + vitefu@1.0.2: + resolution: {integrity: sha512-0/iAvbXyM3RiPPJ4lyD4w6Mjgtf4ejTK6TPvTNG3H32PLwuT0N/ZjJLiXug7ETE/LWtTeHw9WRv7uX/tIKYyKg==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: vite: optional: true + vitest@2.0.5: + resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.0.5 + '@vitest/ui': 2.0.5 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + volar-service-css@0.0.61: resolution: {integrity: sha512-Ct9L/w+IB1JU8F4jofcNCGoHy6TF83aiapfZq9A0qYYpq+Kk5dH+ONS+rVZSsuhsunq8UvAuF8Gk6B8IFLfniw==} peerDependencies: @@ -6710,11 +7153,11 @@ packages: '@volar/language-service': optional: true - vscode-css-languageservice@6.3.0: - resolution: {integrity: sha512-nU92imtkgzpCL0xikrIb8WvedV553F2BENzgz23wFuok/HLN5BeQmroMy26pUwFxV2eV8oNRmYCUv8iO7kSMhw==} + vscode-css-languageservice@6.3.1: + resolution: {integrity: sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==} - vscode-html-languageservice@5.3.0: - resolution: {integrity: sha512-C4Z3KsP5Ih+fjHpiBc5jxmvCl+4iEwvXegIrzu2F5pktbWvQaBT3YkVPk8N+QlSSMk8oCG6PKtZ/Sq2YHb5e8g==} + vscode-html-languageservice@5.3.1: + resolution: {integrity: sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==} vscode-json-languageservice@4.1.8: resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} @@ -6734,8 +7177,8 @@ packages: vscode-languageserver-protocol@3.17.5: resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} - vscode-languageserver-textdocument@1.0.11: - resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} vscode-languageserver-types@3.16.0: resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} @@ -6760,6 +7203,12 @@ packages: vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + watchpack@2.4.1: resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} engines: {node: '>=10.13.0'} @@ -6780,14 +7229,8 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - webpack-dev-middleware@7.3.0: - resolution: {integrity: sha512-xD2qnNew+F6KwOGZR7kWdbIou/ud7cVqLEXeK1q0nHcNsX/u7ul/fSdlOTX4ntSL5FNFy7ZJJXbf0piF591JYw==} + webpack-dev-middleware@7.4.2: + resolution: {integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==} engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.0.0 @@ -6826,8 +7269,8 @@ packages: html-webpack-plugin: optional: true - webpack@5.93.0: - resolution: {integrity: sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==} + webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -6844,33 +7287,24 @@ packages: resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} engines: {node: '>=0.8.0'} - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} - which-pm@2.2.0: - resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} - engines: {node: '>=8.15'} - which-pm@3.0.0: resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} engines: {node: '>=18.12'} - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + widest-line@4.0.1: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} @@ -6878,8 +7312,9 @@ packages: wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -6916,9 +7351,9 @@ packages: resolution: {integrity: sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==} engines: {node: '>= 6'} - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} xxhash-wasm@1.0.2: resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} @@ -6927,20 +7362,20 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml-eslint-parser@1.2.3: + resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} + engines: {node: ^14.17.0 || >=16.0.0} + yaml-language-server@1.15.0: resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} hasBin: true - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - yaml@2.2.2: resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} engines: {node: '>= 14'} @@ -6958,10 +7393,6 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -6974,12 +7405,8 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} - yup@0.32.11: - resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==} - engines: {node: '>=10'} - - zod-to-json-schema@3.23.2: - resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==} + zod-to-json-schema@3.23.3: + resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} peerDependencies: zod: ^3.23.3 @@ -7007,46 +7434,48 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@analogjs/astro-angular@1.7.2(ji6cl3wlb4m23dvqg7xxeumejq)': - dependencies: - '@analogjs/vite-plugin-angular': 1.7.2(6fanvpkyxabzzumll5oyozrr7i) - '@angular-devkit/build-angular': 18.2.1(@angular/compiler-cli@18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(@angular/platform-server@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))))(@types/node@22.4.1)(chokidar@3.6.0)(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(typescript@5.5.4) - '@angular/animations': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) - '@angular/common': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/compiler': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) - '@angular/compiler-cli': 18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4) - '@angular/core': 18.2.1(rxjs@7.8.1)(zone.js@0.14.10) - '@angular/language-service': 18.2.1 - '@angular/platform-browser': 18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) - '@angular/platform-browser-dynamic': 18.2.1(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))) - '@angular/platform-server': 18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))) + '@analogjs/astro-angular@1.8.1(lftbka73uudwbrml3ax5ill2iq)': + dependencies: + '@analogjs/vite-plugin-angular': 1.8.1(yaxhdiqnj7roru6eb57xw3lfsq) + '@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)(tailwindcss@3.4.13)(typescript@5.5.4) + '@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/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/core': 18.2.5(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/language-service': 18.2.5 + '@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-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))) + '@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))) rxjs: 7.8.1 tslib: 2.7.0 zone.js: 0.14.10 transitivePeerDependencies: - - '@ngtools/webpack' + - '@angular/build' - '@analogjs/vite-plugin-angular@1.7.2(6fanvpkyxabzzumll5oyozrr7i)': + '@analogjs/vite-plugin-angular@1.8.1(yaxhdiqnj7roru6eb57xw3lfsq)': dependencies: - '@angular-devkit/build-angular': 18.2.1(@angular/compiler-cli@18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(@angular/platform-server@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))))(@types/node@22.4.1)(chokidar@3.6.0)(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(typescript@5.5.4) - '@ngtools/webpack': 18.2.1(@angular/compiler-cli@18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(typescript@5.5.4)(webpack@5.93.0(esbuild@0.23.0)) ts-morph: 21.0.1 + vfile: 6.0.3 + optionalDependencies: + '@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)(tailwindcss@3.4.13)(typescript@5.5.4) + '@angular/build': 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)(less@4.2.0)(postcss@8.4.44)(tailwindcss@3.4.13)(terser@5.31.6)(typescript@5.5.4) - '@angular-devkit/architect@0.1802.1(chokidar@3.6.0)': + '@angular-devkit/architect@0.1802.5(chokidar@3.6.0)': dependencies: - '@angular-devkit/core': 18.2.1(chokidar@3.6.0) + '@angular-devkit/core': 18.2.5(chokidar@3.6.0) rxjs: 7.8.1 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@18.2.1(@angular/compiler-cli@18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(@angular/platform-server@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))))(@types/node@22.4.1)(chokidar@3.6.0)(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(typescript@5.5.4)': + '@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)(tailwindcss@3.4.13)(typescript@5.5.4)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1802.1(chokidar@3.6.0) - '@angular-devkit/build-webpack': 0.1802.1(chokidar@3.6.0)(webpack-dev-server@5.0.4(webpack@5.93.0(esbuild@0.23.0)))(webpack@5.93.0(esbuild@0.23.0)) - '@angular-devkit/core': 18.2.1(chokidar@3.6.0) - '@angular/build': 18.2.1(@angular/compiler-cli@18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(@angular/platform-server@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))))(@types/node@22.4.1)(chokidar@3.6.0)(less@4.2.0)(postcss@8.4.41)(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(terser@5.31.6)(typescript@5.5.4) - '@angular/compiler-cli': 18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4) + '@angular-devkit/architect': 0.1802.5(chokidar@3.6.0) + '@angular-devkit/build-webpack': 0.1802.5(chokidar@3.6.0)(webpack-dev-server@5.0.4(webpack@5.94.0(esbuild@0.23.0)))(webpack@5.94.0(esbuild@0.23.0)) + '@angular-devkit/core': 18.2.5(chokidar@3.6.0) + '@angular/build': 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)(less@4.2.0)(postcss@8.4.41)(tailwindcss@3.4.13)(terser@5.31.6)(typescript@5.5.4) + '@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) '@babel/core': 7.25.2 '@babel/generator': 7.25.0 '@babel/helper-annotate-as-pure': 7.24.7 @@ -7057,15 +7486,15 @@ snapshots: '@babel/preset-env': 7.25.3(@babel/core@7.25.2) '@babel/runtime': 7.25.0 '@discoveryjs/json-ext': 0.6.1 - '@ngtools/webpack': 18.2.1(@angular/compiler-cli@18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(typescript@5.5.4)(webpack@5.93.0(esbuild@0.23.0)) - '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.4.0(@types/node@22.4.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)) + '@ngtools/webpack': 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))(typescript@5.5.4)(webpack@5.94.0(esbuild@0.23.0)) + '@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)) 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.93.0(esbuild@0.23.0)) - browserslist: 4.23.3 - copy-webpack-plugin: 12.0.2(webpack@5.93.0(esbuild@0.23.0)) + babel-loader: 9.1.3(@babel/core@7.25.2)(webpack@5.94.0(esbuild@0.23.0)) + browserslist: 4.23.0 + 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.93.0(esbuild@0.23.0)) + css-loader: 7.1.2(webpack@5.94.0(esbuild@0.23.0)) esbuild-wasm: 0.23.0 fast-glob: 3.3.2 http-proxy-middleware: 3.0.0 @@ -7074,11 +7503,11 @@ snapshots: jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.2.0 - less-loader: 12.2.0(less@4.2.0)(webpack@5.93.0(esbuild@0.23.0)) - license-webpack-plugin: 4.0.2(webpack@5.93.0(esbuild@0.23.0)) + less-loader: 12.2.0(less@4.2.0)(webpack@5.94.0(esbuild@0.23.0)) + license-webpack-plugin: 4.0.2(webpack@5.94.0(esbuild@0.23.0)) loader-utils: 3.3.1 magic-string: 0.30.11 - mini-css-extract-plugin: 2.9.0(webpack@5.93.0(esbuild@0.23.0)) + mini-css-extract-plugin: 2.9.0(webpack@5.94.0(esbuild@0.23.0)) mrmime: 2.0.0 open: 10.1.0 ora: 5.4.1 @@ -7086,29 +7515,29 @@ snapshots: picomatch: 4.0.2 piscina: 4.6.1 postcss: 8.4.41 - postcss-loader: 8.1.1(postcss@8.4.41)(typescript@5.5.4)(webpack@5.93.0(esbuild@0.23.0)) + postcss-loader: 8.1.1(postcss@8.4.41)(typescript@5.5.4)(webpack@5.94.0(esbuild@0.23.0)) resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.77.6 - sass-loader: 16.0.0(sass@1.77.6)(webpack@5.93.0(esbuild@0.23.0)) + sass-loader: 16.0.0(sass@1.77.6)(webpack@5.94.0(esbuild@0.23.0)) semver: 7.6.3 - source-map-loader: 5.0.0(webpack@5.93.0(esbuild@0.23.0)) + source-map-loader: 5.0.0(webpack@5.94.0(esbuild@0.23.0)) source-map-support: 0.5.21 terser: 5.31.6 tree-kill: 1.2.2 tslib: 2.6.3 typescript: 5.5.4 - vite: 5.4.0(@types/node@22.4.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) watchpack: 2.4.1 - webpack: 5.93.0(esbuild@0.23.0) - webpack-dev-middleware: 7.3.0(webpack@5.93.0(esbuild@0.23.0)) - webpack-dev-server: 5.0.4(webpack@5.93.0(esbuild@0.23.0)) + webpack: 5.94.0(esbuild@0.23.0) + webpack-dev-middleware: 7.4.2(webpack@5.94.0(esbuild@0.23.0)) + webpack-dev-server: 5.0.4(webpack@5.94.0(esbuild@0.23.0)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(webpack@5.93.0(esbuild@0.23.0)) + webpack-subresource-integrity: 5.1.0(webpack@5.94.0(esbuild@0.23.0)) optionalDependencies: - '@angular/platform-server': 18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))) + '@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))) esbuild: 0.23.0 - tailwindcss: 3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)) + tailwindcss: 3.4.13 transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -7127,16 +7556,16 @@ snapshots: - utf-8-validate - webpack-cli - '@angular-devkit/build-webpack@0.1802.1(chokidar@3.6.0)(webpack-dev-server@5.0.4(webpack@5.93.0(esbuild@0.23.0)))(webpack@5.93.0(esbuild@0.23.0))': + '@angular-devkit/build-webpack@0.1802.5(chokidar@3.6.0)(webpack-dev-server@5.0.4(webpack@5.94.0(esbuild@0.23.0)))(webpack@5.94.0(esbuild@0.23.0))': dependencies: - '@angular-devkit/architect': 0.1802.1(chokidar@3.6.0) + '@angular-devkit/architect': 0.1802.5(chokidar@3.6.0) rxjs: 7.8.1 - webpack: 5.93.0(esbuild@0.23.0) - webpack-dev-server: 5.0.4(webpack@5.93.0(esbuild@0.23.0)) + webpack: 5.94.0(esbuild@0.23.0) + webpack-dev-server: 5.0.4(webpack@5.94.0(esbuild@0.23.0)) transitivePeerDependencies: - chokidar - '@angular-devkit/core@18.2.1(chokidar@3.6.0)': + '@angular-devkit/core@18.2.5(chokidar@3.6.0)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -7147,23 +7576,23 @@ snapshots: optionalDependencies: chokidar: 3.6.0 - '@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))': + '@angular/animations@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))': dependencies: - '@angular/core': 18.2.1(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/core': 18.2.5(rxjs@7.8.1)(zone.js@0.14.10) tslib: 2.7.0 - '@angular/build@18.2.1(@angular/compiler-cli@18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(@angular/platform-server@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))))(@types/node@22.4.1)(chokidar@3.6.0)(less@4.2.0)(postcss@8.4.41)(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(terser@5.31.6)(typescript@5.5.4)': + '@angular/build@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)(less@4.2.0)(postcss@8.4.41)(tailwindcss@3.4.13)(terser@5.31.6)(typescript@5.5.4)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1802.1(chokidar@3.6.0) - '@angular/compiler-cli': 18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4) + '@angular-devkit/architect': 0.1802.5(chokidar@3.6.0) + '@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) '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 '@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.0(@types/node@22.4.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)) - browserslist: 4.23.3 + '@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 critters: 0.0.24 esbuild: 0.23.0 fast-glob: 3.3.2 @@ -7179,13 +7608,57 @@ snapshots: sass: 1.77.6 semver: 7.6.3 typescript: 5.5.4 - vite: 5.4.0(@types/node@22.4.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) watchpack: 2.4.1 optionalDependencies: - '@angular/platform-server': 18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))) + '@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))) less: 4.2.0 postcss: 8.4.41 - tailwindcss: 3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)) + tailwindcss: 3.4.13 + transitivePeerDependencies: + - '@types/node' + - chokidar + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + '@angular/build@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)(less@4.2.0)(postcss@8.4.44)(tailwindcss@3.4.13)(terser@5.31.6)(typescript@5.5.4)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1802.5(chokidar@3.6.0) + '@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) + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@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 + critters: 0.0.24 + esbuild: 0.23.0 + fast-glob: 3.3.2 + https-proxy-agent: 7.0.5 + listr2: 8.2.4 + lmdb: 3.0.13 + magic-string: 0.30.11 + mrmime: 2.0.0 + parse5-html-rewriting-stream: 7.0.0 + picomatch: 4.0.2 + piscina: 4.6.1 + rollup: 4.20.0 + sass: 1.77.6 + semver: 7.6.3 + typescript: 5.5.4 + vite: 5.4.6(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + watchpack: 2.4.1 + optionalDependencies: + '@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))) + less: 4.2.0 + postcss: 8.4.44 + tailwindcss: 3.4.13 transitivePeerDependencies: - '@types/node' - chokidar @@ -7195,27 +7668,28 @@ snapshots: - sugarss - supports-color - terser + optional: true - '@angular/cdk@18.2.1(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)': + '@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)': dependencies: - '@angular/common': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/core': 18.2.1(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 optionalDependencies: parse5: 7.1.2 - '@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)': + '@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.1(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/core': 18.2.5(rxjs@7.8.1)(zone.js@0.14.10) rxjs: 7.8.1 tslib: 2.7.0 - '@angular/compiler-cli@18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4)': + '@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)': dependencies: - '@angular/compiler': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) + '@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.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 chokidar: 3.6.0 convert-source-map: 1.9.0 reflect-metadata: 0.2.2 @@ -7226,59 +7700,112 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))': + '@angular/compiler@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))': dependencies: tslib: 2.7.0 optionalDependencies: - '@angular/core': 18.2.1(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/core': 18.2.5(rxjs@7.8.1)(zone.js@0.14.10) - '@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)': + '@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)': dependencies: rxjs: 7.8.1 tslib: 2.7.0 zone.js: 0.14.10 - '@angular/forms@18.2.1(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1)': + '@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.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/core': 18.2.1(rxjs@7.8.1)(zone.js@0.14.10) - '@angular/platform-browser': 18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(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': 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.1': {} + '@angular/language-service@18.2.5': {} - '@angular/platform-browser-dynamic@18.2.1(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))': + '@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)))': dependencies: - '@angular/common': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/compiler': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) - '@angular/core': 18.2.1(rxjs@7.8.1)(zone.js@0.14.10) - '@angular/platform-browser': 18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(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)) tslib: 2.7.0 - '@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(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))': dependencies: - '@angular/common': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/core': 18.2.1(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) tslib: 2.7.0 optionalDependencies: - '@angular/animations': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) + '@angular/animations': 18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)) - '@angular/platform-server@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))': + '@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)))': dependencies: - '@angular/animations': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) - '@angular/common': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/compiler': 18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) - '@angular/core': 18.2.1(rxjs@7.8.1)(zone.js@0.14.10) - '@angular/platform-browser': 18.2.1(@angular/animations@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)) + '@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)) tslib: 2.7.0 xhr2: 0.2.1 - '@antfu/ni@0.21.12': {} + '@antfu/eslint-config@3.3.2(@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(@vue/compiler-sfc@3.3.10)(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6))': + dependencies: + '@antfu/install-pkg': 0.4.1 + '@clack/prompts': 0.7.0 + '@eslint-community/eslint-plugin-eslint-comments': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@stylistic/eslint-plugin': 2.7.2(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@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) + '@typescript-eslint/parser': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@vitest/eslint-plugin': 1.1.0(@typescript-eslint/utils@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)(vitest@2.0.5(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)) + eslint: 9.9.1(jiti@1.21.6) + eslint-config-flat-gitignore: 0.3.0(eslint@9.9.1(jiti@1.21.6)) + eslint-flat-config-utils: 0.3.1 + eslint-merge-processors: 0.1.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-antfu: 2.5.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-command: 0.2.3(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-import-x: 4.2.1(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + eslint-plugin-jsdoc: 50.2.2(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-jsonc: 2.16.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-markdown: 5.1.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-n: 17.10.2(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-no-only-tests: 3.3.0 + eslint-plugin-perfectionist: 3.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.6))) + eslint-plugin-regexp: 2.6.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-toml: 0.11.1(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-unicorn: 55.0.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-unused-imports: 4.1.3(@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))(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-vue: 9.28.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-yml: 1.14.0(eslint@9.9.1(jiti@1.21.6)) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.3.10)(eslint@9.9.1(jiti@1.21.6)) + globals: 15.9.0 + jsonc-eslint-parser: 2.4.0 + local-pkg: 0.5.0 + parse-gitignore: 2.0.0 + picocolors: 1.1.0 + toml-eslint-parser: 0.10.0 + vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.6)) + yaml-eslint-parser: 1.2.3 + yargs: 17.7.2 + transitivePeerDependencies: + - '@typescript-eslint/utils' + - '@vue/compiler-sfc' + - supports-color + - svelte + - typescript + - vitest + + '@antfu/install-pkg@0.4.1': + dependencies: + package-manager-detector: 0.2.0 + tinyexec: 0.3.0 + + '@antfu/ni@0.23.0': {} + + '@antfu/utils@0.7.10': {} '@astrojs/check@0.9.3(prettier@3.3.3)(typescript@5.5.4)': dependencies: - '@astrojs/language-server': 2.14.1(prettier@3.3.3)(typescript@5.5.4) + '@astrojs/language-server': 2.14.2(prettier@3.3.3)(typescript@5.5.4) chokidar: 3.6.0 fast-glob: 3.3.2 kleur: 4.1.5 @@ -7292,26 +7819,26 @@ snapshots: '@astrojs/internal-helpers@0.4.1': {} - '@astrojs/language-server@2.14.1(prettier@3.3.3)(typescript@5.5.4)': + '@astrojs/language-server@2.14.2(prettier@3.3.3)(typescript@5.5.4)': dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/yaml2ts': 0.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@volar/kit': 2.4.0(typescript@5.5.4) - '@volar/language-core': 2.4.0 - '@volar/language-server': 2.4.0 - '@volar/language-service': 2.4.0 - '@volar/typescript': 2.4.0 + '@jridgewell/sourcemap-codec': 1.4.15 + '@volar/kit': 2.4.5(typescript@5.5.4) + '@volar/language-core': 2.4.5 + '@volar/language-server': 2.4.5 + '@volar/language-service': 2.4.5 + '@volar/typescript': 2.4.5 fast-glob: 3.3.2 muggle-string: 0.4.1 - volar-service-css: 0.0.61(@volar/language-service@2.4.0) - volar-service-emmet: 0.0.61(@volar/language-service@2.4.0) - volar-service-html: 0.0.61(@volar/language-service@2.4.0) - volar-service-prettier: 0.0.61(@volar/language-service@2.4.0)(prettier@3.3.3) - volar-service-typescript: 0.0.61(@volar/language-service@2.4.0) - volar-service-typescript-twoslash-queries: 0.0.61(@volar/language-service@2.4.0) - volar-service-yaml: 0.0.61(@volar/language-service@2.4.0) - vscode-html-languageservice: 5.3.0 + volar-service-css: 0.0.61(@volar/language-service@2.4.5) + volar-service-emmet: 0.0.61(@volar/language-service@2.4.5) + volar-service-html: 0.0.61(@volar/language-service@2.4.5) + volar-service-prettier: 0.0.61(@volar/language-service@2.4.5)(prettier@3.3.3) + volar-service-typescript: 0.0.61(@volar/language-service@2.4.5) + volar-service-typescript-twoslash-queries: 0.0.61(@volar/language-service@2.4.5) + volar-service-yaml: 0.0.61(@volar/language-service@2.4.5) + vscode-html-languageservice: 5.3.1 vscode-uri: 3.0.8 optionalDependencies: prettier: 3.3.3 @@ -7322,7 +7849,7 @@ snapshots: dependencies: '@astrojs/prism': 3.1.0 github-slugger: 2.0.0 - hast-util-from-html: 2.0.1 + hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 import-meta-resolve: 4.1.0 mdast-util-definitions: 6.0.0 @@ -7330,35 +7857,34 @@ snapshots: rehype-stringify: 10.0.0 remark-gfm: 4.0.0 remark-parse: 11.0.0 - remark-rehype: 11.1.0 + remark-rehype: 11.1.1 remark-smartypants: 3.0.2 - shiki: 1.14.1 + shiki: 1.18.0 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 unist-util-visit-parents: 6.0.1 - vfile: 6.0.2 + vfile: 6.0.3 transitivePeerDependencies: - supports-color - '@astrojs/mdx@3.1.3(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))': + '@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))': dependencies: '@astrojs/markdown-remark': 5.2.0 '@mdx-js/mdx': 3.0.1 acorn: 8.12.1 - astro: 4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.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) es-module-lexer: 1.5.4 estree-util-visit: 2.0.0 - github-slugger: 2.0.0 gray-matter: 4.0.3 - hast-util-to-html: 9.0.1 + hast-util-to-html: 9.0.3 kleur: 4.1.5 rehype-raw: 7.0.0 remark-gfm: 4.0.0 remark-smartypants: 3.0.2 source-map: 0.7.4 unist-util-visit: 5.0.0 - vfile: 6.0.2 + vfile: 6.0.3 transitivePeerDependencies: - supports-color @@ -7372,55 +7898,55 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.23.8 - '@astrojs/starlight-tailwind@2.0.3(@astrojs/starlight@0.26.1(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)))(@astrojs/tailwind@5.1.0(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))': + '@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.1(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)) - '@astrojs/tailwind': 5.1.0(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)) - tailwindcss: 3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)) + '@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.1(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))': + '@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.3(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)) + '@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.0 + '@pagefind/default-ui': 1.1.1 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - astro: 4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4) - astro-expressive-code: 0.35.6(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.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.1 + 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.0 + pagefind: 1.1.1 rehype: 13.0.1 - rehype-format: 5.0.0 + rehype-format: 5.0.1 remark-directive: 3.0.0 unified: 11.0.5 unist-util-visit: 5.0.0 - vfile: 6.0.2 + vfile: 6.0.3 transitivePeerDependencies: - supports-color - '@astrojs/tailwind@5.1.0(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4))(tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)))(ts-node@10.9.1(@types/node@22.4.1)(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)': dependencies: - astro: 4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4) - autoprefixer: 10.4.19(postcss@8.4.40) - postcss: 8.4.40 - postcss-load-config: 4.0.2(postcss@8.4.40)(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)) - tailwindcss: 3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.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) + autoprefixer: 10.4.20(postcss@8.4.47) + postcss: 8.4.47 + postcss-load-config: 4.0.2(postcss@8.4.47) + tailwindcss: 3.4.13 transitivePeerDependencies: - ts-node '@astrojs/telemetry@3.1.0': dependencies: ci-info: 4.0.0 - debug: 4.3.6 + debug: 4.3.7 dlv: 1.1.3 - dset: 3.1.3 + dset: 3.1.4 is-docker: 3.0.0 is-wsl: 3.1.0 which-pm-runs: 1.1.0 @@ -7431,12 +7957,39 @@ snapshots: dependencies: yaml: 2.5.0 + '@babel/code-frame@7.24.2': + dependencies: + '@babel/highlight': 7.24.5 + picocolors: 1.1.0 + '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + picocolors: 1.1.0 + + '@babel/compat-data@7.24.4': {} - '@babel/compat-data@7.25.2': {} + '@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/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helpers': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color '@babel/core@7.25.2': dependencies: @@ -7445,11 +7998,11 @@ snapshots: '@babel/generator': 7.25.0 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.0 - '@babel/parser': 7.25.3 + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 convert-source-map: 2.0.0 debug: 4.3.6 gensync: 1.0.0-beta.2 @@ -7458,33 +8011,55 @@ snapshots: 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.2 + '@babel/types': 7.25.6 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/generator@7.25.6': + dependencies: + '@babel/types': 7.25.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 '@babel/helper-annotate-as-pure@7.24.7': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color + '@babel/helper-compilation-targets@7.23.6': + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-compilation-targets@7.25.2': dependencies: - '@babel/compat-data': 7.25.2 + '@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 - '@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.25.2)': + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 @@ -7492,12 +8067,12 @@ snapshots: '@babel/helper-optimise-call-expression': 7.24.7 '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.25.0(@babel/core@7.25.2)': + '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 @@ -7509,39 +8084,63 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.6 + debug: 4.3.7 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color + '@babel/helper-environment-visitor@7.22.20': {} + + '@babel/helper-function-name@7.23.0': + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.5 + + '@babel/helper-hoist-variables@7.22.5': + dependencies: + '@babel/types': 7.24.5 + '@babel/helper-member-expression-to-functions@7.24.8': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 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.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.24.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.24.7': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 '@babel/helper-plugin-utils@7.24.8': {} @@ -7550,7 +8149,7 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-wrap-function': 7.25.0 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -7559,71 +8158,96 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color + '@babel/helper-simple-access@7.24.5': + dependencies: + '@babel/types': 7.24.5 + '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 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.2 + '@babel/types': 7.25.6 + + '@babel/helper-string-parser@7.24.1': {} '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-validator-identifier@7.24.5': {} + '@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': dependencies: '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.24.5': + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 transitivePeerDependencies: - supports-color - '@babel/helpers@7.25.0': + '@babel/helpers@7.25.6': dependencies: '@babel/template': 7.25.0 - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 + + '@babel/highlight@7.24.5': + dependencies: + '@babel/helper-validator-identifier': 7.24.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.0 '@babel/highlight@7.24.7': dependencies: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 - '@babel/parser@7.25.3': + '@babel/parser@7.24.5': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.24.5 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.0(@babel/core@7.25.2)': + '@babel/parser@7.25.6': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.3 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.25.6 '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -7650,16 +8274,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.3 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.25.2) + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -7682,27 +8297,27 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-assertions@7.25.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 @@ -7762,15 +8377,10 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': @@ -7784,7 +8394,7 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -7807,10 +8417,10 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color @@ -7818,20 +8428,20 @@ snapshots: '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.0(@babel/core@7.25.2)': + '@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -7850,7 +8460,7 @@ snapshots: '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': @@ -7861,7 +8471,7 @@ snapshots: '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': @@ -7897,7 +8507,7 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -7907,11 +8517,6 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-literals@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -7951,7 +8556,7 @@ snapshots: '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color @@ -7966,7 +8571,7 @@ snapshots: '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': @@ -8022,10 +8627,10 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color @@ -8034,7 +8639,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: @@ -8052,7 +8657,7 @@ snapshots: '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color @@ -8073,7 +8678,7 @@ snapshots: '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.4(@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) semver: 6.3.1 transitivePeerDependencies: @@ -8107,17 +8712,6 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-typescript@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8126,29 +8720,29 @@ snapshots: '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.0(@babel/core@7.25.2) + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/preset-env@7.25.0(@babel/core@7.25.2)': + '@babel/preset-env@7.25.3(@babel/core@7.25.2)': dependencies: - '@babel/compat-data': 7.25.2 + '@babel/compat-data': 7.25.4 '@babel/core': 7.25.2 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2) '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2) '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) @@ -8159,8 +8753,8 @@ snapshots: '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-assertions': 7.25.6(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.25.2) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) @@ -8177,9 +8771,9 @@ snapshots: '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.2) '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.2) '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) @@ -8191,7 +8785,7 @@ snapshots: '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) @@ -8207,7 +8801,7 @@ snapshots: '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.2) '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) @@ -8220,351 +8814,95 @@ snapshots: '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-sets-regex': 7.25.4(@babel/core@7.25.2) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.4(@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 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-env@7.25.3(@babel/core@7.25.2)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': dependencies: - '@babel/compat-data': 7.25.2 '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-generator-functions': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.25.2) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) - core-js-compat: 3.37.1 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/types': 7.25.2 + '@babel/types': 7.24.5 esutils: 2.0.3 - '@babel/preset-typescript@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.25.0(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - '@babel/regjsgen@0.8.0': {} '@babel/runtime@7.25.0': dependencies: regenerator-runtime: 0.14.1 + '@babel/standalone@7.24.5': {} + + '@babel/template@7.24.0': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 + '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 - '@babel/traverse@7.25.3': + '@babel/traverse@7.24.5': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/parser': 7.25.3 - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 - debug: 4.3.6 + '@babel/generator': 7.24.5 + '@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 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.25.2': - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - - '@changesets/apply-release-plan@7.0.4': - dependencies: - '@babel/runtime': 7.25.0 - '@changesets/config': 3.0.2 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.0 - '@changesets/should-skip-package': 0.1.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.6.3 - - '@changesets/assemble-release-plan@6.0.3': - dependencies: - '@babel/runtime': 7.25.0 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.1 - '@changesets/should-skip-package': 0.1.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - semver: 7.6.3 - - '@changesets/changelog-git@0.2.0': - dependencies: - '@changesets/types': 6.0.0 - - '@changesets/changelog-github@0.5.0': - dependencies: - '@changesets/get-github-info': 0.6.0 - '@changesets/types': 6.0.0 - dotenv: 8.6.0 - transitivePeerDependencies: - - encoding - - '@changesets/cli@2.27.7': + '@babel/traverse@7.25.6': dependencies: - '@babel/runtime': 7.25.0 - '@changesets/apply-release-plan': 7.0.4 - '@changesets/assemble-release-plan': 6.0.3 - '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.2 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.1 - '@changesets/get-release-plan': 4.0.3 - '@changesets/git': 3.0.0 - '@changesets/logger': 0.1.0 - '@changesets/pre': 2.0.0 - '@changesets/read': 0.6.0 - '@changesets/should-skip-package': 0.1.0 - '@changesets/types': 6.0.0 - '@changesets/write': 0.3.1 - '@manypkg/get-packages': 1.1.3 - '@types/semver': 7.5.8 - ansi-colors: 4.1.3 - chalk: 2.4.2 - ci-info: 3.9.0 - enquirer: 2.4.1 - external-editor: 3.1.0 - fs-extra: 7.0.1 - human-id: 1.0.2 - mri: 1.2.0 - outdent: 0.5.0 - p-limit: 2.3.0 - preferred-pm: 3.1.4 - resolve-from: 5.0.0 - semver: 7.6.3 - spawndamnit: 2.0.0 - term-size: 2.2.1 - - '@changesets/config@3.0.2': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.1 - '@changesets/logger': 0.1.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.7 - - '@changesets/errors@0.2.0': - dependencies: - extendable-error: 0.1.7 - - '@changesets/get-dependents-graph@2.1.1': - dependencies: - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - chalk: 2.4.2 - fs-extra: 7.0.1 - semver: 7.6.3 - - '@changesets/get-github-info@0.6.0': - dependencies: - dataloader: 1.4.0 - node-fetch: 2.7.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 + debug: 4.3.7 + globals: 11.12.0 transitivePeerDependencies: - - encoding - - '@changesets/get-release-plan@4.0.3': - dependencies: - '@babel/runtime': 7.25.0 - '@changesets/assemble-release-plan': 6.0.3 - '@changesets/config': 3.0.2 - '@changesets/pre': 2.0.0 - '@changesets/read': 0.6.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/get-version-range-type@0.4.0': {} - - '@changesets/git@3.0.0': - dependencies: - '@babel/runtime': 7.25.0 - '@changesets/errors': 0.2.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.7 - spawndamnit: 2.0.0 - - '@changesets/logger@0.1.0': - dependencies: - chalk: 2.4.2 - - '@changesets/parse@0.4.0': - dependencies: - '@changesets/types': 6.0.0 - js-yaml: 3.14.1 - - '@changesets/pre@2.0.0': - dependencies: - '@babel/runtime': 7.25.0 - '@changesets/errors': 0.2.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 + - supports-color - '@changesets/read@0.6.0': + '@babel/types@7.24.5': dependencies: - '@babel/runtime': 7.25.0 - '@changesets/git': 3.0.0 - '@changesets/logger': 0.1.0 - '@changesets/parse': 0.4.0 - '@changesets/types': 6.0.0 - chalk: 2.4.2 - fs-extra: 7.0.1 - p-filter: 2.1.0 + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.24.5 + to-fast-properties: 2.0.0 - '@changesets/should-skip-package@0.1.0': + '@babel/types@7.25.6': dependencies: - '@babel/runtime': 7.25.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/types@4.1.0': {} - - '@changesets/types@6.0.0': {} + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 - '@changesets/write@0.3.1': + '@clack/core@0.3.4': dependencies: - '@babel/runtime': 7.25.0 - '@changesets/types': 6.0.0 - fs-extra: 7.0.1 - human-id: 1.0.2 - prettier: 2.8.8 + picocolors: 1.1.0 + sisteransi: 1.0.5 - '@cspotcode/source-map-support@0.8.1': + '@clack/prompts@0.7.0': dependencies: - '@jridgewell/trace-mapping': 0.3.9 + '@clack/core': 0.3.4 + picocolors: 1.1.0 + sisteransi: 1.0.5 '@ctrl/tinycolor@4.1.0': {} - '@cypress/request@3.0.1': - dependencies: - aws-sign2: 0.7.0 - aws4: 1.13.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - http-signature: 1.3.6 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - performance-now: 2.1.0 - qs: 6.10.4 - safe-buffer: 5.2.1 - tough-cookie: 4.1.4 - tunnel-agent: 0.6.0 - uuid: 8.3.2 - '@discoveryjs/json-ext@0.6.1': {} '@emmetio/abbreviation@2.3.3': @@ -8590,18 +8928,31 @@ snapshots: '@emmetio/stream-reader@2.2.0': {} - '@emnapi/core@1.2.0': + '@emnapi/runtime@1.2.0': dependencies: - '@emnapi/wasi-threads': 1.0.1 tslib: 2.7.0 + optional: true - '@emnapi/runtime@1.2.0': + '@es-joy/jsdoccomment@0.43.1': dependencies: - tslib: 2.7.0 + '@types/eslint': 8.56.10 + '@types/estree': 1.0.5 + '@typescript-eslint/types': 7.9.0 + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.0.0 - '@emnapi/wasi-threads@1.0.1': + '@es-joy/jsdoccomment@0.48.0': dependencies: - tslib: 2.7.0 + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/aix-ppc64@0.20.2': + optional: true '@esbuild/aix-ppc64@0.21.5': optional: true @@ -8609,7 +8960,10 @@ snapshots: '@esbuild/aix-ppc64@0.23.0': optional: true - '@esbuild/android-arm64@0.17.19': + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.20.2': optional: true '@esbuild/android-arm64@0.21.5': @@ -8618,7 +8972,10 @@ snapshots: '@esbuild/android-arm64@0.23.0': optional: true - '@esbuild/android-arm@0.17.19': + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-arm@0.20.2': optional: true '@esbuild/android-arm@0.21.5': @@ -8627,7 +8984,10 @@ snapshots: '@esbuild/android-arm@0.23.0': optional: true - '@esbuild/android-x64@0.17.19': + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/android-x64@0.20.2': optional: true '@esbuild/android-x64@0.21.5': @@ -8636,7 +8996,10 @@ snapshots: '@esbuild/android-x64@0.23.0': optional: true - '@esbuild/darwin-arm64@0.17.19': + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.20.2': optional: true '@esbuild/darwin-arm64@0.21.5': @@ -8645,7 +9008,10 @@ snapshots: '@esbuild/darwin-arm64@0.23.0': optional: true - '@esbuild/darwin-x64@0.17.19': + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.20.2': optional: true '@esbuild/darwin-x64@0.21.5': @@ -8654,7 +9020,10 @@ snapshots: '@esbuild/darwin-x64@0.23.0': optional: true - '@esbuild/freebsd-arm64@0.17.19': + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.20.2': optional: true '@esbuild/freebsd-arm64@0.21.5': @@ -8663,7 +9032,10 @@ snapshots: '@esbuild/freebsd-arm64@0.23.0': optional: true - '@esbuild/freebsd-x64@0.17.19': + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.20.2': optional: true '@esbuild/freebsd-x64@0.21.5': @@ -8672,7 +9044,10 @@ snapshots: '@esbuild/freebsd-x64@0.23.0': optional: true - '@esbuild/linux-arm64@0.17.19': + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.20.2': optional: true '@esbuild/linux-arm64@0.21.5': @@ -8681,7 +9056,10 @@ snapshots: '@esbuild/linux-arm64@0.23.0': optional: true - '@esbuild/linux-arm@0.17.19': + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-arm@0.20.2': optional: true '@esbuild/linux-arm@0.21.5': @@ -8690,7 +9068,10 @@ snapshots: '@esbuild/linux-arm@0.23.0': optional: true - '@esbuild/linux-ia32@0.17.19': + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.20.2': optional: true '@esbuild/linux-ia32@0.21.5': @@ -8699,7 +9080,10 @@ snapshots: '@esbuild/linux-ia32@0.23.0': optional: true - '@esbuild/linux-loong64@0.17.19': + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.20.2': optional: true '@esbuild/linux-loong64@0.21.5': @@ -8708,7 +9092,10 @@ snapshots: '@esbuild/linux-loong64@0.23.0': optional: true - '@esbuild/linux-mips64el@0.17.19': + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.20.2': optional: true '@esbuild/linux-mips64el@0.21.5': @@ -8717,7 +9104,10 @@ snapshots: '@esbuild/linux-mips64el@0.23.0': optional: true - '@esbuild/linux-ppc64@0.17.19': + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.20.2': optional: true '@esbuild/linux-ppc64@0.21.5': @@ -8726,7 +9116,10 @@ snapshots: '@esbuild/linux-ppc64@0.23.0': optional: true - '@esbuild/linux-riscv64@0.17.19': + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.20.2': optional: true '@esbuild/linux-riscv64@0.21.5': @@ -8735,7 +9128,10 @@ snapshots: '@esbuild/linux-riscv64@0.23.0': optional: true - '@esbuild/linux-s390x@0.17.19': + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.20.2': optional: true '@esbuild/linux-s390x@0.21.5': @@ -8744,7 +9140,10 @@ snapshots: '@esbuild/linux-s390x@0.23.0': optional: true - '@esbuild/linux-x64@0.17.19': + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/linux-x64@0.20.2': optional: true '@esbuild/linux-x64@0.21.5': @@ -8753,7 +9152,10 @@ snapshots: '@esbuild/linux-x64@0.23.0': optional: true - '@esbuild/netbsd-x64@0.17.19': + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.20.2': optional: true '@esbuild/netbsd-x64@0.21.5': @@ -8765,7 +9167,10 @@ snapshots: '@esbuild/openbsd-arm64@0.23.0': optional: true - '@esbuild/openbsd-x64@0.17.19': + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.20.2': optional: true '@esbuild/openbsd-x64@0.21.5': @@ -8774,7 +9179,10 @@ snapshots: '@esbuild/openbsd-x64@0.23.0': optional: true - '@esbuild/sunos-x64@0.17.19': + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.20.2': optional: true '@esbuild/sunos-x64@0.21.5': @@ -8783,7 +9191,10 @@ snapshots: '@esbuild/sunos-x64@0.23.0': optional: true - '@esbuild/win32-arm64@0.17.19': + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.20.2': optional: true '@esbuild/win32-arm64@0.21.5': @@ -8792,7 +9203,10 @@ snapshots: '@esbuild/win32-arm64@0.23.0': optional: true - '@esbuild/win32-ia32@0.17.19': + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.20.2': optional: true '@esbuild/win32-ia32@0.21.5': @@ -8801,7 +9215,10 @@ snapshots: '@esbuild/win32-ia32@0.23.0': optional: true - '@esbuild/win32-x64@0.17.19': + '@esbuild/win32-x64@0.19.12': + optional: true + + '@esbuild/win32-x64@0.20.2': optional: true '@esbuild/win32-x64@0.21.5': @@ -8810,15 +9227,56 @@ snapshots: '@esbuild/win32-x64@0.23.0': optional: true + '@eslint-community/eslint-plugin-eslint-comments@4.4.0(eslint@9.9.1(jiti@1.21.6))': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.9.1(jiti@1.21.6) + ignore: 5.3.1 + + '@eslint-community/eslint-utils@4.4.0(eslint@9.9.1(jiti@1.21.6))': + dependencies: + eslint: 9.9.1(jiti@1.21.6) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.11.0': {} + + '@eslint/compat@1.1.1': {} + + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.6 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.3.6 + espree: 10.1.0 + globals: 14.0.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.9.1': {} + + '@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.1 + hast-util-to-html: 9.0.3 hast-util-to-text: 4.0.2 hastscript: 9.0.0 - postcss: 8.4.41 - postcss-nested: 6.2.0(postcss@8.4.41) + postcss: 8.4.44 + postcss-nested: 6.0.1(postcss@8.4.44) unist-util-visit: 5.0.0 unist-util-visit-parents: 6.0.1 @@ -8829,101 +9287,104 @@ snapshots: '@expressive-code/plugin-shiki@0.35.6': dependencies: '@expressive-code/core': 0.35.6 - shiki: 1.13.0 + shiki: 1.18.0 '@expressive-code/plugin-text-markers@0.35.6': dependencies: '@expressive-code/core': 0.35.6 - '@img/sharp-darwin-arm64@0.33.4': + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.0': {} + + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.2 + '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.33.4': + '@img/sharp-darwin-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.2 + '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-libvips-darwin-arm64@1.0.2': + '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true - '@img/sharp-libvips-darwin-x64@1.0.2': + '@img/sharp-libvips-darwin-x64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm64@1.0.2': + '@img/sharp-libvips-linux-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm@1.0.2': + '@img/sharp-libvips-linux-arm@1.0.5': optional: true - '@img/sharp-libvips-linux-s390x@1.0.2': + '@img/sharp-libvips-linux-s390x@1.0.4': optional: true - '@img/sharp-libvips-linux-x64@1.0.2': + '@img/sharp-libvips-linux-x64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.2': + '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-linux-arm64@0.33.4': + '@img/sharp-linux-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.2 + '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-arm@0.33.4': + '@img/sharp-linux-arm@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.2 + '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-s390x@0.33.4': + '@img/sharp-linux-s390x@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.2 + '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-x64@0.33.4': + '@img/sharp-linux-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.2 + '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.33.4': + '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.33.4': + '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-wasm32@0.33.4': + '@img/sharp-wasm32@0.33.5': dependencies: '@emnapi/runtime': 1.2.0 optional: true - '@img/sharp-win32-ia32@0.33.4': + '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-x64@0.33.4': + '@img/sharp-win32-x64@0.33.5': optional: true '@inquirer/confirm@3.1.22': dependencies: - '@inquirer/core': 9.0.10 - '@inquirer/type': 1.5.2 + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 - '@inquirer/core@9.0.10': + '@inquirer/core@9.2.1': dependencies: - '@inquirer/figures': 1.0.5 - '@inquirer/type': 1.5.2 + '@inquirer/figures': 1.0.6 + '@inquirer/type': 2.0.0 '@types/mute-stream': 0.0.4 - '@types/node': 22.4.1 + '@types/node': 22.6.1 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 - cli-spinners: 2.9.2 cli-width: 4.1.0 mute-stream: 1.0.0 signal-exit: 4.1.0 @@ -8931,9 +9392,13 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 - '@inquirer/figures@1.0.5': {} + '@inquirer/figures@1.0.6': {} - '@inquirer/type@1.5.2': + '@inquirer/type@1.5.5': + dependencies: + mute-stream: 1.0.0 + + '@inquirer/type@2.0.0': dependencies: mute-stream: 1.0.0 @@ -8948,14 +9413,10 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} @@ -8967,23 +9428,27 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping@0.3.9': + '@jsdevtools/ez-spawn@3.0.4': dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + call-me-maybe: 1.0.2 + cross-spawn: 7.0.3 + string-argv: 0.3.2 + type-detect: 4.0.8 '@jsonjoy.com/base64@1.1.2(tslib@2.7.0)': dependencies: tslib: 2.7.0 - '@jsonjoy.com/json-pack@1.0.4(tslib@2.7.0)': + '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) @@ -9015,22 +9480,6 @@ snapshots: '@lmdb/lmdb-win32-x64@3.0.13': optional: true - '@manypkg/find-root@1.1.0': - dependencies: - '@babel/runtime': 7.25.0 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 - - '@manypkg/get-packages@1.1.3': - dependencies: - '@babel/runtime': 7.25.0 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 - '@mdx-js/mdx@3.0.1': dependencies: '@types/estree': 1.0.5 @@ -9049,13 +9498,13 @@ snapshots: periscopic: 3.1.0 remark-mdx: 3.0.1 remark-parse: 11.0.0 - remark-rehype: 11.1.0 + remark-rehype: 11.1.1 source-map: 0.7.4 unified: 11.0.5 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.2 + vfile: 6.0.3 transitivePeerDependencies: - supports-color @@ -9077,31 +9526,26 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@napi-rs/wasm-runtime@0.2.4': + '@ng-icons/core@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)': dependencies: - '@emnapi/core': 1.2.0 - '@emnapi/runtime': 1.2.0 - '@tybys/wasm-util': 0.9.0 - - '@ng-icons/core@29.0.0(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)': - dependencies: - '@angular/core': 18.2.1(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 - '@ng-icons/lucide@29.0.0': + '@ng-icons/lucide@29.5.0': dependencies: tslib: 2.7.0 - '@ng-icons/radix-icons@29.0.0': + '@ng-icons/radix-icons@29.5.0': dependencies: tslib: 2.7.0 - '@ngtools/webpack@18.2.1(@angular/compiler-cli@18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4))(typescript@5.5.4)(webpack@5.93.0(esbuild@0.23.0))': + '@ngtools/webpack@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))(typescript@5.5.4)(webpack@5.94.0(esbuild@0.23.0))': dependencies: - '@angular/compiler-cli': 18.2.1(@angular/compiler@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.5.4) + '@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) typescript: 5.5.4 - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) '@nodelib/fs.scandir@2.1.5': dependencies: @@ -9115,241 +9559,233 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@nrwl/devkit@19.5.6(nx@19.5.6)': - dependencies: - '@nx/devkit': 19.5.6(nx@19.5.6) - transitivePeerDependencies: - - nx - - '@nrwl/js@19.5.6(@babel/traverse@7.25.3)(@types/node@22.4.1)(nx@19.5.6)(typescript@5.5.4)(verdaccio@5.32.0(typanion@3.14.0))': - dependencies: - '@nx/js': 19.5.6(@babel/traverse@7.25.3)(@types/node@22.4.1)(nx@19.5.6)(typescript@5.5.4)(verdaccio@5.32.0(typanion@3.14.0)) - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - debug - - nx - - supports-color - - typescript - - verdaccio - - '@nrwl/tao@19.5.6': - dependencies: - nx: 19.5.6 - tslib: 2.7.0 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - debug + '@oslojs/encoding@1.0.0': {} - '@nrwl/workspace@19.5.6': - dependencies: - '@nx/workspace': 19.5.6 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - debug - - '@nx/devkit@19.5.6(nx@19.5.6)': - dependencies: - '@nrwl/devkit': 19.5.6(nx@19.5.6) - ejs: 3.1.10 - enquirer: 2.3.6 - ignore: 5.3.1 - minimatch: 9.0.3 - nx: 19.5.6 - semver: 7.6.3 - tmp: 0.2.3 - tslib: 2.7.0 - yargs-parser: 21.1.1 - - '@nx/js@19.5.6(@babel/traverse@7.25.3)(@types/node@22.4.1)(nx@19.5.6)(typescript@5.5.4)(verdaccio@5.32.0(typanion@3.14.0))': - dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.25.2) - '@babel/preset-env': 7.25.0(@babel/core@7.25.2) - '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) - '@babel/runtime': 7.25.0 - '@nrwl/js': 19.5.6(@babel/traverse@7.25.3)(@types/node@22.4.1)(nx@19.5.6)(typescript@5.5.4)(verdaccio@5.32.0(typanion@3.14.0)) - '@nx/devkit': 19.5.6(nx@19.5.6) - '@nx/workspace': 19.5.6 - babel-plugin-const-enum: 1.2.0(@babel/core@7.25.2) - babel-plugin-macros: 2.8.0 - babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.25.2)(@babel/traverse@7.25.3) - chalk: 4.1.2 - columnify: 1.6.0 - detect-port: 1.6.1 - fast-glob: 3.2.7 - fs-extra: 11.2.0 - ignore: 5.3.1 - js-tokens: 4.0.0 - minimatch: 9.0.3 - npm-package-arg: 11.0.1 - npm-run-path: 4.0.1 - ora: 5.3.0 - semver: 7.6.3 - source-map-support: 0.5.19 - ts-node: 10.9.1(@types/node@22.4.1)(typescript@5.5.4) - tsconfig-paths: 4.2.0 - tslib: 2.6.3 - optionalDependencies: - verdaccio: 5.32.0(typanion@3.14.0) - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - debug - - nx - - supports-color - - typescript - - '@nx/nx-darwin-arm64@19.5.6': - optional: true - - '@nx/nx-darwin-x64@19.5.6': - optional: true - - '@nx/nx-freebsd-x64@19.5.6': + '@pagefind/darwin-arm64@1.1.1': optional: true - '@nx/nx-linux-arm-gnueabihf@19.5.6': + '@pagefind/darwin-x64@1.1.1': optional: true - '@nx/nx-linux-arm64-gnu@19.5.6': - optional: true + '@pagefind/default-ui@1.1.1': {} - '@nx/nx-linux-arm64-musl@19.5.6': + '@pagefind/linux-arm64@1.1.1': optional: true - '@nx/nx-linux-x64-gnu@19.5.6': + '@pagefind/linux-x64@1.1.1': optional: true - '@nx/nx-linux-x64-musl@19.5.6': + '@pagefind/windows-x64@1.1.1': optional: true - '@nx/nx-win32-arm64-msvc@19.5.6': + '@pkgjs/parseargs@0.11.0': optional: true - '@nx/nx-win32-x64-msvc@19.5.6': - optional: true + '@pkgr/core@0.1.1': {} - '@nx/workspace@19.5.6': + '@radix-ng/primitives@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))': dependencies: - '@nrwl/workspace': 19.5.6 - '@nx/devkit': 19.5.6(nx@19.5.6) - chalk: 4.1.2 - enquirer: 2.3.6 - nx: 19.5.6 + '@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) tslib: 2.7.0 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - debug - - '@oslojs/encoding@0.4.1': {} - - '@pagefind/darwin-arm64@1.1.0': - optional: true - - '@pagefind/darwin-x64@1.1.0': - optional: true - '@pagefind/default-ui@1.1.0': {} + '@rollup/plugin-alias@5.1.0(rollup@3.29.4)': + dependencies: + slash: 4.0.0 + optionalDependencies: + rollup: 3.29.4 - '@pagefind/linux-arm64@1.1.0': - optional: true + '@rollup/plugin-commonjs@25.0.7(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.10 + optionalDependencies: + rollup: 3.29.4 - '@pagefind/linux-x64@1.1.0': - optional: true + '@rollup/plugin-json@6.1.0(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + optionalDependencies: + rollup: 3.29.4 - '@pagefind/windows-x64@1.1.0': - optional: true + '@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.8 + optionalDependencies: + rollup: 3.29.4 - '@pkgjs/parseargs@0.11.0': - optional: true + '@rollup/plugin-replace@5.0.5(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + magic-string: 0.30.10 + optionalDependencies: + rollup: 3.29.4 - '@radix-ng/primitives@0.10.0(@angular/cdk@18.2.1(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))': + '@rollup/pluginutils@5.1.0(rollup@3.29.4)': dependencies: - '@angular/cdk': 18.2.1(@angular/common@18.2.1(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.1(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/core': 18.2.1(rxjs@7.8.1)(zone.js@0.14.10) - tslib: 2.7.0 + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 3.29.4 - '@rollup/pluginutils@5.1.0(rollup@4.20.0)': + '@rollup/pluginutils@5.1.0(rollup@4.21.2)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.20.0 + rollup: 4.21.2 '@rollup/rollup-android-arm-eabi@4.20.0': optional: true + '@rollup/rollup-android-arm-eabi@4.21.2': + optional: true + '@rollup/rollup-android-arm64@4.20.0': optional: true + '@rollup/rollup-android-arm64@4.21.2': + optional: true + '@rollup/rollup-darwin-arm64@4.20.0': optional: true + '@rollup/rollup-darwin-arm64@4.21.2': + optional: true + '@rollup/rollup-darwin-x64@4.20.0': optional: true + '@rollup/rollup-darwin-x64@4.21.2': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.20.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.21.2': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.20.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.21.2': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.20.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.21.2': + optional: true + '@rollup/rollup-linux-arm64-musl@4.20.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.21.2': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.20.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.21.2': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.20.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.21.2': + optional: true + '@rollup/rollup-linux-x64-gnu@4.20.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.21.2': + optional: true + '@rollup/rollup-linux-x64-musl@4.20.0': optional: true + '@rollup/rollup-linux-x64-musl@4.21.2': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.20.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.21.2': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.20.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.21.2': + optional: true + '@rollup/rollup-win32-x64-msvc@4.20.0': optional: true - '@shikijs/core@1.13.0': + '@rollup/rollup-win32-x64-msvc@4.21.2': + optional: true + + '@shikijs/core@1.18.0': dependencies: + '@shikijs/engine-javascript': 1.18.0 + '@shikijs/engine-oniguruma': 1.18.0 + '@shikijs/types': 1.18.0 + '@shikijs/vscode-textmate': 9.2.2 '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 - '@shikijs/core@1.14.1': + '@shikijs/engine-javascript@1.18.0': dependencies: + '@shikijs/types': 1.18.0 + '@shikijs/vscode-textmate': 9.2.2 + oniguruma-to-js: 0.4.3 + + '@shikijs/engine-oniguruma@1.18.0': + dependencies: + '@shikijs/types': 1.18.0 + '@shikijs/vscode-textmate': 9.2.2 + + '@shikijs/types@1.18.0': + dependencies: + '@shikijs/vscode-textmate': 9.2.2 '@types/hast': 3.0.4 - '@sinclair/typebox@0.27.8': {} + '@shikijs/vscode-textmate@9.2.2': {} '@sindresorhus/merge-streams@2.3.0': {} + '@stylistic/eslint-plugin@2.7.2(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + dependencies: + '@types/eslint': 9.6.1 + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + eslint: 9.9.1(jiti@1.21.6) + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 + estraverse: 5.3.0 + picomatch: 4.0.2 + transitivePeerDependencies: + - supports-color + - typescript + + '@trysound/sax@0.2.0': {} + '@ts-morph/common@0.19.0': dependencies: fast-glob: 3.3.2 @@ -9364,60 +9800,48 @@ snapshots: mkdirp: 3.0.1 path-browserify: 1.0.1 - '@tsconfig/node10@1.0.11': {} - - '@tsconfig/node12@1.0.11': {} - - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - - '@tybys/wasm-util@0.9.0': - dependencies: - tslib: 2.7.0 - '@types/acorn@4.0.6': dependencies: '@types/estree': 1.0.5 '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/parser': 7.24.5 + '@babel/types': 7.25.6 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/parser': 7.24.5 + '@babel/types': 7.25.6 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.25.6 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.5 - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/connect@3.4.38': dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/cookie@0.6.0': {} @@ -9425,14 +9849,14 @@ snapshots: dependencies: '@types/ms': 0.7.34 - '@types/diff@5.2.1': {} + '@types/diff@5.2.2': {} - '@types/eslint-scope@3.7.7': + '@types/eslint@8.56.10': dependencies: - '@types/eslint': 9.6.0 '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 - '@types/eslint@9.6.0': + '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -9445,8 +9869,8 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.4.1 - '@types/qs': 6.9.15 + '@types/node': 22.5.4 + '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -9454,39 +9878,43 @@ snapshots: dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.19.5 - '@types/qs': 6.9.15 + '@types/qs': 6.9.16 '@types/serve-static': 1.15.7 '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 22.0.0 + '@types/node': 22.6.1 '@types/hast@3.0.4': dependencies: - '@types/unist': 3.0.2 + '@types/unist': 2.0.10 '@types/http-errors@2.0.4': {} - '@types/http-proxy@1.17.14': + '@types/http-proxy@1.17.15': dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/json-schema@7.0.15': {} '@types/jsonfile@6.1.4': dependencies: - '@types/node': 22.0.0 + '@types/node': 22.6.1 '@types/lodash.template@4.5.3': dependencies: - '@types/lodash': 4.17.7 + '@types/lodash': 4.17.9 - '@types/lodash@4.17.7': {} + '@types/lodash@4.17.9': {} + + '@types/mdast@3.0.15': + dependencies: + '@types/unist': 2.0.10 '@types/mdast@4.0.4': dependencies: - '@types/unist': 3.0.2 + '@types/unist': 2.0.10 '@types/mdx@2.0.13': {} @@ -9496,55 +9924,53 @@ snapshots: '@types/mute-stream@0.0.4': dependencies: - '@types/node': 22.4.1 + '@types/node': 22.6.1 '@types/nlcst@2.0.3': dependencies: - '@types/unist': 3.0.2 + '@types/unist': 2.0.10 '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.4.1 - - '@types/node@12.20.55': {} + '@types/node': 22.5.4 '@types/node@17.0.45': {} - '@types/node@18.19.42': + '@types/node@18.19.50': dependencies: undici-types: 5.26.5 - '@types/node@22.0.0': + '@types/node@22.5.4': dependencies: - undici-types: 6.11.1 + undici-types: 6.19.8 - '@types/node@22.4.1': + '@types/node@22.6.1': dependencies: undici-types: 6.19.8 - '@types/parse-json@4.0.2': {} + '@types/normalize-package-data@2.4.4': {} '@types/prompts@2.4.9': dependencies: - '@types/node': 22.0.0 + '@types/node': 22.6.1 kleur: 3.0.3 - '@types/qs@6.9.15': {} + '@types/qs@6.9.16': {} '@types/range-parser@1.2.7': {} + '@types/resolve@1.20.2': {} + '@types/retry@0.12.2': {} '@types/sax@1.2.7': dependencies: - '@types/node': 22.0.0 - - '@types/semver@7.5.8': {} + '@types/node': 22.5.4 '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/serve-index@1.9.4': dependencies: @@ -9553,235 +9979,243 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/send': 0.17.4 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/unist@2.0.10': {} - '@types/unist@3.0.2': {} + '@types/unist@3.0.3': {} '@types/wrap-ansi@3.0.0': {} - '@types/ws@8.5.11': + '@types/ws@8.5.12': dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 - '@ungap/structured-clone@1.2.0': {} - - '@verdaccio/auth@7.0.0-next-7.19': + '@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: - '@verdaccio/config': 7.0.0-next-7.19 - '@verdaccio/core': 7.0.0-next-7.19 - '@verdaccio/loaders': 7.0.0-next-7.19 - '@verdaccio/logger': 7.0.0-next-7.19 - '@verdaccio/signature': 7.0.0-next-7.5 - '@verdaccio/utils': 7.0.0-next-7.19 - debug: 4.3.4 - lodash: 4.17.21 - verdaccio-htpasswd: 12.0.0-next-7.19 + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/type-utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.4.0 + eslint: 9.9.1(jiti@1.21.6) + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@verdaccio/commons-api@10.2.0': - dependencies: - http-errors: 2.0.0 - http-status-codes: 2.2.0 - - '@verdaccio/config@7.0.0-next-7.19': + '@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@verdaccio/core': 7.0.0-next-7.19 - '@verdaccio/utils': 7.0.0-next-7.19 - debug: 4.3.4 - js-yaml: 4.1.0 - lodash: 4.17.21 - minimatch: 7.4.6 - yup: 0.32.11 + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.4.0 + debug: 4.3.6 + eslint: 9.9.1(jiti@1.21.6) + optionalDependencies: + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@verdaccio/core@7.0.0-next-7.19': - dependencies: - ajv: 8.12.0 - core-js: 3.35.0 - http-errors: 2.0.0 - http-status-codes: 2.3.0 - process-warning: 1.0.0 - semver: 7.6.2 - - '@verdaccio/file-locking@10.3.1': - dependencies: - lockfile: 1.0.4 - - '@verdaccio/file-locking@12.0.0-next.1': + '@typescript-eslint/scope-manager@8.4.0': dependencies: - lockfile: 1.0.4 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/visitor-keys': 8.4.0 - '@verdaccio/loaders@7.0.0-next-7.19': + '@typescript-eslint/type-utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@verdaccio/logger': 7.0.0-next-7.19 - debug: 4.3.4 - lodash: 4.17.21 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + debug: 4.3.7 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 transitivePeerDependencies: + - eslint - supports-color - '@verdaccio/local-storage-legacy@11.0.2': - dependencies: - '@verdaccio/commons-api': 10.2.0 - '@verdaccio/file-locking': 10.3.1 - '@verdaccio/streams': 10.2.1 - async: 3.2.4 - debug: 4.3.4 - lodash: 4.17.21 - lowdb: 1.0.0 - mkdirp: 1.0.4 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@7.9.0': {} - '@verdaccio/logger-7@7.0.0-next-7.19': + '@typescript-eslint/types@8.4.0': {} + + '@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.4)': dependencies: - '@verdaccio/logger-commons': 7.0.0-next-7.19 - pino: 7.11.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/visitor-keys': 8.4.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@verdaccio/logger-commons@7.0.0-next-7.19': + '@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@verdaccio/core': 7.0.0-next-7.19 - '@verdaccio/logger-prettify': 7.0.0-next-7.3 - colorette: 2.0.20 - debug: 4.3.4 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + eslint: 9.9.1(jiti@1.21.6) transitivePeerDependencies: - supports-color + - typescript - '@verdaccio/logger-prettify@7.0.0-next-7.3': + '@typescript-eslint/visitor-keys@8.4.0': dependencies: - colorette: 2.0.20 - dayjs: 1.11.10 - lodash: 4.17.21 - pino-abstract-transport: 1.1.0 - sonic-boom: 3.8.0 + '@typescript-eslint/types': 8.4.0 + eslint-visitor-keys: 3.4.3 - '@verdaccio/logger@7.0.0-next-7.19': - dependencies: - '@verdaccio/logger-commons': 7.0.0-next-7.19 - pino: 8.17.2 - transitivePeerDependencies: - - supports-color + '@ungap/structured-clone@1.2.0': {} - '@verdaccio/middleware@7.0.0-next-7.19': + '@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))': dependencies: - '@verdaccio/config': 7.0.0-next-7.19 - '@verdaccio/core': 7.0.0-next-7.19 - '@verdaccio/url': 12.0.0-next-7.19 - '@verdaccio/utils': 7.0.0-next-7.19 - debug: 4.3.4 - express: 4.19.2 - express-rate-limit: 5.5.1 - lodash: 4.17.21 - lru-cache: 7.18.3 - mime: 2.6.0 - transitivePeerDependencies: - - supports-color - - '@verdaccio/search-indexer@7.0.0-next-7.2': {} + vite: 5.4.6(@types/node@22.6.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) - '@verdaccio/signature@7.0.0-next-7.5': + '@vitest/eslint-plugin@1.1.0(@typescript-eslint/utils@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)(vitest@2.0.5(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6))': dependencies: - debug: 4.3.4 - jsonwebtoken: 9.0.2 - transitivePeerDependencies: - - supports-color + eslint: 9.9.1(jiti@1.21.6) + optionalDependencies: + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + typescript: 5.5.4 + vitest: 2.0.5(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) - '@verdaccio/streams@10.2.1': {} + '@vitest/expect@2.0.5': + dependencies: + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + tinyrainbow: 1.2.0 - '@verdaccio/tarball@12.0.0-next-7.19': + '@vitest/pretty-format@2.0.5': dependencies: - '@verdaccio/core': 7.0.0-next-7.19 - '@verdaccio/url': 12.0.0-next-7.19 - '@verdaccio/utils': 7.0.0-next-7.19 - debug: 4.3.4 - gunzip-maybe: 1.4.2 - lodash: 4.17.21 - tar-stream: 3.1.7 - transitivePeerDependencies: - - supports-color + tinyrainbow: 1.2.0 - '@verdaccio/ui-theme@7.0.0-next-7.19': {} + '@vitest/runner@2.0.5': + dependencies: + '@vitest/utils': 2.0.5 + pathe: 1.1.2 - '@verdaccio/url@12.0.0-next-7.19': + '@vitest/snapshot@2.0.5': dependencies: - '@verdaccio/core': 7.0.0-next-7.19 - debug: 4.3.4 - lodash: 4.17.21 - validator: 13.11.0 - transitivePeerDependencies: - - supports-color + '@vitest/pretty-format': 2.0.5 + magic-string: 0.30.10 + pathe: 1.1.2 - '@verdaccio/utils@7.0.0-next-7.19': + '@vitest/spy@2.0.5': dependencies: - '@verdaccio/core': 7.0.0-next-7.19 - lodash: 4.17.21 - minimatch: 7.4.6 - semver: 7.6.2 + tinyspy: 3.0.0 - '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.0(@types/node@22.4.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6))': + '@vitest/utils@2.0.5': dependencies: - vite: 5.4.0(@types/node@22.4.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + '@vitest/pretty-format': 2.0.5 + estree-walker: 3.0.3 + loupe: 3.1.1 + tinyrainbow: 1.2.0 - '@volar/kit@2.4.0(typescript@5.5.4)': + '@volar/kit@2.4.5(typescript@5.5.4)': dependencies: - '@volar/language-service': 2.4.0 - '@volar/typescript': 2.4.0 + '@volar/language-service': 2.4.5 + '@volar/typescript': 2.4.5 typesafe-path: 0.2.2 typescript: 5.5.4 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/language-core@2.4.0': + '@volar/language-core@2.4.5': dependencies: - '@volar/source-map': 2.4.0 + '@volar/source-map': 2.4.5 - '@volar/language-server@2.4.0': + '@volar/language-server@2.4.5': dependencies: - '@volar/language-core': 2.4.0 - '@volar/language-service': 2.4.0 - '@volar/typescript': 2.4.0 + '@volar/language-core': 2.4.5 + '@volar/language-service': 2.4.5 + '@volar/typescript': 2.4.5 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 vscode-languageserver-protocol: 3.17.5 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/language-service@2.4.0': + '@volar/language-service@2.4.5': dependencies: - '@volar/language-core': 2.4.0 + '@volar/language-core': 2.4.5 vscode-languageserver-protocol: 3.17.5 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/source-map@2.4.0': {} + '@volar/source-map@2.4.5': {} - '@volar/typescript@2.4.0': + '@volar/typescript@2.4.5': dependencies: - '@volar/language-core': 2.4.0 + '@volar/language-core': 2.4.5 path-browserify: 1.0.1 vscode-uri: 3.0.8 '@vscode/emmet-helper@2.9.3': dependencies: - emmet: 2.4.7 + emmet: 2.4.11 jsonc-parser: 2.3.1 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-uri: 2.1.2 '@vscode/l10n@0.0.18': {} + '@vue/compiler-core@3.3.10': + dependencies: + '@babel/parser': 7.25.6 + '@vue/shared': 3.3.10 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.3.10': + dependencies: + '@vue/compiler-core': 3.3.10 + '@vue/shared': 3.3.10 + + '@vue/compiler-sfc@3.3.10': + dependencies: + '@babel/parser': 7.25.6 + '@vue/compiler-core': 3.3.10 + '@vue/compiler-dom': 3.3.10 + '@vue/compiler-ssr': 3.3.10 + '@vue/reactivity-transform': 3.3.10 + '@vue/shared': 3.3.10 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.4.47 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.3.10': + dependencies: + '@vue/compiler-dom': 3.3.10 + '@vue/shared': 3.3.10 + + '@vue/reactivity-transform@3.3.10': + dependencies: + '@babel/parser': 7.25.6 + '@vue/compiler-core': 3.3.10 + '@vue/shared': 3.3.10 + estree-walker: 2.0.2 + magic-string: 0.30.11 + + '@vue/shared@3.3.10': {} + '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 @@ -9862,26 +10296,6 @@ snapshots: '@xtuc/long@4.2.2': {} - '@yarnpkg/lockfile@1.1.0': {} - - '@yarnpkg/parsers@3.0.0-rc.46': - dependencies: - js-yaml: 3.14.1 - tslib: 2.7.0 - - '@zkochan/js-yaml@0.0.7': - dependencies: - argparse: 2.0.1 - - JSONStream@1.3.5: - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - accepts@1.3.8: dependencies: mime-types: 2.1.35 @@ -9895,28 +10309,16 @@ snapshots: dependencies: acorn: 8.12.1 - acorn-walk@8.3.3: - dependencies: - acorn: 8.12.1 - acorn@8.12.1: {} - address@1.2.2: {} - adjust-sourcemap-loader@4.0.0: dependencies: loader-utils: 2.0.4 regex-parser: 2.3.0 - agent-base@6.0.2: - dependencies: - debug: 4.3.6 - transitivePeerDependencies: - - supports-color - agent-base@7.1.1: dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -9944,13 +10346,6 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -9986,8 +10381,6 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} any-promise@1.3.0: {} @@ -9997,9 +10390,7 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - apache-md5@1.1.8: {} - - arg@4.1.3: {} + are-docs-informative@0.0.2: {} arg@5.0.2: {} @@ -10009,53 +10400,42 @@ snapshots: argparse@2.0.1: {} - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 + aria-query@5.3.2: {} array-flatten@1.1.1: {} array-iterate@2.0.1: {} - array-union@2.1.0: {} - - asn1@0.2.6: - dependencies: - safer-buffer: 2.1.2 + assertion-error@2.0.1: {} - assert-plus@1.0.0: {} + astring@1.9.0: {} - astring@1.8.6: {} - - astro-auto-import@0.4.2(astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.4)): + 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.42 + '@types/node': 18.19.50 acorn: 8.12.1 - astro: 4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.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.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(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)): dependencies: - astro: 4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.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) rehype-expressive-code: 0.35.6 - astro@4.14.5(@types/node@22.4.1)(less@4.2.0)(rollup@4.20.0)(sass@1.77.6)(terser@5.31.6)(typescript@5.5.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/compiler': 2.10.3 '@astrojs/internal-helpers': 0.4.1 '@astrojs/markdown-remark': 5.2.0 '@astrojs/telemetry': 3.1.0 '@babel/core': 7.25.2 - '@babel/generator': 7.25.0 - '@babel/parser': 7.25.3 '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - '@oslojs/encoding': 0.4.1 - '@rollup/pluginutils': 5.1.0(rollup@4.20.0) + '@babel/types': 7.25.6 + '@oslojs/encoding': 1.0.0 + '@rollup/pluginutils': 5.1.0(rollup@4.21.2) '@types/babel__core': 7.20.5 '@types/cookie': 0.6.0 acorn: 8.12.1 - aria-query: 5.3.0 + aria-query: 5.3.2 axobject-query: 4.1.0 boxen: 7.1.1 ci-info: 4.0.0 @@ -10063,17 +10443,17 @@ snapshots: common-ancestor-path: 1.0.1 cookie: 0.6.0 cssesc: 3.0.0 - debug: 4.3.6 + debug: 4.3.7 deterministic-object-hash: 2.0.2 devalue: 5.0.0 diff: 5.2.0 dlv: 1.1.3 - dset: 3.1.3 + dset: 3.1.4 es-module-lexer: 1.5.4 esbuild: 0.21.5 estree-walker: 3.0.3 - execa: 8.0.1 fast-glob: 3.3.2 + fastq: 1.17.1 flattie: 1.1.1 github-slugger: 2.0.0 gray-matter: 4.0.3 @@ -10082,33 +10462,34 @@ snapshots: js-yaml: 4.1.0 kleur: 4.1.5 magic-string: 0.30.11 - micromatch: 4.0.7 + magicast: 0.3.5 + micromatch: 4.0.8 mrmime: 2.0.0 neotraverse: 0.6.18 - ora: 8.0.1 + ora: 8.1.0 p-limit: 6.1.0 p-queue: 8.0.1 - path-to-regexp: 6.2.2 preferred-pm: 4.0.0 prompts: 2.4.2 rehype: 13.0.1 semver: 7.6.3 - shiki: 1.14.1 + shiki: 1.18.0 string-width: 7.2.0 strip-ansi: 7.1.0 - tsconfck: 3.1.1(typescript@5.5.4) + tinyexec: 0.3.0 + tsconfck: 3.1.3(typescript@5.5.4) unist-util-visit: 5.0.0 - vfile: 6.0.2 - vite: 5.4.1(@types/node@22.4.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) - vitefu: 0.2.5(vite@5.4.1(@types/node@22.4.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)) + 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)) which-pm: 3.0.0 xxhash-wasm: 1.0.2 yargs-parser: 21.1.1 zod: 3.23.8 - zod-to-json-schema: 3.23.2(zod@3.23.8) + zod-to-json-schema: 3.23.3(zod@3.23.8) zod-to-ts: 1.2.0(typescript@5.5.4)(zod@3.23.8) optionalDependencies: - sharp: 0.33.4 + sharp: 0.33.5 transitivePeerDependencies: - '@types/node' - less @@ -10122,86 +10503,61 @@ snapshots: - terser - typescript - async@3.2.4: {} - - async@3.2.5: {} - - asynckit@0.4.0: {} - - atomic-sleep@1.0.0: {} - - autoprefixer@10.4.19(postcss@8.4.40): + autoprefixer@10.4.19(postcss@8.4.44): dependencies: - browserslist: 4.23.2 - caniuse-lite: 1.0.30001643 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001620 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.1 - postcss: 8.4.40 + picocolors: 1.1.0 + postcss: 8.4.44 postcss-value-parser: 4.2.0 autoprefixer@10.4.20(postcss@8.4.41): dependencies: browserslist: 4.23.3 - caniuse-lite: 1.0.30001651 + caniuse-lite: 1.0.30001663 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 postcss: 8.4.41 postcss-value-parser: 4.2.0 - aws-sign2@0.7.0: {} - - aws4@1.13.0: {} - - axios@1.7.2: + autoprefixer@10.4.20(postcss@8.4.47): dependencies: - follow-redirects: 1.15.6(debug@4.3.6) - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug + browserslist: 4.23.3 + caniuse-lite: 1.0.30001663 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.0 + postcss: 8.4.47 + postcss-value-parser: 4.2.0 axobject-query@4.1.0: {} b4a@1.6.6: {} - babel-loader@9.1.3(@babel/core@7.25.2)(webpack@5.93.0(esbuild@0.23.0)): + babel-loader@9.1.3(@babel/core@7.25.2)(webpack@5.94.0(esbuild@0.23.0)): dependencies: '@babel/core': 7.25.2 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.93.0(esbuild@0.23.0) - - babel-plugin-const-enum@1.2.0(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2) - '@babel/traverse': 7.25.3 - transitivePeerDependencies: - - supports-color - - babel-plugin-macros@2.8.0: - dependencies: - '@babel/runtime': 7.25.0 - cosmiconfig: 6.0.0 - resolve: 1.22.8 + webpack: 5.94.0(esbuild@0.23.0) babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): dependencies: - '@babel/compat-data': 7.25.2 + '@babel/compat-data': 7.25.4 '@babel/core': 7.25.2 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.25.2): + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2): dependencies: '@babel/core': 7.25.2 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) - core-js-compat: 3.37.1 + core-js-compat: 3.38.1 transitivePeerDependencies: - supports-color @@ -10212,13 +10568,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.25.2)(@babel/traverse@7.25.3): - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - optionalDependencies: - '@babel/traverse': 7.25.3 - bail@2.0.2: {} balanced-match@1.0.2: {} @@ -10226,24 +10575,25 @@ snapshots: bare-events@2.4.2: optional: true - bare-fs@2.3.1: + bare-fs@2.3.5: dependencies: bare-events: 2.4.2 bare-path: 2.1.3 - bare-stream: 2.1.3 + bare-stream: 2.3.0 optional: true - bare-os@2.4.0: + bare-os@2.4.4: optional: true bare-path@2.1.3: dependencies: - bare-os: 2.4.0 + bare-os: 2.4.4 optional: true - bare-stream@2.1.3: + bare-stream@2.3.0: dependencies: - streamx: 2.18.0 + b4a: 1.6.6 + streamx: 2.20.1 optional: true base-64@1.0.0: {} @@ -10260,16 +10610,6 @@ snapshots: is-alphanumerical: 2.0.1 is-decimal: 2.0.1 - bcrypt-pbkdf@1.0.2: - dependencies: - tweetnacl: 0.14.5 - - bcryptjs@2.4.3: {} - - better-path-resolve@1.0.0: - dependencies: - is-windows: 1.0.2 - big.js@5.2.2: {} binary-extensions@2.3.0: {} @@ -10286,7 +10626,7 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - body-parser@1.20.2: + body-parser@1.20.3: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -10296,7 +10636,7 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 + qs: 6.13.0 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 @@ -10334,26 +10674,20 @@ snapshots: dependencies: fill-range: 7.1.1 - browserify-zlib@0.1.4: - dependencies: - pako: 0.2.9 - - browserslist@4.23.2: + browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001643 - electron-to-chromium: 1.5.2 - node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.2) + 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.30001651 - electron-to-chromium: 1.5.11 + caniuse-lite: 1.0.30001663 + electron-to-chromium: 1.5.27 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) - buffer-equal-constant-time@1.0.1: {} - buffer-from@1.1.2: {} buffer@5.7.1: @@ -10366,19 +10700,47 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bundle-name@4.1.0: + builtin-modules@3.3.0: {} + + bumpp@9.5.2(magicast@0.3.5): dependencies: - run-applescript: 7.0.0 + '@jsdevtools/ez-spawn': 3.0.4 + c12: 1.11.1(magicast@0.3.5) + cac: 6.7.14 + escalade: 3.1.2 + fast-glob: 3.3.2 + js-yaml: 4.1.0 + jsonc-parser: 3.3.1 + prompts: 2.4.2 + semver: 7.6.3 + transitivePeerDependencies: + - magicast - bundle-require@4.2.1(esbuild@0.17.19): + bundle-name@4.1.0: dependencies: - esbuild: 0.17.19 - load-tsconfig: 0.2.5 + run-applescript: 7.0.0 bytes@3.0.0: {} bytes@3.1.2: {} + c12@1.11.1(magicast@0.3.5): + dependencies: + chokidar: 3.6.0 + confbox: 0.1.7 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.6 + mlly: 1.7.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.1 + rc9: 2.1.2 + optionalDependencies: + magicast: 0.3.5 + cac@6.7.14: {} call-bind@1.0.7: @@ -10389,20 +10751,35 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 + call-me-maybe@1.0.2: {} + callsites@3.1.0: {} camelcase-css@2.0.1: {} camelcase@7.0.1: {} - caniuse-lite@1.0.30001643: {} + caniuse-api@3.0.0: + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001620 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001651: {} + caniuse-lite@1.0.30001620: {} - caseless@0.12.0: {} + caniuse-lite@1.0.30001663: {} ccount@2.0.1: {} + chai@5.1.1: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -10420,13 +10797,19 @@ snapshots: character-entities-html4@2.1.0: {} + character-entities-legacy@1.1.4: {} + character-entities-legacy@3.0.0: {} + character-entities@1.2.4: {} + character-entities@2.0.2: {} + character-reference-invalid@1.1.4: {} + character-reference-invalid@2.0.1: {} - chardet@0.7.0: {} + check-error@2.1.1: {} chokidar@3.6.0: dependencies: @@ -10442,16 +10825,24 @@ snapshots: chownr@1.1.4: {} - chrome-trace-event@1.0.4: {} + chownr@2.0.0: {} - ci-info@3.9.0: {} + chrome-trace-event@1.0.4: {} ci-info@4.0.0: {} + citty@0.1.6: + dependencies: + consola: 3.2.3 + class-variance-authority@0.7.0: dependencies: clsx: 2.0.0 + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + cli-boxes@3.0.0: {} cli-cursor@3.1.0: @@ -10466,21 +10857,15 @@ snapshots: dependencies: restore-cursor: 5.1.0 - cli-spinners@2.6.1: {} - cli-spinners@2.9.2: {} cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 - string-width: 7.2.0 + string-width: 7.1.0 cli-width@4.1.0: {} - clipanion@4.0.0-rc.3(typanion@3.14.0): - dependencies: - typanion: 3.14.0 - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -10525,29 +10910,30 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 - colorette@2.0.20: {} - - columnify@1.6.0: - dependencies: - strip-ansi: 6.0.1 - wcwidth: 1.0.1 + colord@2.9.3: {} - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 + colorette@2.0.20: {} comma-separated-tokens@2.0.3: {} commander@10.0.1: {} + commander@12.1.0: {} + commander@2.20.3: {} commander@4.1.1: {} + commander@7.2.0: {} + + comment-parser@1.4.1: {} + common-ancestor-path@1.0.1: {} common-path-prefix@3.0.0: {} + commondir@1.0.1: {} + compressible@2.0.18: dependencies: mime-db: 1.53.0 @@ -10566,8 +10952,12 @@ snapshots: concat-map@0.0.1: {} + confbox@0.1.7: {} + connect-history-api-fallback@2.0.0: {} + consola@3.2.3: {} + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 @@ -10586,47 +10976,34 @@ snapshots: dependencies: is-what: 3.14.1 - copy-webpack-plugin@12.0.2(webpack@5.93.0(esbuild@0.23.0)): + copy-webpack-plugin@12.0.2(webpack@5.94.0(esbuild@0.23.0)): dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 - globby: 14.0.2 + globby: 14.0.1 normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) core-js-compat@3.37.1: dependencies: - browserslist: 4.23.3 - - core-js@3.35.0: {} - - core-util-is@1.0.2: {} - - core-util-is@1.0.3: {} + browserslist: 4.23.0 - cors@2.8.5: + core-js-compat@3.38.1: dependencies: - object-assign: 4.1.1 - vary: 1.1.2 + browserslist: 4.23.3 - cosmiconfig@6.0.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 + core-util-is@1.0.3: {} - cosmiconfig@8.3.6(typescript@4.9.5): + cosmiconfig@8.3.6(typescript@5.5.4): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 4.9.5 + typescript: 5.5.4 cosmiconfig@9.0.0(typescript@5.5.4): dependencies: @@ -10637,8 +11014,6 @@ snapshots: optionalDependencies: typescript: 5.5.4 - create-require@1.1.1: {} - critters@0.0.24: dependencies: chalk: 4.1.2 @@ -10646,37 +11021,31 @@ snapshots: dom-serializer: 2.0.0 domhandler: 5.0.3 htmlparser2: 8.0.2 - postcss: 8.4.41 + postcss: 8.4.44 postcss-media-query-parser: 0.2.3 - cross-env@7.0.3: - dependencies: - cross-spawn: 7.0.3 - - cross-spawn@5.1.0: - dependencies: - lru-cache: 4.1.5 - shebang-command: 1.2.0 - which: 1.3.1 - cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - css-loader@7.1.2(webpack@5.93.0(esbuild@0.23.0)): + css-declaration-sorter@7.2.0(postcss@8.4.44): dependencies: - icss-utils: 5.1.0(postcss@8.4.41) - postcss: 8.4.41 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.41) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.41) - postcss-modules-scope: 3.2.0(postcss@8.4.41) - postcss-modules-values: 4.0.0(postcss@8.4.41) + postcss: 8.4.44 + + css-loader@7.1.2(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + icss-utils: 5.1.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.44) + postcss-modules-local-by-default: 4.0.5(postcss@8.4.44) + postcss-modules-scope: 3.2.0(postcss@8.4.44) + postcss-modules-values: 4.0.0(postcss@8.4.44) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) css-select@5.1.0: dependencies: @@ -10688,32 +11057,86 @@ snapshots: css-selector-parser@3.0.5: {} + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.0 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + css-what@6.1.0: {} cssesc@3.0.0: {} - dashdash@1.14.1: + cssnano-preset-default@7.0.1(postcss@8.4.44): + dependencies: + browserslist: 4.23.0 + css-declaration-sorter: 7.2.0(postcss@8.4.44) + cssnano-utils: 5.0.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-calc: 10.0.0(postcss@8.4.44) + postcss-colormin: 7.0.0(postcss@8.4.44) + postcss-convert-values: 7.0.0(postcss@8.4.44) + postcss-discard-comments: 7.0.0(postcss@8.4.44) + postcss-discard-duplicates: 7.0.0(postcss@8.4.44) + postcss-discard-empty: 7.0.0(postcss@8.4.44) + postcss-discard-overridden: 7.0.0(postcss@8.4.44) + postcss-merge-longhand: 7.0.0(postcss@8.4.44) + postcss-merge-rules: 7.0.0(postcss@8.4.44) + postcss-minify-font-values: 7.0.0(postcss@8.4.44) + postcss-minify-gradients: 7.0.0(postcss@8.4.44) + postcss-minify-params: 7.0.0(postcss@8.4.44) + postcss-minify-selectors: 7.0.0(postcss@8.4.44) + postcss-normalize-charset: 7.0.0(postcss@8.4.44) + postcss-normalize-display-values: 7.0.0(postcss@8.4.44) + postcss-normalize-positions: 7.0.0(postcss@8.4.44) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.44) + postcss-normalize-string: 7.0.0(postcss@8.4.44) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.44) + postcss-normalize-unicode: 7.0.0(postcss@8.4.44) + postcss-normalize-url: 7.0.0(postcss@8.4.44) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.44) + postcss-ordered-values: 7.0.0(postcss@8.4.44) + postcss-reduce-initial: 7.0.0(postcss@8.4.44) + postcss-reduce-transforms: 7.0.0(postcss@8.4.44) + postcss-svgo: 7.0.0(postcss@8.4.44) + postcss-unique-selectors: 7.0.0(postcss@8.4.44) + + cssnano-utils@5.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + + cssnano@7.0.1(postcss@8.4.44): + dependencies: + cssnano-preset-default: 7.0.1(postcss@8.4.44) + lilconfig: 3.1.2 + postcss: 8.4.44 + + csso@5.0.5: dependencies: - assert-plus: 1.0.0 + css-tree: 2.2.1 data-uri-to-buffer@4.0.1: {} - dataloader@1.4.0: {} - - dayjs@1.11.10: {} - debug@2.6.9: dependencies: ms: 2.0.0 - debug@4.3.4: + debug@3.2.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 debug@4.3.6: dependencies: ms: 2.1.2 + debug@4.3.7: + dependencies: + ms: 2.1.3 + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 @@ -10722,8 +11145,14 @@ snapshots: 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: {} + default-browser-id@5.0.0: {} default-browser@5.2.1: @@ -10745,11 +11174,9 @@ snapshots: es-errors: 1.3.0 gopd: 1.0.1 - define-lazy-prop@2.0.0: {} - define-lazy-prop@3.0.0: {} - delayed-stream@1.0.0: {} + defu@6.1.4: {} depd@1.1.2: {} @@ -10757,21 +11184,14 @@ snapshots: dequal@2.0.3: {} - destroy@1.2.0: {} + destr@2.0.3: {} - detect-indent@6.1.0: {} + destroy@1.2.0: {} detect-libc@2.0.3: {} detect-node@2.1.0: {} - detect-port@1.6.1: - dependencies: - address: 1.2.2 - debug: 4.3.6 - transitivePeerDependencies: - - supports-color - deterministic-object-hash@2.0.2: dependencies: base-64: 1.0.0 @@ -10784,10 +11204,6 @@ snapshots: didyoumean@1.2.2: {} - diff-sequences@29.6.3: {} - - diff@4.0.2: {} - diff@5.2.0: {} dir-glob@3.0.1: @@ -10802,6 +11218,10 @@ snapshots: dependencies: '@leichtgewicht/ip-codec': 2.0.5 + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -10820,54 +11240,19 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 - dotenv-expand@11.0.6: - dependencies: - dotenv: 16.4.5 - dotenv@16.4.5: {} - dotenv@8.6.0: {} - - dset@3.1.3: {} - - duplexer@0.1.2: {} - - duplexify@3.7.1: - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 2.3.8 - stream-shift: 1.0.3 - - duplexify@4.1.3: - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 3.6.2 - stream-shift: 1.0.3 + dset@3.1.4: {} eastasianwidth@0.2.0: {} - ecc-jsbn@0.1.2: - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - - ecdsa-sig-formatter@1.0.11: - dependencies: - safe-buffer: 5.2.1 - ee-first@1.1.1: {} - ejs@3.1.10: - dependencies: - jake: 10.9.2 - - electron-to-chromium@1.5.11: {} + electron-to-chromium@1.4.774: {} - electron-to-chromium@1.5.2: {} + electron-to-chromium@1.5.27: {} - emmet@2.4.7: + emmet@2.4.11: dependencies: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 @@ -10882,30 +11267,26 @@ snapshots: encodeurl@1.0.2: {} + encodeurl@2.0.0: {} + end-of-stream@1.4.4: dependencies: once: 1.4.0 - enhanced-resolve@5.17.1: + enhanced-resolve@5.17.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - enquirer@2.3.6: - dependencies: - ansi-colors: 4.1.3 - - enquirer@2.4.1: + enhanced-resolve@5.17.1: dependencies: - ansi-colors: 4.1.3 - strip-ansi: 6.0.1 + graceful-fs: 4.2.11 + tapable: 2.2.1 entities@4.5.0: {} env-paths@2.2.1: {} - envinfo@7.13.0: {} - environment@1.1.0: {} errno@0.1.8: @@ -10927,30 +11308,57 @@ snapshots: esbuild-wasm@0.23.0: {} - esbuild@0.17.19: + esbuild@0.19.12: optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + esbuild@0.20.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 esbuild@0.21.5: optionalDependencies: @@ -11005,21 +11413,299 @@ snapshots: '@esbuild/win32-ia32': 0.23.0 '@esbuild/win32-x64': 0.23.0 - escalade@3.1.2: {} + escalade@3.1.2: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-compat-utils@0.5.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + eslint: 9.9.1(jiti@1.21.6) + semver: 7.6.3 + + eslint-config-flat-gitignore@0.3.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@eslint/compat': 1.1.1 + eslint: 9.9.1(jiti@1.21.6) + find-up-simple: 1.0.0 + + eslint-flat-config-utils@0.3.1: + dependencies: + '@types/eslint': 9.6.1 + pathe: 1.1.2 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + eslint-merge-processors@0.1.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + eslint: 9.9.1(jiti@1.21.6) + + eslint-plugin-antfu@2.5.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@antfu/utils': 0.7.10 + eslint: 9.9.1(jiti@1.21.6) + + eslint-plugin-command@0.2.3(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@es-joy/jsdoccomment': 0.43.1 + eslint: 9.9.1(jiti@1.21.6) + + eslint-plugin-es-x@7.6.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/regexpp': 4.11.0 + eslint: 9.9.1(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) + + eslint-plugin-import-x@4.2.1(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4): + dependencies: + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + debug: 4.3.6 + doctrine: 3.0.0 + eslint: 9.9.1(jiti@1.21.6) + eslint-import-resolver-node: 0.3.9 + get-tsconfig: 4.7.5 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + stable-hash: 0.0.4 + tslib: 2.7.0 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-jsdoc@50.2.2(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@es-joy/jsdoccomment': 0.48.0 + are-docs-informative: 0.0.2 + comment-parser: 1.4.1 + debug: 4.3.6 + escape-string-regexp: 4.0.0 + eslint: 9.9.1(jiti@1.21.6) + espree: 10.1.0 + esquery: 1.6.0 + parse-imports: 2.1.1 + semver: 7.6.3 + spdx-expression-parse: 4.0.0 + synckit: 0.9.1 + transitivePeerDependencies: + - supports-color + + eslint-plugin-jsonc@2.16.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + eslint: 9.9.1(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) + espree: 9.6.1 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.0 + natural-compare: 1.4.0 + synckit: 0.6.2 + + eslint-plugin-markdown@5.1.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + eslint: 9.9.1(jiti@1.21.6) + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + + eslint-plugin-n@17.10.2(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + enhanced-resolve: 5.17.0 + eslint: 9.9.1(jiti@1.21.6) + eslint-plugin-es-x: 7.6.0(eslint@9.9.1(jiti@1.21.6)) + get-tsconfig: 4.7.5 + globals: 15.9.0 + ignore: 5.3.1 + minimatch: 9.0.5 + semver: 7.6.3 + + eslint-plugin-no-only-tests@3.3.0: {} + + eslint-plugin-perfectionist@3.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.6))): + dependencies: + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + eslint: 9.9.1(jiti@1.21.6) + minimatch: 9.0.5 + natural-compare-lite: 1.4.0 + optionalDependencies: + vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.6)) + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-regexp@2.6.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/regexpp': 4.11.0 + comment-parser: 1.4.1 + eslint: 9.9.1(jiti@1.21.6) + jsdoc-type-pratt-parser: 4.1.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 + + eslint-plugin-toml@0.11.1(eslint@9.9.1(jiti@1.21.6)): + dependencies: + debug: 4.3.6 + eslint: 9.9.1(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) + lodash: 4.17.21 + toml-eslint-parser: 0.10.0 + transitivePeerDependencies: + - supports-color - escape-html@1.0.3: {} + eslint-plugin-unicorn@55.0.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@babel/helper-validator-identifier': 7.24.5 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + ci-info: 4.0.0 + clean-regexp: 1.0.0 + core-js-compat: 3.37.1 + eslint: 9.9.1(jiti@1.21.6) + esquery: 1.6.0 + globals: 15.9.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.6.3 + strip-indent: 3.0.0 - escape-string-regexp@1.0.5: {} + eslint-plugin-unused-imports@4.1.3(@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))(eslint@9.9.1(jiti@1.21.6)): + dependencies: + eslint: 9.9.1(jiti@1.21.6) + optionalDependencies: + '@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) - escape-string-regexp@5.0.0: {} + eslint-plugin-vue@9.28.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + eslint: 9.9.1(jiti@1.21.6) + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.16 + semver: 7.6.3 + vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.6)) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-yml@1.14.0(eslint@9.9.1(jiti@1.21.6)): + dependencies: + debug: 4.3.6 + eslint: 9.9.1(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.3 + transitivePeerDependencies: + - supports-color + + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.3.10)(eslint@9.9.1(jiti@1.21.6)): + dependencies: + '@vue/compiler-sfc': 3.3.10 + eslint: 9.9.1(jiti@1.21.6) eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@8.0.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.0.0: {} + + eslint@9.9.1(jiti@1.21.6): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/regexpp': 4.11.0 + '@eslint/config-array': 0.18.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.9.1 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.6 + escape-string-regexp: 4.0.0 + eslint-scope: 8.0.2 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + optionalDependencies: + jiti: 1.21.6 + transitivePeerDependencies: + - supports-color + + esno@4.7.0: + dependencies: + tsx: 4.10.5 + + espree@10.1.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.0.0 + + espree@9.6.1: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -11044,13 +11730,13 @@ snapshots: estree-util-to-js@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 - astring: 1.8.6 + astring: 1.9.0 source-map: 0.7.4 estree-util-visit@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 estree-walker@2.0.2: {} @@ -11062,8 +11748,6 @@ snapshots: etag@1.8.1: {} - event-target-shim@5.0.1: {} - eventemitter3@4.0.7: {} eventemitter3@5.0.1: {} @@ -11108,36 +11792,34 @@ snapshots: expand-template@2.0.3: {} - express-rate-limit@5.5.1: {} - - express@4.19.2: + express@4.21.0: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.2 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.6.0 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.3.1 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.10 proxy-addr: 2.0.7 - qs: 6.11.0 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -11159,41 +11841,21 @@ snapshots: extend@3.0.2: {} - extendable-error@0.1.7: {} - - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - - extsprintf@1.3.0: {} - fast-deep-equal@3.1.3: {} fast-fifo@1.3.2: {} - fast-glob@3.2.7: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.7 - fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} - fast-redact@3.5.0: {} - - fast-safe-stringify@2.1.1: {} + fast-levenshtein@2.0.6: {} fast-uri@3.0.1: {} @@ -11210,22 +11872,18 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - - filelist@1.0.4: + file-entry-cache@8.0.0: dependencies: - minimatch: 5.1.6 + flat-cache: 4.0.1 fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: + finalhandler@1.3.1: dependencies: debug: 2.6.9 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 @@ -11258,36 +11916,29 @@ snapshots: find-yarn-workspace-root2@1.2.16: dependencies: - micromatch: 4.0.7 + micromatch: 4.0.8 pkg-dir: 4.2.0 + flat-cache@4.0.1: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + flat@5.0.2: {} + flatted@3.3.1: {} + flattie@1.1.1: {} - follow-redirects@1.15.6(debug@4.3.6): + follow-redirects@1.15.9(debug@4.3.6): optionalDependencies: debug: 4.3.6 - foreground-child@3.2.1: + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - forever-agent@0.6.1: {} - - form-data@2.3.3: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - form-data@4.0.0: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 @@ -11298,10 +11949,6 @@ snapshots: fresh@0.5.2: {} - front-matter@4.0.2: - dependencies: - js-yaml: 3.14.1 - fs-constants@1.0.0: {} fs-extra@11.2.0: @@ -11310,17 +11957,11 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@7.0.1: + fs-minipass@2.1.0: dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 + minipass: 3.3.6 - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 + fs.realpath@1.0.0: {} fsevents@2.3.3: optional: true @@ -11333,6 +11974,8 @@ snapshots: get-east-asian-width@1.2.0: {} + get-func-name@2.0.2: {} + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 @@ -11345,9 +11988,20 @@ snapshots: get-stream@8.0.1: {} - getpass@0.1.7: + get-tsconfig@4.7.5: + dependencies: + resolve-pkg-maps: 1.0.0 + + giget@1.2.3: dependencies: - assert-plus: 1.0.0 + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.8 + ohash: 1.1.3 + pathe: 1.1.2 + tar: 6.2.1 github-from-package@0.0.0: {} @@ -11365,33 +12019,40 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.2.1 + foreground-child: 3.3.0 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 package-json-from-dist: 1.0.0 path-scurry: 1.11.1 - glob@6.0.4: + glob@8.1.0: dependencies: + fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 5.1.6 once: 1.4.0 - path-is-absolute: 1.0.1 globals@11.12.0: {} - globby@11.1.0: + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@14.0.0: {} + + globals@15.9.0: {} + + globby@13.2.2: dependencies: - array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 ignore: 5.3.1 merge2: 1.4.1 - slash: 3.0.0 + slash: 4.0.0 - globby@14.0.2: + globby@14.0.1: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 @@ -11406,6 +12067,8 @@ snapshots: graceful-fs@4.2.11: {} + graphemer@1.4.0: {} + gray-matter@4.0.3: dependencies: js-yaml: 3.14.1 @@ -11413,26 +12076,8 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 - gunzip-maybe@1.4.2: - dependencies: - browserify-zlib: 0.1.4 - is-deflate: 1.0.0 - is-gzip: 1.0.0 - peek-stream: 1.1.3 - pumpify: 1.5.1 - through2: 2.0.5 - handle-thing@2.0.1: {} - handlebars@4.7.8: - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.19.1 - has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -11454,23 +12099,33 @@ snapshots: '@types/hast': 3.0.4 hast-util-is-element: 3.0.0 - hast-util-from-html@2.0.1: + 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 devlop: 1.1.0 hast-util-from-parse5: 8.0.1 parse5: 7.1.2 - vfile: 6.0.2 + vfile: 6.0.3 vfile-message: 4.0.2 hast-util-from-parse5@8.0.1: dependencies: '@types/hast': 3.0.4 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 devlop: 1.1.0 hastscript: 8.0.0 property-information: 6.5.0 - vfile: 6.0.2 + vfile: 6.0.3 vfile-location: 5.0.3 web-namespaces: 2.0.1 @@ -11486,6 +12141,14 @@ snapshots: 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 @@ -11501,7 +12164,7 @@ snapshots: hast-util-raw@9.0.4: dependencies: '@types/hast': 3.0.4 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 '@ungap/structured-clone': 1.2.0 hast-util-from-parse5: 8.0.1 hast-util-to-parse5: 8.0.0 @@ -11510,14 +12173,14 @@ snapshots: parse5: 7.1.2 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.2 + vfile: 6.0.3 web-namespaces: 2.0.1 zwitch: 2.0.4 hast-util-select@6.0.2: dependencies: '@types/hast': 3.0.4 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 bcp-47-match: 2.0.3 comma-separated-tokens: 2.0.3 css-selector-parser: 3.0.5 @@ -11543,8 +12206,8 @@ snapshots: estree-util-attach-comments: 3.0.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.1.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 property-information: 6.5.0 space-separated-tokens: 2.0.2 @@ -11554,13 +12217,12 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-html@9.0.1: + hast-util-to-html@9.0.3: dependencies: '@types/hast': 3.0.4 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 ccount: 2.0.1 comma-separated-tokens: 2.0.3 - hast-util-raw: 9.0.4 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 @@ -11573,17 +12235,17 @@ snapshots: dependencies: '@types/estree': 1.0.5 '@types/hast': 3.0.4 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.1.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 property-information: 6.5.0 space-separated-tokens: 2.0.2 - style-to-object: 1.0.6 + style-to-object: 1.0.8 unist-util-position: 5.0.0 vfile-message: 4.0.2 transitivePeerDependencies: @@ -11606,7 +12268,7 @@ snapshots: hast-util-to-text@4.0.2: dependencies: '@types/hast': 3.0.4 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 hast-util-is-element: 3.0.0 unist-util-find-after: 5.0.0 @@ -11632,9 +12294,9 @@ snapshots: property-information: 6.5.0 space-separated-tokens: 2.0.2 - hosted-git-info@7.0.2: - dependencies: - lru-cache: 10.4.3 + hookable@5.5.3: {} + + hosted-git-info@2.8.9: {} hpack.js@2.1.6: dependencies: @@ -11681,11 +12343,11 @@ snapshots: http-proxy-middleware@2.0.6(@types/express@4.17.21): dependencies: - '@types/http-proxy': 1.17.14 + '@types/http-proxy': 1.17.15 http-proxy: 1.18.1(debug@4.3.6) is-glob: 4.0.3 is-plain-obj: 3.0.0 - micromatch: 4.0.7 + micromatch: 4.0.8 optionalDependencies: '@types/express': 4.17.21 transitivePeerDependencies: @@ -11693,44 +12355,27 @@ snapshots: http-proxy-middleware@3.0.0: dependencies: - '@types/http-proxy': 1.17.14 + '@types/http-proxy': 1.17.15 debug: 4.3.6 http-proxy: 1.18.1(debug@4.3.6) is-glob: 4.0.3 is-plain-obj: 3.0.0 - micromatch: 4.0.7 + micromatch: 4.0.8 transitivePeerDependencies: - supports-color http-proxy@1.18.1(debug@4.3.6): dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.6(debug@4.3.6) + follow-redirects: 1.15.9(debug@4.3.6) requires-port: 1.0.0 transitivePeerDependencies: - debug - http-signature@1.3.6: - dependencies: - assert-plus: 1.0.0 - jsprim: 2.0.2 - sshpk: 1.18.0 - - http-status-codes@2.2.0: {} - - http-status-codes@2.3.0: {} - - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.3.6 - transitivePeerDependencies: - - supports-color - https-proxy-agent@6.2.1: dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -11741,8 +12386,6 @@ snapshots: transitivePeerDependencies: - supports-color - human-id@1.0.2: {} - human-signals@2.1.0: {} human-signals@4.3.1: {} @@ -11759,9 +12402,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.41): + icss-utils@5.1.0(postcss@8.4.44): dependencies: - postcss: 8.4.41 + postcss: 8.4.44 ieee754@1.2.1: {} @@ -11779,6 +12422,10 @@ snapshots: import-meta-resolve@4.1.0: {} + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -11792,14 +12439,21 @@ snapshots: inline-style-parser@0.1.1: {} - inline-style-parser@0.2.3: {} + inline-style-parser@0.2.4: {} ipaddr.js@1.9.1: {} ipaddr.js@2.2.0: {} + is-alphabetical@1.0.4: {} + is-alphabetical@2.0.1: {} + is-alphanumerical@1.0.4: + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 @@ -11813,15 +12467,17 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-core-module@2.15.0: + is-builtin-module@3.2.1: dependencies: - hasown: 2.0.2 + builtin-modules: 3.3.0 - is-decimal@2.0.1: {} + is-core-module@2.13.1: + dependencies: + hasown: 2.0.2 - is-deflate@1.0.0: {} + is-decimal@1.0.4: {} - is-docker@2.2.1: {} + is-decimal@2.0.1: {} is-docker@3.0.0: {} @@ -11841,7 +12497,7 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-gzip@1.0.0: {} + is-hexadecimal@1.0.4: {} is-hexadecimal@2.0.1: {} @@ -11853,10 +12509,14 @@ snapshots: is-interactive@2.0.0: {} + is-module@1.0.0: {} + is-network-error@1.1.0: {} is-number@7.0.0: {} + is-path-inside@3.0.3: {} + is-plain-obj@3.0.0: {} is-plain-obj@4.1.0: {} @@ -11865,7 +12525,9 @@ snapshots: dependencies: isobject: 3.0.1 - is-promise@2.2.2: {} + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.5 is-reference@3.0.2: dependencies: @@ -11875,26 +12537,14 @@ snapshots: is-stream@3.0.0: {} - is-subdir@1.2.0: - dependencies: - better-path-resolve: 1.0.0 - - is-typedarray@1.0.0: {} - is-unicode-supported@0.1.0: {} is-unicode-supported@1.3.0: {} - is-unicode-supported@2.0.0: {} + is-unicode-supported@2.1.0: {} is-what@3.14.1: {} - is-windows@1.0.2: {} - - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 @@ -11905,14 +12555,12 @@ snapshots: isobject@3.0.1: {} - isstream@0.1.2: {} - istanbul-lib-coverage@3.2.2: {} istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.25.2 - '@babel/parser': 7.25.3 + '@babel/parser': 7.24.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.3 @@ -11925,32 +12573,14 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.9.2: - dependencies: - async: 3.2.5 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-get-type@29.6.3: {} - jest-worker@27.5.1: dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 merge-stream: 2.0.0 supports-color: 8.1.1 jiti@1.21.6: {} - joycon@3.1.1: {} - js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -11962,93 +12592,69 @@ snapshots: dependencies: argparse: 2.0.1 - jsbn@0.1.1: {} + jsdoc-type-pratt-parser@4.0.0: {} + + jsdoc-type-pratt-parser@4.1.0: {} jsesc@0.5.0: {} jsesc@2.5.2: {} + jsesc@3.0.2: {} + + json-buffer@3.0.1: {} + json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} - json-schema@0.4.0: {} - - json-stringify-safe@5.0.1: {} + json-stable-stringify-without-jsonify@1.0.1: {} json5@2.2.3: {} - jsonc-parser@2.3.1: {} + jsonc-eslint-parser@2.4.0: + dependencies: + acorn: 8.12.1 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.6.3 - jsonc-parser@3.2.0: {} + jsonc-parser@2.3.1: {} jsonc-parser@3.3.1: {} - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - jsonfile@6.1.0: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - jsonparse@1.3.1: {} - - jsonwebtoken@9.0.2: - dependencies: - jws: 3.2.2 - lodash.includes: 4.3.0 - lodash.isboolean: 3.0.3 - lodash.isinteger: 4.0.4 - lodash.isnumber: 3.0.3 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.once: 4.1.1 - ms: 2.1.3 - semver: 7.6.3 - - jsprim@2.0.2: - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - - jwa@1.4.1: - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - - jws@3.2.2: - dependencies: - jwa: 1.4.1 - safe-buffer: 5.2.1 - karma-source-map-support@1.4.0: dependencies: source-map-support: 0.5.21 + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + kind-of@6.0.3: {} kleur@3.0.3: {} kleur@4.1.5: {} - launch-editor@2.8.0: + launch-editor@2.9.1: dependencies: - picocolors: 1.0.1 + picocolors: 1.1.0 shell-quote: 1.8.1 - less-loader@12.2.0(less@4.2.0)(webpack@5.93.0(esbuild@0.23.0)): + less-loader@12.2.0(less@4.2.0)(webpack@5.94.0(esbuild@0.23.0)): dependencies: less: 4.2.0 optionalDependencies: - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) less@4.2.0: dependencies: @@ -12064,11 +12670,16 @@ snapshots: needle: 3.3.1 source-map: 0.6.1 - license-webpack-plugin@4.0.2(webpack@5.93.0(esbuild@0.23.0)): + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + license-webpack-plugin@4.0.2(webpack@5.94.0(esbuild@0.23.0)): dependencies: webpack-sources: 3.2.3 optionalDependencies: - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) lilconfig@2.1.0: {} @@ -12076,7 +12687,20 @@ snapshots: lines-and-columns@1.2.4: {} - lines-and-columns@2.0.4: {} + lint-staged@15.2.10: + dependencies: + chalk: 5.3.0 + commander: 12.1.0 + debug: 4.3.6 + execa: 8.0.1 + lilconfig: 3.1.2 + listr2: 8.2.4 + micromatch: 4.0.8 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.5.0 + transitivePeerDependencies: + - supports-color listr2@8.2.4: dependencies: @@ -12102,8 +12726,6 @@ snapshots: '@lmdb/lmdb-linux-x64': 3.0.13 '@lmdb/lmdb-win32-x64': 3.0.13 - load-tsconfig@0.2.5: {} - load-yaml-file@0.2.0: dependencies: graceful-fs: 4.2.11 @@ -12121,6 +12743,11 @@ snapshots: loader-utils@3.3.1: {} + local-pkg@0.5.0: + dependencies: + mlly: 1.7.1 + pkg-types: 1.1.1 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -12133,33 +12760,13 @@ snapshots: dependencies: p-locate: 6.0.0 - lockfile@1.0.4: - dependencies: - signal-exit: 3.0.7 - - lodash-es@4.17.21: {} - lodash._reinterpolate@3.0.0: {} lodash.debounce@4.0.8: {} - lodash.includes@4.3.0: {} - - lodash.isboolean@3.0.3: {} - - lodash.isinteger@4.0.4: {} + lodash.memoize@4.1.2: {} - lodash.isnumber@3.0.3: {} - - lodash.isplainobject@4.0.6: {} - - lodash.isstring@4.0.1: {} - - lodash.once@4.1.1: {} - - lodash.sortby@4.7.0: {} - - lodash.startcase@4.4.0: {} + lodash.merge@4.6.2: {} lodash.template@4.5.0: dependencies: @@ -12170,6 +12777,8 @@ snapshots: dependencies: lodash._reinterpolate: 3.0.0 + lodash.uniq@4.5.0: {} + lodash@4.17.21: {} log-symbols@4.1.0: @@ -12197,39 +12806,36 @@ snapshots: longest-streak@3.1.0: {} - lowdb@1.0.0: + loupe@3.1.1: dependencies: - graceful-fs: 4.2.11 - is-promise: 2.2.2 - lodash: 4.17.21 - pify: 3.0.0 - steno: 0.4.4 + get-func-name: 2.0.2 lru-cache@10.4.3: {} - lru-cache@4.1.5: - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - lru-cache@5.1.1: dependencies: yallist: 3.1.1 - lru-cache@7.18.3: {} + magic-string@0.30.10: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 magic-string@0.30.11: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magicast@0.3.5: + dependencies: + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 + source-map-js: 1.2.0 + make-dir@2.1.0: dependencies: pify: 4.0.1 semver: 5.7.2 optional: true - make-error@1.3.6: {} - markdown-extensions@2.0.0: {} markdown-table@3.0.3: {} @@ -12237,13 +12843,13 @@ snapshots: mdast-util-definitions@6.0.0: dependencies: '@types/mdast': 4.0.4 - '@types/unist': 3.0.2 + '@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.2 + '@types/unist': 3.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 @@ -12260,10 +12866,20 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + mdast-util-from-markdown@0.8.5: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + mdast-util-from-markdown@2.0.1: dependencies: '@types/mdast': 4.0.4 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 decode-named-character-reference: 1.0.2 devlop: 1.1.0 mdast-util-to-string: 4.0.0 @@ -12277,7 +12893,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm-autolink-literal@2.0.0: + mdast-util-gfm-autolink-literal@2.0.1: dependencies: '@types/mdast': 4.0.4 ccount: 2.0.1 @@ -12325,7 +12941,7 @@ snapshots: mdast-util-gfm@3.0.0: dependencies: mdast-util-from-markdown: 2.0.1 - mdast-util-gfm-autolink-literal: 2.0.0 + mdast-util-gfm-autolink-literal: 2.0.1 mdast-util-gfm-footnote: 2.0.0 mdast-util-gfm-strikethrough: 2.0.0 mdast-util-gfm-table: 2.0.0 @@ -12334,7 +12950,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx-expression@2.0.0: + mdast-util-mdx-expression@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -12345,19 +12961,18 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.1.2: + mdast-util-mdx-jsx@3.1.3: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 ccount: 2.0.1 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-remove-position: 5.0.0 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 transitivePeerDependencies: @@ -12366,8 +12981,8 @@ snapshots: mdast-util-mdx@3.0.0: dependencies: mdast-util-from-markdown: 2.0.1 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.1.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: @@ -12399,12 +13014,12 @@ snapshots: trim-lines: 3.0.1 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.2 + vfile: 6.0.3 mdast-util-to-markdown@2.1.0: dependencies: '@types/mdast': 4.0.4 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 longest-streak: 3.1.0 mdast-util-phrasing: 4.1.0 mdast-util-to-string: 4.0.0 @@ -12412,20 +13027,26 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 + mdast-util-to-string@2.0.0: {} + mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.4 + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + media-typer@0.3.0: {} - memfs@4.11.0: + memfs@4.12.0: dependencies: - '@jsonjoy.com/json-pack': 1.0.4(tslib@2.7.0) + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) tree-dump: 1.0.2(tslib@2.7.0) tslib: 2.7.0 - merge-descriptors@1.0.1: {} + merge-descriptors@1.0.3: {} merge-stream@2.0.0: {} @@ -12452,7 +13073,7 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-directive@3.0.1: + micromark-extension-directive@3.0.2: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 @@ -12524,22 +13145,23 @@ snapshots: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 - micromark-factory-mdx-expression: 2.0.1 + micromark-factory-mdx-expression: 2.0.2 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-mdx-jsx@3.0.0: + micromark-extension-mdx-jsx@3.0.1: dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.1 + micromark-factory-mdx-expression: 2.0.2 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 vfile-message: 4.0.2 @@ -12565,7 +13187,7 @@ snapshots: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) micromark-extension-mdx-expression: 3.0.0 - micromark-extension-mdx-jsx: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 micromark-extension-mdx-md: 2.0.0 micromark-extension-mdxjs-esm: 3.0.0 micromark-util-combine-extensions: 2.0.0 @@ -12584,10 +13206,11 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-mdx-expression@2.0.1: + micromark-factory-mdx-expression@2.0.2: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 + micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.0 @@ -12651,7 +13274,7 @@ snapshots: dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 micromark-util-symbol: 2.0.0 @@ -12685,10 +13308,17 @@ snapshots: micromark-util-types@2.0.0: {} + micromark@2.11.4: + dependencies: + debug: 4.3.7 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.6 + debug: 4.3.7 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -12707,7 +13337,7 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 @@ -12722,10 +13352,6 @@ snapshots: mime@1.6.0: {} - mime@2.6.0: {} - - mime@3.0.0: {} - mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -12734,11 +13360,13 @@ snapshots: mimic-response@3.1.0: {} - mini-css-extract-plugin@2.9.0(webpack@5.93.0(esbuild@0.23.0)): + min-indent@1.0.1: {} + + mini-css-extract-plugin@2.9.0(webpack@5.94.0(esbuild@0.23.0)): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) minimalistic-assert@1.0.1: {} @@ -12754,23 +13382,26 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 minimist@1.2.8: {} - minipass@7.1.2: {} + minipass@3.3.6: + dependencies: + yallist: 4.0.0 - mkdirp-classic@0.5.3: {} + minipass@5.0.0: {} + + minipass@7.1.2: {} - mkdirp@0.5.6: + minizlib@2.1.2: dependencies: - minimist: 1.2.8 + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp-classic@0.5.3: {} mkdirp@1.0.4: {} @@ -12778,6 +13409,34 @@ snapshots: mkdirp@3.0.1: {} + mkdist@1.5.1(sass@1.77.6)(typescript@5.5.4): + dependencies: + autoprefixer: 10.4.19(postcss@8.4.44) + citty: 0.1.6 + cssnano: 7.0.1(postcss@8.4.44) + defu: 6.1.4 + esbuild: 0.20.2 + fs-extra: 11.2.0 + globby: 14.0.1 + jiti: 1.21.6 + mlly: 1.7.1 + mri: 1.2.0 + pathe: 1.1.2 + pkg-types: 1.1.1 + postcss: 8.4.44 + postcss-nested: 6.0.1(postcss@8.4.44) + semver: 7.6.3 + optionalDependencies: + sass: 1.77.6 + typescript: 5.5.4 + + mlly@1.7.1: + dependencies: + acorn: 8.12.1 + pathe: 1.1.2 + pkg-types: 1.1.1 + ufo: 1.5.3 + mri@1.2.0: {} mrmime@2.0.0: {} @@ -12813,25 +13472,19 @@ snapshots: mute-stream@1.0.0: {} - mv@2.1.1: - dependencies: - mkdirp: 0.5.6 - ncp: 2.0.0 - rimraf: 2.4.5 - mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - nanoclone@0.2.1: {} - nanoid@3.3.7: {} napi-build-utils@1.0.2: {} - ncp@2.0.0: {} + natural-compare-lite@1.4.0: {} + + natural-compare@1.4.0: {} needle@3.3.1: dependencies: @@ -12848,14 +13501,14 @@ snapshots: nice-napi@1.0.2: dependencies: node-addon-api: 3.2.1 - node-gyp-build: 4.8.1 + node-gyp-build: 4.8.2 optional: true nlcst-to-string@4.0.0: dependencies: '@types/nlcst': 2.0.3 - node-abi@3.65.0: + node-abi@3.68.0: dependencies: semver: 7.6.3 @@ -12866,13 +13519,7 @@ snapshots: node-domexception@1.0.0: {} - node-fetch@2.6.7: - dependencies: - whatwg-url: 5.0.0 - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 + node-fetch-native@1.6.4: {} node-fetch@3.3.2: dependencies: @@ -12886,26 +13533,26 @@ snapshots: dependencies: detect-libc: 2.0.3 - node-gyp-build@4.8.1: + node-gyp-build@4.8.2: optional: true - node-machine-id@1.1.12: {} + node-releases@2.0.14: {} node-releases@2.0.18: {} + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} normalize-range@0.1.2: {} not@0.1.0: {} - npm-package-arg@11.0.1: - dependencies: - hosted-git-info: 7.0.2 - proc-log: 3.0.0 - semver: 7.6.3 - validate-npm-package-name: 5.0.1 - npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -12918,56 +13565,13 @@ snapshots: dependencies: boolbase: 1.0.0 - nx@19.5.6: + nypm@0.3.8: dependencies: - '@napi-rs/wasm-runtime': 0.2.4 - '@nrwl/tao': 19.5.6 - '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.0-rc.46 - '@zkochan/js-yaml': 0.0.7 - axios: 1.7.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - cliui: 8.0.1 - dotenv: 16.4.5 - dotenv-expand: 11.0.6 - enquirer: 2.3.6 - figures: 3.2.0 - flat: 5.0.2 - front-matter: 4.0.2 - fs-extra: 11.2.0 - ignore: 5.3.1 - jest-diff: 29.7.0 - jsonc-parser: 3.2.0 - lines-and-columns: 2.0.4 - minimatch: 9.0.3 - node-machine-id: 1.1.12 - npm-run-path: 4.0.1 - open: 8.4.2 - ora: 5.3.0 - semver: 7.6.3 - string-width: 4.2.3 - strong-log-transformer: 2.1.0 - tar-stream: 2.2.0 - tmp: 0.2.3 - tsconfig-paths: 4.2.0 - tslib: 2.6.3 - yargs: 17.7.2 - yargs-parser: 21.1.1 - optionalDependencies: - '@nx/nx-darwin-arm64': 19.5.6 - '@nx/nx-darwin-x64': 19.5.6 - '@nx/nx-freebsd-x64': 19.5.6 - '@nx/nx-linux-arm-gnueabihf': 19.5.6 - '@nx/nx-linux-arm64-gnu': 19.5.6 - '@nx/nx-linux-arm64-musl': 19.5.6 - '@nx/nx-linux-x64-gnu': 19.5.6 - '@nx/nx-linux-x64-musl': 19.5.6 - '@nx/nx-win32-arm64-msvc': 19.5.6 - '@nx/nx-win32-x64-msvc': 19.5.6 - transitivePeerDependencies: - - debug + citty: 0.1.6 + consola: 3.2.3 + execa: 8.0.1 + pathe: 1.1.2 + ufo: 1.5.3 object-assign@4.1.1: {} @@ -12977,9 +13581,7 @@ snapshots: obuf@1.1.2: {} - on-exit-leak-free@0.2.0: {} - - on-exit-leak-free@2.1.2: {} + ohash@1.1.3: {} on-finished@2.4.1: dependencies: @@ -13003,6 +13605,10 @@ snapshots: dependencies: mimic-function: 5.0.1 + oniguruma-to-js@0.4.3: + dependencies: + regex: 4.3.2 + open@10.1.0: dependencies: default-browser: 5.2.1 @@ -13010,22 +13616,14 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 3.1.0 - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - ora@5.3.0: + optionator@0.9.4: dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 ora@5.4.1: dependencies: @@ -13051,13 +13649,13 @@ snapshots: strip-ansi: 7.1.0 wcwidth: 1.0.1 - ora@8.0.1: + ora@8.1.0: dependencies: chalk: 5.3.0 - cli-cursor: 4.0.0 + cli-cursor: 5.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 - is-unicode-supported: 2.0.0 + is-unicode-supported: 2.1.0 log-symbols: 6.0.0 stdin-discarder: 0.2.2 string-width: 7.2.0 @@ -13065,14 +13663,6 @@ snapshots: ordered-binary@1.5.1: {} - os-tmpdir@1.0.2: {} - - outdent@0.5.0: {} - - p-filter@2.1.0: - dependencies: - p-map: 2.1.0 - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -13101,8 +13691,6 @@ snapshots: dependencies: p-limit: 4.0.0 - p-map@2.1.0: {} - p-queue@8.0.1: dependencies: eventemitter3: 5.0.1 @@ -13120,20 +13708,29 @@ snapshots: package-json-from-dist@1.0.0: {} - pagefind@1.1.0: - optionalDependencies: - '@pagefind/darwin-arm64': 1.1.0 - '@pagefind/darwin-x64': 1.1.0 - '@pagefind/linux-arm64': 1.1.0 - '@pagefind/linux-x64': 1.1.0 - '@pagefind/windows-x64': 1.1.0 + package-manager-detector@0.2.0: {} - pako@0.2.9: {} + 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 parent-module@1.0.1: dependencies: callsites: 3.1.0 + parse-entities@2.0.0: + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + parse-entities@4.0.1: dependencies: '@types/unist': 2.0.10 @@ -13145,6 +13742,13 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 + parse-gitignore@2.0.0: {} + + parse-imports@2.1.1: + dependencies: + es-module-lexer: 1.5.4 + slashes: 3.0.12 + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.24.7 @@ -13155,11 +13759,11 @@ snapshots: parse-latin@7.0.0: dependencies: '@types/nlcst': 2.0.3 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 nlcst-to-string: 4.0.0 unist-util-modify-children: 4.0.0 unist-util-visit-children: 3.0.0 - vfile: 6.0.2 + vfile: 6.0.3 parse-node-version@1.0.1: {} @@ -13185,8 +13789,6 @@ snapshots: path-exists@5.0.0: {} - path-is-absolute@1.0.1: {} - path-key@3.1.1: {} path-key@4.0.0: {} @@ -13198,21 +13800,17 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.7: {} - - path-to-regexp@6.2.2: {} + path-to-regexp@0.1.10: {} path-type@4.0.0: {} path-type@5.0.0: {} - peek-stream@1.1.3: - dependencies: - buffer-from: 1.1.2 - duplexify: 3.7.1 - through2: 2.0.5 + pathe@1.1.2: {} - performance-now@2.1.0: {} + pathval@2.0.0: {} + + perfect-debounce@1.0.0: {} periscopic@3.1.0: dependencies: @@ -13220,167 +13818,279 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.2 - picocolors@1.0.1: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} picomatch@4.0.2: {} - pify@2.3.0: {} + pidtree@0.6.0: {} - pify@3.0.0: {} + pify@2.3.0: {} pify@4.0.1: {} - pino-abstract-transport@0.5.0: + pirates@4.0.6: {} + + piscina@4.6.1: + optionalDependencies: + nice-napi: 1.0.2 + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pkg-dir@7.0.0: dependencies: - duplexify: 4.1.3 - split2: 4.2.0 + find-up: 6.3.0 - pino-abstract-transport@1.1.0: + pkg-types@1.1.1: dependencies: - readable-stream: 4.5.2 - split2: 4.2.0 + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 - pino-std-serializers@4.0.0: {} + pluralize@8.0.0: {} - pino-std-serializers@6.2.2: {} + pnpm@9.9.0: {} - pino@7.11.0: + postcss-calc@10.0.0(postcss@8.4.44): dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.5.0 - on-exit-leak-free: 0.2.0 - pino-abstract-transport: 0.5.0 - pino-std-serializers: 4.0.0 - process-warning: 1.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.1.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 2.8.0 - thread-stream: 0.15.2 + postcss: 8.4.44 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 - pino@8.17.2: + postcss-colormin@7.0.0(postcss@8.4.44): dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.5.0 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 1.1.0 - pino-std-serializers: 6.2.2 - process-warning: 3.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.2.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 3.8.1 - thread-stream: 2.7.0 + browserslist: 4.23.0 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.44 + postcss-value-parser: 4.2.0 - pirates@4.0.6: {} + postcss-convert-values@7.0.0(postcss@8.4.44): + dependencies: + browserslist: 4.23.0 + postcss: 8.4.44 + postcss-value-parser: 4.2.0 - piscina@4.6.1: - optionalDependencies: - nice-napi: 1.0.2 + postcss-discard-comments@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 - pkg-dir@4.2.0: + postcss-discard-duplicates@7.0.0(postcss@8.4.44): dependencies: - find-up: 4.1.0 + postcss: 8.4.44 - pkg-dir@7.0.0: + postcss-discard-empty@7.0.0(postcss@8.4.44): dependencies: - find-up: 6.3.0 + postcss: 8.4.44 - pkginfo@0.4.1: {} + postcss-discard-overridden@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 - postcss-import@15.1.0(postcss@8.4.40): + postcss-import@15.1.0(postcss@8.4.44): dependencies: - postcss: 8.4.40 + postcss: 8.4.44 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.40): + postcss-js@4.0.1(postcss@8.4.44): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.40 + postcss: 8.4.44 - postcss-load-config@3.1.4(postcss@8.4.41)(ts-node@10.9.1(@types/node@22.4.1)(typescript@4.9.5)): + postcss-load-config@4.0.2(postcss@8.4.44): dependencies: - lilconfig: 2.1.0 - yaml: 1.10.2 + lilconfig: 3.1.2 + yaml: 2.5.0 optionalDependencies: - postcss: 8.4.41 - ts-node: 10.9.1(@types/node@22.4.1)(typescript@4.9.5) + postcss: 8.4.44 - postcss-load-config@4.0.2(postcss@8.4.40)(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)): + postcss-load-config@4.0.2(postcss@8.4.47): dependencies: lilconfig: 3.1.2 yaml: 2.5.0 optionalDependencies: - postcss: 8.4.40 - ts-node: 10.9.1(@types/node@22.4.1)(typescript@5.5.4) + postcss: 8.4.47 - postcss-loader@8.1.1(postcss@8.4.41)(typescript@5.5.4)(webpack@5.93.0(esbuild@0.23.0)): + postcss-loader@8.1.1(postcss@8.4.41)(typescript@5.5.4)(webpack@5.94.0(esbuild@0.23.0)): dependencies: cosmiconfig: 9.0.0(typescript@5.5.4) jiti: 1.21.6 postcss: 8.4.41 semver: 7.6.3 optionalDependencies: - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) transitivePeerDependencies: - typescript postcss-media-query-parser@0.2.3: {} - postcss-modules-extract-imports@3.1.0(postcss@8.4.41): + postcss-merge-longhand@7.0.0(postcss@8.4.44): dependencies: - postcss: 8.4.41 + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.0(postcss@8.4.44) - postcss-modules-local-by-default@4.0.5(postcss@8.4.41): + postcss-merge-rules@7.0.0(postcss@8.4.44): dependencies: - icss-utils: 5.1.0(postcss@8.4.41) - postcss: 8.4.41 - postcss-selector-parser: 6.1.1 + browserslist: 4.23.0 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-selector-parser: 6.0.16 + + postcss-minify-font-values@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.0(postcss@8.4.41): + postcss-minify-gradients@7.0.0(postcss@8.4.44): dependencies: - postcss: 8.4.41 - postcss-selector-parser: 6.1.1 + colord: 2.9.3 + cssnano-utils: 5.0.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-value-parser: 4.2.0 - postcss-modules-values@4.0.0(postcss@8.4.41): + postcss-minify-params@7.0.0(postcss@8.4.44): dependencies: - icss-utils: 5.1.0(postcss@8.4.41) - postcss: 8.4.41 + browserslist: 4.23.0 + cssnano-utils: 5.0.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-value-parser: 4.2.0 - postcss-nested@6.2.0(postcss@8.4.40): + postcss-minify-selectors@7.0.0(postcss@8.4.44): dependencies: - postcss: 8.4.40 - postcss-selector-parser: 6.1.1 + postcss: 8.4.44 + postcss-selector-parser: 6.0.16 - postcss-nested@6.2.0(postcss@8.4.41): + postcss-modules-extract-imports@3.1.0(postcss@8.4.44): dependencies: - postcss: 8.4.41 - postcss-selector-parser: 6.1.1 + postcss: 8.4.44 + + postcss-modules-local-by-default@4.0.5(postcss@8.4.44): + dependencies: + icss-utils: 5.1.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + + postcss-modules-scope@3.2.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-selector-parser: 6.0.16 + + postcss-modules-values@4.0.0(postcss@8.4.44): + dependencies: + icss-utils: 5.1.0(postcss@8.4.44) + postcss: 8.4.44 + + postcss-nested@6.0.1(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-selector-parser: 6.0.16 + + postcss-normalize-charset@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + + postcss-normalize-display-values@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.0(postcss@8.4.44): + dependencies: + browserslist: 4.23.0 + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@7.0.0(postcss@8.4.44): + dependencies: + cssnano-utils: 5.0.0(postcss@8.4.44) + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@7.0.0(postcss@8.4.44): + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + postcss: 8.4.44 + + postcss-reduce-transforms@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 - postcss-selector-parser@6.1.1: + postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-svgo@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-value-parser: 4.2.0 + svgo: 3.3.2 + + postcss-unique-selectors@7.0.0(postcss@8.4.44): + dependencies: + postcss: 8.4.44 + postcss-selector-parser: 6.0.16 + postcss-value-parser@4.2.0: {} - postcss@8.4.40: + postcss@8.4.41: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 + picocolors: 1.1.0 source-map-js: 1.2.0 - postcss@8.4.41: + postcss@8.4.44: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 + picocolors: 1.1.0 source-map-js: 1.2.0 + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + prebuild-install@7.1.2: dependencies: detect-libc: 2.0.3 @@ -13389,58 +14099,37 @@ snapshots: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.65.0 - pump: 3.0.0 + 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@3.1.4: - dependencies: - find-up: 5.0.0 - find-yarn-workspace-root2: 1.2.16 - path-exists: 4.0.0 - which-pm: 2.2.0 - preferred-pm@4.0.0: dependencies: find-up-simple: 1.0.0 find-yarn-workspace-root2: 1.2.16 which-pm: 3.0.0 + prelude-ls@1.2.1: {} + prettier@2.8.7: optional: true - prettier@2.8.8: {} - prettier@3.3.3: {} - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 + pretty-bytes@6.1.1: {} prismjs@1.29.0: {} - proc-log@3.0.0: {} - process-nextick-args@2.0.1: {} - process-warning@1.0.0: {} - - process-warning@3.0.0: {} - - process@0.11.10: {} - prompts@2.4.2: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - property-expr@2.0.6: {} - property-information@6.5.0: {} proxy-addr@2.0.7: @@ -13448,49 +14137,24 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-from-env@1.1.0: {} - prr@1.0.1: optional: true - pseudomap@1.0.2: {} - - psl@1.9.0: {} - - pump@2.0.1: + pump@3.0.2: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - pump@3.0.0: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - pumpify@1.5.1: - dependencies: - duplexify: 3.7.1 - inherits: 2.0.4 - pump: 2.0.1 - punycode@2.3.1: {} - qs@6.10.4: - dependencies: - side-channel: 1.0.6 - - qs@6.11.0: + qs@6.13.0: dependencies: side-channel: 1.0.6 - querystringify@2.2.0: {} - queue-microtask@1.2.3: {} queue-tick@1.0.1: {} - quick-format-unescaped@4.0.4: {} - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -13504,6 +14168,11 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + rc9@2.1.2: + dependencies: + defu: 6.1.4 + destr: 2.0.3 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -13511,18 +14180,22 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-is@18.3.1: {} - read-cache@1.0.0: dependencies: pify: 2.3.0 - read-yaml-file@1.1.0: + read-pkg-up@7.0.1: dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 readable-stream@2.3.8: dependencies: @@ -13540,25 +14213,17 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 - readable-stream@4.5.2: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - readdirp@3.6.0: dependencies: picomatch: 2.3.1 - real-require@0.1.0: {} - - real-require@0.2.0: {} + refa@0.12.1: + dependencies: + '@eslint-community/regexpp': 4.11.0 reflect-metadata@0.2.2: {} - regenerate-unicode-properties@10.1.1: + regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 @@ -13572,58 +14237,57 @@ snapshots: regex-parser@2.3.0: {} + regex@4.3.2: {} + + regexp-ast-analysis@0.7.1: + dependencies: + '@eslint-community/regexpp': 4.11.0 + refa: 0.12.1 + + regexp-tree@0.1.27: {} + regexpu-core@5.3.2: dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 + regenerate-unicode-properties: 10.2.0 regjsparser: 0.9.1 unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 + unicode-match-property-value-ecmascript: 2.2.0 - regjsparser@0.9.1: + regjsparser@0.10.0: dependencies: jsesc: 0.5.0 - rehype-expressive-code@0.35.6: - dependencies: - expressive-code: 0.35.6 - - rehype-format@5.0.0: + regjsparser@0.9.1: dependencies: - '@types/hast': 3.0.4 - hast-util-embedded: 3.0.0 - hast-util-is-element: 3.0.0 - hast-util-phrasing: 3.0.1 - hast-util-whitespace: 3.0.0 - html-whitespace-sensitive-tag-names: 3.0.0 - rehype-minify-whitespace: 6.0.0 - unist-util-visit-parents: 6.0.1 + jsesc: 0.5.0 - rehype-minify-whitespace@6.0.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-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-format: 1.1.0 rehype-parse@9.0.0: dependencies: '@types/hast': 3.0.4 - hast-util-from-html: 2.0.1 + hast-util-from-html: 2.0.3 unified: 11.0.5 rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.0.4 - vfile: 6.0.2 + vfile: 6.0.3 rehype-stringify@10.0.0: dependencies: '@types/hast': 3.0.4 - hast-util-to-html: 9.0.1 + hast-util-to-html: 9.0.3 unified: 11.0.5 rehype@13.0.1: @@ -13637,7 +14301,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 mdast-util-directive: 3.0.0 - micromark-extension-directive: 3.0.1 + micromark-extension-directive: 3.0.2 unified: 11.0.5 transitivePeerDependencies: - supports-color @@ -13669,18 +14333,18 @@ snapshots: transitivePeerDependencies: - supports-color - remark-rehype@11.1.0: + remark-rehype@11.1.1: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 mdast-util-to-hast: 13.2.0 unified: 11.0.5 - vfile: 6.0.2 + vfile: 6.0.3 remark-smartypants@3.0.2: dependencies: retext: 9.0.0 - retext-smartypants: 6.1.0 + retext-smartypants: 6.1.1 unified: 11.0.5 unist-util-visit: 5.0.0 @@ -13702,19 +14366,19 @@ snapshots: resolve-from@4.0.0: {} - resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} resolve-url-loader@5.0.0: dependencies: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.4.41 + postcss: 8.4.44 source-map: 0.6.1 resolve@1.22.8: dependencies: - is-core-module: 2.15.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -13739,7 +14403,7 @@ snapshots: parse-latin: 7.0.0 unified: 11.0.5 - retext-smartypants@6.1.0: + retext-smartypants@6.1.1: dependencies: '@types/nlcst': 2.0.3 nlcst-to-string: 4.0.0 @@ -13764,13 +14428,17 @@ snapshots: rfdc@1.4.1: {} - rimraf@2.4.5: + rimraf@5.0.10: dependencies: - glob: 6.0.4 + glob: 10.4.5 - rimraf@5.0.9: + rollup-plugin-dts@6.1.1(rollup@3.29.4)(typescript@5.5.4): dependencies: - glob: 10.4.5 + magic-string: 0.30.10 + rollup: 3.29.4 + typescript: 5.5.4 + optionalDependencies: + '@babel/code-frame': 7.24.2 rollup@3.29.4: optionalDependencies: @@ -13798,6 +14466,28 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.20.0 fsevents: 2.3.3 + rollup@4.21.2: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.21.2 + '@rollup/rollup-android-arm64': 4.21.2 + '@rollup/rollup-darwin-arm64': 4.21.2 + '@rollup/rollup-darwin-x64': 4.21.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.2 + '@rollup/rollup-linux-arm-musleabihf': 4.21.2 + '@rollup/rollup-linux-arm64-gnu': 4.21.2 + '@rollup/rollup-linux-arm64-musl': 4.21.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2 + '@rollup/rollup-linux-riscv64-gnu': 4.21.2 + '@rollup/rollup-linux-s390x-gnu': 4.21.2 + '@rollup/rollup-linux-x64-gnu': 4.21.2 + '@rollup/rollup-linux-x64-musl': 4.21.2 + '@rollup/rollup-win32-arm64-msvc': 4.21.2 + '@rollup/rollup-win32-ia32-msvc': 4.21.2 + '@rollup/rollup-win32-x64-msvc': 4.21.2 + fsevents: 2.3.3 + run-applescript@7.0.0: {} run-parallel@1.2.0: @@ -13812,16 +14502,14 @@ snapshots: safe-buffer@5.2.1: {} - safe-stable-stringify@2.4.3: {} - safer-buffer@2.1.2: {} - sass-loader@16.0.0(sass@1.77.6)(webpack@5.93.0(esbuild@0.23.0)): + sass-loader@16.0.0(sass@1.77.6)(webpack@5.94.0(esbuild@0.23.0)): dependencies: neo-async: 2.6.2 optionalDependencies: sass: 1.77.6 - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) sass@1.77.6: dependencies: @@ -13844,6 +14532,14 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + scslre@0.3.0: + dependencies: + '@eslint-community/regexpp': 4.11.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + + scule@1.3.0: {} + section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 @@ -13856,16 +14552,13 @@ snapshots: '@types/node-forge': 1.3.11 node-forge: 1.3.1 - semver@5.7.2: - optional: true + semver@5.7.2: {} semver@6.3.1: {} - semver@7.6.2: {} - semver@7.6.3: {} - send@0.18.0: + send@0.19.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -13899,12 +14592,12 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@1.15.0: + serve-static@1.16.2: dependencies: - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.18.0 + send: 0.19.0 transitivePeerDependencies: - supports-color @@ -13936,55 +14629,48 @@ snapshots: tar-fs: 3.0.6 tunnel-agent: 0.6.0 - sharp@0.33.4: + sharp@0.33.5: dependencies: color: 4.2.3 detect-libc: 2.0.3 semver: 7.6.3 optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.4 - '@img/sharp-darwin-x64': 0.33.4 - '@img/sharp-libvips-darwin-arm64': 1.0.2 - '@img/sharp-libvips-darwin-x64': 1.0.2 - '@img/sharp-libvips-linux-arm': 1.0.2 - '@img/sharp-libvips-linux-arm64': 1.0.2 - '@img/sharp-libvips-linux-s390x': 1.0.2 - '@img/sharp-libvips-linux-x64': 1.0.2 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 - '@img/sharp-linux-arm': 0.33.4 - '@img/sharp-linux-arm64': 0.33.4 - '@img/sharp-linux-s390x': 0.33.4 - '@img/sharp-linux-x64': 0.33.4 - '@img/sharp-linuxmusl-arm64': 0.33.4 - '@img/sharp-linuxmusl-x64': 0.33.4 - '@img/sharp-wasm32': 0.33.4 - '@img/sharp-win32-ia32': 0.33.4 - '@img/sharp-win32-x64': 0.33.4 - optional: true - - shebang-command@1.2.0: - dependencies: - shebang-regex: 1.0.0 + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + optional: true shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - shebang-regex@1.0.0: {} - shebang-regex@3.0.0: {} shell-quote@1.8.1: {} - shiki@1.13.0: - dependencies: - '@shikijs/core': 1.13.0 - '@types/hast': 3.0.4 - - shiki@1.14.1: + shiki@1.18.0: dependencies: - '@shikijs/core': 1.14.1 + '@shikijs/core': 1.18.0 + '@shikijs/engine-javascript': 1.18.0 + '@shikijs/engine-oniguruma': 1.18.0 + '@shikijs/types': 1.18.0 + '@shikijs/vscode-textmate': 9.2.2 '@types/hast': 3.0.4 side-channel@1.0.6: @@ -13994,6 +14680,8 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.2 + siginfo@2.0.0: {} + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -14006,6 +14694,8 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 + simple-git-hooks@2.11.1: {} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -14019,10 +14709,12 @@ snapshots: arg: 5.0.2 sax: 1.4.1 - slash@3.0.0: {} + slash@4.0.0: {} slash@5.1.0: {} + slashes@3.0.12: {} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 @@ -14039,30 +14731,15 @@ snapshots: uuid: 8.3.2 websocket-driver: 0.7.4 - sonic-boom@2.8.0: - dependencies: - atomic-sleep: 1.0.0 - - sonic-boom@3.8.0: - dependencies: - atomic-sleep: 1.0.0 - - sonic-boom@3.8.1: - dependencies: - atomic-sleep: 1.0.0 - source-map-js@1.2.0: {} - source-map-loader@5.0.0(webpack@5.93.0(esbuild@0.23.0)): + source-map-js@1.2.1: {} + + source-map-loader@5.0.0(webpack@5.94.0(esbuild@0.23.0)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.0 - webpack: 5.93.0(esbuild@0.23.0) - - source-map-support@0.5.19: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 + webpack: 5.94.0(esbuild@0.23.0) source-map-support@0.5.21: dependencies: @@ -14073,20 +14750,30 @@ snapshots: source-map@0.7.4: {} - source-map@0.8.0-beta.0: + space-separated-tokens@2.0.2: {} + + spdx-correct@3.2.0: dependencies: - whatwg-url: 7.1.0 + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.17 - space-separated-tokens@2.0.2: {} + spdx-exceptions@2.5.0: {} - spawndamnit@2.0.0: + spdx-expression-parse@3.0.1: dependencies: - cross-spawn: 5.1.0 - signal-exit: 3.0.7 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.17 + + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.17 + + spdx-license-ids@3.0.17: {} spdy-transport@3.0.0: dependencies: - debug: 4.3.6 + debug: 4.3.7 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -14097,7 +14784,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.3.6 + debug: 4.3.7 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -14105,48 +14792,36 @@ snapshots: transitivePeerDependencies: - supports-color - split2@4.2.0: {} - sprintf-js@1.0.3: {} - sshpk@1.18.0: - dependencies: - asn1: 0.2.6 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.2 - dashdash: 1.14.1 - ecc-jsbn: 0.1.2 - getpass: 0.1.7 - jsbn: 0.1.1 - safer-buffer: 2.1.2 - tweetnacl: 0.14.5 + stable-hash@0.0.4: {} + + stackback@0.0.2: {} statuses@1.5.0: {} statuses@2.0.1: {} + std-env@3.7.0: {} + stdin-discarder@0.1.0: dependencies: bl: 5.1.0 stdin-discarder@0.2.2: {} - steno@0.4.4: - dependencies: - graceful-fs: 4.2.11 - stream-replace-string@2.0.0: {} - stream-shift@1.0.3: {} - - streamx@2.18.0: + streamx@2.20.1: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - text-decoder: 1.1.1 + text-decoder: 1.2.0 optionalDependencies: bare-events: 2.4.2 + string-argv@0.3.2: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -14159,6 +14834,12 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.1.0: + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + string-width@7.2.0: dependencies: emoji-regex: 10.3.0 @@ -14194,21 +14875,27 @@ snapshots: strip-final-newline@3.0.0: {} + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + strip-json-comments@2.0.1: {} - strong-log-transformer@2.1.0: - dependencies: - duplexer: 0.1.2 - minimist: 1.2.8 - through: 2.3.8 + strip-json-comments@3.1.1: {} style-to-object@0.4.4: dependencies: inline-style-parser: 0.1.1 - style-to-object@1.0.6: + style-to-object@1.0.8: + dependencies: + inline-style-parser: 0.2.4 + + stylehacks@7.0.0(postcss@8.4.44): dependencies: - inline-style-parser: 0.2.3 + browserslist: 4.23.0 + postcss: 8.4.44 + postcss-selector-parser: 6.0.16 sucrase@3.35.0: dependencies: @@ -14234,9 +14921,28 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - tailwind-merge@2.4.0: {} + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.0 + + synckit@0.6.2: + dependencies: + tslib: 2.7.0 + + synckit@0.9.1: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.7.0 + + tailwind-merge@2.5.2: {} - tailwindcss@3.4.7(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)): + tailwindcss@3.4.13: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -14248,16 +14954,16 @@ snapshots: is-glob: 4.0.3 jiti: 1.21.6 lilconfig: 2.1.0 - micromatch: 4.0.7 + micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.1 - postcss: 8.4.40 - postcss-import: 15.1.0(postcss@8.4.40) - postcss-js: 4.0.1(postcss@8.4.40) - postcss-load-config: 4.0.2(postcss@8.4.40)(ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4)) - postcss-nested: 6.2.0(postcss@8.4.40) - postcss-selector-parser: 6.1.1 + picocolors: 1.1.0 + postcss: 8.4.44 + postcss-import: 15.1.0(postcss@8.4.44) + postcss-js: 4.0.1(postcss@8.4.44) + postcss-load-config: 4.0.2(postcss@8.4.44) + postcss-nested: 6.0.1(postcss@8.4.44) + postcss-selector-parser: 6.0.16 resolve: 1.22.8 sucrase: 3.35.0 transitivePeerDependencies: @@ -14269,15 +14975,15 @@ snapshots: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 - pump: 3.0.0 + pump: 3.0.2 tar-stream: 2.2.0 tar-fs@3.0.6: dependencies: - pump: 3.0.0 + pump: 3.0.2 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 2.3.1 + bare-fs: 2.3.5 bare-path: 2.1.3 tar-stream@2.2.0: @@ -14292,18 +14998,25 @@ snapshots: dependencies: b4a: 1.6.6 fast-fifo: 1.3.2 - streamx: 2.18.0 + streamx: 2.20.1 - term-size@2.2.1: {} + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 - terser-webpack-plugin@5.3.10(esbuild@0.23.0)(webpack@5.93.0(esbuild@0.23.0)): + terser-webpack-plugin@5.3.10(esbuild@0.23.0)(webpack@5.94.0(esbuild@0.23.0)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.6 - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) optionalDependencies: esbuild: 0.23.0 @@ -14314,10 +15027,12 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - text-decoder@1.1.1: + text-decoder@1.2.0: dependencies: b4a: 1.6.6 + text-table@0.2.0: {} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -14330,28 +15045,17 @@ snapshots: dependencies: tslib: 2.7.0 - thread-stream@0.15.2: - dependencies: - real-require: 0.1.0 - - thread-stream@2.7.0: - dependencies: - real-require: 0.2.0 + thunky@1.1.0: {} - through2@2.0.5: - dependencies: - readable-stream: 2.3.8 - xtend: 4.0.2 + tinybench@2.8.0: {} - through@2.3.8: {} + tinyexec@0.3.0: {} - thunky@1.1.0: {} + tinypool@1.0.0: {} - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 + tinyrainbow@1.2.0: {} - tmp@0.2.3: {} + tinyspy@3.0.0: {} to-fast-properties@2.0.0: {} @@ -14361,20 +15065,9 @@ snapshots: toidentifier@1.0.1: {} - toposort@2.0.2: {} - - tough-cookie@4.1.4: - dependencies: - psl: 1.9.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 - - tr46@0.0.3: {} - - tr46@1.0.1: + toml-eslint-parser@0.10.0: dependencies: - punycode: 2.3.1 + eslint-visitor-keys: 3.4.3 tree-dump@1.0.2(tslib@2.7.0): dependencies: @@ -14386,6 +15079,10 @@ snapshots: trough@2.2.0: {} + ts-api-utils@1.3.0(typescript@5.5.4): + dependencies: + typescript: 5.5.4 + ts-interface-checker@0.1.13: {} ts-morph@18.0.0: @@ -14398,44 +15095,7 @@ snapshots: '@ts-morph/common': 0.22.0 code-block-writer: 12.0.0 - ts-node@10.9.1(@types/node@22.4.1)(typescript@4.9.5): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.4.1 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.9.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optional: true - - ts-node@10.9.1(@types/node@22.4.1)(typescript@5.5.4): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.4.1 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.5.4 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - - tsconfck@3.1.1(typescript@5.5.4): + tsconfck@3.1.3(typescript@5.5.4): optionalDependencies: typescript: 5.5.4 @@ -14449,39 +15109,31 @@ snapshots: tslib@2.7.0: {} - tsup@6.7.0(postcss@8.4.41)(ts-node@10.9.1(@types/node@22.4.1)(typescript@4.9.5))(typescript@4.9.5): + tsx@4.10.5: dependencies: - bundle-require: 4.2.1(esbuild@0.17.19) - cac: 6.7.14 - chokidar: 3.6.0 - debug: 4.3.6 - esbuild: 0.17.19 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 3.1.4(postcss@8.4.41)(ts-node@10.9.1(@types/node@22.4.1)(typescript@4.9.5)) - resolve-from: 5.0.0 - rollup: 3.29.4 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tree-kill: 1.2.2 + esbuild: 0.20.2 + get-tsconfig: 4.7.5 optionalDependencies: - postcss: 8.4.41 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - ts-node + fsevents: 2.3.3 tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 - tweetnacl@0.14.5: {} + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.0.8: {} - typanion@3.14.0: {} + type-fest@0.20.2: {} type-fest@0.21.3: {} + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + type-fest@2.19.0: {} type-fest@3.13.1: {} @@ -14499,27 +15151,55 @@ snapshots: dependencies: semver: 7.6.3 - typescript@4.9.5: {} - typescript@5.5.4: {} - uglify-js@3.19.1: - optional: true + ufo@1.5.3: {} - undici-types@5.26.5: {} + unbuild@2.0.0(sass@1.77.6)(typescript@5.5.4): + dependencies: + '@rollup/plugin-alias': 5.1.0(rollup@3.29.4) + '@rollup/plugin-commonjs': 25.0.7(rollup@3.29.4) + '@rollup/plugin-json': 6.1.0(rollup@3.29.4) + '@rollup/plugin-node-resolve': 15.2.3(rollup@3.29.4) + '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + chalk: 5.3.0 + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + esbuild: 0.19.12 + globby: 13.2.2 + hookable: 5.5.3 + jiti: 1.21.6 + magic-string: 0.30.10 + mkdist: 1.5.1(sass@1.77.6)(typescript@5.5.4) + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.1.1 + pretty-bytes: 6.1.1 + rollup: 3.29.4 + rollup-plugin-dts: 6.1.1(rollup@3.29.4)(typescript@5.5.4) + scule: 1.3.0 + untyped: 1.4.2 + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - sass + - supports-color + - vue-tsc - undici-types@6.11.1: {} + undici-types@5.26.5: {} undici-types@6.19.8: {} - unicode-canonical-property-names-ecmascript@2.0.0: {} + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-canonical-property-names-ecmascript: 2.0.1 unicode-property-aliases-ecmascript: 2.1.0 - unicode-match-property-value-ecmascript@2.1.0: {} + unicode-match-property-value-ecmascript@2.2.0: {} unicode-property-aliases-ecmascript@2.1.0: {} @@ -14527,300 +15207,289 @@ snapshots: unified@11.0.5: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 bail: 2.0.2 devlop: 1.1.0 extend: 3.0.2 is-plain-obj: 4.1.0 trough: 2.2.0 - vfile: 6.0.2 + vfile: 6.0.3 unist-util-find-after@5.0.0: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 unist-util-is: 6.0.0 unist-util-is@6.0.0: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 unist-util-modify-children@4.0.0: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 array-iterate: 2.0.1 unist-util-position-from-estree@2.0.0: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 unist-util-position@5.0.0: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 unist-util-remove-position@5.0.0: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 unist-util-visit: 5.0.0 + unist-util-stringify-position@2.0.3: + dependencies: + '@types/unist': 2.0.10 + unist-util-stringify-position@4.0.0: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 unist-util-visit-children@3.0.0: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 unist-util-visit-parents@6.0.1: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 unist-util-is: 6.0.0 unist-util-visit@5.0.0: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - universalify@0.1.2: {} - - universalify@0.2.0: {} - universalify@2.0.1: {} - unix-crypt-td-js@1.1.4: {} - unpipe@1.0.0: {} - update-browserslist-db@1.1.0(browserslist@4.23.2): + untyped@1.4.2: + dependencies: + '@babel/core': 7.24.5 + '@babel/standalone': 7.24.5 + '@babel/types': 7.24.5 + defu: 6.1.4 + jiti: 1.21.6 + mri: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color + + update-browserslist-db@1.0.16(browserslist@4.23.0): dependencies: - browserslist: 4.23.2 + browserslist: 4.23.0 escalade: 3.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: browserslist: 4.23.3 escalade: 3.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 uri-js@4.4.1: dependencies: punycode: 2.3.1 - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - util-deprecate@1.0.2: {} utils-merge@1.0.1: {} uuid@8.3.2: {} - v8-compile-cache-lib@3.0.1: {} - - validate-npm-package-name@5.0.1: {} - - validator@13.11.0: {} - - validator@13.12.0: {} - - vary@1.1.2: {} - - verdaccio-audit@12.0.0-next-7.19: - dependencies: - '@verdaccio/config': 7.0.0-next-7.19 - '@verdaccio/core': 7.0.0-next-7.19 - express: 4.19.2 - https-proxy-agent: 5.0.1 - node-fetch: 2.6.7 - transitivePeerDependencies: - - encoding - - supports-color - - verdaccio-htpasswd@12.0.0-next-7.19: + validate-npm-package-license@3.0.4: dependencies: - '@verdaccio/core': 7.0.0-next-7.19 - '@verdaccio/file-locking': 12.0.0-next.1 - apache-md5: 1.1.8 - bcryptjs: 2.4.3 - core-js: 3.35.0 - debug: 4.3.4 - http-errors: 2.0.0 - unix-crypt-td-js: 1.1.4 - transitivePeerDependencies: - - supports-color - - verdaccio@5.32.0(typanion@3.14.0): - dependencies: - '@cypress/request': 3.0.1 - '@verdaccio/auth': 7.0.0-next-7.19 - '@verdaccio/config': 7.0.0-next-7.19 - '@verdaccio/core': 7.0.0-next-7.19 - '@verdaccio/local-storage-legacy': 11.0.2 - '@verdaccio/logger-7': 7.0.0-next-7.19 - '@verdaccio/middleware': 7.0.0-next-7.19 - '@verdaccio/search-indexer': 7.0.0-next-7.2 - '@verdaccio/signature': 7.0.0-next-7.5 - '@verdaccio/streams': 10.2.1 - '@verdaccio/tarball': 12.0.0-next-7.19 - '@verdaccio/ui-theme': 7.0.0-next-7.19 - '@verdaccio/url': 12.0.0-next-7.19 - '@verdaccio/utils': 7.0.0-next-7.19 - JSONStream: 1.3.5 - async: 3.2.5 - clipanion: 4.0.0-rc.3(typanion@3.14.0) - compression: 1.7.4 - cors: 2.8.5 - debug: 4.3.6 - envinfo: 7.13.0 - express: 4.19.2 - express-rate-limit: 5.5.1 - fast-safe-stringify: 2.1.1 - handlebars: 4.7.8 - js-yaml: 4.1.0 - jsonwebtoken: 9.0.2 - kleur: 4.1.5 - lodash: 4.17.21 - lru-cache: 7.18.3 - mime: 3.0.0 - mkdirp: 1.0.4 - mv: 2.1.1 - pkginfo: 0.4.1 - semver: 7.6.3 - validator: 13.12.0 - verdaccio-audit: 12.0.0-next-7.19 - verdaccio-htpasswd: 12.0.0-next-7.19 - transitivePeerDependencies: - - encoding - - supports-color - - typanion + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 - verror@1.10.0: - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.3.0 + vary@1.1.2: {} vfile-location@5.0.3: dependencies: - '@types/unist': 3.0.2 - vfile: 6.0.2 + '@types/unist': 3.0.3 + vfile: 6.0.3 vfile-message@4.0.2: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 - vfile@6.0.2: + vfile@6.0.3: dependencies: - '@types/unist': 3.0.2 - unist-util-stringify-position: 4.0.0 + '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@5.4.0(@types/node@22.4.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6): + vite-node@2.0.5(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6): + dependencies: + cac: 6.7.14 + debug: 4.3.6 + pathe: 1.1.2 + tinyrainbow: 1.2.0 + vite: 5.4.3(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite@5.4.3(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6): dependencies: esbuild: 0.21.5 - postcss: 8.4.41 - rollup: 4.20.0 + postcss: 8.4.44 + rollup: 4.21.2 optionalDependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 fsevents: 2.3.3 less: 4.2.0 sass: 1.77.6 terser: 5.31.6 - vite@5.4.1(@types/node@22.4.1)(less@4.2.0)(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.41 - rollup: 4.20.0 + postcss: 8.4.44 + 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 + postcss: 8.4.44 + rollup: 4.21.2 optionalDependencies: - '@types/node': 22.4.1 + '@types/node': 22.6.1 fsevents: 2.3.3 less: 4.2.0 sass: 1.77.6 terser: 5.31.6 - vitefu@0.2.5(vite@5.4.1(@types/node@22.4.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)): + optionalDependencies: + vite: 5.4.3(@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: + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.5 + '@vitest/pretty-format': 2.0.5 + '@vitest/runner': 2.0.5 + '@vitest/snapshot': 2.0.5 + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + debug: 4.3.6 + execa: 8.0.1 + magic-string: 0.30.10 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.8.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.4.3(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + vite-node: 2.0.5(@types/node@22.5.4)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + why-is-node-running: 2.3.0 optionalDependencies: - vite: 5.4.1(@types/node@22.4.1)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + '@types/node': 22.5.4 + transitivePeerDependencies: + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser - volar-service-css@0.0.61(@volar/language-service@2.4.0): + volar-service-css@0.0.61(@volar/language-service@2.4.5): dependencies: - vscode-css-languageservice: 6.3.0 - vscode-languageserver-textdocument: 1.0.11 + vscode-css-languageservice: 6.3.1 + vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0 + '@volar/language-service': 2.4.5 - volar-service-emmet@0.0.61(@volar/language-service@2.4.0): + volar-service-emmet@0.0.61(@volar/language-service@2.4.5): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.9.3 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0 + '@volar/language-service': 2.4.5 - volar-service-html@0.0.61(@volar/language-service@2.4.0): + volar-service-html@0.0.61(@volar/language-service@2.4.5): dependencies: - vscode-html-languageservice: 5.3.0 - vscode-languageserver-textdocument: 1.0.11 + vscode-html-languageservice: 5.3.1 + vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0 + '@volar/language-service': 2.4.5 - volar-service-prettier@0.0.61(@volar/language-service@2.4.0)(prettier@3.3.3): + volar-service-prettier@0.0.61(@volar/language-service@2.4.5)(prettier@3.3.3): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0 + '@volar/language-service': 2.4.5 prettier: 3.3.3 - volar-service-typescript-twoslash-queries@0.0.61(@volar/language-service@2.4.0): + volar-service-typescript-twoslash-queries@0.0.61(@volar/language-service@2.4.5): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0 + '@volar/language-service': 2.4.5 - volar-service-typescript@0.0.61(@volar/language-service@2.4.0): + volar-service-typescript@0.0.61(@volar/language-service@2.4.5): dependencies: path-browserify: 1.0.1 semver: 7.6.3 typescript-auto-import-cache: 0.3.3 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-nls: 5.2.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0 + '@volar/language-service': 2.4.5 - volar-service-yaml@0.0.61(@volar/language-service@2.4.0): + volar-service-yaml@0.0.61(@volar/language-service@2.4.5): dependencies: vscode-uri: 3.0.8 yaml-language-server: 1.15.0 optionalDependencies: - '@volar/language-service': 2.4.0 + '@volar/language-service': 2.4.5 - vscode-css-languageservice@6.3.0: + vscode-css-languageservice@6.3.1: dependencies: '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 - vscode-html-languageservice@5.3.0: + vscode-html-languageservice@5.3.1: dependencies: '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 vscode-json-languageservice@4.1.8: dependencies: jsonc-parser: 3.3.1 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-nls: 5.2.0 vscode-uri: 3.0.8 @@ -14839,7 +15508,7 @@ snapshots: vscode-jsonrpc: 8.2.0 vscode-languageserver-types: 3.17.5 - vscode-languageserver-textdocument@1.0.11: {} + vscode-languageserver-textdocument@1.0.12: {} vscode-languageserver-types@3.16.0: {} @@ -14859,6 +15528,19 @@ snapshots: vscode-uri@3.0.8: {} + vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.6)): + dependencies: + debug: 4.3.6 + eslint: 9.9.1(jiti@1.21.6) + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + watchpack@2.4.1: dependencies: glob-to-regexp: 0.4.1 @@ -14878,22 +15560,18 @@ snapshots: web-streams-polyfill@3.3.3: {} - webidl-conversions@3.0.1: {} - - webidl-conversions@4.0.2: {} - - webpack-dev-middleware@7.3.0(webpack@5.93.0(esbuild@0.23.0)): + webpack-dev-middleware@7.4.2(webpack@5.94.0(esbuild@0.23.0)): dependencies: colorette: 2.0.20 - memfs: 4.11.0 + memfs: 4.12.0 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) - webpack-dev-server@5.0.4(webpack@5.93.0(esbuild@0.23.0)): + webpack-dev-server@5.0.4(webpack@5.94.0(esbuild@0.23.0)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -14901,7 +15579,7 @@ snapshots: '@types/serve-index': 1.9.4 '@types/serve-static': 1.15.7 '@types/sockjs': 0.3.36 - '@types/ws': 8.5.11 + '@types/ws': 8.5.12 ansi-html-community: 0.0.8 bonjour-service: 1.2.1 chokidar: 3.6.0 @@ -14909,24 +15587,24 @@ snapshots: compression: 1.7.4 connect-history-api-fallback: 2.0.0 default-gateway: 6.0.3 - express: 4.19.2 + express: 4.21.0 graceful-fs: 4.2.11 html-entities: 2.5.2 http-proxy-middleware: 2.0.6(@types/express@4.17.21) ipaddr.js: 2.2.0 - launch-editor: 2.8.0 + launch-editor: 2.9.1 open: 10.1.0 p-retry: 6.2.0 - rimraf: 5.0.9 + rimraf: 5.0.10 schema-utils: 4.2.0 selfsigned: 2.4.1 serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.3.0(webpack@5.93.0(esbuild@0.23.0)) + webpack-dev-middleware: 7.4.2(webpack@5.94.0(esbuild@0.23.0)) ws: 8.18.0 optionalDependencies: - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) transitivePeerDependencies: - bufferutil - debug @@ -14941,21 +15619,20 @@ snapshots: webpack-sources@3.2.3: {} - webpack-subresource-integrity@5.1.0(webpack@5.93.0(esbuild@0.23.0)): + webpack-subresource-integrity@5.1.0(webpack@5.94.0(esbuild@0.23.0)): dependencies: typed-assert: 1.0.9 - webpack: 5.93.0(esbuild@0.23.0) + webpack: 5.94.0(esbuild@0.23.0) - webpack@5.93.0(esbuild@0.23.0): + webpack@5.94.0(esbuild@0.23.0): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.12.1 acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.3 + browserslist: 4.23.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 @@ -14969,7 +15646,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.23.0)(webpack@5.93.0(esbuild@0.23.0)) + terser-webpack-plugin: 5.3.10(esbuild@0.23.0)(webpack@5.94.0(esbuild@0.23.0)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -14985,35 +15662,20 @@ snapshots: websocket-extensions@0.1.4: {} - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - which-pm-runs@1.1.0: {} - which-pm@2.2.0: - dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 - which-pm@3.0.0: dependencies: load-yaml-file: 0.2.0 - which@1.3.1: + which@2.0.2: dependencies: isexe: 2.0.0 - which@2.0.2: + why-is-node-running@2.3.0: dependencies: - isexe: 2.0.0 + siginfo: 2.0.0 + stackback: 0.0.2 widest-line@4.0.1: dependencies: @@ -15021,7 +15683,7 @@ snapshots: wildcard@2.0.1: {} - wordwrap@1.0.0: {} + word-wrap@1.2.5: {} wrap-ansi@6.2.0: dependencies: @@ -15044,7 +15706,7 @@ snapshots: wrap-ansi@9.0.0: dependencies: ansi-styles: 6.2.1 - string-width: 7.2.0 + string-width: 7.1.0 strip-ansi: 7.1.0 wrappy@1.0.2: {} @@ -15053,16 +15715,22 @@ snapshots: xhr2@0.2.1: {} - xtend@4.0.2: {} + xml-name-validator@4.0.0: {} xxhash-wasm@1.0.2: {} y18n@5.0.8: {} - yallist@2.1.2: {} - yallist@3.1.1: {} + yallist@4.0.0: {} + + yaml-eslint-parser@1.2.3: + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.5.0 + yaml-language-server@1.15.0: dependencies: ajv: 8.17.1 @@ -15070,7 +15738,7 @@ snapshots: request-light: 0.5.8 vscode-json-languageservice: 4.1.8 vscode-languageserver: 7.0.0 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-nls: 5.2.0 vscode-uri: 3.0.8 @@ -15078,8 +15746,6 @@ snapshots: optionalDependencies: prettier: 2.8.7 - yaml@1.10.2: {} - yaml@2.2.2: {} yaml@2.5.0: {} @@ -15096,25 +15762,13 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yn@3.1.1: {} - yocto-queue@0.1.0: {} yocto-queue@1.1.1: {} yoctocolors-cjs@2.1.2: {} - yup@0.32.11: - dependencies: - '@babel/runtime': 7.25.0 - '@types/lodash': 4.17.7 - lodash: 4.17.21 - lodash-es: 4.17.21 - nanoclone: 0.2.1 - property-expr: 2.0.6 - toposort: 2.0.2 - - zod-to-json-schema@3.23.2(zod@3.23.8): + zod-to-json-schema@3.23.3(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3ff5faa..cfd3c81 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,5 @@ packages: - - "apps/*" - - "packages/*" + - playground + - docs + - packages/* + - examples/* diff --git a/project.json b/project.json deleted file mode 100644 index 81ca50b..0000000 --- a/project.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "ui", - "$schema": "node_modules/nx/schemas/project-schema.json", - "targets": { - "local-registry": { - "executor": "@nx/js:verdaccio", - "options": { - "port": 4873, - "config": ".verdaccio/config.yml", - "storage": "tmp/local-registry/storage" - } - } - } -} diff --git a/src/cli.ts b/src/cli.ts new file mode 100644 index 0000000..5640bf0 --- /dev/null +++ b/src/cli.ts @@ -0,0 +1,31 @@ +#!/usr/bin/env node +import process from 'node:process' +import { Command } from 'commander' + +import { add } from './commands/add' +import { diff } from './commands/diff' +import { init } from './commands/init' + +import { getPackageInfo } from './utils/get-package-info' + +process.on('SIGINT', () => process.exit(0)) +process.on('SIGTERM', () => process.exit(0)) + +async function main(): Promise { + const packageInfo = await getPackageInfo() + + const program = new Command() + .name('shadcn-ng') + .description('add components and dependencies to your project') + .version( + packageInfo.version || '1.0.0', + '-v, --version', + 'display the version number', + ) + + program.addCommand(init).addCommand(add).addCommand(diff) + + program.parse() +} + +main() diff --git a/src/commands/add.ts b/src/commands/add.ts new file mode 100644 index 0000000..aae8bc6 --- /dev/null +++ b/src/commands/add.ts @@ -0,0 +1,218 @@ +import { existsSync, promises as fs } from 'node:fs' +import path from 'node:path' +import process from 'node:process' + +import chalk from 'chalk' +import { Command } from 'commander' +import { execa } from 'execa' +import ora from 'ora' +import prompts from 'prompts' +import { z } from 'zod' + +import { getConfig } from '../utils/get-config' +import { getPackageManager } from '../utils/get-package-manager' +import { handleError } from '../utils/handle-error' +import { logger } from '../utils/logger' +import { + fetchTree, + getItemTargetPath, + getRegistryBaseColor, + getRegistryIndex, + resolveTree, +} from '../utils/registry' +import { transform } from '../utils/transformers' + +const addOptionsSchema = z.object({ + components: z.array(z.string()).optional(), + yes: z.boolean(), + overwrite: z.boolean(), + cwd: z.string(), + all: z.boolean(), + path: z.string().optional(), +}) + +export const add = new Command() + .name('add') + .description('add a component to your project') + .argument('[components...]', 'the components to add') + .option('-y, --yes', 'skip confirmation prompt.', true) + .option('-o, --overwrite', 'overwrite existing files.', false) + .option( + '-c, --cwd ', + 'the working directory. defaults to the current directory.', + process.cwd(), + ) + .option('-a, --all', 'add all available components', false) + .option('-p, --path ', 'the path to add the component to.') + .action(async (components, opts) => { + try { + const options = addOptionsSchema.parse({ + components, + ...opts, + }) + + const cwd = path.resolve(options.cwd) + + if (!existsSync(cwd)) { + logger.error(`The path ${cwd} does not exist. Please try again.`) + process.exit(1) + } + + const config = await getConfig(cwd) + if (!config) { + logger.warn( + `Configuration is missing. Please run ${chalk.green( + `init`, + )} to create a components.json file.`, + ) + process.exit(1) + } + + const registryIndex = await getRegistryIndex() + + let selectedComponents = options.all + ? registryIndex.map((entry: any) => entry.name) + : options.components + if (!options.components?.length && !options.all) { + const { components } = await prompts({ + type: 'multiselect', + name: 'components', + message: 'Which components would you like to add?', + hint: 'Space to select. A to toggle all. Enter to submit.', + instructions: false, + choices: registryIndex.map((entry: any) => ({ + title: entry.name, + value: entry.name, + selected: options.all + ? true + : options.components?.includes(entry.name), + })), + }) + selectedComponents = components + } + + if (!selectedComponents?.length) { + logger.warn('No components selected. Exiting.') + process.exit(0) + } + + const tree = await resolveTree(registryIndex, selectedComponents) + const payload = await fetchTree(config.style, tree) + const baseColor = await getRegistryBaseColor(config.tailwind.baseColor) + + if (!payload.length) { + logger.warn('Selected components not found. Exiting.') + process.exit(0) + } + + if (!options.yes) { + const { proceed } = await prompts({ + type: 'confirm', + name: 'proceed', + message: `Ready to install components and dependencies. Proceed?`, + initial: true, + }) + + if (!proceed) { + process.exit(0) + } + } + + const spinner = ora(`Installing components...`).start() + for (const item of payload) { + spinner.text = `Installing ${item.name}...` + const targetDir = await getItemTargetPath( + config, + item, + options.path ? path.resolve(cwd, options.path) : undefined, + ) + + if (!targetDir) { + continue + } + + if (!existsSync(targetDir)) { + await fs.mkdir(targetDir, { recursive: true }) + } + + const existingComponent = item.files.filter((file: any) => + existsSync(path.resolve(targetDir, file.name)), + ) + + if (existingComponent.length && !options.overwrite) { + if (selectedComponents.includes(item.name)) { + spinner.stop() + const { overwrite } = await prompts({ + type: 'confirm', + name: 'overwrite', + message: `Component ${item.name} already exists. Would you like to overwrite?`, + initial: false, + }) + + if (!overwrite) { + logger.info( + `Skipped ${item.name}. To overwrite, run with the ${chalk.green( + '--overwrite', + )} flag.`, + ) + continue + } + + spinner.start(`Installing ${item.name}...`) + } + else { + continue + } + } + + for (const file of item.files) { + const filePath = path.resolve(targetDir, file.name) + + // Run transformers. + const content = await transform({ + filename: file.name, + raw: file.content, + config, + baseColor, + }) + + await fs.writeFile(filePath, content) + } + + const packageManager = await getPackageManager(cwd) + + // Install dependencies. + if (item.dependencies?.length) { + await execa( + packageManager, + [ + packageManager === 'npm' ? 'install' : 'add', + ...item.dependencies, + ], + { + cwd, + }, + ) + } + + // Install devDependencies. + if (item.devDependencies?.length) { + await execa( + packageManager, + [ + packageManager === 'npm' ? 'install' : 'add', + '-D', + ...item.devDependencies, + ], + { + cwd, + }, + ) + } + } + spinner.succeed(`Done.`) + } + catch (error) { + handleError(error) + } + }) diff --git a/src/commands/diff.ts b/src/commands/diff.ts new file mode 100644 index 0000000..f7ea15d --- /dev/null +++ b/src/commands/diff.ts @@ -0,0 +1,201 @@ +import { existsSync, promises as fs } from 'node:fs' +import path from 'node:path' +import process from 'node:process' + +import chalk from 'chalk' +import { Command } from 'commander' +import { type Change, diffLines } from 'diff' +import { z } from 'zod' + +import { getConfig } from '../utils/get-config' +import { handleError } from '../utils/handle-error' +import { logger } from '../utils/logger' +import { + fetchTree, + getItemTargetPath, + getRegistryBaseColor, + getRegistryIndex, +} from '../utils/registry' +import { transform } from '../utils/transformers' +import type { Config } from '../utils/get-config' +import type { registryIndexSchema } from '../utils/registry/schema' + +const updateOptionsSchema = z.object({ + component: z.string().optional(), + yes: z.boolean(), + cwd: z.string(), + path: z.string().optional(), +}) + +export const diff = new Command() + .name('diff') + .description('check for updates against the registry') + .argument('[component]', 'the component name') + .option('-y, --yes', 'skip confirmation prompt.', false) + .option( + '-c, --cwd ', + 'the working directory. defaults to the current directory.', + process.cwd(), + ) + .action(async (name, opts) => { + try { + const options = updateOptionsSchema.parse({ + component: name, + ...opts, + }) + + const cwd = path.resolve(options.cwd) + + if (!existsSync(cwd)) { + logger.error(`The path ${cwd} does not exist. Please try again.`) + process.exit(1) + } + + const config = await getConfig(cwd) + if (!config) { + logger.warn( + `Configuration is missing. Please run ${chalk.green( + `init`, + )} to create a components.json file.`, + ) + process.exit(1) + } + + const registryIndex = await getRegistryIndex() + + if (!options.component) { + const targetDir = config.resolvedPaths.components + + // Find all components that exist in the project. + const projectComponents = registryIndex.filter((item: any) => { + for (const file of item.files) { + const filePath = path.resolve(targetDir, file) + if (existsSync(filePath)) { + return true + } + } + + return false + }) + + // Check for updates. + const componentsWithUpdates = [] + for (const component of projectComponents) { + const changes = await diffComponent(component, config) + if (changes.length) { + componentsWithUpdates.push({ + name: component.name, + changes, + }) + } + } + + if (!componentsWithUpdates.length) { + logger.info('No updates found.') + process.exit(0) + } + + logger.info('The following components have updates available:') + for (const component of componentsWithUpdates) { + logger.info(`- ${component.name}`) + for (const change of component.changes) { + logger.info(` - ${change.filePath}`) + } + } + logger.break() + logger.info( + `Run ${chalk.green(`diff `)} to see the changes.`, + ) + process.exit(0) + } + + // Show diff for a single component. + const component = registryIndex.find( + (item: any) => item.name === options.component, + ) + + if (!component) { + logger.error( + `The component ${chalk.green(options.component)} does not exist.`, + ) + process.exit(1) + } + + const changes = await diffComponent(component, config) + + if (!changes.length) { + logger.info(`No updates found for ${options.component}.`) + process.exit(0) + } + + for (const change of changes) { + logger.info(`- ${change.filePath}`) + await printDiff(change.patch) + logger.info('') + } + } + catch (error) { + handleError(error) + } + }) + +async function diffComponent( + component: z.infer[number], + config: Config, +): Promise<{ file: any, filePath: string, patch: Change[] }[]> { + const payload = await fetchTree(config.style, [component]) + const baseColor = await getRegistryBaseColor(config.tailwind.baseColor) + + const changes = [] + + for (const item of payload) { + const targetDir = await getItemTargetPath(config, item) + + if (!targetDir) { + continue + } + + for (const file of item.files) { + const filePath = path.resolve(targetDir, file.name) + + if (!existsSync(filePath)) { + continue + } + + const fileContent = await fs.readFile(filePath, 'utf8') + + const registryContent = await transform({ + filename: file.name, + raw: file.content, + config, + baseColor, + }) + + const patch = diffLines(registryContent as string, fileContent) + if (patch.length > 1) { + changes.push({ + file: file.name, + filePath, + patch, + }) + } + } + } + + return changes +} + +async function printDiff(diff: Change[]): Promise { + diff.forEach((part) => { + if (part) { + if (part.added) { + return process.stdout.write(chalk.green(part.value)) + } + if (part.removed) { + return process.stdout.write(chalk.red(part.value)) + } + + return process.stdout.write(part.value) + } + }) +} diff --git a/src/commands/init.ts b/src/commands/init.ts new file mode 100644 index 0000000..d4b1ba1 --- /dev/null +++ b/src/commands/init.ts @@ -0,0 +1,379 @@ +import { existsSync, promises as fs } from 'node:fs' +import path from 'node:path' +import process from 'node:process' + +import chalk from 'chalk' +import { Command } from 'commander' +import { execa } from 'execa' +import template from 'lodash.template' +import ora from 'ora' +import prompts from 'prompts' +import { z } from 'zod' + +import { + type Config, + DEFAULT_COMPONENTS, + DEFAULT_TAILWIND_CONFIG, + DEFAULT_TAILWIND_CSS, + DEFAULT_UTILS, + getConfig, + rawConfigSchema, + resolveConfigPaths, +} from '../utils/get-config' +import { getPackageManager } from '../utils/get-package-manager' +import { getProjectConfig, preFlight } from '../utils/get-project-info' +import { handleError } from '../utils/handle-error' +import { logger } from '../utils/logger' +import { + getRegistryBaseColor, + getRegistryBaseColors, + getRegistryStyles, +} from '../utils/registry' +import * as templates from '../utils/templates' + +import { applyPrefixesCss } from '../utils/transformers/transform-tw-prefix' + +const PROJECT_DEPENDENCIES = [ + 'tailwindcss-animate', + 'class-variance-authority', + 'clsx', + 'tailwind-merge', +] + +const initOptionsSchema = z.object({ + cwd: z.string(), + yes: z.boolean(), + defaults: z.boolean(), +}) + +export const init = new Command() + .name('init') + .description('initialize your project and install dependencies') + .option('-y, --yes', 'skip confirmation prompt.', false) + .option('-d, --defaults,', 'use default configuration.', false) + .option( + '-c, --cwd ', + 'the working directory. defaults to the current directory.', + process.cwd(), + ) + .action(async (opts) => { + try { + const options = initOptionsSchema.parse(opts) + const cwd = path.resolve(options.cwd) + + // Ensure target directory exists. + if (!existsSync(cwd)) { + logger.error(`The path ${cwd} does not exist. Please try again.`) + process.exit(1) + } + + preFlight(cwd) + + const projectConfig = await getProjectConfig(cwd) + if (projectConfig) { + const config = await promptForMinimalConfig( + cwd, + projectConfig, + opts.defaults, + ) + await runInit(cwd, config) + } + else { + // Read config. + const existingConfig = await getConfig(cwd) + const config = await promptForConfig(cwd, existingConfig, options.yes) + await runInit(cwd, config) + } + + logger.info('') + logger.info( + `${chalk.green( + 'Success!', + )} Project initialization completed. You may now add components.`, + ) + logger.info('') + } + catch (error) { + handleError(error) + } + }) + +export async function promptForConfig( + cwd: string, + defaultConfig: Config | null = null, + skip = false, +): Promise<{ style: string, tailwind: { config: string, css: string, baseColor: string, cssVariables: boolean, prefix?: string | undefined }, aliases: { components: string, utils: string, ui?: string | undefined }, resolvedPaths: { components: string, utils: string, ui: string, tailwindConfig: string, tailwindCss: string }, $schema?: string | undefined }> { + const highlight = (text: string): string => chalk.cyan(text) + + const styles = await getRegistryStyles() + const baseColors = await getRegistryBaseColors() + + const options = await prompts([ + { + type: 'select', + name: 'style', + message: `Which ${highlight('style')} would you like to use?`, + choices: styles.map((style: any) => ({ + title: style.label, + value: style.name, + })), + }, + { + type: 'select', + name: 'tailwindBaseColor', + message: `Which color would you like to use as ${highlight( + 'base color', + )}?`, + choices: baseColors.map(color => ({ + title: color.label, + value: color.name, + })), + }, + { + type: 'text', + name: 'tailwindCss', + message: `Where is your ${highlight('global CSS')} file?`, + initial: defaultConfig?.tailwind.css ?? DEFAULT_TAILWIND_CSS, + }, + { + type: 'toggle', + name: 'tailwindCssVariables', + message: `Would you like to use ${highlight( + 'CSS variables', + )} for colors?`, + initial: defaultConfig?.tailwind.cssVariables ?? true, + active: 'yes', + inactive: 'no', + }, + { + type: 'text', + name: 'tailwindPrefix', + message: `Are you using a custom ${highlight( + 'tailwind prefix eg. tw-', + )}? (Leave blank if not)`, + initial: '', + }, + { + type: 'text', + name: 'tailwindConfig', + message: `Where is your ${highlight('tailwind.config.js')} located?`, + initial: defaultConfig?.tailwind.config ?? DEFAULT_TAILWIND_CONFIG, + }, + { + type: 'text', + name: 'components', + message: `Configure the import alias for ${highlight('components')}:`, + initial: defaultConfig?.aliases.components ?? DEFAULT_COMPONENTS, + }, + { + type: 'text', + name: 'utils', + message: `Configure the import alias for ${highlight('utils')}:`, + initial: defaultConfig?.aliases.utils ?? DEFAULT_UTILS, + }, + ]) + + const config = rawConfigSchema.parse({ + $schema: 'https://ui.adrianub.dev/schema.json', + style: options.style, + tailwind: { + config: options.tailwindConfig, + css: options.tailwindCss, + baseColor: options.tailwindBaseColor, + cssVariables: options.tailwindCssVariables, + prefix: options.tailwindPrefix, + }, + aliases: { + utils: options.utils, + components: options.components, + }, + }) + + if (!skip) { + const { proceed } = await prompts({ + type: 'confirm', + name: 'proceed', + message: `Write configuration to ${highlight( + 'components.json', + )}. Proceed?`, + initial: true, + }) + + if (!proceed) { + process.exit(0) + } + } + + // Write to file. + logger.info('') + const spinner = ora(`Writing components.json...`).start() + const targetPath = path.resolve(cwd, 'components.json') + await fs.writeFile(targetPath, JSON.stringify(config, null, 2), 'utf8') + spinner.succeed() + + return await resolveConfigPaths(cwd, config) +} + +export async function promptForMinimalConfig( + cwd: string, + defaultConfig: Config, + defaults = false, +): Promise<{ style: string, tailwind: { config: string, css: string, baseColor: string, cssVariables: boolean, prefix?: string | undefined }, aliases: { components: string, utils: string, ui?: string | undefined }, resolvedPaths: { components: string, utils: string, ui: string, tailwindConfig: string, tailwindCss: string }, $schema?: string | undefined }> { + const highlight = (text: string): string => chalk.cyan(text) + let style = defaultConfig.style + let baseColor = defaultConfig.tailwind.baseColor + let cssVariables = defaultConfig.tailwind.cssVariables + + if (!defaults) { + const styles = await getRegistryStyles() + const baseColors = await getRegistryBaseColors() + + const options = await prompts([ + { + type: 'select', + name: 'style', + message: `Which ${highlight('style')} would you like to use?`, + choices: styles.map((style: any) => ({ + title: style.label, + value: style.name, + })), + }, + { + type: 'select', + name: 'tailwindBaseColor', + message: `Which color would you like to use as ${highlight( + 'base color', + )}?`, + choices: baseColors.map(color => ({ + title: color.label, + value: color.name, + })), + }, + { + type: 'toggle', + name: 'tailwindCssVariables', + message: `Would you like to use ${highlight( + 'CSS variables', + )} for colors?`, + initial: defaultConfig?.tailwind.cssVariables, + active: 'yes', + inactive: 'no', + }, + ]) + + style = options.style + baseColor = options.tailwindBaseColor + cssVariables = options.tailwindCssVariables + } + + const config = rawConfigSchema.parse({ + $schema: defaultConfig?.$schema, + style, + tailwind: { + ...defaultConfig?.tailwind, + baseColor, + cssVariables, + }, + aliases: defaultConfig?.aliases, + }) + + // Write to file. + logger.info('') + const spinner = ora(`Writing components.json...`).start() + const targetPath = path.resolve(cwd, 'components.json') + await fs.writeFile(targetPath, JSON.stringify(config, null, 2), 'utf8') + spinner.succeed() + + return await resolveConfigPaths(cwd, config) +} + +export async function runInit(cwd: string, config: Config): Promise { + const spinner = ora(`Initializing project...`)?.start() + + // Ensure all resolved paths directories exist. + for (const [key, resolvedPath] of Object.entries(config.resolvedPaths)) { + // Determine if the path is a file or directory. + // TODO: is there a better way to do this? + let dirname = path.extname(resolvedPath) + ? path.dirname(resolvedPath) + : resolvedPath + + // If the utils alias is set to something like "@/lib/utils", + // assume this is a file and remove the "utils" file name. + // TODO: In future releases we should add support for individual utils. + if (key === 'utils' && resolvedPath.endsWith('/utils')) { + // Remove /utils at the end. + dirname = dirname.replace(/\/utils$/, '') + } + + if (!existsSync(dirname)) { + await fs.mkdir(dirname, { recursive: true }) + } + } + + // const extension = "ts"; + + const tailwindConfigExtension = path.extname( + config.resolvedPaths.tailwindConfig, + ) + + let tailwindConfigTemplate: string + if (tailwindConfigExtension === '.ts') { + tailwindConfigTemplate = config.tailwind.cssVariables + ? templates.TAILWIND_CONFIG_TS_WITH_VARIABLES + : templates.TAILWIND_CONFIG_TS + } + else { + tailwindConfigTemplate = config.tailwind.cssVariables + ? templates.TAILWIND_CONFIG_WITH_VARIABLES + : templates.TAILWIND_CONFIG + } + + // Write tailwind config. + await fs.writeFile( + config.resolvedPaths.tailwindConfig, + template(tailwindConfigTemplate)({ + prefix: config.tailwind.prefix, + }), + 'utf8', + ) + + // Write css file. + const baseColor = await getRegistryBaseColor(config.tailwind.baseColor) + if (baseColor) { + await fs.writeFile( + config.resolvedPaths.tailwindCss, + config.tailwind.cssVariables + ? config.tailwind.prefix + ? applyPrefixesCss(baseColor.cssVarsTemplate, config.tailwind.prefix) + : baseColor.cssVarsTemplate + : baseColor.inlineColorsTemplate, + 'utf8', + ) + } + + // Write cn file. + await fs.writeFile( + `${config.resolvedPaths.utils}.ts`, + templates.UTILS, + 'utf8', + ) + + spinner?.succeed() + + // Install dependencies. + const dependenciesSpinner = ora(`Installing dependencies...`)?.start() + const packageManager = await getPackageManager(cwd) + + // TODO: add support for other icon libraries. + const deps = [...PROJECT_DEPENDENCIES] + + await execa( + packageManager, + [packageManager === 'npm' ? 'install' : 'add', ...deps], + { + cwd, + }, + ) + dependenciesSpinner?.succeed() +} diff --git a/src/utils/get-config.ts b/src/utils/get-config.ts new file mode 100644 index 0000000..f6bd1a2 --- /dev/null +++ b/src/utils/get-config.ts @@ -0,0 +1,102 @@ +import path from 'node:path' + +import { cosmiconfig } from 'cosmiconfig' +import { loadConfig } from 'tsconfig-paths' +import { z } from 'zod' + +import { resolveImport } from './resolve-import' + +export const DEFAULT_STYLE = 'default' +export const DEFAULT_COMPONENTS = '@/components' +export const DEFAULT_UTILS = '@/lib/utils' +export const DEFAULT_TAILWIND_CSS = 'src/styles.css' +export const DEFAULT_TAILWIND_CONFIG = 'tailwind.config.js' +export const DEFAULT_TAILWIND_BASE_COLOR = 'slate' + +// TODO: Figure out if we want to support all cosmiconfig formats. +// A simple components.json file would be nice. +const explorer = cosmiconfig('components', { + searchPlaces: ['components.json'], +}) + +export const rawConfigSchema = z + .object({ + $schema: z.string().optional(), + style: z.string(), + tailwind: z.object({ + config: z.string(), + css: z.string(), + baseColor: z.string(), + cssVariables: z.boolean().default(true), + prefix: z.string().default('').optional(), + }), + aliases: z.object({ + components: z.string(), + utils: z.string(), + ui: z.string().optional(), + }), + }) + .strict() + +export type RawConfig = z.infer + +export const configSchema = rawConfigSchema.extend({ + resolvedPaths: z.object({ + tailwindConfig: z.string(), + tailwindCss: z.string(), + utils: z.string(), + components: z.string(), + ui: z.string(), + }), +}) + +export type Config = z.infer + +export async function getConfig(cwd: string): Promise<{ style: string, tailwind: { config: string, css: string, baseColor: string, cssVariables: boolean, prefix?: string | undefined }, aliases: { components: string, utils: string, ui?: string | undefined }, resolvedPaths: { components: string, utils: string, ui: string, tailwindConfig: string, tailwindCss: string }, $schema?: string | undefined } | null> { + const config = await getRawConfig(cwd) + + if (!config) { + return null + } + + return await resolveConfigPaths(cwd, config) +} + +export async function resolveConfigPaths(cwd: string, config: RawConfig): Promise<{ style: string, tailwind: { config: string, css: string, baseColor: string, cssVariables: boolean, prefix?: string | undefined }, aliases: { components: string, utils: string, ui?: string | undefined }, resolvedPaths: { components: string, utils: string, ui: string, tailwindConfig: string, tailwindCss: string }, $schema?: string | undefined }> { + // Read tsconfig.json. + const tsConfig = await loadConfig(cwd) + + if (tsConfig.resultType === 'failed') { + throw new Error( + `Failed to load tsconfig.json. ${tsConfig.message ?? ''}`.trim(), + ) + } + + return configSchema.parse({ + ...config, + resolvedPaths: { + tailwindConfig: path.resolve(cwd, config.tailwind.config), + tailwindCss: path.resolve(cwd, config.tailwind.css), + utils: await resolveImport(config.aliases.utils, tsConfig), + components: await resolveImport(config.aliases.components, tsConfig), + ui: config.aliases.ui + ? await resolveImport(config.aliases.ui, tsConfig) + : await resolveImport(config.aliases.components, tsConfig), + }, + }) +} + +export async function getRawConfig(cwd: string): Promise { + try { + const configResult = await explorer.search(cwd) + + if (!configResult) { + return null + } + + return rawConfigSchema.parse(configResult.config) + } + catch { + throw new Error(`Invalid configuration found in ${cwd}/components.json.`) + } +} diff --git a/src/utils/get-package-info.ts b/src/utils/get-package-info.ts new file mode 100644 index 0000000..f77eb49 --- /dev/null +++ b/src/utils/get-package-info.ts @@ -0,0 +1,9 @@ +import path from 'node:path' +import fs from 'fs-extra' +import type { PackageJson } from 'type-fest' + +export function getPackageInfo(): PackageJson { + const packageJsonPath = path.join('package.json') + + return fs.readJSONSync(packageJsonPath) as PackageJson +} diff --git a/src/utils/get-package-manager.ts b/src/utils/get-package-manager.ts new file mode 100644 index 0000000..1361bb5 --- /dev/null +++ b/src/utils/get-package-manager.ts @@ -0,0 +1,16 @@ +import { detect } from '@antfu/ni' + +export async function getPackageManager( + targetDir: string, +): Promise<'yarn' | 'pnpm' | 'bun' | 'npm'> { + const packageManager = await detect({ programmatic: true, cwd: targetDir }) + + if (packageManager === 'yarn@berry') + return 'yarn' + if (packageManager === 'pnpm@6') + return 'pnpm' + if (packageManager === 'bun') + return 'bun' + + return packageManager ?? 'npm' +} diff --git a/src/utils/get-project-info.ts b/src/utils/get-project-info.ts new file mode 100644 index 0000000..06b5e08 --- /dev/null +++ b/src/utils/get-project-info.ts @@ -0,0 +1,112 @@ +import path from 'node:path' + +import fg from 'fast-glob' +import fs, { pathExists } from 'fs-extra' +import { loadConfig } from 'tsconfig-paths' + +import { + getConfig, + resolveConfigPaths, +} from './get-config' +import type { + Config, + RawConfig, +} from './get-config' + +const PROJECT_SHARED_IGNORE = ['**/node_modules/**', 'dist', 'coverage'] + +export async function getProjectConfig(cwd: string): Promise { + // Check for existing component config. + const existingConfig = await getConfig(cwd) + if (existingConfig) { + return existingConfig + } + + const tailwindCssFile = await getTailwindCssFile(cwd) + const tsConfigAliasPrefix = await getTsConfigAliasPrefix(cwd) + + if (!tailwindCssFile || !tsConfigAliasPrefix) { + return null + } + + const isTsx = await isTypeScriptProject(cwd) + + const config: RawConfig = { + $schema: 'https://ui.adrianub.dev/schema.json', + style: 'new-york', + tailwind: { + config: isTsx ? 'tailwind.config.ts' : 'tailwind.config.js', + baseColor: 'zinc', + css: tailwindCssFile, + cssVariables: true, + prefix: '', + }, + aliases: { + utils: `${tsConfigAliasPrefix}/lib/utils`, + components: `${tsConfigAliasPrefix}/components`, + }, + } + + return await resolveConfigPaths(cwd, config) +} + +export async function getTailwindCssFile(cwd: string): Promise { + const files = await fg.glob('**/*.css', { + cwd, + deep: 3, + ignore: PROJECT_SHARED_IGNORE, + }) + + if (!files.length) { + return null + } + + for (const file of files) { + const contents = await fs.readFile(path.resolve(cwd, file), 'utf8') + // Assume that if the file contains `@tailwind base` it's the main css file. + if (contents.includes('@tailwind base')) { + return file + } + } + + return null +} + +export async function getTsConfigAliasPrefix(cwd: string): Promise { + const tsConfig = await loadConfig(cwd) + + if (tsConfig?.resultType === 'failed' || !tsConfig?.paths) { + return null + } + + // This assume that the first alias is the prefix. + for (const [alias, paths] of Object.entries(tsConfig.paths)) { + if (paths.includes('./*') || paths.includes('./src/*')) { + return alias.at(0) + } + } + + return null +} + +export async function isTypeScriptProject(cwd: string): Promise { + // Check if cwd has a tsconfig.json file. + return pathExists(path.resolve(cwd, 'tsconfig.json')) +} + +export async function preFlight(cwd: string): Promise { + // We need Tailwind CSS to be configured. + const tailwindConfig = await fg.glob('tailwind.config.*', { + cwd, + deep: 3, + ignore: PROJECT_SHARED_IGNORE, + }) + + if (!tailwindConfig.length) { + throw new Error( + 'Tailwind CSS is not installed. Visit https://tailwindcss.com/docs/installation to get started.', + ) + } + + return true +} diff --git a/src/utils/handle-error.ts b/src/utils/handle-error.ts new file mode 100644 index 0000000..68f2f2c --- /dev/null +++ b/src/utils/handle-error.ts @@ -0,0 +1,18 @@ +import process from 'node:process' + +import { logger } from './logger' + +export function handleError(error: unknown): void { + if (typeof error === 'string') { + logger.error(error) + process.exit(1) + } + + if (error instanceof Error) { + logger.error(error.message) + process.exit(1) + } + + logger.error('Something went wrong. Please try again.') + process.exit(1) +} diff --git a/src/utils/logger.ts b/src/utils/logger.ts new file mode 100644 index 0000000..5a6b924 --- /dev/null +++ b/src/utils/logger.ts @@ -0,0 +1,20 @@ +/* eslint-disable no-console */ +import chalk from 'chalk' + +export const logger = { + error(...args: unknown[]) { + console.log(chalk.red(...args)) + }, + warn(...args: unknown[]) { + console.log(chalk.yellow(...args)) + }, + info(...args: unknown[]) { + console.log(chalk.cyan(...args)) + }, + success(...args: unknown[]) { + console.log(chalk.green(...args)) + }, + break() { + console.log('') + }, +} diff --git a/src/utils/registry/index.ts b/src/utils/registry/index.ts new file mode 100644 index 0000000..0117f13 --- /dev/null +++ b/src/utils/registry/index.ts @@ -0,0 +1,165 @@ +import path from 'node:path' +import process from 'node:process' + +import { HttpsProxyAgent } from 'https-proxy-agent' +import fetch from 'node-fetch' +import type { z } from 'zod' + +import { + registryBaseColorSchema, + registryIndexSchema, + registryWithContentSchema, + stylesSchema, +} from '../registry/schema' +import type { Config } from '../get-config' +import type { + registryItemWithContentSchema, +} from '../registry/schema' + +const baseUrl + = process.env.COMPONENTS_REGISTRY_URL ?? 'https://ui.adrianub.dev' +const agent = process.env.https_proxy + ? new HttpsProxyAgent(process.env.https_proxy) + : undefined + +export async function getRegistryIndex(): Promise<{ name: string, type: 'components:ui' | 'components:component' | 'components:example', files: string[], dependencies?: string[] | undefined, devDependencies?: string[] | undefined, registryDependencies?: string[] | undefined }[]> { + try { + const [result] = await fetchRegistry(['index.json']) + + return registryIndexSchema.parse(result) + } + catch { + throw new Error(`Failed to fetch components from registry.`) + } +} + +export async function getRegistryStyles(): Promise<{ name: string, label: string }[]> { + try { + const [result] = await fetchRegistry(['styles/index.json']) + + return stylesSchema.parse(result) + } + catch { + throw new Error(`Failed to fetch styles from registry.`) + } +} + +export async function getRegistryBaseColors(): Promise<{ name: string, label: string }[]> { + return [ + { + name: 'slate', + label: 'Slate', + }, + { + name: 'gray', + label: 'Gray', + }, + { + name: 'zinc', + label: 'Zinc', + }, + { + name: 'neutral', + label: 'Neutral', + }, + { + name: 'stone', + label: 'Stone', + }, + ] +} + +export async function getRegistryBaseColor(baseColor: string): Promise<{ inlineColors: { light: Record, dark: Record }, cssVars: { light: Record, dark: Record }, inlineColorsTemplate: string, cssVarsTemplate: string }> { + try { + const [result] = await fetchRegistry([`colors/${baseColor}.json`]) + + return registryBaseColorSchema.parse(result) + } + catch { + throw new Error(`Failed to fetch base color from registry.`) + } +} + +export async function resolveTree( + index: z.infer, + names: string[], +): Promise<{ type: 'components:ui' | 'components:component' | 'components:example', name: string, files: string[], dependencies?: string[] | undefined, devDependencies?: string[] | undefined, registryDependencies?: string[] | undefined }[]> { + const tree: z.infer = [] + + for (const name of names) { + const entry = index.find(entry => entry.name === name) + + if (!entry) { + continue + } + + tree.push(entry) + + if (entry.registryDependencies) { + const dependencies = await resolveTree(index, entry.registryDependencies) + tree.push(...dependencies) + } + } + + return tree.filter( + (component, index, self) => + self.findIndex(c => c.name === component.name) === index, + ) +} + +export async function fetchTree( + style: string, + tree: z.infer, +): Promise<{ type: 'components:ui' | 'components:component' | 'components:example', name: string, files: { name: string, content: string }[], dependencies?: string[] | undefined, devDependencies?: string[] | undefined, registryDependencies?: string[] | undefined }[]> { + try { + const paths = tree.map(item => `styles/${style}/${item.name}.json`) + const result = await fetchRegistry(paths) + + return registryWithContentSchema.parse(result) + } + catch { + throw new Error(`Failed to fetch tree from registry.`) + } +} + +export async function getItemTargetPath( + config: Config, + item: Pick, 'type'>, + override?: string, +): Promise { + if (override) { + return override + } + + if (item.type === 'components:ui' && config.aliases.ui) { + return config.resolvedPaths.ui + } + + const [parent, type] = item.type.split(':') + if (!(parent in config.resolvedPaths)) { + return null + } + + return path.join( + config.resolvedPaths[parent as keyof typeof config.resolvedPaths], + type, + ) +} + +async function fetchRegistry(paths: string[]): Promise { + try { + const results = await Promise.all( + paths.map(async (path) => { + const response = await fetch(`${baseUrl}/registry/${path}`, { + agent, + }) + return await response.json() + }), + ) + + return results + } + catch { + throw new Error(`Failed to fetch registry from ${baseUrl}.`) + } +} diff --git a/packages/cli/src/utils/registry/schema.ts b/src/utils/registry/schema.ts similarity index 89% rename from packages/cli/src/utils/registry/schema.ts rename to src/utils/registry/schema.ts index b227590..14f0383 100644 --- a/packages/cli/src/utils/registry/schema.ts +++ b/src/utils/registry/schema.ts @@ -1,4 +1,4 @@ -import { z } from "zod" +import { z } from 'zod' // TODO: Extract this to a shared package. export const registryItemSchema = z.object({ @@ -7,7 +7,7 @@ export const registryItemSchema = z.object({ devDependencies: z.array(z.string()).optional(), registryDependencies: z.array(z.string()).optional(), files: z.array(z.string()), - type: z.enum(["components:ui", "components:component", "components:example"]), + type: z.enum(['components:ui', 'components:component', 'components:example']), }) export const registryIndexSchema = z.array(registryItemSchema) @@ -17,7 +17,7 @@ export const registryItemWithContentSchema = registryItemSchema.extend({ z.object({ name: z.string(), content: z.string(), - }) + }), ), }) @@ -27,7 +27,7 @@ export const stylesSchema = z.array( z.object({ name: z.string(), label: z.string(), - }) + }), ) export const registryBaseColorSchema = z.object({ diff --git a/packages/cli/src/utils/resolve-import.ts b/src/utils/resolve-import.ts similarity index 61% rename from packages/cli/src/utils/resolve-import.ts rename to src/utils/resolve-import.ts index d108384..8ad4381 100644 --- a/packages/cli/src/utils/resolve-import.ts +++ b/src/utils/resolve-import.ts @@ -1,16 +1,16 @@ import { - createMatchPath, type ConfigLoaderSuccessResult, -} from "tsconfig-paths"; + createMatchPath, +} from 'tsconfig-paths' export async function resolveImport( importPath: string, - config: Pick -) { + config: Pick, +): Promise { return createMatchPath(config.absoluteBaseUrl, config.paths)( importPath, undefined, () => true, - [".ts"] - ); + ['.ts'], + ) } diff --git a/packages/cli/src/utils/templates.ts b/src/utils/templates.ts similarity index 99% rename from packages/cli/src/utils/templates.ts rename to src/utils/templates.ts index cfce3d3..1de1587 100644 --- a/packages/cli/src/utils/templates.ts +++ b/src/utils/templates.ts @@ -4,7 +4,7 @@ import { twMerge } from "tailwind-merge" export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)) } -`; +` export const TAILWIND_CONFIG = `/** @type {import('tailwindcss').Config} */ module.exports = { @@ -39,7 +39,7 @@ module.exports = { }, }, plugins: [require("tailwindcss-animate")], -}`; +}` export const TAILWIND_CONFIG_WITH_VARIABLES = `/** @type {import('tailwindcss').Config} */ module.exports = { @@ -114,7 +114,7 @@ module.exports = { }, }, plugins: [require("tailwindcss-animate")], -}`; +}` export const TAILWIND_CONFIG_TS = `import type { Config } from "tailwindcss" @@ -152,7 +152,7 @@ const config = { plugins: [require("tailwindcss-animate")], } satisfies Config -export default config`; +export default config` export const TAILWIND_CONFIG_TS_WITH_VARIABLES = `import type { Config } from "tailwindcss" @@ -230,4 +230,4 @@ const config = { plugins: [require("tailwindcss-animate")], } satisfies Config -export default config`; +export default config` diff --git a/src/utils/transformers/index.ts b/src/utils/transformers/index.ts new file mode 100644 index 0000000..c29a503 --- /dev/null +++ b/src/utils/transformers/index.ts @@ -0,0 +1,53 @@ +import { promises as fs } from 'node:fs' +import { tmpdir } from 'node:os' +import path from 'node:path' + +import { Project, ScriptKind, type SourceFile } from 'ts-morph' +import type { z } from 'zod' + +import { transformCssVars } from '../transformers/transform-css-vars' +import { transformImport } from '../transformers/transform-import' +import { transformTwPrefixes } from './transform-tw-prefix' +import type { Config } from '../get-config' + +import type { registryBaseColorSchema } from '../registry/schema' + +export interface TransformOpts { + filename: string + raw: string + config: Config + baseColor?: z.infer +} + +export type Transformer = ( + opts: TransformOpts & { + sourceFile: SourceFile + } +) => Promise + +const transformers: Transformer[] = [ + transformImport, + transformCssVars, + transformTwPrefixes, +] + +const project = new Project({ + compilerOptions: {}, +}) + +async function createTempSourceFile(filename: string): Promise { + const dir = await fs.mkdtemp(path.join(tmpdir(), 'shadcn-')) + return path.join(dir, filename) +} + +export async function transform(opts: TransformOpts): Promise { + const tempFile = await createTempSourceFile(opts.filename) + const sourceFile = project.createSourceFile(tempFile, opts.raw, { + scriptKind: ScriptKind.TSX, + }) + + for (const transformer of transformers) { + transformer({ sourceFile, ...opts }) + } + return sourceFile.getFullText() +} diff --git a/src/utils/transformers/transform-css-vars.ts b/src/utils/transformers/transform-css-vars.ts new file mode 100644 index 0000000..6257080 --- /dev/null +++ b/src/utils/transformers/transform-css-vars.ts @@ -0,0 +1,108 @@ +import { SyntaxKind } from 'ts-morph' +import type { z } from 'zod' + +import type { registryBaseColorSchema } from '../registry/schema' +import type { Transformer } from '../transformers' + +export const transformCssVars: Transformer = async ({ + sourceFile, + config, + baseColor, +}) => { + // No transform if using css variables. + if (config.tailwind?.cssVariables || !baseColor?.inlineColors) { + return sourceFile + } + + sourceFile.getDescendantsOfKind(SyntaxKind.StringLiteral).forEach((node) => { + const value = node.getText() + if (value) { + const valueWithColorMapping = applyColorMapping( + value.replace(/"/g, ''), + baseColor.inlineColors, + ) + node.replaceWithText(`"${valueWithColorMapping.trim()}"`) + } + }) + + return sourceFile +} + +// eg. hover:bg-primary-100 -> [hover, bg-primary, 100] +export function splitClassName(className: string): (string | null)[] { + if (!className.includes('/') && !className.includes(':')) { + return [null, className, null] + } + + const parts: (string | null)[] = [] + // First we split to find the alpha. + const [rest, alpha] = className.split('/') + + // Check if rest has a colon. + if (!rest.includes(':')) { + return [null, rest, alpha] + } + + // Next we split the rest by the colon. + const split = rest.split(':') + + // We take the last item from the split as the name. + const name = split.pop() + + // We glue back the rest of the split. + const variant = split.join(':') + + // Finally we push the variant, name and alpha. + parts.push(variant ?? null, name ?? null, alpha ?? null) + + return parts +} + +const PREFIXES = ['bg-', 'text-', 'border-', 'ring-offset-', 'ring-'] + +export function applyColorMapping( + input: string, + mapping: z.infer['inlineColors'], +): string { + // Handle border classes. + if (input.includes(' border ')) { + input = input.replace(' border ', ' border border-border ') + } + + // Build color mappings. + const classNames = input.split(' ') + const lightMode = new Set() + const darkMode = new Set() + for (const className of classNames) { + const [variant, value, modifier] = splitClassName(className) + const prefix = PREFIXES.find(prefix => value?.startsWith(prefix)) + if (!prefix) { + if (!lightMode.has(className)) { + lightMode.add(className) + } + continue + } + + const needle = value?.replace(prefix, '') + if (needle && needle in mapping.light) { + lightMode.add( + [variant, `${prefix}${mapping.light[needle]}`] + .filter(Boolean) + .join(':') + (modifier ? `/${modifier}` : ''), + ) + + darkMode.add( + ['dark', variant, `${prefix}${mapping.dark[needle]}`] + .filter(Boolean) + .join(':') + (modifier ? `/${modifier}` : ''), + ) + continue + } + + if (!lightMode.has(className)) { + lightMode.add(className) + } + } + + return [...Array.from(lightMode), ...Array.from(darkMode)].join(' ').trim() +} diff --git a/packages/cli/src/utils/transformers/transform-import.ts b/src/utils/transformers/transform-import.ts similarity index 59% rename from packages/cli/src/utils/transformers/transform-import.ts rename to src/utils/transformers/transform-import.ts index 84cee60..1aeb82d 100644 --- a/packages/cli/src/utils/transformers/transform-import.ts +++ b/src/utils/transformers/transform-import.ts @@ -1,38 +1,39 @@ -import { Transformer } from "@/src/utils/transformers"; +import type { Transformer } from '../transformers' export const transformImport: Transformer = async ({ sourceFile, config }) => { - const importDeclarations = sourceFile.getImportDeclarations(); + const importDeclarations = sourceFile.getImportDeclarations() for (const importDeclaration of importDeclarations) { - const moduleSpecifier = importDeclaration.getModuleSpecifierValue(); + const moduleSpecifier = importDeclaration.getModuleSpecifierValue() // Replace @/registry/[style] with the components alias. - if (moduleSpecifier.startsWith("@/registry/")) { + if (moduleSpecifier.startsWith('@/registry/')) { if (config.aliases.ui) { importDeclaration.setModuleSpecifier( - moduleSpecifier.replace(/^@\/registry\/[^/]+\/ui/, config.aliases.ui) - ); - } else { + moduleSpecifier.replace(/^@\/registry\/[^/]+\/ui/, config.aliases.ui), + ) + } + else { importDeclaration.setModuleSpecifier( moduleSpecifier.replace( /^@\/registry\/[^/]+/, - config.aliases.components - ) - ); + config.aliases.components, + ), + ) } } // Replace `import { cn } from "@/lib/utils"` - if (moduleSpecifier == "@/lib/utils") { - const namedImports = importDeclaration.getNamedImports(); - const cnImport = namedImports.find((i) => i.getName() === "cn"); + if (moduleSpecifier === '@/lib/utils') { + const namedImports = importDeclaration.getNamedImports() + const cnImport = namedImports.find(i => i.getName() === 'cn') if (cnImport) { importDeclaration.setModuleSpecifier( - moduleSpecifier.replace(/^@\/lib\/utils/, config.aliases.utils) - ); + moduleSpecifier.replace(/^@\/lib\/utils/, config.aliases.utils), + ) } } } - return sourceFile; -}; + return sourceFile +} diff --git a/packages/cli/src/utils/transformers/transform-tw-prefix.ts b/src/utils/transformers/transform-tw-prefix.ts similarity index 53% rename from packages/cli/src/utils/transformers/transform-tw-prefix.ts rename to src/utils/transformers/transform-tw-prefix.ts index 9854056..4121579 100644 --- a/packages/cli/src/utils/transformers/transform-tw-prefix.ts +++ b/src/utils/transformers/transform-tw-prefix.ts @@ -1,31 +1,31 @@ -import { Transformer } from "@/src/utils/transformers"; -import { SyntaxKind } from "ts-morph"; +import { SyntaxKind } from 'ts-morph' -import { splitClassName } from "./transform-css-vars"; +import { splitClassName } from './transform-css-vars' +import type { Transformer } from '../transformers' export const transformTwPrefixes: Transformer = async ({ sourceFile, config, }) => { if (!config.tailwind?.prefix) { - return sourceFile; + return sourceFile } // Find the cva function calls. sourceFile .getDescendantsOfKind(SyntaxKind.CallExpression) - .filter((node) => node.getExpression().getText() === "cva") + .filter(node => node.getExpression().getText() === 'cva') .forEach((node) => { // cva(base, ...) if (node.getArguments()[0]?.isKind(SyntaxKind.StringLiteral)) { - const defaultClassNames = node.getArguments()[0]; + const defaultClassNames = node.getArguments()[0] if (defaultClassNames) { defaultClassNames.replaceWithText( `"${applyPrefix( - defaultClassNames.getText()?.replace(/"/g, ""), - config.tailwind.prefix - )}"` - ); + defaultClassNames.getText()?.replace(/"/g, ''), + config.tailwind.prefix, + )}"`, + ) } } @@ -34,41 +34,41 @@ export const transformTwPrefixes: Transformer = async ({ node .getArguments()[1] ?.getDescendantsOfKind(SyntaxKind.PropertyAssignment) - .find((node) => node.getName() === "variants") + .find(node => node.getName() === 'variants') ?.getDescendantsOfKind(SyntaxKind.PropertyAssignment) .forEach((node) => { node .getDescendantsOfKind(SyntaxKind.PropertyAssignment) .forEach((node) => { const classNames = node.getInitializerIfKind( - SyntaxKind.StringLiteral - ); + SyntaxKind.StringLiteral, + ) if (classNames) { classNames?.replaceWithText( `"${applyPrefix( - classNames.getText()?.replace(/"/g, ""), - config.tailwind.prefix - )}"` - ); + classNames.getText()?.replace(/"/g, ''), + config.tailwind.prefix, + )}"`, + ) } - }); - }); + }) + }) } - }); + }) // Find all jsx attributes with the name className. sourceFile.getDescendantsOfKind(SyntaxKind.JsxAttribute).forEach((node) => { - if (node.getName() === "className") { + if (node.getName() === 'className') { // className="..." if (node.getInitializer()?.isKind(SyntaxKind.StringLiteral)) { - const value = node.getInitializer(); + const value = node.getInitializer() if (value) { value.replaceWithText( `"${applyPrefix( - value.getText()?.replace(/"/g, ""), - config.tailwind.prefix - )}"` - ); + value.getText()?.replace(/"/g, ''), + config.tailwind.prefix, + )}"`, + ) } } @@ -78,49 +78,49 @@ export const transformTwPrefixes: Transformer = async ({ const callExpression = node .getInitializer() ?.getDescendantsOfKind(SyntaxKind.CallExpression) - .find((node) => node.getExpression().getText() === "cn"); + .find(node => node.getExpression().getText() === 'cn') if (callExpression) { // Loop through the arguments. callExpression.getArguments().forEach((node) => { if ( - node.isKind(SyntaxKind.ConditionalExpression) || - node.isKind(SyntaxKind.BinaryExpression) + node.isKind(SyntaxKind.ConditionalExpression) + || node.isKind(SyntaxKind.BinaryExpression) ) { node .getChildrenOfKind(SyntaxKind.StringLiteral) .forEach((node) => { node.replaceWithText( `"${applyPrefix( - node.getText()?.replace(/"/g, ""), - config.tailwind.prefix - )}"` - ); - }); + node.getText()?.replace(/"/g, ''), + config.tailwind.prefix, + )}"`, + ) + }) } if (node.isKind(SyntaxKind.StringLiteral)) { node.replaceWithText( `"${applyPrefix( - node.getText()?.replace(/"/g, ""), - config.tailwind.prefix - )}"` - ); + node.getText()?.replace(/"/g, ''), + config.tailwind.prefix, + )}"`, + ) } - }); + }) } } } // classNames={...} - if (node.getName() === "classNames") { + if (node.getName() === 'classNames') { if (node.getInitializer()?.isKind(SyntaxKind.JsxExpression)) { node .getDescendantsOfKind(SyntaxKind.PropertyAssignment) .forEach((node) => { if (node.getInitializer()?.isKind(SyntaxKind.CallExpression)) { const callExpression = node.getInitializerIfKind( - SyntaxKind.CallExpression - ); + SyntaxKind.CallExpression, + ) if (callExpression) { // Loop through the arguments. callExpression.getArguments().forEach((arg) => { @@ -130,72 +130,79 @@ export const transformTwPrefixes: Transformer = async ({ .forEach((node) => { node.replaceWithText( `"${applyPrefix( - node.getText()?.replace(/"/g, ""), - config.tailwind.prefix - )}"` - ); - }); + node.getText()?.replace(/"/g, ''), + config.tailwind.prefix, + )}"`, + ) + }) } if (arg.isKind(SyntaxKind.StringLiteral)) { arg.replaceWithText( `"${applyPrefix( - arg.getText()?.replace(/"/g, ""), - config.tailwind.prefix - )}"` - ); + arg.getText()?.replace(/"/g, ''), + config.tailwind.prefix, + )}"`, + ) } - }); + }) } } if (node.getInitializer()?.isKind(SyntaxKind.StringLiteral)) { - if (node.getName() !== "variant") { - const classNames = node.getInitializer(); + if (node.getName() !== 'variant') { + const classNames = node.getInitializer() if (classNames) { classNames.replaceWithText( `"${applyPrefix( - classNames.getText()?.replace(/"/g, ""), - config.tailwind.prefix - )}"` - ); + classNames.getText()?.replace(/"/g, ''), + config.tailwind.prefix, + )}"`, + ) } } } - }); + }) } } - }); + }) - return sourceFile; -}; + return sourceFile +} -export function applyPrefix(input: string, prefix: string = "") { - const classNames = input.split(" "); - const prefixed: string[] = []; - for (let className of classNames) { - const [variant, value, modifier] = splitClassName(className); +export function applyPrefix(input: string, prefix: string = ''): string { + const classNames = input.split(' ') + const prefixed: string[] = [] + for (const className of classNames) { + const [variant, value, modifier] = splitClassName(className) if (variant) { - modifier - ? prefixed.push(`${variant}:${prefix}${value}/${modifier}`) - : prefixed.push(`${variant}:${prefix}${value}`); - } else { - modifier - ? prefixed.push(`${prefix}${value}/${modifier}`) - : prefixed.push(`${prefix}${value}`); + if (modifier) { + prefixed.push(`${variant}:${prefix}${value}/${modifier}`) + } + else { + prefixed.push(`${variant}:${prefix}${value}`) + } + } + else { + if (modifier) { + prefixed.push(`${prefix}${value}/${modifier}`) + } + else { + prefixed.push(`${prefix}${value}`) + } } } - return prefixed.join(" "); + return prefixed.join(' ') } -export function applyPrefixesCss(css: string, prefix: string) { - const lines = css.split("\n"); - for (let line of lines) { - if (line.includes("@apply")) { - const originalTWCls = line.replace("@apply", "").trim(); - const prefixedTwCls = applyPrefix(originalTWCls, prefix); - css = css.replace(originalTWCls, prefixedTwCls); +export function applyPrefixesCss(css: string, prefix: string): string { + const lines = css.split('\n') + for (const line of lines) { + if (line.includes('@apply')) { + const originalTWCls = line.replace('@apply', '').trim() + const prefixedTwCls = applyPrefix(originalTWCls, prefix) + css = css.replace(originalTWCls, prefixedTwCls) } } - return css; + return css } diff --git a/test/cli.test.ts b/test/cli.test.ts new file mode 100644 index 0000000..401553c --- /dev/null +++ b/test/cli.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from 'vitest' + +describe('should', () => { + it('exported', () => { + expect(1).toEqual(1) + }) +}) diff --git a/tsconfig.base.json b/tsconfig.base.json deleted file mode 100644 index dc1faa3..0000000 --- a/tsconfig.base.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compileOnSave": false, - "compilerOptions": { - "rootDir": ".", - "sourceMap": true, - "declaration": false, - "moduleResolution": "node", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "importHelpers": true, - "target": "es2015", - "module": "esnext", - "lib": ["es2020", "dom"], - "skipLibCheck": true, - "skipDefaultLibCheck": true, - "baseUrl": ".", - "paths": { - "shadcn-ng": ["packages/cli/src/index.ts"] - } - }, - "exclude": ["node_modules", "tmp"] -} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..ff79c14 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["ESNext"], + "module": "ESNext", + "moduleResolution": "Bundler", + "resolveJsonModule": true, + "strict": true, + "strictNullChecks": true, + "noEmit": true, + "esModuleInterop": true, + "skipDefaultLibCheck": true, + "skipLibCheck": true + } +}