flowbite-svelte 0.9.4 → 0.9.5
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/accordions/AccordionItem.svelte +1 -1
- package/accordions/AccordionItem.svelte.d.ts +1 -1
- package/auth/Confirm.svelte +23 -0
- package/auth/Confirm.svelte.d.ts +19 -0
- package/auth/ForgotPassword.svelte +57 -0
- package/auth/ForgotPassword.svelte.d.ts +21 -0
- package/auth/Login.svelte +128 -0
- package/auth/Login.svelte.d.ts +25 -0
- package/auth/Register.svelte +116 -0
- package/auth/Register.svelte.d.ts +25 -0
- package/auth/Reset.svelte +57 -0
- package/auth/Reset.svelte.d.ts +22 -0
- package/buttons/Button.svelte +16 -15
- package/buttons/Button.svelte.d.ts +3 -2
- package/buttons/ColorShadowButton.svelte +2 -1
- package/buttons/ColorShadowButton.svelte.d.ts +2 -1
- package/buttons/GradientDuotoneButton.svelte +2 -1
- package/buttons/GradientDuotoneButton.svelte.d.ts +2 -1
- package/buttons/GradientMonochromeButton.svelte +2 -1
- package/buttons/GradientMonochromeButton.svelte.d.ts +2 -1
- package/buttons/GradientOutlineButton.svelte +2 -1
- package/buttons/GradientOutlineButton.svelte.d.ts +2 -1
- package/cards/Card.svelte +6 -7
- package/cards/Card.svelte.d.ts +5 -4
- package/cards/EcommerceCard.svelte +1 -1
- package/cards/EcommerceCard.svelte.d.ts +1 -1
- package/cards/HorizontalCard.svelte +3 -3
- package/cards/HorizontalCard.svelte.d.ts +3 -3
- package/cards/InteractiveCard.svelte.d.ts +2 -2
- package/cards/ListCard.svelte +42 -77
- package/cards/ListCard.svelte.d.ts +8 -40
- package/cards/SignInCard.svelte +114 -111
- package/cards/SignInCard.svelte.d.ts +9 -32
- package/dropdowns/DropdownDefault.svelte +84 -93
- package/dropdowns/DropdownDefault.svelte.d.ts +7 -35
- package/index.d.ts +6 -1
- package/index.js +14 -0
- package/list-group/List.svelte +42 -74
- package/list-group/List.svelte.d.ts +7 -23
- package/navbar/DropdownNavbar.svelte +16 -19
- package/navbar/DropdownNavbar.svelte.d.ts +7 -0
- package/navbar/Navbar.svelte +10 -13
- package/navbar/Navbar.svelte.d.ts +4 -0
- package/package.json +7 -2
- package/spinners/Spinner.svelte +1 -1
- package/spinners/Spinner.svelte.d.ts +1 -1
- package/spinners/SpinnerButton.svelte +1 -1
- package/types.d.ts +13 -5
|
@@ -1,117 +1,108 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
paddings =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const handleToggle = () => {
|
|
24
|
-
console.log("toggle clicked.");
|
|
1
|
+
<script >export let label = 'Dropdown button';
|
|
2
|
+
export let rounded = false;
|
|
3
|
+
export let textSize = 'text-sm';
|
|
4
|
+
export let color = 'blue';
|
|
5
|
+
let paddings;
|
|
6
|
+
if (textSize === 'text-xs') {
|
|
7
|
+
paddings = 'py-2 px-3';
|
|
8
|
+
}
|
|
9
|
+
else if (textSize === 'text-sm') {
|
|
10
|
+
paddings = 'py-2.5 px-5';
|
|
11
|
+
}
|
|
12
|
+
else if (textSize === 'text-base') {
|
|
13
|
+
paddings = 'py-3 px-6';
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
paddings = 'py-2.5 px-5';
|
|
17
|
+
}
|
|
18
|
+
let buttonClass;
|
|
19
|
+
let round = rounded ? 'rounded-full' : 'rounded-lg';
|
|
20
|
+
let toggleHidden = true;
|
|
21
|
+
const handleToggle = () => {
|
|
22
|
+
console.log('toggle clicked.');
|
|
25
23
|
toggleHidden = !toggleHidden;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
{
|
|
30
|
-
link: "/",
|
|
31
|
-
label: "Dashboard",
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
link: "/",
|
|
35
|
-
label: "Settings",
|
|
36
|
-
divider: true,
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
link: "/",
|
|
40
|
-
label: "Sign out",
|
|
41
|
-
},
|
|
42
|
-
];
|
|
43
|
-
if (color === "blue") {
|
|
24
|
+
};
|
|
25
|
+
export let items;
|
|
26
|
+
if (color === 'blue') {
|
|
44
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 mr-2 mb-2 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800`;
|
|
45
|
-
|
|
28
|
+
}
|
|
29
|
+
else if (color === 'blue-outline') {
|
|
46
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 mr-2 mb-2 dark:border-blue-500 dark:text-blue-500 dark:hover:text-white dark:hover:bg-blue-600 dark:focus:ring-blue-800`;
|
|
47
|
-
|
|
31
|
+
}
|
|
32
|
+
else if (color === 'dark') {
|
|
48
33
|
buttonClass =
|
|
49
|
-
|
|
50
|
-
|
|
34
|
+
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 mr-2 mb-2 dark:bg-gray-800 dark:hover:bg-gray-700 dark:focus:ring-gray-800 dark:border-gray-700`;
|
|
35
|
+
}
|
|
36
|
+
else if (color === 'dark-outline') {
|
|
51
37
|
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 mr-2 mb-2 dark:border-gray-600 dark:text-gray-400 dark:hover:text-white dark:hover:bg-gray-600 dark:focus:ring-gray-800`;
|
|
52
|
-
|
|
38
|
+
}
|
|
39
|
+
else if (color === 'light') {
|
|
53
40
|
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 mr-2 mb-2 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`;
|
|
54
|
-
|
|
41
|
+
}
|
|
42
|
+
else if (color === 'green') {
|
|
55
43
|
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 mr-2 mb-2 dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800`;
|
|
56
|
-
|
|
44
|
+
}
|
|
45
|
+
else if (color === 'green-outline') {
|
|
57
46
|
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 mr-2 mb-2 dark:border-green-500 dark:text-green-500 dark:hover:text-white dark:hover:bg-green-600 dark:focus:ring-green-800`;
|
|
58
|
-
|
|
47
|
+
}
|
|
48
|
+
else if (color === 'red') {
|
|
59
49
|
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 mr-2 mb-2 dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-900`;
|
|
60
|
-
|
|
50
|
+
}
|
|
51
|
+
else if (color === 'red-outline') {
|
|
61
52
|
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 mr-2 mb-2 dark:border-red-500 dark:text-red-500 dark:hover:text-white dark:hover:bg-red-600 dark:focus:ring-red-900`;
|
|
62
|
-
|
|
53
|
+
}
|
|
54
|
+
else if (color === 'yellow') {
|
|
63
55
|
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 mr-2 mb-2 dark:focus:ring-yellow-900`;
|
|
64
|
-
|
|
56
|
+
}
|
|
57
|
+
else if (color === 'yellow-outline') {
|
|
65
58
|
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 mr-2 mb-2 dark:border-yellow-300 dark:text-yellow-300 dark:hover:text-white dark:hover:bg-yellow-400 dark:focus:ring-yellow-900`;
|
|
66
|
-
|
|
59
|
+
}
|
|
60
|
+
else if (color === 'purple') {
|
|
67
61
|
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`;
|
|
68
|
-
|
|
62
|
+
}
|
|
63
|
+
else if (color === 'purple-outline') {
|
|
69
64
|
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 mr-2 mb-2 dark:border-purple-400 dark:text-purple-400 dark:hover:text-white dark:hover:bg-purple-500 dark:focus:ring-purple-900`;
|
|
70
|
-
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
71
67
|
// blue
|
|
72
68
|
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 mr-2 mb-2 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800`;
|
|
73
|
-
|
|
69
|
+
}
|
|
74
70
|
</script>
|
|
75
71
|
|
|
76
72
|
<button on:click={handleToggle} class={buttonClass} type="button"
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
stroke-linejoin="round"
|
|
87
|
-
stroke-width="2"
|
|
88
|
-
d="M19 9l-7 7-7-7"
|
|
89
|
-
/>
|
|
90
|
-
</svg>
|
|
73
|
+
>{label}
|
|
74
|
+
<svg
|
|
75
|
+
class="ml-2 w-4 h-4"
|
|
76
|
+
fill="none"
|
|
77
|
+
stroke="currentColor"
|
|
78
|
+
viewBox="0 0 24 24"
|
|
79
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
80
|
+
><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
|
|
81
|
+
</svg>
|
|
91
82
|
</button>
|
|
92
83
|
|
|
93
84
|
<div
|
|
94
|
-
|
|
95
|
-
|
|
85
|
+
class:hidden={toggleHidden}
|
|
86
|
+
class="hidden z-10 w-44 text-base list-none bg-white rounded divide-y divide-gray-100 shadow dark:bg-gray-700"
|
|
96
87
|
>
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
88
|
+
{#if $$slots.header}
|
|
89
|
+
<div class="py-3 px-4 text-gray-900 dark:text-white">
|
|
90
|
+
<slot name="header" />
|
|
91
|
+
</div>
|
|
92
|
+
{/if}
|
|
93
|
+
<ul class="py-1" aria-labelledby="dropdownButton">
|
|
94
|
+
{#each items as { href, name, divider }}
|
|
95
|
+
<li
|
|
96
|
+
class:border-b={divider}
|
|
97
|
+
class:border-gray-100={divider}
|
|
98
|
+
class:dark:border-gray-500={divider}
|
|
99
|
+
>
|
|
100
|
+
<a
|
|
101
|
+
{href}
|
|
102
|
+
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"
|
|
103
|
+
>{name}</a
|
|
104
|
+
>
|
|
105
|
+
</li>
|
|
106
|
+
{/each}
|
|
107
|
+
</ul>
|
|
117
108
|
</div>
|
|
@@ -1,45 +1,12 @@
|
|
|
1
|
-
/** @typedef {typeof __propDef.props} DropdownDefaultProps */
|
|
2
|
-
/** @typedef {typeof __propDef.events} DropdownDefaultEvents */
|
|
3
|
-
/** @typedef {typeof __propDef.slots} DropdownDefaultSlots */
|
|
4
|
-
export default class DropdownDefault extends SvelteComponentTyped<{
|
|
5
|
-
label?: string;
|
|
6
|
-
rounded?: boolean;
|
|
7
|
-
textSize?: string;
|
|
8
|
-
color?: string;
|
|
9
|
-
items?: ({
|
|
10
|
-
link: string;
|
|
11
|
-
label: string;
|
|
12
|
-
divider?: undefined;
|
|
13
|
-
} | {
|
|
14
|
-
link: string;
|
|
15
|
-
label: string;
|
|
16
|
-
divider: boolean;
|
|
17
|
-
})[];
|
|
18
|
-
}, {
|
|
19
|
-
[evt: string]: CustomEvent<any>;
|
|
20
|
-
}, {
|
|
21
|
-
header: {};
|
|
22
|
-
}> {
|
|
23
|
-
}
|
|
24
|
-
export type DropdownDefaultProps = typeof __propDef.props;
|
|
25
|
-
export type DropdownDefaultEvents = typeof __propDef.events;
|
|
26
|
-
export type DropdownDefaultSlots = typeof __propDef.slots;
|
|
27
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { DropdownType } from '../types';
|
|
28
3
|
declare const __propDef: {
|
|
29
4
|
props: {
|
|
30
5
|
label?: string;
|
|
31
6
|
rounded?: boolean;
|
|
32
7
|
textSize?: string;
|
|
33
8
|
color?: string;
|
|
34
|
-
items
|
|
35
|
-
link: string;
|
|
36
|
-
label: string;
|
|
37
|
-
divider?: undefined;
|
|
38
|
-
} | {
|
|
39
|
-
link: string;
|
|
40
|
-
label: string;
|
|
41
|
-
divider: boolean;
|
|
42
|
-
})[];
|
|
9
|
+
items: DropdownType[];
|
|
43
10
|
};
|
|
44
11
|
events: {
|
|
45
12
|
[evt: string]: CustomEvent<any>;
|
|
@@ -48,4 +15,9 @@ declare const __propDef: {
|
|
|
48
15
|
header: {};
|
|
49
16
|
};
|
|
50
17
|
};
|
|
18
|
+
export declare type DropdownDefaultProps = typeof __propDef.props;
|
|
19
|
+
export declare type DropdownDefaultEvents = typeof __propDef.events;
|
|
20
|
+
export declare type DropdownDefaultSlots = typeof __propDef.slots;
|
|
21
|
+
export default class DropdownDefault extends SvelteComponentTyped<DropdownDefaultProps, DropdownDefaultEvents, DropdownDefaultSlots> {
|
|
22
|
+
}
|
|
51
23
|
export {};
|
package/index.d.ts
CHANGED
|
@@ -3,6 +3,11 @@ import AccordionItem from "./accordions/AccordionItem.svelte";
|
|
|
3
3
|
import Alert from "./alerts/Alert.svelte";
|
|
4
4
|
import BorderAlert from "./alerts/BorderAlert.svelte";
|
|
5
5
|
import InfoAlert from "./alerts/InfoAlert.svelte";
|
|
6
|
+
import Confirm from "./auth/Confirm.svelte";
|
|
7
|
+
import ForgotPassword from "./auth/ForgotPassword.svelte";
|
|
8
|
+
import Login from "./auth/Login.svelte";
|
|
9
|
+
import Register from "./auth/Register.svelte";
|
|
10
|
+
import Reset from "./auth/Reset.svelte";
|
|
6
11
|
import Badge from "./badges/Badge.svelte";
|
|
7
12
|
import BadgeIcon from "./badges/BadgeIcon.svelte";
|
|
8
13
|
import BadgeLink from "./badges/BadgeLink.svelte";
|
|
@@ -43,4 +48,4 @@ import DefaultTabs from "./tabs/DefaultTabs.svelte";
|
|
|
43
48
|
import PillTabs from "./tabs/PillTabs.svelte";
|
|
44
49
|
import Tooltip from "./tooltips/Tooltip.svelte";
|
|
45
50
|
import LightTooltip from "./tooltips/LightTooltip.svelte";
|
|
46
|
-
export { Accordion, AccordionItem, Alert, BorderAlert, InfoAlert, Badge, BadgeIcon, BadgeLink, Button, ColorShadowButton, GradientDuotoneButton, GradientMonochromeButton, GradientOutlineButton, ButtonGroup, ButtonGroupOutline, Card, HorizontalCard, InteractiveCard, ListCard, CtaCard, EcommerceCard, SignInCard, DarkMode, Dropdown, SimpleFooter, LogoFooter, SocialMediaFooter, SitemapFooter, List, modalIdStore, ExtraLargeModal, LargeModal, MediumModal, ModalButton, SignInModal, SmallModal, Navbar, DropdownNavbar, Spinner, SpinnerButton, InteractiveTabs, DefaultTabs, PillTabs, Tooltip, LightTooltip };
|
|
51
|
+
export { Accordion, AccordionItem, Alert, BorderAlert, InfoAlert, Confirm, ForgotPassword, Login, Register, Reset, Badge, BadgeIcon, BadgeLink, Button, ColorShadowButton, GradientDuotoneButton, GradientMonochromeButton, GradientOutlineButton, ButtonGroup, ButtonGroupOutline, Card, HorizontalCard, InteractiveCard, ListCard, CtaCard, EcommerceCard, SignInCard, DarkMode, Dropdown, SimpleFooter, LogoFooter, SocialMediaFooter, SitemapFooter, List, modalIdStore, ExtraLargeModal, LargeModal, MediumModal, ModalButton, SignInModal, SmallModal, Navbar, DropdownNavbar, Spinner, SpinnerButton, InteractiveTabs, DefaultTabs, PillTabs, Tooltip, LightTooltip };
|
package/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// Accordion
|
|
1
2
|
import Accordion from './accordions/AccordionDefault.svelte'
|
|
2
3
|
import AccordionItem from './accordions/AccordionItem.svelte'
|
|
3
4
|
|
|
@@ -6,6 +7,13 @@ import Alert from './alerts/Alert.svelte'
|
|
|
6
7
|
import BorderAlert from './alerts/BorderAlert.svelte'
|
|
7
8
|
import InfoAlert from './alerts/InfoAlert.svelte'
|
|
8
9
|
|
|
10
|
+
// Auth
|
|
11
|
+
import Confirm from './auth/Confirm.svelte'
|
|
12
|
+
import ForgotPassword from './auth/ForgotPassword.svelte'
|
|
13
|
+
import Login from './auth/Login.svelte'
|
|
14
|
+
import Register from './auth/Register.svelte'
|
|
15
|
+
import Reset from './auth/Reset.svelte'
|
|
16
|
+
|
|
9
17
|
// Badges
|
|
10
18
|
import Badge from './badges/Badge.svelte'
|
|
11
19
|
import BadgeIcon from './badges/BadgeIcon.svelte'
|
|
@@ -80,6 +88,12 @@ export {
|
|
|
80
88
|
Alert,
|
|
81
89
|
BorderAlert,
|
|
82
90
|
InfoAlert,
|
|
91
|
+
// auth
|
|
92
|
+
Confirm,
|
|
93
|
+
ForgotPassword,
|
|
94
|
+
Login,
|
|
95
|
+
Register,
|
|
96
|
+
Reset,
|
|
83
97
|
// Badges
|
|
84
98
|
Badge,
|
|
85
99
|
BadgeIcon,
|
package/list-group/List.svelte
CHANGED
|
@@ -1,79 +1,47 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
link: "/profile",
|
|
7
|
-
rel: "",
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
title: "Settings",
|
|
11
|
-
icon: "",
|
|
12
|
-
link: "/settings",
|
|
13
|
-
rel: "",
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
title: "Messages",
|
|
17
|
-
icon: "",
|
|
18
|
-
link: "/message",
|
|
19
|
-
rel: "",
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
title: "Download",
|
|
23
|
-
icon: "",
|
|
24
|
-
link: "/download",
|
|
25
|
-
rel: "",
|
|
26
|
-
},
|
|
27
|
-
];
|
|
28
|
-
// let len = count($lists);
|
|
29
|
-
// top rounded-t-lg border-b border-gray-200
|
|
30
|
-
// middle border-b border-gray-200
|
|
31
|
-
// bottom rounded-b-lg
|
|
32
|
-
const common =
|
|
33
|
-
"inline-flex relative items-center py-2 px-4 w-full text-sm font-medium hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:border-gray-600 dark:hover:bg-gray-600 dark:hover:text-white dark:focus:ring-gray-500 dark:focus:text-white";
|
|
34
|
-
const topClass = `${common} rounded-t-lg border-b border-gray-200`;
|
|
35
|
-
const bottomClass = `${common} rounded-b-lg`;
|
|
36
|
-
const middleClass = `${common} border-b border-gray-200`;
|
|
37
|
-
let listClass;
|
|
1
|
+
<script >export let lists;
|
|
2
|
+
const common = 'inline-flex relative items-center py-2 px-4 w-full text-sm font-medium hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:border-gray-600 dark:hover:bg-gray-600 dark:hover:text-white dark:focus:ring-gray-500 dark:focus:text-white';
|
|
3
|
+
const topClass = `${common} rounded-t-lg border-b border-gray-200`;
|
|
4
|
+
const bottomClass = `${common} rounded-b-lg`;
|
|
5
|
+
const middleClass = `${common} border-b border-gray-200`;
|
|
38
6
|
</script>
|
|
39
7
|
|
|
40
8
|
<div
|
|
41
|
-
|
|
9
|
+
class="w-48 text-gray-900 bg-white rounded-lg border border-gray-200 dark:bg-gray-700 dark:border-gray-600 dark:text-white"
|
|
42
10
|
>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
11
|
+
{#each lists as { name, icon, href, rel }, i}
|
|
12
|
+
{#if i === 0}
|
|
13
|
+
<button type="button" class={topClass}>
|
|
14
|
+
{#if icon}
|
|
15
|
+
<svelte:component this={icon} className="h-4 w-4 mr-2" />
|
|
16
|
+
{/if}
|
|
17
|
+
{#if href}
|
|
18
|
+
<a {href} {rel}>{name}</a>
|
|
19
|
+
{:else}
|
|
20
|
+
{name} here
|
|
21
|
+
{/if}
|
|
22
|
+
</button>
|
|
23
|
+
{:else if i === lists.length - 1}
|
|
24
|
+
<button type="button" class={bottomClass}>
|
|
25
|
+
{#if icon}
|
|
26
|
+
<svelte:component this={icon} className="h-4 w-4 mr-2" />
|
|
27
|
+
{/if}
|
|
28
|
+
{#if href}
|
|
29
|
+
<a {href} {rel}>{name}</a>
|
|
30
|
+
{:else}
|
|
31
|
+
{name}
|
|
32
|
+
{/if}
|
|
33
|
+
</button>
|
|
34
|
+
{:else}
|
|
35
|
+
<button type="button" class={middleClass}>
|
|
36
|
+
{#if icon}
|
|
37
|
+
<svelte:component this={icon} className="h-4 w-4 mr-2" />
|
|
38
|
+
{/if}
|
|
39
|
+
{#if href}
|
|
40
|
+
<a {href} {rel}>{name}</a>
|
|
41
|
+
{:else}
|
|
42
|
+
{name}
|
|
43
|
+
{/if}
|
|
44
|
+
</button>
|
|
45
|
+
{/if}
|
|
46
|
+
{/each}
|
|
79
47
|
</div>
|
|
@@ -1,33 +1,17 @@
|
|
|
1
|
-
/** @typedef {typeof __propDef.props} ListProps */
|
|
2
|
-
/** @typedef {typeof __propDef.events} ListEvents */
|
|
3
|
-
/** @typedef {typeof __propDef.slots} ListSlots */
|
|
4
|
-
export default class List extends SvelteComponentTyped<{
|
|
5
|
-
lists?: {
|
|
6
|
-
title: string;
|
|
7
|
-
icon: string;
|
|
8
|
-
link: string;
|
|
9
|
-
rel: string;
|
|
10
|
-
}[];
|
|
11
|
-
}, {
|
|
12
|
-
[evt: string]: CustomEvent<any>;
|
|
13
|
-
}, {}> {
|
|
14
|
-
}
|
|
15
|
-
export type ListProps = typeof __propDef.props;
|
|
16
|
-
export type ListEvents = typeof __propDef.events;
|
|
17
|
-
export type ListSlots = typeof __propDef.slots;
|
|
18
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { ButtonGroupType } from '../types';
|
|
19
3
|
declare const __propDef: {
|
|
20
4
|
props: {
|
|
21
|
-
lists
|
|
22
|
-
title: string;
|
|
23
|
-
icon: string;
|
|
24
|
-
link: string;
|
|
25
|
-
rel: string;
|
|
26
|
-
}[];
|
|
5
|
+
lists: ButtonGroupType[];
|
|
27
6
|
};
|
|
28
7
|
events: {
|
|
29
8
|
[evt: string]: CustomEvent<any>;
|
|
30
9
|
};
|
|
31
10
|
slots: {};
|
|
32
11
|
};
|
|
12
|
+
export declare type ListProps = typeof __propDef.props;
|
|
13
|
+
export declare type ListEvents = typeof __propDef.events;
|
|
14
|
+
export declare type ListSlots = typeof __propDef.slots;
|
|
15
|
+
export default class List extends SvelteComponentTyped<ListProps, ListEvents, ListSlots> {
|
|
16
|
+
}
|
|
33
17
|
export {};
|
|
@@ -16,21 +16,26 @@ export let logo = '/images/mkdir-logo.png';
|
|
|
16
16
|
export let alt;
|
|
17
17
|
export let textsize = 'text-sm';
|
|
18
18
|
export let menus;
|
|
19
|
+
export let navClass = 'px-2 bg-white border-gray-200 dark:bg-gray-800 dark:border-gray-700';
|
|
20
|
+
const navDivClass = 'container flex flex-wrap justify-between items-center mx-auto';
|
|
21
|
+
export let spanClass = 'self-center text-lg font-semibold text-gray-900 whitespace-nowrap dark:text-white';
|
|
22
|
+
export let buttonClass = 'inline-flex justify-center items-center ml-3 text-gray-400 rounded-lg md:hidden hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-blue-300 dark:text-gray-400 dark:hover:text-white dark:focus:ring-gray-500';
|
|
23
|
+
export let dropdownDiv = 'z-10 w-44 text-base list-none bg-white rounded divide-y divide-gray-100 shadow dark:bg-gray-700 dark:divide-gray-600';
|
|
24
|
+
export let dropdownLinkClassWithChild = `block py-2 px-4 ${textsize} text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-400 dark:hover:text-white`;
|
|
25
|
+
export let dropdownLinkClassWithoutChild = `block py-2 pr-4 pl-3 text-gray-700 border-b border-gray-100 hover:bg-gray-50 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 dark:text-gray-400 dark:hover:text-white dark:border-gray-700 dark:hover:bg-gray-700 md:dark:hover:bg-transparent ${textsize}`;
|
|
26
|
+
export let liButtonClass = `flex justify-between items-center py-2 pr-4 pl-3 w-full ${textsize} font-medium text-gray-700 border-b border-gray-100 hover:bg-gray-50 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 md:w-auto dark:text-gray-400 dark:hover:text-white dark:focus:text-white dark:border-gray-700 dark:hover:bg-gray-700 md:dark:hover:bg-transparent`;
|
|
19
27
|
</script>
|
|
20
28
|
|
|
21
|
-
<nav class=
|
|
22
|
-
<div class=
|
|
29
|
+
<nav class={navClass}>
|
|
30
|
+
<div class={navDivClass}>
|
|
23
31
|
<a href="/" class="flex">
|
|
24
32
|
<img src={logo} {alt} />
|
|
25
|
-
<span
|
|
26
|
-
class="self-center text-lg font-semibold text-gray-900 whitespace-nowrap dark:text-white"
|
|
27
|
-
>{sitename}</span
|
|
28
|
-
>
|
|
33
|
+
<span class={spanClass}>{sitename}</span>
|
|
29
34
|
</a>
|
|
30
35
|
<button
|
|
31
36
|
on:click={handleClickbtn}
|
|
32
37
|
type="button"
|
|
33
|
-
class=
|
|
38
|
+
class={buttonClass}
|
|
34
39
|
aria-controls="mobile-menu-2"
|
|
35
40
|
aria-expanded="false"
|
|
36
41
|
>
|
|
@@ -63,9 +68,7 @@ export let menus;
|
|
|
63
68
|
{#each menus as { id, name, href, rel, child }}
|
|
64
69
|
{#if child}
|
|
65
70
|
<li>
|
|
66
|
-
<button
|
|
67
|
-
on:click={() => handleDropdown(id)}
|
|
68
|
-
class="flex justify-between items-center py-2 pr-4 pl-3 w-full {textsize} font-medium text-gray-700 border-b border-gray-100 hover:bg-gray-50 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 md:w-auto dark:text-gray-400 dark:hover:text-white dark:focus:text-white dark:border-gray-700 dark:hover:bg-gray-700 md:dark:hover:bg-transparent"
|
|
71
|
+
<button on:click={() => handleDropdown(id)} class={liButtonClass}
|
|
69
72
|
>{name}
|
|
70
73
|
<svg
|
|
71
74
|
class="ml-1 w-4 h-4"
|
|
@@ -84,18 +87,13 @@ export let menus;
|
|
|
84
87
|
<div
|
|
85
88
|
class:hidden
|
|
86
89
|
class:block
|
|
87
|
-
class=
|
|
90
|
+
class={dropdownDiv}
|
|
88
91
|
style="position: absolute; margin: 0px;"
|
|
89
92
|
>
|
|
90
93
|
<ul class="py-1" aria-labelledby="dropdownLargeButton">
|
|
91
94
|
{#each child as item}
|
|
92
95
|
<li>
|
|
93
|
-
<a
|
|
94
|
-
href={item.href}
|
|
95
|
-
{rel}
|
|
96
|
-
class="block py-2 px-4 text-{textsize} text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-400 dark:hover:text-white"
|
|
97
|
-
>{item.name}</a
|
|
98
|
-
>
|
|
96
|
+
<a href={item.href} {rel} class={dropdownLinkClassWithChild}>{item.name}</a>
|
|
99
97
|
</li>
|
|
100
98
|
{/each}
|
|
101
99
|
</ul>
|
|
@@ -108,8 +106,7 @@ export let menus;
|
|
|
108
106
|
class:active={$page.url.pathname === href}
|
|
109
107
|
{href}
|
|
110
108
|
{rel}
|
|
111
|
-
class=
|
|
112
|
-
>{name}</a
|
|
109
|
+
class={dropdownLinkClassWithoutChild}>{name}</a
|
|
113
110
|
>
|
|
114
111
|
</li>
|
|
115
112
|
{/if}
|
|
@@ -7,6 +7,13 @@ declare const __propDef: {
|
|
|
7
7
|
alt: string;
|
|
8
8
|
textsize?: string;
|
|
9
9
|
menus: NavbarType[];
|
|
10
|
+
navClass?: string;
|
|
11
|
+
spanClass?: string;
|
|
12
|
+
buttonClass?: string;
|
|
13
|
+
dropdownDiv?: string;
|
|
14
|
+
dropdownLinkClassWithChild?: string;
|
|
15
|
+
dropdownLinkClassWithoutChild?: string;
|
|
16
|
+
liButtonClass?: string;
|
|
10
17
|
};
|
|
11
18
|
events: {
|
|
12
19
|
[evt: string]: CustomEvent<any>;
|
package/navbar/Navbar.svelte
CHANGED
|
@@ -8,21 +8,23 @@ const handleClickbtn = () => {
|
|
|
8
8
|
barHidden = !barHidden;
|
|
9
9
|
};
|
|
10
10
|
export let menus;
|
|
11
|
+
export let navClass = 'px-2 bg-white border-gray-200 dark:bg-gray-800 dark:border-gray-700';
|
|
12
|
+
const navDivClass = 'container flex flex-wrap justify-between items-center mx-auto';
|
|
13
|
+
export let spanClass = 'self-center text-lg font-semibold text-gray-900 whitespace-nowrap dark:text-white';
|
|
14
|
+
export let buttonClass = 'inline-flex justify-center items-center ml-3 text-gray-400 rounded-lg md:hidden hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-blue-300 dark:text-gray-400 dark:hover:text-white dark:focus:ring-gray-500';
|
|
15
|
+
export let liLinkClass = `block py-2 pr-4 pl-3 text-gray-700 border-b border-gray-100 hover:bg-gray-50 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 dark:text-gray-400 dark:hover:text-white dark:border-gray-700 dark:hover:bg-gray-700 md:dark:hover:bg-transparent ${textsize}`;
|
|
11
16
|
</script>
|
|
12
17
|
|
|
13
|
-
<nav class=
|
|
14
|
-
<div class=
|
|
18
|
+
<nav class={navClass}>
|
|
19
|
+
<div class={navDivClass}>
|
|
15
20
|
<a href="/" class="flex">
|
|
16
21
|
<img src={logo} {alt} />
|
|
17
|
-
<span
|
|
18
|
-
class="self-center text-lg font-semibold text-gray-900 whitespace-nowrap dark:text-white"
|
|
19
|
-
>{sitename}</span
|
|
20
|
-
>
|
|
22
|
+
<span class={spanClass}>{sitename}</span>
|
|
21
23
|
</a>
|
|
22
24
|
<button
|
|
23
25
|
on:click={handleClickbtn}
|
|
24
26
|
type="button"
|
|
25
|
-
class=
|
|
27
|
+
class={buttonClass}
|
|
26
28
|
aria-controls="mobile-menu-2"
|
|
27
29
|
aria-expanded="false"
|
|
28
30
|
>
|
|
@@ -54,12 +56,7 @@ export let menus;
|
|
|
54
56
|
<ul class="flex flex-col mt-4 md:flex-row md:space-x-8 md:mt-0 md:text-sm md:font-medium">
|
|
55
57
|
{#each menus as { name, href, rel }}
|
|
56
58
|
<li>
|
|
57
|
-
<a
|
|
58
|
-
class:active={$page.url.pathname === href}
|
|
59
|
-
{href}
|
|
60
|
-
{rel}
|
|
61
|
-
class="block py-2 pr-4 pl-3 text-gray-700 border-b border-gray-100 hover:bg-gray-50 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 dark:text-gray-400 dark:hover:text-white dark:border-gray-700 dark:hover:bg-gray-700 md:dark:hover:bg-transparent {textsize}"
|
|
62
|
-
>{name}</a
|
|
59
|
+
<a class:active={$page.url.pathname === href} {href} {rel} class={liLinkClass}>{name}</a
|
|
63
60
|
>
|
|
64
61
|
</li>
|
|
65
62
|
{/each}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flowbite-svelte",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.5",
|
|
4
4
|
"description": "Flowbite components for Svelte",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Shinichi Okada",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"homepage": "https://github.com/shinokada/flowbite-svelte",
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@codewithshin/svelte-sidebar": "^0.2
|
|
14
|
+
"@codewithshin/svelte-sidebar": "^0.4.2",
|
|
15
15
|
"@codewithshin/svelte-simpleicons": "^0.2.2",
|
|
16
16
|
"@codewithshin/svelte-utterances": "^0.1.2",
|
|
17
17
|
"@playwright/test": "^1.19.1",
|
|
@@ -74,6 +74,11 @@
|
|
|
74
74
|
"./alerts/Alert.svelte": "./alerts/Alert.svelte",
|
|
75
75
|
"./alerts/BorderAlert.svelte": "./alerts/BorderAlert.svelte",
|
|
76
76
|
"./alerts/InfoAlert.svelte": "./alerts/InfoAlert.svelte",
|
|
77
|
+
"./auth/Confirm.svelte": "./auth/Confirm.svelte",
|
|
78
|
+
"./auth/ForgotPassword.svelte": "./auth/ForgotPassword.svelte",
|
|
79
|
+
"./auth/Login.svelte": "./auth/Login.svelte",
|
|
80
|
+
"./auth/Register.svelte": "./auth/Register.svelte",
|
|
81
|
+
"./auth/Reset.svelte": "./auth/Reset.svelte",
|
|
77
82
|
"./badges/Badge.svelte": "./badges/Badge.svelte",
|
|
78
83
|
"./badges/BadgeIcon.svelte": "./badges/BadgeIcon.svelte",
|
|
79
84
|
"./badges/BadgeLink.svelte": "./badges/BadgeLink.svelte",
|