diff --git a/apps/panoramablick/app.vue b/apps/panoramablick/app.vue
index 09f935b..f296e91 100644
--- a/apps/panoramablick/app.vue
+++ b/apps/panoramablick/app.vue
@@ -1,6 +1,5 @@
-
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/apps/panoramablick/layouts/default.vue b/apps/panoramablick/layouts/default.vue
new file mode 100644
index 0000000..d341e90
--- /dev/null
+++ b/apps/panoramablick/layouts/default.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/panoramablick/nuxt.config.ts b/apps/panoramablick/nuxt.config.ts
index 7cfe153..da14f31 100644
--- a/apps/panoramablick/nuxt.config.ts
+++ b/apps/panoramablick/nuxt.config.ts
@@ -2,5 +2,5 @@
export default defineNuxtConfig({
compatibilityDate: '2025-05-15',
devtools: { enabled: true },
- modules: ['@nuxt/fonts', '@nuxt/icon', '@nuxt/image', '@nuxt/ui']
+ modules: ['@nuxt/fonts', '@nuxt/icon', '@nuxt/image', '@nuxt/ui', '@websites/ui']
})
\ No newline at end of file
diff --git a/apps/panoramablick/package.json b/apps/panoramablick/package.json
index 0470355..53a90a5 100644
--- a/apps/panoramablick/package.json
+++ b/apps/panoramablick/package.json
@@ -10,7 +10,8 @@
"postinstall": "nuxt prepare"
},
"dependencies": {
- "@websites/ui": "0.0.0",
+ "@websites/ui": "workspace:*",
+ "@websites/tsconfig": "workspace:*",
"@nuxt/fonts": "0.11.4",
"@nuxt/icon": "1.13.0",
"@nuxt/image": "1.10.0",
diff --git a/apps/panoramablick/tsconfig.json b/apps/panoramablick/tsconfig.json
index a746f2a..31f9914 100644
--- a/apps/panoramablick/tsconfig.json
+++ b/apps/panoramablick/tsconfig.json
@@ -1,4 +1,4 @@
{
// https://nuxt.com/docs/guide/concepts/typescript
- "extends": "./.nuxt/tsconfig.json"
+ "extends": "@websites/tsconfig/base.json"
}
diff --git a/packages/tsconfig/base.json b/packages/tsconfig/base.json
new file mode 100644
index 0000000..3cc6a22
--- /dev/null
+++ b/packages/tsconfig/base.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "compilerOptions": {
+ "composite": false,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "inlineSources": false,
+ "isolatedModules": true,
+ "noUnusedLocals": false,
+ "noUnusedParameters": false,
+ "preserveWatchOutput": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "strictNullChecks": true
+ },
+ "exclude": ["node_modules"]
+}
diff --git a/packages/tsconfig/nuxt.json b/packages/tsconfig/nuxt.json
new file mode 100644
index 0000000..2effd1a
--- /dev/null
+++ b/packages/tsconfig/nuxt.json
@@ -0,0 +1,4 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": ["./base.json"]
+}
diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json
new file mode 100644
index 0000000..4bab677
--- /dev/null
+++ b/packages/tsconfig/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "@websites/tsconfig",
+ "version": "0.0.0",
+ "private": true,
+ "license": "MIT",
+ "publishConfig": {
+ "access": "public"
+ },
+ "devDependencies": {
+ "@vue/tsconfig": "^0.5.1"
+ }
+}
diff --git a/packages/tsconfig/vue.json b/packages/tsconfig/vue.json
new file mode 100644
index 0000000..597d6bc
--- /dev/null
+++ b/packages/tsconfig/vue.json
@@ -0,0 +1,4 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": ["./base.json", "@vue/tsconfig/tsconfig.dom.json"]
+}
diff --git a/packages/ui/package.json b/packages/ui/package.json
index f93a8f5..5ca3b5a 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -5,17 +5,19 @@
"repository": "your-org/my-module",
"license": "MIT",
"type": "module",
+ "main": "./src/module.ts",
"exports": {
".": {
- "types": "./dist/types.d.mts",
- "import": "./dist/module.mjs"
+ "import": "./src/module.ts",
+ "require": "./src/module.ts",
+ "default": "./src/module.ts",
+ "types": "./src/module.ts"
}
},
- "main": "./dist/module.mjs",
"typesVersions": {
"*": {
".": [
- "./dist/types.d.mts"
+ "./src/modules.ts"
]
}
},
@@ -41,6 +43,7 @@
"nuxt": "^3.17.5"
},
"devDependencies": {
+ "@websites/tsconfig": "workspace:*",
"@nuxt/devtools": "^2.5.0",
"@nuxt/eslint-config": "^1.4.1",
"@nuxt/fonts": "0.11.4",
diff --git a/packages/ui/src/module.ts b/packages/ui/src/module.ts
index 7d9c192..832a0a6 100644
--- a/packages/ui/src/module.ts
+++ b/packages/ui/src/module.ts
@@ -1,19 +1,21 @@
-import { defineNuxtModule, addPlugin, createResolver } from '@nuxt/kit'
+import { defineNuxtModule, createResolver, addComponentsDir } from '@nuxt/kit'
// Module options TypeScript interface definition
export interface ModuleOptions {}
export default defineNuxtModule({
meta: {
- name: 'my-module',
- configKey: 'myModule',
+ name: 'websites',
+ configKey: 'websites',
},
- // Default configuration options of the Nuxt module
defaults: {},
setup(_options, _nuxt) {
const resolver = createResolver(import.meta.url)
-
- // Do not add the extension since the `.ts` will be transpiled to `.mjs` after `npm run prepack`
- addPlugin(resolver.resolve('./runtime/plugin'))
+ addComponentsDir({
+ path: resolver.resolve('./runtime/components'),
+ pathPrefix: false,
+ prefix: '',
+ global: true,
+ })
},
})
diff --git a/packages/ui/src/runtime/components/WDummy.vue b/packages/ui/src/runtime/components/WDummy.vue
new file mode 100644
index 0000000..529005e
--- /dev/null
+++ b/packages/ui/src/runtime/components/WDummy.vue
@@ -0,0 +1,3 @@
+
+ Dummy
+
diff --git a/packages/ui/src/runtime/plugin.ts b/packages/ui/src/runtime/plugin.ts
deleted file mode 100644
index df7fd87..0000000
--- a/packages/ui/src/runtime/plugin.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { defineNuxtPlugin } from '#app'
-
-export default defineNuxtPlugin((_nuxtApp) => {
- console.log('Plugin injected by my-module!')
-})
diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json
index 59ad4a8..02f1206 100644
--- a/packages/ui/tsconfig.json
+++ b/packages/ui/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "./.nuxt/tsconfig.json",
+ "extends": "@websites/tsconfig/base.json",
"exclude": [
"dist",
"node_modules",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 60b323e..b28b041 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -29,8 +29,11 @@ importers:
'@nuxt/ui':
specifier: 3.1.3
version: 3.1.3(embla-carousel@8.6.0)(typescript@5.8.3)(vite@6.3.5)(vue-router@4.5.1)(vue@3.5.16)
+ '@websites/tsconfig':
+ specifier: workspace:*
+ version: link:../../packages/tsconfig
'@websites/ui':
- specifier: 0.0.0
+ specifier: workspace:*
version: link:../../packages/ui
nuxt:
specifier: ^3.17.5
@@ -45,6 +48,12 @@ importers:
specifier: ^4.5.1
version: 4.5.1(vue@3.5.16)
+ packages/tsconfig:
+ devDependencies:
+ '@vue/tsconfig':
+ specifier: ^0.5.1
+ version: 0.5.1
+
packages/ui:
dependencies:
'@nuxt/kit':
@@ -81,6 +90,9 @@ importers:
'@types/node':
specifier: latest
version: 24.0.1
+ '@websites/tsconfig':
+ specifier: workspace:*
+ version: link:../tsconfig
changelogen:
specifier: ^0.6.1
version: 0.6.1
@@ -3079,6 +3091,10 @@ packages:
/@vue/shared@3.5.16:
resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==}
+ /@vue/tsconfig@0.5.1:
+ resolution: {integrity: sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==}
+ dev: true
+
/@vueuse/core@10.11.1(vue@3.5.16):
resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==}
dependencies: