flowbite-svelte 0.13.8 → 0.14.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/CHANGELOG.md +37 -0
- package/README.md +20 -2
- package/breadcrumbs/Breadcrumb.svelte +49 -0
- package/breadcrumbs/Breadcrumb.svelte.d.ts +20 -0
- package/cards/Card.svelte +42 -24
- package/cards/Card.svelte.d.ts +0 -1
- package/carousels/Caption.svelte +2 -1
- package/carousels/Caption.svelte.d.ts +1 -0
- package/carousels/Carousel.svelte +94 -35
- package/carousels/Carousel.svelte.d.ts +5 -0
- package/carousels/CarouselTransition.svelte +155 -0
- package/carousels/CarouselTransition.svelte.d.ts +27 -0
- package/carousels/Indicator.svelte +2 -1
- package/carousels/Indicator.svelte.d.ts +1 -0
- package/carousels/Slide.svelte +2 -1
- package/carousels/Slide.svelte.d.ts +1 -0
- package/dropdowns/DropdownDefault.svelte +33 -28
- package/dropdowns/DropdownDefault.svelte.d.ts +3 -0
- package/dropdowns/ImgDropdown.svelte +31 -0
- package/dropdowns/ImgDropdown.svelte.d.ts +24 -0
- package/footer/SitemapFooter.svelte +29 -26
- package/footer/SitemapFooter.svelte.d.ts +1 -0
- package/footer/SocialMediaFooter.svelte +2 -1
- package/footer/SocialMediaFooter.svelte.d.ts +1 -0
- package/forms/Input.svelte +24 -2
- package/forms/Input.svelte.d.ts +1 -0
- package/forms/Textarea.svelte +2 -1
- package/forms/Textarea.svelte.d.ts +1 -0
- package/index.d.ts +3 -0
- package/index.js +7 -2
- package/navbar/Navbar.svelte +52 -26
- package/package.json +18 -15
- package/paginations/TableData.svelte +1 -1
- package/tables/TableSearch.svelte.d.ts +1 -1
- package/types.d.ts +99 -95
package/carousels/Slide.svelte
CHANGED
|
@@ -17,54 +17,57 @@ else {
|
|
|
17
17
|
}
|
|
18
18
|
let buttonClass;
|
|
19
19
|
let round = rounded ? 'rounded-full' : 'rounded-lg';
|
|
20
|
-
let
|
|
20
|
+
let dropdownToggleHidden = true;
|
|
21
21
|
const handleToggle = () => {
|
|
22
22
|
console.log('toggle clicked.');
|
|
23
|
-
|
|
23
|
+
dropdownToggleHidden = !dropdownToggleHidden;
|
|
24
24
|
};
|
|
25
25
|
export let items;
|
|
26
|
+
export let dropdownClass = 'hidden absolute -left-44 top-12 z-10 w-44 text-base list-none bg-white rounded divide-y divide-gray-100 shadow dark:bg-gray-700';
|
|
27
|
+
export let headerClass = 'py-3 px-4 text-gray-900 dark:text-white';
|
|
28
|
+
export let linkClass = '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';
|
|
26
29
|
if (color === 'blue') {
|
|
27
|
-
buttonClass = `inline-flex items-center text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium ${round} ${textSize} ${paddings} text-center
|
|
30
|
+
buttonClass = `inline-flex items-center text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium ${round} ${textSize} ${paddings} text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800`;
|
|
28
31
|
}
|
|
29
32
|
else if (color === 'blue-outline') {
|
|
30
|
-
buttonClass = `inline-flex items-center text-blue-700 hover:text-white border border-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg ${textSize} ${paddings} text-center
|
|
33
|
+
buttonClass = `inline-flex items-center text-blue-700 hover:text-white border border-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg ${textSize} ${paddings} text-center dark:border-blue-500 dark:text-blue-500 dark:hover:text-white dark:hover:bg-blue-600 dark:focus:ring-blue-800`;
|
|
31
34
|
}
|
|
32
35
|
else if (color === 'dark') {
|
|
33
|
-
buttonClass = buttonClass = `inline-flex items-center text-white bg-gray-800 hover:bg-gray-900 focus:ring-4 focus:ring-gray-300 font-medium ${round} ${textSize} ${paddings} text-center
|
|
36
|
+
buttonClass = buttonClass = `inline-flex items-center text-white bg-gray-800 hover:bg-gray-900 focus:ring-4 focus:ring-gray-300 font-medium ${round} ${textSize} ${paddings} text-center dark:bg-gray-800 dark:hover:bg-gray-700 dark:focus:ring-gray-800 dark:border-gray-700`;
|
|
34
37
|
}
|
|
35
38
|
else if (color === 'dark-outline') {
|
|
36
|
-
buttonClass = `inline-flex items-center text-gray-900 hover:text-white border border-gray-800 hover:bg-gray-900 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg ${textSize} ${paddings} text-center
|
|
39
|
+
buttonClass = `inline-flex items-center text-gray-900 hover:text-white border border-gray-800 hover:bg-gray-900 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg ${textSize} ${paddings} text-center dark:border-gray-600 dark:text-gray-400 dark:hover:text-white dark:hover:bg-gray-600 dark:focus:ring-gray-800`;
|
|
37
40
|
}
|
|
38
41
|
else if (color === 'light') {
|
|
39
|
-
buttonClass = `inline-flex items-center text-gray-900 bg-white border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-blue-300 font-medium ${round} ${textSize} ${paddings} text-center
|
|
42
|
+
buttonClass = `inline-flex items-center text-gray-900 bg-white border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-blue-300 font-medium ${round} ${textSize} ${paddings} text-center dark:bg-gray-600 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-700 dark:focus:ring-gray-800`;
|
|
40
43
|
}
|
|
41
44
|
else if (color === 'green') {
|
|
42
|
-
buttonClass = `inline-flex items-center text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300 font-medium ${round} ${textSize} ${paddings} text-center
|
|
45
|
+
buttonClass = `inline-flex items-center text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300 font-medium ${round} ${textSize} ${paddings} text-center dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800`;
|
|
43
46
|
}
|
|
44
47
|
else if (color === 'green-outline') {
|
|
45
|
-
buttonClass = `inline-flex items-center text-green-700 hover:text-white border border-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300 font-medium rounded-lg ${textSize} ${paddings} text-center
|
|
48
|
+
buttonClass = `inline-flex items-center text-green-700 hover:text-white border border-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300 font-medium rounded-lg ${textSize} ${paddings} text-center dark:border-green-500 dark:text-green-500 dark:hover:text-white dark:hover:bg-green-600 dark:focus:ring-green-800`;
|
|
46
49
|
}
|
|
47
50
|
else if (color === 'red') {
|
|
48
|
-
buttonClass = `inline-flex items-center text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300 font-medium ${round} ${textSize} ${paddings} text-center
|
|
51
|
+
buttonClass = `inline-flex items-center text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300 font-medium ${round} ${textSize} ${paddings} text-center dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-900`;
|
|
49
52
|
}
|
|
50
53
|
else if (color === 'red-outline') {
|
|
51
|
-
buttonClass = `inline-flex items-center text-red-700 hover:text-white border border-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300 font-medium rounded-lg ${textSize} ${paddings} text-center
|
|
54
|
+
buttonClass = `inline-flex items-center text-red-700 hover:text-white border border-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300 font-medium rounded-lg ${textSize} ${paddings} text-center dark:border-red-500 dark:text-red-500 dark:hover:text-white dark:hover:bg-red-600 dark:focus:ring-red-900`;
|
|
52
55
|
}
|
|
53
56
|
else if (color === 'yellow') {
|
|
54
|
-
buttonClass = `inline-flex items-center text-white bg-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300 font-medium ${round} ${textSize} ${paddings} text-center
|
|
57
|
+
buttonClass = `inline-flex items-center text-white bg-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300 font-medium ${round} ${textSize} ${paddings} text-center dark:focus:ring-yellow-900`;
|
|
55
58
|
}
|
|
56
59
|
else if (color === 'yellow-outline') {
|
|
57
|
-
buttonClass = `inline-flex items-center text-yellow-400 hover:text-white border border-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300 font-medium rounded-lg ${textSize} ${paddings} text-center
|
|
60
|
+
buttonClass = `inline-flex items-center text-yellow-400 hover:text-white border border-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300 font-medium rounded-lg ${textSize} ${paddings} text-center dark:border-yellow-300 dark:text-yellow-300 dark:hover:text-white dark:hover:bg-yellow-400 dark:focus:ring-yellow-900`;
|
|
58
61
|
}
|
|
59
62
|
else if (color === 'purple') {
|
|
60
63
|
buttonClass = `inline-flex items-center text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 font-medium ${round} ${textSize} ${paddings} text-center mb-2 dark:bg-purple-600 dark:hover:bg-purple-700 dark:focus:ring-purple-900`;
|
|
61
64
|
}
|
|
62
65
|
else if (color === 'purple-outline') {
|
|
63
|
-
buttonClass = `inline-flex items-center text-purple-700 hover:text-white border border-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 font-medium rounded-lg ${textSize} ${paddings} text-center
|
|
66
|
+
buttonClass = `inline-flex items-center text-purple-700 hover:text-white border border-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 font-medium rounded-lg ${textSize} ${paddings} text-center dark:border-purple-400 dark:text-purple-400 dark:hover:text-white dark:hover:bg-purple-500 dark:focus:ring-purple-900`;
|
|
64
67
|
}
|
|
65
68
|
else {
|
|
66
69
|
// blue
|
|
67
|
-
buttonClass = `inline-flex items-center text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium ${round} ${textSize} ${paddings} text-center
|
|
70
|
+
buttonClass = `inline-flex items-center text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium ${round} ${textSize} ${paddings} text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800`;
|
|
68
71
|
}
|
|
69
72
|
</script>
|
|
70
73
|
|
|
@@ -73,17 +76,19 @@ else {
|
|
|
73
76
|
<svg class="ml-2 w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /> </svg>
|
|
74
77
|
</button>
|
|
75
78
|
|
|
76
|
-
<div class
|
|
77
|
-
{
|
|
78
|
-
|
|
79
|
-
<
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
79
|
+
<div class="relative">
|
|
80
|
+
<div class:hidden={dropdownToggleHidden} class={dropdownClass}>
|
|
81
|
+
{#if $$slots.header}
|
|
82
|
+
<div class={headerClass}>
|
|
83
|
+
<slot name="header" />
|
|
84
|
+
</div>
|
|
85
|
+
{/if}
|
|
86
|
+
<ul class="py-1" aria-labelledby="dropdownButton">
|
|
87
|
+
{#each items as { href, name, divider }}
|
|
88
|
+
<li class:border-b={divider} class:border-gray-100={divider} class:dark:border-gray-500={divider}>
|
|
89
|
+
<a {href} class={linkClass}>{name}</a>
|
|
90
|
+
</li>
|
|
91
|
+
{/each}
|
|
92
|
+
</ul>
|
|
93
|
+
</div>
|
|
89
94
|
</div>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<script >let imgDropdownToggle = true;
|
|
2
|
+
const handleToggle = () => {
|
|
3
|
+
console.log('toggle clicked.');
|
|
4
|
+
imgDropdownToggle = !imgDropdownToggle;
|
|
5
|
+
};
|
|
6
|
+
export let items;
|
|
7
|
+
export let divClass = 'relative';
|
|
8
|
+
export let dropdownClass = 'hidden absolute -left-16 top-14 z-10 w-44 text-base list-none bg-white rounded divide-y divide-gray-100 shadow dark:bg-gray-700';
|
|
9
|
+
export let headerClass = 'py-3 px-4 text-gray-900 dark:text-white';
|
|
10
|
+
export let linkClass = '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';
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<div class={divClass}>
|
|
14
|
+
<div on:click={handleToggle}>
|
|
15
|
+
<slot />
|
|
16
|
+
</div>
|
|
17
|
+
<div class:hidden={imgDropdownToggle} class={dropdownClass}>
|
|
18
|
+
{#if $$slots.header}
|
|
19
|
+
<div class={headerClass}>
|
|
20
|
+
<slot name="header" />
|
|
21
|
+
</div>
|
|
22
|
+
{/if}
|
|
23
|
+
<ul class="py-1" aria-labelledby="dropdownButton">
|
|
24
|
+
{#each items as { href, name, divider }}
|
|
25
|
+
<li class:border-b={divider} class:border-gray-100={divider} class:dark:border-gray-500={divider}>
|
|
26
|
+
<a {href} class={linkClass}>{name}</a>
|
|
27
|
+
</li>
|
|
28
|
+
{/each}
|
|
29
|
+
</ul>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { DropdownType } from '../types';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
items: DropdownType[];
|
|
6
|
+
divClass?: string;
|
|
7
|
+
dropdownClass?: string;
|
|
8
|
+
headerClass?: string;
|
|
9
|
+
linkClass?: string;
|
|
10
|
+
};
|
|
11
|
+
events: {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
};
|
|
14
|
+
slots: {
|
|
15
|
+
default: {};
|
|
16
|
+
header: {};
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare type ImgDropdownProps = typeof __propDef.props;
|
|
20
|
+
export declare type ImgDropdownEvents = typeof __propDef.events;
|
|
21
|
+
export declare type ImgDropdownSlots = typeof __propDef.slots;
|
|
22
|
+
export default class ImgDropdown extends SvelteComponentTyped<ImgDropdownProps, ImgDropdownEvents, ImgDropdownSlots> {
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -5,6 +5,7 @@ export let footerClass = 'bg-white dark:bg-gray-800';
|
|
|
5
5
|
export let linksClass = 'grid grid-cols-2 gap-8 py-8 px-6 md:grid-cols-4';
|
|
6
6
|
export let parentClass = 'mb-6 text-sm font-semibold dark:text-gray-400 uppercase';
|
|
7
7
|
export let ulClass = 'text-gray-900 dark:text-gray-300';
|
|
8
|
+
export let liClass = 'mb-4';
|
|
8
9
|
export let linkClass = 'hover:underline';
|
|
9
10
|
export let copyrightDivClass = 'py-6 px-4 text-gray-900 dark:bg-gray-700 md:flex md:items-center md:justify-between';
|
|
10
11
|
export let copyrightClass = 'text-sm text-gray-900 dark:text-gray-300 sm:text-center';
|
|
@@ -16,30 +17,32 @@ export let allRightsReserved = 'All Rights Reserved.';
|
|
|
16
17
|
</script>
|
|
17
18
|
|
|
18
19
|
<footer class="{footerClass} {$$props.class}">
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
20
|
+
<div class={linksClass}>
|
|
21
|
+
{#each links as { parent, children }}
|
|
22
|
+
<div>
|
|
23
|
+
<h2 class={parentClass}>
|
|
24
|
+
{parent}
|
|
25
|
+
</h2>
|
|
26
|
+
<ul class={ulClass}>
|
|
27
|
+
{#each children as { name, href }}
|
|
28
|
+
<li class={liClass}>
|
|
29
|
+
<a {href} class={linkClass}>{name}</a>
|
|
30
|
+
</li>
|
|
31
|
+
{/each}
|
|
32
|
+
</ul>
|
|
33
|
+
</div>
|
|
34
|
+
{/each}
|
|
35
|
+
</div>
|
|
36
|
+
<div class={copyrightDivClass}>
|
|
37
|
+
<span class={copyrightClass}
|
|
38
|
+
>{copyrightYear} <a href={site.href}>{site.name}</a>. {allRightsReserved}
|
|
39
|
+
</span>
|
|
40
|
+
<div class={socialMediaDivClass}>
|
|
41
|
+
{#each socialMedia as { href, icon }}
|
|
42
|
+
<a {href} class={socialMediaLinkClass}>
|
|
43
|
+
<svelte:component this={icon} className={iconClass} />
|
|
44
|
+
</a>
|
|
45
|
+
{/each}
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
45
48
|
</footer>
|
|
@@ -10,6 +10,7 @@ export let imgClass = 'mr-3 h-8';
|
|
|
10
10
|
export let linksDivClass = 'grid grid-cols-2 gap-8 sm:gap-6 sm:grid-cols-3';
|
|
11
11
|
export let parentClass = 'mb-6 text-sm font-semibold text-gray-900 uppercase dark:text-white';
|
|
12
12
|
export let ulClass = 'text-gray-600 dark:text-gray-400';
|
|
13
|
+
export let liClass = 'mb-4';
|
|
13
14
|
export let linkClass = 'hover:underline';
|
|
14
15
|
export let hrClass = 'my-6 border-gray-200 sm:mx-auto dark:border-gray-700 lg:my-8';
|
|
15
16
|
export let copyrightDivClass = 'sm:flex sm:items-center sm:justify-between';
|
|
@@ -37,7 +38,7 @@ export let allRightsReserved = 'All Rights Reserved.';
|
|
|
37
38
|
</h2>
|
|
38
39
|
<ul class={ulClass}>
|
|
39
40
|
{#each children as { name, href }}
|
|
40
|
-
<li class=
|
|
41
|
+
<li class={liClass}>
|
|
41
42
|
<a {href} class={linkClass}>{name}</a>
|
|
42
43
|
</li>
|
|
43
44
|
{/each}
|
package/forms/Input.svelte
CHANGED
|
@@ -7,12 +7,23 @@ export let label = '';
|
|
|
7
7
|
export let required = false;
|
|
8
8
|
export let placeholder = '';
|
|
9
9
|
export let size = 'text-sm';
|
|
10
|
-
|
|
10
|
+
let padding = '';
|
|
11
|
+
if (size === 'sm:text-md') {
|
|
12
|
+
padding = 'p-4';
|
|
13
|
+
}
|
|
14
|
+
else if (size === 'text-sm') {
|
|
15
|
+
padding = 'p-2.5';
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
padding = 'p-2';
|
|
19
|
+
}
|
|
20
|
+
export let inputClass = `bg-gray-50 border border-gray-300 text-gray-900 ${size} rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full ${padding} dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500`;
|
|
11
21
|
export let labelClass = 'block mb-2 text-sm font-medium text-gray-900 dark:text-gray-300';
|
|
12
22
|
export let disabled = false;
|
|
13
23
|
export let readonly = false;
|
|
14
24
|
export let helper = '';
|
|
15
25
|
export let helperClass = 'mt-2 text-sm text-gray-500 dark:text-gray-400';
|
|
26
|
+
export let ref = null;
|
|
16
27
|
// you need to this to avoid 2-way binding
|
|
17
28
|
function setType(node) {
|
|
18
29
|
node.type = type;
|
|
@@ -21,7 +32,18 @@ function setType(node) {
|
|
|
21
32
|
|
|
22
33
|
<div class={$$props.class}>
|
|
23
34
|
<label for={id} class={labelClass}>{label}</label>
|
|
24
|
-
<input
|
|
35
|
+
<input
|
|
36
|
+
bind:value
|
|
37
|
+
bind:this={ref}
|
|
38
|
+
{name}
|
|
39
|
+
use:setType
|
|
40
|
+
{id}
|
|
41
|
+
class={inputClass}
|
|
42
|
+
{placeholder}
|
|
43
|
+
{required}
|
|
44
|
+
{disabled}
|
|
45
|
+
{readonly}
|
|
46
|
+
/>
|
|
25
47
|
{#if helper}
|
|
26
48
|
<p class={helperClass}>{@html helper}</p>
|
|
27
49
|
{/if}
|
package/forms/Input.svelte.d.ts
CHANGED
package/forms/Textarea.svelte
CHANGED
|
@@ -4,6 +4,7 @@ export let id = generateId();
|
|
|
4
4
|
export let name = 'message';
|
|
5
5
|
export let label = 'Your message';
|
|
6
6
|
export let rows = 4;
|
|
7
|
+
export let ref = null;
|
|
7
8
|
export let placeholder = 'Leave a comment...';
|
|
8
9
|
export let labelClass = 'block mb-2 text-sm font-medium text-gray-900 dark:text-gray-400';
|
|
9
10
|
export let textareaClass = 'block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500';
|
|
@@ -12,7 +13,7 @@ export let helperClass = 'mt-2 text-sm text-gray-500 dark:text-gray-400';
|
|
|
12
13
|
</script>
|
|
13
14
|
|
|
14
15
|
<label for={id} class={labelClass}>{label}</label>
|
|
15
|
-
<textarea bind:value {id} {name} {rows} class={textareaClass} {placeholder} />
|
|
16
|
+
<textarea bind:value bind:this={ref} {id} {name} {rows} class={textareaClass} {placeholder} />
|
|
16
17
|
{#if helper}
|
|
17
18
|
<p class={helperClass}>{@html helper}</p>
|
|
18
19
|
{/if}
|
package/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export { default as Avatar } from "./avatar/Avatar.svelte";
|
|
|
12
12
|
export { default as Badge } from "./badges/Badge.svelte";
|
|
13
13
|
export { default as BadgeIcon } from "./badges/BadgeIcon.svelte";
|
|
14
14
|
export { default as BadgeLink } from "./badges/BadgeLink.svelte";
|
|
15
|
+
export { default as Breadcrumb } from "./breadcrumbs/Breadcrumb.svelte";
|
|
15
16
|
export { default as Button } from "./buttons/Button.svelte";
|
|
16
17
|
export { default as ColorShadowButton } from "./buttons/ColorShadowButton.svelte";
|
|
17
18
|
export { default as GradientDuotoneButton } from "./buttons/GradientDuotoneButton.svelte";
|
|
@@ -27,8 +28,10 @@ export { default as CtaCard } from "./cards/CtaCard.svelte";
|
|
|
27
28
|
export { default as EcommerceCard } from "./cards/EcommerceCard.svelte";
|
|
28
29
|
export { default as SignInCard } from "./cards/SignInCard.svelte";
|
|
29
30
|
export { default as Carousel } from "./carousels/Carousel.svelte";
|
|
31
|
+
export { default as CarouselTransition } from "./carousels/CarouselTransition.svelte";
|
|
30
32
|
export { default as DarkMode } from "./darkmode/DarkMode.svelte";
|
|
31
33
|
export { default as Dropdown } from "./dropdowns/DropdownDefault.svelte";
|
|
34
|
+
export { default as ImgDropdown } from "./dropdowns/ImgDropdown.svelte";
|
|
32
35
|
export { default as SimpleFooter } from "./footer/SimpleFooter.svelte";
|
|
33
36
|
export { default as LogoFooter } from "./footer/LogoFooter.svelte";
|
|
34
37
|
export { default as SocialMediaFooter } from "./footer/SocialMediaFooter.svelte";
|
package/index.js
CHANGED
|
@@ -20,7 +20,10 @@ export { default as Avatar } from './avatar/Avatar.svelte'
|
|
|
20
20
|
// Badges
|
|
21
21
|
export { default as Badge } from'./badges/Badge.svelte'
|
|
22
22
|
export { default as BadgeIcon } from'./badges/BadgeIcon.svelte'
|
|
23
|
-
export { default as BadgeLink } from'./badges/BadgeLink.svelte'
|
|
23
|
+
export { default as BadgeLink } from './badges/BadgeLink.svelte'
|
|
24
|
+
|
|
25
|
+
// Breadcrumbs
|
|
26
|
+
export { default as Breadcrumb } from'./breadcrumbs/Breadcrumb.svelte'
|
|
24
27
|
|
|
25
28
|
// Buttons
|
|
26
29
|
export { default as Button } from'./buttons/Button.svelte'
|
|
@@ -44,12 +47,14 @@ export { default as SignInCard } from'./cards/SignInCard.svelte'
|
|
|
44
47
|
|
|
45
48
|
// Carousels
|
|
46
49
|
export { default as Carousel } from './carousels/Carousel.svelte'
|
|
50
|
+
export { default as CarouselTransition } from './carousels/CarouselTransition.svelte'
|
|
47
51
|
|
|
48
52
|
// Dark mode
|
|
49
53
|
export { default as DarkMode } from'./darkmode/DarkMode.svelte'
|
|
50
54
|
|
|
51
55
|
// Dropdown
|
|
52
|
-
export { default as Dropdown } from'./dropdowns/DropdownDefault.svelte'
|
|
56
|
+
export { default as Dropdown } from './dropdowns/DropdownDefault.svelte'
|
|
57
|
+
export { default as ImgDropdown } from './dropdowns/ImgDropdown.svelte'
|
|
53
58
|
|
|
54
59
|
// Footers
|
|
55
60
|
export { default as SimpleFooter } from'./footer/SimpleFooter.svelte'
|
package/navbar/Navbar.svelte
CHANGED
|
@@ -22,32 +22,58 @@ export let liLinkClass = `block py-2 pr-4 pl-3 text-gray-700 border-b border-gr
|
|
|
22
22
|
</script>
|
|
23
23
|
|
|
24
24
|
<nav class={navClass}>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
25
|
+
<div class={navDivClass}>
|
|
26
|
+
<a href="/" class="flex">
|
|
27
|
+
<img src={logo} {alt} />
|
|
28
|
+
<span class={spanClass}>{siteName}</span>
|
|
29
|
+
</a>
|
|
30
|
+
<button
|
|
31
|
+
on:click={handleClickbtn}
|
|
32
|
+
type="button"
|
|
33
|
+
class={buttonClass}
|
|
34
|
+
aria-controls="mobile-menu-2"
|
|
35
|
+
aria-expanded="false"
|
|
36
|
+
>
|
|
37
|
+
<span class="sr-only">Open main menu</span>
|
|
38
|
+
<svg
|
|
39
|
+
class="w-6 h-6"
|
|
40
|
+
fill="currentColor"
|
|
41
|
+
viewBox="0 0 20 20"
|
|
42
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
43
|
+
><path
|
|
44
|
+
fill-rule="evenodd"
|
|
45
|
+
d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
|
|
46
|
+
clip-rule="evenodd"
|
|
47
|
+
/></svg
|
|
48
|
+
>
|
|
49
|
+
<svg
|
|
50
|
+
class="hidden w-6 h-6"
|
|
51
|
+
fill="currentColor"
|
|
52
|
+
viewBox="0 0 20 20"
|
|
53
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
54
|
+
><path
|
|
55
|
+
fill-rule="evenodd"
|
|
56
|
+
d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
|
|
57
|
+
clip-rule="evenodd"
|
|
58
|
+
/></svg
|
|
59
|
+
>
|
|
60
|
+
</button>
|
|
61
|
+
<div class:hidden={barHidden} class="hidden w-full md:block md:w-auto" id="mobile-menu">
|
|
62
|
+
<ul class="flex flex-col mt-4 md:flex-row md:space-x-8 md:mt-0 md:text-sm md:font-medium">
|
|
63
|
+
{#each menus as { name, href, rel }}
|
|
64
|
+
<li>
|
|
65
|
+
<a class:active={pathname === href} {href} {rel} class={liLinkClass}>{name}</a>
|
|
66
|
+
</li>
|
|
67
|
+
{/each}
|
|
68
|
+
</ul>
|
|
69
|
+
{#if user}
|
|
70
|
+
<slot name="user" />
|
|
71
|
+
{/if}
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
48
74
|
</nav>
|
|
49
75
|
|
|
50
76
|
<style>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
77
|
+
#mobile-menu .active {
|
|
78
|
+
color: #fab534;
|
|
79
|
+
}</style>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flowbite-svelte",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"description": "Flowbite components for Svelte",
|
|
5
5
|
"main": "./package/index.js",
|
|
6
6
|
"author": {
|
|
@@ -12,29 +12,33 @@
|
|
|
12
12
|
"homepage": "https://github.com/shinokada/flowbite-svelte",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"@codewithshin/svelte-
|
|
15
|
+
"@codewithshin/svelte-heroicons": "^1.1.3",
|
|
16
|
+
"@codewithshin/svelte-sidebar": "^0.4.8",
|
|
16
17
|
"@codewithshin/svelte-simpleicons": "^0.2.2",
|
|
17
|
-
"@codewithshin/svelte-utterances": "^0.
|
|
18
|
-
"@playwright/test": "^1.
|
|
18
|
+
"@codewithshin/svelte-utterances": "^0.2.2",
|
|
19
|
+
"@playwright/test": "^1.21.0",
|
|
19
20
|
"@sveltejs/adapter-auto": "next",
|
|
20
21
|
"@sveltejs/kit": "next",
|
|
21
22
|
"@typescript-eslint/eslint-plugin": "^5.10.1",
|
|
22
23
|
"@typescript-eslint/parser": "^5.10.1",
|
|
23
|
-
"autoprefixer": "^10.4.
|
|
24
|
+
"autoprefixer": "^10.4.4",
|
|
24
25
|
"eslint": "^7.32.0",
|
|
25
26
|
"eslint-config-prettier": "^8.3.0",
|
|
26
27
|
"eslint-plugin-svelte3": "^3.2.1",
|
|
28
|
+
"flowbite": "^1.4.1",
|
|
29
|
+
"flowbite-svelte": "^0.13.8",
|
|
27
30
|
"mdsvex": "^0.10.5",
|
|
28
|
-
"postcss": "^8.4.
|
|
29
|
-
"postcss-load-config": "^3.1.
|
|
31
|
+
"postcss": "^8.4.12",
|
|
32
|
+
"postcss-load-config": "^3.1.4",
|
|
30
33
|
"prettier": "^2.5.1",
|
|
31
34
|
"prettier-plugin-svelte": "^2.5.0",
|
|
32
35
|
"prism-themes": "^1.9.0",
|
|
33
36
|
"svelte": "^3.44.0",
|
|
34
37
|
"svelte-check": "^2.2.6",
|
|
35
|
-
"svelte-
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
+
"svelte-collapse": "^0.0.4",
|
|
39
|
+
"svelte-preprocess": "^4.10.5",
|
|
40
|
+
"svelte2tsx": "^0.5.9",
|
|
41
|
+
"tailwindcss": "^3.0.23",
|
|
38
42
|
"tslib": "^2.3.1",
|
|
39
43
|
"typescript": "~4.6.2"
|
|
40
44
|
},
|
|
@@ -72,13 +76,9 @@
|
|
|
72
76
|
"type": "git",
|
|
73
77
|
"url": "https://github.com/shinokada/flowbite-svelte"
|
|
74
78
|
},
|
|
75
|
-
"dependencies": {
|
|
76
|
-
"@codewithshin/svelte-heroicons": "^1.1.3",
|
|
77
|
-
"flowbite": "^1.3.4",
|
|
78
|
-
"svelte-collapse": "^0.0.4"
|
|
79
|
-
},
|
|
80
79
|
"exports": {
|
|
81
80
|
"./package.json": "./package.json",
|
|
81
|
+
"./.DS_Store": "./.DS_Store",
|
|
82
82
|
"./accordions/AccordionDefault.svelte": "./accordions/AccordionDefault.svelte",
|
|
83
83
|
"./accordions/AccordionItem.svelte": "./accordions/AccordionItem.svelte",
|
|
84
84
|
"./alerts/Alert.svelte": "./alerts/Alert.svelte",
|
|
@@ -94,6 +94,7 @@
|
|
|
94
94
|
"./badges/Badge.svelte": "./badges/Badge.svelte",
|
|
95
95
|
"./badges/BadgeIcon.svelte": "./badges/BadgeIcon.svelte",
|
|
96
96
|
"./badges/BadgeLink.svelte": "./badges/BadgeLink.svelte",
|
|
97
|
+
"./breadcrumbs/Breadcrumb.svelte": "./breadcrumbs/Breadcrumb.svelte",
|
|
97
98
|
"./buttongroups/ButtonGroup.svelte": "./buttongroups/ButtonGroup.svelte",
|
|
98
99
|
"./buttongroups/ButtonGroupOutline.svelte": "./buttongroups/ButtonGroupOutline.svelte",
|
|
99
100
|
"./buttons/Button.svelte": "./buttons/Button.svelte",
|
|
@@ -110,11 +111,13 @@
|
|
|
110
111
|
"./cards/SignInCard.svelte": "./cards/SignInCard.svelte",
|
|
111
112
|
"./carousels/Caption.svelte": "./carousels/Caption.svelte",
|
|
112
113
|
"./carousels/Carousel.svelte": "./carousels/Carousel.svelte",
|
|
114
|
+
"./carousels/CarouselTransition.svelte": "./carousels/CarouselTransition.svelte",
|
|
113
115
|
"./carousels/Indicator.svelte": "./carousels/Indicator.svelte",
|
|
114
116
|
"./carousels/Slide.svelte": "./carousels/Slide.svelte",
|
|
115
117
|
"./carousels/Thumbnail.svelte": "./carousels/Thumbnail.svelte",
|
|
116
118
|
"./darkmode/DarkMode.svelte": "./darkmode/DarkMode.svelte",
|
|
117
119
|
"./dropdowns/DropdownDefault.svelte": "./dropdowns/DropdownDefault.svelte",
|
|
120
|
+
"./dropdowns/ImgDropdown.svelte": "./dropdowns/ImgDropdown.svelte",
|
|
118
121
|
"./footer/LogoFooter.svelte": "./footer/LogoFooter.svelte",
|
|
119
122
|
"./footer/SimpleFooter.svelte": "./footer/SimpleFooter.svelte",
|
|
120
123
|
"./footer/SitemapFooter.svelte": "./footer/SitemapFooter.svelte",
|
|
@@ -21,7 +21,7 @@ export let btnNextClass = 'py-2 px-4 text-sm font-medium text-white bg-gray-800
|
|
|
21
21
|
</span>
|
|
22
22
|
{/if}
|
|
23
23
|
<!-- Buttons -->
|
|
24
|
-
<div class="inline-flex mt-2
|
|
24
|
+
<div class="inline-flex mt-2">
|
|
25
25
|
<button on:click={previous} class={btnPreClass}> Prev </button>
|
|
26
26
|
<button on:click={next} class={btnNextClass}> Next </button>
|
|
27
27
|
</div>
|