+import { DropdownMenuRoot, type DropdownMenuRootEmits, type DropdownMenuRootProps, useForwardPropsEmits } from 'radix-vue'
+
+const props = defineProps()
+const emits = defineEmits()
+
+const forwarded = useForwardPropsEmits(props, emits)
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue b/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue
new file mode 100644
index 0000000..e4157e5
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuContent.vue b/components/ui/dropdown-menu/DropdownMenuContent.vue
new file mode 100644
index 0000000..d84a307
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuContent.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuGroup.vue b/components/ui/dropdown-menu/DropdownMenuGroup.vue
new file mode 100644
index 0000000..3f20135
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuGroup.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuItem.vue b/components/ui/dropdown-menu/DropdownMenuItem.vue
new file mode 100644
index 0000000..217bb0e
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuItem.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuLabel.vue b/components/ui/dropdown-menu/DropdownMenuLabel.vue
new file mode 100644
index 0000000..f9b2234
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuLabel.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue b/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue
new file mode 100644
index 0000000..4a72790
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuRadioItem.vue b/components/ui/dropdown-menu/DropdownMenuRadioItem.vue
new file mode 100644
index 0000000..0ff1f30
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuRadioItem.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuSeparator.vue b/components/ui/dropdown-menu/DropdownMenuSeparator.vue
new file mode 100644
index 0000000..567be41
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuSeparator.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuShortcut.vue b/components/ui/dropdown-menu/DropdownMenuShortcut.vue
new file mode 100644
index 0000000..0506b7c
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuShortcut.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuSub.vue b/components/ui/dropdown-menu/DropdownMenuSub.vue
new file mode 100644
index 0000000..e0f4bd7
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuSub.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuSubContent.vue b/components/ui/dropdown-menu/DropdownMenuSubContent.vue
new file mode 100644
index 0000000..c8a9b00
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuSubContent.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue b/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue
new file mode 100644
index 0000000..9d346f0
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/DropdownMenuTrigger.vue b/components/ui/dropdown-menu/DropdownMenuTrigger.vue
new file mode 100644
index 0000000..8efd5a9
--- /dev/null
+++ b/components/ui/dropdown-menu/DropdownMenuTrigger.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/components/ui/dropdown-menu/index.ts b/components/ui/dropdown-menu/index.ts
new file mode 100644
index 0000000..6f9446c
--- /dev/null
+++ b/components/ui/dropdown-menu/index.ts
@@ -0,0 +1,16 @@
+export { DropdownMenuPortal } from 'radix-vue'
+
+export { default as DropdownMenu } from './DropdownMenu.vue'
+export { default as DropdownMenuTrigger } from './DropdownMenuTrigger.vue'
+export { default as DropdownMenuContent } from './DropdownMenuContent.vue'
+export { default as DropdownMenuGroup } from './DropdownMenuGroup.vue'
+export { default as DropdownMenuRadioGroup } from './DropdownMenuRadioGroup.vue'
+export { default as DropdownMenuItem } from './DropdownMenuItem.vue'
+export { default as DropdownMenuCheckboxItem } from './DropdownMenuCheckboxItem.vue'
+export { default as DropdownMenuRadioItem } from './DropdownMenuRadioItem.vue'
+export { default as DropdownMenuShortcut } from './DropdownMenuShortcut.vue'
+export { default as DropdownMenuSeparator } from './DropdownMenuSeparator.vue'
+export { default as DropdownMenuLabel } from './DropdownMenuLabel.vue'
+export { default as DropdownMenuSub } from './DropdownMenuSub.vue'
+export { default as DropdownMenuSubTrigger } from './DropdownMenuSubTrigger.vue'
+export { default as DropdownMenuSubContent } from './DropdownMenuSubContent.vue'
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 50d156f..585011a 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -12,6 +12,7 @@ export default withNuxt(
'@typescript-eslint/ban-ts-comment': 'off',
'no-console': 'off',
'node/prefer-global/process': 'off',
+ 'vue/no-v-html': 'off',
},
},
)
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 04acce6..9090a93 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -6,7 +6,11 @@ export default defineNuxtConfig({
'shadcn-nuxt',
'@nuxt/eslint',
'@nuxtjs/tailwindcss',
+ '@nuxtjs/color-mode',
],
+ colorMode: {
+ classSuffix: '',
+ },
routeRules: {
'/': {
prerender: true,
diff --git a/package.json b/package.json
index c380af7..799de72 100644
--- a/package.json
+++ b/package.json
@@ -40,6 +40,7 @@
"@nuxt/eslint": "^0.3.13",
"@nuxt/eslint-config": "^0.3.13",
"@nuxthub/core": "^0.5.17",
+ "@nuxtjs/color-mode": "^3.4.1",
"@nuxtjs/tailwindcss": "^6.12.0",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 517ac42..3481f9c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -72,6 +72,9 @@ importers:
'@nuxthub/core':
specifier: ^0.5.17
version: 0.5.17(ioredis@5.4.1)(nuxt@3.11.2(@opentelemetry/api@1.8.0)(@parcel/watcher@2.4.1)(@types/node@20.12.11)(@unocss/reset@0.60.0)(encoding@0.1.13)(eslint@8.57.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@4.17.2))(vue@3.4.27(typescript@5.4.5)))(ioredis@5.4.1)(optionator@0.9.4)(rollup@4.17.2)(terser@5.31.0)(typescript@5.4.5)(unocss@0.60.0(postcss@8.4.38)(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(terser@5.31.0)))(vite@5.2.11(@types/node@20.12.11)(terser@5.31.0))(vue-tsc@2.0.19(typescript@5.4.5)))(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(terser@5.31.0))
+ '@nuxtjs/color-mode':
+ specifier: ^3.4.1
+ version: 3.4.1(rollup@4.17.2)
'@nuxtjs/tailwindcss':
specifier: ^6.12.0
version: 6.12.0(rollup@4.17.2)
@@ -1030,6 +1033,9 @@ packages:
'@nuxthub/core@0.5.17':
resolution: {integrity: sha512-vMizOqQUqEZNjn5Z5/9If34j8ssNqA2qekK4U55BnrweJAUgG//BOLJvRx5nzizqt8Yp7yIsz3O7yEwUb0IVCA==}
+ '@nuxtjs/color-mode@3.4.1':
+ resolution: {integrity: sha512-vZgJqDstxInGw3RGSWbLoCLXtU1mvh1LLeuEA/X3a++DYA4ifwSbNoiSiOyb9qZHFEwz1Xr99H71sXV4IhOaEg==}
+
'@nuxtjs/tailwindcss@6.12.0':
resolution: {integrity: sha512-vXvEq8z177TQcx0tc10mw3O6T9WeN0iTL8hIKGDfidmr+HKReexJU01aPgHefFrCu4LJB70egYFYnywzB9lMyQ==}
@@ -7152,6 +7158,16 @@ snapshots:
- uWebSockets.js
- vite
+ '@nuxtjs/color-mode@3.4.1(rollup@4.17.2)':
+ dependencies:
+ '@nuxt/kit': 3.11.2(rollup@4.17.2)
+ pathe: 1.1.2
+ pkg-types: 1.1.1
+ semver: 7.6.1
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
'@nuxtjs/tailwindcss@6.12.0(rollup@4.17.2)':
dependencies:
'@nuxt/kit': 3.11.2(rollup@4.17.2)
diff --git a/tailwind.config.js b/tailwind.config.js
index 62786e9..8b8dcca 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -9,7 +9,7 @@ module.exports = {
theme: {
container: {
center: true,
- padding: '2rem',
+ padding: '1rem',
screens: {
'2xl': '1400px',
},