flowbite-svelte 0.26.1 → 0.26.4

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 +35 -0
  2. package/alerts/Alert.svelte +7 -49
  3. package/alerts/Alert.svelte.d.ts +1 -3
  4. package/cards/Card.svelte +4 -5
  5. package/dropdowns/Dropdown.svelte +13 -23
  6. package/footer/FooterIcon.svelte +2 -5
  7. package/footer/FooterIcon.svelte.d.ts +3 -5
  8. package/forms/Iconinput.svelte +13 -38
  9. package/forms/Iconinput.svelte.d.ts +3 -6
  10. package/forms/Input.svelte +1 -2
  11. package/index.d.ts +0 -10
  12. package/index.js +0 -11
  13. package/list-group/List.svelte +4 -4
  14. package/modals/Modal.svelte +6 -11
  15. package/package.json +4 -15
  16. package/popover/Popover.svelte +12 -14
  17. package/popover/Popover.svelte.d.ts +0 -4
  18. package/toasts/Toast.svelte +7 -24
  19. package/toasts/Toast.svelte.d.ts +1 -3
  20. package/typography/A.svelte +4 -3
  21. package/typography/A.svelte.d.ts +1 -0
  22. package/utils/Frame.svelte +73 -0
  23. package/utils/Frame.svelte.d.ts +26 -0
  24. package/utils/Popper.svelte +25 -12
  25. package/utils/Popper.svelte.d.ts +2 -1
  26. package/tabs/DefaultTabs.svelte +0 -26
  27. package/tabs/DefaultTabs.svelte.d.ts +0 -27
  28. package/tabs/FullWidthTabs.svelte +0 -42
  29. package/tabs/FullWidthTabs.svelte.d.ts +0 -28
  30. package/tabs/IconTabs.svelte +0 -33
  31. package/tabs/IconTabs.svelte.d.ts +0 -28
  32. package/tabs/InteractiveTabHead.svelte +0 -65
  33. package/tabs/InteractiveTabHead.svelte.d.ts +0 -54
  34. package/tabs/InteractiveTabs.svelte +0 -56
  35. package/tabs/InteractiveTabs.svelte.d.ts +0 -32
  36. package/tabs/PillTabs.svelte +0 -25
  37. package/tabs/PillTabs.svelte.d.ts +0 -27
  38. package/tabs/TabContent.svelte +0 -32
  39. package/tabs/TabContent.svelte.d.ts +0 -36
  40. package/tabs/Tabs.svelte +0 -113
  41. package/tabs/Tabs.svelte.d.ts +0 -39
  42. package/tabs/UnderlineTabs.svelte +0 -28
  43. package/tabs/UnderlineTabs.svelte.d.ts +0 -27
  44. package/tabs/tabStores.js +0 -3
