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.
Files changed (80) hide show
  1. package/README.md +33 -0
  2. package/accordions/AccordionDefault.svelte +26 -0
  3. package/accordions/AccordionDefault.svelte.d.ts +35 -0
  4. package/accordions/AccordionItem.svelte +44 -0
  5. package/accordions/AccordionItem.svelte.d.ts +29 -0
  6. package/alerts/Alert.svelte +111 -0
  7. package/alerts/Alert.svelte.d.ts +31 -0
  8. package/alerts/BorderAlert.svelte +118 -0
  9. package/alerts/BorderAlert.svelte.d.ts +31 -0
  10. package/alerts/InfoAlert.svelte +125 -0
  11. package/alerts/InfoAlert.svelte.d.ts +35 -0
  12. package/badges/Badge.svelte +28 -0
  13. package/badges/Badge.svelte.d.ts +27 -0
  14. package/badges/BadgeIcon.svelte +31 -0
  15. package/badges/BadgeIcon.svelte.d.ts +31 -0
  16. package/badges/BadgeLink.svelte +29 -0
  17. package/badges/BadgeLink.svelte.d.ts +29 -0
  18. package/buttongroups/ButtonGroup.svelte +68 -0
  19. package/buttongroups/ButtonGroup.svelte.d.ts +33 -0
  20. package/buttongroups/ButtonGroupOutline.svelte +70 -0
  21. package/buttongroups/ButtonGroupOutline.svelte.d.ts +33 -0
  22. package/buttons/Button.svelte +60 -0
  23. package/buttons/Button.svelte.d.ts +33 -0
  24. package/buttons/ColorShadowButton.svelte +35 -0
  25. package/buttons/ColorShadowButton.svelte.d.ts +31 -0
  26. package/buttons/GradientDuotoneButton.svelte +33 -0
  27. package/buttons/GradientDuotoneButton.svelte.d.ts +31 -0
  28. package/buttons/GradientMonochromeButton.svelte +35 -0
  29. package/buttons/GradientMonochromeButton.svelte.d.ts +31 -0
  30. package/buttons/GradientOutlineButton.svelte +52 -0
  31. package/buttons/GradientOutlineButton.svelte.d.ts +31 -0
  32. package/cards/Card.svelte +86 -0
  33. package/cards/Card.svelte.d.ts +39 -0
  34. package/cards/CtaCard.svelte +63 -0
  35. package/cards/CtaCard.svelte.d.ts +45 -0
  36. package/cards/EcommerceCard.svelte +98 -0
  37. package/cards/EcommerceCard.svelte.d.ts +41 -0
  38. package/cards/HorizontalCard.svelte +29 -0
  39. package/cards/HorizontalCard.svelte.d.ts +35 -0
  40. package/cards/InteractiveCard.svelte +127 -0
  41. package/cards/InteractiveCard.svelte.d.ts +63 -0
  42. package/cards/ListCard.svelte +82 -0
  43. package/cards/ListCard.svelte.d.ts +51 -0
  44. package/cards/SignInCard.svelte +125 -0
  45. package/cards/SignInCard.svelte.d.ts +45 -0
  46. package/darkmode/DarkMode.svelte +78 -0
  47. package/darkmode/DarkMode.svelte.d.ts +23 -0
  48. package/dropdowns/DropdownDefault.svelte +117 -0
  49. package/dropdowns/DropdownDefault.svelte.d.ts +51 -0
  50. package/footer/SimpleFooter.svelte +32 -0
  51. package/footer/SimpleFooter.svelte.d.ts +45 -0
  52. package/index.d.ts +39 -0
  53. package/index.js +116 -0
  54. package/list-group/List.svelte +79 -0
  55. package/list-group/List.svelte.d.ts +33 -0
  56. package/modals/ExtraLargeModal.svelte +236 -0
  57. package/modals/ExtraLargeModal.svelte.d.ts +45 -0
  58. package/modals/LargeModal.svelte +236 -0
  59. package/modals/LargeModal.svelte.d.ts +45 -0
  60. package/modals/MediumModal.svelte +242 -0
  61. package/modals/MediumModal.svelte.d.ts +45 -0
  62. package/modals/ModalButton.svelte +48 -0
  63. package/modals/ModalButton.svelte.d.ts +29 -0
  64. package/modals/SignInModal.svelte +174 -0
  65. package/modals/SignInModal.svelte.d.ts +37 -0
  66. package/modals/SmallModal.svelte +236 -0
  67. package/modals/SmallModal.svelte.d.ts +45 -0
  68. package/modals/modalStores.d.ts +1 -0
  69. package/modals/modalStores.js +3 -0
  70. package/navbar/DropdownNavbar.svelte +210 -0
  71. package/navbar/DropdownNavbar.svelte.d.ts +65 -0
  72. package/navbar/Navbar.svelte +96 -0
  73. package/navbar/Navbar.svelte.d.ts +39 -0
  74. package/package.json +92 -0
  75. package/tabs/DefaultTabs.svelte +43 -0
  76. package/tabs/DefaultTabs.svelte.d.ts +33 -0
  77. package/tabs/InteractiveTabs.svelte +68 -0
  78. package/tabs/InteractiveTabs.svelte.d.ts +47 -0
  79. package/tabs/PillTabs.svelte +38 -0
  80. 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>