tera-system-ui 0.0.1
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/README.md +58 -0
- package/dist/components/brand-logo/BrandLogo.d.ts +71 -0
- package/dist/components/brand-logo/BrandLogo.js +18 -0
- package/dist/components/brand-logo/BrandLogo.svelte +32 -0
- package/dist/components/brand-logo/BrandLogo.svelte.d.ts +3 -0
- package/dist/components/brand-logo/index.d.ts +1 -0
- package/dist/components/brand-logo/index.js +1 -0
- package/dist/components/button/Button.d.ts +149 -0
- package/dist/components/button/Button.js +72 -0
- package/dist/components/button/Button.svelte +47 -0
- package/dist/components/button/Button.svelte.d.ts +3 -0
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/dialog/Dialog.d.ts +155 -0
- package/dist/components/dialog/Dialog.js +30 -0
- package/dist/components/dialog/Dialog.svelte +154 -0
- package/dist/components/dialog/Dialog.svelte.d.ts +10 -0
- package/dist/components/dialog/index.d.ts +1 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/header/Header.d.ts +8 -0
- package/dist/components/header/Header.js +7 -0
- package/dist/components/header/Header.svelte +36 -0
- package/dist/components/header/Header.svelte.d.ts +4 -0
- package/dist/components/header/header.scss +20 -0
- package/dist/components/header/index.d.ts +1 -0
- package/dist/components/header/index.js +1 -0
- package/dist/components/icons/IconBook.svelte +10 -0
- package/dist/components/icons/IconBook.svelte.d.ts +4 -0
- package/dist/components/icons/IconCalculator.svelte +10 -0
- package/dist/components/icons/IconCalculator.svelte.d.ts +4 -0
- package/dist/components/icons/IconCheck.svelte +10 -0
- package/dist/components/icons/IconCheck.svelte.d.ts +4 -0
- package/dist/components/icons/IconHamburger.svelte +10 -0
- package/dist/components/icons/IconHamburger.svelte.d.ts +3 -0
- package/dist/components/icons/IconLanguage.svelte +10 -0
- package/dist/components/icons/IconLanguage.svelte.d.ts +4 -0
- package/dist/components/icons/IconMoon.svelte +10 -0
- package/dist/components/icons/IconMoon.svelte.d.ts +3 -0
- package/dist/components/icons/IconSun.svelte +10 -0
- package/dist/components/icons/IconSun.svelte.d.ts +3 -0
- package/dist/components/icons/IconTransform.svelte +10 -0
- package/dist/components/icons/IconTransform.svelte.d.ts +4 -0
- package/dist/components/icons/IconX.svelte +10 -0
- package/dist/components/icons/IconX.svelte.d.ts +4 -0
- package/dist/components/icons/Icons.d.ts +43 -0
- package/dist/components/icons/Icons.js +14 -0
- package/dist/components/icons/index.d.ts +2 -0
- package/dist/components/icons/index.js +2 -0
- package/dist/components/input/Input.svelte +14 -0
- package/dist/components/input/Input.svelte.d.ts +23 -0
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/input/index.js +1 -0
- package/dist/components/input/input.d.ts +49 -0
- package/dist/components/input/input.js +14 -0
- package/dist/components/language-picker-button/LanguagePickerButton.d.ts +8 -0
- package/dist/components/language-picker-button/LanguagePickerButton.js +7 -0
- package/dist/components/language-picker-button/LanguagePickerButton.svelte +122 -0
- package/dist/components/language-picker-button/LanguagePickerButton.svelte.d.ts +7 -0
- package/dist/components/language-picker-button/index.d.ts +1 -0
- package/dist/components/language-picker-button/index.js +1 -0
- package/dist/components/light-dark-toggle/LightDarkToggle.d.ts +8 -0
- package/dist/components/light-dark-toggle/LightDarkToggle.js +7 -0
- package/dist/components/light-dark-toggle/LightDarkToggle.svelte +36 -0
- package/dist/components/light-dark-toggle/LightDarkToggle.svelte.d.ts +3 -0
- package/dist/components/light-dark-toggle/index.d.ts +1 -0
- package/dist/components/light-dark-toggle/index.js +1 -0
- package/dist/components/side-navigation/SideNavigation.d.ts +18 -0
- package/dist/components/side-navigation/SideNavigation.js +41 -0
- package/dist/components/side-navigation/SideNavigation.svelte +93 -0
- package/dist/components/side-navigation/SideNavigation.svelte.d.ts +3 -0
- package/dist/components/side-navigation/SideNavigationItem.svelte +18 -0
- package/dist/components/side-navigation/SideNavigationItem.svelte.d.ts +7 -0
- package/dist/components/side-navigation/SideNavigationLayout.svelte +19 -0
- package/dist/components/side-navigation/SideNavigationLayout.svelte.d.ts +5 -0
- package/dist/components/side-navigation/clickOutside.d.ts +4 -0
- package/dist/components/side-navigation/clickOutside.js +14 -0
- package/dist/components/side-navigation/index.d.ts +3 -0
- package/dist/components/side-navigation/index.js +3 -0
- package/dist/components/side-navigation/sidenav.scss +149 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/utils/utils.d.ts +2 -0
- package/dist/utils/utils.js +5 -0
- package/package.json +71 -0
- package/scripts/add-component-template.js +121 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import {type DialogProps, styles} from "./Dialog";
|
|
3
|
+
import IconX from "../icons/IconX.svelte";
|
|
4
|
+
import {Button} from "../button";
|
|
5
|
+
|
|
6
|
+
let {
|
|
7
|
+
children, open = $bindable(),
|
|
8
|
+
closeOnClickOutside = true,
|
|
9
|
+
closeButton = true,
|
|
10
|
+
size = 'sm',
|
|
11
|
+
header,
|
|
12
|
+
footer,
|
|
13
|
+
class: className,
|
|
14
|
+
...props
|
|
15
|
+
}: DialogProps & {
|
|
16
|
+
id?: string
|
|
17
|
+
open?: boolean
|
|
18
|
+
closeOnClickOutside?: boolean
|
|
19
|
+
closeButton?: boolean,
|
|
20
|
+
header?: any,
|
|
21
|
+
footer?: any,
|
|
22
|
+
} = $props();
|
|
23
|
+
|
|
24
|
+
let dialog;
|
|
25
|
+
|
|
26
|
+
// Watch for prop changes to open/close the dialog
|
|
27
|
+
$effect(() => {
|
|
28
|
+
if (open) dialog?.showModal();
|
|
29
|
+
else dialog?.close();
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
// Close dialog on clicking outside (optional)
|
|
34
|
+
function handleClickOutside(event) {
|
|
35
|
+
if (closeOnClickOutside && event.target === dialog) {
|
|
36
|
+
open = false;
|
|
37
|
+
dialog?.close();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Emit close event when dialog is closed
|
|
42
|
+
function handleClose() {
|
|
43
|
+
open = false;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// onmousedown={closeOnClickOutside ? 'event.target==this && this.close()' : ''}
|
|
47
|
+
|
|
48
|
+
const {base, dialog: dialogStyle, dialogContainer, header: headerStyle, body, footer: footerStyle} = styles({size})
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
<dialog class={dialogStyle() + ` ${className}`}
|
|
52
|
+
bind:this={dialog}
|
|
53
|
+
onclose={handleClose}
|
|
54
|
+
data-onclose="asdf"
|
|
55
|
+
onmousedown={(e) => {
|
|
56
|
+
if (closeOnClickOutside && e.target === dialog) {
|
|
57
|
+
dialog?.close();
|
|
58
|
+
}
|
|
59
|
+
}}
|
|
60
|
+
>
|
|
61
|
+
<button class=""></button>
|
|
62
|
+
<div class={"dialog-box " + dialogContainer()}>
|
|
63
|
+
{#if (closeButton)}
|
|
64
|
+
<form method="dialog">
|
|
65
|
+
<Button class="absolute right-1 top-1 [&>svg]:opacity-45 [&>svg]:hover:opacity-90" icon variant="ghost"
|
|
66
|
+
size="md">
|
|
67
|
+
<IconX/>
|
|
68
|
+
</Button>
|
|
69
|
+
</form>
|
|
70
|
+
{/if}
|
|
71
|
+
|
|
72
|
+
{#if header}
|
|
73
|
+
<header class={headerStyle()}>
|
|
74
|
+
{@render header?.()}
|
|
75
|
+
</header>
|
|
76
|
+
{/if}
|
|
77
|
+
|
|
78
|
+
<main class={body()}>
|
|
79
|
+
{@render children?.()}
|
|
80
|
+
</main>
|
|
81
|
+
{#if footer}
|
|
82
|
+
<footer class={footerStyle()}>
|
|
83
|
+
{@render footer?.()}
|
|
84
|
+
</footer>
|
|
85
|
+
{/if}
|
|
86
|
+
</div>
|
|
87
|
+
</dialog>
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
<style>
|
|
91
|
+
.dialog-box {
|
|
92
|
+
max-height: min(calc(100svh - 3rem), 50rem);
|
|
93
|
+
overflow-y: auto;
|
|
94
|
+
overscroll-behavior: contain;
|
|
95
|
+
display: grid;
|
|
96
|
+
grid-template-rows: auto 1fr auto;
|
|
97
|
+
position: relative;
|
|
98
|
+
background-color: hsl(var(--tw---token-color-neutral-token-1));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
dialog, dialog:modal {
|
|
102
|
+
max-width: calc(100vw - 1rem);
|
|
103
|
+
max-height: 100svh;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
dialog {
|
|
107
|
+
--transition-duration: 0.2s;
|
|
108
|
+
|
|
109
|
+
transform: translateY(0px);
|
|
110
|
+
|
|
111
|
+
&, &::backdrop {
|
|
112
|
+
transition: display var(--transition-duration) allow-discrete, overlay var(--transition-duration) allow-discrete, opacity var(--transition-duration), transform var(--transition-duration) allow-discrete;
|
|
113
|
+
opacity: 0;
|
|
114
|
+
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
&[open] {
|
|
118
|
+
opacity: 1;
|
|
119
|
+
&::backdrop {
|
|
120
|
+
opacity: 1;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
&:not([open]) {
|
|
125
|
+
opacity: 0;
|
|
126
|
+
transform: translateY(60px) scale(0.9); /* Reset to initial closed position */
|
|
127
|
+
|
|
128
|
+
&::backdrop {
|
|
129
|
+
opacity: 0; /* Fade-out backdrop */
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@starting-style {
|
|
134
|
+
&[open] {
|
|
135
|
+
transform: translateY(-60px) scale(0.9);
|
|
136
|
+
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
&[open],
|
|
140
|
+
&[open]::backdrop {
|
|
141
|
+
opacity: 0;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
dialog::backdrop {
|
|
148
|
+
background-color: hsl(var(--tw---token-color-neutral-token-13) / 0.2);
|
|
149
|
+
--tw-backdrop-blur: blur(0.2rem);
|
|
150
|
+
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
|
|
151
|
+
backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
</style>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type DialogProps } from "./Dialog";
|
|
2
|
+
declare const Dialog: import("svelte").Component<DialogProps & {
|
|
3
|
+
id?: string;
|
|
4
|
+
open?: boolean;
|
|
5
|
+
closeOnClickOutside?: boolean;
|
|
6
|
+
closeButton?: boolean;
|
|
7
|
+
header?: any;
|
|
8
|
+
footer?: any;
|
|
9
|
+
}, {}, "open">;
|
|
10
|
+
export default Dialog;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Dialog } from './Dialog.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Dialog } from './Dialog.svelte';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type VariantProps } from "tailwind-variants";
|
|
2
|
+
export declare const styles: import("tailwind-variants").TVReturnType<{}, undefined, "", import("tailwind-variants/dist/config").TVConfig<{}, {}>, {}, undefined, import("tailwind-variants").TVReturnType<{}, undefined, "", import("tailwind-variants/dist/config").TVConfig<{}, {}>, unknown, unknown, undefined>>;
|
|
3
|
+
type HeaderVariants = VariantProps<typeof styles>;
|
|
4
|
+
export interface HeaderProps extends HeaderVariants {
|
|
5
|
+
children: any;
|
|
6
|
+
onHamburgerClick?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import {type HeaderProps} from "./Header";
|
|
3
|
+
import {BrandLogo} from "../../components/brand-logo";
|
|
4
|
+
import './header.scss'
|
|
5
|
+
import {Button} from "../button";
|
|
6
|
+
import {IconHamburger} from "../icons";
|
|
7
|
+
|
|
8
|
+
let {children, onHamburgerClick, ...props}: HeaderProps & {} = $props();
|
|
9
|
+
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<!--add component here-->
|
|
13
|
+
<nav id="header-container"
|
|
14
|
+
class="flex z-40 w-full h-auto items-center justify-center sticky top-0 inset-x-0 backdrop-blur-lg data-[menu-open=true]:backdrop-blur-xl backdrop-saturate-150">
|
|
15
|
+
<header class="flex flex-wrap h-header-height w-full text-sm">
|
|
16
|
+
<nav class="w-full mx-auto px-4 pl-1 pr-2 md:pl-4 md:pe-4 flex items-center justify-between">
|
|
17
|
+
<div class="flex gap-1 items-center">
|
|
18
|
+
<Button class="md:hidden ring-0 focus:ring-0"
|
|
19
|
+
icon
|
|
20
|
+
variant="ghost"
|
|
21
|
+
|
|
22
|
+
onclick={onHamburgerClick}>
|
|
23
|
+
<IconHamburger/>
|
|
24
|
+
</Button>
|
|
25
|
+
<a href="/" class="header-brand-logo">
|
|
26
|
+
<BrandLogo class="hidden md:block !h-icon-md"/>
|
|
27
|
+
<BrandLogo class="md:hidden" shape="square"/>
|
|
28
|
+
</a>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<div class="flex gap-2 sm:gap-4 items-center">
|
|
32
|
+
{@render children?.()}
|
|
33
|
+
</div>
|
|
34
|
+
</nav>
|
|
35
|
+
</header>
|
|
36
|
+
</nav>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#header-container {
|
|
2
|
+
container-type: inline-size;
|
|
3
|
+
|
|
4
|
+
[data-name="brand-logo"] {
|
|
5
|
+
@apply h-icon-lg;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@container (min-width: theme(screens.md)) {
|
|
11
|
+
#header-container {
|
|
12
|
+
header {
|
|
13
|
+
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
[data-name="brand-logo"] {
|
|
17
|
+
@apply h-icon-xl;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Header } from './Header.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Header } from './Header.svelte';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type VariantProps } from "tailwind-variants";
|
|
2
|
+
export declare const styles: import("tailwind-variants").TVReturnType<{
|
|
3
|
+
style: {
|
|
4
|
+
filled: string;
|
|
5
|
+
default: string;
|
|
6
|
+
};
|
|
7
|
+
}, undefined, "stroke-icon", import("tailwind-variants/dist/config").TVConfig<{
|
|
8
|
+
style: {
|
|
9
|
+
filled: string;
|
|
10
|
+
default: string;
|
|
11
|
+
};
|
|
12
|
+
}, {
|
|
13
|
+
style: {
|
|
14
|
+
filled: string;
|
|
15
|
+
default: string;
|
|
16
|
+
};
|
|
17
|
+
}>, {
|
|
18
|
+
style: {
|
|
19
|
+
filled: string;
|
|
20
|
+
default: string;
|
|
21
|
+
};
|
|
22
|
+
}, undefined, import("tailwind-variants").TVReturnType<{
|
|
23
|
+
style: {
|
|
24
|
+
filled: string;
|
|
25
|
+
default: string;
|
|
26
|
+
};
|
|
27
|
+
}, undefined, "stroke-icon", import("tailwind-variants/dist/config").TVConfig<{
|
|
28
|
+
style: {
|
|
29
|
+
filled: string;
|
|
30
|
+
default: string;
|
|
31
|
+
};
|
|
32
|
+
}, {
|
|
33
|
+
style: {
|
|
34
|
+
filled: string;
|
|
35
|
+
default: string;
|
|
36
|
+
};
|
|
37
|
+
}>, unknown, unknown, undefined>>;
|
|
38
|
+
type IconsVariants = VariantProps<typeof styles>;
|
|
39
|
+
export interface IconsProps extends IconsVariants {
|
|
40
|
+
children?: any;
|
|
41
|
+
class?: string;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import {type InputProps, styles} from "./input";
|
|
3
|
+
|
|
4
|
+
// Define component props with inferred types
|
|
5
|
+
export let size: InputProps['size'] = 'md';
|
|
6
|
+
export let placeholder: string = '';
|
|
7
|
+
export let value: string = '';
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<input
|
|
11
|
+
class={styles({ size })}
|
|
12
|
+
placeholder={placeholder}
|
|
13
|
+
bind:value
|
|
14
|
+
/>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type InputProps } from "./input";
|
|
2
|
+
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> {
|
|
3
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
+
$$bindings?: Bindings;
|
|
5
|
+
} & Exports;
|
|
6
|
+
(internal: unknown, props: Props & {
|
|
7
|
+
$$events?: Events;
|
|
8
|
+
$$slots?: Slots;
|
|
9
|
+
}): Exports & {
|
|
10
|
+
$set?: any;
|
|
11
|
+
$on?: any;
|
|
12
|
+
};
|
|
13
|
+
z_$$bindings?: Bindings;
|
|
14
|
+
}
|
|
15
|
+
declare const Input: $$__sveltets_2_IsomorphicComponent<{
|
|
16
|
+
size?: InputProps["size"];
|
|
17
|
+
placeholder?: string;
|
|
18
|
+
value?: string;
|
|
19
|
+
}, {
|
|
20
|
+
[evt: string]: CustomEvent<any>;
|
|
21
|
+
}, {}, {}, string>;
|
|
22
|
+
type Input = InstanceType<typeof Input>;
|
|
23
|
+
export default Input;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Input } from './Input.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Input } from './Input.svelte';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type VariantProps } from "tailwind-variants";
|
|
2
|
+
export declare const styles: import("tailwind-variants").TVReturnType<{
|
|
3
|
+
size: {
|
|
4
|
+
sm: string;
|
|
5
|
+
md: string;
|
|
6
|
+
lg: string;
|
|
7
|
+
};
|
|
8
|
+
}, undefined, "border rounded focus:outline-none focus:ring-2 transition-shadow", import("tailwind-variants/dist/config").TVConfig<{
|
|
9
|
+
size: {
|
|
10
|
+
sm: string;
|
|
11
|
+
md: string;
|
|
12
|
+
lg: string;
|
|
13
|
+
};
|
|
14
|
+
}, {
|
|
15
|
+
size: {
|
|
16
|
+
sm: string;
|
|
17
|
+
md: string;
|
|
18
|
+
lg: string;
|
|
19
|
+
};
|
|
20
|
+
}>, {
|
|
21
|
+
size: {
|
|
22
|
+
sm: string;
|
|
23
|
+
md: string;
|
|
24
|
+
lg: string;
|
|
25
|
+
};
|
|
26
|
+
}, undefined, import("tailwind-variants").TVReturnType<{
|
|
27
|
+
size: {
|
|
28
|
+
sm: string;
|
|
29
|
+
md: string;
|
|
30
|
+
lg: string;
|
|
31
|
+
};
|
|
32
|
+
}, undefined, "border rounded focus:outline-none focus:ring-2 transition-shadow", import("tailwind-variants/dist/config").TVConfig<{
|
|
33
|
+
size: {
|
|
34
|
+
sm: string;
|
|
35
|
+
md: string;
|
|
36
|
+
lg: string;
|
|
37
|
+
};
|
|
38
|
+
}, {
|
|
39
|
+
size: {
|
|
40
|
+
sm: string;
|
|
41
|
+
md: string;
|
|
42
|
+
lg: string;
|
|
43
|
+
};
|
|
44
|
+
}>, unknown, unknown, undefined>>;
|
|
45
|
+
type InputVariants = VariantProps<typeof styles>;
|
|
46
|
+
export interface InputProps extends InputVariants {
|
|
47
|
+
children: any;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { tv } from "tailwind-variants";
|
|
2
|
+
export const styles = tv({
|
|
3
|
+
base: 'border rounded focus:outline-none focus:ring-2 transition-shadow', // Base styles
|
|
4
|
+
variants: {
|
|
5
|
+
size: {
|
|
6
|
+
sm: 'px-2 py-1 text-sm', // Small size styles
|
|
7
|
+
md: 'px-3 py-2 text-base', // Medium size styles
|
|
8
|
+
lg: 'px-4 py-3 text-lg', // Large size styles
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
defaultVariants: {
|
|
12
|
+
size: 'md',
|
|
13
|
+
},
|
|
14
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type VariantProps } from "tailwind-variants";
|
|
2
|
+
export declare const styles: import("tailwind-variants").TVReturnType<{}, undefined, "", import("tailwind-variants/dist/config").TVConfig<{}, {}>, {}, undefined, import("tailwind-variants").TVReturnType<{}, undefined, "", import("tailwind-variants/dist/config").TVConfig<{}, {}>, unknown, unknown, undefined>>;
|
|
3
|
+
type LanguagePickerButtonVariants = VariantProps<typeof styles>;
|
|
4
|
+
export interface LanguagePickerButtonProps extends LanguagePickerButtonVariants {
|
|
5
|
+
children?: any;
|
|
6
|
+
class?: string;
|
|
7
|
+
}
|
|
8
|
+
export {};
|