diff --git a/.nuxtrc b/.nuxtrc new file mode 100644 index 00000000..7bfc3d5c --- /dev/null +++ b/.nuxtrc @@ -0,0 +1 @@ +modules[]=nuxt-ui-dev-module diff --git a/modules/dev/index.ts b/modules/dev/index.ts new file mode 100644 index 00000000..768a345d --- /dev/null +++ b/modules/dev/index.ts @@ -0,0 +1,22 @@ +import { createResolver, defineNuxtModule, useNuxt } from '@nuxt/kit' +import { watch } from 'chokidar' +import { debounce } from 'perfect-debounce' + +/** + * This is an internal module aiming to make the DX of developing Nuxt UI better. + */ +export default defineNuxtModule({ + meta: { + name: 'nuxt-ui-dev-module' + }, + setup () { + const nuxt = useNuxt() + const resolver = createResolver(import.meta.url) + const watcher = watch(resolver.resolve('../../src/theme')) + + const generateApp = debounce(() => nuxt.hooks.callHook('builder:generateApp')) + + watcher.on('all', generateApp) + nuxt.hook('close', () => watcher.close()) + } +}) diff --git a/modules/dev/package.json b/modules/dev/package.json new file mode 100644 index 00000000..1bb61ad8 --- /dev/null +++ b/modules/dev/package.json @@ -0,0 +1,11 @@ +{ + "name": "nuxt-ui-dev-module", + "exports": { + ".": "./index.ts" + }, + "dependencies": { + "@nuxt/kit": "latest", + "chokidar": "^3.6.0", + "perfect-debounce": "^1.0.0" + } +} diff --git a/package.json b/package.json index 3cfefb93..1ee83224 100644 --- a/package.json +++ b/package.json @@ -44,10 +44,14 @@ "eslint": "^8.57.0", "happy-dom": "^13.6.2", "nuxt": "npm:nuxt-nightly@latest", + "nuxt-ui-dev-module": "workspace:*", "vitest": "^1.3.1", "vitest-environment-nuxt": "^1.0.0", "vue": "^3.4.21", "vue-router": "^4.3.0", "vue-tsc": "^2.0.6" + }, + "resolutions": { + "nuxt-ui3": "workspace:*" } } \ No newline at end of file diff --git a/playground/app.vue b/playground/app.vue index e59868ad..0add4645 100644 --- a/playground/app.vue +++ b/playground/app.vue @@ -5,7 +5,7 @@ useHead({ } }) -const components = ['avatar', 'badge', 'button', 'collapsible', 'tooltip'] +const components = ['avatar', 'badge', 'button', 'collapsible', 'kbd', 'tooltip'] diff --git a/src/runtime/components/Container.vue b/src/runtime/components/Container.vue index da292fb7..f3e63155 100644 --- a/src/runtime/components/Container.vue +++ b/src/runtime/components/Container.vue @@ -15,9 +15,7 @@ export interface ContainerProps {