flowbite-svelte 0.21.4 → 0.21.7

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 (44) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/avatar/Avatar.svelte +35 -19
  3. package/avatar/Avatar.svelte.d.ts +13 -5
  4. package/avatar/Dot.svelte +32 -0
  5. package/avatar/Dot.svelte.d.ts +22 -0
  6. package/avatar/Placeholder.svelte +15 -0
  7. package/avatar/Placeholder.svelte.d.ts +16 -0
  8. package/buttons/Button.svelte +5 -5
  9. package/forms/Fileupload.svelte +8 -9
  10. package/forms/Fileupload.svelte.d.ts +1 -4
  11. package/forms/FloatingLabelInput.svelte +1 -3
  12. package/forms/FloatingLabelInput.svelte.d.ts +1 -2
  13. package/forms/Input.svelte +0 -4
  14. package/forms/Radio.svelte +1 -1
  15. package/forms/Range.svelte +1 -5
  16. package/forms/Range.svelte.d.ts +0 -1
  17. package/forms/Search.svelte +14 -2
  18. package/forms/Select.svelte +2 -8
  19. package/forms/Select.svelte.d.ts +1 -4
  20. package/forms/SimpleSearch.svelte +1 -1
  21. package/forms/VoiceSearch.svelte +1 -1
  22. package/index.d.ts +5 -0
  23. package/index.js +6 -0
  24. package/kbd/ArrowKeyDown.svelte +15 -0
  25. package/kbd/ArrowKeyDown.svelte.d.ts +17 -0
  26. package/kbd/ArrowKeyLeft.svelte +15 -0
  27. package/kbd/ArrowKeyLeft.svelte.d.ts +17 -0
  28. package/kbd/ArrowKeyRight.svelte +15 -0
  29. package/kbd/ArrowKeyRight.svelte.d.ts +17 -0
  30. package/kbd/ArrowKeyUp.svelte +15 -0
  31. package/kbd/ArrowKeyUp.svelte.d.ts +17 -0
  32. package/kbd/Kbd.svelte +7 -0
  33. package/kbd/Kbd.svelte.d.ts +19 -0
  34. package/package.json +8 -1
  35. package/sidebars/Sidebar.svelte +1 -1
  36. package/sidebars/SidebarBrand.svelte +1 -1
  37. package/sidebars/SidebarCta.svelte +1 -1
  38. package/sidebars/SidebarDropdownItem.svelte +1 -1
  39. package/sidebars/SidebarDropdownWrapper.svelte +1 -1
  40. package/sidebars/SidebarGroup.svelte +1 -1
  41. package/sidebars/SidebarItem.svelte +1 -2
  42. package/sidebars/SidebarItem.svelte.d.ts +0 -1
  43. package/sidebars/SidebarWrapper.svelte +1 -1
  44. package/types.d.ts +4 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.21.7](https://github.com/themesberg/flowbite-svelte/compare/v0.21.6...v0.21.7) (2022-07-17)
6
+
7
+
8
+ ### Features
9
+
10
+ * add kbd component and page ([66c1f2e](https://github.com/themesberg/flowbite-svelte/commit/66c1f2ec9c516da147c7eca9e8cb11c3eea2e1e2))
11
+
12
+ ### [0.21.6](https://github.com/themesberg/flowbite-svelte/compare/v0.21.5...v0.21.6) (2022-07-16)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * links in form index ([1149aa2](https://github.com/themesberg/flowbite-svelte/commit/1149aa2f7411ceb9a3e29ce3c6c3d446634f09a9))
18
+ * sidebars and forms {...$$restProps} position updates ([d983225](https://github.com/themesberg/flowbite-svelte/commit/d983225a4e4c7526bf7bee3a7cd51ecc6035bba8))
19
+
20
+ ### [0.21.5](https://github.com/themesberg/flowbite-svelte/compare/v0.21.4...v0.21.5) (2022-07-16)
21
+
22
+
23
+ ### Features
24
+
25
+ * alerts more functions, changed API ([a2306fb](https://github.com/themesberg/flowbite-svelte/commit/a2306fb2a980a140da51f4f36ac299a5ce33c1c8))
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * add href prop to jjagielka avatars and fix doc ([ea97577](https://github.com/themesberg/flowbite-svelte/commit/ea975779365d8a9d8b6fd2fe22e36d94636957f2))
31
+ * buttons - update sizes and force round ([22284ad](https://github.com/themesberg/flowbite-svelte/commit/22284ada79396136f8dce288de87112e74e6f82a))
32
+
5
33
  ### [0.21.4](https://github.com/themesberg/flowbite-svelte/compare/v0.21.3...v0.21.4) (2022-07-14)
6
34
 
7
35
 
@@ -1,22 +1,38 @@
1
- <script>export let avatar = {};
2
- let isCircle = avatar.round ? 'rounded-full' : 'rounded';
3
- let isBorder = avatar.border ? 'p-1 ring-2 ring-gray-300 dark:ring-gray-500' : '';
4
- export let avatarClass = `w-${avatar.size} h-${avatar.size} ${isCircle} ${isBorder}`;
5
- export let placehoder = false;
1
+ <script>import classNames from 'classnames';
2
+ import AvatarPlaceholder from './Placeholder.svelte';
3
+ import Dot from './Dot.svelte';
4
+ export let src = '';
5
+ export let href = '#';
6
+ export let rounded = false;
7
+ export let border = false;
8
+ export let stacked = false;
9
+ export let dot = { top: false, color: 'bg-gray-300 dark:bg-gray-500' };
10
+ export let alt = '';
11
+ export let size = 'md';
12
+ // export let ring: string = 'ring-gray-300 dark:ring-gray-500';
13
+ const sizes = {
14
+ xs: 'w-6 h-6',
15
+ sm: 'w-8 h-8',
16
+ md: 'w-10 h-10',
17
+ lg: 'w-20 h-20',
18
+ xl: 'w-36 h-36'
19
+ };
20
+ let avatarClass;
21
+ $: avatarClass = classNames(rounded ? 'rounded' : 'rounded-full', border && 'p-1 ring-2 ring-gray-300 dark:ring-gray-500', sizes[size], stacked && 'border-2 -ml-4 border-white dark:border-gray-800', $$props.class);
6
22
  </script>
7
23
 
8
- {#if placehoder}
9
- <div class="relative w-10 h-10 overflow-hidden bg-gray-100 rounded-full dark:bg-gray-600">
10
- <svg class="absolute w-12 h-12 text-gray-400 -left-1" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd" /></svg>
11
- </div>
12
- {:else if avatar.header && avatar.text}
13
- <div class="flex items-center space-x-4">
14
- <img class={avatarClass} alt={avatar.alt} src={avatar.src} />
15
- <div class="space-y-1 font-medium dark:text-white">
16
- <div>{avatar.header}</div>
17
- <div class="text-sm text-gray-500 dark:text-gray-400">{avatar.text}</div>
24
+ <Dot show={$$props.dot} {rounded} {...dot} {size}>
25
+ {#if src}
26
+ <img class={avatarClass} {alt} {src} />
27
+ {:else if $$slots.default}
28
+ <a
29
+ class="flex justify-center items-center {avatarClass} text-xs font-medium text-white bg-gray-700 hover:bg-gray-600"
30
+ {href}
31
+ ><slot />
32
+ </a>
33
+ {:else}
34
+ <div class={avatarClass}>
35
+ <AvatarPlaceholder {rounded} />
18
36
  </div>
19
- </div>
20
- {:else}
21
- <img class={avatarClass} alt={avatar.alt} src={avatar.src} />
22
- {/if}
37
+ {/if}
38
+ </Dot>
@@ -1,15 +1,23 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { AvatarType } from '../types';
2
+ import type { DotType } from '../types';
3
3
  declare const __propDef: {
4
4
  props: {
5
- avatar?: AvatarType;
6
- avatarClass?: string;
7
- placehoder?: boolean;
5
+ [x: string]: any;
6
+ src?: string;
7
+ href?: string;
8
+ rounded?: boolean;
9
+ border?: boolean;
10
+ stacked?: boolean;
11
+ dot?: DotType;
12
+ alt?: string;
13
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
8
14
  };
9
15
  events: {
10
16
  [evt: string]: CustomEvent<any>;
11
17
  };
12
- slots: {};
18
+ slots: {
19
+ default: {};
20
+ };
13
21
  };
14
22
  export declare type AvatarProps = typeof __propDef.props;
15
23
  export declare type AvatarEvents = typeof __propDef.events;
@@ -0,0 +1,32 @@
1
+ <script>import classNames from 'classnames';
2
+ export let show = false;
3
+ export let top = false;
4
+ export let color = 'bg-gray-300 dark:bg-gray-500';
5
+ export let rounded = false;
6
+ export let size = 'md';
7
+ const sizes = {
8
+ xs: 'w-2.5 h-2.5',
9
+ sm: 'w-3 h-3',
10
+ md: 'w-3.5 h-3.5',
11
+ lg: 'w-6 h-6',
12
+ xl: 'w-10 h-10'
13
+ };
14
+ const offsets = {
15
+ xs: ['left-4', 'left-5'],
16
+ sm: ['left-6', 'left-6'],
17
+ md: ['left-7', 'left-8'],
18
+ lg: ['left-14', 'left-16'],
19
+ xl: ['left-24', 'left-32']
20
+ };
21
+ let dotClass;
22
+ $: dotClass = classNames('absolute rounded-full border-white dark:border-gray-800 border-2', sizes[size], offsets[size][+rounded], top ? 'top-0' : 'bottom-0', rounded && top && 'transform -translate-y-1/2', rounded && !top && 'transform translate-y-1/4', color);
23
+ </script>
24
+
25
+ {#if show}
26
+ <div class="relative">
27
+ <slot />
28
+ <span class={dotClass} />
29
+ </div>
30
+ {:else}
31
+ <slot />
32
+ {/if}
@@ -0,0 +1,22 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ show?: boolean;
5
+ top?: boolean;
6
+ color?: string;
7
+ rounded?: boolean;
8
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
9
+ };
10
+ events: {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {
14
+ default: {};
15
+ };
16
+ };
17
+ export declare type DotProps = typeof __propDef.props;
18
+ export declare type DotEvents = typeof __propDef.events;
19
+ export declare type DotSlots = typeof __propDef.slots;
20
+ export default class Dot extends SvelteComponentTyped<DotProps, DotEvents, DotSlots> {
21
+ }
22
+ export {};
@@ -0,0 +1,15 @@
1
+ <script>export let rounded = false;
2
+ </script>
3
+
4
+ <svg
5
+ class="text-gray-400 bg-gray-200 dark:bg-gray-600 {rounded ? 'rounded' : 'rounded-full'}"
6
+ fill="currentColor"
7
+ viewBox="0 0 16 16"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ >
10
+ <path
11
+ fill-rule="evenodd"
12
+ d="M8 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z"
13
+ clip-rule="evenodd"
14
+ />
15
+ </svg>
@@ -0,0 +1,16 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ rounded?: boolean;
5
+ };
6
+ events: {
7
+ [evt: string]: CustomEvent<any>;
8
+ };
9
+ slots: {};
10
+ };
11
+ export declare type PlaceholderProps = typeof __propDef.props;
12
+ export declare type PlaceholderEvents = typeof __propDef.events;
13
+ export declare type PlaceholderSlots = typeof __propDef.slots;
14
+ export default class Placeholder extends SvelteComponentTyped<PlaceholderProps, PlaceholderEvents, PlaceholderSlots> {
15
+ }
16
+ export {};
@@ -51,11 +51,11 @@ const outlineClasses = {
51
51
  purple: 'text-purple-700 hover:text-white border border-purple-700 hover:bg-purple-800 focus:ring-purple-300 dark:border-purple-400 dark:text-purple-400 dark:hover:text-white dark:hover:bg-purple-500 dark:focus:ring-purple-900'
52
52
  };
53
53
  const sizeClasses = {
54
- xs: 'text-xs px-2 py-1',
55
- sm: 'text-sm px-3 py-1.5',
56
- md: 'text-sm px-4 py-2',
57
- lg: 'text-base px-5 py-2.5',
58
- xl: 'text-base px-6 py-3'
54
+ xs: 'px-3 py-2 text-xs',
55
+ sm: 'px-3 py-2 text-sm',
56
+ md: 'px-5 py-2.5 text-sm',
57
+ lg: 'px-5 py-3 text-base',
58
+ xl: 'px-6 py-3.5 text-base'
59
59
  };
60
60
  let buttonClass;
61
61
  $: buttonClass = classNames('group text-center font-medium focus:ring-4 focus:outline-none', outline && gradient ? 'p-0.5' : 'inline-flex items-center justify-center ' + sizeClasses[size], gradient ? gradientClasses[color] : outline ? outlineClasses[color] : colorClasses[color], pill ? 'rounded-full' : 'rounded-lg', shadow && coloredShadowClasses[shadow], $$props.disabled && 'cursor-not-allowed opacity-50', $$props.class);
@@ -1,14 +1,13 @@
1
1
  <script>export let value = '';
2
2
  export let id = 'user_avatar';
3
- export let label = 'Upload file';
4
- export let labelClass = 'block mb-2 text-sm font-medium text-gray-900 dark:text-gray-300" for="user_avatar';
5
3
  export let inputClass = 'block w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 cursor-pointer dark:text-gray-400 focus:outline-none focus:border-transparent dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400';
6
- export let divClass = 'mt-1 text-sm text-gray-500 dark:text-gray-300';
7
- export let helper = '';
8
4
  </script>
9
5
 
10
- <label class={labelClass} for={id}>{label}</label>
11
- <input bind:value class={inputClass} aria-describedby="{id}_help" {id} type="file" />
12
- {#if helper}
13
- <div class={divClass} id="{id}_help">{helper}</div>
14
- {/if}
6
+ <input
7
+ {...$$restProps}
8
+ bind:value
9
+ class={inputClass}
10
+ aria-describedby="{id}_help"
11
+ {id}
12
+ type="file"
13
+ />
@@ -1,13 +1,10 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
+ [x: string]: any;
4
5
  value?: string;
5
6
  id?: string;
6
- label?: string;
7
- labelClass?: string;
8
7
  inputClass?: string;
9
- divClass?: string;
10
- helper?: string;
11
8
  };
12
9
  events: {
13
10
  [evt: string]: CustomEvent<any>;
@@ -2,9 +2,7 @@
2
2
  export let id = generateId();
3
3
  export let type;
4
4
  export let value = '';
5
- export let name = '';
6
5
  export let label = '';
7
- export let required = false;
8
6
  export let divClass = 'relative z-0 mb-6 w-full group';
9
7
  export let inputClass = 'block py-2.5 px-0 w-full text-sm text-gray-900 bg-transparent border-0 border-b-2 border-gray-300 appearance-none dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:outline-none focus:ring-0 focus:border-blue-600 peer';
10
8
  export let labelClass = 'absolute text-sm text-gray-500 dark:text-gray-400 duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-[0] peer-focus:left-0 peer-focus:text-blue-600 peer-focus:dark:text-blue-500 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6';
@@ -14,6 +12,6 @@ function setType(node) {
14
12
  </script>
15
13
 
16
14
  <div class={divClass}>
17
- <input bind:value use:setType {name} class={inputClass} placeholder=" " {required} />
15
+ <input {...$$restProps} bind:value use:setType class={inputClass} placeholder=" " />
18
16
  <label for={id} class={labelClass}>{label}</label>
19
17
  </div>
@@ -2,12 +2,11 @@ import { SvelteComponentTyped } from "svelte";
2
2
  import type { InputType } from '../types';
3
3
  declare const __propDef: {
4
4
  props: {
5
+ [x: string]: any;
5
6
  id?: string;
6
7
  type: InputType;
7
8
  value?: string;
8
- name?: string;
9
9
  label?: string;
10
- required?: boolean;
11
10
  divClass?: string;
12
11
  inputClass?: string;
13
12
  labelClass?: string;
@@ -25,10 +25,6 @@ function setType(node) {
25
25
  inputClass,
26
26
  colorClasses[color],
27
27
  {
28
- // 'pl-10': icon !== null,
29
- // 'rounded-lg': !($$slots.addon || addon),
30
- // 'rounded-r-lg': $$slots.addon || addon,
31
- // 'shadow-sm dark:shadow-sm-light': shadow,
32
28
  'p-2 sm:text-xs': size === 'sm',
33
29
  'p-2.5 text-sm': size === 'md',
34
30
  'sm:text-md p-4': size === 'lg'
@@ -42,6 +42,7 @@ else {
42
42
  <div class="flex">
43
43
  <div class={divHelperClass}>
44
44
  <input
45
+ {...$$restProps}
45
46
  bind:group
46
47
  {id}
47
48
  type="radio"
@@ -51,7 +52,6 @@ else {
51
52
  aria-labelledby={id}
52
53
  aria-describedby={id}
53
54
  {disabled}
54
- {...$$restProps}
55
55
  />
56
56
  </div>
57
57
  <div class="ml-2 text-sm">
@@ -1,5 +1,4 @@
1
1
  <script>export let id = 'range';
2
- export let label = 'Range';
3
2
  export let min;
4
3
  export let max;
5
4
  export let value;
@@ -17,10 +16,8 @@ else {
17
16
  }
18
17
  </script>
19
18
 
20
- <label for={id} class="block mb-2 text-sm font-medium text-gray-900 dark:text-gray-300"
21
- >{label}</label
22
- >
23
19
  <input
20
+ {...$$restProps}
24
21
  {id}
25
22
  name={id}
26
23
  type="range"
@@ -29,5 +26,4 @@ else {
29
26
  bind:value
30
27
  {step}
31
28
  class={inputClass}
32
- {...$$restProps}
33
29
  />
@@ -3,7 +3,6 @@ declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
5
  id?: string;
6
- label?: string;
7
6
  min: number;
8
7
  max: number;
9
8
  value: number;
@@ -9,9 +9,21 @@ export let placeholder = 'Search';
9
9
  <label for={id} class={labelClass}>Search</label>
10
10
  <div class="relative">
11
11
  <div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
12
- <svg class="w-5 h-5 text-gray-500 dark:text-gray-400" 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="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" /></svg>
12
+ <svg
13
+ class="w-5 h-5 text-gray-500 dark:text-gray-400"
14
+ fill="none"
15
+ stroke="currentColor"
16
+ viewBox="0 0 24 24"
17
+ xmlns="http://www.w3.org/2000/svg"
18
+ ><path
19
+ stroke-linecap="round"
20
+ stroke-linejoin="round"
21
+ stroke-width="2"
22
+ d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
23
+ /></svg
24
+ >
13
25
  </div>
14
- <input type="search" {id} class={inputClass} {placeholder} {...$$restProps} />
26
+ <input {...$$restProps} type="search" {id} class={inputClass} {placeholder} />
15
27
  <button type="submit" class={btnClass}>Search</button>
16
28
  </div>
17
29
  </form>
@@ -1,13 +1,7 @@
1
- <script>import generateId from '../utils/generateId.js';
2
- export let value;
3
- export let id = generateId();
4
- export let name = '';
5
- export let label = '';
6
- export let labelClass = 'block mb-2 text-sm font-medium text-gray-900 dark:text-gray-400';
1
+ <script>export let value;
7
2
  export let selectClass = 'bg-gray-50 border border-gray-300 text-gray-900 text-sm 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';
8
3
  </script>
9
4
 
10
- <label for={id} class={labelClass}>{label}</label>
11
- <select bind:value {id} {name} class={selectClass} on:change>
5
+ <select {...$$restProps} bind:value class={selectClass} on:change>
12
6
  <slot />
13
7
  </select>
@@ -1,11 +1,8 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
+ [x: string]: any;
4
5
  value: string | number;
5
- id?: string;
6
- name?: string;
7
- label?: string;
8
- labelClass?: string;
9
6
  selectClass?: string;
10
7
  };
11
8
  events: {
@@ -23,7 +23,7 @@ export let placeholder = 'Search';
23
23
  /></svg
24
24
  >
25
25
  </div>
26
- <input type="text" {id} class={inputClass} {placeholder} {...$$restProps} />
26
+ <input {...$$restProps} type="text" {id} class={inputClass} {placeholder} />
27
27
  </div>
28
28
  <button type="submit" class={btnClass}
29
29
  ><svg
@@ -30,7 +30,7 @@ const handleVoiceBtn = () => {
30
30
  /></svg
31
31
  >
32
32
  </div>
33
- <input type="text" {id} class={inputClass} {placeholder} {...$$restProps} />
33
+ <input {...$$restProps} type="text" {id} class={inputClass} {placeholder} />
34
34
  <button type="button" class={voiceBtnClass} on:click={handleVoiceBtn}>
35
35
  <svg
36
36
  class={voiceIconClass}
package/index.d.ts CHANGED
@@ -44,6 +44,11 @@ export { default as VoiceSearch } from './forms/VoiceSearch.svelte';
44
44
  export { default as Select } from './forms/Select.svelte';
45
45
  export { default as Textarea } from './forms/Textarea.svelte';
46
46
  export { default as Toggle } from './forms/Toggle.svelte';
47
+ export { default as Kbd } from './kbd/Kbd.svelte';
48
+ export { default as ArrowKeyDown } from './kbd/ArrowKeyDown.svelte';
49
+ export { default as ArrowKeyLeft } from './kbd/ArrowKeyLeft.svelte';
50
+ export { default as ArrowKeyRight } from './kbd/ArrowKeyRight.svelte';
51
+ export { default as ArrowKeyUp } from './kbd/ArrowKeyUp.svelte';
47
52
  export { default as List } from './list-group/List.svelte';
48
53
  export { modalIdStore } from './modals/modalStores.js';
49
54
  export { default as ExtraLargeModal } from './modals/ExtraLargeModal.svelte';
package/index.js CHANGED
@@ -57,6 +57,12 @@ export { default as VoiceSearch } from './forms/VoiceSearch.svelte';
57
57
  export { default as Select } from './forms/Select.svelte';
58
58
  export { default as Textarea } from './forms/Textarea.svelte';
59
59
  export { default as Toggle } from './forms/Toggle.svelte';
60
+ // Kbd
61
+ export { default as Kbd } from './kbd/Kbd.svelte';
62
+ export { default as ArrowKeyDown } from './kbd/ArrowKeyDown.svelte';
63
+ export { default as ArrowKeyLeft } from './kbd/ArrowKeyLeft.svelte';
64
+ export { default as ArrowKeyRight } from './kbd/ArrowKeyRight.svelte';
65
+ export { default as ArrowKeyUp } from './kbd/ArrowKeyUp.svelte';
60
66
  // List
61
67
  export { default as List } from './list-group/List.svelte';
62
68
  // Modals
@@ -0,0 +1,15 @@
1
+ <script>import classNames from 'classnames';
2
+ export let svgClass = 'w-4 h-4';
3
+ </script>
4
+
5
+ <svg
6
+ {...$$restProps}
7
+ class={classNames(svgClass, $$props.class)}
8
+ aria-hidden="true"
9
+ fill="currentColor"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ viewBox="0 0 320 512"
12
+ ><path
13
+ d="M310.6 246.6l-127.1 128C176.4 380.9 168.2 384 160 384s-16.38-3.125-22.63-9.375l-127.1-128C.2244 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75S319.8 237.5 310.6 246.6z"
14
+ /></svg
15
+ >
@@ -0,0 +1,17 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ svgClass?: string;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export declare type ArrowKeyDownProps = typeof __propDef.props;
13
+ export declare type ArrowKeyDownEvents = typeof __propDef.events;
14
+ export declare type ArrowKeyDownSlots = typeof __propDef.slots;
15
+ export default class ArrowKeyDown extends SvelteComponentTyped<ArrowKeyDownProps, ArrowKeyDownEvents, ArrowKeyDownSlots> {
16
+ }
17
+ export {};
@@ -0,0 +1,15 @@
1
+ <script>import classNames from 'classnames';
2
+ export let svgClass = 'w-4 h-4';
3
+ </script>
4
+
5
+ <svg
6
+ {...$$restProps}
7
+ class={classNames(svgClass, $$props.class)}
8
+ aria-hidden="true"
9
+ fill="currentColor"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ viewBox="0 0 320 512"
12
+ ><path
13
+ d="M137.4 406.6l-128-127.1C3.125 272.4 0 264.2 0 255.1s3.125-16.38 9.375-22.63l128-127.1c9.156-9.156 22.91-11.9 34.88-6.943S192 115.1 192 128v255.1c0 12.94-7.781 24.62-19.75 29.58S146.5 415.8 137.4 406.6z"
14
+ /></svg
15
+ >
@@ -0,0 +1,17 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ svgClass?: string;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export declare type ArrowKeyLeftProps = typeof __propDef.props;
13
+ export declare type ArrowKeyLeftEvents = typeof __propDef.events;
14
+ export declare type ArrowKeyLeftSlots = typeof __propDef.slots;
15
+ export default class ArrowKeyLeft extends SvelteComponentTyped<ArrowKeyLeftProps, ArrowKeyLeftEvents, ArrowKeyLeftSlots> {
16
+ }
17
+ export {};
@@ -0,0 +1,15 @@
1
+ <script>import classNames from 'classnames';
2
+ export let svgClass = 'w-4 h-4';
3
+ </script>
4
+
5
+ <svg
6
+ {...$$restProps}
7
+ class={classNames(svgClass, $$props.class)}
8
+ aria-hidden="true"
9
+ fill="currentColor"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ viewBox="0 0 320 512"
12
+ ><path
13
+ d="M118.6 105.4l128 127.1C252.9 239.6 256 247.8 256 255.1s-3.125 16.38-9.375 22.63l-128 127.1c-9.156 9.156-22.91 11.9-34.88 6.943S64 396.9 64 383.1V128c0-12.94 7.781-24.62 19.75-29.58S109.5 96.23 118.6 105.4z"
14
+ /></svg
15
+ >
@@ -0,0 +1,17 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ svgClass?: string;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export declare type ArrowKeyRightProps = typeof __propDef.props;
13
+ export declare type ArrowKeyRightEvents = typeof __propDef.events;
14
+ export declare type ArrowKeyRightSlots = typeof __propDef.slots;
15
+ export default class ArrowKeyRight extends SvelteComponentTyped<ArrowKeyRightProps, ArrowKeyRightEvents, ArrowKeyRightSlots> {
16
+ }
17
+ export {};
@@ -0,0 +1,15 @@
1
+ <script>import classNames from 'classnames';
2
+ export let svgClass = 'w-4 h-4';
3
+ </script>
4
+
5
+ <svg
6
+ {...$$restProps}
7
+ class={classNames(svgClass, $$props.class)}
8
+ aria-hidden="true"
9
+ fill="currentColor"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ viewBox="0 0 320 512"
12
+ ><path
13
+ d="M9.39 265.4l127.1-128C143.6 131.1 151.8 128 160 128s16.38 3.125 22.63 9.375l127.1 128c9.156 9.156 11.9 22.91 6.943 34.88S300.9 320 287.1 320H32.01c-12.94 0-24.62-7.781-29.58-19.75S.2333 274.5 9.39 265.4z"
14
+ /></svg
15
+ >
@@ -0,0 +1,17 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ svgClass?: string;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export declare type ArrowKeyUpProps = typeof __propDef.props;
13
+ export declare type ArrowKeyUpEvents = typeof __propDef.events;
14
+ export declare type ArrowKeyUpSlots = typeof __propDef.slots;
15
+ export default class ArrowKeyUp extends SvelteComponentTyped<ArrowKeyUpProps, ArrowKeyUpEvents, ArrowKeyUpSlots> {
16
+ }
17
+ export {};
package/kbd/Kbd.svelte ADDED
@@ -0,0 +1,7 @@
1
+ <script>import classNames from 'classnames';
2
+ export let kbdClass = 'text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded-lg dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500';
3
+ </script>
4
+
5
+ <kbd class={classNames(kbdClass, $$props.class)}>
6
+ <slot />
7
+ </kbd>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ kbdClass?: string;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {
11
+ default: {};
12
+ };
13
+ };
14
+ export declare type KbdProps = typeof __propDef.props;
15
+ export declare type KbdEvents = typeof __propDef.events;
16
+ export declare type KbdSlots = typeof __propDef.slots;
17
+ export default class Kbd extends SvelteComponentTyped<KbdProps, KbdEvents, KbdSlots> {
18
+ }
19
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flowbite-svelte",
3
- "version": "0.21.4",
3
+ "version": "0.21.7",
4
4
  "description": "Flowbite components for Svelte",
5
5
  "main": "index.js",
6
6
  "author": {
@@ -97,6 +97,8 @@
97
97
  "./accordions/AccordionItem.svelte": "./accordions/AccordionItem.svelte",
98
98
  "./alerts/Alert.svelte": "./alerts/Alert.svelte",
99
99
  "./avatar/Avatar.svelte": "./avatar/Avatar.svelte",
100
+ "./avatar/Dot.svelte": "./avatar/Dot.svelte",
101
+ "./avatar/Placeholder.svelte": "./avatar/Placeholder.svelte",
100
102
  "./badges/Badge.svelte": "./badges/Badge.svelte",
101
103
  "./breadcrumbs/Breadcrumb.svelte": "./breadcrumbs/Breadcrumb.svelte",
102
104
  "./breadcrumbs/BreadcrumbItem.svelte": "./breadcrumbs/BreadcrumbItem.svelte",
@@ -149,6 +151,11 @@
149
151
  "./forms/Toggle.svelte": "./forms/Toggle.svelte",
150
152
  "./forms/VoiceSearch.svelte": "./forms/VoiceSearch.svelte",
151
153
  ".": "./index.js",
154
+ "./kbd/ArrowKeyDown.svelte": "./kbd/ArrowKeyDown.svelte",
155
+ "./kbd/ArrowKeyLeft.svelte": "./kbd/ArrowKeyLeft.svelte",
156
+ "./kbd/ArrowKeyRight.svelte": "./kbd/ArrowKeyRight.svelte",
157
+ "./kbd/ArrowKeyUp.svelte": "./kbd/ArrowKeyUp.svelte",
158
+ "./kbd/Kbd.svelte": "./kbd/Kbd.svelte",
152
159
  "./list-group/List.svelte": "./list-group/List.svelte",
153
160
  "./modals/ExtraLargeModal.svelte": "./modals/ExtraLargeModal.svelte",
154
161
  "./modals/LargeModal.svelte": "./modals/LargeModal.svelte",
@@ -2,6 +2,6 @@
2
2
  export let asideClass = 'w-64';
3
3
  </script>
4
4
 
5
- <aside class={classNames(asideClass, $$props.class)} {...$$restProps} aria-label="Sidebar">
5
+ <aside {...$$restProps} class={classNames(asideClass, $$props.class)} aria-label="Sidebar">
6
6
  <slot />
7
7
  </aside>
@@ -5,7 +5,7 @@ export let imgClass = 'h-6 mr-3 sm:h-7';
5
5
  export let spanClass = 'self-center text-xl font-semibold whitespace-nowrap dark:text-white';
6
6
  </script>
7
7
 
8
- <a href={site.href} class={classNames(aClass, $$props.class)} {...$$restProps}>
8
+ <a {...$$restProps} href={site.href} class={classNames(aClass, $$props.class)}>
9
9
  <img src={site.img} class={imgClass} alt={site.name} />
10
10
  <span class={spanClass}>{site.name}</span>
11
11
  </a>
@@ -6,9 +6,9 @@ export let label = '';
6
6
  </script>
7
7
 
8
8
  <div
9
+ {...$$restProps}
9
10
  id="dropdown-cta"
10
11
  class={classNames(divWrapperClass, $$props.class)}
11
- {...$$restProps}
12
12
  role="alert"
13
13
  >
14
14
  <div class={divClass}>
@@ -5,5 +5,5 @@ export let label = '';
5
5
  </script>
6
6
 
7
7
  <li>
8
- <a {href} class={classNames(aClass, $$props.class)} {...$$restProps}>{label}</a>
8
+ <a {...$$restProps} {href} class={classNames(aClass, $$props.class)}>{label}</a>
9
9
  </li>
@@ -15,10 +15,10 @@ const handleDropdown = () => {
15
15
 
16
16
  <li>
17
17
  <button
18
+ {...$$restProps}
18
19
  on:click={() => handleDropdown()}
19
20
  type="button"
20
21
  class={classNames(btnClass, $$props.class)}
21
- {...$$restProps}
22
22
  aria-controls="sidebar-dropdown"
23
23
  >
24
24
  <svelte:component
@@ -7,6 +7,6 @@ if (border) {
7
7
  }
8
8
  </script>
9
9
 
10
- <ul class={classNames(ulClass, $$props.class)} {...$$restProps}>
10
+ <ul {...$$restProps} class={classNames(ulClass, $$props.class)}>
11
11
  <slot />
12
12
  </ul>
@@ -1,14 +1,13 @@
1
1
  <script>import classNames from 'classnames';
2
2
  export let aClass = 'flex items-center p-2 text-base font-normal text-gray-900 rounded-lg dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700';
3
3
  export let href = '';
4
- export let rel = '';
5
4
  export let label = '';
6
5
  export let spanClass = 'ml-3';
7
6
  export let icon;
8
7
  </script>
9
8
 
10
9
  <li>
11
- <a {href} {rel} class={classNames(aClass, $$props.class)} {...$$restProps}>
10
+ <a {...$$restProps} {href} class={classNames(aClass, $$props.class)}>
12
11
  <svelte:component
13
12
  this={icon.name}
14
13
  size={icon.size}
@@ -5,7 +5,6 @@ declare const __propDef: {
5
5
  [x: string]: any;
6
6
  aClass?: string;
7
7
  href?: string;
8
- rel?: string;
9
8
  label?: string;
10
9
  spanClass?: string;
11
10
  icon: IconType;
@@ -2,6 +2,6 @@
2
2
  export let divClass = 'overflow-y-auto py-4 px-3 bg-gray-50 rounded dark:bg-gray-800';
3
3
  </script>
4
4
 
5
- <div class={classNames(divClass, $$props.class)} {...$$restProps}>
5
+ <div {...$$restProps} class={classNames(divClass, $$props.class)}>
6
6
  <slot />
7
7
  </div>
package/types.d.ts CHANGED
@@ -62,6 +62,10 @@ export declare type CrumbType = {
62
62
  label: string;
63
63
  href: string;
64
64
  };
65
+ export interface DotType {
66
+ top?: boolean;
67
+ color?: string;
68
+ }
65
69
  export declare type DropdownColorType = 'blue' | 'blue-outline' | 'dark' | 'dark-outline' | 'light' | 'green' | 'green-outline' | 'red' | 'red-outline' | 'yellow' | 'yellow-outline' | 'purple' | 'purple-outline';
66
70
  export interface DropdownType {
67
71
  name: string;