diff --git a/apps/www/__registry__/index.ts b/apps/www/__registry__/index.ts
index 61fbc8ca..b24d3ade 100644
--- a/apps/www/__registry__/index.ts
+++ b/apps/www/__registry__/index.ts
@@ -16,6 +16,13 @@ export const Index = {
component: () => import('../src/lib/registry/default/example/AlertDemo.vue').then(m => m.default),
files: ['../src/lib/registry/default/example/AlertDemo.vue'],
},
+ AlertDestructiveDemo: {
+ name: 'AlertDestructiveDemo',
+ type: 'components:example',
+ registryDependencies: ['alert'],
+ component: () => import('../src/lib/registry/default/example/AlertDestructiveDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/AlertDestructiveDemo.vue'],
+ },
AlertDialogDemo: {
name: 'AlertDialogDemo',
type: 'components:example',
@@ -44,6 +51,34 @@ export const Index = {
component: () => import('../src/lib/registry/default/example/BadgeDemo.vue').then(m => m.default),
files: ['../src/lib/registry/default/example/BadgeDemo.vue'],
},
+ BadgeDestructiveDemo: {
+ name: 'BadgeDestructiveDemo',
+ type: 'components:example',
+ registryDependencies: ['badge'],
+ component: () => import('../src/lib/registry/default/example/BadgeDestructiveDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/BadgeDestructiveDemo.vue'],
+ },
+ BadgeOutlineDemo: {
+ name: 'BadgeOutlineDemo',
+ type: 'components:example',
+ registryDependencies: ['badge'],
+ component: () => import('../src/lib/registry/default/example/BadgeOutlineDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/BadgeOutlineDemo.vue'],
+ },
+ BadgeSecondaryDemo: {
+ name: 'BadgeSecondaryDemo',
+ type: 'components:example',
+ registryDependencies: ['badge'],
+ component: () => import('../src/lib/registry/default/example/BadgeSecondaryDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/BadgeSecondaryDemo.vue'],
+ },
+ ButtonAsChildDemo: {
+ name: 'ButtonAsChildDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/default/example/ButtonAsChildDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ButtonAsChildDemo.vue'],
+ },
ButtonDemo: {
name: 'ButtonDemo',
type: 'components:example',
@@ -51,6 +86,62 @@ export const Index = {
component: () => import('../src/lib/registry/default/example/ButtonDemo.vue').then(m => m.default),
files: ['../src/lib/registry/default/example/ButtonDemo.vue'],
},
+ ButtonDestructiveDemo: {
+ name: 'ButtonDestructiveDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/default/example/ButtonDestructiveDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ButtonDestructiveDemo.vue'],
+ },
+ ButtonGhostDemo: {
+ name: 'ButtonGhostDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/default/example/ButtonGhostDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ButtonGhostDemo.vue'],
+ },
+ ButtonIconDemo: {
+ name: 'ButtonIconDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/default/example/ButtonIconDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ButtonIconDemo.vue'],
+ },
+ ButtonLinkDemo: {
+ name: 'ButtonLinkDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/default/example/ButtonLinkDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ButtonLinkDemo.vue'],
+ },
+ ButtonLoadingDemo: {
+ name: 'ButtonLoadingDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/default/example/ButtonLoadingDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ButtonLoadingDemo.vue'],
+ },
+ ButtonOutlineDemo: {
+ name: 'ButtonOutlineDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/default/example/ButtonOutlineDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ButtonOutlineDemo.vue'],
+ },
+ ButtonSecondaryDemo: {
+ name: 'ButtonSecondaryDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/default/example/ButtonSecondaryDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ButtonSecondaryDemo.vue'],
+ },
+ ButtonWithIconDemo: {
+ name: 'ButtonWithIconDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/default/example/ButtonWithIconDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ButtonWithIconDemo.vue'],
+ },
CalendarDemo: {
name: 'CalendarDemo',
type: 'components:example',
@@ -72,6 +163,13 @@ export const Index = {
component: () => import('../src/lib/registry/default/example/CardDemo.vue').then(m => m.default),
files: ['../src/lib/registry/default/example/CardDemo.vue'],
},
+ CardFormDemo: {
+ name: 'CardFormDemo',
+ type: 'components:example',
+ registryDependencies: ['card', 'select', 'input', 'label', 'button'],
+ component: () => import('../src/lib/registry/default/example/CardFormDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/CardFormDemo.vue'],
+ },
CardStats: {
name: 'CardStats',
type: 'components:example',
@@ -163,6 +261,13 @@ export const Index = {
component: () => import('../src/lib/registry/default/example/CommandDemo.vue').then(m => m.default),
files: ['../src/lib/registry/default/example/CommandDemo.vue'],
},
+ CommandDialogDemo: {
+ name: 'CommandDialogDemo',
+ type: 'components:example',
+ registryDependencies: ['command'],
+ component: () => import('../src/lib/registry/default/example/CommandDialogDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/CommandDialogDemo.vue'],
+ },
ContextMenuDemo: {
name: 'ContextMenuDemo',
type: 'components:example',
@@ -212,6 +317,13 @@ export const Index = {
component: () => import('../src/lib/registry/default/example/DatePickerWithRange.vue').then(m => m.default),
files: ['../src/lib/registry/default/example/DatePickerWithRange.vue'],
},
+ DialogCustomCloseButton: {
+ name: 'DialogCustomCloseButton',
+ type: 'components:example',
+ registryDependencies: ['button', 'dialog', 'input', 'label'],
+ component: () => import('../src/lib/registry/default/example/DialogCustomCloseButton.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/DialogCustomCloseButton.vue'],
+ },
DialogDemo: {
name: 'DialogDemo',
type: 'components:example',
@@ -352,6 +464,13 @@ export const Index = {
component: () => import('../src/lib/registry/default/example/ScrollAreaDemo.vue').then(m => m.default),
files: ['../src/lib/registry/default/example/ScrollAreaDemo.vue'],
},
+ ScrollAreaHorizontalDemo: {
+ name: 'ScrollAreaHorizontalDemo',
+ type: 'components:example',
+ registryDependencies: ['scroll-area'],
+ component: () => import('../src/lib/registry/default/example/ScrollAreaHorizontalDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ScrollAreaHorizontalDemo.vue'],
+ },
SelectDemo: {
name: 'SelectDemo',
type: 'components:example',
@@ -380,6 +499,13 @@ export const Index = {
component: () => import('../src/lib/registry/default/example/SheetDemo.vue').then(m => m.default),
files: ['../src/lib/registry/default/example/SheetDemo.vue'],
},
+ SheetSideDemo: {
+ name: 'SheetSideDemo',
+ type: 'components:example',
+ registryDependencies: ['button', 'input', 'label', 'sheet'],
+ component: () => import('../src/lib/registry/default/example/SheetSideDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/SheetSideDemo.vue'],
+ },
SkeletonDemo: {
name: 'SkeletonDemo',
type: 'components:example',
@@ -506,6 +632,41 @@ export const Index = {
component: () => import('../src/lib/registry/default/example/ToggleDemo.vue').then(m => m.default),
files: ['../src/lib/registry/default/example/ToggleDemo.vue'],
},
+ ToggleDisabledDemo: {
+ name: 'ToggleDisabledDemo',
+ type: 'components:example',
+ registryDependencies: ['toggle'],
+ component: () => import('../src/lib/registry/default/example/ToggleDisabledDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ToggleDisabledDemo.vue'],
+ },
+ ToggleItalicDemo: {
+ name: 'ToggleItalicDemo',
+ type: 'components:example',
+ registryDependencies: ['toggle'],
+ component: () => import('../src/lib/registry/default/example/ToggleItalicDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ToggleItalicDemo.vue'],
+ },
+ ToggleItalicWithTextDemo: {
+ name: 'ToggleItalicWithTextDemo',
+ type: 'components:example',
+ registryDependencies: ['toggle'],
+ component: () => import('../src/lib/registry/default/example/ToggleItalicWithTextDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ToggleItalicWithTextDemo.vue'],
+ },
+ ToggleLargeDemo: {
+ name: 'ToggleLargeDemo',
+ type: 'components:example',
+ registryDependencies: ['toggle'],
+ component: () => import('../src/lib/registry/default/example/ToggleLargeDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ToggleLargeDemo.vue'],
+ },
+ ToggleSmallDemo: {
+ name: 'ToggleSmallDemo',
+ type: 'components:example',
+ registryDependencies: ['toggle'],
+ component: () => import('../src/lib/registry/default/example/ToggleSmallDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/default/example/ToggleSmallDemo.vue'],
+ },
TooltipDemo: {
name: 'TooltipDemo',
type: 'components:example',
@@ -648,6 +809,13 @@ export const Index = {
component: () => import('../src/lib/registry/new-york/example/AlertDemo.vue').then(m => m.default),
files: ['../src/lib/registry/new-york/example/AlertDemo.vue'],
},
+ AlertDestructiveDemo: {
+ name: 'AlertDestructiveDemo',
+ type: 'components:example',
+ registryDependencies: ['alert'],
+ component: () => import('../src/lib/registry/new-york/example/AlertDestructiveDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/AlertDestructiveDemo.vue'],
+ },
AlertDialogDemo: {
name: 'AlertDialogDemo',
type: 'components:example',
@@ -676,6 +844,34 @@ export const Index = {
component: () => import('../src/lib/registry/new-york/example/BadgeDemo.vue').then(m => m.default),
files: ['../src/lib/registry/new-york/example/BadgeDemo.vue'],
},
+ BadgeDestructiveDemo: {
+ name: 'BadgeDestructiveDemo',
+ type: 'components:example',
+ registryDependencies: ['badge'],
+ component: () => import('../src/lib/registry/new-york/example/BadgeDestructiveDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/BadgeDestructiveDemo.vue'],
+ },
+ BadgeOutlineDemo: {
+ name: 'BadgeOutlineDemo',
+ type: 'components:example',
+ registryDependencies: ['badge'],
+ component: () => import('../src/lib/registry/new-york/example/BadgeOutlineDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/BadgeOutlineDemo.vue'],
+ },
+ BadgeSecondaryDemo: {
+ name: 'BadgeSecondaryDemo',
+ type: 'components:example',
+ registryDependencies: ['badge'],
+ component: () => import('../src/lib/registry/new-york/example/BadgeSecondaryDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/BadgeSecondaryDemo.vue'],
+ },
+ ButtonAsChildDemo: {
+ name: 'ButtonAsChildDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/new-york/example/ButtonAsChildDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ButtonAsChildDemo.vue'],
+ },
ButtonDemo: {
name: 'ButtonDemo',
type: 'components:example',
@@ -683,6 +879,62 @@ export const Index = {
component: () => import('../src/lib/registry/new-york/example/ButtonDemo.vue').then(m => m.default),
files: ['../src/lib/registry/new-york/example/ButtonDemo.vue'],
},
+ ButtonDestructiveDemo: {
+ name: 'ButtonDestructiveDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/new-york/example/ButtonDestructiveDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ButtonDestructiveDemo.vue'],
+ },
+ ButtonGhostDemo: {
+ name: 'ButtonGhostDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/new-york/example/ButtonGhostDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ButtonGhostDemo.vue'],
+ },
+ ButtonIconDemo: {
+ name: 'ButtonIconDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/new-york/example/ButtonIconDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ButtonIconDemo.vue'],
+ },
+ ButtonLinkDemo: {
+ name: 'ButtonLinkDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/new-york/example/ButtonLinkDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ButtonLinkDemo.vue'],
+ },
+ ButtonLoadingDemo: {
+ name: 'ButtonLoadingDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/new-york/example/ButtonLoadingDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ButtonLoadingDemo.vue'],
+ },
+ ButtonOutlineDemo: {
+ name: 'ButtonOutlineDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/new-york/example/ButtonOutlineDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ButtonOutlineDemo.vue'],
+ },
+ ButtonSecondaryDemo: {
+ name: 'ButtonSecondaryDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/new-york/example/ButtonSecondaryDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ButtonSecondaryDemo.vue'],
+ },
+ ButtonWithIconDemo: {
+ name: 'ButtonWithIconDemo',
+ type: 'components:example',
+ registryDependencies: ['button'],
+ component: () => import('../src/lib/registry/new-york/example/ButtonWithIconDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ButtonWithIconDemo.vue'],
+ },
CalendarDemo: {
name: 'CalendarDemo',
type: 'components:example',
@@ -704,6 +956,13 @@ export const Index = {
component: () => import('../src/lib/registry/new-york/example/CardDemo.vue').then(m => m.default),
files: ['../src/lib/registry/new-york/example/CardDemo.vue'],
},
+ CardFormDemo: {
+ name: 'CardFormDemo',
+ type: 'components:example',
+ registryDependencies: ['card', 'select', 'input', 'label', 'button'],
+ component: () => import('../src/lib/registry/new-york/example/CardFormDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/CardFormDemo.vue'],
+ },
CardStats: {
name: 'CardStats',
type: 'components:example',
@@ -795,6 +1054,13 @@ export const Index = {
component: () => import('../src/lib/registry/new-york/example/CommandDemo.vue').then(m => m.default),
files: ['../src/lib/registry/new-york/example/CommandDemo.vue'],
},
+ CommandDialogDemo: {
+ name: 'CommandDialogDemo',
+ type: 'components:example',
+ registryDependencies: ['command'],
+ component: () => import('../src/lib/registry/new-york/example/CommandDialogDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/CommandDialogDemo.vue'],
+ },
ContextMenuDemo: {
name: 'ContextMenuDemo',
type: 'components:example',
@@ -844,6 +1110,13 @@ export const Index = {
component: () => import('../src/lib/registry/new-york/example/DatePickerWithRange.vue').then(m => m.default),
files: ['../src/lib/registry/new-york/example/DatePickerWithRange.vue'],
},
+ DialogCustomCloseButton: {
+ name: 'DialogCustomCloseButton',
+ type: 'components:example',
+ registryDependencies: ['button', 'dialog', 'input', 'label'],
+ component: () => import('../src/lib/registry/new-york/example/DialogCustomCloseButton.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/DialogCustomCloseButton.vue'],
+ },
DialogDemo: {
name: 'DialogDemo',
type: 'components:example',
@@ -984,6 +1257,13 @@ export const Index = {
component: () => import('../src/lib/registry/new-york/example/ScrollAreaDemo.vue').then(m => m.default),
files: ['../src/lib/registry/new-york/example/ScrollAreaDemo.vue'],
},
+ ScrollAreaHorizontalDemo: {
+ name: 'ScrollAreaHorizontalDemo',
+ type: 'components:example',
+ registryDependencies: ['scroll-area'],
+ component: () => import('../src/lib/registry/new-york/example/ScrollAreaHorizontalDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ScrollAreaHorizontalDemo.vue'],
+ },
SelectDemo: {
name: 'SelectDemo',
type: 'components:example',
@@ -1012,6 +1292,13 @@ export const Index = {
component: () => import('../src/lib/registry/new-york/example/SheetDemo.vue').then(m => m.default),
files: ['../src/lib/registry/new-york/example/SheetDemo.vue'],
},
+ SheetSideDemo: {
+ name: 'SheetSideDemo',
+ type: 'components:example',
+ registryDependencies: ['button', 'input', 'label', 'sheet'],
+ component: () => import('../src/lib/registry/new-york/example/SheetSideDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/SheetSideDemo.vue'],
+ },
SkeletonDemo: {
name: 'SkeletonDemo',
type: 'components:example',
@@ -1138,6 +1425,41 @@ export const Index = {
component: () => import('../src/lib/registry/new-york/example/ToggleDemo.vue').then(m => m.default),
files: ['../src/lib/registry/new-york/example/ToggleDemo.vue'],
},
+ ToggleDisabledDemo: {
+ name: 'ToggleDisabledDemo',
+ type: 'components:example',
+ registryDependencies: ['toggle'],
+ component: () => import('../src/lib/registry/new-york/example/ToggleDisabledDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ToggleDisabledDemo.vue'],
+ },
+ ToggleItalicDemo: {
+ name: 'ToggleItalicDemo',
+ type: 'components:example',
+ registryDependencies: ['toggle'],
+ component: () => import('../src/lib/registry/new-york/example/ToggleItalicDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ToggleItalicDemo.vue'],
+ },
+ ToggleItalicWithTextDemo: {
+ name: 'ToggleItalicWithTextDemo',
+ type: 'components:example',
+ registryDependencies: ['toggle'],
+ component: () => import('../src/lib/registry/new-york/example/ToggleItalicWithTextDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ToggleItalicWithTextDemo.vue'],
+ },
+ ToggleLargeDemo: {
+ name: 'ToggleLargeDemo',
+ type: 'components:example',
+ registryDependencies: ['toggle'],
+ component: () => import('../src/lib/registry/new-york/example/ToggleLargeDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ToggleLargeDemo.vue'],
+ },
+ ToggleSmallDemo: {
+ name: 'ToggleSmallDemo',
+ type: 'components:example',
+ registryDependencies: ['toggle'],
+ component: () => import('../src/lib/registry/new-york/example/ToggleSmallDemo.vue').then(m => m.default),
+ files: ['../src/lib/registry/new-york/example/ToggleSmallDemo.vue'],
+ },
TooltipDemo: {
name: 'TooltipDemo',
type: 'components:example',
diff --git a/apps/www/src/content/docs/components/alert.md b/apps/www/src/content/docs/components/alert.md
index aeda3888..13d9d609 100644
--- a/apps/www/src/content/docs/components/alert.md
+++ b/apps/www/src/content/docs/components/alert.md
@@ -28,4 +28,17 @@ import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'
-```
\ No newline at end of file
+```
+
+## Examples
+
+### Default
+
+
+ Press
+
+ ⌘J
+
+
+ Press + + ⌘J + +
+