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.
Files changed (48) hide show
  1. package/accordions/AccordionItem.svelte +1 -1
  2. package/accordions/AccordionItem.svelte.d.ts +1 -1
  3. package/auth/Confirm.svelte +23 -0
  4. package/auth/Confirm.svelte.d.ts +19 -0
  5. package/auth/ForgotPassword.svelte +57 -0
  6. package/auth/ForgotPassword.svelte.d.ts +21 -0
  7. package/auth/Login.svelte +128 -0
  8. package/auth/Login.svelte.d.ts +25 -0
  9. package/auth/Register.svelte +116 -0
  10. package/auth/Register.svelte.d.ts +25 -0
  11. package/auth/Reset.svelte +57 -0
  12. package/auth/Reset.svelte.d.ts +22 -0
  13. package/buttons/Button.svelte +16 -15
  14. package/buttons/Button.svelte.d.ts +3 -2
  15. package/buttons/ColorShadowButton.svelte +2 -1
  16. package/buttons/ColorShadowButton.svelte.d.ts +2 -1
  17. package/buttons/GradientDuotoneButton.svelte +2 -1
  18. package/buttons/GradientDuotoneButton.svelte.d.ts +2 -1
  19. package/buttons/GradientMonochromeButton.svelte +2 -1
  20. package/buttons/GradientMonochromeButton.svelte.d.ts +2 -1
  21. package/buttons/GradientOutlineButton.svelte +2 -1
  22. package/buttons/GradientOutlineButton.svelte.d.ts +2 -1
  23. package/cards/Card.svelte +6 -7
  24. package/cards/Card.svelte.d.ts +5 -4
  25. package/cards/EcommerceCard.svelte +1 -1
  26. package/cards/EcommerceCard.svelte.d.ts +1 -1
  27. package/cards/HorizontalCard.svelte +3 -3
  28. package/cards/HorizontalCard.svelte.d.ts +3 -3
  29. package/cards/InteractiveCard.svelte.d.ts +2 -2
  30. package/cards/ListCard.svelte +42 -77
  31. package/cards/ListCard.svelte.d.ts +8 -40
  32. package/cards/SignInCard.svelte +114 -111
  33. package/cards/SignInCard.svelte.d.ts +9 -32
  34. package/dropdowns/DropdownDefault.svelte +84 -93
  35. package/dropdowns/DropdownDefault.svelte.d.ts +7 -35
  36. package/index.d.ts +6 -1
  37. package/index.js +14 -0
  38. package/list-group/List.svelte +42 -74
  39. package/list-group/List.svelte.d.ts +7 -23
  40. package/navbar/DropdownNavbar.svelte +16 -19
  41. package/navbar/DropdownNavbar.svelte.d.ts +7 -0
  42. package/navbar/Navbar.svelte +10 -13
  43. package/navbar/Navbar.svelte.d.ts +4 -0
  44. package/package.json +7 -2
  45. package/spinners/Spinner.svelte +1 -1
  46. package/spinners/Spinner.svelte.d.ts +1 -1
  47. package/spinners/SpinnerButton.svelte +1 -1
  48. package/types.d.ts +13 -5
