From f0cc8e8e867c2f873c2dd679d9dc8c84a7d11313 Mon Sep 17 00:00:00 2001 From: gourav Date: Tue, 13 May 2025 13:15:49 +0530 Subject: [PATCH 01/14] feat: BottomNav --- platforms/metagram/src/lib/icons/Home.svelte | 37 ++---------- .../src/lib/ui/BottomNav/BottomNav.stories.ts | 17 ++++++ .../src/lib/ui/BottomNav/BottomNav.svelte | 59 +++++++++++++++++++ platforms/metagram/src/lib/ui/index.ts | 1 + 4 files changed, 82 insertions(+), 32 deletions(-) create mode 100644 platforms/metagram/src/lib/ui/BottomNav/BottomNav.stories.ts create mode 100644 platforms/metagram/src/lib/ui/BottomNav/BottomNav.svelte diff --git a/platforms/metagram/src/lib/icons/Home.svelte b/platforms/metagram/src/lib/icons/Home.svelte index 1a2f937d..80999122 100644 --- a/platforms/metagram/src/lib/icons/Home.svelte +++ b/platforms/metagram/src/lib/icons/Home.svelte @@ -1,37 +1,10 @@ - - - - - - - - - - - + + + + diff --git a/platforms/metagram/src/lib/ui/BottomNav/BottomNav.stories.ts b/platforms/metagram/src/lib/ui/BottomNav/BottomNav.stories.ts new file mode 100644 index 00000000..74ecd07d --- /dev/null +++ b/platforms/metagram/src/lib/ui/BottomNav/BottomNav.stories.ts @@ -0,0 +1,17 @@ +import type { ComponentProps } from 'svelte'; +import { BottomNav } from '..'; + + +export default { + title: 'UI/BottomNav', + component: BottomNav, + tags: ['autodocs'], + render: (args: { Component: BottomNav; props: ComponentProps }) => ({ + Component: BottomNav, + props: args + }) +}; + +export const Primary = { + args: { } +}; \ No newline at end of file diff --git a/platforms/metagram/src/lib/ui/BottomNav/BottomNav.svelte b/platforms/metagram/src/lib/ui/BottomNav/BottomNav.svelte new file mode 100644 index 00000000..ca02ed45 --- /dev/null +++ b/platforms/metagram/src/lib/ui/BottomNav/BottomNav.svelte @@ -0,0 +1,59 @@ + + +
+ + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/platforms/metagram/src/lib/ui/index.ts b/platforms/metagram/src/lib/ui/index.ts index 5ba2df02..ad7d26d2 100644 --- a/platforms/metagram/src/lib/ui/index.ts +++ b/platforms/metagram/src/lib/ui/index.ts @@ -1,2 +1,3 @@ export { default as Button } from "./Button/Button.svelte"; export { default as Avatar } from "./Avatar/Avatar.svelte"; +export { default as BottomNav } from "./BottomNav/BottomNav.svelte"; \ No newline at end of file From 9121a416a471e8aaf2137bb41cbf1307bb6c7fab Mon Sep 17 00:00:00 2001 From: gourav Date: Tue, 13 May 2025 13:46:22 +0530 Subject: [PATCH 02/14] fix: icons --- .../metagram/src/lib/icons/Camera.svelte | 26 ++++ .../metagram/src/lib/icons/CommentsTwo.svelte | 4 +- platforms/metagram/src/lib/icons/Home.svelte | 30 +++- .../metagram/src/lib/icons/Search.svelte | 29 ++++ platforms/metagram/src/lib/icons/index.ts | 2 + .../src/lib/ui/Avatar/Avatar.stories.ts | 53 ++++--- .../metagram/src/lib/ui/Avatar/Avatar.svelte | 41 +++--- .../src/lib/ui/BottomNav/BottomNav.stories.ts | 5 +- .../src/lib/ui/BottomNav/BottomNav.svelte | 138 +++++++++++------- platforms/metagram/src/lib/ui/index.ts | 6 +- 10 files changed, 220 insertions(+), 114 deletions(-) create mode 100644 platforms/metagram/src/lib/icons/Camera.svelte create mode 100644 platforms/metagram/src/lib/icons/Search.svelte diff --git a/platforms/metagram/src/lib/icons/Camera.svelte b/platforms/metagram/src/lib/icons/Camera.svelte new file mode 100644 index 00000000..ced49377 --- /dev/null +++ b/platforms/metagram/src/lib/icons/Camera.svelte @@ -0,0 +1,26 @@ + + + + + + diff --git a/platforms/metagram/src/lib/icons/CommentsTwo.svelte b/platforms/metagram/src/lib/icons/CommentsTwo.svelte index 3ee0814b..8247b7ab 100644 --- a/platforms/metagram/src/lib/icons/CommentsTwo.svelte +++ b/platforms/metagram/src/lib/icons/CommentsTwo.svelte @@ -1,14 +1,14 @@ diff --git a/platforms/metagram/src/lib/icons/Home.svelte b/platforms/metagram/src/lib/icons/Home.svelte index 80999122..255e5bba 100644 --- a/platforms/metagram/src/lib/icons/Home.svelte +++ b/platforms/metagram/src/lib/icons/Home.svelte @@ -1,10 +1,30 @@ - - - - + + + + diff --git a/platforms/metagram/src/lib/icons/Search.svelte b/platforms/metagram/src/lib/icons/Search.svelte new file mode 100644 index 00000000..f5cef932 --- /dev/null +++ b/platforms/metagram/src/lib/icons/Search.svelte @@ -0,0 +1,29 @@ + + + + + + diff --git a/platforms/metagram/src/lib/icons/index.ts b/platforms/metagram/src/lib/icons/index.ts index 764da3c4..c5af67c6 100644 --- a/platforms/metagram/src/lib/icons/index.ts +++ b/platforms/metagram/src/lib/icons/index.ts @@ -6,3 +6,5 @@ export { default as VerticalDots } from './VerticalDots.svelte'; export { default as Home } from './Home.svelte'; export { default as Flash } from './Flash.svelte'; export { default as CommentsTwo } from './CommentsTwo.svelte'; +export { default as Search } from './Search.svelte'; +export { default as Camera } from './Camera.svelte'; diff --git a/platforms/metagram/src/lib/ui/Avatar/Avatar.stories.ts b/platforms/metagram/src/lib/ui/Avatar/Avatar.stories.ts index 01cd0fdc..81214f10 100644 --- a/platforms/metagram/src/lib/ui/Avatar/Avatar.stories.ts +++ b/platforms/metagram/src/lib/ui/Avatar/Avatar.stories.ts @@ -1,43 +1,40 @@ -import type { ComponentProps } from "svelte"; -import Avatar from "./Avatar.svelte"; +import type { ComponentProps } from 'svelte'; +import Avatar from './Avatar.svelte'; export default { - title: "UI/Avatar", - component: Avatar, - tags: ["autodocs"], - render: (args: { - Component: Avatar; - props: ComponentProps; - }) => ({ - Component: Avatar, - props: args, - }), + title: 'UI/Avatar', + component: Avatar, + tags: ['autodocs'], + render: (args: { Component: Avatar; props: ComponentProps }) => ({ + Component: Avatar, + props: args + }) }; export const Large = { - args: { - src: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250", - size: "lg", - }, + args: { + src: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250', + size: 'lg' + } }; export const Medium = { - args: { - src: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250", - size: "md", - }, + args: { + src: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250', + size: 'md' + } }; export const Small = { - args: { - src: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250", - size: "sm", - }, + args: { + src: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250', + size: 'sm' + } }; export const ExtraSmall = { - args: { - src: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250", - size: "xs", - }, + args: { + src: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250', + size: 'xs' + } }; diff --git a/platforms/metagram/src/lib/ui/Avatar/Avatar.svelte b/platforms/metagram/src/lib/ui/Avatar/Avatar.svelte index 2d82b1df..768136ee 100644 --- a/platforms/metagram/src/lib/ui/Avatar/Avatar.svelte +++ b/platforms/metagram/src/lib/ui/Avatar/Avatar.svelte @@ -1,31 +1,26 @@ - import { HugeiconsIcon } from '@hugeicons/svelte' - import { SearchIcon, Home01FreeIcons, Home02FreeIcons, Home13Icon } from '@hugeicons/core-free-icons' - import type { HTMLAttributes } from "svelte/elements"; - import {Home} from '$lib/icons'; + import type { HTMLAttributes } from 'svelte/elements'; + import { Home, CommentsTwo, Search, Camera } from '$lib/icons'; - interface IBottomNavProps extends HTMLAttributes { - activeTab: string | number; - } - let {activeTab = $bindable()}:IBottomNavProps = $props(); + interface IBottomNavProps extends HTMLAttributes { + activeTab: string | number; + } + let { activeTab = $bindable() }: IBottomNavProps = $props(); - $effect(() => { - alert(activeTab) - }) + // $effect(() => { + // alert(activeTab) + // }) -
-
diff --git a/platforms/metagram/src/lib/ui/index.ts b/platforms/metagram/src/lib/ui/index.ts index ad7d26d2..d45047ca 100644 --- a/platforms/metagram/src/lib/ui/index.ts +++ b/platforms/metagram/src/lib/ui/index.ts @@ -1,3 +1,3 @@ -export { default as Button } from "./Button/Button.svelte"; -export { default as Avatar } from "./Avatar/Avatar.svelte"; -export { default as BottomNav } from "./BottomNav/BottomNav.svelte"; \ No newline at end of file +export { default as Button } from './Button/Button.svelte'; +export { default as Avatar } from './Avatar/Avatar.svelte'; +export { default as BottomNav } from './BottomNav/BottomNav.svelte'; From 43badf25ac73cd32f0e6b0e6cd6cde5241561b32 Mon Sep 17 00:00:00 2001 From: gourav Date: Tue, 13 May 2025 14:25:10 +0530 Subject: [PATCH 03/14] feat: profile icons created --- .../src/lib/ui/BottomNav/BottomNav.svelte | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/platforms/metagram/src/lib/ui/BottomNav/BottomNav.svelte b/platforms/metagram/src/lib/ui/BottomNav/BottomNav.svelte index bb0d7765..2c890d8c 100644 --- a/platforms/metagram/src/lib/ui/BottomNav/BottomNav.svelte +++ b/platforms/metagram/src/lib/ui/BottomNav/BottomNav.svelte @@ -3,16 +3,14 @@ import { Home, CommentsTwo, Search, Camera } from '$lib/icons'; interface IBottomNavProps extends HTMLAttributes { - activeTab: string | number; + activeTab: string; + profileSrc: string; } - let { activeTab = $bindable() }: IBottomNavProps = $props(); - - // $effect(() => { - // alert(activeTab) - // }) + let { activeTab = $bindable(), profileSrc = 'https://picsum.photos/200' }: IBottomNavProps = + $props(); -
+