From 4d08adc81e65b8a5fe8e31344c17fd16e7bf5b68 Mon Sep 17 00:00:00 2001 From: Saeid Zareie <65568529+Saeid-Za@users.noreply.github.com> Date: Wed, 13 Mar 2024 11:03:22 +0330 Subject: [PATCH] feat: `breadcrumb` component (#405) * feat: adding breadcrumb component, resolves #395 * fix: revert kbd component in main layout * feat: add slot for `BreadcrumbEllipsis` icons too build registry, bump radix-vue * refactor: using primitive instead of computed * chore: update --------- Co-authored-by: Sadegh Barati --- apps/www/.vitepress/theme/config/docs.ts | 6 + .../.vitepress/theme/layout/MainLayout.vue | 11 +- apps/www/__registry__/index.ts | 84 +++++++ apps/www/package.json | 2 +- .../src/content/docs/components/breadcrumb.md | 205 ++++++++++++++++++ .../default/example/BreadcrumbDemo.vue | 53 +++++ .../default/example/BreadcrumbDropdown.vue | 51 +++++ .../example/BreadcrumbEllipsisDemo.vue | 41 ++++ .../default/example/BreadcrumbLinkDemo.vue | 36 +++ .../default/example/BreadcrumbResponsive.vue | 125 +++++++++++ .../example/BreadcrumbSeparatorDemo.vue | 37 ++++ .../default/ui/breadcrumb/Breadcrumb.vue | 13 ++ .../ui/breadcrumb/BreadcrumbEllipsis.vue | 22 ++ .../default/ui/breadcrumb/BreadcrumbItem.vue | 16 ++ .../default/ui/breadcrumb/BreadcrumbLink.vue | 19 ++ .../default/ui/breadcrumb/BreadcrumbList.vue | 16 ++ .../default/ui/breadcrumb/BreadcrumbPage.vue | 19 ++ .../ui/breadcrumb/BreadcrumbSeparator.vue | 21 ++ .../registry/default/ui/breadcrumb/index.ts | 7 + .../new-york/example/BreadcrumbDemo.vue | 53 +++++ .../new-york/example/BreadcrumbDropdown.vue | 51 +++++ .../example/BreadcrumbEllipsisDemo.vue | 41 ++++ .../new-york/example/BreadcrumbLinkDemo.vue | 36 +++ .../new-york/example/BreadcrumbResponsive.vue | 125 +++++++++++ .../example/BreadcrumbSeparatorDemo.vue | 37 ++++ .../new-york/ui/breadcrumb/Breadcrumb.vue | 13 ++ .../ui/breadcrumb/BreadcrumbEllipsis.vue | 22 ++ .../new-york/ui/breadcrumb/BreadcrumbItem.vue | 16 ++ .../new-york/ui/breadcrumb/BreadcrumbLink.vue | 19 ++ .../new-york/ui/breadcrumb/BreadcrumbList.vue | 16 ++ .../new-york/ui/breadcrumb/BreadcrumbPage.vue | 19 ++ .../ui/breadcrumb/BreadcrumbSeparator.vue | 21 ++ .../registry/new-york/ui/breadcrumb/index.ts | 7 + apps/www/src/public/registry/index.json | 18 ++ .../registry/styles/default/breadcrumb.json | 36 ++- .../registry/styles/new-york/breadcrumb.json | 42 ++++ pnpm-lock.yaml | 19 +- 37 files changed, 1358 insertions(+), 17 deletions(-) create mode 100644 apps/www/src/content/docs/components/breadcrumb.md create mode 100644 apps/www/src/lib/registry/default/example/BreadcrumbDemo.vue create mode 100644 apps/www/src/lib/registry/default/example/BreadcrumbDropdown.vue create mode 100644 apps/www/src/lib/registry/default/example/BreadcrumbEllipsisDemo.vue create mode 100644 apps/www/src/lib/registry/default/example/BreadcrumbLinkDemo.vue create mode 100644 apps/www/src/lib/registry/default/example/BreadcrumbResponsive.vue create mode 100644 apps/www/src/lib/registry/default/example/BreadcrumbSeparatorDemo.vue create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/Breadcrumb.vue create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbEllipsis.vue create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbLink.vue create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbList.vue create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbPage.vue create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbSeparator.vue create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/index.ts create mode 100644 apps/www/src/lib/registry/new-york/example/BreadcrumbDemo.vue create mode 100644 apps/www/src/lib/registry/new-york/example/BreadcrumbDropdown.vue create mode 100644 apps/www/src/lib/registry/new-york/example/BreadcrumbEllipsisDemo.vue create mode 100644 apps/www/src/lib/registry/new-york/example/BreadcrumbLinkDemo.vue create mode 100644 apps/www/src/lib/registry/new-york/example/BreadcrumbResponsive.vue create mode 100644 apps/www/src/lib/registry/new-york/example/BreadcrumbSeparatorDemo.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/breadcrumb/Breadcrumb.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbEllipsis.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbItem.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbLink.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbList.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbPage.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbSeparator.vue create mode 100644 apps/www/src/lib/registry/new-york/ui/breadcrumb/index.ts create mode 100644 apps/www/src/public/registry/styles/new-york/breadcrumb.json diff --git a/apps/www/.vitepress/theme/config/docs.ts b/apps/www/.vitepress/theme/config/docs.ts index 9c2040c4..ea8631df 100644 --- a/apps/www/.vitepress/theme/config/docs.ts +++ b/apps/www/.vitepress/theme/config/docs.ts @@ -158,6 +158,12 @@ export const docsConfig: DocsConfig = { href: '/docs/components/badge', items: [], }, + { + title: 'Breadcrumb', + href: '/docs/components/breadcrumb', + items: [], + label: 'New', + }, { title: 'Button', href: '/docs/components/button', diff --git a/apps/www/.vitepress/theme/layout/MainLayout.vue b/apps/www/.vitepress/theme/layout/MainLayout.vue index ca2c4f07..841f1ab8 100644 --- a/apps/www/.vitepress/theme/layout/MainLayout.vue +++ b/apps/www/.vitepress/theme/layout/MainLayout.vue @@ -2,7 +2,6 @@ import { useMagicKeys, useToggle } from '@vueuse/core' import { onMounted, ref, watch } from 'vue' import { Content, useData, useRoute, useRouter } from 'vitepress' -import { SearchIcon } from 'lucide-vue-next' import { type NavItem, docsConfig } from '../config/docs' import Logo from '../components/Logo.vue' import MobileNav from '../components/MobileNav.vue' @@ -119,11 +118,11 @@ watch(() => $route.path, (n) => { class="relative h-8 w-full justify-start rounded-[0.5rem] bg-background text-sm font-normal text-muted-foreground shadow-none sm:pr-12 md:w-40 lg:w-64" @click="isOpen = true" > - Search documentation... - Search... - - K - + + Search... + diff --git a/apps/www/__registry__/index.ts b/apps/www/__registry__/index.ts index 152f0e1a..92472ada 100644 --- a/apps/www/__registry__/index.ts +++ b/apps/www/__registry__/index.ts @@ -73,6 +73,48 @@ export const Index = { component: () => import("../src/lib/registry/default/example/BadgeSecondaryDemo.vue").then((m) => m.default), files: ["../src/lib/registry/default/example/BadgeSecondaryDemo.vue"], }, + "BreadcrumbDemo": { + name: "BreadcrumbDemo", + type: "components:example", + registryDependencies: ["breadcrumb","dropdown-menu"], + component: () => import("../src/lib/registry/default/example/BreadcrumbDemo.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/BreadcrumbDemo.vue"], + }, + "BreadcrumbDropdown": { + name: "BreadcrumbDropdown", + type: "components:example", + registryDependencies: ["breadcrumb","dropdown-menu"], + component: () => import("../src/lib/registry/default/example/BreadcrumbDropdown.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/BreadcrumbDropdown.vue"], + }, + "BreadcrumbEllipsisDemo": { + name: "BreadcrumbEllipsisDemo", + type: "components:example", + registryDependencies: ["breadcrumb"], + component: () => import("../src/lib/registry/default/example/BreadcrumbEllipsisDemo.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/BreadcrumbEllipsisDemo.vue"], + }, + "BreadcrumbLinkDemo": { + name: "BreadcrumbLinkDemo", + type: "components:example", + registryDependencies: ["breadcrumb"], + component: () => import("../src/lib/registry/default/example/BreadcrumbLinkDemo.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/BreadcrumbLinkDemo.vue"], + }, + "BreadcrumbResponsive": { + name: "BreadcrumbResponsive", + type: "components:example", + registryDependencies: ["breadcrumb","button","drawer","dropdown-menu"], + component: () => import("../src/lib/registry/default/example/BreadcrumbResponsive.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/BreadcrumbResponsive.vue"], + }, + "BreadcrumbSeparatorDemo": { + name: "BreadcrumbSeparatorDemo", + type: "components:example", + registryDependencies: ["breadcrumb"], + component: () => import("../src/lib/registry/default/example/BreadcrumbSeparatorDemo.vue").then((m) => m.default), + files: ["../src/lib/registry/default/example/BreadcrumbSeparatorDemo.vue"], + }, "ButtonAsChildDemo": { name: "ButtonAsChildDemo", type: "components:example", @@ -1131,6 +1173,48 @@ export const Index = { component: () => import("../src/lib/registry/new-york/example/BadgeSecondaryDemo.vue").then((m) => m.default), files: ["../src/lib/registry/new-york/example/BadgeSecondaryDemo.vue"], }, + "BreadcrumbDemo": { + name: "BreadcrumbDemo", + type: "components:example", + registryDependencies: ["breadcrumb","dropdown-menu"], + component: () => import("../src/lib/registry/new-york/example/BreadcrumbDemo.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/BreadcrumbDemo.vue"], + }, + "BreadcrumbDropdown": { + name: "BreadcrumbDropdown", + type: "components:example", + registryDependencies: ["breadcrumb","dropdown-menu"], + component: () => import("../src/lib/registry/new-york/example/BreadcrumbDropdown.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/BreadcrumbDropdown.vue"], + }, + "BreadcrumbEllipsisDemo": { + name: "BreadcrumbEllipsisDemo", + type: "components:example", + registryDependencies: ["breadcrumb"], + component: () => import("../src/lib/registry/new-york/example/BreadcrumbEllipsisDemo.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/BreadcrumbEllipsisDemo.vue"], + }, + "BreadcrumbLinkDemo": { + name: "BreadcrumbLinkDemo", + type: "components:example", + registryDependencies: ["breadcrumb"], + component: () => import("../src/lib/registry/new-york/example/BreadcrumbLinkDemo.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/BreadcrumbLinkDemo.vue"], + }, + "BreadcrumbResponsive": { + name: "BreadcrumbResponsive", + type: "components:example", + registryDependencies: ["breadcrumb","button","drawer","dropdown-menu"], + component: () => import("../src/lib/registry/new-york/example/BreadcrumbResponsive.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/BreadcrumbResponsive.vue"], + }, + "BreadcrumbSeparatorDemo": { + name: "BreadcrumbSeparatorDemo", + type: "components:example", + registryDependencies: ["breadcrumb"], + component: () => import("../src/lib/registry/new-york/example/BreadcrumbSeparatorDemo.vue").then((m) => m.default), + files: ["../src/lib/registry/new-york/example/BreadcrumbSeparatorDemo.vue"], + }, "ButtonAsChildDemo": { name: "ButtonAsChildDemo", type: "components:example", diff --git a/apps/www/package.json b/apps/www/package.json index fff425c8..7ef4d762 100644 --- a/apps/www/package.json +++ b/apps/www/package.json @@ -31,7 +31,7 @@ "embla-carousel-autoplay": "^8.0.0", "embla-carousel-vue": "^8.0.0", "lucide-vue-next": "^0.350.0", - "radix-vue": "^1.5.0", + "radix-vue": "^1.5.2", "tailwindcss-animate": "^1.0.7", "v-calendar": "^3.1.2", "vaul-vue": "^0.1.0", diff --git a/apps/www/src/content/docs/components/breadcrumb.md b/apps/www/src/content/docs/components/breadcrumb.md new file mode 100644 index 00000000..86c44a6f --- /dev/null +++ b/apps/www/src/content/docs/components/breadcrumb.md @@ -0,0 +1,205 @@ +--- +title: Breadcrumb +description: Displays the path to the current resource using a hierarchy of links. +--- + + + +## Installation + +```bash +npx shadcn-ui@latest add breadcrumb +``` + +## Usage + +```vue + + + +``` + +## Examples + +### Custom separator + +Use a custom component as `slot` for `` to create a custom separator. + + + +```vue showLineNumbers {2,20-22} + + + +``` + +--- + +### Dropdown + +You can compose `` with a `` to create a dropdown in the breadcrumb. + + + +```vue showLineNumbers {2-7,16-26} + + + +``` + +--- + +### Collapsed + +We provide a `` component to show a collapsed state when the breadcrumb is too long. + + + +```vue showLineNumbers {3,15} + + + +``` + +--- + +### Link component + +To use a custom link component from your routing library, you can use the `asChild` prop on ``. + + + +```vue showLineNumbers {15-19} + + + +``` + +--- + +### Responsive + +Here's an example of a responsive breadcrumb that composes `` with ``, ``, and ``. + +It displays a dropdown on desktop and a drawer on mobile. + + diff --git a/apps/www/src/lib/registry/default/example/BreadcrumbDemo.vue b/apps/www/src/lib/registry/default/example/BreadcrumbDemo.vue new file mode 100644 index 00000000..f0992b3f --- /dev/null +++ b/apps/www/src/lib/registry/default/example/BreadcrumbDemo.vue @@ -0,0 +1,53 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/BreadcrumbDropdown.vue b/apps/www/src/lib/registry/default/example/BreadcrumbDropdown.vue new file mode 100644 index 00000000..ab603bb6 --- /dev/null +++ b/apps/www/src/lib/registry/default/example/BreadcrumbDropdown.vue @@ -0,0 +1,51 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/BreadcrumbEllipsisDemo.vue b/apps/www/src/lib/registry/default/example/BreadcrumbEllipsisDemo.vue new file mode 100644 index 00000000..73f5b22e --- /dev/null +++ b/apps/www/src/lib/registry/default/example/BreadcrumbEllipsisDemo.vue @@ -0,0 +1,41 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/BreadcrumbLinkDemo.vue b/apps/www/src/lib/registry/default/example/BreadcrumbLinkDemo.vue new file mode 100644 index 00000000..06cb3533 --- /dev/null +++ b/apps/www/src/lib/registry/default/example/BreadcrumbLinkDemo.vue @@ -0,0 +1,36 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/BreadcrumbResponsive.vue b/apps/www/src/lib/registry/default/example/BreadcrumbResponsive.vue new file mode 100644 index 00000000..746213b3 --- /dev/null +++ b/apps/www/src/lib/registry/default/example/BreadcrumbResponsive.vue @@ -0,0 +1,125 @@ + + + diff --git a/apps/www/src/lib/registry/default/example/BreadcrumbSeparatorDemo.vue b/apps/www/src/lib/registry/default/example/BreadcrumbSeparatorDemo.vue new file mode 100644 index 00000000..4d4e7a1f --- /dev/null +++ b/apps/www/src/lib/registry/default/example/BreadcrumbSeparatorDemo.vue @@ -0,0 +1,37 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/Breadcrumb.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/Breadcrumb.vue new file mode 100644 index 00000000..72ca1437 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/Breadcrumb.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbEllipsis.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbEllipsis.vue new file mode 100644 index 00000000..4925600d --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbEllipsis.vue @@ -0,0 +1,22 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbItem.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbItem.vue new file mode 100644 index 00000000..42e721cd --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbItem.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbLink.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbLink.vue new file mode 100644 index 00000000..67de3947 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbLink.vue @@ -0,0 +1,19 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbList.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbList.vue new file mode 100644 index 00000000..60856cc4 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbList.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbPage.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbPage.vue new file mode 100644 index 00000000..fe43bda6 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbPage.vue @@ -0,0 +1,19 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbSeparator.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbSeparator.vue new file mode 100644 index 00000000..436015df --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadcrumbSeparator.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/index.ts b/apps/www/src/lib/registry/default/ui/breadcrumb/index.ts new file mode 100644 index 00000000..05909832 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/index.ts @@ -0,0 +1,7 @@ +export { default as Breadcrumb } from './Breadcrumb.vue' +export { default as BreadcrumbEllipsis } from './BreadcrumbEllipsis.vue' +export { default as BreadcrumbItem } from './BreadcrumbItem.vue' +export { default as BreadcrumbLink } from './BreadcrumbLink.vue' +export { default as BreadcrumbList } from './BreadcrumbList.vue' +export { default as BreadcrumbPage } from './BreadcrumbPage.vue' +export { default as BreadcrumbSeparator } from './BreadcrumbSeparator.vue' diff --git a/apps/www/src/lib/registry/new-york/example/BreadcrumbDemo.vue b/apps/www/src/lib/registry/new-york/example/BreadcrumbDemo.vue new file mode 100644 index 00000000..9d003b3a --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/BreadcrumbDemo.vue @@ -0,0 +1,53 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/BreadcrumbDropdown.vue b/apps/www/src/lib/registry/new-york/example/BreadcrumbDropdown.vue new file mode 100644 index 00000000..47fe7c4e --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/BreadcrumbDropdown.vue @@ -0,0 +1,51 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/BreadcrumbEllipsisDemo.vue b/apps/www/src/lib/registry/new-york/example/BreadcrumbEllipsisDemo.vue new file mode 100644 index 00000000..68d00baa --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/BreadcrumbEllipsisDemo.vue @@ -0,0 +1,41 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/BreadcrumbLinkDemo.vue b/apps/www/src/lib/registry/new-york/example/BreadcrumbLinkDemo.vue new file mode 100644 index 00000000..2107e89a --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/BreadcrumbLinkDemo.vue @@ -0,0 +1,36 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/BreadcrumbResponsive.vue b/apps/www/src/lib/registry/new-york/example/BreadcrumbResponsive.vue new file mode 100644 index 00000000..2d1b937a --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/BreadcrumbResponsive.vue @@ -0,0 +1,125 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/example/BreadcrumbSeparatorDemo.vue b/apps/www/src/lib/registry/new-york/example/BreadcrumbSeparatorDemo.vue new file mode 100644 index 00000000..157220a8 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/example/BreadcrumbSeparatorDemo.vue @@ -0,0 +1,37 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/breadcrumb/Breadcrumb.vue b/apps/www/src/lib/registry/new-york/ui/breadcrumb/Breadcrumb.vue new file mode 100644 index 00000000..72ca1437 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/breadcrumb/Breadcrumb.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbEllipsis.vue b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbEllipsis.vue new file mode 100644 index 00000000..4efa9ac7 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbEllipsis.vue @@ -0,0 +1,22 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbItem.vue b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbItem.vue new file mode 100644 index 00000000..42e721cd --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbItem.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbLink.vue b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbLink.vue new file mode 100644 index 00000000..67de3947 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbLink.vue @@ -0,0 +1,19 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbList.vue b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbList.vue new file mode 100644 index 00000000..60856cc4 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbList.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbPage.vue b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbPage.vue new file mode 100644 index 00000000..fe43bda6 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbPage.vue @@ -0,0 +1,19 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbSeparator.vue b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbSeparator.vue new file mode 100644 index 00000000..1b03cbcd --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/breadcrumb/BreadcrumbSeparator.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/www/src/lib/registry/new-york/ui/breadcrumb/index.ts b/apps/www/src/lib/registry/new-york/ui/breadcrumb/index.ts new file mode 100644 index 00000000..05909832 --- /dev/null +++ b/apps/www/src/lib/registry/new-york/ui/breadcrumb/index.ts @@ -0,0 +1,7 @@ +export { default as Breadcrumb } from './Breadcrumb.vue' +export { default as BreadcrumbEllipsis } from './BreadcrumbEllipsis.vue' +export { default as BreadcrumbItem } from './BreadcrumbItem.vue' +export { default as BreadcrumbLink } from './BreadcrumbLink.vue' +export { default as BreadcrumbList } from './BreadcrumbList.vue' +export { default as BreadcrumbPage } from './BreadcrumbPage.vue' +export { default as BreadcrumbSeparator } from './BreadcrumbSeparator.vue' diff --git a/apps/www/src/public/registry/index.json b/apps/www/src/public/registry/index.json index f2d46eb8..41e09b23 100644 --- a/apps/www/src/public/registry/index.json +++ b/apps/www/src/public/registry/index.json @@ -85,6 +85,24 @@ ], "type": "components:ui" }, + { + "name": "breadcrumb", + "dependencies": [], + "registryDependencies": [ + "utils" + ], + "files": [ + "ui/breadcrumb/Breadcrumb.vue", + "ui/breadcrumb/BreadcrumbEllipsis.vue", + "ui/breadcrumb/BreadcrumbItem.vue", + "ui/breadcrumb/BreadcrumbLink.vue", + "ui/breadcrumb/BreadcrumbList.vue", + "ui/breadcrumb/BreadcrumbPage.vue", + "ui/breadcrumb/BreadcrumbSeparator.vue", + "ui/breadcrumb/index.ts" + ], + "type": "components:ui" + }, { "name": "button", "dependencies": [], diff --git a/apps/www/src/public/registry/styles/default/breadcrumb.json b/apps/www/src/public/registry/styles/default/breadcrumb.json index b597e1d3..b902af70 100644 --- a/apps/www/src/public/registry/styles/default/breadcrumb.json +++ b/apps/www/src/public/registry/styles/default/breadcrumb.json @@ -1,20 +1,42 @@ { "name": "breadcrumb", "dependencies": [], - "registryDependencies": [], + "registryDependencies": [ + "utils" + ], "files": [ { - "name": "BreadCrumb.vue", - "content": "\n" + "name": "Breadcrumb.vue", + "content": "\n\n\n" }, { - "name": "BreadCrumbItem.vue", - "content": "\n\n\n" + "name": "BreadcrumbEllipsis.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbItem.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbLink.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbList.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbPage.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbSeparator.vue", + "content": "\n\n\n" }, { "name": "index.ts", - "content": "export { default as BreadCrumb } from './BreadCrumb.vue'\nexport { default as BreadCrumbItem } from './BreadCrumbItem.vue'\n" + "content": "export { default as Breadcrumb } from './Breadcrumb.vue'\nexport { default as BreadcrumbEllipsis } from './BreadcrumbEllipsis.vue'\nexport { default as BreadcrumbItem } from './BreadcrumbItem.vue'\nexport { default as BreadcrumbLink } from './BreadcrumbLink.vue'\nexport { default as BreadcrumbList } from './BreadcrumbList.vue'\nexport { default as BreadcrumbPage } from './BreadcrumbPage.vue'\nexport { default as BreadcrumbSeparator } from './BreadcrumbSeparator.vue'\n" } ], "type": "components:ui" -} \ No newline at end of file +} diff --git a/apps/www/src/public/registry/styles/new-york/breadcrumb.json b/apps/www/src/public/registry/styles/new-york/breadcrumb.json new file mode 100644 index 00000000..5529cc9e --- /dev/null +++ b/apps/www/src/public/registry/styles/new-york/breadcrumb.json @@ -0,0 +1,42 @@ +{ + "name": "breadcrumb", + "dependencies": [], + "registryDependencies": [ + "utils" + ], + "files": [ + { + "name": "Breadcrumb.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbEllipsis.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbItem.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbLink.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbList.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbPage.vue", + "content": "\n\n\n" + }, + { + "name": "BreadcrumbSeparator.vue", + "content": "\n\n\n" + }, + { + "name": "index.ts", + "content": "export { default as Breadcrumb } from './Breadcrumb.vue'\nexport { default as BreadcrumbEllipsis } from './BreadcrumbEllipsis.vue'\nexport { default as BreadcrumbItem } from './BreadcrumbItem.vue'\nexport { default as BreadcrumbLink } from './BreadcrumbLink.vue'\nexport { default as BreadcrumbList } from './BreadcrumbList.vue'\nexport { default as BreadcrumbPage } from './BreadcrumbPage.vue'\nexport { default as BreadcrumbSeparator } from './BreadcrumbSeparator.vue'\n" + } + ], + "type": "components:ui" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 464d3b83..1308de40 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,8 +90,8 @@ importers: specifier: ^0.350.0 version: 0.350.0(vue@3.4.21) radix-vue: - specifier: ^1.5.0 - version: 1.5.0(vue@3.4.21) + specifier: ^1.5.2 + version: 1.5.2(vue@3.4.21) tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.1) @@ -11166,6 +11166,19 @@ packages: - vue dev: false + /radix-vue@1.5.2(vue@3.4.21): + resolution: {integrity: sha512-XyXB6mYm7dthW56LDHG4ttR3x+XtspTi48nSq4vHoHldgGZzAEa5VXlqUCr2J21fNKrt3NIYhIIRLB6kKwWwrA==} + dependencies: + '@floating-ui/dom': 1.6.1 + '@floating-ui/vue': 1.0.6(vue@3.4.21) + '@internationalized/date': 3.5.2 + fast-deep-equal: 3.1.3 + nanoid: 5.0.6 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + /radix3@1.1.0: resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} dev: true @@ -13049,7 +13062,7 @@ packages: resolution: {integrity: sha512-3PYWMbN3cSdsciv3fzewskxZFnX61PYq1uNsbvizXDo/8sN4SMrWkYDqWaPdTD3GTEm6wpx7j5flRLg7A5ZXbQ==} dependencies: '@vueuse/core': 10.9.0(vue@3.4.21) - radix-vue: 1.5.0(vue@3.4.21) + radix-vue: 1.5.2(vue@3.4.21) vue: 3.4.21(typescript@5.4.2) transitivePeerDependencies: - '@vue/composition-api'