package/CHANGELOG.md CHANGED
@@ -2,6 +2,41 @@
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.26.4](https://github.com/themesberg/flowbite-svelte/compare/v0.26.3...v0.26.4) (2022-09-02)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * programatic popper open merged ([86f9874](https://github.com/themesberg/flowbite-svelte/commit/86f9874e1c2390e3571b6df96acfa61af23fd865))
11
+
12
+ ### [0.26.3](https://github.com/themesberg/flowbite-svelte/compare/v0.26.2...v0.26.3) (2022-09-01)
13
+
14
+
15
+ ### Features
16
+
17
+ * frame abstraction ([47e4126](https://github.com/themesberg/flowbite-svelte/commit/47e4126fa02ff6b9c93d3ee7e17fee79195ac1d3))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * docs fixes due to dropdown api change ([869f8d7](https://github.com/themesberg/flowbite-svelte/commit/869f8d7bdea3a7ba97702e31b52f0e33fce3c911))
23
+ * remove flowbite-svelte-blocks page, add a link ([2b9e3d3](https://github.com/themesberg/flowbite-svelte/commit/2b9e3d3f72731ace8abb563e28e98309dbc58b3b))
24
+ * remove heros icons from ([203f14c](https://github.com/themesberg/flowbite-svelte/commit/203f14c578e57429892e0df41452abbdef1b3a4e))
25
+ * remove svelte-flag-icons from devDependencies ([8f48867](https://github.com/themesberg/flowbite-svelte/commit/8f488677958313a2debaa3f953314d6452a63013))
26
+ * update svelte-sidebar-menu version ([1106d16](https://github.com/themesberg/flowbite-svelte/commit/1106d161d06244d5db61641babc7691d28388fbd))
27
+
28
+ ### [0.26.2](https://github.com/themesberg/flowbite-svelte/compare/v0.26.1...v0.26.2) (2022-08-30)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * add icon page ([0f5c966](https://github.com/themesberg/flowbite-svelte/commit/0f5c96626954d4174d10b99f2934365628f2ec08))
34
+ * Iconinput click handler example ([2f5afc7](https://github.com/themesberg/flowbite-svelte/commit/2f5afc7554a7bb43d231cc39001ea31b9deafd1c))
35
+ * remove heros icons from buttons page ([ec81a39](https://github.com/themesberg/flowbite-svelte/commit/ec81a393f438e2285d36ed7fea787af956c6f128))
36
+ * remove heros icons from checkbox page ([1ed983c](https://github.com/themesberg/flowbite-svelte/commit/1ed983c2b230e6309ae6882972176480f8060487))
37
+ * remove old tab components ([a61dd72](https://github.com/themesberg/flowbite-svelte/commit/a61dd728d1eb01bdbfeb61ff3adf8f96d7a1fbde))
38
+ * remove svelte:component from FooterIcon ([0406128](https://github.com/themesberg/flowbite-svelte/commit/04061286046845c7f5c34f56ef89013d4a610aee))
39
+
5
40
  ### [0.26.1](https://github.com/themesberg/flowbite-svelte/compare/v0.26.0...v0.26.1) (2022-08-29)
6
41
 
7
42
 
@@ -1,64 +1,23 @@
1
- <script>import { setContext } from 'svelte';
2
- import classNames from 'classnames';
1
+ <script>import classNames from 'classnames';
3
2
  import { createEventDispatcher } from 'svelte';
4
3
  import CloseButton from '../utils/CloseButton.svelte';
4
+ import Frame from '../utils/Frame.svelte';
5
5
  const dispatch = createEventDispatcher();
6
- setContext('background', true);
7
6
  export let color = 'blue';
8
7
  export let dismissable = false;
9
8
  export let rounded = true;
10
9
  export let accent = false;
11
- export let customBgClass = '';
12
- export let customBorderAccentClass = '';
13
- export let customTextColor = '';
14
10
  let hidden = false;
15
- const handleAlert = () => {
16
- dispatch('handleAlert');
17
- };
18
11
  const handleHide = () => {
19
12
  hidden = !hidden;
20
- };
21
- const bgClasses = {
22
- gray: 'bg-gray-100 dark:bg-gray-200 ',
23
- red: 'bg-red-100 dark:bg-red-200',
24
- yellow: 'bg-yellow-100 dark:bg-yellow-200 ',
25
- green: 'bg-green-100 dark:bg-green-200 ',
26
- indigo: 'bg-indigo-100 dark:bg-indigo-200 ',
27
- purple: 'bg-purple-100 dark:bg-purple-200 ',
28
- pink: 'bg-pink-100 dark:bg-pink-200 ',
29
- blue: 'bg-blue-100 dark:bg-blue-200 ',
30
- dark: 'bg-gray-50 dark:bg-gray-700',
31
- custom: customBgClass
32
- };
33
- const borderAccentClasses = {
34
- gray: 'border-gray-500 dark:bg-gray-200 ',
35
- red: 'border-red-500 dark:bg-red-200 ',
36
- yellow: 'border-yellow-500 dark:bg-tellow-200 ',
37
- green: 'border-green-500 dark:bg-green-200 ',
38
- indigo: 'border-indigo-500 dark:bg-indigo-200 ',
39
- purple: 'border-purple-500 dark:bg-purple-200 ',
40
- pink: 'border-pink-500 dark:bg-pink-200 ',
41
- blue: 'border-blue-500 dark:bg-blue-200 ',
42
- dark: 'border-gray-500',
43
- custom: customBorderAccentClass
44
- };
45
- const textColors = {
46
- gray: 'text-gray-700 dark:text-gray-800',
47
- red: 'text-red-700 dark:text-red-800',
48
- yellow: 'text-yellow-700 dark:text-yellow-800',
49
- green: 'text-green-700 dark:text-green-800',
50
- indigo: 'text-indigo-700 dark:text-indigo-800',
51
- purple: 'text-purple-700 dark:text-purple-800',
52
- pink: 'text-pink-700 dark:text-pink-800',
53
- blue: 'text-blue-700 dark:text-blue-800',
54
- dark: 'text-gray-700 dark:text-gray-300',
55
- custom: customTextColor
13
+ dispatch('handleAlert');
14
+ dispatch('close'); // preffered name
56
15
  };
57
16
  let divClass;
58
- $: divClass = classNames('p-4 text-sm', bgClasses[color] ?? bgClasses.blue, accent && (borderAccentClasses[color] ?? borderAccentClasses.blue), rounded && 'rounded-lg ', accent && 'border-t-4 ', textColors[color], $$props.class);
17
+ $: divClass = classNames('p-4 text-sm', accent && 'border-t-4 ', hidden && 'hidden', $$props.class);
59
18
  </script>
60
19
 
61
- <div id={$$props.id} class:hidden class={divClass} role="alert">
20
+ <Frame {color} {rounded} {...$$restProps} class={divClass} role="alert">
62
21
  <div class="flex items-center whitespace-pre-wrap">
63
22
  {#if $$slots.icon}
64
23
  <slot name="icon" />
@@ -71,7 +30,6 @@ $: divClass = classNames('p-4 text-sm', bgClasses[color] ?? bgClasses.blue, acce
71
30
  class="-mx-1.5 -my-1.5"
72
31
  {color}
73
32
  on:click={handleHide}
74
- on:click={handleAlert}
75
33
  on:click
76
34
  on:change
77
35
  on:keydown
@@ -83,4 +41,4 @@ $: divClass = classNames('p-4 text-sm', bgClasses[color] ?? bgClasses.blue, acce
83
41
  {/if}
84
42
  </div>
85
43
  <slot name="extra" />
86
- </div>
44
+ </Frame>
@@ -6,9 +6,6 @@ declare const __propDef: {
6
6
  dismissable?: boolean;
7
7
  rounded?: boolean;
8
8
  accent?: boolean;
9
- customBgClass?: string;
10
- customBorderAccentClass?: string;
11
- customTextColor?: string;
12
9
  };
13
10
  events: {
14
11
  click: MouseEvent;
@@ -20,6 +17,7 @@ declare const __propDef: {
20
17
  mouseenter: CustomEvent<any>;
21
18
  mouseleave: CustomEvent<any>;
22
19
  handleAlert: CustomEvent<any>;
20
+ close: CustomEvent<any>;
23
21
  } & {
24
22
  [evt: string]: CustomEvent<any>;
25
23
  };
package/cards/Card.svelte CHANGED
@@ -1,12 +1,11 @@
1
1
  <script>import classNames from 'classnames';
2
- import { setContext } from 'svelte';
2
+ import Frame from '../utils/Frame.svelte';
3
3
  export let href = undefined;
4
4
  export let horizontal = false;
5
5
  export let reverse = false;
6
6
  export let img = undefined;
7
7
  export let padding = 'lg';
8
8
  export let size = 'sm';
9
- setContext('background', true);
10
9
  const paddings = {
11
10
  none: 'p-0',
12
11
  sm: 'p-4',
@@ -24,12 +23,12 @@ const sizes = {
24
23
  let innerPdding;
25
24
  $: innerPdding = paddings[padding];
26
25
  let cardClass;
27
- $: cardClass = classNames('flex', sizes[size], reverse ? 'flex-col-reverse' : 'flex-col', horizontal && (reverse ? 'md:flex-row-reverse md:max-w-xl' : 'md:flex-row md:max-w-xl'), 'bg-white dark:bg-gray-800 shadow-md', 'text-gray-500 dark:text-gray-400', 'rounded-lg border border-gray-200 dark:border-gray-700', href && 'hover:bg-gray-100 dark:hover:bg-gray-700', !img && innerPdding, $$props.class);
26
+ $: cardClass = classNames('flex', sizes[size], reverse ? 'flex-col-reverse' : 'flex-col', horizontal && (reverse ? 'md:flex-row-reverse md:max-w-xl' : 'md:flex-row md:max-w-xl'), href && 'hover:bg-gray-100 dark:hover:bg-gray-700', !img && innerPdding, $$props.class);
28
27
  let imgClass;
29
28
  $: imgClass = classNames(reverse ? 'rounded-b-lg' : 'rounded-t-lg', horizontal && 'object-cover w-full h-96 md:h-auto md:w-48 md:rounded-none', horizontal && (reverse ? 'md:rounded-r-lg' : 'md:rounded-l-lg'));
30
29
  </script>
31
30
 
32
- <svelte:element this={href ? 'a' : 'div'} {href} class={cardClass}>
31
+ <Frame tag={href ? 'a' : 'div'} rounded shadow border {href} class={cardClass}>
33
32
  {#if img}
34
33
  <img class={imgClass} src={img} alt="" />
35
34
  <div class={innerPdding}>
@@ -38,4 +37,4 @@ $: imgClass = classNames(reverse ? 'rounded-b-lg' : 'rounded-t-lg', horizontal &
38
37
  {:else}
39
38
  <slot />
40
39
  {/if}
41
- </svelte:element>
40
+ </Frame>
@@ -1,12 +1,11 @@
1
- <script>import { setContext } from 'svelte';
2
- import Button from '../buttons/Button.svelte';
1
+ <script>import Button from '../buttons/Button.svelte';
2
+ import Frame from '../utils/Frame.svelte';
3
3
  import Popper from '../utils/Popper.svelte';
4
4
  import classNames from 'classnames';
5
5
  import ChevronUp from '../utils/ChevronUp.svelte';
6
6
  import ChevronRight from '../utils/ChevronRight.svelte';
7
7
  import ChevronDown from '../utils/ChevronDown.svelte';
8
8
  import ChevronLeft from '../utils/ChevronLeft.svelte';
9
- import generateId from '../utils/generateId';
10
9
  export let label = '';
11
10
  export let inline = false;
12
11
  export let arrowIcon = true;
@@ -14,8 +13,6 @@ export let labelClass = 'flex items-center justify-between w-full py-2 pl-3 pr-4
14
13
  export let placement = 'bottom';
15
14
  export let open = false;
16
15
  export let triggeredBy = undefined;
17
- let id = generateId();
18
- setContext('background', true);
19
16
  const icons = {
20
17
  top: ChevronUp,
21
18
  right: ChevronRight,
@@ -25,13 +22,13 @@ const icons = {
25
22
  // @ts-ignore
26
23
  $: icon = icons[placement.split('-')[0]];
27
24
  let popoverClass;
28
- $: popoverClass = classNames('rounded-lg shadow-sm', 'bg-white dark:bg-gray-800', 'text-gray-500 dark:text-gray-400', 'border border-gray-200 dark:border-gray-700', 'outline-none', $$props.class);
25
+ $: popoverClass = classNames('outline-none', $$props.class);
29
26
  </script>
30
27
 
31
28
  {#if label}
32
29
  <slot name="trigger">
33
30
  {#if inline}
34
- <button {id} class={labelClass} class:flex-row-reverse={icon == ChevronLeft}>
31
+ <button class={labelClass} class:flex-row-reverse={icon == ChevronLeft}>
35
32
  <slot name="label">{label}</slot>
36
33
  {#if arrowIcon}
37
34
  <svelte:component
@@ -40,7 +37,7 @@ $: popoverClass = classNames('rounded-lg shadow-sm', 'bg-white dark:bg-gray-800'
40
37
  {/if}
41
38
  </button>
42
39
  {:else}
43
- <Button {id} {...$$restProps} class={icon == ChevronLeft && 'flex-row-reverse'}>
40
+ <Button {...$$restProps} class={icon == ChevronLeft && 'flex-row-reverse'}>
44
41
  <slot name="label">{label}</slot>
45
42
  {#if arrowIcon}
46
43
  <svelte:component
@@ -52,19 +49,12 @@ $: popoverClass = classNames('rounded-lg shadow-sm', 'bg-white dark:bg-gray-800'
52
49
  </slot>
53
50
  {/if}
54
51
 
55
- <Popper
56
- activeContent={true}
57
- arrow={false}
58
- {placement}
59
- {...$$restProps}
60
- class={popoverClass}
61
- trigger="click"
62
- on:show
63
- bind:open
64
- triggeredBy={triggeredBy ?? '#' + id}>
65
- <slot name="content">
66
- <ul class="py-1">
67
- <slot />
68
- </ul>
69
- </slot>
52
+ <Popper activeContent={true} arrow={false} {placement} trigger="click" on:show bind:open {triggeredBy}>
53
+ <Frame class={popoverClass} rounded border shadow>
54
+ <slot name="content">
55
+ <ul class="py-1">
56
+ <slot />
57
+ </ul>
58
+ </slot>
59
+ </Frame>
70
60
  </Popper>
@@ -2,15 +2,12 @@
2
2
  export let href = '';
3
3
  export let ariaLabel = '';
4
4
  export let aClass = 'text-gray-500 hover:text-gray-900 dark:hover:text-white';
5
- export let icon = null;
6
- export let iconClass = 'h-5 w-5';
7
- export let size = '20';
8
5
  </script>
9
6
 
10
7
  {#if href}
11
8
  <a {href} aria-label={ariaLabel} class={classNames(aClass, $$props.class)}>
12
- <svelte:component this={icon} {size} class={iconClass} />
9
+ <slot />
13
10
  </a>
14
11
  {:else}
15
- <svelte:component this={icon} {size} class={iconClass} />
12
+ <slot />
16
13
  {/if}
@@ -1,19 +1,17 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { SvelteComponent } from 'svelte';
3
2
  declare const __propDef: {
4
3
  props: {
5
4
  [x: string]: any;
6
5
  href?: string;
7
6
  ariaLabel?: string;
8
7
  aClass?: string;
9
- icon?: typeof SvelteComponent | null;
10
- iconClass?: string;
11
- size?: string;
12
8
  };
13
9
  events: {
14
10
  [evt: string]: CustomEvent<any>;
15
11
  };
16
- slots: {};
12
+ slots: {
13
+ default: {};
14
+ };
17
15
  };
18
16
  export declare type FooterIconProps = typeof __propDef.props;
19
17
  export declare type FooterIconEvents = typeof __propDef.events;
@@ -1,21 +1,17 @@
1
1
  <script>import classNames from 'classnames';
2
- // import type { InputType } from '../types';
3
- // export let type: InputType = 'text';
4
2
  export let value = '';
5
3
  export let size = 'md';
6
- export let icon;
7
4
  export let noBorder = false;
8
5
  export let inputClass = 'rounded-none rounded-r-lg bg-gray-50 border border-gray-300 text-gray-900 focus:ring-blue-500 focus:border-blue-500 block flex-1 min-w-0 w-full border-gray-300 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';
9
6
  export let spanClass = 'inline-flex items-center px-3 text-sm text-gray-900 bg-gray-200 rounded-l-md border border-r-0 border-gray-300 dark:bg-gray-600 dark:text-gray-400 dark:border-gray-600';
10
- export let noBorderInputClass = 'bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full pl-10 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';
7
+ export let noBorderInputClass = 'bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full 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
8
  export let pointerEvent = false;
12
9
  export let noBorderDivClass = 'flex absolute inset-y-0 left-0 items-center pl-3';
13
- export let iconClass = 'mr-2';
14
10
  </script>
15
11
 
16
12
  {#if noBorder}
17
13
  <div class="relative">
18
- <span
14
+ <div
19
15
  class={classNames(
20
16
  noBorderDivClass,
21
17
  {
@@ -24,47 +20,27 @@ export let iconClass = 'mr-2';
24
20
  'sm:text-md p-4': size === 'lg'
25
21
  },
26
22
  pointerEvent ? 'cursor-pointer' : 'pointer-events-none'
27
- )}
28
- >
29
- <svelte:component
30
- this={icon}
31
- on:click
32
- size={classNames({
33
- 16: size === 'sm',
34
- 18: size === 'md',
35
- 20: size === 'lg'
36
- })}
37
- class={iconClass}
38
- />
39
- </span>
23
+ )}>
24
+ <slot />
25
+ </div>
40
26
  <input
41
27
  {...$$restProps}
42
28
  bind:value
43
29
  class={classNames(
44
30
  noBorderInputClass,
45
31
  {
46
- 'p-2 sm:text-xs': size === 'sm',
47
- 'p-2.5 text-sm': size === 'md',
48
- 'sm:text-md p-4': size === 'lg'
32
+ 'p-2 sm:text-xs pl-9': size === 'sm',
33
+ 'p-2.5 text-sm pl-10': size === 'md',
34
+ 'sm:text-md p-4 pl-11': size === 'lg'
49
35
  },
50
36
  $$props.class
51
- )}
52
- />
37
+ )} />
53
38
  </div>
54
39
  {:else}
55
40
  <div class="flex">
56
- <div class={spanClass}>
57
- <svelte:component
58
- this={icon}
59
- on:click
60
- size={classNames({
61
- 16: size === 'sm',
62
- 18: size === 'md',
63
- 20: size === 'lg'
64
- })}
65
- class={classNames(iconClass, pointerEvent ? 'cursor-pointer' : 'pointer-events-none')}
66
- />
67
- </div>
41
+ <span class={spanClass}>
42
+ <slot />
43
+ </span>
68
44
  <input
69
45
  {...$$restProps}
70
46
  bind:value
@@ -76,7 +52,6 @@ export let iconClass = 'mr-2';
76
52
  'sm:text-md p-4': size === 'lg'
77
53
  },
78
54
  $$props.class
79
- )}
80
- />
55
+ )} />
81
56
  </div>
82
57
  {/if}
@@ -1,25 +1,22 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { SvelteComponent } from 'svelte';
3
2
  declare const __propDef: {
4
3
  props: {
5
4
  [x: string]: any;
6
5
  value?: string;
7
6
  size?: 'sm' | 'md' | 'lg';
8
- icon: typeof SvelteComponent;
9
7
  noBorder?: boolean;
10
8
  inputClass?: string;
11
9
  spanClass?: string;
12
10
  noBorderInputClass?: string;
13
11
  pointerEvent?: boolean;
14
12
  noBorderDivClass?: string;
15
- iconClass?: string;
16
13
  };
17
14
  events: {
18
- click: any;
19
- } & {
20
15
  [evt: string]: CustomEvent<any>;
21
16
  };
22
- slots: {};
17
+ slots: {
18
+ default: {};
19
+ };
23
20
  };
24
21
  export declare type IconinputProps = typeof __propDef.props;
25
22
  export declare type IconinputEvents = typeof __propDef.events;
@@ -46,5 +46,4 @@ const setType = (node) => {
46
46
  'sm:text-md p-4': size === 'lg'
47
47
  },
48
48
  $$props.class
49
- )}
50
- />
49
+ )} />
package/index.d.ts CHANGED
@@ -88,16 +88,6 @@ export { default as TableBodyRow } from './tables/TableBodyRow.svelte';
88
88
  export { default as TableHead } from './tables/TableHead.svelte';
89
89
  export { default as TableHeadCell } from './tables/TableHeadCell.svelte';
90
90
  export { default as TableSearch } from './tables/TableSearch.svelte';
91
- export { default as Tabs } from './tabs/Tabs.svelte';
92
- export { tabStore } from './tabs/tabStores.js';
93
- export { default as InteractiveTabHead } from './tabs/InteractiveTabHead.svelte';
94
- export { default as InteractiveTabs } from './tabs/InteractiveTabs.svelte';
95
- export { default as DefaultTabs } from './tabs/DefaultTabs.svelte';
96
- export { default as FullWidthTabs } from './tabs/FullWidthTabs.svelte';
97
- export { default as IconTabs } from './tabs/IconTabs.svelte';
98
- export { default as PillTabs } from './tabs/PillTabs.svelte';
99
- export { default as TabContent } from './tabs/TabContent.svelte';
100
- export { default as UnderlineTabs } from './tabs/UnderlineTabs.svelte';
101
91
  export { default as TabHead } from './tabs/TabHead.svelte';
102
92
  export { default as TabHeadItem } from './tabs/TabHeadItem.svelte';
103
93
  export { default as TabContentItem } from './tabs/TabContentItem.svelte';
package/index.js CHANGED
@@ -116,17 +116,6 @@ export { default as TableHead } from './tables/TableHead.svelte';
116
116
  export { default as TableHeadCell } from './tables/TableHeadCell.svelte';
117
117
  export { default as TableSearch } from './tables/TableSearch.svelte';
118
118
  // Tabs
119
- export { default as Tabs } from './tabs/Tabs.svelte';
120
- export { tabStore } from './tabs/tabStores.js';
121
- export { default as InteractiveTabHead } from './tabs/InteractiveTabHead.svelte';
122
- export { default as InteractiveTabs } from './tabs/InteractiveTabs.svelte';
123
- export { default as DefaultTabs } from './tabs/DefaultTabs.svelte';
124
- export { default as FullWidthTabs } from './tabs/FullWidthTabs.svelte';
125
- export { default as IconTabs } from './tabs/IconTabs.svelte';
126
- export { default as PillTabs } from './tabs/PillTabs.svelte';
127
- export { default as TabContent } from './tabs/TabContent.svelte';
128
- export { default as UnderlineTabs } from './tabs/UnderlineTabs.svelte';
129
- // Tabs new
130
119
  export { default as TabHead } from './tabs/TabHead.svelte';
131
120
  export { default as TabHeadItem } from './tabs/TabHeadItem.svelte';
132
121
  export { default as TabContentItem } from './tabs/TabContentItem.svelte';
@@ -1,18 +1,18 @@
1
1
  <script>import { setContext } from 'svelte';
2
2
  import classNames from 'classnames';
3
3
  import ListItem from './ListItem.svelte';
4
+ import Frame from '../utils/Frame.svelte';
4
5
  export let items = [];
5
6
  export let active = false;
6
- setContext('background', true);
7
7
  $: setContext('active', active);
8
8
  let groupClass;
9
- $: groupClass = classNames('text-gray-900 bg-white dark:text-gray-200 dark:bg-gray-700', 'rounded-lg border border-gray-200 dark:border-gray-600', 'divide-y divide-gray-200 dark:divide-gray-600', $$props.class);
9
+ $: groupClass = classNames('divide-y divide-gray-200 dark:divide-gray-600', $$props.class);
10
10
  </script>
11
11
 
12
- <svelte:element this={active ? 'div' : 'ul'} class={groupClass}>
12
+ <Frame tag={active ? 'div' : 'ul'} rounded border class={groupClass}>
13
13
  {#each items as item, index}
14
14
  <ListItem {active} {...item} {index} on:click><slot {item} {index} /></ListItem>
15
15
  {:else}
16
16
  <slot />
17
17
  {/each}
18
- </svelte:element>
18
+ </Frame>
@@ -1,4 +1,5 @@
1
- <script>import { createEventDispatcher, setContext } from 'svelte';
1
+ <script>import Frame from '../utils/Frame.svelte';
2
+ import { createEventDispatcher } from 'svelte';
2
3
  import CloseButton from '../utils/CloseButton.svelte';
3
4
  import focusTrap from '../utils/focusTrap';
4
5
  export let open = false;
@@ -8,7 +9,6 @@ export let placement = 'center';
8
9
  export let autoclose = true;
9
10
  export let backdropClasses = 'bg-gray-900 bg-opacity-50 dark:bg-opacity-80 fixed inset-0 z-40';
10
11
  const dispatch = createEventDispatcher();
11
- setContext('background', true);
12
12
  const allPlacementClasses = [
13
13
  'justify-start',
14
14
  'justify-center',
@@ -110,13 +110,10 @@ const hide = () => {
110
110
  role={open ? 'dialog' : undefined}
111
111
  use:init={open}
112
112
  use:focusTrap={open}
113
- on:click={onButtonsClick}
114
- >
113
+ on:click={onButtonsClick}>
115
114
  <div class="relative p-4 w-full {sizes[size]} h-full md:h-auto">
116
115
  <!-- Modal content -->
117
- <div
118
- class="relative bg-white rounded-lg shadow dark:bg-gray-700 text-gray-500 dark:text-gray-400"
119
- >
116
+ <Frame rounded shadow class="relative">
120
117
  <!-- Modal header -->
121
118
  {#if $$slots.header || title}
122
119
  <div class="flex justify-between items-center p-4 rounded-t border-b dark:border-gray-600">
@@ -136,12 +133,10 @@ const hide = () => {
136
133
  </div>
137
134
  <!-- Modal footer -->
138
135
  {#if $$slots.footer}
139
- <div
140
- class="flex items-center p-6 space-x-2 rounded-b border-t border-gray-200 dark:border-gray-600"
141
- >
136
+ <div class="flex items-center p-6 space-x-2 rounded-b border-t border-gray-200 dark:border-gray-600">
142
137
  <slot name="footer" />
143
138
  </div>
144
139
  {/if}
145
- </div>
140
+ </Frame>
146
141
  </div>
147
142
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flowbite-svelte",
3
- "version": "0.26.1",
3
+ "version": "0.26.4",
4
4
  "description": "Flowbite components for Svelte",
5
5
  "main": "index.js",
6
6
  "author": {
@@ -31,9 +31,8 @@
31
31
  "prism-themes": "^1.9.0",
32
32
  "svelte": "^3.49.0",
33
33
  "svelte-check": "^2.8.0",
34
- "svelte-flag-icons": "^0.1.1",
35
34
  "svelte-preprocess": "^4.10.7",
36
- "svelte-sidebar-menu": "^0.8.11",
35
+ "svelte-sidebar-menu": "^0.9.11",
37
36
  "svelte2tsx": "^0.5.13",
38
37
  "tailwindcss": "^3.1.8",
39
38
  "tslib": "^2.4.0",
@@ -84,8 +83,7 @@
84
83
  "@floating-ui/dom": "^1.0.1",
85
84
  "@popperjs/core": "^2.11.6",
86
85
  "classnames": "^2.3.1",
87
- "flowbite": "^1.5.2",
88
- "svelte-heros": "^2.3.3"
86
+ "flowbite": "^1.5.2"
89
87
  },
90
88
  "engines": {
91
89
  "npm": ">=7.0.0",
@@ -200,21 +198,11 @@
200
198
  "./tables/TableHead.svelte": "./tables/TableHead.svelte",
201
199
  "./tables/TableHeadCell.svelte": "./tables/TableHeadCell.svelte",
202
200
  "./tables/TableSearch.svelte": "./tables/TableSearch.svelte",
203
- "./tabs/DefaultTabs.svelte": "./tabs/DefaultTabs.svelte",
204
- "./tabs/FullWidthTabs.svelte": "./tabs/FullWidthTabs.svelte",
205
- "./tabs/IconTabs.svelte": "./tabs/IconTabs.svelte",
206
- "./tabs/InteractiveTabHead.svelte": "./tabs/InteractiveTabHead.svelte",
207
- "./tabs/InteractiveTabs.svelte": "./tabs/InteractiveTabs.svelte",
208
- "./tabs/PillTabs.svelte": "./tabs/PillTabs.svelte",
209
- "./tabs/TabContent.svelte": "./tabs/TabContent.svelte",
210
201
  "./tabs/TabContentItem.svelte": "./tabs/TabContentItem.svelte",
211
202
  "./tabs/TabContentWrapper.svelte": "./tabs/TabContentWrapper.svelte",
212
203
  "./tabs/TabHead.svelte": "./tabs/TabHead.svelte",
213
204
  "./tabs/TabHeadItem.svelte": "./tabs/TabHeadItem.svelte",
214
205
  "./tabs/TabWrapper.svelte": "./tabs/TabWrapper.svelte",
215
- "./tabs/Tabs.svelte": "./tabs/Tabs.svelte",
216
- "./tabs/UnderlineTabs.svelte": "./tabs/UnderlineTabs.svelte",
217
- "./tabs/tabStores": "./tabs/tabStores.js",
218
206
  "./timelines/Activity.svelte": "./timelines/Activity.svelte",
219
207
  "./timelines/ActivityItem.svelte": "./timelines/ActivityItem.svelte",
220
208
  "./timelines/Group.svelte": "./timelines/Group.svelte",
@@ -246,6 +234,7 @@
246
234
  "./utils/ChevronRight.svelte": "./utils/ChevronRight.svelte",
247
235
  "./utils/ChevronUp.svelte": "./utils/ChevronUp.svelte",
248
236
  "./utils/CloseButton.svelte": "./utils/CloseButton.svelte",
237
+ "./utils/Frame.svelte": "./utils/Frame.svelte",
249
238
  "./utils/InformationCircle.svelte": "./utils/InformationCircle.svelte",
250
239
  "./utils/Popper.svelte": "./utils/Popper.svelte",
251
240
  "./utils/UserCircle.svelte": "./utils/UserCircle.svelte",
@@ -1,22 +1,20 @@
1
1
  <script>import Popper from '../utils/Popper.svelte';
2
2
  import classNames from 'classnames';
3
3
  export let title = '';
4
- export let triggeredBy;
5
4
  let popoverClass;
6
5
  $: popoverClass = classNames('rounded-lg shadow-sm', 'bg-white dark:bg-gray-800', 'text-gray-500 dark:text-gray-400', 'border border-gray-200 dark:border-gray-700', $$props.class);
7
6
  </script>
8
7
 
9
- <Popper activeContent={true} {triggeredBy} {...$$restProps} class={popoverClass} on:show>
10
- <slot name="trigger" slot="trigger" />
11
- {#if $$slots.title || title}
12
- <div
13
- class="py-2 px-3 bg-gray-100 rounded-t-lg border-b border-gray-200 dark:border-gray-600 dark:bg-gray-700">
14
- <slot name="title">
15
- <h3 class="font-semibold text-gray-900 dark:text-white">{title}</h3>
16
- </slot>
17
- </div>
18
- {/if}
19
- <div class="py-2 px-3">
20
- <slot />
21
- </div>
8
+ <Popper activeContent={true} {...$$restProps} class={popoverClass} on:show>
9
+ {#if $$slots.title || title}
10
+ <div
11
+ class="py-2 px-3 bg-gray-100 rounded-t-lg border-b border-gray-200 dark:border-gray-600 dark:bg-gray-700">
12
+ <slot name="title">
13
+ <h3 class="font-semibold text-gray-900 dark:text-white">{title}</h3>
14
+ </slot>
15
+ </div>
16
+ {/if}
17
+ <div class="py-2 px-3">
18
+ <slot />
19
+ </div>
22
20
  </Popper>
@@ -3,7 +3,6 @@ declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
5
  title?: string;
6
- triggeredBy: string;
7
6
  };
8
7
  events: {
9
8
  show: CustomEvent<any>;
@@ -11,9 +10,6 @@ declare const __propDef: {
11
10
  [evt: string]: CustomEvent<any>;
12
11
  };
13
12
  slots: {
14
- trigger: {
15
- slot: string;
16
- };
17
13
  title: {};
18
14
  default: {};
19
15
  };