flowbite-svelte 0.6.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/README.md +33 -0
- package/accordions/AccordionDefault.svelte +26 -0
- package/accordions/AccordionDefault.svelte.d.ts +35 -0
- package/accordions/AccordionItem.svelte +44 -0
- package/accordions/AccordionItem.svelte.d.ts +29 -0
- package/alerts/Alert.svelte +111 -0
- package/alerts/Alert.svelte.d.ts +31 -0
- package/alerts/BorderAlert.svelte +118 -0
- package/alerts/BorderAlert.svelte.d.ts +31 -0
- package/alerts/InfoAlert.svelte +125 -0
- package/alerts/InfoAlert.svelte.d.ts +35 -0
- package/badges/Badge.svelte +28 -0
- package/badges/Badge.svelte.d.ts +27 -0
- package/badges/BadgeIcon.svelte +31 -0
- package/badges/BadgeIcon.svelte.d.ts +31 -0
- package/badges/BadgeLink.svelte +29 -0
- package/badges/BadgeLink.svelte.d.ts +29 -0
- package/buttongroups/ButtonGroup.svelte +68 -0
- package/buttongroups/ButtonGroup.svelte.d.ts +33 -0
- package/buttongroups/ButtonGroupOutline.svelte +70 -0
- package/buttongroups/ButtonGroupOutline.svelte.d.ts +33 -0
- package/buttons/Button.svelte +60 -0
- package/buttons/Button.svelte.d.ts +33 -0
- package/buttons/ColorShadowButton.svelte +35 -0
- package/buttons/ColorShadowButton.svelte.d.ts +31 -0
- package/buttons/GradientDuotoneButton.svelte +33 -0
- package/buttons/GradientDuotoneButton.svelte.d.ts +31 -0
- package/buttons/GradientMonochromeButton.svelte +35 -0
- package/buttons/GradientMonochromeButton.svelte.d.ts +31 -0
- package/buttons/GradientOutlineButton.svelte +52 -0
- package/buttons/GradientOutlineButton.svelte.d.ts +31 -0
- package/cards/Card.svelte +86 -0
- package/cards/Card.svelte.d.ts +39 -0
- package/cards/CtaCard.svelte +63 -0
- package/cards/CtaCard.svelte.d.ts +45 -0
- package/cards/EcommerceCard.svelte +98 -0
- package/cards/EcommerceCard.svelte.d.ts +41 -0
- package/cards/HorizontalCard.svelte +29 -0
- package/cards/HorizontalCard.svelte.d.ts +35 -0
- package/cards/InteractiveCard.svelte +127 -0
- package/cards/InteractiveCard.svelte.d.ts +63 -0
- package/cards/ListCard.svelte +82 -0
- package/cards/ListCard.svelte.d.ts +51 -0
- package/cards/SignInCard.svelte +125 -0
- package/cards/SignInCard.svelte.d.ts +45 -0
- package/darkmode/DarkMode.svelte +78 -0
- package/darkmode/DarkMode.svelte.d.ts +23 -0
- package/dropdowns/DropdownDefault.svelte +117 -0
- package/dropdowns/DropdownDefault.svelte.d.ts +51 -0
- package/footer/SimpleFooter.svelte +32 -0
- package/footer/SimpleFooter.svelte.d.ts +45 -0
- package/index.d.ts +39 -0
- package/index.js +116 -0
- package/list-group/List.svelte +79 -0
- package/list-group/List.svelte.d.ts +33 -0
- package/modals/ExtraLargeModal.svelte +236 -0
- package/modals/ExtraLargeModal.svelte.d.ts +45 -0
- package/modals/LargeModal.svelte +236 -0
- package/modals/LargeModal.svelte.d.ts +45 -0
- package/modals/MediumModal.svelte +242 -0
- package/modals/MediumModal.svelte.d.ts +45 -0
- package/modals/ModalButton.svelte +48 -0
- package/modals/ModalButton.svelte.d.ts +29 -0
- package/modals/SignInModal.svelte +174 -0
- package/modals/SignInModal.svelte.d.ts +37 -0
- package/modals/SmallModal.svelte +236 -0
- package/modals/SmallModal.svelte.d.ts +45 -0
- package/modals/modalStores.d.ts +1 -0
- package/modals/modalStores.js +3 -0
- package/navbar/DropdownNavbar.svelte +210 -0
- package/navbar/DropdownNavbar.svelte.d.ts +65 -0
- package/navbar/Navbar.svelte +96 -0
- package/navbar/Navbar.svelte.d.ts +39 -0
- package/package.json +92 -0
- package/tabs/DefaultTabs.svelte +43 -0
- package/tabs/DefaultTabs.svelte.d.ts +33 -0
- package/tabs/InteractiveTabs.svelte +68 -0
- package/tabs/InteractiveTabs.svelte.d.ts +47 -0
- package/tabs/PillTabs.svelte +38 -0
- package/tabs/PillTabs.svelte.d.ts +31 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { createEventDispatcher } from "svelte";
|
|
3
|
+
|
|
4
|
+
const dispatch = createEventDispatcher();
|
|
5
|
+
const handleClick = () => {
|
|
6
|
+
dispatch("handleClick");
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export let textSize = "text-sm";
|
|
10
|
+
export let color = "purple2blue";
|
|
11
|
+
export let name = "Read more";
|
|
12
|
+
let btnClass;
|
|
13
|
+
let spanClass;
|
|
14
|
+
|
|
15
|
+
if (color === "purple2blue") {
|
|
16
|
+
btnClass = `relative inline-flex items-center justify-center p-0.5 mb-2 mr-2 overflow-hidden ${textSize} font-medium text-gray-900 rounded-lg group bg-gradient-to-br from-purple-600 to-blue-500 group-hover:from-purple-600 group-hover:to-blue-500 hover:text-white dark:text-white focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-800`;
|
|
17
|
+
spanClass =
|
|
18
|
+
"relative px-5 py-2.5 transition-all ease-in duration-75 bg-white dark:bg-gray-900 rounded-md group-hover:bg-opacity-0";
|
|
19
|
+
} else if (color === "cyan2blue") {
|
|
20
|
+
btnClass = `relative inline-flex items-center justify-center p-0.5 mb-2 mr-2 overflow-hidden ${textSize} font-medium text-gray-900 rounded-lg group bg-gradient-to-br from-cyan-500 to-blue-500 group-hover:from-cyan-500 group-hover:to-blue-500 hover:text-white dark:text-white focus:ring-4 focus:ring-cyan-200 dark:focus:ring-cyan-800`;
|
|
21
|
+
spanClass =
|
|
22
|
+
"relative px-5 py-2.5 transition-all ease-in duration-75 bg-white dark:bg-gray-900 rounded-md group-hover:bg-opacity-0";
|
|
23
|
+
} else if (color === "green2blue") {
|
|
24
|
+
btnClass = `relative inline-flex items-center justify-center p-0.5 mb-2 mr-2 overflow-hidden ${textSize} font-medium text-gray-900 rounded-lg group bg-gradient-to-br from-green-400 to-blue-600 group-hover:from-green-400 group-hover:to-blue-600 hover:text-white dark:text-white focus:ring-4 focus:ring-green-200 dark:focus:ring-green-800`;
|
|
25
|
+
spanClass =
|
|
26
|
+
"relative px-5 py-2.5 transition-all ease-in duration-75 bg-white dark:bg-gray-900 rounded-md group-hover:bg-opacity-0";
|
|
27
|
+
} else if (color === "purple2pink") {
|
|
28
|
+
btnClass = `relative inline-flex items-center justify-center p-0.5 mb-2 mr-2 overflow-hidden ${textSize} font-medium text-gray-900 rounded-lg group bg-gradient-to-br from-purple-500 to-pink-500 group-hover:from-purple-500 group-hover:to-pink-500 hover:text-white dark:text-white focus:ring-4 focus:ring-purple-200 dark:focus:ring-purple-800`;
|
|
29
|
+
spanClass =
|
|
30
|
+
"relative px-5 py-2.5 transition-all ease-in duration-75 bg-white dark:bg-gray-900 rounded-md group-hover:bg-opacity-0";
|
|
31
|
+
} else if (color === "pink2orange") {
|
|
32
|
+
btnClass = `relative inline-flex items-center justify-center p-0.5 mb-2 mr-2 overflow-hidden ${textSize} font-medium text-gray-900 rounded-lg group bg-gradient-to-br from-pink-500 to-orange-400 group-hover:from-pink-500 group-hover:to-orange-400 hover:text-white dark:text-white focus:ring-4 focus:ring-pink-200 dark:focus:ring-pink-800`;
|
|
33
|
+
spanClass =
|
|
34
|
+
"relative px-5 py-2.5 transition-all ease-in duration-75 bg-white dark:bg-gray-900 rounded-md group-hover:bg-opacity-0";
|
|
35
|
+
} else if (color === "teal2lime") {
|
|
36
|
+
btnClass = `relative inline-flex items-center justify-center p-0.5 mb-2 mr-2 overflow-hidden ${textSize} font-medium text-gray-900 rounded-lg group bg-gradient-to-br from-teal-300 to-lime-300 group-hover:from-teal-300 group-hover:to-lime-300 dark:text-white dark:hover:text-gray-900 focus:ring-4 focus:ring-lime-200 dark:focus:ring-lime-800`;
|
|
37
|
+
spanClass =
|
|
38
|
+
"relative px-5 py-2.5 transition-all ease-in duration-75 bg-white dark:bg-gray-900 rounded-md group-hover:bg-opacity-0";
|
|
39
|
+
} else if (color === "red2yellow") {
|
|
40
|
+
btnClass = `relative inline-flex items-center justify-center p-0.5 mb-2 mr-2 overflow-hidden ${textSize} font-medium text-gray-900 rounded-lg group bg-gradient-to-br from-red-200 via-red-300 to-yellow-200 group-hover:from-red-200 group-hover:via-red-300 group-hover:to-yellow-200 dark:text-white dark:hover:text-gray-900 focus:ring-4 focus:ring-red-100 dark:focus:ring-red-400`;
|
|
41
|
+
spanClass =
|
|
42
|
+
"relative px-5 py-2.5 transition-all ease-in duration-75 bg-white dark:bg-gray-900 rounded-md group-hover:bg-opacity-0";
|
|
43
|
+
} else {
|
|
44
|
+
btnClass = `relative inline-flex items-center justify-center p-0.5 mb-2 mr-2 overflow-hidden ${textSize} font-medium text-gray-900 rounded-lg group bg-gradient-to-br from-purple-600 to-blue-500 group-hover:from-purple-600 group-hover:to-blue-500 hover:text-white dark:text-white focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-800`;
|
|
45
|
+
spanClass =
|
|
46
|
+
"relative px-5 py-2.5 transition-all ease-in duration-75 bg-white dark:bg-gray-900 rounded-md group-hover:bg-opacity-0";
|
|
47
|
+
}
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<button class={btnClass}>
|
|
51
|
+
<span class={spanClass} on:click={handleClick}>{name}</span>
|
|
52
|
+
</button>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} GradientOutlineButtonProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} GradientOutlineButtonEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} GradientOutlineButtonSlots */
|
|
4
|
+
export default class GradientOutlineButton extends SvelteComponentTyped<{
|
|
5
|
+
textSize?: string;
|
|
6
|
+
name?: string;
|
|
7
|
+
color?: string;
|
|
8
|
+
}, {
|
|
9
|
+
handleClick: CustomEvent<any>;
|
|
10
|
+
} & {
|
|
11
|
+
[evt: string]: CustomEvent<any>;
|
|
12
|
+
}, {}> {
|
|
13
|
+
}
|
|
14
|
+
export type GradientOutlineButtonProps = typeof __propDef.props;
|
|
15
|
+
export type GradientOutlineButtonEvents = typeof __propDef.events;
|
|
16
|
+
export type GradientOutlineButtonSlots = typeof __propDef.slots;
|
|
17
|
+
import { SvelteComponentTyped } from "svelte";
|
|
18
|
+
declare const __propDef: {
|
|
19
|
+
props: {
|
|
20
|
+
textSize?: string;
|
|
21
|
+
name?: string;
|
|
22
|
+
color?: string;
|
|
23
|
+
};
|
|
24
|
+
events: {
|
|
25
|
+
handleClick: CustomEvent<any>;
|
|
26
|
+
} & {
|
|
27
|
+
[evt: string]: CustomEvent<any>;
|
|
28
|
+
};
|
|
29
|
+
slots: {};
|
|
30
|
+
};
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
export let link;
|
|
3
|
+
export let rel;
|
|
4
|
+
export let alt;
|
|
5
|
+
export let img;
|
|
6
|
+
export let btnLabel = "Read more";
|
|
7
|
+
export let btnColor = "blue";
|
|
8
|
+
export let header =
|
|
9
|
+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
|
|
10
|
+
let buttonClass;
|
|
11
|
+
if (btnColor === "blue") {
|
|
12
|
+
buttonClass =
|
|
13
|
+
"inline-flex items-center py-2 px-3 text-sm font-medium text-center text-white bg-blue-700 rounded-lg hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
|
|
14
|
+
} else if (btnColor === "gray") {
|
|
15
|
+
buttonClass =
|
|
16
|
+
"inline-flex items-center py-2 px-3 text-sm font-medium text-center text-white bg-gray-700 rounded-lg hover:bg-gray-800 focus:ring-4 focus:ring-gray-300 dark:bg-gray-600 dark:hover:bg-gray-700 dark:focus:ring-gray-800";
|
|
17
|
+
} else if (btnColor === "red") {
|
|
18
|
+
buttonClass =
|
|
19
|
+
"inline-flex items-center py-2 px-3 text-sm font-medium text-center text-white bg-red-700 rounded-lg hover:bg-red-800 focus:ring-4 focus:ring-red-300 dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-800";
|
|
20
|
+
} else if (btnColor === "yellow") {
|
|
21
|
+
buttonClass =
|
|
22
|
+
"inline-flex items-center py-2 px-3 text-sm font-medium text-center text-white bg-yellow-700 rounded-lg hover:bg-yellow-800 focus:ring-4 focus:ring-yellow-300 dark:bg-yellow-600 dark:hover:bg-yellow-700 dark:focus:ring-yellow-800";
|
|
23
|
+
} else if (btnColor === "green") {
|
|
24
|
+
buttonClass =
|
|
25
|
+
"inline-flex items-center py-2 px-3 text-sm font-medium text-center text-white bg-green-700 rounded-lg hover:bg-green-800 focus:ring-4 focus:ring-green-300 dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800";
|
|
26
|
+
} else if (btnColor === "indigo") {
|
|
27
|
+
buttonClass =
|
|
28
|
+
"inline-flex items-center py-2 px-3 text-sm font-medium text-center text-white bg-indigo-700 rounded-lg hover:bg-indigo-800 focus:ring-4 focus:ring-indigo-300 dark:bg-indigo-600 dark:hover:bg-indigo-700 dark:focus:ring-indigo-800";
|
|
29
|
+
} else if (btnColor === "purple") {
|
|
30
|
+
buttonClass =
|
|
31
|
+
"inline-flex items-center py-2 px-3 text-sm font-medium text-center text-white bg-purple-700 rounded-lg hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 dark:bg-purple-600 dark:hover:bg-purple-700 dark:focus:ring-purple-800";
|
|
32
|
+
} else if (btnColor === "pink") {
|
|
33
|
+
buttonClass =
|
|
34
|
+
"inline-flex items-center py-2 px-3 text-sm font-medium text-center text-white bg-pink-700 rounded-lg hover:bg-pink-800 focus:ring-4 focus:ring-pink-300 dark:bg-pink-600 dark:hover:bg-pink-700 dark:focus:ring-pink-800";
|
|
35
|
+
} else {
|
|
36
|
+
buttonClass =
|
|
37
|
+
"inline-flex items-center py-2 px-3 text-sm font-medium text-center text-white bg-blue-700 rounded-lg hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
|
|
38
|
+
}
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<div
|
|
42
|
+
class="max-w-sm bg-white rounded-lg border border-gray-200 shadow-md dark:bg-gray-800 dark:border-gray-700"
|
|
43
|
+
>
|
|
44
|
+
{#if img}
|
|
45
|
+
<a href={link} {rel}>
|
|
46
|
+
<img class="rounded-t-lg" src={img} {alt} />
|
|
47
|
+
</a>
|
|
48
|
+
{/if}
|
|
49
|
+
<div class="p-5">
|
|
50
|
+
{#if link}
|
|
51
|
+
<a href={link} {rel}>
|
|
52
|
+
<h5
|
|
53
|
+
class="mb-2 text-2xl font-bold tracking-tight text-gray-900 dark:text-white"
|
|
54
|
+
>
|
|
55
|
+
{header}
|
|
56
|
+
</h5>
|
|
57
|
+
</a>
|
|
58
|
+
{:else}
|
|
59
|
+
<h5
|
|
60
|
+
class="mb-2 text-2xl font-bold tracking-tight text-gray-900 dark:text-white"
|
|
61
|
+
>
|
|
62
|
+
{header}
|
|
63
|
+
</h5>
|
|
64
|
+
{/if}
|
|
65
|
+
|
|
66
|
+
<p class="mb-3 font-normal text-gray-700 dark:text-gray-400">
|
|
67
|
+
<slot />
|
|
68
|
+
</p>
|
|
69
|
+
{#if link}
|
|
70
|
+
<a href={link} {rel} class={buttonClass}>
|
|
71
|
+
{btnLabel}
|
|
72
|
+
<svg
|
|
73
|
+
class="ml-2 -mr-1 w-4 h-4"
|
|
74
|
+
fill="currentColor"
|
|
75
|
+
viewBox="0 0 20 20"
|
|
76
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
77
|
+
><path
|
|
78
|
+
fill-rule="evenodd"
|
|
79
|
+
d="M10.293 3.293a1 1 0 011.414 0l6 6a1 1 0 010 1.414l-6 6a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-4.293-4.293a1 1 0 010-1.414z"
|
|
80
|
+
clip-rule="evenodd"
|
|
81
|
+
/></svg
|
|
82
|
+
>
|
|
83
|
+
</a>
|
|
84
|
+
{/if}
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} CardProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} CardEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} CardSlots */
|
|
4
|
+
export default class Card extends SvelteComponentTyped<{
|
|
5
|
+
link: any;
|
|
6
|
+
rel: any;
|
|
7
|
+
alt: any;
|
|
8
|
+
img: any;
|
|
9
|
+
header?: string;
|
|
10
|
+
btnLabel?: string;
|
|
11
|
+
btnColor?: string;
|
|
12
|
+
}, {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
}, {
|
|
15
|
+
default: {};
|
|
16
|
+
}> {
|
|
17
|
+
}
|
|
18
|
+
export type CardProps = typeof __propDef.props;
|
|
19
|
+
export type CardEvents = typeof __propDef.events;
|
|
20
|
+
export type CardSlots = typeof __propDef.slots;
|
|
21
|
+
import { SvelteComponentTyped } from "svelte";
|
|
22
|
+
declare const __propDef: {
|
|
23
|
+
props: {
|
|
24
|
+
link: any;
|
|
25
|
+
rel: any;
|
|
26
|
+
alt: any;
|
|
27
|
+
img: any;
|
|
28
|
+
header?: string;
|
|
29
|
+
btnLabel?: string;
|
|
30
|
+
btnColor?: string;
|
|
31
|
+
};
|
|
32
|
+
events: {
|
|
33
|
+
[evt: string]: CustomEvent<any>;
|
|
34
|
+
};
|
|
35
|
+
slots: {
|
|
36
|
+
default: {};
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import Button from "../buttons/Button.svelte";
|
|
3
|
+
export let title = "Work fast from anywhere";
|
|
4
|
+
export let headColor = "gray";
|
|
5
|
+
export let btns = [
|
|
6
|
+
{
|
|
7
|
+
size: "base",
|
|
8
|
+
name: "Download it",
|
|
9
|
+
type: "blue",
|
|
10
|
+
link: "/about",
|
|
11
|
+
rel: undefined,
|
|
12
|
+
rounded: null,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
size: "base",
|
|
16
|
+
name: "Get in on",
|
|
17
|
+
type: "red-outline",
|
|
18
|
+
link: "/#",
|
|
19
|
+
rel: undefined,
|
|
20
|
+
rounded: null,
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
let headClass;
|
|
24
|
+
if (headColor === "blue") {
|
|
25
|
+
headClass = "mb-2 text-3xl font-bold text-blue-900 dark:text-white";
|
|
26
|
+
} else if (headColor === "gray") {
|
|
27
|
+
headClass = "mb-2 text-3xl font-bold text-gray-900 dark:text-white";
|
|
28
|
+
} else if (headColor === "red") {
|
|
29
|
+
headClass = "mb-2 text-3xl font-bold text-red-900 dark:text-white";
|
|
30
|
+
} else if (headColor === "yellow") {
|
|
31
|
+
headClass = "mb-2 text-3xl font-bold text-yellow-900 dark:text-white";
|
|
32
|
+
} else if (headColor === "green") {
|
|
33
|
+
headClass = "mb-2 text-3xl font-bold text-green-900 dark:text-white";
|
|
34
|
+
} else if (headColor === "indigo") {
|
|
35
|
+
headClass = "mb-2 text-3xl font-bold text-indigo-900 dark:text-white";
|
|
36
|
+
} else if (headColor === "purple") {
|
|
37
|
+
headClass = "mb-2 text-3xl font-bold text-purple-900 dark:text-white";
|
|
38
|
+
} else if (headColor === "pink") {
|
|
39
|
+
headClass = "mb-2 text-3xl font-bold text-pink-900 dark:text-white";
|
|
40
|
+
} else {
|
|
41
|
+
headClass = "mb-2 text-3xl font-bold text-blue-900 dark:text-white";
|
|
42
|
+
}
|
|
43
|
+
</script>
|
|
44
|
+
|
|
45
|
+
<div
|
|
46
|
+
class="p-4 w-full text-center bg-white rounded-lg border shadow-md sm:p-8 dark:bg-gray-800 dark:border-gray-700"
|
|
47
|
+
>
|
|
48
|
+
<h3 class={headClass}>
|
|
49
|
+
{title}
|
|
50
|
+
</h3>
|
|
51
|
+
<p class="mb-5 text-base text-gray-500 sm:text-lg dark:text-gray-400">
|
|
52
|
+
<slot />
|
|
53
|
+
</p>
|
|
54
|
+
<div
|
|
55
|
+
class="justify-center items-center space-y-4 sm:flex sm:space-y-0 sm:space-x-4"
|
|
56
|
+
>
|
|
57
|
+
{#each btns as { name, size, type, link, rel, rounded }}
|
|
58
|
+
<a href={link} {rel}>
|
|
59
|
+
<Button {name} {size} {type} {rounded} />
|
|
60
|
+
</a>
|
|
61
|
+
{/each}
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} CtaCardProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} CtaCardEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} CtaCardSlots */
|
|
4
|
+
export default class CtaCard extends SvelteComponentTyped<{
|
|
5
|
+
title?: string;
|
|
6
|
+
headColor?: string;
|
|
7
|
+
btns?: {
|
|
8
|
+
size: string;
|
|
9
|
+
name: string;
|
|
10
|
+
type: string;
|
|
11
|
+
link: string;
|
|
12
|
+
rel: any;
|
|
13
|
+
rounded: any;
|
|
14
|
+
}[];
|
|
15
|
+
}, {
|
|
16
|
+
[evt: string]: CustomEvent<any>;
|
|
17
|
+
}, {
|
|
18
|
+
default: {};
|
|
19
|
+
}> {
|
|
20
|
+
}
|
|
21
|
+
export type CtaCardProps = typeof __propDef.props;
|
|
22
|
+
export type CtaCardEvents = typeof __propDef.events;
|
|
23
|
+
export type CtaCardSlots = typeof __propDef.slots;
|
|
24
|
+
import { SvelteComponentTyped } from "svelte";
|
|
25
|
+
declare const __propDef: {
|
|
26
|
+
props: {
|
|
27
|
+
title?: string;
|
|
28
|
+
headColor?: string;
|
|
29
|
+
btns?: {
|
|
30
|
+
size: string;
|
|
31
|
+
name: string;
|
|
32
|
+
type: string;
|
|
33
|
+
link: string;
|
|
34
|
+
rel: any;
|
|
35
|
+
rounded: any;
|
|
36
|
+
}[];
|
|
37
|
+
};
|
|
38
|
+
events: {
|
|
39
|
+
[evt: string]: CustomEvent<any>;
|
|
40
|
+
};
|
|
41
|
+
slots: {
|
|
42
|
+
default: {};
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
export let img = {
|
|
3
|
+
src: "/images/product-1.png",
|
|
4
|
+
alt: "product image",
|
|
5
|
+
};
|
|
6
|
+
export let link = "/#";
|
|
7
|
+
export let btnColor = "blue";
|
|
8
|
+
export let rel;
|
|
9
|
+
export let title =
|
|
10
|
+
"Apple Watch Series 7 GPS, Aluminium Case, Starlight Sport";
|
|
11
|
+
export let stars = "5.0";
|
|
12
|
+
export let price = "$555";
|
|
13
|
+
let spanClass;
|
|
14
|
+
let linkClass;
|
|
15
|
+
if (btnColor === "blue") {
|
|
16
|
+
spanClass =
|
|
17
|
+
"bg-blue-100 text-blue-800 text-xs font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-blue-200 dark:text-blue-800 ml-3";
|
|
18
|
+
linkClass =
|
|
19
|
+
"text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
|
|
20
|
+
} else if (btnColor === "gray") {
|
|
21
|
+
spanClass =
|
|
22
|
+
"bg-gray-100 text-gray-800 text-xs font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-gray-200 dark:text-gray-800 ml-3";
|
|
23
|
+
linkClass =
|
|
24
|
+
"text-white bg-gray-700 hover:bg-gray-800 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-gray-600 dark:hover:bg-gray-700 dark:focus:ring-gray-800";
|
|
25
|
+
} else if (btnColor === "red") {
|
|
26
|
+
spanClass =
|
|
27
|
+
"bg-red-100 text-red-800 text-xs font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-red-200 dark:text-red-800 ml-3";
|
|
28
|
+
linkClass =
|
|
29
|
+
"text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-800";
|
|
30
|
+
} else if (btnColor === "yellow") {
|
|
31
|
+
spanClass =
|
|
32
|
+
"bg-yellow-100 text-yellow-800 text-xs font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-yellow-200 dark:text-yellow-800 ml-3";
|
|
33
|
+
linkClass =
|
|
34
|
+
"text-white bg-yellow-700 hover:bg-yellow-800 focus:ring-4 focus:ring-yellow-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-yellow-600 dark:hover:bg-yellow-700 dark:focus:ring-yellow-800";
|
|
35
|
+
} else if (btnColor === "green") {
|
|
36
|
+
spanClass =
|
|
37
|
+
"bg-green-100 text-green-800 text-xs font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-green-200 dark:text-green-800 ml-3";
|
|
38
|
+
linkClass =
|
|
39
|
+
"text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800";
|
|
40
|
+
} else if (btnColor === "indigo") {
|
|
41
|
+
spanClass =
|
|
42
|
+
"bg-indigo-100 text-indigo-800 text-xs font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-indigo-200 dark:text-indigo-800 ml-3";
|
|
43
|
+
linkClass =
|
|
44
|
+
"text-white bg-indigo-700 hover:bg-indigo-800 focus:ring-4 focus:ring-indigo-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-indigo-600 dark:hover:bg-indigo-700 dark:focus:ring-indigo-800";
|
|
45
|
+
} else if (btnColor === "purple") {
|
|
46
|
+
spanClass =
|
|
47
|
+
"bg-purple-100 text-purple-800 text-xs font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-purple-200 dark:text-purple-800 ml-3";
|
|
48
|
+
linkClass =
|
|
49
|
+
"text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-purple-600 dark:hover:bg-purple-700 dark:focus:ring-purple-800";
|
|
50
|
+
} else if (btnColor === "pink") {
|
|
51
|
+
spanClass =
|
|
52
|
+
"bg-pink-100 text-pink-800 text-xs font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-pink-200 dark:text-pink-800 ml-3";
|
|
53
|
+
linkClass =
|
|
54
|
+
"text-white bg-pink-700 hover:bg-pink-800 focus:ring-4 focus:ring-pink-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-pink-600 dark:hover:bg-pink-700 dark:focus:ring-pink-800";
|
|
55
|
+
} else {
|
|
56
|
+
spanClass =
|
|
57
|
+
"bg-blue-100 text-blue-800 text-xs font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-blue-200 dark:text-blue-800 ml-3";
|
|
58
|
+
linkClass =
|
|
59
|
+
"text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
<div
|
|
64
|
+
class="max-w-sm bg-white rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700"
|
|
65
|
+
>
|
|
66
|
+
<a href={link} {rel}>
|
|
67
|
+
<img class="p-8 rounded-t-lg" src={img.src} alt={img.alt} />
|
|
68
|
+
</a>
|
|
69
|
+
<div class="px-5 pb-5">
|
|
70
|
+
<a href={link} {rel}>
|
|
71
|
+
<h3
|
|
72
|
+
class="text-xl font-semibold tracking-tight text-gray-900 dark:text-white"
|
|
73
|
+
>
|
|
74
|
+
{title}
|
|
75
|
+
</h3>
|
|
76
|
+
</a>
|
|
77
|
+
<div class="flex items-center mt-2.5 mb-5">
|
|
78
|
+
{#each { length: parseInt(stars) } as _, i}
|
|
79
|
+
<svg
|
|
80
|
+
class="w-5 h-5 text-yellow-300"
|
|
81
|
+
fill="currentColor"
|
|
82
|
+
viewBox="0 0 20 20"
|
|
83
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
84
|
+
><path
|
|
85
|
+
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
|
|
86
|
+
/></svg
|
|
87
|
+
>
|
|
88
|
+
{/each}
|
|
89
|
+
<span class={spanClass}>{stars}</span>
|
|
90
|
+
</div>
|
|
91
|
+
<div class="flex justify-between items-center">
|
|
92
|
+
<span class="text-3xl font-bold text-gray-900 dark:text-white"
|
|
93
|
+
>{price}</span
|
|
94
|
+
>
|
|
95
|
+
<a href={link} {rel} class={linkClass}>Add to cart</a>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} EcommerceCardProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} EcommerceCardEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} EcommerceCardSlots */
|
|
4
|
+
export default class EcommerceCard extends SvelteComponentTyped<{
|
|
5
|
+
rel: any;
|
|
6
|
+
link?: string;
|
|
7
|
+
btnColor?: string;
|
|
8
|
+
img?: {
|
|
9
|
+
src: string;
|
|
10
|
+
alt: string;
|
|
11
|
+
};
|
|
12
|
+
title?: string;
|
|
13
|
+
stars?: string;
|
|
14
|
+
price?: string;
|
|
15
|
+
}, {
|
|
16
|
+
[evt: string]: CustomEvent<any>;
|
|
17
|
+
}, {}> {
|
|
18
|
+
}
|
|
19
|
+
export type EcommerceCardProps = typeof __propDef.props;
|
|
20
|
+
export type EcommerceCardEvents = typeof __propDef.events;
|
|
21
|
+
export type EcommerceCardSlots = typeof __propDef.slots;
|
|
22
|
+
import { SvelteComponentTyped } from "svelte";
|
|
23
|
+
declare const __propDef: {
|
|
24
|
+
props: {
|
|
25
|
+
rel: any;
|
|
26
|
+
link?: string;
|
|
27
|
+
btnColor?: string;
|
|
28
|
+
img?: {
|
|
29
|
+
src: string;
|
|
30
|
+
alt: string;
|
|
31
|
+
};
|
|
32
|
+
title?: string;
|
|
33
|
+
stars?: string;
|
|
34
|
+
price?: string;
|
|
35
|
+
};
|
|
36
|
+
events: {
|
|
37
|
+
[evt: string]: CustomEvent<any>;
|
|
38
|
+
};
|
|
39
|
+
slots: {};
|
|
40
|
+
};
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
export let link;
|
|
3
|
+
export let rel;
|
|
4
|
+
export let img = "/images/image-4.jpeg";
|
|
5
|
+
export let alt;
|
|
6
|
+
export let header = "Lorem ipsum dolor sit ametit.";
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<a
|
|
10
|
+
href={link}
|
|
11
|
+
{rel}
|
|
12
|
+
class="flex flex-col items-center bg-white rounded-lg border shadow-md md:flex-row md:max-w-xl hover:bg-gray-100 dark:border-gray-700 dark:bg-gray-800 dark:hover:bg-gray-700"
|
|
13
|
+
>
|
|
14
|
+
<img
|
|
15
|
+
class="object-cover w-full h-96 rounded-t-lg md:h-auto md:w-48 md:rounded-none md:rounded-l-lg"
|
|
16
|
+
src={img}
|
|
17
|
+
{alt}
|
|
18
|
+
/>
|
|
19
|
+
<div class="flex flex-col justify-between p-4 leading-normal">
|
|
20
|
+
<h5
|
|
21
|
+
class="mb-2 text-2xl font-bold tracking-tight text-gray-900 dark:text-white"
|
|
22
|
+
>
|
|
23
|
+
{header}
|
|
24
|
+
</h5>
|
|
25
|
+
<p class="mb-3 font-normal text-gray-700 dark:text-gray-400">
|
|
26
|
+
<slot />
|
|
27
|
+
</p>
|
|
28
|
+
</div>
|
|
29
|
+
</a>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} HorizontalCardProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} HorizontalCardEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} HorizontalCardSlots */
|
|
4
|
+
export default class HorizontalCard extends SvelteComponentTyped<{
|
|
5
|
+
link: any;
|
|
6
|
+
rel: any;
|
|
7
|
+
alt: any;
|
|
8
|
+
header?: string;
|
|
9
|
+
img?: string;
|
|
10
|
+
}, {
|
|
11
|
+
[evt: string]: CustomEvent<any>;
|
|
12
|
+
}, {
|
|
13
|
+
default: {};
|
|
14
|
+
}> {
|
|
15
|
+
}
|
|
16
|
+
export type HorizontalCardProps = typeof __propDef.props;
|
|
17
|
+
export type HorizontalCardEvents = typeof __propDef.events;
|
|
18
|
+
export type HorizontalCardSlots = typeof __propDef.slots;
|
|
19
|
+
import { SvelteComponentTyped } from "svelte";
|
|
20
|
+
declare const __propDef: {
|
|
21
|
+
props: {
|
|
22
|
+
link: any;
|
|
23
|
+
rel: any;
|
|
24
|
+
alt: any;
|
|
25
|
+
header?: string;
|
|
26
|
+
img?: string;
|
|
27
|
+
};
|
|
28
|
+
events: {
|
|
29
|
+
[evt: string]: CustomEvent<any>;
|
|
30
|
+
};
|
|
31
|
+
slots: {
|
|
32
|
+
default: {};
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
let isOpen = true;
|
|
3
|
+
const toggleDropdown = () => {
|
|
4
|
+
isOpen = !isOpen;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export let dropdownLinks = [
|
|
8
|
+
{
|
|
9
|
+
href: "/",
|
|
10
|
+
label: "label 1",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
href: "about",
|
|
14
|
+
label: "About",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
href: "profile",
|
|
18
|
+
label: "Profile",
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
export let img = {
|
|
22
|
+
src: "",
|
|
23
|
+
alt: "",
|
|
24
|
+
};
|
|
25
|
+
export let header = "Lorem ipsum";
|
|
26
|
+
export let content = "Proin efficitur purus felis.";
|
|
27
|
+
export let buttonColor = "blue";
|
|
28
|
+
export let link1 = { href: "", title: "", rel: "" };
|
|
29
|
+
export let link2 = { href: "", title: "", rel: "" };
|
|
30
|
+
let linkClass;
|
|
31
|
+
if (buttonColor === "blue") {
|
|
32
|
+
linkClass =
|
|
33
|
+
"inline-flex items-center py-2 px-4 text-sm font-medium text-center text-white bg-blue-700 rounded-lg hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
|
|
34
|
+
} else if (buttonColor === "gray") {
|
|
35
|
+
linkClass =
|
|
36
|
+
"inline-flex items-center py-2 px-4 text-sm font-medium text-center text-white bg-gray-700 rounded-lg hover:bg-gray-800 focus:ring-4 focus:ring-gray-300 dark:bg-gray-600 dark:hover:bg-gray-700 dark:focus:ring-gray-800";
|
|
37
|
+
} else if (buttonColor === "red") {
|
|
38
|
+
linkClass =
|
|
39
|
+
"inline-flex items-center py-2 px-4 text-sm font-medium text-center text-white bg-red-700 rounded-lg hover:bg-red-800 focus:ring-4 focus:ring-red-300 dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-800";
|
|
40
|
+
} else if (buttonColor === "yellow") {
|
|
41
|
+
linkClass =
|
|
42
|
+
"inline-flex items-center py-2 px-4 text-sm font-medium text-center text-white bg-yellow-700 rounded-lg hover:bg-yellow-800 focus:ring-4 focus:ring-yellow-300 dark:bg-yellow-600 dark:hover:bg-yellow-700 dark:focus:ring-yellow-800";
|
|
43
|
+
} else if (buttonColor === "green") {
|
|
44
|
+
linkClass =
|
|
45
|
+
"inline-flex items-center py-2 px-4 text-sm font-medium text-center text-white bg-green-700 rounded-lg hover:bg-green-800 focus:ring-4 focus:ring-green-300 dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800";
|
|
46
|
+
} else if (buttonColor === "indigo") {
|
|
47
|
+
linkClass =
|
|
48
|
+
"inline-flex items-center py-2 px-4 text-sm font-medium text-center text-white bg-indigo-700 rounded-lg hover:bg-indigo-800 focus:ring-4 focus:ring-indigo-300 dark:bg-indigo-600 dark:hover:bg-indigo-700 dark:focus:ring-indigo-800";
|
|
49
|
+
} else if (buttonColor === "purple") {
|
|
50
|
+
linkClass =
|
|
51
|
+
"inline-flex items-center py-2 px-4 text-sm font-medium text-center text-white bg-purple-700 rounded-lg hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 dark:bg-purple-600 dark:hover:bg-purple-700 dark:focus:ring-purple-800";
|
|
52
|
+
} else if (buttonColor === "pink") {
|
|
53
|
+
linkClass =
|
|
54
|
+
"inline-flex items-center py-2 px-4 text-sm font-medium text-center text-white bg-pink-700 rounded-lg hover:bg-pink-800 focus:ring-4 focus:ring-pink-300 dark:bg-pink-600 dark:hover:bg-pink-700 dark:focus:ring-pink-800";
|
|
55
|
+
} else {
|
|
56
|
+
linkClass =
|
|
57
|
+
"inline-flex items-center py-2 px-4 text-sm font-medium text-center text-white bg-blue-700 rounded-lg hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
|
|
58
|
+
}
|
|
59
|
+
</script>
|
|
60
|
+
|
|
61
|
+
<div
|
|
62
|
+
class="max-w-sm bg-white rounded-lg border border-gray-200 shadow-md dark:bg-gray-800 dark:border-gray-700"
|
|
63
|
+
>
|
|
64
|
+
<div class="flex justify-end px-4 pt-4">
|
|
65
|
+
<button
|
|
66
|
+
id="dropdownButton"
|
|
67
|
+
on:click={toggleDropdown}
|
|
68
|
+
class="sm:inline-block text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-1.5"
|
|
69
|
+
type="button"
|
|
70
|
+
>
|
|
71
|
+
<svg
|
|
72
|
+
class="w-6 h-6"
|
|
73
|
+
fill="currentColor"
|
|
74
|
+
viewBox="0 0 20 20"
|
|
75
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
76
|
+
><path
|
|
77
|
+
d="M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z"
|
|
78
|
+
/></svg
|
|
79
|
+
>
|
|
80
|
+
</button>
|
|
81
|
+
|
|
82
|
+
<div
|
|
83
|
+
id="dropdown"
|
|
84
|
+
class:hidden={isOpen}
|
|
85
|
+
class:block={!isOpen}
|
|
86
|
+
class="hidden z-10 w-44 text-base list-none bg-white rounded divide-y divide-gray-100 shadow dark:bg-gray-700 absolute"
|
|
87
|
+
>
|
|
88
|
+
<ul class="py-1" aria-labelledby="dropdownButton">
|
|
89
|
+
{#each dropdownLinks as { href, label, rel }}
|
|
90
|
+
<li>
|
|
91
|
+
<a
|
|
92
|
+
{href}
|
|
93
|
+
{rel}
|
|
94
|
+
class="block py-2 px-4 text-sm text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-200 dark:hover:text-white"
|
|
95
|
+
>{label}</a
|
|
96
|
+
>
|
|
97
|
+
</li>
|
|
98
|
+
{/each}
|
|
99
|
+
</ul>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
|
|
103
|
+
<div class="flex flex-col items-center pb-10">
|
|
104
|
+
<img
|
|
105
|
+
class="mb-3 w-24 h-24 rounded-full shadow-lg"
|
|
106
|
+
src={img.src}
|
|
107
|
+
alt={img.alt}
|
|
108
|
+
/>
|
|
109
|
+
<h3 class="mb-1 text-xl font-medium text-gray-900 dark:text-white">
|
|
110
|
+
{header}
|
|
111
|
+
</h3>
|
|
112
|
+
<span class="text-sm text-gray-500 dark:text-gray-400">{content}</span>
|
|
113
|
+
<div class="flex mt-4 space-x-3 lg:mt-6">
|
|
114
|
+
{#if link1.href}
|
|
115
|
+
<a href={link1.href} rel={link1.rel} class={linkClass}>{link1.title}</a>
|
|
116
|
+
{/if}
|
|
117
|
+
{#if link2.href}
|
|
118
|
+
<a
|
|
119
|
+
href={link2.href}
|
|
120
|
+
rel={link2.rel}
|
|
121
|
+
class="inline-flex items-center py-2 px-4 text-sm font-medium text-center text-gray-900 bg-white rounded-lg border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-blue-300 dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-700 dark:focus:ring-gray-800"
|
|
122
|
+
>{link2.title}</a
|
|
123
|
+
>
|
|
124
|
+
{/if}
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|