+
diff --git a/apps/www/src/lib/registry/new-york/ui/table/TableCell.vue b/apps/www/src/lib/registry/new-york/ui/table/TableCell.vue
index 93cd12da..40c1f43e 100644
--- a/apps/www/src/lib/registry/new-york/ui/table/TableCell.vue
+++ b/apps/www/src/lib/registry/new-york/ui/table/TableCell.vue
@@ -11,7 +11,7 @@ const props = defineProps<{
- |
+ |
|
diff --git a/apps/www/src/lib/registry/registry.ts b/apps/www/src/lib/registry/registry.ts
index 6f35d036..2205d062 100644
--- a/apps/www/src/lib/registry/registry.ts
+++ b/apps/www/src/lib/registry/registry.ts
@@ -1,6 +1,7 @@
import { readFile, readdir } from 'node:fs/promises'
import { join, normalize, resolve } from 'pathe'
import { compileScript, parse } from 'vue/compiler-sfc'
+import oxc from 'oxc-parser'
import type { Registry } from '../../lib/registry'
@@ -135,31 +136,47 @@ async function buildUIRegistry(componentPath: string, componentName: string) {
async function getDependencies(filename: string) {
const code = await readFile(filename, { encoding: 'utf8' })
- const parsed = parse(code, { filename })
const registryDependencies = new Set()
const dependencies = new Set()
- if (parsed.descriptor.script?.content || parsed.descriptor.scriptSetup?.content) {
- const compiled = compileScript(parsed.descriptor, { id: '' })
+ const populateDeps = (source: string) => {
+ const peerDeps = DEPENDENCIES.get(source)
+ const taggedDeps = DEPENDENCIES_WITH_TAGS.get(source)
+ if (peerDeps !== undefined) {
+ if (taggedDeps !== undefined)
+ dependencies.add(taggedDeps)
+ else
+ dependencies.add(source)
+ peerDeps.forEach(dep => dependencies.add(dep))
+ }
- Object.values(compiled.imports!).forEach((value) => {
- const source = value.source
- const peerDeps = DEPENDENCIES.get(source)
- const taggedDeps = DEPENDENCIES_WITH_TAGS.get(source)
- if (peerDeps !== undefined) {
- if (taggedDeps !== undefined)
- dependencies.add(taggedDeps)
- else
- dependencies.add(source)
- peerDeps.forEach(dep => dependencies.add(dep))
- }
+ if (source.startsWith(REGISTRY_DEPENDENCY)) {
+ const component = source.split('/').at(-1)!
+ registryDependencies.add(component)
+ }
+ }
- if (source.startsWith(REGISTRY_DEPENDENCY)) {
- const component = source.split('/').at(-1)!
- registryDependencies.add(component)
- }
+ if (filename.endsWith('.ts')) {
+ const ast = oxc.parseSync(code, {
+ sourceType: 'module',
+ sourceFilename: filename,
})
+
+ const sources = JSON.parse(ast.program).body.filter((i: any) => i.type === 'ImportDeclaration').map((i: any) => i.source)
+ sources.forEach((source: any) => {
+ populateDeps(source.value)
+ })
+ }
+ else {
+ const parsed = parse(code, { filename })
+ if (parsed.descriptor.script?.content || parsed.descriptor.scriptSetup?.content) {
+ const compiled = compileScript(parsed.descriptor, { id: '' })
+
+ Object.values(compiled.imports!).forEach((value) => {
+ populateDeps(value.source)
+ })
+ }
}
return { registryDependencies, dependencies }
diff --git a/apps/www/src/public/registry/index.json b/apps/www/src/public/registry/index.json
index d6b78da7..5b16fa1e 100644
--- a/apps/www/src/public/registry/index.json
+++ b/apps/www/src/public/registry/index.json
@@ -651,4 +651,4 @@
],
"type": "components:ui"
}
-]
\ No newline at end of file
+]
diff --git a/apps/www/src/public/registry/styles/default/alert-dialog.json b/apps/www/src/public/registry/styles/default/alert-dialog.json
index eb365c4e..96a0087e 100644
--- a/apps/www/src/public/registry/styles/default/alert-dialog.json
+++ b/apps/www/src/public/registry/styles/default/alert-dialog.json
@@ -48,4 +48,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/carousel.json b/apps/www/src/public/registry/styles/default/carousel.json
index f49cc2e0..45584196 100644
--- a/apps/www/src/public/registry/styles/default/carousel.json
+++ b/apps/www/src/public/registry/styles/default/carousel.json
@@ -40,4 +40,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/context-menu.json b/apps/www/src/public/registry/styles/default/context-menu.json
index 971bba3a..6d2c9b81 100644
--- a/apps/www/src/public/registry/styles/default/context-menu.json
+++ b/apps/www/src/public/registry/styles/default/context-menu.json
@@ -71,4 +71,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/data-table.json b/apps/www/src/public/registry/styles/default/data-table.json
index 6f15fbca..f1366992 100644
--- a/apps/www/src/public/registry/styles/default/data-table.json
+++ b/apps/www/src/public/registry/styles/default/data-table.json
@@ -7,7 +7,7 @@
"files": [
{
"name": "DataTable.vue",
- "content": "\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Toggle Columns \n \n \n !column.getCanHide())\"\n :key=\"column.id\"\n :checked=\"column.getIsVisible()\"\n @update:checked=\"toggleColumnVisibility(column)\"\n >\n {{ column.columnDef.header }}\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n No data available.\n \n \n \n\n \n \n \n {{ table.getFilteredSelectedRowModel().rows.length }} of {{ \" \" }}\n {{ table.getFilteredRowModel().rows.length }} row(s) selected\n \n \n \n \n \n Rows per page:\n \n \n \n\n \n Page {{ table.getState().pagination.pageIndex + 1 }} of\n {{ table.getPageCount() }}\n \n\n \n \n \n \n \n \n \n \n\n"
+ "content": "\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Toggle Columns \n \n \n !column.getCanHide())\"\n :key=\"column.id\"\n :checked=\"column.getIsVisible()\"\n @update:checked=\"toggleColumnVisibility(column)\"\n >\n {{ column.columnDef.header }}\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n No data available.\n \n \n \n\n \n \n \n {{ table.getFilteredSelectedRowModel().rows.length }} of {{ \" \" }}\n {{ table.getFilteredRowModel().rows.length }} row(s) selected\n \n \n \n \n \n Rows per page:\n \n \n \n\n \n Page {{ table.getState().pagination.pageIndex + 1 }} of\n {{ table.getPageCount() }}\n \n\n \n \n \n \n \n \n \n \n\n"
},
{
"name": "index.ts",
@@ -15,4 +15,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/dialog.json b/apps/www/src/public/registry/styles/default/dialog.json
index f4b3b8c7..6102064c 100644
--- a/apps/www/src/public/registry/styles/default/dialog.json
+++ b/apps/www/src/public/registry/styles/default/dialog.json
@@ -43,4 +43,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/dropdown-menu.json b/apps/www/src/public/registry/styles/default/dropdown-menu.json
index 44e56edf..8393653d 100644
--- a/apps/www/src/public/registry/styles/default/dropdown-menu.json
+++ b/apps/www/src/public/registry/styles/default/dropdown-menu.json
@@ -67,4 +67,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/kbd.json b/apps/www/src/public/registry/styles/default/kbd.json
index db9ad268..2eeafdda 100644
--- a/apps/www/src/public/registry/styles/default/kbd.json
+++ b/apps/www/src/public/registry/styles/default/kbd.json
@@ -5,7 +5,7 @@
"files": [
{
"name": "Kbd.vue",
- "content": "\n\n\n \n \n \n\n"
+ "content": "\n\n\n \n \n \n\n"
},
{
"name": "index.ts",
@@ -13,4 +13,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/menubar.json b/apps/www/src/public/registry/styles/default/menubar.json
index c816fcbc..fbe86bd2 100644
--- a/apps/www/src/public/registry/styles/default/menubar.json
+++ b/apps/www/src/public/registry/styles/default/menubar.json
@@ -71,4 +71,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/navigation-menu.json b/apps/www/src/public/registry/styles/default/navigation-menu.json
index 32d828b7..872a0458 100644
--- a/apps/www/src/public/registry/styles/default/navigation-menu.json
+++ b/apps/www/src/public/registry/styles/default/navigation-menu.json
@@ -43,4 +43,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/scroll-area.json b/apps/www/src/public/registry/styles/default/scroll-area.json
index a717c4ea..326298b5 100644
--- a/apps/www/src/public/registry/styles/default/scroll-area.json
+++ b/apps/www/src/public/registry/styles/default/scroll-area.json
@@ -19,4 +19,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/select.json b/apps/www/src/public/registry/styles/default/select.json
index d8df5cb7..e412f47d 100644
--- a/apps/www/src/public/registry/styles/default/select.json
+++ b/apps/www/src/public/registry/styles/default/select.json
@@ -55,4 +55,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/switch.json b/apps/www/src/public/registry/styles/default/switch.json
index 3b09a00e..006f0b0a 100644
--- a/apps/www/src/public/registry/styles/default/switch.json
+++ b/apps/www/src/public/registry/styles/default/switch.json
@@ -15,4 +15,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/textarea.json b/apps/www/src/public/registry/styles/default/textarea.json
index 57c8fb8c..1f76c526 100644
--- a/apps/www/src/public/registry/styles/default/textarea.json
+++ b/apps/www/src/public/registry/styles/default/textarea.json
@@ -17,4 +17,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/default/toast.json b/apps/www/src/public/registry/styles/default/toast.json
index 7abff558..4c7ea5f3 100644
--- a/apps/www/src/public/registry/styles/default/toast.json
+++ b/apps/www/src/public/registry/styles/default/toast.json
@@ -47,4 +47,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/alert-dialog.json b/apps/www/src/public/registry/styles/new-york/alert-dialog.json
index f79d3a78..3941d10f 100644
--- a/apps/www/src/public/registry/styles/new-york/alert-dialog.json
+++ b/apps/www/src/public/registry/styles/new-york/alert-dialog.json
@@ -48,4 +48,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/carousel.json b/apps/www/src/public/registry/styles/new-york/carousel.json
index 530ca629..b14b3512 100644
--- a/apps/www/src/public/registry/styles/new-york/carousel.json
+++ b/apps/www/src/public/registry/styles/new-york/carousel.json
@@ -40,4 +40,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/context-menu.json b/apps/www/src/public/registry/styles/new-york/context-menu.json
index bc2cc5e2..f54fa1fd 100644
--- a/apps/www/src/public/registry/styles/new-york/context-menu.json
+++ b/apps/www/src/public/registry/styles/new-york/context-menu.json
@@ -71,4 +71,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/dialog.json b/apps/www/src/public/registry/styles/new-york/dialog.json
index 254ba0bd..6ab4c5b3 100644
--- a/apps/www/src/public/registry/styles/new-york/dialog.json
+++ b/apps/www/src/public/registry/styles/new-york/dialog.json
@@ -43,4 +43,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/dropdown-menu.json b/apps/www/src/public/registry/styles/new-york/dropdown-menu.json
index 7ad3075b..df16ad60 100644
--- a/apps/www/src/public/registry/styles/new-york/dropdown-menu.json
+++ b/apps/www/src/public/registry/styles/new-york/dropdown-menu.json
@@ -67,4 +67,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/menubar.json b/apps/www/src/public/registry/styles/new-york/menubar.json
index 82c536df..d0a58952 100644
--- a/apps/www/src/public/registry/styles/new-york/menubar.json
+++ b/apps/www/src/public/registry/styles/new-york/menubar.json
@@ -71,4 +71,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/navigation-menu.json b/apps/www/src/public/registry/styles/new-york/navigation-menu.json
index 22142536..692b7f79 100644
--- a/apps/www/src/public/registry/styles/new-york/navigation-menu.json
+++ b/apps/www/src/public/registry/styles/new-york/navigation-menu.json
@@ -43,4 +43,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/scroll-area.json b/apps/www/src/public/registry/styles/new-york/scroll-area.json
index a717c4ea..326298b5 100644
--- a/apps/www/src/public/registry/styles/new-york/scroll-area.json
+++ b/apps/www/src/public/registry/styles/new-york/scroll-area.json
@@ -19,4 +19,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/select.json b/apps/www/src/public/registry/styles/new-york/select.json
index a17cfb57..699d9611 100644
--- a/apps/www/src/public/registry/styles/new-york/select.json
+++ b/apps/www/src/public/registry/styles/new-york/select.json
@@ -55,4 +55,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/switch.json b/apps/www/src/public/registry/styles/new-york/switch.json
index 7cc55c5b..14e290e0 100644
--- a/apps/www/src/public/registry/styles/new-york/switch.json
+++ b/apps/www/src/public/registry/styles/new-york/switch.json
@@ -15,4 +15,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/table.json b/apps/www/src/public/registry/styles/new-york/table.json
index 6ad9f35f..a6435e70 100644
--- a/apps/www/src/public/registry/styles/new-york/table.json
+++ b/apps/www/src/public/registry/styles/new-york/table.json
@@ -47,4 +47,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/apps/www/src/public/registry/styles/new-york/toast.json b/apps/www/src/public/registry/styles/new-york/toast.json
index a0c0fee5..b297aae8 100644
--- a/apps/www/src/public/registry/styles/new-york/toast.json
+++ b/apps/www/src/public/registry/styles/new-york/toast.json
@@ -47,4 +47,4 @@
}
],
"type": "components:ui"
-}
\ No newline at end of file
+}
diff --git a/packages/cli/test/fixtures/nuxt/components/ui/alert-dialog/AlertDialogContent.vue b/packages/cli/test/fixtures/nuxt/components/ui/alert-dialog/AlertDialogContent.vue
index fde4167f..974f825a 100644
--- a/packages/cli/test/fixtures/nuxt/components/ui/alert-dialog/AlertDialogContent.vue
+++ b/packages/cli/test/fixtures/nuxt/components/ui/alert-dialog/AlertDialogContent.vue
@@ -24,7 +24,7 @@ const emitsAsProps = useEmitAsProps(emits)
v-bind="{ ...props, ...emitsAsProps }"
:class="
cn(
- 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg md:w-full',
+ 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border border-border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg md:w-full',
props.class,
)
"
diff --git a/packages/module/playground/components/ui/carousel/Carousel.vue b/packages/module/playground/components/ui/carousel/Carousel.vue
index c88d61ad..b6147c27 100644
--- a/packages/module/playground/components/ui/carousel/Carousel.vue
+++ b/packages/module/playground/components/ui/carousel/Carousel.vue
@@ -1,5 +1,4 @@
|