flowbite-svelte 0.13.8 → 0.14.1

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