@@ -1,117 +1,108 @@
1
- <script>
2
- export let label = "Dropdown button";
3
- export let rounded = false;
4
- export let textSize = "text-sm";
5
- export let color = "blue";
6
-
7
- let paddings;
8
- if (textSize === "text-xs") {
9
- paddings = "py-2 px-3";
10
- } else if (textSize === "text-sm") {
11
- paddings = "py-2.5 px-5";
12
- } else if (textSize === "text-base") {
13
- paddings = "py-3 px-6";
14
- } else {
15
- paddings = "py-2.5 px-5";
16
- }
17
-
18
- let buttonClass;
19
- let round = rounded ? "rounded-full" : "rounded-lg";
20
-
21
- let toggleHidden = true;
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
- export let items = [
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
- } else if (color === "blue-outline") {
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
- } else if (color === "dark") {
31
+ }
32
+ else if (color === 'dark') {
48
33
  buttonClass =
49
- 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`;
50
- } else if (color === "dark-outline") {
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
- } else if (color === "light") {
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
- } else if (color === "green") {
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
- } else if (color === "green-outline") {
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
- } else if (color === "red") {
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
- } else if (color === "red-outline") {
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
- } else if (color === "yellow") {
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
- } else if (color === "yellow-outline") {
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
- } else if (color === "purple") {
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
- } else if (color === "purple-outline") {
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
- } else {
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
- >{label}
78
- <svg
79
- class="ml-2 w-4 h-4"
80
- fill="none"
81
- stroke="currentColor"
82
- viewBox="0 0 24 24"
83
- xmlns="http://www.w3.org/2000/svg"
84
- ><path
85
- stroke-linecap="round"
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
- class:hidden={toggleHidden}
95
- class="hidden z-10 w-44 text-base list-none bg-white rounded divide-y divide-gray-100 shadow dark:bg-gray-700"
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
- {#if $$slots.header}
98
- <div class="py-3 px-4 text-gray-900 dark:text-white">
99
- <slot name="header" />
100
- </div>
101
- {/if}
102
- <ul class="py-1" aria-labelledby="dropdownButton">
103
- {#each items as { link, label, divider }}
104
- <li
105
- class:border-b={divider}
106
- class:border-gray-100={divider}
107
- class:dark:border-gray-500={divider}
108
- >
109
- <a
110
- href={link}
111
- 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"
112
- >{label}</a
113
- >
114
- </li>
115
- {/each}
116
- </ul>
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,
@@ -1,79 +1,47 @@
1
- <script>
2
- export let lists = [
3
- {
4
- title: "Profile",
5
- icon: "",
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
- 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"
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
- {#each lists as { title, icon, link, rel }, i}
44
- {#if i === 0}
45
- <button type="button" class={topClass}>
46
- {#if icon}
47
- <svelte:component this={icon} className="h-4 w-4 mr-2" />
48
- {/if}
49
- {#if link}
50
- <a href={link} {rel}>{title}</a>
51
- {:else}
52
- {title} here
53
- {/if}
54
- </button>
55
- {:else if i === lists.length - 1}
56
- <button type="button" class={bottomClass}>
57
- {#if icon}
58
- <svelte:component this={icon} className="h-4 w-4 mr-2" />
59
- {/if}
60
- {#if link}
61
- <a href={link} {rel}>{title}</a>
62
- {:else}
63
- {title}
64
- {/if}
65
- </button>
66
- {:else}
67
- <button type="button" class={middleClass}>
68
- {#if icon}
69
- <svelte:component this={icon} className="h-4 w-4 mr-2" />
70
- {/if}
71
- {#if link}
72
- <a href={link} {rel}>{title}</a>
73
- {:else}
74
- {title}
75
- {/if}
76
- </button>
77
- {/if}
78
- {/each}
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="px-2 bg-white border-gray-200 dark:bg-gray-800 dark:border-gray-700">
22
- <div class="container flex flex-wrap justify-between items-center mx-auto">
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="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"
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="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"
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="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}"
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>;
@@ -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="px-2 bg-white border-gray-200 dark:bg-gray-800 dark:border-gray-700">
14
- <div class="container flex flex-wrap justify-between items-center mx-auto">
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="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"
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}
@@ -7,6 +7,10 @@ declare const __propDef: {
7
7
  alt?: string;
8
8
  textsize?: string;
9
9
  menus: LinkType[];
10
+ navClass?: string;
11
+ spanClass?: string;
12
+ buttonClass?: string;
13
+ liLinkClass?: string;
10
14
  };
11
15
  events: {
12
16
  [evt: string]: CustomEvent<any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flowbite-svelte",
3
- "version": "0.9.4",
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.3",
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",