From a46d7d888d97ac805e2f843bbd108eabdd574043 Mon Sep 17 00:00:00 2001 From: userquin Date: Sun, 29 Sep 2024 21:08:40 +0200 Subject: [PATCH 01/15] feat: add `unplugin-vue-components` and `unimport` integration --- packages/docs/auto-imports.d.ts | 178 +--- packages/docs/package.json | 3 +- packages/docs/vite.config.mts | 20 +- packages/vuetify/.gitignore | 2 + packages/vuetify/build.config.mts | 94 ++ packages/vuetify/package.json | 25 +- packages/vuetify/src/auto-imports.d.ts | 1 + packages/vuetify/src/unplugin/components.ts | 103 ++ packages/vuetify/src/unplugin/types.ts | 24 + packages/vuetify/src/unplugin/unimport.ts | 113 ++ packages/vuetify/src/unplugin/utils.ts | 30 + packages/vuetify/tsconfig.dist.json | 2 +- pnpm-lock.yaml | 1059 ++++++++++++++++++- 13 files changed, 1447 insertions(+), 207 deletions(-) create mode 100644 packages/vuetify/build.config.mts create mode 100644 packages/vuetify/src/unplugin/components.ts create mode 100644 packages/vuetify/src/unplugin/types.ts create mode 100644 packages/vuetify/src/unplugin/unimport.ts create mode 100644 packages/vuetify/src/unplugin/utils.ts diff --git a/packages/docs/auto-imports.d.ts b/packages/docs/auto-imports.d.ts index b41ec364536..8b892210648 100644 --- a/packages/docs/auto-imports.d.ts +++ b/packages/docs/auto-imports.d.ts @@ -3,15 +3,22 @@ // @ts-nocheck // noinspection JSUnusedGlobalSymbols // Generated by unplugin-auto-import +// biome-ignore lint: disable export {} declare global { - const ComponentPublicInstance: typeof import('vue')['ComponentPublicInstance'] + const ClickOutside: typeof import('vuetify/directives')['ClickOutside'] const EffectScope: typeof import('vue')['EffectScope'] const IN_BROWSER: typeof import('./src/utils/globals')['IN_BROWSER'] const IS_DEBUG: typeof import('./src/utils/globals')['IS_DEBUG'] const IS_PROD: typeof import('./src/utils/globals')['IS_PROD'] const IS_SERVER: typeof import('./src/utils/globals')['IS_SERVER'] - const PropType: typeof import('vue')['PropType'] + const Intersect: typeof import('vuetify/directives')['Intersect'] + const Mutate: typeof import('vuetify/directives')['Mutate'] + const Resize: typeof import('vuetify/directives')['Resize'] + const Ripple: typeof import('vuetify/directives')['Ripple'] + const Scroll: typeof import('vuetify/directives')['Scroll'] + const Tooltip: typeof import('vuetify/directives')['Tooltip'] + const Touch: typeof import('vuetify/directives')['Touch'] const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] const anyLanguagePattern: typeof import('./src/utils/routes')['anyLanguagePattern'] const camelCase: typeof import('lodash-es')['camelCase'] @@ -64,7 +71,6 @@ declare global { const onBeforeMount: typeof import('vue')['onBeforeMount'] const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] - const onBeforeUnMount: typeof import('vue')['onBeforeUnMount'] const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] const onDeactivated: typeof import('vue')['onDeactivated'] @@ -76,6 +82,7 @@ declare global { const onServerPrefetch: typeof import('vue')['onServerPrefetch'] const onUnmounted: typeof import('vue')['onUnmounted'] const onUpdated: typeof import('vue')['onUpdated'] + const onWatcherCleanup: typeof import('vue')['onWatcherCleanup'] const preferredLocale: typeof import('./src/utils/routes')['preferredLocale'] const propsToString: typeof import('./src/utils/helpers')['propsToString'] const provide: typeof import('vue')['provide'] @@ -110,16 +117,21 @@ declare global { const useCssModule: typeof import('vue')['useCssModule'] const useCssVars: typeof import('vue')['useCssVars'] const useDate: typeof import('vuetify')['useDate'] + const useDefaults: typeof import('vuetify')['useDefaults'] const useDisplay: typeof import('vuetify')['useDisplay'] const useFrontmatter: typeof import('./src/composables/frontmatter')['useFrontmatter'] const useGoTo: typeof import('vuetify')['useGoTo'] const useGtag: typeof import('vue-gtag-next')['useGtag'] const useHttpStore: typeof import('@vuetify/one')['useHttpStore'] const useI18n: typeof import('vue-i18n')['useI18n'] + const useId: typeof import('vue')['useId'] const useJobsStore: typeof import('./src/stores/jobs')['useJobsStore'] + const useLayout: typeof import('vuetify')['useLayout'] const useLink: typeof import('vue-router')['useLink'] + const useLocale: typeof import('vuetify')['useLocale'] const useLocaleStore: typeof import('./src/stores/locale')['useLocaleStore'] const useMadeWithVuetifyStore: typeof import('./src/stores/made-with-vuetify')['useMadeWithVuetifyStore'] + const useModel: typeof import('vue')['useModel'] const useOneStore: typeof import('@vuetify/one')['useOneStore'] const usePinsStore: typeof import('./src/stores/pins')['usePinsStore'] const usePlayground: typeof import('./src/composables/playground')['usePlayground'] @@ -136,6 +148,7 @@ declare global { const useSponsorsStore: typeof import('./src/stores/sponsors')['useSponsorsStore'] const useSpotStore: typeof import('./src/stores/spot')['useSpotStore'] const useTeamStore: typeof import('./src/stores/team')['useTeamStore'] + const useTemplateRef: typeof import('vue')['useTemplateRef'] const useTheme: typeof import('vuetify')['useTheme'] const useUserStore: typeof import('@vuetify/one')['useUserStore'] const wait: typeof import('./src/utils/helpers')['wait'] @@ -149,7 +162,7 @@ declare global { // for type re-export declare global { // @ts-ignore - export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' + export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' import('vue') } // for vue template auto import @@ -157,11 +170,19 @@ import { UnwrapRef } from 'vue' declare module 'vue' { interface GlobalComponents {} interface ComponentCustomProperties { + readonly ClickOutside: UnwrapRef readonly EffectScope: UnwrapRef readonly IN_BROWSER: UnwrapRef readonly IS_DEBUG: UnwrapRef readonly IS_PROD: UnwrapRef readonly IS_SERVER: UnwrapRef + readonly Intersect: UnwrapRef + readonly Mutate: UnwrapRef + readonly Resize: UnwrapRef + readonly Ripple: UnwrapRef + readonly Scroll: UnwrapRef + readonly Tooltip: UnwrapRef + readonly Touch: UnwrapRef readonly acceptHMRUpdate: UnwrapRef readonly anyLanguagePattern: UnwrapRef readonly camelCase: UnwrapRef @@ -225,6 +246,7 @@ declare module 'vue' { readonly onServerPrefetch: UnwrapRef readonly onUnmounted: UnwrapRef readonly onUpdated: UnwrapRef + readonly onWatcherCleanup: UnwrapRef readonly preferredLocale: UnwrapRef readonly propsToString: UnwrapRef readonly provide: UnwrapRef @@ -259,16 +281,21 @@ declare module 'vue' { readonly useCssModule: UnwrapRef readonly useCssVars: UnwrapRef readonly useDate: UnwrapRef + readonly useDefaults: UnwrapRef readonly useDisplay: UnwrapRef readonly useFrontmatter: UnwrapRef readonly useGoTo: UnwrapRef readonly useGtag: UnwrapRef readonly useHttpStore: UnwrapRef readonly useI18n: UnwrapRef + readonly useId: UnwrapRef readonly useJobsStore: UnwrapRef + readonly useLayout: UnwrapRef readonly useLink: UnwrapRef + readonly useLocale: UnwrapRef readonly useLocaleStore: UnwrapRef readonly useMadeWithVuetifyStore: UnwrapRef + readonly useModel: UnwrapRef readonly useOneStore: UnwrapRef readonly usePinsStore: UnwrapRef readonly usePlayground: UnwrapRef @@ -285,148 +312,7 @@ declare module 'vue' { readonly useSponsorsStore: UnwrapRef readonly useSpotStore: UnwrapRef readonly useTeamStore: UnwrapRef - readonly useTheme: UnwrapRef - readonly useUserStore: UnwrapRef - readonly wait: UnwrapRef - readonly waitForReadystate: UnwrapRef - readonly watch: UnwrapRef - readonly watchEffect: UnwrapRef - readonly watchPostEffect: UnwrapRef - readonly watchSyncEffect: UnwrapRef - readonly wrapInArray: UnwrapRef - } -} -declare module '@vue/runtime-core' { - interface GlobalComponents {} - interface ComponentCustomProperties { - readonly EffectScope: UnwrapRef - readonly IN_BROWSER: UnwrapRef - readonly IS_DEBUG: UnwrapRef - readonly IS_PROD: UnwrapRef - readonly IS_SERVER: UnwrapRef - readonly acceptHMRUpdate: UnwrapRef - readonly anyLanguagePattern: UnwrapRef - readonly camelCase: UnwrapRef - readonly camelize: UnwrapRef - readonly computed: UnwrapRef - readonly configureMarkdown: UnwrapRef - readonly copyElementContent: UnwrapRef - readonly createAdProps: UnwrapRef - readonly createApp: UnwrapRef - readonly createOne: UnwrapRef - readonly createPinia: UnwrapRef - readonly customRef: UnwrapRef - readonly defineAsyncComponent: UnwrapRef - readonly defineComponent: UnwrapRef - readonly defineStore: UnwrapRef - readonly disabledLanguagePattern: UnwrapRef - readonly effectScope: UnwrapRef - readonly eventName: UnwrapRef - readonly genAppMetaInfo: UnwrapRef - readonly genMetaInfo: UnwrapRef - readonly generatedRoutes: UnwrapRef - readonly getActivePinia: UnwrapRef - readonly getBranch: UnwrapRef - readonly getCurrentInstance: UnwrapRef - readonly getCurrentScope: UnwrapRef - readonly getDistance: UnwrapRef - readonly getMatchMedia: UnwrapRef - readonly gtagClick: UnwrapRef - readonly h: UnwrapRef - readonly inject: UnwrapRef - readonly insertLinks: UnwrapRef - readonly isOn: UnwrapRef - readonly isProxy: UnwrapRef - readonly isReactive: UnwrapRef - readonly isReadonly: UnwrapRef - readonly isRef: UnwrapRef - readonly kebabCase: UnwrapRef - readonly languagePattern: UnwrapRef - readonly leadingSlash: UnwrapRef - readonly mapActions: UnwrapRef - readonly mapGetters: UnwrapRef - readonly mapState: UnwrapRef - readonly mapStores: UnwrapRef - readonly mapWritableState: UnwrapRef - readonly markRaw: UnwrapRef - readonly markdownItRules: UnwrapRef - readonly mergeProps: UnwrapRef - readonly nextTick: UnwrapRef - readonly onActivated: UnwrapRef - readonly onBeforeMount: UnwrapRef - readonly onBeforeRouteLeave: UnwrapRef - readonly onBeforeRouteUpdate: UnwrapRef - readonly onBeforeUnmount: UnwrapRef - readonly onBeforeUpdate: UnwrapRef - readonly onDeactivated: UnwrapRef - readonly onErrorCaptured: UnwrapRef - readonly onMounted: UnwrapRef - readonly onRenderTracked: UnwrapRef - readonly onRenderTriggered: UnwrapRef - readonly onScopeDispose: UnwrapRef - readonly onServerPrefetch: UnwrapRef - readonly onUnmounted: UnwrapRef - readonly onUpdated: UnwrapRef - readonly preferredLocale: UnwrapRef - readonly propsToString: UnwrapRef - readonly provide: UnwrapRef - readonly reactive: UnwrapRef - readonly readonly: UnwrapRef - readonly redirectRoutes: UnwrapRef - readonly ref: UnwrapRef - readonly resolveComponent: UnwrapRef - readonly rpath: UnwrapRef - readonly setActivePinia: UnwrapRef - readonly setMapStoreSuffix: UnwrapRef - readonly shallowReactive: UnwrapRef - readonly shallowReadonly: UnwrapRef - readonly shallowRef: UnwrapRef - readonly storeToRefs: UnwrapRef - readonly stripLinks: UnwrapRef - readonly toRaw: UnwrapRef - readonly toRef: UnwrapRef - readonly toRefs: UnwrapRef - readonly toValue: UnwrapRef - readonly trailingSlash: UnwrapRef - readonly triggerRef: UnwrapRef - readonly unref: UnwrapRef - readonly upperFirst: UnwrapRef - readonly useAd: UnwrapRef - readonly useAdsStore: UnwrapRef - readonly useAppStore: UnwrapRef - readonly useAttrs: UnwrapRef - readonly useAuthStore: UnwrapRef - readonly useCommitsStore: UnwrapRef - readonly useCosmic: UnwrapRef - readonly useCssModule: UnwrapRef - readonly useCssVars: UnwrapRef - readonly useDate: UnwrapRef - readonly useDisplay: UnwrapRef - readonly useFrontmatter: UnwrapRef - readonly useGoTo: UnwrapRef - readonly useGtag: UnwrapRef - readonly useHttpStore: UnwrapRef - readonly useI18n: UnwrapRef - readonly useJobsStore: UnwrapRef - readonly useLink: UnwrapRef - readonly useLocaleStore: UnwrapRef - readonly useMadeWithVuetifyStore: UnwrapRef - readonly useOneStore: UnwrapRef - readonly usePinsStore: UnwrapRef - readonly usePlayground: UnwrapRef - readonly useProductsStore: UnwrapRef - readonly usePromotionsStore: UnwrapRef - readonly useQueueStore: UnwrapRef - readonly useReleasesStore: UnwrapRef - readonly useRoute: UnwrapRef - readonly useRouter: UnwrapRef - readonly useRtl: UnwrapRef - readonly useSettingsStore: UnwrapRef - readonly useShopifyStore: UnwrapRef - readonly useSlots: UnwrapRef - readonly useSponsorsStore: UnwrapRef - readonly useSpotStore: UnwrapRef - readonly useTeamStore: UnwrapRef + readonly useTemplateRef: UnwrapRef readonly useTheme: UnwrapRef readonly useUserStore: UnwrapRef readonly wait: UnwrapRef diff --git a/packages/docs/package.json b/packages/docs/package.json index d1d85d7ac40..619c13057ff 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -78,7 +78,8 @@ "markdown-it-meta": "^0.0.1", "markdown-it-prism": "^2.3.0", "markdownlint-cli": "^0.39.0", - "unplugin-auto-import": "0.17.5", + "unimport": "^3.13.1", + "unplugin-auto-import": "^0.18.3", "unplugin-fonts": "1.0.3", "unplugin-vue-components": "^0.27.4", "vite": "^5.4.3", diff --git a/packages/docs/vite.config.mts b/packages/docs/vite.config.mts index adbba51ff9c..c17d0f6e9ad 100644 --- a/packages/docs/vite.config.mts +++ b/packages/docs/vite.config.mts @@ -23,6 +23,7 @@ import { Examples } from './build/examples-plugin' import { genAppMetaInfo } from './src/utils/metadata' import { MdiJs } from './build/mdi-js' import { frontmatterBuilder, getRouteMeta, scriptFixer } from './build/markdownBuilders' +import { VuetifyComposables, VuetifyDirectives, VuetifyOneComposables } from 'vuetify/unimport' const resolve = (file: string) => fileURLToPath(new URL(file, import.meta.url)) @@ -95,25 +96,22 @@ export default defineConfig(({ command, mode, isSsrBuild }) => { 'vue', 'vue-router', 'pinia', + VuetifyComposables(), + VuetifyDirectives(), + VuetifyOneComposables(), { - '@vuetify/one': [ - 'createOne', - 'useAuthStore', - 'useHttpStore', - 'useOneStore', - 'useUserStore', - 'useQueueStore', - 'useSettingsStore', - 'useProductsStore', - ], 'lodash-es': ['camelCase', 'kebabCase', 'upperFirst'], vue: ['camelize', 'mergeProps'], - vuetify: ['useDate', 'useDisplay', 'useGoTo', 'useRtl', 'useTheme'], 'vue-gtag-next': ['useGtag'], 'vue-i18n': ['useI18n'], } ], vueTemplate: true, + // when this PR https://github.com/unplugin/unplugin-auto-import/pull/534 merged and released + // this option will create the `v` for Vuetify directives in vue module augmentation + // Volar will show Vuetify directives (VSCode only) + // check it here: packages/docs/src/examples/v-ripple/misc-custom-color.vue + vueDirectives: true, }), // https://github.com/stafyniaksacha/vite-plugin-fonts diff --git a/packages/vuetify/.gitignore b/packages/vuetify/.gitignore index 1cdbaeaa2ed..5eb487329c9 100644 --- a/packages/vuetify/.gitignore +++ b/packages/vuetify/.gitignore @@ -9,6 +9,8 @@ /types-temp/ /dist/ /dev/dist/ +/unplugin-vue-components/ +/unimport/ # local env files .env.local diff --git a/packages/vuetify/build.config.mts b/packages/vuetify/build.config.mts new file mode 100644 index 00000000000..c331279b0bc --- /dev/null +++ b/packages/vuetify/build.config.mts @@ -0,0 +1,94 @@ +import { defineBuildConfig } from 'unbuild' +import { version, devDependencies } from './package.json' +import path from 'upath' +import { fileURLToPath } from 'url' +import { readFile, rm, writeFile } from 'node:fs/promises' + +const rootDir = path.resolve(fileURLToPath(import.meta.url), '..') + +const externals = Array.from(Object.keys(devDependencies)) + +const banner = `/*! +* Vuetify v${version} +* Forged by John Leider +* Released under the MIT License. +*/\n` + +export default defineBuildConfig([{ + rootDir, + entries: [{ + input: `${rootDir}/src/unplugin/components.ts`, + name: 'index', + declaration: true, + outDir: 'unplugin-vue-components', + cleanDist: true, + }], + outDir: 'unplugin-vue-components', + declaration: true, + failOnWarn: false, + externals: [ + 'vuetify', + 'unplugin-vue-components/types', + ...externals, + ], + hooks: { + 'rollup:done': async (ctx, build) => { + // cleanup lib/unplugin + await rm(path.resolve(rootDir, 'lib/unplugin'), { force: true, recursive: true }) + + // add banner to dts files + await Promise.all(['unplugin-vue-components'].map((dir) => { + return ['', 'c', 'm'].map(d => `${rootDir}/${dir}/index.d.${d}ts`) + }).map(async (dtsFiles) => { + return dtsFiles.flat().map(async (dts) => { + const content = await readFile(dts, 'utf-8') + await writeFile(dts, `${banner}${content}`, 'utf-8') + }) + })) + } + }, + rollup: { + rootDir, + emitCJS: true, + output: { banner }, + dts: { + compilerOptions: { rootDir }, + respectExternal: true, + }, + }, +}, { + rootDir, + entries: [{ + input: `${rootDir}/src/unplugin/unimport.ts`, + name: 'index', + declaration: true, + outDir: 'unimport', + cleanDist: true, + }], + outDir: 'unimport', + declaration: true, + failOnWarn: false, + externals: ['vuetify', ...externals], + hooks: { + 'rollup:done': async () => { + // add banner to dts files + await Promise.all(['unimport'].map((dir) => { + return ['', 'c', 'm'].map(d => `${rootDir}/${dir}/index.d.${d}ts`) + }).map(async (dtsFiles) => { + return dtsFiles.flat().map(async (dts) => { + const content = await readFile(dts, 'utf-8') + await writeFile(dts, `${banner}${content}`, 'utf-8') + }) + })) + } + }, + rollup: { + rootDir, + emitCJS: true, + output: { banner }, + dts: { + compilerOptions: { rootDir }, + respectExternal: true, + }, + }, +}]) diff --git a/packages/vuetify/package.json b/packages/vuetify/package.json index 9b2ac769d3c..feb95c6720f 100755 --- a/packages/vuetify/package.json +++ b/packages/vuetify/package.json @@ -45,6 +45,8 @@ "files": [ "dist/", "lib/", + "unplugin-vue-components/", + "unimport/", "_settings.scss", "_styles.scss", "_tools.scss", @@ -75,7 +77,15 @@ "./labs/components": "./lib/labs/components.mjs", "./labs/*": "./lib/labs/*/index.mjs", "./util/colors": "./lib/util/colors.mjs", - "./*": "./*" + "./*": "./*", + "./unplugin-vue-components": { + "import": "./unplugin-vue-components/index.mjs", + "require": "./unplugin-vue-components/index.cjs" + }, + "./unimport": { + "import": "./unimport/index.mjs", + "require": "./unimport/index.cjs" + } }, "typesVersions": { "*": { @@ -85,6 +95,12 @@ "framework": [ "lib/index.d.mts" ], + "unplugin-vue-components": [ + "unplugin-vue-components/index.d.ts" + ], + "unimport": [ + "unimport/index.d.ts" + ], "*": [ "*", "dist/*", @@ -103,7 +119,8 @@ "dev:ssr": "NODE_ENV=development VITE_SSR=true vite-ssr", "dev:prod": "concurrently \"vite build -w\" \"vite preview\"", "dev:typecheck": "vue-tsc --noEmit --skipLibCheck --project ./tsconfig.dev.json", - "build": "rimraf lib dist && concurrently \"pnpm run build:dist\" \"pnpm run build:lib\" -n \"dist,lib\" --kill-others-on-fail -r && pnpm run build:types", + "build": "rimraf lib dist unplugin-vue-components unimport && concurrently \"pnpm run build:dist\" \"pnpm run build:lib\" -n \"dist,lib\" --kill-others-on-fail -r && pnpm run build:types && pnpm run build:unimport", + "build:unimport": "unbuild", "build:dist": "rollup --config build/rollup.config.mjs", "build:lib": "NODE_ENV=lib babel src --out-dir lib --source-maps --extensions \".ts\",\".tsx\",\".snap\" --copy-files --no-copy-ignored --out-file-extension .mjs", "build:types": "rimraf types-temp && tsc --pretty --emitDeclarationOnly -p tsconfig.dist.json && rollup --config build/rollup.types.config.mjs && rimraf types-temp", @@ -172,7 +189,9 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-terser": "^7.0.2", "timezone-mock": "^1.3.6", - "unplugin-auto-import": "0.17.5", + "unbuild": "^2.0.0", + "unimport": "^3.13.1", + "unplugin-auto-import": "^0.18.3", "unplugin-vue-components": "^0.27.4", "upath": "^2.0.1", "vite": "^5.4.3", diff --git a/packages/vuetify/src/auto-imports.d.ts b/packages/vuetify/src/auto-imports.d.ts index 7e43e9a13f5..6f92e4eef36 100644 --- a/packages/vuetify/src/auto-imports.d.ts +++ b/packages/vuetify/src/auto-imports.d.ts @@ -3,6 +3,7 @@ // @ts-nocheck // noinspection JSUnusedGlobalSymbols // Generated by unplugin-auto-import +// biome-ignore lint: disable export {} declare global { const afterAll: typeof import('vitest')['afterAll'] diff --git a/packages/vuetify/src/unplugin/components.ts b/packages/vuetify/src/unplugin/components.ts new file mode 100644 index 00000000000..eccb54c9db9 --- /dev/null +++ b/packages/vuetify/src/unplugin/components.ts @@ -0,0 +1,103 @@ +// Types +import type { ComponentResolver } from 'unplugin-vue-components/types' +import type { + ComponentName, + DirectiveName, + ImportComponents, + ImportMaps, + LabComponentName, +} from './types' +import { resolveVuetifyImportMap, resolveVuetifyImportMaps } from './utils' + +export interface VuetifyComponentResolverOptions { + labs?: boolean + exclude?: (ComponentName | LabComponentName)[] + paths?: string[] +} + +export interface VuetifyDirectivesResolverOptions { + exclude?: DirectiveName[] + paths?: string[] +} + +export interface VuetifyVueResolverOptions extends Omit { + excludeDirectives?: DirectiveName[] + excludeComponents?: (ComponentName | LabComponentName)[] +} + +export function VuetifyVueResolver (options: VuetifyVueResolverOptions = {}) { + const { + paths, + excludeDirectives, + labs, + excludeComponents, + } = options + + const [componentsPromise, directivesPromise] = resolveVuetifyImportMaps(paths) + + const directives = createDirectivesResolver( + componentsPromise, + { exclude: excludeDirectives, paths } + ) + const components = createComponentsResolver( + [componentsPromise, directivesPromise], + { exclude: excludeComponents, labs, paths } + ) + + return { + VuetifyDirectiveResolver: directives, + VuetifyComponentResolver: components, + } +} + +export function VuetifyDirectiveResolver (options: VuetifyDirectivesResolverOptions = {}) { + return createDirectivesResolver(resolveVuetifyImportMap(options.paths), options) +} + +export function VuetifyComponentResolver (options: VuetifyComponentResolverOptions = {}) { + return createComponentsResolver(resolveVuetifyImportMaps(options.paths), options) +} + +function createComponentsResolver ( + promises: ImportMaps, + options: VuetifyComponentResolverOptions +) { + const { exclude, labs } = options + return { + type: 'component', + resolve: async name => { + if (exclude?.some(e => e === name)) return undefined + const [components, labsComponents] = await Promise.all(promises) + const component = name in components.components + ? components.components[name] + : labs && name in labsComponents + ? labsComponents[name] + : undefined + + if (!component) return undefined + return { + name, + from: `vuetify/lib/${component.from}`, + } + }, + } satisfies ComponentResolver +} + +function createDirectivesResolver (promise: Promise, options: VuetifyDirectivesResolverOptions) { + const { exclude } = options + return { + type: 'directive', + resolve: async name => { + if (exclude?.some(e => e === name)) return undefined + const { directives } = await promise + const directive = name in directives ? directives[name] : undefined + + if (!directive) return undefined + return { + name: 'default', + as: name, + from: `vuetify/directives/${String(directive)}`, + } + }, + } satisfies ComponentResolver +} diff --git a/packages/vuetify/src/unplugin/types.ts b/packages/vuetify/src/unplugin/types.ts new file mode 100644 index 00000000000..7fe98786c8c --- /dev/null +++ b/packages/vuetify/src/unplugin/types.ts @@ -0,0 +1,24 @@ +export interface VuetifyComponent { + from: string + styles?: string[] +} +// eslint-disable-next-line @typescript-eslint/consistent-type-imports +export type ComponentName = keyof typeof import('vuetify/components') +// eslint-disable-next-line @typescript-eslint/consistent-type-imports +export type LabComponentName = keyof typeof import('vuetify/labs/components') +// eslint-disable-next-line @typescript-eslint/consistent-type-imports +export type DirectiveName = keyof typeof import('vuetify/directives') +export interface VuetifyComponents { + [key: string]: VuetifyComponent +} +export interface VuetifyDirectives { + [key: string]: DirectiveName +} +export interface ImportComponents { + components: VuetifyComponents + directives: VuetifyDirectives +} +export interface ImportLabsComponents { + [key: string]: VuetifyComponent +} +export type ImportMaps = [importMaps: Promise, importMapsLabs: Promise] diff --git a/packages/vuetify/src/unplugin/unimport.ts b/packages/vuetify/src/unplugin/unimport.ts new file mode 100644 index 00000000000..98b9cbabd7c --- /dev/null +++ b/packages/vuetify/src/unplugin/unimport.ts @@ -0,0 +1,113 @@ +// Types +import type { Preset, PresetImport } from 'unimport' +import type { DirectiveName } from './types' + +export interface VuetifyComposablesOptions { + /** + * Prefix Vuetify composables: + * - when prefix set to `true` will use `useV`: `useVDate`. + * - when prefix is a string will use `use`: `useVuetifyDate` with `prefix: 'Vuetify'`. + */ + prefix?: true | string +} +export interface VuetifyOneComposablesOptions { + /** + * Prefix Vuetify composables: + * - when prefix set to `true` will use `useV`: `useVDate`. + * - when prefix is a string will use `use`: `useVuetifyDate` with `prefix: 'Vuetify'`. + */ + prefix?: true | string +} + +export interface VuetifyDirectivesOptions { + /** + * Prefix Vuetify directives: + * - when prefix set to `true` will use `Vuetify` => `v-vuetify-: `v-vuetify-ripple`. + */ + prefix?: true + exclude?: DirectiveName[] +} + +export function VuetifyComposables (options: VuetifyComposablesOptions = {}) { + const { prefix } = options + const composableImports: [link: string, name: string][] = [ + ['use-date', 'useDate'], + ['use-defaults', 'useDefaults'], + ['use-display', 'useDisplay'], + ['use-go-to', 'useGoTo'], + ['use-layout', 'useLayout'], + ['use-locale', 'useLocale'], + ['use-rtl', 'useRtl'], + ['use-theme', 'useTheme'], + ] + const imports: typeof composableImports = typeof prefix === 'string' + ? composableImports.map(([l, n]) => [l, n.replace('use', `use${prefix}`)]) + : prefix + ? composableImports.map(([l, n]) => [l, n.replace('use', 'useV')]) + : composableImports + return { + from: 'vuetify', + imports: imports.map(([link, name]) => ({ + name, + meta: { docsUrl: `https://vuetifyjs.com/en/api/${link}/` }, + } satisfies PresetImport)), + } satisfies Preset +} + +export function VuetifyOneComposables (options: VuetifyOneComposablesOptions = {}) { + const { prefix } = options + const composableImports: string[] = [ + 'createOne', + 'useAuthStore', + 'useHttpStore', + 'useOneStore', + 'useUserStore', + 'useQueueStore', + 'useSettingsStore', + 'useProductsStore', + ] + const imports: typeof composableImports = typeof prefix === 'string' + ? composableImports.map(n => n.startsWith('create') + ? n.replace('create', `create${prefix}`) + : n.replace('use', `use${prefix}`) + ) + : prefix + ? composableImports.map(n => n.startsWith('create') + ? n.replace('create', 'createV') + : n.replace('use', 'useV') + ) + : composableImports + + return { + from: '@vuetify/one', + imports, + } satisfies Preset +} + +export function VuetifyDirectives (options: VuetifyDirectivesOptions = {}) { + const { exclude, prefix } = options + type Directive = [link: string, name: DirectiveName] + const directives = ([ + ['click-outside', 'ClickOutside'], + ['intersect', 'Intersect'], + ['mutate', 'Mutate'], + ['resize', 'Resize'], + ['ripple', 'Ripple'], + ['scroll', 'Scroll'], + ['touch', 'Touch'], + ['tooltip', 'Tooltip'], + ] satisfies Directive[]) + .filter(entry => !exclude || !exclude.includes(entry[1])) + + return { + from: 'vuetify/directives', + meta: { + vueDirective: true, + }, + imports: directives.map(([link, name]) => ({ + name, + as: prefix ? `Vuetify${name}` : undefined, + meta: { docsUrl: `https://vuetifyjs.com/en/api/${link}/` }, + } satisfies PresetImport)), + } satisfies Preset +} diff --git a/packages/vuetify/src/unplugin/utils.ts b/packages/vuetify/src/unplugin/utils.ts new file mode 100644 index 00000000000..58f545639a9 --- /dev/null +++ b/packages/vuetify/src/unplugin/utils.ts @@ -0,0 +1,30 @@ +import { readFile } from 'node:fs/promises' +import path from 'upath' +import { createRequire } from 'node:module' + +// Types +import type { ImportComponents, ImportLabsComponents, ImportMaps } from './types' + +const require = createRequire(import.meta.url) + +export function resolveVuetifyBase (paths = [process.cwd()]) { + return path.dirname(require.resolve('vuetify/package.json', { paths })) +} + +export function resolveVuetifyImportMaps ( + paths = [process.cwd()] +): ImportMaps { + const vuetifyBase = resolveVuetifyBase(paths) + return [importMap(vuetifyBase), importMapLabs(vuetifyBase)] +} + +export function resolveVuetifyImportMap (paths = [process.cwd()]) { + return importMap(resolveVuetifyBase(paths)) +} + +async function importMap (vuetifyBase: string): Promise { + return JSON.parse(await readFile(path.resolve(vuetifyBase, 'dist/json/importMap.json'), 'utf-8')) +} +async function importMapLabs (vuetifyBase: string): Promise { + return JSON.parse(await readFile(path.resolve(vuetifyBase, 'dist/json/importMap-labs.json'), 'utf-8')) +} diff --git a/packages/vuetify/tsconfig.dist.json b/packages/vuetify/tsconfig.dist.json index 0eccfe9e486..87769486cc4 100644 --- a/packages/vuetify/tsconfig.dist.json +++ b/packages/vuetify/tsconfig.dist.json @@ -1,4 +1,4 @@ { "extends": "./tsconfig.json", - "exclude": ["dev", "**/*.spec.*", "test"] + "exclude": ["dev", "**/*.spec.*", "test", "src/unplugin/*.ts"], } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c01138f480f..180781feb43 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,7 +118,7 @@ importers: version: 9.24.1(eslint@8.57.0) eslint-plugin-vuetify: specifier: ^2.3.0 - version: 2.3.0(eslint@8.57.0)(vuetify@3.7.1(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))) + version: 2.3.0(eslint@8.57.0)(vuetify@3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))) glob: specifier: ^11.0.0 version: 11.0.0 @@ -397,9 +397,12 @@ importers: markdownlint-cli: specifier: ^0.39.0 version: 0.39.0 + unimport: + specifier: ^3.13.1 + version: 3.13.1(rollup@4.21.2)(webpack-sources@3.2.3) unplugin-auto-import: - specifier: 0.17.5 - version: 0.17.5(rollup@4.21.2) + specifier: ^0.18.3 + version: 0.18.3(rollup@4.21.2)(webpack-sources@3.2.3) unplugin-fonts: specifier: 1.0.3 version: 1.0.3(vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.77.8)(sass@1.77.8)(terser@5.31.3)) @@ -589,9 +592,15 @@ importers: timezone-mock: specifier: ^1.3.6 version: 1.3.6 + unbuild: + specifier: ^2.0.0 + version: 2.0.0(sass@1.77.8)(typescript@5.5.4)(vue-tsc@2.0.29(typescript@5.5.4)) + unimport: + specifier: ^3.13.1 + version: 3.13.1(rollup@3.29.4)(webpack-sources@3.2.3) unplugin-auto-import: - specifier: 0.17.5 - version: 0.17.5(rollup@3.29.4) + specifier: ^0.18.3 + version: 0.18.3(rollup@3.29.4)(webpack-sources@3.2.3) unplugin-vue-components: specifier: ^0.27.4 version: 0.27.4(@babel/parser@7.25.6)(rollup@3.29.4)(vue@3.4.27(typescript@5.5.4)) @@ -1287,6 +1296,10 @@ packages: resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} engines: {node: '>=6.9.0'} + '@babel/standalone@7.25.6': + resolution: {integrity: sha512-Kf2ZcZVqsKbtYhlA7sP0z5A3q5hmCVYMKMWRWNK/5OVwHIve3JY1djVRmIVAx8FMueLIfZGKQDIILK2w8zO4mg==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.0': resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} @@ -1382,6 +1395,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.19.11': resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} engines: {node: '>=12'} @@ -1394,6 +1413,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.19.11': resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} engines: {node: '>=12'} @@ -1406,6 +1431,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.19.11': resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} engines: {node: '>=12'} @@ -1418,6 +1449,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.19.11': resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} engines: {node: '>=12'} @@ -1430,6 +1467,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.19.11': resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} engines: {node: '>=12'} @@ -1442,6 +1485,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.19.11': resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} engines: {node: '>=12'} @@ -1454,6 +1503,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.19.11': resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} engines: {node: '>=12'} @@ -1466,6 +1521,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.19.11': resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} engines: {node: '>=12'} @@ -1478,6 +1539,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.19.11': resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} engines: {node: '>=12'} @@ -1490,6 +1557,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.19.11': resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} engines: {node: '>=12'} @@ -1502,6 +1575,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.19.11': resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} engines: {node: '>=12'} @@ -1514,6 +1593,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.19.11': resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} engines: {node: '>=12'} @@ -1526,6 +1611,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.19.11': resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} engines: {node: '>=12'} @@ -1538,6 +1629,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.19.11': resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} engines: {node: '>=12'} @@ -1550,6 +1647,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.19.11': resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} engines: {node: '>=12'} @@ -1562,6 +1665,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.19.11': resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} engines: {node: '>=12'} @@ -1574,6 +1683,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.19.11': resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} engines: {node: '>=12'} @@ -1586,6 +1701,18 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.19.11': resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} engines: {node: '>=12'} @@ -1598,6 +1725,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.19.11': resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} engines: {node: '>=12'} @@ -1610,6 +1743,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.19.11': resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} engines: {node: '>=12'} @@ -1622,6 +1761,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.19.11': resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} engines: {node: '>=12'} @@ -1634,6 +1779,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.19.11': resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} engines: {node: '>=12'} @@ -1646,6 +1797,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2276,6 +2433,24 @@ packages: rollup: optional: true + '@rollup/plugin-commonjs@25.0.8': + resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} + 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@11.2.1': resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} @@ -2301,6 +2476,15 @@ packages: peerDependencies: rollup: '*' + '@rollup/plugin-replace@5.0.7': + resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: '*' + peerDependenciesMeta: + rollup: + optional: true + '@rollup/plugin-typescript@11.1.6': resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} @@ -2329,6 +2513,15 @@ packages: rollup: optional: true + '@rollup/pluginutils@5.1.2': + resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: '*' + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.21.2': resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} cpu: [arm] @@ -3256,6 +3449,13 @@ packages: peerDependencies: postcss: ^8.1.0 + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -3565,6 +3765,9 @@ packages: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + cjs-module-lexer@1.2.2: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} @@ -3689,6 +3892,9 @@ packages: resolution: {integrity: sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==} engines: {node: '>=4.0.0'} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compare-func@1.3.4: resolution: {integrity: sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==} @@ -3724,6 +3930,10 @@ packages: resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} engines: {node: '>= 0.10.0'} + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -3993,18 +4203,36 @@ packages: peerDependencies: postcss: ^8.4.31 + cssnano-preset-default@7.0.6: + resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + cssnano-utils@4.0.2: resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} engines: {node: ^14 || ^16 || >=18.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@6.1.2: resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + cssnano@7.0.6: + resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==} + 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'} @@ -4194,6 +4422,9 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + degenerator@5.0.1: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} @@ -4414,6 +4645,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -5039,6 +5275,10 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -5480,6 +5720,9 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -5780,6 +6023,14 @@ packages: node-notifier: optional: true + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + jiti@2.0.0: + resolution: {integrity: sha512-CJ7e7Abb779OTRv3lomfp7Mns/Sy1+U4pcAx5VbjxCZD5ZM/VJaXPpPjNKjtSvWQy/H86E49REXR34dl1JEz9w==} + hasBin: true + js-beautify@1.14.11: resolution: {integrity: sha512-rPogWqAfoYh1Ryqqh2agUpVfbxAhbjuN1SmU86dskQUKouRiggUTCO4+2ym9UPXllc2WAp0J+T5qxn7Um3lCdw==} engines: {node: '>=14'} @@ -5788,6 +6039,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -5950,6 +6204,10 @@ packages: resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + lines-and-columns@1.1.6: resolution: {integrity: sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ==} @@ -6360,6 +6618,21 @@ packages: engines: {node: '>=10'} hasBin: true + mkdist@1.5.9: + resolution: {integrity: sha512-PdJimzhcgDxaHpk1SUabw56gT3BU15vBHUTHkeeus8Kl7jUkpgG7+z0PiS/y23XXgO8TiU/dKP3L1oG55qrP1g==} + hasBin: true + peerDependencies: + sass: ^1.78.0 + typescript: '>=5.5.4' + vue-tsc: ^1.8.27 || ^2.0.21 + peerDependenciesMeta: + sass: + optional: true + typescript: + optional: true + vue-tsc: + optional: true + mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} @@ -6370,6 +6643,10 @@ packages: moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + mrmime@2.0.0: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} @@ -6940,6 +7217,9 @@ packages: pkg-types@1.1.3: resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} + pkg-types@1.2.0: + resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} + pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -6951,6 +7231,12 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} + postcss-calc@10.0.2: + resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + postcss-calc@9.0.1: resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -6963,160 +7249,326 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-colormin@7.0.2: + resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-convert-values@6.1.0: resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-convert-values@7.0.4: + resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-discard-comments@6.0.2: resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-discard-comments@7.0.3: + resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-discard-duplicates@6.0.3: resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-discard-duplicates@7.0.1: + resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-discard-empty@6.0.3: resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} engines: {node: ^14 || ^16 || >=18.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-merge-longhand@6.0.5: resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-merge-longhand@7.0.4: + resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-merge-rules@6.1.1: resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-merge-rules@7.0.4: + resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-minify-font-values@6.1.0: resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} engines: {node: ^14 || ^16 || >=18.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@6.0.3: resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} engines: {node: ^14 || ^16 || >=18.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@6.1.0: resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-minify-params@7.0.2: + resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-minify-selectors@6.0.4: resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-minify-selectors@7.0.4: + resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + postcss-normalize-charset@6.0.2: resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + 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@6.0.2: resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} engines: {node: ^14 || ^16 || >=18.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@6.1.0: resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-normalize-unicode@7.0.2: + resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-normalize-url@6.0.2: resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-ordered-values@7.0.1: + resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-reduce-initial@6.1.0: resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-reduce-initial@7.0.2: + resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-reduce-transforms@6.0.2: resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} engines: {node: ^14 || ^16 || >=18.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-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + postcss-svgo@6.0.3: resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.4.31 + postcss-svgo@7.0.1: + resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.31 + postcss-unique-selectors@6.0.4: resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-unique-selectors@7.0.3: + resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==} + 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==} @@ -7732,8 +8184,8 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scule@1.2.0: - resolution: {integrity: sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==} + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} search-insights@2.13.0: resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} @@ -8069,8 +8521,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -8086,6 +8538,12 @@ packages: peerDependencies: postcss: ^8.4.31 + stylehacks@7.0.4: + resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -8114,6 +8572,11 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -8422,6 +8885,15 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbuild@2.0.0: + resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} + hasBin: true + peerDependencies: + typescript: ^5.1.6 + peerDependenciesMeta: + typescript: + optional: true + unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} @@ -8447,8 +8919,8 @@ packages: resolution: {integrity: sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==} engines: {node: '>=4'} - unimport@3.7.1: - resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} + unimport@3.13.1: + resolution: {integrity: sha512-nNrVzcs93yrZQOW77qnyOVHtb68LegvhYFwxFMfuuWScmwQmyVCG/NBuN8tYsaGzgQUVYv34E/af+Cc9u4og4A==} unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} @@ -8477,8 +8949,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin-auto-import@0.17.5: - resolution: {integrity: sha512-fHNDkDSxv3PGagX1wmKBYBkgaM4AKAgZmdJw/bxjhNljx9KSXSgHpGfX0MwUrq9qw6q1bhHIZVWyOwoY2koo4w==} + unplugin-auto-import@0.18.3: + resolution: {integrity: sha512-q3FUtGQjYA2e+kb1WumyiQMjHM27MrTQ05QfVwtLRVhyYe+KF6TblBYaEX9L6Z0EibsqaXAiW+RFfkcQpfaXzg==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': ^3.2.2 @@ -8515,6 +8987,19 @@ packages: resolution: {integrity: sha512-aXEH9c5qi3uYZHo0niUtxDlT9ylG/luMW/dZslSCkbtC31wCyFkmM0kyoBBh+Grhn7CL+/kvKLfN61/EdxPxMQ==} engines: {node: '>=14.0.0'} + unplugin@1.14.1: + resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} + engines: {node: '>=14.0.0'} + peerDependencies: + webpack-sources: ^3 + peerDependenciesMeta: + webpack-sources: + optional: true + + untyped@1.5.0: + resolution: {integrity: sha512-o2Vjmn2dal08BzCcINxSmWuAteReUUiXseii5VRhmxyLF0b21K0iKZQ9fMYK7RWspVkY+0saqaVQNq4roe3Efg==} + hasBin: true + upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -8908,8 +9393,8 @@ packages: typescript: optional: true - vuetify@3.7.1: - resolution: {integrity: sha512-N1XlczbgeGt/O+JUk72QPrqcDaRIXUdptUciJqGyTvZ9cfMoSlEWs6TZO+dOOfXbKvmIMFMycYg4dgSHDpCPhg==} + vuetify@3.7.2: + resolution: {integrity: sha512-q0WTcRG977+a9Dqhb8TOaPm+Xmvj0oVhnBJhAdHWFSov3HhHTTxlH2nXP/GBTXZuuMHDbBeIWFuUR2/1Fx0PPw==} engines: {node: ^12.20 || >=14.13} peerDependencies: typescript: '>=4.7' @@ -10120,6 +10605,8 @@ snapshots: dependencies: regenerator-runtime: 0.14.0 + '@babel/standalone@7.25.6': {} + '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 @@ -10224,138 +10711,210 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/aix-ppc64@0.23.1': + optional: true + '@esbuild/android-arm64@0.19.11': optional: true '@esbuild/android-arm64@0.21.5': optional: true + '@esbuild/android-arm64@0.23.1': + optional: true + '@esbuild/android-arm@0.19.11': optional: true '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-arm@0.23.1': + optional: true + '@esbuild/android-x64@0.19.11': optional: true '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/android-x64@0.23.1': + optional: true + '@esbuild/darwin-arm64@0.19.11': optional: true '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.23.1': + optional: true + '@esbuild/darwin-x64@0.19.11': optional: true '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/darwin-x64@0.23.1': + optional: true + '@esbuild/freebsd-arm64@0.19.11': optional: true '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.23.1': + optional: true + '@esbuild/freebsd-x64@0.19.11': optional: true '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.23.1': + optional: true + '@esbuild/linux-arm64@0.19.11': optional: true '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm64@0.23.1': + optional: true + '@esbuild/linux-arm@0.19.11': optional: true '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-arm@0.23.1': + optional: true + '@esbuild/linux-ia32@0.19.11': optional: true '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-ia32@0.23.1': + optional: true + '@esbuild/linux-loong64@0.19.11': optional: true '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-loong64@0.23.1': + optional: true + '@esbuild/linux-mips64el@0.19.11': optional: true '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-mips64el@0.23.1': + optional: true + '@esbuild/linux-ppc64@0.19.11': optional: true '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-ppc64@0.23.1': + optional: true + '@esbuild/linux-riscv64@0.19.11': optional: true '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.23.1': + optional: true + '@esbuild/linux-s390x@0.19.11': optional: true '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-s390x@0.23.1': + optional: true + '@esbuild/linux-x64@0.19.11': optional: true '@esbuild/linux-x64@0.21.5': optional: true + '@esbuild/linux-x64@0.23.1': + optional: true + '@esbuild/netbsd-x64@0.19.11': optional: true '@esbuild/netbsd-x64@0.21.5': optional: true + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + '@esbuild/openbsd-x64@0.19.11': optional: true '@esbuild/openbsd-x64@0.21.5': optional: true + '@esbuild/openbsd-x64@0.23.1': + optional: true + '@esbuild/sunos-x64@0.19.11': optional: true '@esbuild/sunos-x64@0.21.5': optional: true + '@esbuild/sunos-x64@0.23.1': + optional: true + '@esbuild/win32-arm64@0.19.11': optional: true '@esbuild/win32-arm64@0.21.5': optional: true + '@esbuild/win32-arm64@0.23.1': + optional: true + '@esbuild/win32-ia32@0.19.11': optional: true '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-ia32@0.23.1': + optional: true + '@esbuild/win32-x64@0.19.11': optional: true '@esbuild/win32-x64@0.21.5': optional: true + '@esbuild/win32-x64@0.23.1': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -11385,6 +11944,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@rollup/plugin-commonjs@25.0.8(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.2(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.11 + optionalDependencies: + rollup: 3.29.4 + + '@rollup/plugin-json@6.1.0(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.2(rollup@3.29.4) + optionalDependencies: + rollup: 3.29.4 + '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1)': dependencies: '@rollup/pluginutils': 3.1.0(rollup@2.79.1) @@ -11418,6 +11994,13 @@ snapshots: magic-string: 0.25.7 rollup: 3.29.4 + '@rollup/plugin-replace@5.0.7(rollup@3.29.4)': + dependencies: + '@rollup/pluginutils': 5.1.2(rollup@3.29.4) + magic-string: 0.30.11 + optionalDependencies: + rollup: 3.29.4 + '@rollup/plugin-typescript@11.1.6(rollup@3.29.4)(tslib@2.6.2)(typescript@5.5.4)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@3.29.4) @@ -11457,6 +12040,22 @@ snapshots: optionalDependencies: rollup: 4.21.2 + '@rollup/pluginutils@5.1.2(rollup@3.29.4)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 3.29.4 + + '@rollup/pluginutils@5.1.2(rollup@4.21.2)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.21.2 + '@rollup/rollup-android-arm-eabi@4.21.2': optional: true @@ -12233,11 +12832,11 @@ snapshots: vue: 3.4.27(typescript@5.5.4) vue-demi: 0.13.11(vue@3.4.27(typescript@5.5.4)) - '@vuetify/loader-shared@2.0.3(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.1(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)))': + '@vuetify/loader-shared@2.0.3(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)))': dependencies: upath: 2.0.1 vue: 3.4.27(typescript@5.5.4) - vuetify: 3.7.1(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) + vuetify: 3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) optional: true '@vuetify/loader-shared@2.0.3(vue@3.4.27(typescript@5.5.4))(vuetify@packages+vuetify)': @@ -12620,6 +13219,16 @@ snapshots: postcss: 8.4.45 postcss-value-parser: 4.2.0 + autoprefixer@10.4.20(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + caniuse-lite: 1.0.30001646 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.0 + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -13016,6 +13625,10 @@ snapshots: ci-info@4.0.0: {} + citty@0.1.6: + dependencies: + consola: 3.2.3 + cjs-module-lexer@1.2.2: {} clean-stack@2.2.0: {} @@ -13111,6 +13724,8 @@ snapshots: common-tags@1.8.0: {} + commondir@1.0.1: {} + compare-func@1.3.4: dependencies: array-ify: 1.0.0 @@ -13168,6 +13783,8 @@ snapshots: transitivePeerDependencies: - supports-color + consola@3.2.3: {} + console-control-strings@1.1.0: {} content-disposition@0.5.4: @@ -13549,16 +14166,60 @@ snapshots: postcss-svgo: 6.0.3(postcss@8.4.45) postcss-unique-selectors: 6.0.4(postcss@8.4.45) + cssnano-preset-default@7.0.6(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + css-declaration-sorter: 7.2.0(postcss@8.4.45) + cssnano-utils: 5.0.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-calc: 10.0.2(postcss@8.4.45) + postcss-colormin: 7.0.2(postcss@8.4.45) + postcss-convert-values: 7.0.4(postcss@8.4.45) + postcss-discard-comments: 7.0.3(postcss@8.4.45) + postcss-discard-duplicates: 7.0.1(postcss@8.4.45) + postcss-discard-empty: 7.0.0(postcss@8.4.45) + postcss-discard-overridden: 7.0.0(postcss@8.4.45) + postcss-merge-longhand: 7.0.4(postcss@8.4.45) + postcss-merge-rules: 7.0.4(postcss@8.4.45) + postcss-minify-font-values: 7.0.0(postcss@8.4.45) + postcss-minify-gradients: 7.0.0(postcss@8.4.45) + postcss-minify-params: 7.0.2(postcss@8.4.45) + postcss-minify-selectors: 7.0.4(postcss@8.4.45) + postcss-normalize-charset: 7.0.0(postcss@8.4.45) + postcss-normalize-display-values: 7.0.0(postcss@8.4.45) + postcss-normalize-positions: 7.0.0(postcss@8.4.45) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.45) + postcss-normalize-string: 7.0.0(postcss@8.4.45) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.45) + postcss-normalize-unicode: 7.0.2(postcss@8.4.45) + postcss-normalize-url: 7.0.0(postcss@8.4.45) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.45) + postcss-ordered-values: 7.0.1(postcss@8.4.45) + postcss-reduce-initial: 7.0.2(postcss@8.4.45) + postcss-reduce-transforms: 7.0.0(postcss@8.4.45) + postcss-svgo: 7.0.1(postcss@8.4.45) + postcss-unique-selectors: 7.0.3(postcss@8.4.45) + cssnano-utils@4.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 + cssnano-utils@5.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + cssnano@6.1.2(postcss@8.4.45): dependencies: cssnano-preset-default: 6.1.2(postcss@8.4.45) lilconfig: 3.1.1 postcss: 8.4.45 + cssnano@7.0.6(postcss@8.4.45): + dependencies: + cssnano-preset-default: 7.0.6(postcss@8.4.45) + lilconfig: 3.1.2 + postcss: 8.4.45 + csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -13719,6 +14380,8 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + defu@6.1.4: {} + degenerator@5.0.1: dependencies: ast-types: 0.13.4 @@ -14029,6 +14692,33 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + escalade@3.1.2: {} escape-html@1.0.3: {} @@ -14200,12 +14890,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-vuetify@2.3.0(eslint@8.57.0)(vuetify@3.7.1(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))): + eslint-plugin-vuetify@2.3.0(eslint@8.57.0)(vuetify@3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))): dependencies: eslint: 8.57.0 eslint-plugin-vue: 9.24.1(eslint@8.57.0) requireindex: 1.2.0 - vuetify: 3.7.1(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) + vuetify: 3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) transitivePeerDependencies: - supports-color @@ -14778,6 +15468,14 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globby@13.2.2: + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 4.0.0 + gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 @@ -15248,6 +15946,10 @@ snapshots: is-potential-custom-element-name@1.0.1: {} + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.5 + is-regex@1.1.4: dependencies: call-bind: 1.0.7 @@ -15750,6 +16452,10 @@ snapshots: - supports-color - ts-node + jiti@1.21.6: {} + + jiti@2.0.0: {} + js-beautify@1.14.11: dependencies: config-chain: 1.1.13 @@ -15759,6 +16465,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.0: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -16014,6 +16722,8 @@ snapshots: lilconfig@3.1.1: {} + lilconfig@3.1.2: {} + lines-and-columns@1.1.6: {} lines-and-columns@2.0.4: {} @@ -16456,6 +17166,26 @@ snapshots: mkdirp@3.0.1: {} + mkdist@1.5.9(sass@1.77.8)(typescript@5.5.4)(vue-tsc@2.0.29(typescript@5.5.4)): + dependencies: + autoprefixer: 10.4.20(postcss@8.4.45) + citty: 0.1.6 + cssnano: 7.0.6(postcss@8.4.45) + defu: 6.1.4 + esbuild: 0.23.1 + fast-glob: 3.3.2 + jiti: 1.21.6 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + postcss: 8.4.45 + postcss-nested: 6.2.0(postcss@8.4.45) + semver: 7.6.3 + optionalDependencies: + sass: 1.77.8 + typescript: 5.5.4 + vue-tsc: 2.0.29(typescript@5.5.4) + mlly@1.7.1: dependencies: acorn: 8.12.1 @@ -16467,6 +17197,8 @@ snapshots: moment@2.30.1: {} + mri@1.2.0: {} + mrmime@2.0.0: {} ms@2.0.0: {} @@ -17098,6 +17830,12 @@ snapshots: mlly: 1.7.1 pathe: 1.1.2 + pkg-types@1.2.0: + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-up@3.1.0: dependencies: find-up: 3.0.0 @@ -17108,6 +17846,12 @@ snapshots: possible-typed-array-names@1.0.0: {} + postcss-calc@10.0.2(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + postcss-calc@9.0.1(postcss@8.4.45): dependencies: postcss: 8.4.45 @@ -17122,34 +17866,71 @@ snapshots: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-colormin@7.0.2(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-convert-values@6.1.0(postcss@8.4.45): dependencies: browserslist: 4.23.3 postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-convert-values@7.0.4(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-discard-comments@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 + postcss-discard-comments@7.0.3(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + postcss-discard-duplicates@6.0.3(postcss@8.4.45): dependencies: postcss: 8.4.45 + postcss-discard-duplicates@7.0.1(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-discard-empty@6.0.3(postcss@8.4.45): dependencies: postcss: 8.4.45 + postcss-discard-empty@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-discard-overridden@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 + postcss-discard-overridden@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-merge-longhand@6.0.5(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 stylehacks: 6.1.1(postcss@8.4.45) + postcss-merge-longhand@7.0.4(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.4(postcss@8.4.45) + postcss-merge-rules@6.1.1(postcss@8.4.45): dependencies: browserslist: 4.23.3 @@ -17158,11 +17939,24 @@ snapshots: postcss: 8.4.45 postcss-selector-parser: 6.0.16 + postcss-merge-rules@7.0.4(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + postcss-minify-font-values@6.1.0(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-minify-font-values@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-minify-gradients@6.0.3(postcss@8.4.45): dependencies: colord: 2.9.3 @@ -17170,6 +17964,13 @@ snapshots: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-minify-gradients@7.0.0(postcss@8.4.45): + dependencies: + colord: 2.9.3 + cssnano-utils: 5.0.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-minify-params@6.1.0(postcss@8.4.45): dependencies: browserslist: 4.23.3 @@ -17177,89 +17978,185 @@ snapshots: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-minify-params@7.0.2(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + cssnano-utils: 5.0.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-minify-selectors@6.0.4(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-selector-parser: 6.0.16 + postcss-minify-selectors@7.0.4(postcss@8.4.45): + dependencies: + cssesc: 3.0.0 + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + + postcss-nested@6.2.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + postcss-normalize-charset@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 + postcss-normalize-charset@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-normalize-display-values@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-normalize-display-values@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-normalize-positions@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-normalize-positions@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-normalize-repeat-style@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-normalize-repeat-style@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-normalize-string@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-normalize-string@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-normalize-timing-functions@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-normalize-timing-functions@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-normalize-unicode@6.1.0(postcss@8.4.45): dependencies: browserslist: 4.23.3 postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-normalize-unicode@7.0.2(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-normalize-url@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-normalize-url@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-normalize-whitespace@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-normalize-whitespace@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-ordered-values@6.0.2(postcss@8.4.45): dependencies: cssnano-utils: 4.0.2(postcss@8.4.45) postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-ordered-values@7.0.1(postcss@8.4.45): + dependencies: + cssnano-utils: 5.0.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-reduce-initial@6.1.0(postcss@8.4.45): dependencies: browserslist: 4.23.3 caniuse-api: 3.0.0 postcss: 8.4.45 + postcss-reduce-initial@7.0.2(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + postcss: 8.4.45 + postcss-reduce-transforms@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 + postcss-reduce-transforms@7.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-svgo@6.0.3(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 svgo: 3.2.0 + postcss-svgo@7.0.1(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + svgo: 3.3.2 + postcss-unique-selectors@6.0.4(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-selector-parser: 6.0.16 + postcss-unique-selectors@7.0.3(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + postcss-value-parser@4.2.0: {} postcss@8.4.45: @@ -17860,7 +18757,7 @@ snapshots: dependencies: xmlchars: 2.2.0 - scule@1.2.0: {} + scule@1.3.0: {} search-insights@2.13.0: {} @@ -18201,9 +19098,9 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@1.3.0: + strip-literal@2.1.0: dependencies: - acorn: 8.12.1 + js-tokens: 9.0.0 strnum@1.0.5: {} @@ -18219,6 +19116,12 @@ snapshots: postcss: 8.4.45 postcss-selector-parser: 6.0.16 + stylehacks@7.0.4(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -18250,6 +19153,16 @@ snapshots: csso: 5.0.5 picocolors: 1.1.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 + symbol-tree@3.2.4: {} tar-fs@3.0.4: @@ -18552,6 +19465,39 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + unbuild@2.0.0(sass@1.77.8)(typescript@5.5.4)(vue-tsc@2.0.29(typescript@5.5.4)): + dependencies: + '@rollup/plugin-alias': 5.1.0(rollup@3.29.4) + '@rollup/plugin-commonjs': 25.0.8(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.7(rollup@3.29.4) + '@rollup/pluginutils': 5.1.2(rollup@3.29.4) + chalk: 5.3.0 + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + esbuild: 0.19.11 + globby: 13.2.2 + hookable: 5.5.3 + jiti: 1.21.6 + magic-string: 0.30.11 + mkdist: 1.5.9(sass@1.77.8)(typescript@5.5.4)(vue-tsc@2.0.29(typescript@5.5.4)) + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + pretty-bytes: 6.1.1 + rollup: 3.29.4 + rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.5.4) + scule: 1.3.0 + untyped: 1.5.0 + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - sass + - supports-color + - vue-tsc + unbzip2-stream@1.4.3: dependencies: buffer: 5.7.1 @@ -18577,9 +19523,9 @@ snapshots: unicode-property-aliases-ecmascript@2.0.0: {} - unimport@3.7.1(rollup@3.29.4): + unimport@3.13.1(rollup@3.29.4)(webpack-sources@3.2.3): dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@rollup/pluginutils': 5.1.2(rollup@3.29.4) acorn: 8.12.1 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 @@ -18588,16 +19534,17 @@ snapshots: magic-string: 0.30.11 mlly: 1.7.1 pathe: 1.1.2 - pkg-types: 1.1.3 - scule: 1.2.0 - strip-literal: 1.3.0 - unplugin: 1.12.1 + pkg-types: 1.2.0 + scule: 1.3.0 + strip-literal: 2.1.0 + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - rollup + - webpack-sources - unimport@3.7.1(rollup@4.21.2): + unimport@3.13.1(rollup@4.21.2)(webpack-sources@3.2.3): dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + '@rollup/pluginutils': 5.1.2(rollup@4.21.2) acorn: 8.12.1 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 @@ -18606,12 +19553,13 @@ snapshots: magic-string: 0.30.11 mlly: 1.7.1 pathe: 1.1.2 - pkg-types: 1.1.3 - scule: 1.2.0 - strip-literal: 1.3.0 - unplugin: 1.12.1 + pkg-types: 1.2.0 + scule: 1.3.0 + strip-literal: 2.1.0 + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - rollup + - webpack-sources unique-filename@3.0.0: dependencies: @@ -18633,7 +19581,7 @@ snapshots: unpipe@1.0.0: {} - unplugin-auto-import@0.17.5(rollup@3.29.4): + unplugin-auto-import@0.18.3(rollup@3.29.4)(webpack-sources@3.2.3): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@3.29.4) @@ -18641,12 +19589,13 @@ snapshots: local-pkg: 0.5.0 magic-string: 0.30.11 minimatch: 9.0.5 - unimport: 3.7.1(rollup@3.29.4) - unplugin: 1.12.1 + unimport: 3.13.1(rollup@3.29.4)(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - rollup + - webpack-sources - unplugin-auto-import@0.17.5(rollup@4.21.2): + unplugin-auto-import@0.18.3(rollup@4.21.2)(webpack-sources@3.2.3): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.21.2) @@ -18654,10 +19603,11 @@ snapshots: local-pkg: 0.5.0 magic-string: 0.30.11 minimatch: 9.0.5 - unimport: 3.7.1(rollup@4.21.2) - unplugin: 1.12.1 + unimport: 3.13.1(rollup@4.21.2)(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - rollup + - webpack-sources unplugin-fonts@1.0.3(vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.77.8)(sass@1.77.8)(terser@5.31.3)): dependencies: @@ -18710,6 +19660,25 @@ snapshots: webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.2 + unplugin@1.14.1(webpack-sources@3.2.3): + dependencies: + acorn: 8.12.1 + webpack-virtual-modules: 0.6.2 + optionalDependencies: + webpack-sources: 3.2.3 + + untyped@1.5.0: + dependencies: + '@babel/core': 7.25.2 + '@babel/standalone': 7.25.6 + '@babel/types': 7.25.6 + defu: 6.1.4 + jiti: 2.0.0 + mri: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color + upath@1.2.0: {} upath@2.0.1: {} @@ -18858,14 +19827,14 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-vuetify@2.0.4(vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.77.8)(sass@1.77.8)(terser@5.31.3))(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.1): + vite-plugin-vuetify@2.0.4(vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.77.8)(sass@1.77.8)(terser@5.31.3))(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.2): dependencies: - '@vuetify/loader-shared': 2.0.3(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.1(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))) + '@vuetify/loader-shared': 2.0.3(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4))) debug: 4.3.7 upath: 2.0.1 vite: 5.4.3(@types/node@22.5.4)(sass-embedded@1.77.8)(sass@1.77.8)(terser@5.31.3) vue: 3.4.27(typescript@5.5.4) - vuetify: 3.7.1(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) + vuetify: 3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)) transitivePeerDependencies: - supports-color optional: true @@ -19132,12 +20101,12 @@ snapshots: optionalDependencies: typescript: 5.5.4 - vuetify@3.7.1(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)): + vuetify@3.7.2(typescript@5.5.4)(vite-plugin-vuetify@2.0.4)(vue@3.4.27(typescript@5.5.4)): dependencies: vue: 3.4.27(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 - vite-plugin-vuetify: 2.0.4(vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.77.8)(sass@1.77.8)(terser@5.31.3))(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.1) + vite-plugin-vuetify: 2.0.4(vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.77.8)(sass@1.77.8)(terser@5.31.3))(vue@3.4.27(typescript@5.5.4))(vuetify@3.7.2) w3c-xmlserializer@5.0.0: dependencies: From 17e86b320f42134b1ce9ce0e37ad8f1744e44857 Mon Sep 17 00:00:00 2001 From: userquin Date: Sun, 29 Sep 2024 22:07:43 +0200 Subject: [PATCH 02/15] chore: add missing composables aliases --- packages/vuetify/src/unplugin/unimport.ts | 28 +++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/vuetify/src/unplugin/unimport.ts b/packages/vuetify/src/unplugin/unimport.ts index 98b9cbabd7c..59365176c8d 100644 --- a/packages/vuetify/src/unplugin/unimport.ts +++ b/packages/vuetify/src/unplugin/unimport.ts @@ -30,7 +30,7 @@ export interface VuetifyDirectivesOptions { export function VuetifyComposables (options: VuetifyComposablesOptions = {}) { const { prefix } = options - const composableImports: [link: string, name: string][] = [ + const composableImports: [link: string, name: string, renamed?: string][] = [ ['use-date', 'useDate'], ['use-defaults', 'useDefaults'], ['use-display', 'useDisplay'], @@ -40,15 +40,16 @@ export function VuetifyComposables (options: VuetifyComposablesOptions = {}) { ['use-rtl', 'useRtl'], ['use-theme', 'useTheme'], ] - const imports: typeof composableImports = typeof prefix === 'string' - ? composableImports.map(([l, n]) => [l, n.replace('use', `use${prefix}`)]) + const imports = typeof prefix === 'string' + ? composableImports.map(([l, n]) => [l, n, n.replace('use', `use${prefix}`)]) : prefix - ? composableImports.map(([l, n]) => [l, n.replace('use', 'useV')]) + ? composableImports.map(([l, n]) => [l, n, n.replace('use', 'useV')]) : composableImports return { from: 'vuetify', - imports: imports.map(([link, name]) => ({ + imports: imports.map(([link, name, renamed]) => ({ name, + as: renamed, meta: { docsUrl: `https://vuetifyjs.com/en/api/${link}/` }, } satisfies PresetImport)), } satisfies Preset @@ -66,21 +67,24 @@ export function VuetifyOneComposables (options: VuetifyOneComposablesOptions = { 'useSettingsStore', 'useProductsStore', ] - const imports: typeof composableImports = typeof prefix === 'string' + const imports = typeof prefix === 'string' ? composableImports.map(n => n.startsWith('create') - ? n.replace('create', `create${prefix}`) - : n.replace('use', `use${prefix}`) + ? [n, n.replace('create', `create${prefix}`)] + : [n, n.replace('use', `use${prefix}`)] ) : prefix ? composableImports.map(n => n.startsWith('create') - ? n.replace('create', 'createV') - : n.replace('use', 'useV') + ? [n, n.replace('create', 'createV')] + : [n, n.replace('use', 'useV')] ) - : composableImports + : composableImports.map(n => [n]) return { from: '@vuetify/one', - imports, + imports: imports.map(([name, renamed]) => ({ + name, + as: renamed, + } satisfies PresetImport)), } satisfies Preset } From 89ee24f0b30d20b05157c07d4eab30fbe05ea1b6 Mon Sep 17 00:00:00 2001 From: userquin Date: Sun, 29 Sep 2024 22:19:08 +0200 Subject: [PATCH 03/15] chore: remove styles --- packages/vuetify/src/unplugin/types.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/vuetify/src/unplugin/types.ts b/packages/vuetify/src/unplugin/types.ts index 7fe98786c8c..6a95f9b82a1 100644 --- a/packages/vuetify/src/unplugin/types.ts +++ b/packages/vuetify/src/unplugin/types.ts @@ -1,6 +1,5 @@ export interface VuetifyComponent { from: string - styles?: string[] } // eslint-disable-next-line @typescript-eslint/consistent-type-imports export type ComponentName = keyof typeof import('vuetify/components') From c8c1221c7deb7102a2b2c420637b40c332383154 Mon Sep 17 00:00:00 2001 From: userquin Date: Sun, 29 Sep 2024 22:19:37 +0200 Subject: [PATCH 04/15] chore: cleanup components --- packages/vuetify/src/unplugin/unimport.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vuetify/src/unplugin/unimport.ts b/packages/vuetify/src/unplugin/unimport.ts index 59365176c8d..d59dbc78540 100644 --- a/packages/vuetify/src/unplugin/unimport.ts +++ b/packages/vuetify/src/unplugin/unimport.ts @@ -30,7 +30,7 @@ export interface VuetifyDirectivesOptions { export function VuetifyComposables (options: VuetifyComposablesOptions = {}) { const { prefix } = options - const composableImports: [link: string, name: string, renamed?: string][] = [ + const composableImports: [link: string, name: string][] = [ ['use-date', 'useDate'], ['use-defaults', 'useDefaults'], ['use-display', 'useDisplay'], From 7af30b93e728a386f9ea7b1bfaf4cb69797a3066 Mon Sep 17 00:00:00 2001 From: userquin Date: Mon, 30 Sep 2024 11:41:52 +0200 Subject: [PATCH 05/15] chore: remove Vuetify One composables from unimport --- packages/docs/vite.config.mts | 13 ++++- packages/vuetify/src/unplugin/unimport.ts | 64 +++++------------------ 2 files changed, 24 insertions(+), 53 deletions(-) diff --git a/packages/docs/vite.config.mts b/packages/docs/vite.config.mts index c17d0f6e9ad..dc55000d55d 100644 --- a/packages/docs/vite.config.mts +++ b/packages/docs/vite.config.mts @@ -23,7 +23,7 @@ import { Examples } from './build/examples-plugin' import { genAppMetaInfo } from './src/utils/metadata' import { MdiJs } from './build/mdi-js' import { frontmatterBuilder, getRouteMeta, scriptFixer } from './build/markdownBuilders' -import { VuetifyComposables, VuetifyDirectives, VuetifyOneComposables } from 'vuetify/unimport' +import { VuetifyComposables, VuetifyDirectives } from 'vuetify/unimport' const resolve = (file: string) => fileURLToPath(new URL(file, import.meta.url)) @@ -98,8 +98,17 @@ export default defineConfig(({ command, mode, isSsrBuild }) => { 'pinia', VuetifyComposables(), VuetifyDirectives(), - VuetifyOneComposables(), { + '@vuetify/one': [ + 'createOne', + 'useAuthStore', + 'useHttpStore', + 'useOneStore', + 'useUserStore', + 'useQueueStore', + 'useSettingsStore', + 'useProductsStore', + ], 'lodash-es': ['camelCase', 'kebabCase', 'upperFirst'], vue: ['camelize', 'mergeProps'], 'vue-gtag-next': ['useGtag'], diff --git a/packages/vuetify/src/unplugin/unimport.ts b/packages/vuetify/src/unplugin/unimport.ts index d59dbc78540..6f3f6894fb4 100644 --- a/packages/vuetify/src/unplugin/unimport.ts +++ b/packages/vuetify/src/unplugin/unimport.ts @@ -4,15 +4,7 @@ import type { DirectiveName } from './types' export interface VuetifyComposablesOptions { /** - * Prefix Vuetify composables: - * - when prefix set to `true` will use `useV`: `useVDate`. - * - when prefix is a string will use `use`: `useVuetifyDate` with `prefix: 'Vuetify'`. - */ - prefix?: true | string -} -export interface VuetifyOneComposablesOptions { - /** - * Prefix Vuetify composables: + * Prefix Vuetify composables (to allow use other composables with the same name): * - when prefix set to `true` will use `useV`: `useVDate`. * - when prefix is a string will use `use`: `useVuetifyDate` with `prefix: 'Vuetify'`. */ @@ -21,10 +13,13 @@ export interface VuetifyOneComposablesOptions { export interface VuetifyDirectivesOptions { /** - * Prefix Vuetify directives: + * Prefix Vuetify directives (to allow use other directives with the same name): * - when prefix set to `true` will use `Vuetify` => `v-vuetify-: `v-vuetify-ripple`. */ prefix?: true + /** + * Directives to exclude. + */ exclude?: DirectiveName[] } @@ -47,51 +42,17 @@ export function VuetifyComposables (options: VuetifyComposablesOptions = {}) { : composableImports return { from: 'vuetify', - imports: imports.map(([link, name, renamed]) => ({ + imports: imports.map(([link, name, renamed]) => ({ name, as: renamed, meta: { docsUrl: `https://vuetifyjs.com/en/api/${link}/` }, - } satisfies PresetImport)), - } satisfies Preset -} - -export function VuetifyOneComposables (options: VuetifyOneComposablesOptions = {}) { - const { prefix } = options - const composableImports: string[] = [ - 'createOne', - 'useAuthStore', - 'useHttpStore', - 'useOneStore', - 'useUserStore', - 'useQueueStore', - 'useSettingsStore', - 'useProductsStore', - ] - const imports = typeof prefix === 'string' - ? composableImports.map(n => n.startsWith('create') - ? [n, n.replace('create', `create${prefix}`)] - : [n, n.replace('use', `use${prefix}`)] - ) - : prefix - ? composableImports.map(n => n.startsWith('create') - ? [n, n.replace('create', 'createV')] - : [n, n.replace('use', 'useV')] - ) - : composableImports.map(n => [n]) - - return { - from: '@vuetify/one', - imports: imports.map(([name, renamed]) => ({ - name, - as: renamed, - } satisfies PresetImport)), + })), } satisfies Preset } export function VuetifyDirectives (options: VuetifyDirectivesOptions = {}) { const { exclude, prefix } = options - type Directive = [link: string, name: DirectiveName] - const directives = ([ + const directivesImports: [link: string, name: DirectiveName][] = [ ['click-outside', 'ClickOutside'], ['intersect', 'Intersect'], ['mutate', 'Mutate'], @@ -100,18 +61,19 @@ export function VuetifyDirectives (options: VuetifyDirectivesOptions = {}) { ['scroll', 'Scroll'], ['touch', 'Touch'], ['tooltip', 'Tooltip'], - ] satisfies Directive[]) - .filter(entry => !exclude || !exclude.includes(entry[1])) + ] + + const directives = directivesImports.filter(entry => !exclude || !exclude.includes(entry[1])) return { from: 'vuetify/directives', meta: { vueDirective: true, }, - imports: directives.map(([link, name]) => ({ + imports: directives.map(([link, name]) => ({ name, as: prefix ? `Vuetify${name}` : undefined, meta: { docsUrl: `https://vuetifyjs.com/en/api/${link}/` }, - } satisfies PresetImport)), + })), } satisfies Preset } From c190d1b52a6541e2af296e7aed5b05713752b50c Mon Sep 17 00:00:00 2001 From: userquin Date: Mon, 30 Sep 2024 11:53:51 +0200 Subject: [PATCH 06/15] chore: add directives prefix to `unplugin-vue-components` --- packages/vuetify/src/unplugin/components.ts | 61 +++++++++++++++++++-- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/packages/vuetify/src/unplugin/components.ts b/packages/vuetify/src/unplugin/components.ts index eccb54c9db9..af52e2831ea 100644 --- a/packages/vuetify/src/unplugin/components.ts +++ b/packages/vuetify/src/unplugin/components.ts @@ -10,18 +10,55 @@ import type { import { resolveVuetifyImportMap, resolveVuetifyImportMaps } from './utils' export interface VuetifyComponentResolverOptions { + /** + * Include labs components?. + * + * @default false + */ labs?: boolean + /** + * Components to exclude. + */ exclude?: (ComponentName | LabComponentName)[] + /** + * Paths to locate Vuetify package. + * + * @default [procces.cwd()] + */ paths?: string[] } export interface VuetifyDirectivesResolverOptions { + /** + * Prefix Vuetify directives (to allow use other directives with the same name): + * - when prefix set to `true` will use `Vuetify` => `v-vuetify-: `v-vuetify-ripple`. + */ + prefix?: true + /** + * Directives to exclude. + */ exclude?: DirectiveName[] + /** + * Paths to locate Vuetify package. + * + * @default [procces.cwd()] + */ paths?: string[] } export interface VuetifyVueResolverOptions extends Omit { + /** + * Prefix Vuetify directives (to allow use other directives with the same name): + * - when prefix set to `true` will use `Vuetify` => `v-vuetify-: `v-vuetify-ripple`. + */ + prefixDirectives?: true + /** + * Directives to exclude. + */ excludeDirectives?: DirectiveName[] + /** + * Components to exclude. + */ excludeComponents?: (ComponentName | LabComponentName)[] } @@ -31,13 +68,14 @@ export function VuetifyVueResolver (options: VuetifyVueResolverOptions = {}) { excludeDirectives, labs, excludeComponents, + prefixDirectives, } = options const [componentsPromise, directivesPromise] = resolveVuetifyImportMaps(paths) const directives = createDirectivesResolver( componentsPromise, - { exclude: excludeDirectives, paths } + { exclude: excludeDirectives, paths, prefix: prefixDirectives } ) const components = createComponentsResolver( [componentsPromise, directivesPromise], @@ -84,19 +122,30 @@ function createComponentsResolver ( } function createDirectivesResolver (promise: Promise, options: VuetifyDirectivesResolverOptions) { - const { exclude } = options + const { exclude, prefix } = options + // Vue will transform v- to _resolveDirective('') + // If prefix enabled, Vue will transform v-vuetify- to _resolveDirective('vuetify-') + // unplugin-vue-components will provide the correct import when calling resolve: PascalCase() + // If prefix enabled, unplugin-vue-components will provide PascalCase(vuetify-) return { type: 'directive', - resolve: async name => { + resolve: async resolvedName => { + let name = resolvedName + if (prefix) { + if (!name.startsWith('Vuetify')) { + return undefined + } + name = name.slice('Vuetify'.length) + } if (exclude?.some(e => e === name)) return undefined const { directives } = await promise const directive = name in directives ? directives[name] : undefined if (!directive) return undefined return { - name: 'default', - as: name, - from: `vuetify/directives/${String(directive)}`, + name, + as: prefix ? `Vuetify${name}` : undefined, + from: `vuetify/directives`, } }, } satisfies ComponentResolver From 7db04957cca605b91a02c73c5ac59fe48a16f5b7 Mon Sep 17 00:00:00 2001 From: userquin Date: Mon, 30 Sep 2024 11:54:26 +0200 Subject: [PATCH 07/15] chore: remove `vueDirectives` in docs --- packages/docs/vite.config.mts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/vite.config.mts b/packages/docs/vite.config.mts index dc55000d55d..3ba56000262 100644 --- a/packages/docs/vite.config.mts +++ b/packages/docs/vite.config.mts @@ -120,7 +120,7 @@ export default defineConfig(({ command, mode, isSsrBuild }) => { // this option will create the `v` for Vuetify directives in vue module augmentation // Volar will show Vuetify directives (VSCode only) // check it here: packages/docs/src/examples/v-ripple/misc-custom-color.vue - vueDirectives: true, + // vueDirectives: true, }), // https://github.com/stafyniaksacha/vite-plugin-fonts From b082e1460c14ffc2dd1e3fb7c3174e6855d5fdcf Mon Sep 17 00:00:00 2001 From: userquin Date: Mon, 30 Sep 2024 12:48:14 +0200 Subject: [PATCH 08/15] chore: review directive types and logic --- packages/vuetify/src/unplugin/components.ts | 15 +++++++++------ packages/vuetify/src/unplugin/types.ts | 5 +---- packages/vuetify/src/unplugin/utils.ts | 1 + 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/vuetify/src/unplugin/components.ts b/packages/vuetify/src/unplugin/components.ts index af52e2831ea..178626da2ff 100644 --- a/packages/vuetify/src/unplugin/components.ts +++ b/packages/vuetify/src/unplugin/components.ts @@ -23,7 +23,7 @@ export interface VuetifyComponentResolverOptions { /** * Paths to locate Vuetify package. * - * @default [procces.cwd()] + * @default [process.cwd()] */ paths?: string[] } @@ -41,7 +41,7 @@ export interface VuetifyDirectivesResolverOptions { /** * Paths to locate Vuetify package. * - * @default [procces.cwd()] + * @default [process.cwd()] */ paths?: string[] } @@ -121,7 +121,10 @@ function createComponentsResolver ( } satisfies ComponentResolver } -function createDirectivesResolver (promise: Promise, options: VuetifyDirectivesResolverOptions) { +function createDirectivesResolver ( + promise: Promise, + options: VuetifyDirectivesResolverOptions +) { const { exclude, prefix } = options // Vue will transform v- to _resolveDirective('') // If prefix enabled, Vue will transform v-vuetify- to _resolveDirective('vuetify-') @@ -139,12 +142,12 @@ function createDirectivesResolver (promise: Promise, options: } if (exclude?.some(e => e === name)) return undefined const { directives } = await promise - const directive = name in directives ? directives[name] : undefined - + const directive = directives.includes(name as DirectiveName) if (!directive) return undefined + return { name, - as: prefix ? `Vuetify${name}` : undefined, + as: prefix ? resolvedName : undefined, from: `vuetify/directives`, } }, diff --git a/packages/vuetify/src/unplugin/types.ts b/packages/vuetify/src/unplugin/types.ts index 6a95f9b82a1..64780dacf4f 100644 --- a/packages/vuetify/src/unplugin/types.ts +++ b/packages/vuetify/src/unplugin/types.ts @@ -10,12 +10,9 @@ export type DirectiveName = keyof typeof import('vuetify/directives') export interface VuetifyComponents { [key: string]: VuetifyComponent } -export interface VuetifyDirectives { - [key: string]: DirectiveName -} export interface ImportComponents { components: VuetifyComponents - directives: VuetifyDirectives + directives: DirectiveName[] } export interface ImportLabsComponents { [key: string]: VuetifyComponent diff --git a/packages/vuetify/src/unplugin/utils.ts b/packages/vuetify/src/unplugin/utils.ts index 58f545639a9..84e28a9e2ff 100644 --- a/packages/vuetify/src/unplugin/utils.ts +++ b/packages/vuetify/src/unplugin/utils.ts @@ -1,6 +1,7 @@ import { readFile } from 'node:fs/promises' import path from 'upath' import { createRequire } from 'node:module' +import process from 'node:process' // Types import type { ImportComponents, ImportLabsComponents, ImportMaps } from './types' From a3a253f8fa7bc23f2094f2325a244bcf9b015b09 Mon Sep 17 00:00:00 2001 From: userquin Date: Mon, 30 Sep 2024 12:48:36 +0200 Subject: [PATCH 09/15] chore: move unimport package exports --- packages/vuetify/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vuetify/package.json b/packages/vuetify/package.json index feb95c6720f..e576bb69c50 100755 --- a/packages/vuetify/package.json +++ b/packages/vuetify/package.json @@ -77,7 +77,6 @@ "./labs/components": "./lib/labs/components.mjs", "./labs/*": "./lib/labs/*/index.mjs", "./util/colors": "./lib/util/colors.mjs", - "./*": "./*", "./unplugin-vue-components": { "import": "./unplugin-vue-components/index.mjs", "require": "./unplugin-vue-components/index.cjs" @@ -85,7 +84,8 @@ "./unimport": { "import": "./unimport/index.mjs", "require": "./unimport/index.cjs" - } + }, + "./*": "./*" }, "typesVersions": { "*": { From 4a8cd5d84f08be5f695814a655c079ef1dd6fe64 Mon Sep 17 00:00:00 2001 From: userquin Date: Mon, 30 Sep 2024 12:49:57 +0200 Subject: [PATCH 10/15] chore: use `unplugin-vue-components` in playground --- packages/vuetify/dev/vuetify.js | 2 -- packages/vuetify/vite.config.mts | 23 +++++++---------------- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/packages/vuetify/dev/vuetify.js b/packages/vuetify/dev/vuetify.js index 38148f5541e..57c6dd0df16 100644 --- a/packages/vuetify/dev/vuetify.js +++ b/packages/vuetify/dev/vuetify.js @@ -2,7 +2,6 @@ import '@mdi/font/css/materialdesignicons.css' import '@/styles/main.sass' import { createVuetify } from '@/framework' -import * as directives from '@/directives' import date from './vuetify/date' import defaults from './vuetify/defaults' @@ -10,7 +9,6 @@ import icons from './vuetify/icons' import locale from './vuetify/locale' export default createVuetify({ - directives, ssr: !!process.env.VITE_SSR, date, defaults, diff --git a/packages/vuetify/vite.config.mts b/packages/vuetify/vite.config.mts index 06ba4e9b222..16ac5dc0334 100644 --- a/packages/vuetify/vite.config.mts +++ b/packages/vuetify/vite.config.mts @@ -9,22 +9,14 @@ import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import Components from 'unplugin-vue-components/vite' import { warmup } from 'vite-plugin-warmup' +import { VuetifyComponentResolver, VuetifyDirectiveResolver } from './src/unplugin/components' +import Inspect from 'vite-plugin-inspect' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const resolve = (file: string) => path.resolve(__dirname, file) const vuetifyPackage = JSON.parse(fs.readFileSync('./package.json', 'utf-8')) -const index = readFileSync(resolve('src/components/index.ts'), { encoding: 'utf8' }) -const block = Array.from(index.matchAll(/^\/\/ export \* from '\.\/(.*)'$/gm), m => m[1]) -const files = fg.sync(['src/components/**/index.ts', 'src/labs/**/index.ts'], { cwd: __dirname }) -const components = files.filter(file => file.startsWith('src/labs') || !block.some(name => file.includes(`/${name}/`))) -const map = new Map(components.flatMap(file => { - const src = readFileSync(file, { encoding: 'utf8' }) - const matches = src.matchAll(/export const (V\w+)|export { (V\w+) }/gm) - return Array.from(matches, m => [m[1] || m[2], file.replace('src/', '@/').replace('.ts', '')]) -})) - const viteSSR = process.env.TEST ? () => null : (await import('vite-ssr/plugin.js').then(m => m.default)) export default defineConfig(({ mode }) => { @@ -45,6 +37,7 @@ export default defineConfig(({ mode }) => { resolve: { alias: [ { find: /^vuetify$/, replacement: resolve('./src/framework.ts') }, + { find: /^vuetify\/directives$/, replacement: resolve('./src/directives/index.ts') }, { find: /^vuetify\/(.*)/, replacement: resolve('./$1') }, { find: /^@\/(.*)/, replacement: resolve('./src/$1') }, ], @@ -55,15 +48,13 @@ export default defineConfig(({ mode }) => { viteSSR(), Components({ dts: !process.env.TEST, + directives: true, resolvers: [ - name => { - if (map.has(name)) { - return { name, from: map.get(name)! } - } - return undefined - }, + VuetifyComponentResolver({ labs: true, paths: [__dirname] }), + VuetifyDirectiveResolver({ paths: [__dirname] }), ], }), + Inspect(), warmup({ clientFiles: process.env.TEST ? [] : ['./dev/index.html'], }), From 278634a5c5846e564eb25587acf97e423a61ee0f Mon Sep 17 00:00:00 2001 From: userquin Date: Mon, 30 Sep 2024 23:38:16 +0200 Subject: [PATCH 11/15] chore: move `unplugin` build to rollup --- packages/vuetify/.eslintignore | 2 + packages/vuetify/build.config.mts | 94 -- packages/vuetify/build/constants.mjs | 17 + packages/vuetify/build/rollup.config.mjs | 24 +- .../vuetify/build/rollup.types.config.mjs | 17 +- packages/vuetify/build/unplugin-config.mjs | 115 +++ packages/vuetify/package.json | 4 +- packages/vuetify/src/unplugin/components.ts | 8 +- packages/vuetify/src/unplugin/unimport.ts | 10 +- packages/vuetify/src/unplugin/utils.ts | 4 + packages/vuetify/tsconfig.checks.json | 4 +- packages/vuetify/vite.config.mts | 3 +- pnpm-lock.yaml | 906 +----------------- 13 files changed, 178 insertions(+), 1030 deletions(-) delete mode 100644 packages/vuetify/build.config.mts create mode 100644 packages/vuetify/build/constants.mjs create mode 100644 packages/vuetify/build/unplugin-config.mjs diff --git a/packages/vuetify/.eslintignore b/packages/vuetify/.eslintignore index bb42ae50b64..393b6a4e83b 100644 --- a/packages/vuetify/.eslintignore +++ b/packages/vuetify/.eslintignore @@ -8,6 +8,8 @@ /lib/ /lib-temp/ /dist/ +/unimport/ +/unplugin-vue-components/ /cypress/ *.spec.cy.ts *.spec.cy.tsx diff --git a/packages/vuetify/build.config.mts b/packages/vuetify/build.config.mts deleted file mode 100644 index c331279b0bc..00000000000 --- a/packages/vuetify/build.config.mts +++ /dev/null @@ -1,94 +0,0 @@ -import { defineBuildConfig } from 'unbuild' -import { version, devDependencies } from './package.json' -import path from 'upath' -import { fileURLToPath } from 'url' -import { readFile, rm, writeFile } from 'node:fs/promises' - -const rootDir = path.resolve(fileURLToPath(import.meta.url), '..') - -const externals = Array.from(Object.keys(devDependencies)) - -const banner = `/*! -* Vuetify v${version} -* Forged by John Leider -* Released under the MIT License. -*/\n` - -export default defineBuildConfig([{ - rootDir, - entries: [{ - input: `${rootDir}/src/unplugin/components.ts`, - name: 'index', - declaration: true, - outDir: 'unplugin-vue-components', - cleanDist: true, - }], - outDir: 'unplugin-vue-components', - declaration: true, - failOnWarn: false, - externals: [ - 'vuetify', - 'unplugin-vue-components/types', - ...externals, - ], - hooks: { - 'rollup:done': async (ctx, build) => { - // cleanup lib/unplugin - await rm(path.resolve(rootDir, 'lib/unplugin'), { force: true, recursive: true }) - - // add banner to dts files - await Promise.all(['unplugin-vue-components'].map((dir) => { - return ['', 'c', 'm'].map(d => `${rootDir}/${dir}/index.d.${d}ts`) - }).map(async (dtsFiles) => { - return dtsFiles.flat().map(async (dts) => { - const content = await readFile(dts, 'utf-8') - await writeFile(dts, `${banner}${content}`, 'utf-8') - }) - })) - } - }, - rollup: { - rootDir, - emitCJS: true, - output: { banner }, - dts: { - compilerOptions: { rootDir }, - respectExternal: true, - }, - }, -}, { - rootDir, - entries: [{ - input: `${rootDir}/src/unplugin/unimport.ts`, - name: 'index', - declaration: true, - outDir: 'unimport', - cleanDist: true, - }], - outDir: 'unimport', - declaration: true, - failOnWarn: false, - externals: ['vuetify', ...externals], - hooks: { - 'rollup:done': async () => { - // add banner to dts files - await Promise.all(['unimport'].map((dir) => { - return ['', 'c', 'm'].map(d => `${rootDir}/${dir}/index.d.${d}ts`) - }).map(async (dtsFiles) => { - return dtsFiles.flat().map(async (dts) => { - const content = await readFile(dts, 'utf-8') - await writeFile(dts, `${banner}${content}`, 'utf-8') - }) - })) - } - }, - rollup: { - rootDir, - emitCJS: true, - output: { banner }, - dts: { - compilerOptions: { rootDir }, - respectExternal: true, - }, - }, -}]) diff --git a/packages/vuetify/build/constants.mjs b/packages/vuetify/build/constants.mjs new file mode 100644 index 00000000000..77be36c7be2 --- /dev/null +++ b/packages/vuetify/build/constants.mjs @@ -0,0 +1,17 @@ +import packageJson from '../package.json' with { type: 'json' } +import path from 'upath' +import { fileURLToPath } from 'url' + +export const banner = `/*! +* Vuetify v${packageJson.version} +* Forged by John Leider +* Released under the MIT License. +*/\n` + +export const root = path.resolve(fileURLToPath(import.meta.url), '../..') +export const srcDir = path.resolve(root, 'src') +export const libDir = path.resolve(root, 'lib') +export const unpluginLibDistDir = path.resolve(libDir, 'unplugin') +export const labsDir = path.resolve(srcDir, 'labs') + +export const externals = Array.from(Object.keys(packageJson.devDependencies)) diff --git a/packages/vuetify/build/rollup.config.mjs b/packages/vuetify/build/rollup.config.mjs index 9903704e960..b578a7c2636 100644 --- a/packages/vuetify/build/rollup.config.mjs +++ b/packages/vuetify/build/rollup.config.mjs @@ -2,32 +2,27 @@ import path from 'upath' import { mkdirp } from 'mkdirp' import { writeFile } from 'fs/promises' import { fileURLToPath } from 'url' - -import packageJson from '../package.json' with { type: 'json' } - import alias from '@rollup/plugin-alias' import sass from 'rollup-plugin-sass' import { babel } from '@rollup/plugin-babel' import { terser } from 'rollup-plugin-terser' import { nodeResolve } from '@rollup/plugin-node-resolve' - import autoprefixer from 'autoprefixer' import cssnano from 'cssnano' import postcss from 'postcss' import { simple as walk } from 'acorn-walk' +import { + banner, + labsDir, + libDir, + root, + srcDir, +} from './constants.mjs' +import { unpluginModules } from './unplugin-config.mjs' const extensions = ['.ts', '.tsx', '.js', '.jsx', '.es6', '.es', '.mjs'] -const banner = `/*! -* Vuetify v${packageJson.version} -* Forged by John Leider -* Released under the MIT License. -*/\n` - -const root = path.resolve(fileURLToPath(import.meta.url), '../..') -const srcDir = path.resolve(root, 'src') -const libDir = path.resolve(root, 'lib') -const labsDir = path.resolve(srcDir, 'labs') +/** @type {import("rollup").RollupOptions[]} */ export default [ { input: 'src/entry-bundler.ts', @@ -291,4 +286,5 @@ export default [ } ], }, + ...unpluginModules(), ] diff --git a/packages/vuetify/build/rollup.types.config.mjs b/packages/vuetify/build/rollup.types.config.mjs index 678d084ebf2..663cb29fd52 100644 --- a/packages/vuetify/build/rollup.types.config.mjs +++ b/packages/vuetify/build/rollup.types.config.mjs @@ -1,4 +1,3 @@ -import path from 'path' import fs from 'fs/promises' import { readFileSync } from 'fs' import { fileURLToPath } from 'url' @@ -12,7 +11,9 @@ import MagicString from 'magic-string' import importMap from '../dist/json/importMap.json' with { type: 'json' } import importMapLabs from '../dist/json/importMap-labs.json' with { type: 'json' } +import {unpluginTypes} from "./unplugin-config.mjs"; +/** @type {() => import("rollup").Plugin} */ const externalsPlugin = () => ({ resolveId (source, importer) { if (importer && (source.endsWith('.sass') || source.endsWith('.scss'))) { @@ -25,6 +26,13 @@ const externalsPlugin = () => ({ } }) +/** + * @param input {string} + * @param output {string} + * @param [renderChunk] {(code: MagicString) => Promise} + * @param [filter] {(files: string[]) => string[]} + * @return {import("rollup").RollupOptions[]} + */ function createTypesConfig (input, output, renderChunk, filter) { input = 'types-temp/' + input let files = fg.sync(input) @@ -33,7 +41,8 @@ function createTypesConfig (input, output, renderChunk, filter) { return files.map(file => { const outputFile = output.replace('*', mm.capture(input, file)[0]) - return { + /** @type {import("rollup").RollupOptions} */ + const config = { input: file, output: [{ file: outputFile, format: 'es', sourcemap: false }], plugins: [ @@ -70,9 +79,11 @@ function createTypesConfig (input, output, renderChunk, filter) { // sourcemaps(), ], } + return config }) } +/** @return {Promise} */ async function getShims () { const components = Object.keys(importMap.components).map(name => ( ` ${name}: typeof import('vuetify/components')['${name}']` @@ -87,6 +98,7 @@ async function getShims () { .replace(/^\s*\/\/ @generate-components$/gm, components) } +/** @type {import("rollup").RollupOptions[]} */ export default [ createTypesConfig('framework.d.ts', 'lib/index.d.mts', async code => { code.append('\n\n') @@ -114,4 +126,5 @@ export default [ createTypesConfig('locale/adapters/*.d.ts', 'lib/locale/adapters/*.d.mts'), createTypesConfig('iconsets/*.d.ts', 'lib/iconsets/*.d.mts'), createTypesConfig('util/colors.d.ts', 'lib/util/colors.d.mts'), + unpluginTypes() ].flat() diff --git a/packages/vuetify/build/unplugin-config.mjs b/packages/vuetify/build/unplugin-config.mjs new file mode 100644 index 00000000000..b5ab6088d26 --- /dev/null +++ b/packages/vuetify/build/unplugin-config.mjs @@ -0,0 +1,115 @@ +import { banner, externals, root, unpluginLibDistDir } from './constants.mjs' +import { nodeResolve } from "@rollup/plugin-node-resolve" +import { babel } from '@rollup/plugin-babel' +import { rm } from 'fs/promises' +import dts from 'rollup-plugin-dts' + +const extensions = ['.ts'] + +export function unpluginModules() { + return [ + unpluginModule('components'), + unpluginModule('unimport'), + ] +} + +export function unpluginTypes() { + return [ + unpluginDts('components'), + unpluginDts('unimport'), + ] +} + +/** + * @param name {'components' | 'unimport'} + * @returns {import("rollup").RollupOptions} + */ +function unpluginModule(name) { + const input = `src/unplugin/${name}.ts` + const file = `${name === 'components' ? 'unplugin-vue-components' : name}/index` + /** @type {import("rollup").RollupOptions} */ + const config = { + input, + external: ['vuetify', 'unplugin-vue-components/types', ...externals], + output: [{ + file: `${file}.mjs`, + format: 'esm', + exports: "named", + generatedCode: { constBindings: true }, + externalLiveBindings: false, + freeze: false, + banner, + }, { + file: `${file}.cjs`, + format: 'cjs', + exports: "named", + generatedCode: { constBindings: true }, + externalLiveBindings: false, + freeze: false, + banner, + }], + onwarn(warning, rollupWarn) { + if (!warning.code || !["CIRCULAR_DEPENDENCY"].includes(warning.code)) { + rollupWarn(warning); + } + }, + plugins: [ + nodeResolve({ extensions, browser: false, modulesOnly: true }), + babel({ + extensions, + }), + dts({ + respectExternal: true, + compilerOptions: { + rootDir: root, + }, + }), + { + async buildEnd() { + // cleanup lib/unplugin + await rm(unpluginLibDistDir, { force: true, recursive: true }) + }, + }, + ], + } + return config +} + +/** + * @param name {'components' | 'unimport'} + * @returns {import("rollup").RollupOptions} + */ +function unpluginDts(name) { + const dir = `${root}/${name === 'components' ? 'unplugin-vue-components' : 'unimport'}` + /** @type {import("rollup").RollupOptions} */ + const config = { + input: `src/unplugin/${name}.ts`, + external: ['vuetify', 'unplugin-vue-components/types', ...externals], + output: [{ + dir, + entryFileNames: 'index.d.mts', + format: 'esm', + banner, + }, { + dir, + entryFileNames: 'index.d.ts', + format: 'esm', + banner, + }, { + dir, + entryFileNames: 'index.d.cts', + format: 'cjs', + banner, + }], + plugins: [ + dts({ + dir: `${root}/${name === 'components' ? 'unplugin-vue-components' : 'unimport'}`, + respectExternal: true, + compilerOptions: { + rootDir: root, + }, + }), + ], + } + return config +} diff --git a/packages/vuetify/package.json b/packages/vuetify/package.json index e576bb69c50..16ec32a396a 100755 --- a/packages/vuetify/package.json +++ b/packages/vuetify/package.json @@ -119,8 +119,7 @@ "dev:ssr": "NODE_ENV=development VITE_SSR=true vite-ssr", "dev:prod": "concurrently \"vite build -w\" \"vite preview\"", "dev:typecheck": "vue-tsc --noEmit --skipLibCheck --project ./tsconfig.dev.json", - "build": "rimraf lib dist unplugin-vue-components unimport && concurrently \"pnpm run build:dist\" \"pnpm run build:lib\" -n \"dist,lib\" --kill-others-on-fail -r && pnpm run build:types && pnpm run build:unimport", - "build:unimport": "unbuild", + "build": "rimraf lib dist unplugin-vue-components unimport && concurrently \"pnpm run build:dist\" \"pnpm run build:lib\" -n \"dist,lib\" --kill-others-on-fail -r && pnpm run build:types", "build:dist": "rollup --config build/rollup.config.mjs", "build:lib": "NODE_ENV=lib babel src --out-dir lib --source-maps --extensions \".ts\",\".tsx\",\".snap\" --copy-files --no-copy-ignored --out-file-extension .mjs", "build:types": "rimraf types-temp && tsc --pretty --emitDeclarationOnly -p tsconfig.dist.json && rollup --config build/rollup.types.config.mjs && rimraf types-temp", @@ -189,7 +188,6 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-terser": "^7.0.2", "timezone-mock": "^1.3.6", - "unbuild": "^2.0.0", "unimport": "^3.13.1", "unplugin-auto-import": "^0.18.3", "unplugin-vue-components": "^0.27.4", diff --git a/packages/vuetify/src/unplugin/components.ts b/packages/vuetify/src/unplugin/components.ts index 178626da2ff..92535ffc716 100644 --- a/packages/vuetify/src/unplugin/components.ts +++ b/packages/vuetify/src/unplugin/components.ts @@ -101,7 +101,7 @@ function createComponentsResolver ( options: VuetifyComponentResolverOptions ) { const { exclude, labs } = options - return { + return { type: 'component', resolve: async name => { if (exclude?.some(e => e === name)) return undefined @@ -118,7 +118,7 @@ function createComponentsResolver ( from: `vuetify/lib/${component.from}`, } }, - } satisfies ComponentResolver + } } function createDirectivesResolver ( @@ -130,7 +130,7 @@ function createDirectivesResolver ( // If prefix enabled, Vue will transform v-vuetify- to _resolveDirective('vuetify-') // unplugin-vue-components will provide the correct import when calling resolve: PascalCase() // If prefix enabled, unplugin-vue-components will provide PascalCase(vuetify-) - return { + return { type: 'directive', resolve: async resolvedName => { let name = resolvedName @@ -151,5 +151,5 @@ function createDirectivesResolver ( from: `vuetify/directives`, } }, - } satisfies ComponentResolver + } } diff --git a/packages/vuetify/src/unplugin/unimport.ts b/packages/vuetify/src/unplugin/unimport.ts index 6f3f6894fb4..8ffd579bdb0 100644 --- a/packages/vuetify/src/unplugin/unimport.ts +++ b/packages/vuetify/src/unplugin/unimport.ts @@ -1,5 +1,5 @@ // Types -import type { Preset, PresetImport } from 'unimport' +import type { InlinePreset, PresetImport } from 'unimport' import type { DirectiveName } from './types' export interface VuetifyComposablesOptions { @@ -40,14 +40,14 @@ export function VuetifyComposables (options: VuetifyComposablesOptions = {}) { : prefix ? composableImports.map(([l, n]) => [l, n, n.replace('use', 'useV')]) : composableImports - return { + return { from: 'vuetify', imports: imports.map(([link, name, renamed]) => ({ name, as: renamed, meta: { docsUrl: `https://vuetifyjs.com/en/api/${link}/` }, })), - } satisfies Preset + } } export function VuetifyDirectives (options: VuetifyDirectivesOptions = {}) { @@ -65,7 +65,7 @@ export function VuetifyDirectives (options: VuetifyDirectivesOptions = {}) { const directives = directivesImports.filter(entry => !exclude || !exclude.includes(entry[1])) - return { + return { from: 'vuetify/directives', meta: { vueDirective: true, @@ -75,5 +75,5 @@ export function VuetifyDirectives (options: VuetifyDirectivesOptions = {}) { as: prefix ? `Vuetify${name}` : undefined, meta: { docsUrl: `https://vuetifyjs.com/en/api/${link}/` }, })), - } satisfies Preset + } } diff --git a/packages/vuetify/src/unplugin/utils.ts b/packages/vuetify/src/unplugin/utils.ts index 84e28a9e2ff..1f4389b101c 100644 --- a/packages/vuetify/src/unplugin/utils.ts +++ b/packages/vuetify/src/unplugin/utils.ts @@ -23,6 +23,10 @@ export function resolveVuetifyImportMap (paths = [process.cwd()]) { return importMap(resolveVuetifyBase(paths)) } +export function resolveVuetifyImportMapLabs (paths = [process.cwd()]) { + return importMapLabs(resolveVuetifyBase(paths)) +} + async function importMap (vuetifyBase: string): Promise { return JSON.parse(await readFile(path.resolve(vuetifyBase, 'dist/json/importMap.json'), 'utf-8')) } diff --git a/packages/vuetify/tsconfig.checks.json b/packages/vuetify/tsconfig.checks.json index 8ac8c684470..d93f785af95 100644 --- a/packages/vuetify/tsconfig.checks.json +++ b/packages/vuetify/tsconfig.checks.json @@ -1,6 +1,8 @@ { "extends": "./tsconfig.dev.json", "compilerOptions": { + "rootDir": ".", "skipLibCheck": true - } + }, + "exclude": ["types-temp", "**/*.spec.cy.ts", "**/*.spec.cy.tsx", "unimport/*", "src/unplugin/*.ts"] } diff --git a/packages/vuetify/vite.config.mts b/packages/vuetify/vite.config.mts index 16ac5dc0334..229c69a73ad 100644 --- a/packages/vuetify/vite.config.mts +++ b/packages/vuetify/vite.config.mts @@ -1,8 +1,7 @@ import path from 'path' -import fs, { readFileSync } from 'fs' +import fs from 'fs' import { fileURLToPath } from 'url' -import fg from 'fast-glob' import { defineConfig, loadEnv } from 'vite' import vue from '@vitejs/plugin-vue' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 180781feb43..eec13b31564 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -592,9 +592,6 @@ importers: timezone-mock: specifier: ^1.3.6 version: 1.3.6 - unbuild: - specifier: ^2.0.0 - version: 2.0.0(sass@1.77.8)(typescript@5.5.4)(vue-tsc@2.0.29(typescript@5.5.4)) unimport: specifier: ^3.13.1 version: 3.13.1(rollup@3.29.4)(webpack-sources@3.2.3) @@ -1296,10 +1293,6 @@ packages: resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} engines: {node: '>=6.9.0'} - '@babel/standalone@7.25.6': - resolution: {integrity: sha512-Kf2ZcZVqsKbtYhlA7sP0z5A3q5hmCVYMKMWRWNK/5OVwHIve3JY1djVRmIVAx8FMueLIfZGKQDIILK2w8zO4mg==} - engines: {node: '>=6.9.0'} - '@babel/template@7.25.0': resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} @@ -1395,12 +1388,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/android-arm64@0.19.11': resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} engines: {node: '>=12'} @@ -1413,12 +1400,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm@0.19.11': resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} engines: {node: '>=12'} @@ -1431,12 +1412,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-x64@0.19.11': resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} engines: {node: '>=12'} @@ -1449,12 +1424,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/darwin-arm64@0.19.11': resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} engines: {node: '>=12'} @@ -1467,12 +1436,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-x64@0.19.11': resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} engines: {node: '>=12'} @@ -1485,12 +1448,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/freebsd-arm64@0.19.11': resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} engines: {node: '>=12'} @@ -1503,12 +1460,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-x64@0.19.11': resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} engines: {node: '>=12'} @@ -1521,12 +1472,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/linux-arm64@0.19.11': resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} engines: {node: '>=12'} @@ -1539,12 +1484,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm@0.19.11': resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} engines: {node: '>=12'} @@ -1557,12 +1496,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-ia32@0.19.11': resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} engines: {node: '>=12'} @@ -1575,12 +1508,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-loong64@0.19.11': resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} engines: {node: '>=12'} @@ -1593,12 +1520,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-mips64el@0.19.11': resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} engines: {node: '>=12'} @@ -1611,12 +1532,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-ppc64@0.19.11': resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} engines: {node: '>=12'} @@ -1629,12 +1544,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-riscv64@0.19.11': resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} engines: {node: '>=12'} @@ -1647,12 +1556,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-s390x@0.19.11': resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} engines: {node: '>=12'} @@ -1665,12 +1568,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-x64@0.19.11': resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} engines: {node: '>=12'} @@ -1683,12 +1580,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/netbsd-x64@0.19.11': resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} engines: {node: '>=12'} @@ -1701,18 +1592,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-x64@0.19.11': resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} engines: {node: '>=12'} @@ -1725,12 +1604,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/sunos-x64@0.19.11': resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} engines: {node: '>=12'} @@ -1743,12 +1616,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/win32-arm64@0.19.11': resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} engines: {node: '>=12'} @@ -1761,12 +1628,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-ia32@0.19.11': resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} engines: {node: '>=12'} @@ -1779,12 +1640,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-x64@0.19.11': resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} engines: {node: '>=12'} @@ -1797,12 +1652,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2433,24 +2282,6 @@ packages: rollup: optional: true - '@rollup/plugin-commonjs@25.0.8': - resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} - 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@11.2.1': resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} @@ -2476,15 +2307,6 @@ packages: peerDependencies: rollup: '*' - '@rollup/plugin-replace@5.0.7': - resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: '*' - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-typescript@11.1.6': resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} @@ -3449,13 +3271,6 @@ packages: peerDependencies: postcss: ^8.1.0 - autoprefixer@10.4.20: - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -3765,9 +3580,6 @@ packages: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} - citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - cjs-module-lexer@1.2.2: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} @@ -3892,9 +3704,6 @@ packages: resolution: {integrity: sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==} engines: {node: '>=4.0.0'} - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - compare-func@1.3.4: resolution: {integrity: sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==} @@ -3930,10 +3739,6 @@ packages: resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} engines: {node: '>= 0.10.0'} - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} - console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -4203,36 +4008,18 @@ packages: peerDependencies: postcss: ^8.4.31 - cssnano-preset-default@7.0.6: - resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - cssnano-utils@4.0.2: resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} engines: {node: ^14 || ^16 || >=18.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@6.1.2: resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - cssnano@7.0.6: - resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==} - 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'} @@ -4422,9 +4209,6 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - degenerator@5.0.1: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} @@ -4645,11 +4429,6 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} - engines: {node: '>=18'} - hasBin: true - escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -5275,10 +5054,6 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -5720,9 +5495,6 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -6023,14 +5795,6 @@ packages: node-notifier: optional: true - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} - hasBin: true - - jiti@2.0.0: - resolution: {integrity: sha512-CJ7e7Abb779OTRv3lomfp7Mns/Sy1+U4pcAx5VbjxCZD5ZM/VJaXPpPjNKjtSvWQy/H86E49REXR34dl1JEz9w==} - hasBin: true - js-beautify@1.14.11: resolution: {integrity: sha512-rPogWqAfoYh1Ryqqh2agUpVfbxAhbjuN1SmU86dskQUKouRiggUTCO4+2ym9UPXllc2WAp0J+T5qxn7Um3lCdw==} engines: {node: '>=14'} @@ -6204,10 +5968,6 @@ packages: resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} - lines-and-columns@1.1.6: resolution: {integrity: sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ==} @@ -6618,21 +6378,6 @@ packages: engines: {node: '>=10'} hasBin: true - mkdist@1.5.9: - resolution: {integrity: sha512-PdJimzhcgDxaHpk1SUabw56gT3BU15vBHUTHkeeus8Kl7jUkpgG7+z0PiS/y23XXgO8TiU/dKP3L1oG55qrP1g==} - hasBin: true - peerDependencies: - sass: ^1.78.0 - typescript: '>=5.5.4' - vue-tsc: ^1.8.27 || ^2.0.21 - peerDependenciesMeta: - sass: - optional: true - typescript: - optional: true - vue-tsc: - optional: true - mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} @@ -6643,10 +6388,6 @@ packages: moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - mrmime@2.0.0: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} @@ -7231,12 +6972,6 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss-calc@10.0.2: - resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==} - engines: {node: ^18.12 || ^20.9 || >=22.0} - peerDependencies: - postcss: ^8.4.38 - postcss-calc@9.0.1: resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -7249,326 +6984,160 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-colormin@7.0.2: - resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-convert-values@6.1.0: resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-convert-values@7.0.4: - resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-discard-comments@6.0.2: resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-discard-comments@7.0.3: - resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-discard-duplicates@6.0.3: resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-discard-duplicates@7.0.1: - resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-discard-empty@6.0.3: resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} engines: {node: ^14 || ^16 || >=18.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-merge-longhand@6.0.5: resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-merge-longhand@7.0.4: - resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-merge-rules@6.1.1: resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-merge-rules@7.0.4: - resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-minify-font-values@6.1.0: resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} engines: {node: ^14 || ^16 || >=18.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@6.0.3: resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} engines: {node: ^14 || ^16 || >=18.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@6.1.0: resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-minify-params@7.0.2: - resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-minify-selectors@6.0.4: resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-minify-selectors@7.0.4: - resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - postcss-normalize-charset@6.0.2: resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - 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@6.0.2: resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} engines: {node: ^14 || ^16 || >=18.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@6.1.0: resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-normalize-unicode@7.0.2: - resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-normalize-url@6.0.2: resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} engines: {node: ^14 || ^16 || >=18.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@6.0.2: resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-ordered-values@7.0.1: - resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-reduce-initial@6.1.0: resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-reduce-initial@7.0.2: - resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-reduce-transforms@6.0.2: resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} engines: {node: ^14 || ^16 || >=18.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-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - postcss-svgo@6.0.3: resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.4.31 - postcss-svgo@7.0.1: - resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} - engines: {node: ^18.12.0 || ^20.9.0 || >= 18} - peerDependencies: - postcss: ^8.4.31 - postcss-unique-selectors@6.0.4: resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-unique-selectors@7.0.3: - resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==} - 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==} @@ -8538,12 +8107,6 @@ packages: peerDependencies: postcss: ^8.4.31 - stylehacks@7.0.4: - resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -8572,11 +8135,6 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - svgo@3.3.2: - resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} - engines: {node: '>=14.0.0'} - hasBin: true - symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -8885,15 +8443,6 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - unbuild@2.0.0: - resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} - hasBin: true - peerDependencies: - typescript: ^5.1.6 - peerDependenciesMeta: - typescript: - optional: true - unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} @@ -8996,10 +8545,6 @@ packages: webpack-sources: optional: true - untyped@1.5.0: - resolution: {integrity: sha512-o2Vjmn2dal08BzCcINxSmWuAteReUUiXseii5VRhmxyLF0b21K0iKZQ9fMYK7RWspVkY+0saqaVQNq4roe3Efg==} - hasBin: true - upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -10605,8 +10150,6 @@ snapshots: dependencies: regenerator-runtime: 0.14.0 - '@babel/standalone@7.25.6': {} - '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 @@ -10711,88 +10254,58 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.23.1': - optional: true - '@esbuild/android-arm64@0.19.11': optional: true '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.23.1': - optional: true - '@esbuild/android-arm@0.19.11': optional: true '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.23.1': - optional: true - '@esbuild/android-x64@0.19.11': optional: true '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.23.1': - optional: true - '@esbuild/darwin-arm64@0.19.11': optional: true '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.23.1': - optional: true - '@esbuild/darwin-x64@0.19.11': optional: true '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.23.1': - optional: true - '@esbuild/freebsd-arm64@0.19.11': optional: true '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.23.1': - optional: true - '@esbuild/freebsd-x64@0.19.11': optional: true '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.23.1': - optional: true - '@esbuild/linux-arm64@0.19.11': optional: true '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.23.1': - optional: true - '@esbuild/linux-arm@0.19.11': optional: true - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-arm@0.23.1': + '@esbuild/linux-arm@0.21.5': optional: true '@esbuild/linux-ia32@0.19.11': @@ -10801,120 +10314,78 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.23.1': - optional: true - '@esbuild/linux-loong64@0.19.11': optional: true '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.23.1': - optional: true - '@esbuild/linux-mips64el@0.19.11': optional: true '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.23.1': - optional: true - '@esbuild/linux-ppc64@0.19.11': optional: true '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.23.1': - optional: true - '@esbuild/linux-riscv64@0.19.11': optional: true '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.23.1': - optional: true - '@esbuild/linux-s390x@0.19.11': optional: true '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.23.1': - optional: true - '@esbuild/linux-x64@0.19.11': optional: true '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.23.1': - optional: true - '@esbuild/netbsd-x64@0.19.11': optional: true '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.23.1': - optional: true - - '@esbuild/openbsd-arm64@0.23.1': - optional: true - '@esbuild/openbsd-x64@0.19.11': optional: true '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.23.1': - optional: true - '@esbuild/sunos-x64@0.19.11': optional: true '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.23.1': - optional: true - '@esbuild/win32-arm64@0.19.11': optional: true '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.23.1': - optional: true - '@esbuild/win32-ia32@0.19.11': optional: true '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.23.1': - optional: true - '@esbuild/win32-x64@0.19.11': optional: true '@esbuild/win32-x64@0.21.5': optional: true - '@esbuild/win32-x64@0.23.1': - optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -11944,23 +11415,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@25.0.8(rollup@3.29.4)': - dependencies: - '@rollup/pluginutils': 5.1.2(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.11 - optionalDependencies: - rollup: 3.29.4 - - '@rollup/plugin-json@6.1.0(rollup@3.29.4)': - dependencies: - '@rollup/pluginutils': 5.1.2(rollup@3.29.4) - optionalDependencies: - rollup: 3.29.4 - '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1)': dependencies: '@rollup/pluginutils': 3.1.0(rollup@2.79.1) @@ -11994,13 +11448,6 @@ snapshots: magic-string: 0.25.7 rollup: 3.29.4 - '@rollup/plugin-replace@5.0.7(rollup@3.29.4)': - dependencies: - '@rollup/pluginutils': 5.1.2(rollup@3.29.4) - magic-string: 0.30.11 - optionalDependencies: - rollup: 3.29.4 - '@rollup/plugin-typescript@11.1.6(rollup@3.29.4)(tslib@2.6.2)(typescript@5.5.4)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@3.29.4) @@ -13219,16 +12666,6 @@ snapshots: postcss: 8.4.45 postcss-value-parser: 4.2.0 - autoprefixer@10.4.20(postcss@8.4.45): - dependencies: - browserslist: 4.23.3 - caniuse-lite: 1.0.30001646 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.0 - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -13625,10 +13062,6 @@ snapshots: ci-info@4.0.0: {} - citty@0.1.6: - dependencies: - consola: 3.2.3 - cjs-module-lexer@1.2.2: {} clean-stack@2.2.0: {} @@ -13724,8 +13157,6 @@ snapshots: common-tags@1.8.0: {} - commondir@1.0.1: {} - compare-func@1.3.4: dependencies: array-ify: 1.0.0 @@ -13783,8 +13214,6 @@ snapshots: transitivePeerDependencies: - supports-color - consola@3.2.3: {} - console-control-strings@1.1.0: {} content-disposition@0.5.4: @@ -14166,60 +13595,16 @@ snapshots: postcss-svgo: 6.0.3(postcss@8.4.45) postcss-unique-selectors: 6.0.4(postcss@8.4.45) - cssnano-preset-default@7.0.6(postcss@8.4.45): - dependencies: - browserslist: 4.23.3 - css-declaration-sorter: 7.2.0(postcss@8.4.45) - cssnano-utils: 5.0.0(postcss@8.4.45) - postcss: 8.4.45 - postcss-calc: 10.0.2(postcss@8.4.45) - postcss-colormin: 7.0.2(postcss@8.4.45) - postcss-convert-values: 7.0.4(postcss@8.4.45) - postcss-discard-comments: 7.0.3(postcss@8.4.45) - postcss-discard-duplicates: 7.0.1(postcss@8.4.45) - postcss-discard-empty: 7.0.0(postcss@8.4.45) - postcss-discard-overridden: 7.0.0(postcss@8.4.45) - postcss-merge-longhand: 7.0.4(postcss@8.4.45) - postcss-merge-rules: 7.0.4(postcss@8.4.45) - postcss-minify-font-values: 7.0.0(postcss@8.4.45) - postcss-minify-gradients: 7.0.0(postcss@8.4.45) - postcss-minify-params: 7.0.2(postcss@8.4.45) - postcss-minify-selectors: 7.0.4(postcss@8.4.45) - postcss-normalize-charset: 7.0.0(postcss@8.4.45) - postcss-normalize-display-values: 7.0.0(postcss@8.4.45) - postcss-normalize-positions: 7.0.0(postcss@8.4.45) - postcss-normalize-repeat-style: 7.0.0(postcss@8.4.45) - postcss-normalize-string: 7.0.0(postcss@8.4.45) - postcss-normalize-timing-functions: 7.0.0(postcss@8.4.45) - postcss-normalize-unicode: 7.0.2(postcss@8.4.45) - postcss-normalize-url: 7.0.0(postcss@8.4.45) - postcss-normalize-whitespace: 7.0.0(postcss@8.4.45) - postcss-ordered-values: 7.0.1(postcss@8.4.45) - postcss-reduce-initial: 7.0.2(postcss@8.4.45) - postcss-reduce-transforms: 7.0.0(postcss@8.4.45) - postcss-svgo: 7.0.1(postcss@8.4.45) - postcss-unique-selectors: 7.0.3(postcss@8.4.45) - cssnano-utils@4.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 - cssnano-utils@5.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - cssnano@6.1.2(postcss@8.4.45): dependencies: cssnano-preset-default: 6.1.2(postcss@8.4.45) lilconfig: 3.1.1 postcss: 8.4.45 - cssnano@7.0.6(postcss@8.4.45): - dependencies: - cssnano-preset-default: 7.0.6(postcss@8.4.45) - lilconfig: 3.1.2 - postcss: 8.4.45 - csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -14380,8 +13765,6 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - defu@6.1.4: {} - degenerator@5.0.1: dependencies: ast-types: 0.13.4 @@ -14692,33 +14075,6 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - esbuild@0.23.1: - optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 - escalade@3.1.2: {} escape-html@1.0.3: {} @@ -15468,14 +14824,6 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@13.2.2: - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 4.0.0 - gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 @@ -15946,10 +15294,6 @@ snapshots: is-potential-custom-element-name@1.0.1: {} - is-reference@1.2.1: - dependencies: - '@types/estree': 1.0.5 - is-regex@1.1.4: dependencies: call-bind: 1.0.7 @@ -16452,10 +15796,6 @@ snapshots: - supports-color - ts-node - jiti@1.21.6: {} - - jiti@2.0.0: {} - js-beautify@1.14.11: dependencies: config-chain: 1.1.13 @@ -16722,8 +16062,6 @@ snapshots: lilconfig@3.1.1: {} - lilconfig@3.1.2: {} - lines-and-columns@1.1.6: {} lines-and-columns@2.0.4: {} @@ -17166,26 +16504,6 @@ snapshots: mkdirp@3.0.1: {} - mkdist@1.5.9(sass@1.77.8)(typescript@5.5.4)(vue-tsc@2.0.29(typescript@5.5.4)): - dependencies: - autoprefixer: 10.4.20(postcss@8.4.45) - citty: 0.1.6 - cssnano: 7.0.6(postcss@8.4.45) - defu: 6.1.4 - esbuild: 0.23.1 - fast-glob: 3.3.2 - jiti: 1.21.6 - mlly: 1.7.1 - pathe: 1.1.2 - pkg-types: 1.2.0 - postcss: 8.4.45 - postcss-nested: 6.2.0(postcss@8.4.45) - semver: 7.6.3 - optionalDependencies: - sass: 1.77.8 - typescript: 5.5.4 - vue-tsc: 2.0.29(typescript@5.5.4) - mlly@1.7.1: dependencies: acorn: 8.12.1 @@ -17197,8 +16515,6 @@ snapshots: moment@2.30.1: {} - mri@1.2.0: {} - mrmime@2.0.0: {} ms@2.0.0: {} @@ -17846,12 +17162,6 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-calc@10.0.2(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - postcss-calc@9.0.1(postcss@8.4.45): dependencies: postcss: 8.4.45 @@ -17866,71 +17176,34 @@ snapshots: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.2(postcss@8.4.45): - dependencies: - browserslist: 4.23.3 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-convert-values@6.1.0(postcss@8.4.45): dependencies: browserslist: 4.23.3 postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.4(postcss@8.4.45): - dependencies: - browserslist: 4.23.3 - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-discard-comments@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 - postcss-discard-comments@7.0.3(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-selector-parser: 6.1.2 - postcss-discard-duplicates@6.0.3(postcss@8.4.45): dependencies: postcss: 8.4.45 - postcss-discard-duplicates@7.0.1(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-discard-empty@6.0.3(postcss@8.4.45): dependencies: postcss: 8.4.45 - postcss-discard-empty@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-discard-overridden@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 - postcss-discard-overridden@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-merge-longhand@6.0.5(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 stylehacks: 6.1.1(postcss@8.4.45) - postcss-merge-longhand@7.0.4(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - stylehacks: 7.0.4(postcss@8.4.45) - postcss-merge-rules@6.1.1(postcss@8.4.45): dependencies: browserslist: 4.23.3 @@ -17939,24 +17212,11 @@ snapshots: postcss: 8.4.45 postcss-selector-parser: 6.0.16 - postcss-merge-rules@7.0.4(postcss@8.4.45): - dependencies: - browserslist: 4.23.3 - caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.4.45) - postcss: 8.4.45 - postcss-selector-parser: 6.1.2 - postcss-minify-font-values@6.1.0(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-minify-font-values@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-minify-gradients@6.0.3(postcss@8.4.45): dependencies: colord: 2.9.3 @@ -17964,13 +17224,6 @@ snapshots: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.0(postcss@8.4.45): - dependencies: - colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.4.45) - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-minify-params@6.1.0(postcss@8.4.45): dependencies: browserslist: 4.23.3 @@ -17978,185 +17231,89 @@ snapshots: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.2(postcss@8.4.45): - dependencies: - browserslist: 4.23.3 - cssnano-utils: 5.0.0(postcss@8.4.45) - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-minify-selectors@6.0.4(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-selector-parser: 6.0.16 - postcss-minify-selectors@7.0.4(postcss@8.4.45): - dependencies: - cssesc: 3.0.0 - postcss: 8.4.45 - postcss-selector-parser: 6.1.2 - - postcss-nested@6.2.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-selector-parser: 6.1.2 - postcss-normalize-charset@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 - postcss-normalize-charset@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-normalize-display-values@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-normalize-display-values@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-normalize-positions@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-normalize-string@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-normalize-unicode@6.1.0(postcss@8.4.45): dependencies: browserslist: 4.23.3 postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.2(postcss@8.4.45): - dependencies: - browserslist: 4.23.3 - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-normalize-url@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-ordered-values@6.0.2(postcss@8.4.45): dependencies: cssnano-utils: 4.0.2(postcss@8.4.45) postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.1(postcss@8.4.45): - dependencies: - cssnano-utils: 5.0.0(postcss@8.4.45) - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-reduce-initial@6.1.0(postcss@8.4.45): dependencies: browserslist: 4.23.3 caniuse-api: 3.0.0 postcss: 8.4.45 - postcss-reduce-initial@7.0.2(postcss@8.4.45): - dependencies: - browserslist: 4.23.3 - caniuse-api: 3.0.0 - postcss: 8.4.45 - postcss-reduce-transforms@6.0.2(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-reduce-transforms@7.0.0(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-svgo@6.0.3(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-value-parser: 4.2.0 svgo: 3.2.0 - postcss-svgo@7.0.1(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - svgo: 3.3.2 - postcss-unique-selectors@6.0.4(postcss@8.4.45): dependencies: postcss: 8.4.45 postcss-selector-parser: 6.0.16 - postcss-unique-selectors@7.0.3(postcss@8.4.45): - dependencies: - postcss: 8.4.45 - postcss-selector-parser: 6.1.2 - postcss-value-parser@4.2.0: {} postcss@8.4.45: @@ -19116,12 +18273,6 @@ snapshots: postcss: 8.4.45 postcss-selector-parser: 6.0.16 - stylehacks@7.0.4(postcss@8.4.45): - dependencies: - browserslist: 4.23.3 - postcss: 8.4.45 - postcss-selector-parser: 6.1.2 - supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -19153,16 +18304,6 @@ snapshots: csso: 5.0.5 picocolors: 1.1.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 - symbol-tree@3.2.4: {} tar-fs@3.0.4: @@ -19465,39 +18606,6 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - unbuild@2.0.0(sass@1.77.8)(typescript@5.5.4)(vue-tsc@2.0.29(typescript@5.5.4)): - dependencies: - '@rollup/plugin-alias': 5.1.0(rollup@3.29.4) - '@rollup/plugin-commonjs': 25.0.8(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.7(rollup@3.29.4) - '@rollup/pluginutils': 5.1.2(rollup@3.29.4) - chalk: 5.3.0 - citty: 0.1.6 - consola: 3.2.3 - defu: 6.1.4 - esbuild: 0.19.11 - globby: 13.2.2 - hookable: 5.5.3 - jiti: 1.21.6 - magic-string: 0.30.11 - mkdist: 1.5.9(sass@1.77.8)(typescript@5.5.4)(vue-tsc@2.0.29(typescript@5.5.4)) - mlly: 1.7.1 - pathe: 1.1.2 - pkg-types: 1.2.0 - pretty-bytes: 6.1.1 - rollup: 3.29.4 - rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.5.4) - scule: 1.3.0 - untyped: 1.5.0 - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - sass - - supports-color - - vue-tsc - unbzip2-stream@1.4.3: dependencies: buffer: 5.7.1 @@ -19667,18 +18775,6 @@ snapshots: optionalDependencies: webpack-sources: 3.2.3 - untyped@1.5.0: - dependencies: - '@babel/core': 7.25.2 - '@babel/standalone': 7.25.6 - '@babel/types': 7.25.6 - defu: 6.1.4 - jiti: 2.0.0 - mri: 1.2.0 - scule: 1.3.0 - transitivePeerDependencies: - - supports-color - upath@1.2.0: {} upath@2.0.1: {} From 6100dde4e1b37bdf9b5e7533cf2c158f0ba59ace Mon Sep 17 00:00:00 2001 From: userquin Date: Mon, 30 Sep 2024 23:54:02 +0200 Subject: [PATCH 12/15] chore: remove dts from unplugin modules build --- packages/vuetify/build/unplugin-config.mjs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/packages/vuetify/build/unplugin-config.mjs b/packages/vuetify/build/unplugin-config.mjs index b5ab6088d26..fe71e44dbf9 100644 --- a/packages/vuetify/build/unplugin-config.mjs +++ b/packages/vuetify/build/unplugin-config.mjs @@ -30,11 +30,17 @@ function unpluginModule(name) { /** @type {import("rollup").RollupOptions} */ const config = { input, - external: ['vuetify', 'unplugin-vue-components/types', ...externals], + external: [ + 'vuetify', + 'vuetify/directives', + 'vuetify/components', + 'vuetify/labs/components', + 'unplugin-vue-components/types', + ...externals, + ], output: [{ file: `${file}.mjs`, format: 'esm', - exports: "named", generatedCode: { constBindings: true }, externalLiveBindings: false, freeze: false, @@ -42,7 +48,6 @@ function unpluginModule(name) { }, { file: `${file}.cjs`, format: 'cjs', - exports: "named", generatedCode: { constBindings: true }, externalLiveBindings: false, freeze: false, @@ -54,16 +59,10 @@ function unpluginModule(name) { } }, plugins: [ - nodeResolve({ extensions, browser: false, modulesOnly: true }), + nodeResolve({ extensions }), babel({ extensions, }), - dts({ - respectExternal: true, - compilerOptions: { - rootDir: root, - }, - }), { async buildEnd() { // cleanup lib/unplugin From a79970e0292d4a384bc3c8e6e069a28d34907c3e Mon Sep 17 00:00:00 2001 From: userquin Date: Tue, 1 Oct 2024 00:46:21 +0200 Subject: [PATCH 13/15] chore: fix import on rollup types conf. module --- packages/vuetify/build/rollup.types.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vuetify/build/rollup.types.config.mjs b/packages/vuetify/build/rollup.types.config.mjs index 663cb29fd52..b1723b2aab2 100644 --- a/packages/vuetify/build/rollup.types.config.mjs +++ b/packages/vuetify/build/rollup.types.config.mjs @@ -11,7 +11,7 @@ import MagicString from 'magic-string' import importMap from '../dist/json/importMap.json' with { type: 'json' } import importMapLabs from '../dist/json/importMap-labs.json' with { type: 'json' } -import {unpluginTypes} from "./unplugin-config.mjs"; +import { unpluginTypes } from './unplugin-config.mjs' /** @type {() => import("rollup").Plugin} */ const externalsPlugin = () => ({ From a305093ed79e1c011da2607f6525b3d795d60d6f Mon Sep 17 00:00:00 2001 From: userquin Date: Tue, 1 Oct 2024 00:46:53 +0200 Subject: [PATCH 14/15] chore: move node package exports after `./*` --- packages/vuetify/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vuetify/package.json b/packages/vuetify/package.json index 16ec32a396a..b0a2bfc022f 100755 --- a/packages/vuetify/package.json +++ b/packages/vuetify/package.json @@ -77,6 +77,7 @@ "./labs/components": "./lib/labs/components.mjs", "./labs/*": "./lib/labs/*/index.mjs", "./util/colors": "./lib/util/colors.mjs", + "./*": "./*", "./unplugin-vue-components": { "import": "./unplugin-vue-components/index.mjs", "require": "./unplugin-vue-components/index.cjs" @@ -84,8 +85,7 @@ "./unimport": { "import": "./unimport/index.mjs", "require": "./unimport/index.cjs" - }, - "./*": "./*" + } }, "typesVersions": { "*": { From fe7b7b0dfdf2bbf0d57ae92f5d99e4879de22855 Mon Sep 17 00:00:00 2001 From: userquin Date: Tue, 1 Oct 2024 11:19:21 +0200 Subject: [PATCH 15/15] chore: revert playground conf. changes to fix CI --- packages/vuetify/dev/vuetify.js | 2 ++ packages/vuetify/vite.config.mts | 26 ++++++++++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/packages/vuetify/dev/vuetify.js b/packages/vuetify/dev/vuetify.js index 57c6dd0df16..38148f5541e 100644 --- a/packages/vuetify/dev/vuetify.js +++ b/packages/vuetify/dev/vuetify.js @@ -2,6 +2,7 @@ import '@mdi/font/css/materialdesignicons.css' import '@/styles/main.sass' import { createVuetify } from '@/framework' +import * as directives from '@/directives' import date from './vuetify/date' import defaults from './vuetify/defaults' @@ -9,6 +10,7 @@ import icons from './vuetify/icons' import locale from './vuetify/locale' export default createVuetify({ + directives, ssr: !!process.env.VITE_SSR, date, defaults, diff --git a/packages/vuetify/vite.config.mts b/packages/vuetify/vite.config.mts index 229c69a73ad..06ba4e9b222 100644 --- a/packages/vuetify/vite.config.mts +++ b/packages/vuetify/vite.config.mts @@ -1,21 +1,30 @@ import path from 'path' -import fs from 'fs' +import fs, { readFileSync } from 'fs' import { fileURLToPath } from 'url' +import fg from 'fast-glob' import { defineConfig, loadEnv } from 'vite' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import Components from 'unplugin-vue-components/vite' import { warmup } from 'vite-plugin-warmup' -import { VuetifyComponentResolver, VuetifyDirectiveResolver } from './src/unplugin/components' -import Inspect from 'vite-plugin-inspect' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const resolve = (file: string) => path.resolve(__dirname, file) const vuetifyPackage = JSON.parse(fs.readFileSync('./package.json', 'utf-8')) +const index = readFileSync(resolve('src/components/index.ts'), { encoding: 'utf8' }) +const block = Array.from(index.matchAll(/^\/\/ export \* from '\.\/(.*)'$/gm), m => m[1]) +const files = fg.sync(['src/components/**/index.ts', 'src/labs/**/index.ts'], { cwd: __dirname }) +const components = files.filter(file => file.startsWith('src/labs') || !block.some(name => file.includes(`/${name}/`))) +const map = new Map(components.flatMap(file => { + const src = readFileSync(file, { encoding: 'utf8' }) + const matches = src.matchAll(/export const (V\w+)|export { (V\w+) }/gm) + return Array.from(matches, m => [m[1] || m[2], file.replace('src/', '@/').replace('.ts', '')]) +})) + const viteSSR = process.env.TEST ? () => null : (await import('vite-ssr/plugin.js').then(m => m.default)) export default defineConfig(({ mode }) => { @@ -36,7 +45,6 @@ export default defineConfig(({ mode }) => { resolve: { alias: [ { find: /^vuetify$/, replacement: resolve('./src/framework.ts') }, - { find: /^vuetify\/directives$/, replacement: resolve('./src/directives/index.ts') }, { find: /^vuetify\/(.*)/, replacement: resolve('./$1') }, { find: /^@\/(.*)/, replacement: resolve('./src/$1') }, ], @@ -47,13 +55,15 @@ export default defineConfig(({ mode }) => { viteSSR(), Components({ dts: !process.env.TEST, - directives: true, resolvers: [ - VuetifyComponentResolver({ labs: true, paths: [__dirname] }), - VuetifyDirectiveResolver({ paths: [__dirname] }), + name => { + if (map.has(name)) { + return { name, from: map.get(name)! } + } + return undefined + }, ], }), - Inspect(), warmup({ clientFiles: process.env.TEST ? [] : ['./dev/index.html'], }),