@valerius_petrini/corekit-ui 0.1.47 → 0.1.49
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/dist/components/Button.svelte +45 -15
- package/dist/components/Checkbox.svelte +35 -0
- package/dist/components/Checkbox.svelte.d.ts +4 -0
- package/dist/components/FloatingSelect.svelte +2 -2
- package/dist/components/Navbar.svelte +10 -17
- package/dist/components/NavbarElement.svelte +16 -20
- package/dist/components/Text.svelte +47 -21
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/styles/color.d.ts +4 -11
- package/dist/styles/color.js +61 -9
- package/dist/styles/size.d.ts +15 -0
- package/dist/styles/size.js +92 -0
- package/dist/types/Button.d.ts +7 -2
- package/dist/types/Checkbox.d.ts +9 -0
- package/dist/types/Navbar.d.ts +3 -0
- package/dist/types/Text.d.ts +3 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { generateColorStyle } from "../styles/color.js";
|
|
3
|
+
import { sizeStyleParts, type SizeStyle } from "../styles/size.js";
|
|
3
4
|
import type { ButtonProps } from "../types/Button.js";
|
|
4
5
|
import { twMerge } from "tailwind-merge";
|
|
5
6
|
|
|
@@ -9,26 +10,55 @@
|
|
|
9
10
|
pill = false,
|
|
10
11
|
icon = false,
|
|
11
12
|
href = undefined,
|
|
12
|
-
color =
|
|
13
|
-
|
|
13
|
+
color = "none",
|
|
14
|
+
variant = "full",
|
|
15
|
+
disabled = false,
|
|
16
|
+
external = false,
|
|
17
|
+
size = "md",
|
|
18
|
+
radius = "md",
|
|
14
19
|
...restProps
|
|
15
20
|
}: ButtonProps = $props();
|
|
16
21
|
|
|
17
|
-
|
|
18
|
-
if (typeof size === "
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
const sizeClasses = $derived.by(() => {
|
|
23
|
+
if (typeof size === "string") {
|
|
24
|
+
const parts = sizeStyleParts[size as SizeStyle];
|
|
25
|
+
return icon ? parts.buttonIcon : parts.button;
|
|
26
|
+
}
|
|
27
|
+
return icon ? "p-0 flex-none" : "h-fit";
|
|
28
|
+
});
|
|
22
29
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
const customStyle = $derived(
|
|
31
|
+
typeof size === "number"
|
|
32
|
+
? `width: ${size}px; height: ${size}px; flex: none;`
|
|
33
|
+
: ""
|
|
34
|
+
);
|
|
28
35
|
|
|
29
|
-
|
|
36
|
+
const defaultClass = "inline-flex items-center justify-center gap-2 transition-colors duration-300 text-white whitespace-nowrap";
|
|
37
|
+
const radiusClass = $derived(pill || icon ? "rounded-full" : sizeStyleParts[radius as SizeStyle].radius);
|
|
38
|
+
const disabledClass = $derived(disabled ? "opacity-50 pointer-events-none" : "cursor-pointer");
|
|
39
|
+
|
|
40
|
+
const mergedClass = $derived(twMerge(
|
|
41
|
+
defaultClass,
|
|
42
|
+
generateColorStyle(color, variant),
|
|
43
|
+
disabledClass,
|
|
44
|
+
sizeClasses,
|
|
45
|
+
radiusClass,
|
|
46
|
+
className
|
|
47
|
+
));
|
|
48
|
+
|
|
49
|
+
const mergedStyle = $derived([customStyle, restProps.style].filter(Boolean).join("; "));
|
|
30
50
|
</script>
|
|
31
51
|
|
|
32
|
-
<svelte:element
|
|
52
|
+
<svelte:element
|
|
53
|
+
this={href ? "a" : "button"}
|
|
54
|
+
class={mergedClass}
|
|
55
|
+
{disabled}
|
|
56
|
+
aria-disabled={disabled}
|
|
57
|
+
type={href ? undefined : (restProps.type || "button")}
|
|
58
|
+
style={mergedStyle}
|
|
59
|
+
target={external ? "_blank" : undefined}
|
|
60
|
+
rel={external ? "noopener noreferrer" : undefined}
|
|
61
|
+
{...(href ? { href } : {})}
|
|
62
|
+
{...restProps}>
|
|
33
63
|
{@render children?.()}
|
|
34
64
|
</svelte:element>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
import Text from "./Text.svelte";
|
|
4
|
+
import type { CheckboxProps } from "../types/Checkbox.js";
|
|
5
|
+
|
|
6
|
+
let {
|
|
7
|
+
children = undefined,
|
|
8
|
+
class: className = "",
|
|
9
|
+
labelClass = "",
|
|
10
|
+
divClass = "",
|
|
11
|
+
checked = $bindable(),
|
|
12
|
+
id = crypto.randomUUID(),
|
|
13
|
+
...restProps
|
|
14
|
+
}: CheckboxProps = $props();
|
|
15
|
+
|
|
16
|
+
let defaultClass = "z-20 bg-form-input-background text-main-text rounded-lg outline-none focus:ring-2 focus:ring-blue-500 transition-all";
|
|
17
|
+
let defaultLabelClass = "block text-sub-text font-medium";
|
|
18
|
+
let defaultDivClass = "relative flex items-center gap-2";
|
|
19
|
+
|
|
20
|
+
let combinedLabelClass = $derived(twMerge(defaultLabelClass, labelClass));
|
|
21
|
+
let combinedClass = $derived(twMerge(defaultClass, className));
|
|
22
|
+
let combinedDivClass = $derived(twMerge(defaultDivClass, divClass));
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<div class={combinedDivClass}>
|
|
26
|
+
<input
|
|
27
|
+
type="checkbox"
|
|
28
|
+
id={id}
|
|
29
|
+
bind:checked={checked}
|
|
30
|
+
class={combinedClass}
|
|
31
|
+
{...restProps}/>
|
|
32
|
+
<Text tag="label" for={id} class={combinedLabelClass}>
|
|
33
|
+
{@render children?.()}
|
|
34
|
+
</Text>
|
|
35
|
+
</div>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
let {
|
|
7
7
|
children = undefined,
|
|
8
8
|
class: className = "",
|
|
9
|
-
|
|
9
|
+
divClass = "",
|
|
10
10
|
optionClass = "",
|
|
11
11
|
value = $bindable(),
|
|
12
12
|
options = [],
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
let combinedLabelClass = $derived(twMerge(defaultLabelClass, selectedLabelClass, className));
|
|
24
24
|
let combinedSelectClass = $derived(twMerge(defaultSelectClass, className));
|
|
25
|
-
let combinedDivClass = $derived(twMerge(defaultDivClass,
|
|
25
|
+
let combinedDivClass = $derived(twMerge(defaultDivClass, divClass));
|
|
26
26
|
</script>
|
|
27
27
|
|
|
28
28
|
<div class={combinedDivClass}>
|
|
@@ -7,31 +7,24 @@
|
|
|
7
7
|
children = undefined,
|
|
8
8
|
class: className = "",
|
|
9
9
|
classTop = "",
|
|
10
|
+
threshold = 10,
|
|
10
11
|
...restProps
|
|
11
12
|
}: NavbarProps = $props();
|
|
12
13
|
|
|
13
|
-
let defaultClass = "
|
|
14
|
+
let defaultClass = "transition-colors duration-300 fixed top-0 left-0 w-full h-14 z-[100] flex items-center bg-main-background/99 border-b-sub-background border-box border-b";
|
|
14
15
|
|
|
15
16
|
let scrollY = $state(0);
|
|
17
|
+
let isAtTop = $derived(scrollY <= threshold);
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
scrollY = window.scrollY;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
onMount(() => {
|
|
26
|
-
window.addEventListener('scroll', onScroll);
|
|
27
|
-
onScroll();
|
|
28
|
-
|
|
29
|
-
return () => {
|
|
30
|
-
window.removeEventListener('scroll', onScroll);
|
|
31
|
-
};
|
|
32
|
-
});
|
|
19
|
+
const combinedClass = $derived(twMerge(
|
|
20
|
+
defaultClass,
|
|
21
|
+
className,
|
|
22
|
+
isAtTop ? classTop : ""
|
|
23
|
+
));
|
|
33
24
|
</script>
|
|
34
25
|
|
|
26
|
+
<svelte:window bind:scrollY={scrollY}/>
|
|
27
|
+
|
|
35
28
|
<nav class={combinedClass} {...restProps}>
|
|
36
29
|
{@render children?.()}
|
|
37
30
|
</nav>
|
|
@@ -1,39 +1,35 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { twMerge } from "tailwind-merge";
|
|
3
3
|
import Button from "./Button.svelte";
|
|
4
|
-
import { onMount } from "svelte";
|
|
5
4
|
import type { NavbarElementProps } from "../types/Navbar.js";
|
|
5
|
+
import { page } from "$app/state";
|
|
6
6
|
|
|
7
7
|
let {
|
|
8
8
|
children = undefined,
|
|
9
9
|
class: className = "",
|
|
10
10
|
classTop = "",
|
|
11
|
+
activeClass = "",
|
|
11
12
|
href = undefined,
|
|
13
|
+
threshold = 10,
|
|
12
14
|
...restProps
|
|
13
15
|
}: NavbarElementProps = $props();
|
|
14
16
|
|
|
15
|
-
let defaultClass = "navbar-element w-fit h-full
|
|
17
|
+
let defaultClass = "navbar-element w-fit h-full px-5 py-0 text-main-text";
|
|
16
18
|
|
|
17
19
|
let scrollY = $state(0);
|
|
18
|
-
|
|
19
|
-
let
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
onMount(() => {
|
|
28
|
-
window.addEventListener('scroll', onScroll);
|
|
29
|
-
onScroll();
|
|
30
|
-
|
|
31
|
-
return () => {
|
|
32
|
-
window.removeEventListener('scroll', onScroll);
|
|
33
|
-
};
|
|
34
|
-
});
|
|
20
|
+
let isAtTop = $derived(scrollY <= threshold);
|
|
21
|
+
let isActive = $derived(page.url.pathname === href);
|
|
22
|
+
|
|
23
|
+
const combinedClass = $derived(twMerge(
|
|
24
|
+
defaultClass,
|
|
25
|
+
className,
|
|
26
|
+
isActive ? activeClass : "",
|
|
27
|
+
isAtTop ? classTop : "",
|
|
28
|
+
));
|
|
35
29
|
</script>
|
|
36
30
|
|
|
37
|
-
<
|
|
31
|
+
<svelte:window bind:scrollY={scrollY}/>
|
|
32
|
+
|
|
33
|
+
<Button radius={0} {href} color="none" class={combinedClass} {...restProps} aria-current={isActive ? 'page' : undefined}>
|
|
38
34
|
{@render children?.()}
|
|
39
35
|
</Button>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import { sizeStyleParts, textStyle, type SizeStyle } from "../styles/size.js";
|
|
2
3
|
import type { TextProps } from "../types/Text.js";
|
|
3
4
|
import { twMerge } from "tailwind-merge";
|
|
4
5
|
|
|
@@ -6,34 +7,59 @@
|
|
|
6
7
|
children = undefined,
|
|
7
8
|
class: className = "",
|
|
8
9
|
tag = "p",
|
|
10
|
+
shrink = false,
|
|
11
|
+
size = "none",
|
|
9
12
|
...restProps
|
|
10
13
|
}: TextProps = $props();
|
|
11
14
|
|
|
12
|
-
const tagStyles = {
|
|
13
|
-
"p": "text-base",
|
|
14
|
-
"div": "text-base",
|
|
15
|
-
"span": "text-base",
|
|
16
|
-
"label": "text-sm",
|
|
17
|
-
"strong": "
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
15
|
+
const tagStyles: Record<string, { class: string; size: keyof typeof textStyle }> = {
|
|
16
|
+
"p": { class: "", size: "text-base" },
|
|
17
|
+
"div": { class: "", size: "text-base" },
|
|
18
|
+
"span": { class: "", size: "text-base" },
|
|
19
|
+
"label": { class: "", size: "text-sm" },
|
|
20
|
+
"strong": { class: "font-bold", size: "text-base" },
|
|
21
|
+
"b": { class: "font-bold", size: "text-base" },
|
|
22
|
+
"em": { class: "italic", size: "text-base" },
|
|
23
|
+
"i": { class: "italic", size: "text-base" },
|
|
24
|
+
"u": { class: "underline", size: "text-base" },
|
|
25
|
+
"small": { class: "", size: "text-sm" },
|
|
26
|
+
"blockquote": { class: "border-l-4 border-gray-500 pl-2 opacity-70", size: "text-base" },
|
|
27
|
+
"pre": { class: "font-mono bg-sub-background px-3 py-2 radius overflow-x-auto whitespace-pre", size: "text-base" },
|
|
28
|
+
"code": { class: "font-mono bg-sub-background px-3 py-2 radius inline-block", size: "text-base" },
|
|
29
|
+
"a": { class: "text-blue-400 hover:text-blue-500 hover:underline transition-colors cursor-pointer", size: "text-base" },
|
|
30
|
+
"li": { class: "text-base list-disc list-inside", size: "text-base" },
|
|
31
|
+
"h1": { class: "font-extrabold", size: "text-6xl" },
|
|
32
|
+
"h2": { class: "font-bold", size: "text-5xl" },
|
|
33
|
+
"h3": { class: "font-semibold", size: "text-4xl" },
|
|
34
|
+
"h4": { class: "font-medium", size: "text-3xl" },
|
|
35
|
+
"h5": { class: "font-medium", size: "text-2xl" },
|
|
36
|
+
"h6": { class: "font-medium", size: "text-xl" }
|
|
31
37
|
};
|
|
32
38
|
|
|
39
|
+
function getTextSizeInRem(): string {
|
|
40
|
+
if (size !== "none") {
|
|
41
|
+
const sizeKey = (sizeStyleParts[size as SizeStyle]?.text ?? "text-base") as keyof typeof textStyle;
|
|
42
|
+
return textStyle[sizeKey] ?? textStyle["text-base"];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return textStyle[tagStyles[tag]?.size || "text-base"] ?? textStyle["text-base"];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
let shrinkStyle = $derived(shrink
|
|
49
|
+
? `font-size: clamp(8px, 12cqi, ${getTextSizeInRem()}); white-space: nowrap; display: block; width: fit-content;`
|
|
50
|
+
: ""
|
|
51
|
+
);
|
|
52
|
+
|
|
33
53
|
let defaultClass = "text-main-text";
|
|
34
|
-
let combinedClass = $derived(twMerge(
|
|
54
|
+
let combinedClass = $derived(twMerge(
|
|
55
|
+
defaultClass,
|
|
56
|
+
tagStyles[tag]?.class || "",
|
|
57
|
+
tagStyles[tag]?.size || "",
|
|
58
|
+
sizeStyleParts[size]?.text || "",
|
|
59
|
+
className
|
|
60
|
+
));
|
|
35
61
|
</script>
|
|
36
62
|
|
|
37
|
-
<svelte:element this={tag} class={combinedClass} {...restProps}>
|
|
63
|
+
<svelte:element this={tag} style={shrinkStyle} class={combinedClass} {...restProps}>
|
|
38
64
|
{@render children?.()}
|
|
39
65
|
</svelte:element>
|
package/dist/index.d.ts
CHANGED
|
@@ -9,5 +9,6 @@ export { default as FloatingInput } from "./components/FloatingInput.svelte";
|
|
|
9
9
|
export { default as FloatingSelect } from "./components/FloatingSelect.svelte";
|
|
10
10
|
export { default as Text } from "./components/Text.svelte";
|
|
11
11
|
export { default as Card } from "./components/Card.svelte";
|
|
12
|
+
export { default as Checkbox } from "./components/Checkbox.svelte";
|
|
12
13
|
export { fbmBackground } from "./actions/fbm.ts";
|
|
13
14
|
export type { TypewriterAction, DisplaySegment } from "./types/Typewriter.d.ts";
|
package/dist/index.js
CHANGED
|
@@ -9,4 +9,5 @@ export { default as FloatingInput } from "./components/FloatingInput.svelte";
|
|
|
9
9
|
export { default as FloatingSelect } from "./components/FloatingSelect.svelte";
|
|
10
10
|
export { default as Text } from "./components/Text.svelte";
|
|
11
11
|
export { default as Card } from "./components/Card.svelte";
|
|
12
|
+
export { default as Checkbox } from "./components/Checkbox.svelte";
|
|
12
13
|
export { fbmBackground } from "./actions/fbm.js";
|
package/dist/styles/color.d.ts
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
blue: string;
|
|
6
|
-
pink: string;
|
|
7
|
-
purple: string;
|
|
8
|
-
gray: string;
|
|
9
|
-
sub: string;
|
|
10
|
-
};
|
|
11
|
-
export type ColorStyle = keyof typeof colorStyles;
|
|
1
|
+
export type ColorStyle = "red" | "yellow" | "lightgreen" | "blue" | "pink" | "purple" | "gray" | "sub" | "none";
|
|
2
|
+
export type ColorStyleType = "full" | "light" | "outline" | "ghost";
|
|
3
|
+
export declare const colorStyleParts: Record<ColorStyle, Record<ColorStyleType, string>>;
|
|
4
|
+
export declare function generateColorStyle(color: ColorStyle, variant: ColorStyleType): string;
|
package/dist/styles/color.js
CHANGED
|
@@ -1,10 +1,62 @@
|
|
|
1
|
-
export const
|
|
2
|
-
red:
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
export const colorStyleParts = {
|
|
2
|
+
red: {
|
|
3
|
+
full: "bg-red-500 hover:bg-red-600",
|
|
4
|
+
light: "bg-red-500/35 hover:bg-red-600/35 text-white/60",
|
|
5
|
+
outline: "border border-red-500 hover:border-red-600 text-red-500 hover:text-red-600 hover:bg-red-500/10",
|
|
6
|
+
ghost: "hover:bg-red-500"
|
|
7
|
+
},
|
|
8
|
+
yellow: {
|
|
9
|
+
full: "bg-yellow-500 hover:bg-yellow-600",
|
|
10
|
+
light: "bg-yellow-500/35 hover:bg-yellow-600/35 text-white/60",
|
|
11
|
+
outline: "border border-yellow-500 hover:border-yellow-600 text-yellow-500 hover:text-yellow-600 hover:bg-yellow-500/10",
|
|
12
|
+
ghost: "hover:bg-yellow-500"
|
|
13
|
+
},
|
|
14
|
+
lightgreen: {
|
|
15
|
+
full: "bg-green-500 hover:bg-green-600",
|
|
16
|
+
light: "bg-green-500/35 hover:bg-green-600/35 text-white/60",
|
|
17
|
+
outline: "border border-green-500 hover:border-green-600 text-green-500 hover:text-green-600 hover:bg-green-500/10",
|
|
18
|
+
ghost: "hover:bg-green-500"
|
|
19
|
+
},
|
|
20
|
+
blue: {
|
|
21
|
+
full: "bg-blue-500 hover:bg-blue-600",
|
|
22
|
+
light: "bg-blue-500/35 hover:bg-blue-600/35 text-white/60",
|
|
23
|
+
outline: "border border-blue-500 hover:border-blue-600 text-blue-500 hover:text-blue-600 hover:bg-blue-500/10",
|
|
24
|
+
ghost: "hover:bg-blue-500"
|
|
25
|
+
},
|
|
26
|
+
pink: {
|
|
27
|
+
full: "bg-pink-500 hover:bg-pink-600",
|
|
28
|
+
light: "bg-pink-500/35 hover:bg-pink-600/35 text-white/60",
|
|
29
|
+
outline: "border border-pink-500 hover:border-pink-600 text-pink-500 hover:text-pink-600 hover:bg-pink-500/10",
|
|
30
|
+
ghost: "hover:bg-pink-500"
|
|
31
|
+
},
|
|
32
|
+
purple: {
|
|
33
|
+
full: "bg-purple-500 hover:bg-purple-600",
|
|
34
|
+
light: "bg-purple-500/35 hover:bg-purple-600/35 text-white/60",
|
|
35
|
+
outline: "border border-purple-500 hover:border-purple-600 text-purple-500 hover:text-purple-600 hover:bg-purple-500/10",
|
|
36
|
+
ghost: "hover:bg-purple-500"
|
|
37
|
+
},
|
|
38
|
+
gray: {
|
|
39
|
+
full: "bg-gray-500 hover:bg-gray-600",
|
|
40
|
+
light: "bg-gray-500/35 hover:bg-gray-600/35 text-white/60",
|
|
41
|
+
outline: "border border-gray-500 hover:border-gray-600 text-gray-500 hover:text-gray-600 hover:bg-gray-500/10",
|
|
42
|
+
ghost: "hover:bg-gray-500"
|
|
43
|
+
},
|
|
44
|
+
sub: {
|
|
45
|
+
full: "bg-sub-background hover:bg-sub-background-hover",
|
|
46
|
+
light: "bg-sub-background hover:bg-sub-background-hover text-white/60",
|
|
47
|
+
outline: "border border-sub-background hover:border-sub-background-hover text-sub-background hover:text-sub-background-hover hover:bg-sub-background/10",
|
|
48
|
+
ghost: "hover:bg-sub-background"
|
|
49
|
+
},
|
|
50
|
+
none: {
|
|
51
|
+
full: "",
|
|
52
|
+
light: "",
|
|
53
|
+
outline: "",
|
|
54
|
+
ghost: ""
|
|
55
|
+
}
|
|
10
56
|
};
|
|
57
|
+
export function generateColorStyle(color, variant) {
|
|
58
|
+
const styles = colorStyleParts[color];
|
|
59
|
+
if (!styles)
|
|
60
|
+
return "";
|
|
61
|
+
return styles[variant] || "";
|
|
62
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type SizeStyle = "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "full" | "none" | number;
|
|
2
|
+
export type SizeStyleType = "button" | "buttonIcon" | "radius" | "text";
|
|
3
|
+
export declare const sizeStyleParts: Record<SizeStyle, Record<SizeStyleType, string>>;
|
|
4
|
+
export declare const textStyle: {
|
|
5
|
+
"text-xs": string;
|
|
6
|
+
"text-sm": string;
|
|
7
|
+
"text-base": string;
|
|
8
|
+
"text-lg": string;
|
|
9
|
+
"text-xl": string;
|
|
10
|
+
"text-2xl": string;
|
|
11
|
+
"text-3xl": string;
|
|
12
|
+
"text-4xl": string;
|
|
13
|
+
"text-5xl": string;
|
|
14
|
+
"text-6xl": string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export const sizeStyleParts = {
|
|
2
|
+
xs: {
|
|
3
|
+
button: "text-xs h-4 px-1 py-0.5",
|
|
4
|
+
buttonIcon: "text-xs h-4 w-4 p-0.5",
|
|
5
|
+
radius: "rounded-xs",
|
|
6
|
+
text: "text-xs"
|
|
7
|
+
},
|
|
8
|
+
sm: {
|
|
9
|
+
button: "text-sm h-6 px-2 py-1",
|
|
10
|
+
buttonIcon: "text-sm h-6 w-6 p-1",
|
|
11
|
+
radius: "rounded-sm",
|
|
12
|
+
text: "text-sm"
|
|
13
|
+
},
|
|
14
|
+
md: {
|
|
15
|
+
button: "text-base h-8 px-3 py-1.5",
|
|
16
|
+
buttonIcon: "text-base h-8 w-8 p-1.5",
|
|
17
|
+
radius: "rounded-md",
|
|
18
|
+
text: "text-base"
|
|
19
|
+
},
|
|
20
|
+
lg: {
|
|
21
|
+
button: "text-lg h-10 px-4 py-2",
|
|
22
|
+
buttonIcon: "text-lg h-10 w-10 p-2",
|
|
23
|
+
radius: "rounded-lg",
|
|
24
|
+
text: "text-lg"
|
|
25
|
+
},
|
|
26
|
+
xl: {
|
|
27
|
+
button: "text-xl h-12 px-5 py-2.5",
|
|
28
|
+
buttonIcon: "text-xl h-12 w-12 p-2.5",
|
|
29
|
+
radius: "rounded-xl",
|
|
30
|
+
text: "text-xl"
|
|
31
|
+
},
|
|
32
|
+
"2xl": {
|
|
33
|
+
button: "text-2xl h-14 px-6 py-3",
|
|
34
|
+
buttonIcon: "text-2xl h-14 w-14 p-3",
|
|
35
|
+
radius: "rounded-2xl",
|
|
36
|
+
text: "text-2xl"
|
|
37
|
+
},
|
|
38
|
+
"3xl": {
|
|
39
|
+
button: "text-3xl h-16 px-7 py-3.5",
|
|
40
|
+
buttonIcon: "text-3xl h-16 w-16 p-3.5",
|
|
41
|
+
radius: "rounded-3xl",
|
|
42
|
+
text: "text-3xl"
|
|
43
|
+
},
|
|
44
|
+
"4xl": {
|
|
45
|
+
button: "text-4xl h-18 px-8 py-4",
|
|
46
|
+
buttonIcon: "text-4xl h-18 w-18 p-4",
|
|
47
|
+
radius: "rounded-4xl",
|
|
48
|
+
text: "text-4xl"
|
|
49
|
+
},
|
|
50
|
+
"5xl": {
|
|
51
|
+
button: "text-5xl h-20 px-9 py-4.5",
|
|
52
|
+
buttonIcon: "text-5xl h-20 w-20 p-4.5",
|
|
53
|
+
radius: "rounded-[2.5rem]",
|
|
54
|
+
text: "text-5xl"
|
|
55
|
+
},
|
|
56
|
+
"6xl": {
|
|
57
|
+
button: "text-6xl h-24 px-10 py-5",
|
|
58
|
+
buttonIcon: "text-6xl h-24 w-24 p-5",
|
|
59
|
+
radius: "rounded-[3rem]",
|
|
60
|
+
text: "text-6xl"
|
|
61
|
+
},
|
|
62
|
+
full: {
|
|
63
|
+
button: "w-full text-base h-8 px-3 py-1",
|
|
64
|
+
buttonIcon: "w-full aspect-square text-base p-1",
|
|
65
|
+
radius: "rounded-full",
|
|
66
|
+
text: "w-full text-base"
|
|
67
|
+
},
|
|
68
|
+
none: {
|
|
69
|
+
button: "p-0 h-auto text-base",
|
|
70
|
+
buttonIcon: "p-0 h-auto w-auto text-base",
|
|
71
|
+
radius: "rounded-none",
|
|
72
|
+
text: ""
|
|
73
|
+
},
|
|
74
|
+
0: {
|
|
75
|
+
button: "",
|
|
76
|
+
buttonIcon: "",
|
|
77
|
+
radius: "rounded-none",
|
|
78
|
+
text: ""
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
export const textStyle = {
|
|
82
|
+
"text-xs": "0.75rem",
|
|
83
|
+
"text-sm": "0.875rem",
|
|
84
|
+
"text-base": "1rem",
|
|
85
|
+
"text-lg": "1.125rem",
|
|
86
|
+
"text-xl": "1.25rem",
|
|
87
|
+
"text-2xl": "1.5rem",
|
|
88
|
+
"text-3xl": "1.875rem",
|
|
89
|
+
"text-4xl": "2.25rem",
|
|
90
|
+
"text-5xl": "3rem",
|
|
91
|
+
"text-6xl": "3.75rem"
|
|
92
|
+
};
|
package/dist/types/Button.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ColorStyle } from "../styles/color.ts";
|
|
1
|
+
import type { ColorStyle, ColorStyleType } from "../styles/color.ts";
|
|
2
|
+
import type { SizeStyle } from "../styles/size.ts";
|
|
2
3
|
|
|
3
4
|
export interface ButtonProps {
|
|
4
5
|
children?: any;
|
|
@@ -7,6 +8,10 @@ export interface ButtonProps {
|
|
|
7
8
|
icon?: boolean;
|
|
8
9
|
href?: string;
|
|
9
10
|
color?: ColorStyle;
|
|
10
|
-
|
|
11
|
+
variant?: ColorStyleType;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
external?: boolean;
|
|
14
|
+
size?: SizeStyle;
|
|
15
|
+
radius?: SizeStyle;
|
|
11
16
|
[key: string]: any;
|
|
12
17
|
}
|
package/dist/types/Navbar.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export interface NavbarProps {
|
|
|
2
2
|
children?: any;
|
|
3
3
|
class?: string;
|
|
4
4
|
classTop?: string;
|
|
5
|
+
threshold?: number;
|
|
5
6
|
[key: string]: any;
|
|
6
7
|
};
|
|
7
8
|
|
|
@@ -9,6 +10,8 @@ export interface NavbarElementProps {
|
|
|
9
10
|
children?: any;
|
|
10
11
|
class?: string;
|
|
11
12
|
classTop?: string;
|
|
13
|
+
activeClass?: string;
|
|
12
14
|
href?: string;
|
|
15
|
+
threshold?: number;
|
|
13
16
|
[key: string]: any;
|
|
14
17
|
}
|
package/dist/types/Text.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
type TextTagOptions = "p" | "div" | "span" | "label" | "strong" | "em" | "small" | "blockquote" | "pre" | "code" | "a" | "li" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
1
|
+
type TextTagOptions = "p" | "div" | "span" | "label" | "strong" | "em" | "b" | "i" | "u" | "small" | "blockquote" | "pre" | "code" | "a" | "li" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
2
2
|
|
|
3
3
|
export interface TextProps {
|
|
4
4
|
children?: any;
|
|
5
5
|
class?: string;
|
|
6
6
|
tag?: TextTagOptions;
|
|
7
|
+
shrink?: boolean;
|
|
8
|
+
size?: SizeStyle;
|
|
7
9
|
[key: string]: any;
|
|
8
10
|
};
|