@hashrytech/quick-components-kit 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @hashrytech/quick-components-kit
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - feat: adding link button
8
+
9
+ ## 0.3.3
10
+
11
+ ### Patch Changes
12
+
13
+ - fix: updating button component
14
+
3
15
  ## 0.3.2
4
16
 
5
17
  ### Patch Changes
@@ -1,22 +1,26 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from 'svelte';
3
+ import type { ClassNameValue } from 'tailwind-merge';
4
+
5
+ export type ButtonProps = {
6
+ children?: Snippet;
7
+ icon?: Snippet;
8
+ onclick?: (event: MouseEvent) => void;
9
+ class?: ClassNameValue;
10
+ };
11
+
12
+ </script>
13
+
1
14
  <script lang="ts">
2
- export let type: 'button' | 'submit' | 'reset' = 'button';
3
- export let variant: 'primary' | 'secondary' | 'danger' = 'primary';
4
- export let size: 'sm' | 'md' | 'lg' = 'md';
5
- export let disabled: boolean = false;
6
- export let className: string = ''; // Allow extra classes
15
+ import {twMerge} from 'tailwind-merge';
16
+
17
+ let {children, icon, onclick, ...props}: ButtonProps = $props();
18
+
7
19
  </script>
8
20
 
9
- <button
10
- type={type}
11
- class={`inline-flex items-center justify-center font-medium rounded-md
12
- ${variant === 'primary' ? 'bg-blue-600 text-white hover:bg-blue-700' : ''}
13
- ${variant === 'secondary' ? 'bg-gray-200 text-gray-800 hover:bg-gray-300' : ''}
14
- ${variant === 'danger' ? 'bg-red-600 text-white hover:bg-red-700' : ''}
15
- ${size === 'sm' ? 'px-2 py-1 text-sm' : ''}
16
- ${size === 'md' ? 'px-4 py-2 text-base' : ''}
17
- ${size === 'lg' ? 'px-6 py-3 text-lg' : ''}
18
- ${disabled ? 'opacity-50 cursor-not-allowed' : ''}
19
- ${className}`}
20
- disabled={disabled}>
21
- <slot />
21
+ <button class={twMerge("flex flex-row items-center gap-2 px-4 py-2 bg-button-primary hover:bg-button-primary-hover rounded-primary w-fit cursor-pointer text-white focus:outline-focus-primary", props.class)}
22
+ {onclick}>
23
+ {#if icon}<span class="w-10">{@render icon()}</span>{/if}
24
+ {@render children?.()}
22
25
  </button>
26
+
@@ -1,33 +1,11 @@
1
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
15
- default: any;
16
- } ? Props extends Record<string, never> ? any : {
17
- children?: any;
18
- } : {});
19
- declare const Button: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
20
- type?: "button" | "submit" | "reset";
21
- variant?: "primary" | "secondary" | "danger";
22
- size?: "sm" | "md" | "lg";
23
- disabled?: boolean;
24
- className?: string;
25
- }, {
26
- default: {};
27
- }>, {
28
- [evt: string]: CustomEvent<any>;
29
- }, {
30
- default: {};
31
- }, {}, string>;
32
- type Button = InstanceType<typeof Button>;
1
+ import type { Snippet } from 'svelte';
2
+ import type { ClassNameValue } from 'tailwind-merge';
3
+ export type ButtonProps = {
4
+ children?: Snippet;
5
+ icon?: Snippet;
6
+ onclick?: (event: MouseEvent) => void;
7
+ class?: ClassNameValue;
8
+ };
9
+ declare const Button: import("svelte").Component<ButtonProps, {}, "">;
10
+ type Button = ReturnType<typeof Button>;
33
11
  export default Button;
@@ -0,0 +1,25 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from 'svelte';
3
+ import type { ClassNameValue } from 'tailwind-merge';
4
+
5
+ export type ButtonProps = {
6
+ href: string;
7
+ children?: Snippet;
8
+ icon?: Snippet;
9
+ class?: ClassNameValue;
10
+ };
11
+
12
+ </script>
13
+
14
+ <script lang="ts">
15
+ import {twMerge} from 'tailwind-merge';
16
+
17
+ let {href, children, icon, ...props}: ButtonProps = $props();
18
+
19
+ </script>
20
+
21
+ <a {href} class={twMerge("flex flex-row items-center gap-2 px-4 py-2 bg-button-primary hover:bg-button-primary-hover rounded-primary w-fit cursor-pointer text-white focus:outline-focus-primary", props.class)}>
22
+ {#if icon}<span class="w-10">{@render icon()}</span>{/if}
23
+ {@render children?.()}
24
+ </a>
25
+
@@ -0,0 +1,11 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { ClassNameValue } from 'tailwind-merge';
3
+ export type ButtonProps = {
4
+ href: string;
5
+ children?: Snippet;
6
+ icon?: Snippet;
7
+ class?: ClassNameValue;
8
+ };
9
+ declare const LinkButton: import("svelte").Component<ButtonProps, {}, "">;
10
+ type LinkButton = ReturnType<typeof LinkButton>;
11
+ export default LinkButton;
@@ -0,0 +1 @@
1
+ export { default as LinkButton } from './LinkButton.svelte';
@@ -0,0 +1 @@
1
+ export { default as LinkButton } from './LinkButton.svelte';
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/hashrytech/quick-components-kit.git"
7
7
  },
8
- "version": "0.3.2",
8
+ "version": "0.4.0",
9
9
  "license": "MIT",
10
10
  "author": "Hashry Tech",
11
11
  "files": [