diff --git a/app/pages/components/Empty.vue b/app/pages/components/Empty.vue new file mode 100644 index 0000000..12d5ef3 --- /dev/null +++ b/app/pages/components/Empty.vue @@ -0,0 +1,40 @@ + + + diff --git a/app/pages/index.ts b/app/pages/index.ts index 4b9c550..f4714ea 100644 --- a/app/pages/index.ts +++ b/app/pages/index.ts @@ -23,6 +23,7 @@ export { default as ConfirmDialog } from "./components/ConfirmDialog.vue" export { default as Dialog } from "./components/Dialog.vue" export { default as Drawer } from "./components/Drawer.vue" export { default as DropdownMenu } from "./components/DropdownMenu.vue" +export { default as Empty } from "./components/Empty.vue" export { default as Flasher } from "./components/Flasher.vue" export { default as Heading } from "./components/Heading.vue" export { default as Input } from "./components/Input.vue" diff --git a/app/router/index.ts b/app/router/index.ts index 8ab4844..3ae2648 100644 --- a/app/router/index.ts +++ b/app/router/index.ts @@ -27,6 +27,7 @@ import { Dialog, Drawer, DropdownMenu, + Empty, Flasher, Heading, Input, @@ -138,6 +139,12 @@ const routes = [ component: DropdownMenu, meta: { layout: ComponentLayout, shadcn: true }, }, + { + name: "Empty", + path: "/components/empty", + component: Empty, + meta: { layout: ComponentLayout, shadcn: true }, + }, { name: "Flasher", path: "/components/flasher", diff --git a/src/components/empty/Empty.vue b/src/components/empty/Empty.vue new file mode 100644 index 0000000..9fca9cd --- /dev/null +++ b/src/components/empty/Empty.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/components/empty/EmptyContent.vue b/src/components/empty/EmptyContent.vue new file mode 100644 index 0000000..4ca8290 --- /dev/null +++ b/src/components/empty/EmptyContent.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/components/empty/EmptyDescription.vue b/src/components/empty/EmptyDescription.vue new file mode 100644 index 0000000..74eaf2e --- /dev/null +++ b/src/components/empty/EmptyDescription.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/components/empty/EmptyHeader.vue b/src/components/empty/EmptyHeader.vue new file mode 100644 index 0000000..c1ec892 --- /dev/null +++ b/src/components/empty/EmptyHeader.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/components/empty/EmptyMedia.vue b/src/components/empty/EmptyMedia.vue new file mode 100644 index 0000000..a3023a3 --- /dev/null +++ b/src/components/empty/EmptyMedia.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/components/empty/EmptyTitle.vue b/src/components/empty/EmptyTitle.vue new file mode 100644 index 0000000..8c2001f --- /dev/null +++ b/src/components/empty/EmptyTitle.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/components/empty/empty.spec.ts b/src/components/empty/empty.spec.ts new file mode 100644 index 0000000..2134f2e --- /dev/null +++ b/src/components/empty/empty.spec.ts @@ -0,0 +1,5 @@ +describe("template spec", () => { + it("passes", () => { + cy.visit("/components/empty") + }) +}) diff --git a/src/components/empty/index.ts b/src/components/empty/index.ts new file mode 100644 index 0000000..d84a77f --- /dev/null +++ b/src/components/empty/index.ts @@ -0,0 +1,26 @@ +import type { VariantProps } from "class-variance-authority" +import { cva } from "class-variance-authority" + +export { default as Empty } from "./Empty.vue" +export { default as EmptyContent } from "./EmptyContent.vue" +export { default as EmptyDescription } from "./EmptyDescription.vue" +export { default as EmptyHeader } from "./EmptyHeader.vue" +export { default as EmptyMedia } from "./EmptyMedia.vue" +export { default as EmptyTitle } from "./EmptyTitle.vue" + +export const emptyMediaVariants = cva( + "mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0", + { + variants: { + variant: { + default: "bg-transparent", + icon: "flex size-10 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export type EmptyMediaVariants = VariantProps diff --git a/src/index.ts b/src/index.ts index ac5cfbb..90d005a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -30,6 +30,7 @@ export * from "@/components/command" export * from "@/components/dialog" export * from "@/components/drawer" export * from "@/components/dropdown-menu" +export * from "@/components/empty" export * from "@/components/input" export * from "@/components/label" export * from "@/components/pagination"