@vueless/nuxt 1.0.1-beta.9 → 1.1.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 vuelessjs
3
+ Copyright (c) 2025 vuelessjs
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,17 +1,56 @@
1
+ ![vueless-examples.png](playground/assets/images/vueless-examples.png)
2
+
1
3
  # Vueless Nuxt Module
2
4
 
3
- ## Quick Setup
5
+ Nuxt module for the [Vueless](https://github.com/vuelessjs/vueless) UI library.
6
+
7
+ Vueless is an open-source UI library and design system framework for Vue.js 3 and Nuxt.js 3 / 4, built on top of Tailwind CSS v4.
8
+
9
+ It’s completely styleless, allowing you to extend or override default styles without modifying the components themselves — only your custom styles are included in the final build.
10
+
11
+ Vueless is simple enough for everyday use and powerful enough for advanced scenarios, making it ideal for quickly building beautiful UIs in minutes or developing a fully customized corporate UI library that strictly follows your design guidelines.
12
+
13
+ [Documentation](https://docs.vueless.com/) | [UI Components](https://ui.vueless.com/) | [Website](http://vueless.com/)
14
+
15
+ ### Key features
16
+
17
+ - 🧩 65+ UI components (including range date picker, multi-selects, and nested table)
18
+ - 🪄 Automatic on-demand component import (as you use them)
19
+ - 📘 Built-in Storybook support
20
+ - 🌈 Beautiful, modern default UI theme
21
+ - 🌗 Light and dark mode support
22
+ - 🌀 Unstyled mode
23
+ - 🎨️ Flexible color palettes
24
+ - 🎛️ Runtime theme and color switching
25
+ - 🧬 Design tokens powered by CSS variables
26
+ - ✨ Powerful yet simple styling customization system
27
+ - 🌍 Internationalization (i18n)
28
+ - ♿️ Accessibility (a11y)
29
+ - ⚙️ Server-side rendering (SSR) friendly
30
+ - 🖼️ 1000+ built-in SVG icons
31
+ - 🧪️ 1200+ unit tests ensuring consistent logic
32
+ - 🛡️ Full TypeScript support with type safety
4
33
 
5
- 1. Install Vueless Nuxt Module to your project.
34
+ ### Advanced Features
35
+
36
+ - 🧰 Copy and extend existing components
37
+ - 🧱 Create your own components
38
+ - 🔧️ Define default values for props
39
+ - 🔩️ Add or hide props to components
40
+ - 🧿 `npm` package ships full source without TypeScript transpilation for better DX.
41
+
42
+ ## Quick Start
43
+
44
+ 1. Install Vueless Nuxt module.
6
45
 
7
46
  ```bash
8
- npm i @vueless/nuxt
47
+ npm install @vueless/nuxt
9
48
  npx vueless init
10
49
  ```
11
50
 
12
- 2. Register `@vueless/nuxt` into the Nuxt config modules section in `nuxt.config.{ts,js}`
13
51
 
14
- ```js
52
+ 2. Register `@vueless/nuxt` into the Nuxt config modules section.
53
+ ```javascript
15
54
  export default defineNuxtConfig({
16
55
  modules: [
17
56
  '@vueless/nuxt'
@@ -27,4 +66,17 @@ export default defineNuxtConfig({
27
66
  @import "vueless";
28
67
  ```
29
68
 
30
- That's it! You can now use Vueless in your Nuxt app ✨
69
+ ## Contributing
70
+
71
+ * We encourage you to contribute to Vueless! Please check out the
72
+ [contributing to Vueless](CONTRIBUTING.md) for guidelines.
73
+ * Trying to report a possible security vulnerability in Vueless? Please
74
+ check out our [security policy](SECURITY.md) for guidelines.
75
+ * Everyone interacting in Vueless and its sub-projects' codebases, issue trackers, chats, and mailing lists is expected to follow our [code of conduct](CODE_OF_CONDUCT.md) rules.
76
+
77
+ ## License
78
+
79
+ Vueless is released under the [MIT License](https://opensource.org/licenses/MIT).
80
+
81
+ ---
82
+ From Ukrainians to a Peaceful World 🇺🇦
package/dist/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 vuelessjs
3
+ Copyright (c) 2025 vuelessjs
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/dist/README.md CHANGED
@@ -1,17 +1,56 @@
1
+ ![vueless-examples.png](playground/assets/images/vueless-examples.png)
2
+
1
3
  # Vueless Nuxt Module
2
4
 
3
- ## Quick Setup
5
+ Nuxt module for the [Vueless](https://github.com/vuelessjs/vueless) UI library.
6
+
7
+ Vueless is an open-source UI library and design system framework for Vue.js 3 and Nuxt.js 3 / 4, built on top of Tailwind CSS v4.
8
+
9
+ It’s completely styleless, allowing you to extend or override default styles without modifying the components themselves — only your custom styles are included in the final build.
10
+
11
+ Vueless is simple enough for everyday use and powerful enough for advanced scenarios, making it ideal for quickly building beautiful UIs in minutes or developing a fully customized corporate UI library that strictly follows your design guidelines.
12
+
13
+ [Documentation](https://docs.vueless.com/) | [UI Components](https://ui.vueless.com/) | [Website](http://vueless.com/)
14
+
15
+ ### Key features
16
+
17
+ - 🧩 65+ UI components (including range date picker, multi-selects, and nested table)
18
+ - 🪄 Automatic on-demand component import (as you use them)
19
+ - 📘 Built-in Storybook support
20
+ - 🌈 Beautiful, modern default UI theme
21
+ - 🌗 Light and dark mode support
22
+ - 🌀 Unstyled mode
23
+ - 🎨️ Flexible color palettes
24
+ - 🎛️ Runtime theme and color switching
25
+ - 🧬 Design tokens powered by CSS variables
26
+ - ✨ Powerful yet simple styling customization system
27
+ - 🌍 Internationalization (i18n)
28
+ - ♿️ Accessibility (a11y)
29
+ - ⚙️ Server-side rendering (SSR) friendly
30
+ - 🖼️ 1000+ built-in SVG icons
31
+ - 🧪️ 1200+ unit tests ensuring consistent logic
32
+ - 🛡️ Full TypeScript support with type safety
4
33
 
5
- 1. Install Vueless Nuxt Module to your project.
34
+ ### Advanced Features
35
+
36
+ - 🧰 Copy and extend existing components
37
+ - 🧱 Create your own components
38
+ - 🔧️ Define default values for props
39
+ - 🔩️ Add or hide props to components
40
+ - 🧿 `npm` package ships full source without TypeScript transpilation for better DX.
41
+
42
+ ## Quick Start
43
+
44
+ 1. Install Vueless Nuxt module.
6
45
 
7
46
  ```bash
8
- npm i @vueless/nuxt
47
+ npm install @vueless/nuxt
9
48
  npx vueless init
10
49
  ```
11
50
 
12
- 2. Register `@vueless/nuxt` into the Nuxt config modules section in `nuxt.config.{ts,js}`
13
51
 
14
- ```js
52
+ 2. Register `@vueless/nuxt` into the Nuxt config modules section.
53
+ ```javascript
15
54
  export default defineNuxtConfig({
16
55
  modules: [
17
56
  '@vueless/nuxt'
@@ -27,4 +66,17 @@ export default defineNuxtConfig({
27
66
  @import "vueless";
28
67
  ```
29
68
 
30
- That's it! You can now use Vueless in your Nuxt app ✨
69
+ ## Contributing
70
+
71
+ * We encourage you to contribute to Vueless! Please check out the
72
+ [contributing to Vueless](CONTRIBUTING.md) for guidelines.
73
+ * Trying to report a possible security vulnerability in Vueless? Please
74
+ check out our [security policy](SECURITY.md) for guidelines.
75
+ * Everyone interacting in Vueless and its sub-projects' codebases, issue trackers, chats, and mailing lists is expected to follow our [code of conduct](CODE_OF_CONDUCT.md) rules.
76
+
77
+ ## License
78
+
79
+ Vueless is released under the [MIT License](https://opensource.org/licenses/MIT).
80
+
81
+ ---
82
+ From Ukrainians to a Peaceful World 🇺🇦
package/dist/module.d.mts CHANGED
@@ -2,12 +2,12 @@ import * as _nuxt_schema from '@nuxt/schema';
2
2
 
3
3
  declare const _default: _nuxt_schema.NuxtModule<{
4
4
  include: never[];
5
- mirrorCacheDir: string;
5
+ basePath: string;
6
6
  debug: boolean;
7
7
  postcss: boolean;
8
8
  }, {
9
9
  include: never[];
10
- mirrorCacheDir: string;
10
+ basePath: string;
11
11
  debug: boolean;
12
12
  postcss: boolean;
13
13
  }, false>;
package/dist/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "compatibility": {
5
5
  "nuxt": ">=3.13.0"
6
6
  },
7
- "version": "1.0.1-beta.9",
7
+ "version": "1.1.1-beta.0",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "1.0.2",
10
10
  "unbuild": "3.6.1"
package/dist/module.mjs CHANGED
@@ -1,14 +1,9 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { cwd } from 'node:process';
4
- import { pathToFileURL } from 'node:url';
5
- import { createRequire } from 'node:module';
6
1
  import { defineNuxtModule, createResolver, hasNuxtModule, addPlugin, addComponent, addImportsDir } from '@nuxt/kit';
7
2
  import { TailwindCSS, Vueless } from 'vueless/plugin-vite';
3
+ import { getVuelessConfig } from 'vueless/utils/node/vuelessConfig.js';
8
4
  import { autoImportUserConfigs, cacheMergedConfigs } from 'vueless/utils/node/helper.js';
9
- import { NUXT_MODULE_ENV, VUELESS_PACKAGE_DIR, COMPONENTS, VUELESS_CONFIG_FILE_NAME } from 'vueless/constants';
5
+ import { NUXT_MODULE_ENV, VUELESS_PACKAGE_DIR, COMPONENTS } from 'vueless/constants';
10
6
 
11
- const require = createRequire(import.meta.url);
12
7
  const module = defineNuxtModule({
13
8
  meta: {
14
9
  name: "@vueless/nuxt",
@@ -19,16 +14,15 @@ const module = defineNuxtModule({
19
14
  },
20
15
  defaults: {
21
16
  include: [],
22
- mirrorCacheDir: "",
17
+ basePath: "",
23
18
  debug: false,
24
19
  postcss: false
25
20
  },
26
21
  async setup(_options, _nuxt) {
27
- const { include, mirrorCacheDir, debug, postcss } = _options;
22
+ if (_nuxt.options._prepare) return;
28
23
  const { resolve } = createResolver(import.meta.url);
29
- await autoImportUserConfigs();
30
- const { vuelessConfig, dependencies } = await getVuelessConfig();
31
- _nuxt.options.runtimeConfig.public.vueless = vuelessConfig;
24
+ const { include, debug, postcss, basePath } = _options;
25
+ _nuxt.options.runtimeConfig.public.vueless = await getVuelessConfig(basePath);
32
26
  if (hasNuxtModule("@nuxtjs/i18n")) {
33
27
  _nuxt.hook("i18n:registerModule", (register) => {
34
28
  register({
@@ -43,20 +37,10 @@ const module = defineNuxtModule({
43
37
  config.plugins = config.plugins || [];
44
38
  config.plugins.push(
45
39
  TailwindCSS({ postcss }),
46
- Vueless({ env: NUXT_MODULE_ENV, mirrorCacheDir, debug, include })
40
+ Vueless({ env: NUXT_MODULE_ENV, basePath, debug, include })
47
41
  );
48
42
  });
49
- if (_nuxt.options.dev) {
50
- const chokidarPath = require.resolve("chokidar");
51
- const chokidar = await import(pathToFileURL(chokidarPath).href);
52
- const watcher = chokidar.watch(dependencies, { ignoreInitial: true });
53
- watcher.on("change", async () => {
54
- const { dependencies: newDependencies } = await getVuelessConfig();
55
- watcher.unwatch(dependencies);
56
- watcher.add(newDependencies);
57
- _nuxt.callHook("restart");
58
- });
59
- }
43
+ await autoImportUserConfigs(basePath);
60
44
  await cacheMergedConfigs(VUELESS_PACKAGE_DIR);
61
45
  addPlugin(resolve("./runtime/plugin"));
62
46
  for (const [componentName, componentPath] of Object.entries(COMPONENTS)) {
@@ -69,33 +53,5 @@ const module = defineNuxtModule({
69
53
  addImportsDir("vueless/utils");
70
54
  }
71
55
  });
72
- async function getVuelessConfig() {
73
- const esbuildPath = require.resolve("esbuild");
74
- const esbuild = await import(pathToFileURL(esbuildPath).href);
75
- const esbuildConfig = {
76
- bundle: true,
77
- platform: "node",
78
- format: "esm",
79
- target: "ESNext",
80
- loader: { ".ts": "ts" },
81
- write: false,
82
- metafile: true
83
- // Generate dependency tree
84
- };
85
- const configPathJs = path.join(cwd(), `${VUELESS_CONFIG_FILE_NAME}.js`);
86
- const configPathTs = path.join(cwd(), `${VUELESS_CONFIG_FILE_NAME}.ts`);
87
- let result = null;
88
- if (fs.existsSync(configPathJs)) {
89
- result = await esbuild.build({ ...esbuildConfig, entryPoints: [configPathJs] });
90
- }
91
- if (fs.existsSync(configPathTs)) {
92
- result = await esbuild.build({ ...esbuildConfig, entryPoints: [configPathTs] });
93
- }
94
- const code = result?.outputFiles?.[0]?.text || "";
95
- return {
96
- vuelessConfig: (await import(`data:text/javascript,${encodeURIComponent(code)}`)).default || {},
97
- dependencies: Object.keys(result?.metafile?.inputs || {})
98
- };
99
- }
100
56
 
101
57
  export { module as default };
package/dist/package.json CHANGED
@@ -1,25 +1,13 @@
1
1
  {
2
2
  "name": "@vueless/nuxt",
3
- "version": "1.0.1-beta.9",
3
+ "version": "1.1.1-beta.0",
4
4
  "description": "Nuxt Styleless UI Component Library, powered by Tailwind CSS.",
5
5
  "author": "Johnny Grid <hello@vueless.com> (https://vueless.com)",
6
6
  "homepage": "https://vueless.com",
7
7
  "license": "MIT",
8
- "type": "module",
9
8
  "publishConfig": {
10
9
  "access": "public"
11
10
  },
12
- "exports": {
13
- ".": {
14
- "types": "./dist/types.d.mts",
15
- "import": "./dist/module.mjs",
16
- "require": "./dist/module.mjs"
17
- }
18
- },
19
- "main": "./dist/module.mjs",
20
- "files": [
21
- "dist"
22
- ],
23
11
  "scripts": {
24
12
  "dev": "npm run dev:prepare && nuxi dev playground",
25
13
  "dev:prepare": "nuxi cleanup && nuxi prepare && nuxi cleanup playground && nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
@@ -30,15 +18,19 @@
30
18
  "release:patch": "release-it patch --ci --npm.publish --git.tag --github.release",
31
19
  "release:minor": "release-it minor --ci --npm.publish --git.tag --github.release",
32
20
  "release:major": "release-it major --ci --npm.publish --git.tag --github.release",
21
+ "ts:check": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit",
33
22
  "lint": "eslint . --no-fix",
34
23
  "lint:fix": "eslint . --fix",
35
24
  "lint:ci": "eslint . --no-fix --max-warnings=0",
36
25
  "test": "vitest run",
37
26
  "test:watch": "vitest watch",
38
- "test:types": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit"
27
+ "sb:dev": "storybook dev -p 6006 --no-open",
28
+ "sb:dev:docs": "storybook dev -p 6006 --docs --no-open",
29
+ "sb:build": "storybook build --docs",
30
+ "sb:preview": "vite preview --host --outDir=storybook-static"
39
31
  },
40
32
  "dependencies": {
41
- "vueless": "^1.1.1-beta.47"
33
+ "vueless": "^1.2.3"
42
34
  },
43
35
  "devDependencies": {
44
36
  "@material-symbols/svg-500": "^0.34.1",
@@ -49,6 +41,7 @@
49
41
  "@nuxt/schema": "^4.0.3",
50
42
  "@nuxt/test-utils": "^3.19.2",
51
43
  "@types/node": "latest",
44
+ "@vueless/storybook": "^1.2.2",
52
45
  "changelogen": "^0.6.2",
53
46
  "eslint": "^9.33.0",
54
47
  "nuxt": "^4.0.3",
@@ -57,6 +50,19 @@
57
50
  "vitest": "^3.2.4",
58
51
  "vue-tsc": "^3.0.5"
59
52
  },
53
+ "sideEffects": false,
54
+ "type": "module",
55
+ "exports": {
56
+ ".": {
57
+ "types": "./dist/types.d.mts",
58
+ "import": "./dist/module.mjs",
59
+ "require": "./dist/module.mjs"
60
+ }
61
+ },
62
+ "main": "./dist/module.mjs",
63
+ "files": [
64
+ "dist"
65
+ ],
60
66
  "repository": {
61
67
  "type": "git",
62
68
  "url": "git+https://github.com/vuelessjs/vueless-module-nuxt.git"
@@ -1,3 +1,4 @@
1
+ import { defineNuxtPlugin, useRuntimeConfig } from "#app";
1
2
  import { createVueless, createVueI18nAdapter, setTheme, ColorMode, vClickOutside, vTooltip, vuelessConfig } from "vueless";
2
3
  import {
3
4
  TEXT,
@@ -5,14 +6,11 @@ import {
5
6
  ROUNDING,
6
7
  PRIMARY_COLOR,
7
8
  NEUTRAL_COLOR,
8
- AUTO_MODE_KEY,
9
9
  COLOR_MODE_KEY,
10
10
  DARK_MODE_CLASS,
11
11
  LIGHT_MODE_CLASS,
12
12
  DISABLED_OPACITY
13
13
  } from "vueless/constants";
14
- import { useRuntimeConfig } from "#imports";
15
- import { defineNuxtPlugin } from "#app";
16
14
  function parseCookies(cookieHeader) {
17
15
  if (!cookieHeader) return {};
18
16
  return cookieHeader.split(";").reduce((acc, cookie) => {
@@ -24,8 +22,10 @@ function parseCookies(cookieHeader) {
24
22
  }, {});
25
23
  }
26
24
  export default defineNuxtPlugin((_nuxtApp) => {
27
- const config = useRuntimeConfig().public.vueless;
28
- const vuelessOptions = { config };
25
+ const vuelessOptions = {};
26
+ if (import.meta.env.PROD) {
27
+ vuelessOptions.config = useRuntimeConfig().public.vueless;
28
+ }
29
29
  if ("$i18n" in _nuxtApp) {
30
30
  vuelessOptions.i18n = {
31
31
  adapter: createVueI18nAdapter({ global: _nuxtApp.$i18n })
@@ -38,8 +38,8 @@ export default defineNuxtPlugin((_nuxtApp) => {
38
38
  if (import.meta.server) {
39
39
  const event = _nuxtApp.ssrContext?.event;
40
40
  const cookies = parseCookies(event?.node.req.headers.cookie);
41
- const primary = cookies?.[`vl-${PRIMARY_COLOR}`];
42
- const neutral = cookies?.[`vl-${NEUTRAL_COLOR}`];
41
+ const primary = cookies?.[`vl-${PRIMARY_COLOR}`] ?? void 0;
42
+ const neutral = cookies?.[`vl-${NEUTRAL_COLOR}`] ?? void 0;
43
43
  const textXs = Number(cookies?.[`vl-${TEXT}-xs`]);
44
44
  const textSm = Number(cookies?.[`vl-${TEXT}-sm`]);
45
45
  const textMd = Number(cookies?.[`vl-${TEXT}-md`]);
@@ -69,9 +69,7 @@ export default defineNuxtPlugin((_nuxtApp) => {
69
69
  const disabledOpacityValue = Number(cookies?.[`vl-${DISABLED_OPACITY}`]);
70
70
  const disabledOpacity = !Number.isNaN(disabledOpacityValue) ? disabledOpacityValue : void 0;
71
71
  const colorMode = cookies?.[COLOR_MODE_KEY] || vuelessConfig.colorMode || ColorMode.Light;
72
- const autoModeValue = Number(cookies?.[AUTO_MODE_KEY]);
73
- const isCachedAutoMode = Boolean(!Number.isNaN(autoModeValue) ? autoModeValue : void 0);
74
- const themeRootVariables = setTheme({ primary, neutral, text, outline, rounding, disabledOpacity, colorMode }, isCachedAutoMode);
72
+ const themeRootVariables = setTheme({ primary, neutral, text, outline, rounding, disabledOpacity, colorMode });
75
73
  const colorModeClass = colorMode === ColorMode.Dark ? DARK_MODE_CLASS : LIGHT_MODE_CLASS;
76
74
  _nuxtApp.ssrContext?.head.push({
77
75
  style: [{ innerHTML: themeRootVariables }],
package/package.json CHANGED
@@ -1,25 +1,13 @@
1
1
  {
2
2
  "name": "@vueless/nuxt",
3
- "version": "1.0.1-beta.9",
3
+ "version": "1.1.1-beta.0",
4
4
  "description": "Nuxt Styleless UI Component Library, powered by Tailwind CSS.",
5
5
  "author": "Johnny Grid <hello@vueless.com> (https://vueless.com)",
6
6
  "homepage": "https://vueless.com",
7
7
  "license": "MIT",
8
- "type": "module",
9
8
  "publishConfig": {
10
9
  "access": "public"
11
10
  },
12
- "exports": {
13
- ".": {
14
- "types": "./dist/types.d.mts",
15
- "import": "./dist/module.mjs",
16
- "require": "./dist/module.mjs"
17
- }
18
- },
19
- "main": "./dist/module.mjs",
20
- "files": [
21
- "dist"
22
- ],
23
11
  "scripts": {
24
12
  "dev": "npm run dev:prepare && nuxi dev playground",
25
13
  "dev:prepare": "nuxi cleanup && nuxi prepare && nuxi cleanup playground && nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
@@ -30,15 +18,19 @@
30
18
  "release:patch": "release-it patch --ci --npm.publish --git.tag --github.release",
31
19
  "release:minor": "release-it minor --ci --npm.publish --git.tag --github.release",
32
20
  "release:major": "release-it major --ci --npm.publish --git.tag --github.release",
21
+ "ts:check": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit",
33
22
  "lint": "eslint . --no-fix",
34
23
  "lint:fix": "eslint . --fix",
35
24
  "lint:ci": "eslint . --no-fix --max-warnings=0",
36
25
  "test": "vitest run",
37
26
  "test:watch": "vitest watch",
38
- "test:types": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit"
27
+ "sb:dev": "storybook dev -p 6006 --no-open",
28
+ "sb:dev:docs": "storybook dev -p 6006 --docs --no-open",
29
+ "sb:build": "storybook build --docs",
30
+ "sb:preview": "vite preview --host --outDir=storybook-static"
39
31
  },
40
32
  "dependencies": {
41
- "vueless": "^1.1.1-beta.47"
33
+ "vueless": "^1.2.3"
42
34
  },
43
35
  "devDependencies": {
44
36
  "@material-symbols/svg-500": "^0.34.1",
@@ -49,6 +41,7 @@
49
41
  "@nuxt/schema": "^4.0.3",
50
42
  "@nuxt/test-utils": "^3.19.2",
51
43
  "@types/node": "latest",
44
+ "@vueless/storybook": "^1.2.2",
52
45
  "changelogen": "^0.6.2",
53
46
  "eslint": "^9.33.0",
54
47
  "nuxt": "^4.0.3",
@@ -57,6 +50,19 @@
57
50
  "vitest": "^3.2.4",
58
51
  "vue-tsc": "^3.0.5"
59
52
  },
53
+ "sideEffects": false,
54
+ "type": "module",
55
+ "exports": {
56
+ ".": {
57
+ "types": "./dist/types.d.mts",
58
+ "import": "./dist/module.mjs",
59
+ "require": "./dist/module.mjs"
60
+ }
61
+ },
62
+ "main": "./dist/module.mjs",
63
+ "files": [
64
+ "dist"
65
+ ],
60
66
  "repository": {
61
67
  "type": "git",
62
68
  "url": "git+https://github.com/vuelessjs/vueless-module-nuxt.git"