From ac4aeb0ea72e6942a96977475b309cb2c625495e Mon Sep 17 00:00:00 2001 From: Sahil Garg Date: Tue, 13 May 2025 13:03:51 +0530 Subject: [PATCH 1/6] feat: added metagram header primary linear gradient. --- .../Header/Header.stories.snippet.svelte | 0 .../lib/fragments/Header/Header.stories.ts | 50 ++++++++++++++++ .../src/lib/fragments/Header/Header.svelte | 58 +++++++++++++++++++ platforms/metagram/src/lib/fragments/index.ts | 1 + .../metagram/src/lib/ui/Button/Button.svelte | 38 +++--------- 5 files changed, 118 insertions(+), 29 deletions(-) create mode 100644 platforms/metagram/src/lib/fragments/Header/Header.stories.snippet.svelte create mode 100644 platforms/metagram/src/lib/fragments/Header/Header.stories.ts create mode 100644 platforms/metagram/src/lib/fragments/Header/Header.svelte create mode 100644 platforms/metagram/src/lib/fragments/index.ts diff --git a/platforms/metagram/src/lib/fragments/Header/Header.stories.snippet.svelte b/platforms/metagram/src/lib/fragments/Header/Header.stories.snippet.svelte new file mode 100644 index 000000000..e69de29bb diff --git a/platforms/metagram/src/lib/fragments/Header/Header.stories.ts b/platforms/metagram/src/lib/fragments/Header/Header.stories.ts new file mode 100644 index 000000000..091d745eb --- /dev/null +++ b/platforms/metagram/src/lib/fragments/Header/Header.stories.ts @@ -0,0 +1,50 @@ +import type { ComponentProps } from "svelte"; +import Header from "./Header.svelte"; + +export default { + title: "Fragments/Header", + component: Header, + tags: ["autodocs"], + render: (args: { + Component: Header; + props: ComponentProps; + }) => ({ + Component: Header, + props: args, + }), +}; + +export const Primary = { + args: { + variant: "primary", + heading: "metagram", + }, +}; + +// export const Large = { +// 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", +// }, +// }; + +// export const Small = { +// 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", +// }, +// }; diff --git a/platforms/metagram/src/lib/fragments/Header/Header.svelte b/platforms/metagram/src/lib/fragments/Header/Header.svelte new file mode 100644 index 000000000..ec018c67d --- /dev/null +++ b/platforms/metagram/src/lib/fragments/Header/Header.svelte @@ -0,0 +1,58 @@ + + +
+

+ {heading} +

+ {#if callback} + + {/if} +
+ + diff --git a/platforms/metagram/src/lib/fragments/index.ts b/platforms/metagram/src/lib/fragments/index.ts new file mode 100644 index 000000000..657926bbf --- /dev/null +++ b/platforms/metagram/src/lib/fragments/index.ts @@ -0,0 +1 @@ +export { default as Header } from "./Header/Header.svelte"; diff --git a/platforms/metagram/src/lib/ui/Button/Button.svelte b/platforms/metagram/src/lib/ui/Button/Button.svelte index 16af60256..ae962d7a2 100644 --- a/platforms/metagram/src/lib/ui/Button/Button.svelte +++ b/platforms/metagram/src/lib/ui/Button/Button.svelte @@ -3,7 +3,7 @@ import type { HTMLButtonAttributes } from 'svelte/elements'; interface IButtonProps extends HTMLButtonAttributes { - variant?: 'primary' | 'secondary'; + variant?: 'primary' | 'danger'; isLoading?: boolean; callback?: () => Promise | void; blockingClick?: boolean; @@ -39,29 +39,13 @@ }; const variantClasses = { - primary: { - background: 'bg-grey', - text: 'text-black-800', - border: 'border border-black-400' - }, - secondary: { - background: 'bg-brand-burnt-orange', - text: 'text-white', - border: 'border border-brand-burnt-orange-600' - } + primary: { background: 'bg-grey', text: 'text-black-800' }, + danger: { background: 'bg-red-500', text: 'text-white' } }; const disabledVariantClasses = { - primary: { - background: 'bg-grey/50', - text: 'text-black-800/50', - border: 'border border-black-400/50' - }, - secondary: { - background: 'bg-brand-burnt-orange/50', - text: 'text-white/50', - border: 'border border-brand-burnt-orange-600/50' - } + primary: { background: 'bg-grey/50', text: 'text-black-800/50' }, + danger: { background: 'bg-red-500/50', text: 'text-white/50' } }; const sizeVariant = { @@ -80,9 +64,6 @@ text: disabled ? disabledVariantClasses[variant].text || variantClasses[variant].text : variantClasses[variant].text, - border: disabled - ? disabledVariantClasses[variant].border || variantClasses[variant].border - : variantClasses[variant].border, disabled: 'cursor-not-allowed' }); @@ -94,7 +75,6 @@ classes.common, classes.background, classes.text, - classes.border, disabled && classes.disabled, restProps.class ].join(' ') @@ -118,12 +98,12 @@ -