From ffbecc2950c5d9e27cc4953231deec7ead1bfc5d Mon Sep 17 00:00:00 2001 From: onmax Date: Wed, 17 Sep 2025 08:27:35 +0200 Subject: [PATCH] feat: add InfiniteMenu component --- src/constants/Categories.ts | 3 +- src/constants/Components.ts | 1 + .../code/Components/infiniteMenuCode.ts | 33 + .../Components/InfiniteMenu/InfiniteMenu.vue | 1086 +++++++++++++++++ src/demo/Components/InfiniteMenuDemo.vue | 66 + 5 files changed, 1188 insertions(+), 1 deletion(-) create mode 100644 src/constants/code/Components/infiniteMenuCode.ts create mode 100644 src/content/Components/InfiniteMenu/InfiniteMenu.vue create mode 100644 src/demo/Components/InfiniteMenuDemo.vue diff --git a/src/constants/Categories.ts b/src/constants/Categories.ts index bf5ae9b..3b6ead7 100644 --- a/src/constants/Categories.ts +++ b/src/constants/Categories.ts @@ -1,5 +1,5 @@ // Highlighted sidebar items -export const NEW = ['Liquid Ether', 'Staggered Menu', 'Pixel Blast', 'Gradual Blur', 'Gradient Blinds', 'Bubble Menu', 'Prism', 'Plasma', 'Electric Border', 'Target Cursor', 'Pill Nav', 'Card Nav', 'Logo Loop', 'Prismatic Burst']; +export const NEW = ['Infinite Menu', 'Liquid Ether', 'Staggered Menu', 'Pixel Blast', 'Gradual Blur', 'Gradient Blinds', 'Bubble Menu', 'Prism', 'Plasma', 'Electric Border', 'Target Cursor', 'Pill Nav', 'Card Nav', 'Logo Loop', 'Prismatic Burst']; export const UPDATED = []; // Used for main sidebar navigation @@ -82,6 +82,7 @@ export const CATEGORIES = [ 'Flying Posters', 'Folder', 'Card Swap', + 'Infinite Menu', 'Infinite Scroll', 'Tilted Card', 'Glass Icons', diff --git a/src/constants/Components.ts b/src/constants/Components.ts index d07c4cc..36cbaf5 100644 --- a/src/constants/Components.ts +++ b/src/constants/Components.ts @@ -82,6 +82,7 @@ const components = { 'scroll-stack': () => import('../demo/Components/ScrollStackDemo.vue'), 'bubble-menu': () => import('../demo/Components/BubbleMenuDemo.vue'), 'staggered-menu': () => import('../demo/Components/StaggeredMenuDemo.vue'), + 'infinite-menu': () => import('../demo/Components/InfiniteMenuDemo.vue'), }; const backgrounds = { diff --git a/src/constants/code/Components/infiniteMenuCode.ts b/src/constants/code/Components/infiniteMenuCode.ts new file mode 100644 index 0000000..c65c5eb --- /dev/null +++ b/src/constants/code/Components/infiniteMenuCode.ts @@ -0,0 +1,33 @@ +import code from '@/content/Components/InfiniteMenu/InfiniteMenu.vue?raw'; +import { createCodeObject } from '@/types/code'; + +export const infiniteMenu = createCodeObject(code, 'Components/InfiniteMenu', { + usage: ` + +` +}); \ No newline at end of file diff --git a/src/content/Components/InfiniteMenu/InfiniteMenu.vue b/src/content/Components/InfiniteMenu/InfiniteMenu.vue new file mode 100644 index 0000000..075ad88 --- /dev/null +++ b/src/content/Components/InfiniteMenu/InfiniteMenu.vue @@ -0,0 +1,1086 @@ + + + diff --git a/src/demo/Components/InfiniteMenuDemo.vue b/src/demo/Components/InfiniteMenuDemo.vue new file mode 100644 index 0000000..f67d9f9 --- /dev/null +++ b/src/demo/Components/InfiniteMenuDemo.vue @@ -0,0 +1,66 @@ + + +