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,210 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { page } from "$app/stores";
|
|
3
|
+
|
|
4
|
+
let hidden = true;
|
|
5
|
+
let block = false;
|
|
6
|
+
let activeDropdown = undefined;
|
|
7
|
+
const handleDropdown = (dropdown) => {
|
|
8
|
+
console.log("dropdown.id", dropdown.id);
|
|
9
|
+
hidden = !hidden;
|
|
10
|
+
block = !block;
|
|
11
|
+
activeDropdown = dropdown.id;
|
|
12
|
+
console.log("activeDropdown: ", activeDropdown);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
let barHidden = true;
|
|
16
|
+
const handleClickbtn = () => {
|
|
17
|
+
barHidden = !barHidden;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export let sitename = "Svelte Flow";
|
|
21
|
+
export let logo = "/images/mkdir-logo.png";
|
|
22
|
+
export let alt;
|
|
23
|
+
export let textsize = "text-sm";
|
|
24
|
+
export let menus = [
|
|
25
|
+
{
|
|
26
|
+
id: 1,
|
|
27
|
+
name: "Home",
|
|
28
|
+
link: "/",
|
|
29
|
+
rel: undefined,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 2,
|
|
33
|
+
name: "Alerts compoenents",
|
|
34
|
+
link: "/alerts",
|
|
35
|
+
rel: undefined,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: 3,
|
|
39
|
+
name: "Component 1",
|
|
40
|
+
link: "/",
|
|
41
|
+
rel: undefined,
|
|
42
|
+
child: [
|
|
43
|
+
{
|
|
44
|
+
id: 4,
|
|
45
|
+
name: "Modals compoenents",
|
|
46
|
+
link: "/modals",
|
|
47
|
+
rel: undefined,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: 5,
|
|
51
|
+
name: "Navbar compoenents",
|
|
52
|
+
link: "/navbar",
|
|
53
|
+
rel: undefined,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: 6,
|
|
57
|
+
name: "Tabs",
|
|
58
|
+
link: "/tabs",
|
|
59
|
+
rel: undefined,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 7,
|
|
65
|
+
name: "Component 2",
|
|
66
|
+
link: "/",
|
|
67
|
+
rel: undefined,
|
|
68
|
+
child: [
|
|
69
|
+
{
|
|
70
|
+
id: 8,
|
|
71
|
+
name: "Modals",
|
|
72
|
+
link: "/modals",
|
|
73
|
+
rel: undefined,
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 9,
|
|
77
|
+
name: "Navbar",
|
|
78
|
+
link: "/navbar",
|
|
79
|
+
rel: undefined,
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 10,
|
|
83
|
+
name: "Tabs",
|
|
84
|
+
link: "/tabs",
|
|
85
|
+
rel: undefined,
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: 11,
|
|
91
|
+
name: "List Group",
|
|
92
|
+
link: "/list-group",
|
|
93
|
+
rel: undefined,
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
</script>
|
|
97
|
+
|
|
98
|
+
<nav
|
|
99
|
+
class="px-2 bg-white border-gray-200 dark:bg-gray-800 dark:border-gray-700"
|
|
100
|
+
>
|
|
101
|
+
<div class="container flex flex-wrap justify-between items-center mx-auto">
|
|
102
|
+
<a href="/" class="flex">
|
|
103
|
+
<img src={logo} {alt} />
|
|
104
|
+
<span
|
|
105
|
+
class="self-center text-lg font-semibold text-gray-900 whitespace-nowrap dark:text-white"
|
|
106
|
+
>{sitename}</span
|
|
107
|
+
>
|
|
108
|
+
</a>
|
|
109
|
+
<button
|
|
110
|
+
on:click={handleClickbtn}
|
|
111
|
+
type="button"
|
|
112
|
+
class="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"
|
|
113
|
+
aria-controls="mobile-menu-2"
|
|
114
|
+
aria-expanded="false"
|
|
115
|
+
>
|
|
116
|
+
<span class="sr-only">Open main menu</span>
|
|
117
|
+
<svg
|
|
118
|
+
class="w-6 h-6"
|
|
119
|
+
fill="currentColor"
|
|
120
|
+
viewBox="0 0 20 20"
|
|
121
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
122
|
+
><path
|
|
123
|
+
fill-rule="evenodd"
|
|
124
|
+
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"
|
|
125
|
+
clip-rule="evenodd"
|
|
126
|
+
/></svg
|
|
127
|
+
>
|
|
128
|
+
<svg
|
|
129
|
+
class="hidden w-6 h-6"
|
|
130
|
+
fill="currentColor"
|
|
131
|
+
viewBox="0 0 20 20"
|
|
132
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
133
|
+
><path
|
|
134
|
+
fill-rule="evenodd"
|
|
135
|
+
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"
|
|
136
|
+
clip-rule="evenodd"
|
|
137
|
+
/></svg
|
|
138
|
+
>
|
|
139
|
+
</button>
|
|
140
|
+
<div
|
|
141
|
+
class="w-full md:block md:w-auto"
|
|
142
|
+
class:hidden={barHidden}
|
|
143
|
+
id="mobile-menu"
|
|
144
|
+
>
|
|
145
|
+
<ul
|
|
146
|
+
class="flex flex-col mt-4 md:flex-row md:space-x-8 md:mt-0 md:text-sm md:font-medium"
|
|
147
|
+
>
|
|
148
|
+
{#each menus as { id, name, link, rel, child }}
|
|
149
|
+
{#if child}
|
|
150
|
+
<li>
|
|
151
|
+
<button
|
|
152
|
+
on:click={handleDropdown({ id })}
|
|
153
|
+
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"
|
|
154
|
+
>{name}
|
|
155
|
+
<svg
|
|
156
|
+
class="ml-1 w-4 h-4"
|
|
157
|
+
fill="currentColor"
|
|
158
|
+
viewBox="0 0 20 20"
|
|
159
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
160
|
+
><path
|
|
161
|
+
fill-rule="evenodd"
|
|
162
|
+
d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
|
|
163
|
+
clip-rule="evenodd"
|
|
164
|
+
/></svg
|
|
165
|
+
></button
|
|
166
|
+
>
|
|
167
|
+
{#if activeDropdown === id}
|
|
168
|
+
<!-- Dropdown menu -->
|
|
169
|
+
<div
|
|
170
|
+
class:hidden
|
|
171
|
+
class:block
|
|
172
|
+
class="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"
|
|
173
|
+
style="position: absolute; margin: 0px;"
|
|
174
|
+
>
|
|
175
|
+
<ul class="py-1" aria-labelledby="dropdownLargeButton">
|
|
176
|
+
{#each child as item}
|
|
177
|
+
<li>
|
|
178
|
+
<a
|
|
179
|
+
href={item.link}
|
|
180
|
+
{rel}
|
|
181
|
+
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"
|
|
182
|
+
>{item.name}</a
|
|
183
|
+
>
|
|
184
|
+
</li>
|
|
185
|
+
{/each}
|
|
186
|
+
</ul>
|
|
187
|
+
</div>
|
|
188
|
+
{/if}
|
|
189
|
+
</li>
|
|
190
|
+
{:else}
|
|
191
|
+
<li>
|
|
192
|
+
<a
|
|
193
|
+
class:active={$page.url.pathname === link}
|
|
194
|
+
href={link}
|
|
195
|
+
{rel}
|
|
196
|
+
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}"
|
|
197
|
+
>{name}</a
|
|
198
|
+
>
|
|
199
|
+
</li>
|
|
200
|
+
{/if}
|
|
201
|
+
{/each}
|
|
202
|
+
</ul>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
</nav>
|
|
206
|
+
|
|
207
|
+
<style>
|
|
208
|
+
#mobile-menu .active {
|
|
209
|
+
color: #fab534;
|
|
210
|
+
}</style>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} DropdownNavbarProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} DropdownNavbarEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} DropdownNavbarSlots */
|
|
4
|
+
export default class DropdownNavbar extends SvelteComponentTyped<{
|
|
5
|
+
alt: any;
|
|
6
|
+
sitename?: string;
|
|
7
|
+
logo?: string;
|
|
8
|
+
textsize?: string;
|
|
9
|
+
menus?: ({
|
|
10
|
+
id: number;
|
|
11
|
+
name: string;
|
|
12
|
+
link: string;
|
|
13
|
+
rel: any;
|
|
14
|
+
child?: undefined;
|
|
15
|
+
} | {
|
|
16
|
+
id: number;
|
|
17
|
+
name: string;
|
|
18
|
+
link: string;
|
|
19
|
+
rel: any;
|
|
20
|
+
child: {
|
|
21
|
+
id: number;
|
|
22
|
+
name: string;
|
|
23
|
+
link: string;
|
|
24
|
+
rel: any;
|
|
25
|
+
}[];
|
|
26
|
+
})[];
|
|
27
|
+
}, {
|
|
28
|
+
[evt: string]: CustomEvent<any>;
|
|
29
|
+
}, {}> {
|
|
30
|
+
}
|
|
31
|
+
export type DropdownNavbarProps = typeof __propDef.props;
|
|
32
|
+
export type DropdownNavbarEvents = typeof __propDef.events;
|
|
33
|
+
export type DropdownNavbarSlots = typeof __propDef.slots;
|
|
34
|
+
import { SvelteComponentTyped } from "svelte";
|
|
35
|
+
declare const __propDef: {
|
|
36
|
+
props: {
|
|
37
|
+
alt: any;
|
|
38
|
+
sitename?: string;
|
|
39
|
+
logo?: string;
|
|
40
|
+
textsize?: string;
|
|
41
|
+
menus?: ({
|
|
42
|
+
id: number;
|
|
43
|
+
name: string;
|
|
44
|
+
link: string;
|
|
45
|
+
rel: any;
|
|
46
|
+
child?: undefined;
|
|
47
|
+
} | {
|
|
48
|
+
id: number;
|
|
49
|
+
name: string;
|
|
50
|
+
link: string;
|
|
51
|
+
rel: any;
|
|
52
|
+
child: {
|
|
53
|
+
id: number;
|
|
54
|
+
name: string;
|
|
55
|
+
link: string;
|
|
56
|
+
rel: any;
|
|
57
|
+
}[];
|
|
58
|
+
})[];
|
|
59
|
+
};
|
|
60
|
+
events: {
|
|
61
|
+
[evt: string]: CustomEvent<any>;
|
|
62
|
+
};
|
|
63
|
+
slots: {};
|
|
64
|
+
};
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { page } from "$app/stores";
|
|
3
|
+
|
|
4
|
+
export let sitename = "Svelte Flow";
|
|
5
|
+
export let logo = "/images/mkdir-logo.png";
|
|
6
|
+
export let alt = "Svelte Flow";
|
|
7
|
+
export let textsize = "text-sm";
|
|
8
|
+
export let menus = [
|
|
9
|
+
{
|
|
10
|
+
name: "Home",
|
|
11
|
+
link: "/",
|
|
12
|
+
rel: undefined,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: "About",
|
|
16
|
+
link: "/about",
|
|
17
|
+
rel: undefined,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: "Profile",
|
|
21
|
+
link: "/profile",
|
|
22
|
+
rel: undefined,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "GitHub",
|
|
26
|
+
link: "/#",
|
|
27
|
+
rel: undefined,
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
<nav
|
|
33
|
+
class="px-2 bg-white border-gray-200 dark:bg-gray-800 dark:border-gray-700"
|
|
34
|
+
>
|
|
35
|
+
<div class="container flex flex-wrap justify-between items-center mx-auto">
|
|
36
|
+
<a href="/" class="flex">
|
|
37
|
+
<img src={logo} {alt} />
|
|
38
|
+
<span
|
|
39
|
+
class="self-center text-lg font-semibold text-gray-900 whitespace-nowrap dark:text-white"
|
|
40
|
+
>{sitename}</span
|
|
41
|
+
>
|
|
42
|
+
</a>
|
|
43
|
+
<button
|
|
44
|
+
type="button"
|
|
45
|
+
class="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"
|
|
46
|
+
aria-controls="mobile-menu-2"
|
|
47
|
+
aria-expanded="false"
|
|
48
|
+
>
|
|
49
|
+
<span class="sr-only">Open main menu</span>
|
|
50
|
+
<svg
|
|
51
|
+
class="w-6 h-6"
|
|
52
|
+
fill="currentColor"
|
|
53
|
+
viewBox="0 0 20 20"
|
|
54
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
55
|
+
><path
|
|
56
|
+
fill-rule="evenodd"
|
|
57
|
+
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"
|
|
58
|
+
clip-rule="evenodd"
|
|
59
|
+
/></svg
|
|
60
|
+
>
|
|
61
|
+
<svg
|
|
62
|
+
class="hidden w-6 h-6"
|
|
63
|
+
fill="currentColor"
|
|
64
|
+
viewBox="0 0 20 20"
|
|
65
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
66
|
+
><path
|
|
67
|
+
fill-rule="evenodd"
|
|
68
|
+
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"
|
|
69
|
+
clip-rule="evenodd"
|
|
70
|
+
/></svg
|
|
71
|
+
>
|
|
72
|
+
</button>
|
|
73
|
+
<div class="hidden w-full md:block md:w-auto" id="mobile-menu">
|
|
74
|
+
<ul
|
|
75
|
+
class="flex flex-col mt-4 md:flex-row md:space-x-8 md:mt-0 md:text-sm md:font-medium"
|
|
76
|
+
>
|
|
77
|
+
{#each menus as { name, link, rel }}
|
|
78
|
+
<li>
|
|
79
|
+
<a
|
|
80
|
+
class:active={$page.url.pathname === link}
|
|
81
|
+
href={link}
|
|
82
|
+
{rel}
|
|
83
|
+
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}"
|
|
84
|
+
>{name}</a
|
|
85
|
+
>
|
|
86
|
+
</li>
|
|
87
|
+
{/each}
|
|
88
|
+
</ul>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
</nav>
|
|
92
|
+
|
|
93
|
+
<style>
|
|
94
|
+
#mobile-menu .active {
|
|
95
|
+
color: #fab534;
|
|
96
|
+
}</style>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} NavbarProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} NavbarEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} NavbarSlots */
|
|
4
|
+
export default class Navbar extends SvelteComponentTyped<{
|
|
5
|
+
alt?: string;
|
|
6
|
+
sitename?: string;
|
|
7
|
+
logo?: string;
|
|
8
|
+
textsize?: string;
|
|
9
|
+
menus?: {
|
|
10
|
+
name: string;
|
|
11
|
+
link: string;
|
|
12
|
+
rel: any;
|
|
13
|
+
}[];
|
|
14
|
+
}, {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
}, {}> {
|
|
17
|
+
}
|
|
18
|
+
export type NavbarProps = typeof __propDef.props;
|
|
19
|
+
export type NavbarEvents = typeof __propDef.events;
|
|
20
|
+
export type NavbarSlots = typeof __propDef.slots;
|
|
21
|
+
import { SvelteComponentTyped } from "svelte";
|
|
22
|
+
declare const __propDef: {
|
|
23
|
+
props: {
|
|
24
|
+
alt?: string;
|
|
25
|
+
sitename?: string;
|
|
26
|
+
logo?: string;
|
|
27
|
+
textsize?: string;
|
|
28
|
+
menus?: {
|
|
29
|
+
name: string;
|
|
30
|
+
link: string;
|
|
31
|
+
rel: any;
|
|
32
|
+
}[];
|
|
33
|
+
};
|
|
34
|
+
events: {
|
|
35
|
+
[evt: string]: CustomEvent<any>;
|
|
36
|
+
};
|
|
37
|
+
slots: {};
|
|
38
|
+
};
|
|
39
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "flowbite-svelte",
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "Flowbite components for Svelte",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Shinichi Okada",
|
|
7
|
+
"email": "connect@codewithshin.com",
|
|
8
|
+
"url": "https://blog.codewithshin.com"
|
|
9
|
+
},
|
|
10
|
+
"bugs": "https://github.com/shinokada/flowbite-svelte/issues",
|
|
11
|
+
"homepage": "https://github.com/shinokada/flowbite-svelte",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@sveltejs/adapter-auto": "next",
|
|
15
|
+
"@sveltejs/kit": "next",
|
|
16
|
+
"autoprefixer": "^10.4.2",
|
|
17
|
+
"postcss": "^8.4.5",
|
|
18
|
+
"postcss-load-config": "^3.1.1",
|
|
19
|
+
"svelte": "^3.44.0",
|
|
20
|
+
"svelte-preprocess": "^4.10.2",
|
|
21
|
+
"svelte2tsx": "^0.4.14",
|
|
22
|
+
"tailwindcss": "^3.0.12"
|
|
23
|
+
},
|
|
24
|
+
"type": "module",
|
|
25
|
+
"keywords": [
|
|
26
|
+
"svelte",
|
|
27
|
+
"sveltekit",
|
|
28
|
+
"tailwindcss",
|
|
29
|
+
"flowbite",
|
|
30
|
+
"ui",
|
|
31
|
+
"alert",
|
|
32
|
+
"buttons",
|
|
33
|
+
"modals",
|
|
34
|
+
"cards",
|
|
35
|
+
"navbar",
|
|
36
|
+
"tabs"
|
|
37
|
+
],
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "https://github.com/shinokada/flowbite-svelte"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@codewithshin/svelte-heroicons": "^1.1.0",
|
|
44
|
+
"@codewithshin/svelte-sidebar": "^0.1.5",
|
|
45
|
+
"flowbite": "^1.3.2",
|
|
46
|
+
"svelte-collapse": "^0.0.4"
|
|
47
|
+
},
|
|
48
|
+
"exports": {
|
|
49
|
+
"./package.json": "./package.json",
|
|
50
|
+
"./.DS_Store": "./.DS_Store",
|
|
51
|
+
"./accordions/AccordionDefault.svelte": "./accordions/AccordionDefault.svelte",
|
|
52
|
+
"./accordions/AccordionItem.svelte": "./accordions/AccordionItem.svelte",
|
|
53
|
+
"./alerts/Alert.svelte": "./alerts/Alert.svelte",
|
|
54
|
+
"./alerts/BorderAlert.svelte": "./alerts/BorderAlert.svelte",
|
|
55
|
+
"./alerts/InfoAlert.svelte": "./alerts/InfoAlert.svelte",
|
|
56
|
+
"./badges/Badge.svelte": "./badges/Badge.svelte",
|
|
57
|
+
"./badges/BadgeIcon.svelte": "./badges/BadgeIcon.svelte",
|
|
58
|
+
"./badges/BadgeLink.svelte": "./badges/BadgeLink.svelte",
|
|
59
|
+
"./buttongroups/ButtonGroup.svelte": "./buttongroups/ButtonGroup.svelte",
|
|
60
|
+
"./buttongroups/ButtonGroupOutline.svelte": "./buttongroups/ButtonGroupOutline.svelte",
|
|
61
|
+
"./buttons/Button.svelte": "./buttons/Button.svelte",
|
|
62
|
+
"./buttons/ColorShadowButton.svelte": "./buttons/ColorShadowButton.svelte",
|
|
63
|
+
"./buttons/GradientDuotoneButton.svelte": "./buttons/GradientDuotoneButton.svelte",
|
|
64
|
+
"./buttons/GradientMonochromeButton.svelte": "./buttons/GradientMonochromeButton.svelte",
|
|
65
|
+
"./buttons/GradientOutlineButton.svelte": "./buttons/GradientOutlineButton.svelte",
|
|
66
|
+
"./cards/Card.svelte": "./cards/Card.svelte",
|
|
67
|
+
"./cards/CtaCard.svelte": "./cards/CtaCard.svelte",
|
|
68
|
+
"./cards/EcommerceCard.svelte": "./cards/EcommerceCard.svelte",
|
|
69
|
+
"./cards/HorizontalCard.svelte": "./cards/HorizontalCard.svelte",
|
|
70
|
+
"./cards/InteractiveCard.svelte": "./cards/InteractiveCard.svelte",
|
|
71
|
+
"./cards/ListCard.svelte": "./cards/ListCard.svelte",
|
|
72
|
+
"./cards/SignInCard.svelte": "./cards/SignInCard.svelte",
|
|
73
|
+
"./darkmode/DarkMode.svelte": "./darkmode/DarkMode.svelte",
|
|
74
|
+
"./dropdowns/DropdownDefault.svelte": "./dropdowns/DropdownDefault.svelte",
|
|
75
|
+
"./footer/SimpleFooter.svelte": "./footer/SimpleFooter.svelte",
|
|
76
|
+
".": "./index.js",
|
|
77
|
+
"./list-group/List.svelte": "./list-group/List.svelte",
|
|
78
|
+
"./modals/ExtraLargeModal.svelte": "./modals/ExtraLargeModal.svelte",
|
|
79
|
+
"./modals/LargeModal.svelte": "./modals/LargeModal.svelte",
|
|
80
|
+
"./modals/MediumModal.svelte": "./modals/MediumModal.svelte",
|
|
81
|
+
"./modals/ModalButton.svelte": "./modals/ModalButton.svelte",
|
|
82
|
+
"./modals/SignInModal.svelte": "./modals/SignInModal.svelte",
|
|
83
|
+
"./modals/SmallModal.svelte": "./modals/SmallModal.svelte",
|
|
84
|
+
"./modals/modalStores": "./modals/modalStores.js",
|
|
85
|
+
"./navbar/DropdownNavbar.svelte": "./navbar/DropdownNavbar.svelte",
|
|
86
|
+
"./navbar/Navbar.svelte": "./navbar/Navbar.svelte",
|
|
87
|
+
"./tabs/DefaultTabs.svelte": "./tabs/DefaultTabs.svelte",
|
|
88
|
+
"./tabs/InteractiveTabs.svelte": "./tabs/InteractiveTabs.svelte",
|
|
89
|
+
"./tabs/PillTabs.svelte": "./tabs/PillTabs.svelte"
|
|
90
|
+
},
|
|
91
|
+
"svelte": "./index.js"
|
|
92
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
export let tabs = [
|
|
3
|
+
{
|
|
4
|
+
name: "Profile",
|
|
5
|
+
active: true,
|
|
6
|
+
link: "/#",
|
|
7
|
+
rel: undefined,
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
name: "Dashboard",
|
|
11
|
+
active: false,
|
|
12
|
+
link: "/#",
|
|
13
|
+
rel: undefined,
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "Settings",
|
|
17
|
+
active: false,
|
|
18
|
+
link: "/#",
|
|
19
|
+
rel: undefined,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "Contacts",
|
|
23
|
+
active: false,
|
|
24
|
+
link: "/#",
|
|
25
|
+
rel: undefined,
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<ul class="flex flex-wrap border-b border-gray-200 dark:border-gray-700">
|
|
31
|
+
{#each tabs as { name, active, link, rel }}
|
|
32
|
+
<li class="mr-2">
|
|
33
|
+
<a
|
|
34
|
+
href={link}
|
|
35
|
+
{rel}
|
|
36
|
+
aria-current="page"
|
|
37
|
+
class={active
|
|
38
|
+
? "inline-block py-4 px-4 text-sm font-medium text-center text-blue-600 bg-gray-100 rounded-t-lg active dark:bg-gray-800 dark:text-blue-500"
|
|
39
|
+
: " inline-block py-4 px-4 text-sm font-medium text-center text-gray-500 rounded-t-lg hover:text-gray-600 hover:bg-gray-50 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-300 "}
|
|
40
|
+
>{name}</a
|
|
41
|
+
>
|
|
42
|
+
</li>{/each}
|
|
43
|
+
</ul>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} DefaultTabsProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} DefaultTabsEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} DefaultTabsSlots */
|
|
4
|
+
export default class DefaultTabs extends SvelteComponentTyped<{
|
|
5
|
+
tabs?: {
|
|
6
|
+
name: string;
|
|
7
|
+
active: boolean;
|
|
8
|
+
link: string;
|
|
9
|
+
rel: any;
|
|
10
|
+
}[];
|
|
11
|
+
}, {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
}, {}> {
|
|
14
|
+
}
|
|
15
|
+
export type DefaultTabsProps = typeof __propDef.props;
|
|
16
|
+
export type DefaultTabsEvents = typeof __propDef.events;
|
|
17
|
+
export type DefaultTabsSlots = typeof __propDef.slots;
|
|
18
|
+
import { SvelteComponentTyped } from "svelte";
|
|
19
|
+
declare const __propDef: {
|
|
20
|
+
props: {
|
|
21
|
+
tabs?: {
|
|
22
|
+
name: string;
|
|
23
|
+
active: boolean;
|
|
24
|
+
link: string;
|
|
25
|
+
rel: any;
|
|
26
|
+
}[];
|
|
27
|
+
};
|
|
28
|
+
events: {
|
|
29
|
+
[evt: string]: CustomEvent<any>;
|
|
30
|
+
};
|
|
31
|
+
slots: {};
|
|
32
|
+
};
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
// import { handleTabs } from "./handleTabs";
|
|
3
|
+
export let tabId = "myTab";
|
|
4
|
+
|
|
5
|
+
export let activeTabValue = 1;
|
|
6
|
+
const handleClick = (tabValue) => () => (activeTabValue = tabValue);
|
|
7
|
+
|
|
8
|
+
export let tabs = [
|
|
9
|
+
{
|
|
10
|
+
lavel: "Profile",
|
|
11
|
+
id: 1,
|
|
12
|
+
content:
|
|
13
|
+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ",
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
lavel: "Dashboard",
|
|
17
|
+
id: 2,
|
|
18
|
+
content:
|
|
19
|
+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
lavel: "Settings",
|
|
23
|
+
id: 3,
|
|
24
|
+
content:
|
|
25
|
+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: "Contacts",
|
|
29
|
+
id: 4,
|
|
30
|
+
content:
|
|
31
|
+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ",
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<div class="mb-4 border-b border-gray-200 dark:border-gray-700">
|
|
37
|
+
<ul class="flex flex-wrap -mb-px" id={tabId} role="tablist">
|
|
38
|
+
{#each tabs as { label, selected, id }}
|
|
39
|
+
<li class="mr-2" role="presentation" class:active={activeTabValue === id}>
|
|
40
|
+
<button
|
|
41
|
+
on:click={handleClick(id)}
|
|
42
|
+
class="inline-block py-4 px-4 text-sm font-medium text-center text-gray-500 rounded-t-lg border-b-2 border-transparent hover:text-gray-600 hover:border-gray-300 dark:text-gray-400 dark:hover:text-gray-300"
|
|
43
|
+
id="{label}-tab"
|
|
44
|
+
type="button"
|
|
45
|
+
role="tab"
|
|
46
|
+
aria-controls={label}
|
|
47
|
+
aria-selected={selected}>{label}</button
|
|
48
|
+
>
|
|
49
|
+
</li>
|
|
50
|
+
{/each}
|
|
51
|
+
</ul>
|
|
52
|
+
</div>
|
|
53
|
+
<div id="{tabId}Content">
|
|
54
|
+
{#each tabs as { label, content, id }}
|
|
55
|
+
{#if activeTabValue === id}
|
|
56
|
+
<div
|
|
57
|
+
class="p-4 bg-gray-50 rounded-lg dark:bg-gray-800"
|
|
58
|
+
id={label}
|
|
59
|
+
role="tabpanel"
|
|
60
|
+
aria-labelledby="{label}-tab"
|
|
61
|
+
>
|
|
62
|
+
<p class="text-sm text-gray-500 dark:text-gray-400">
|
|
63
|
+
{content}
|
|
64
|
+
</p>
|
|
65
|
+
</div>
|
|
66
|
+
{/if}
|
|
67
|
+
{/each}
|
|
68
|
+
</div>
|