flowbite-svelte 0.23.3 → 0.24.2

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.
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.24.2](https://github.com/themesberg/flowbite-svelte/compare/v0.24.1...v0.24.2) (2022-08-07)
6
+
7
+
8
+ ### Features
9
+
10
+ * add export divClass to Toast for user custom CSS ([7625c01](https://github.com/themesberg/flowbite-svelte/commit/7625c017af9a91920880b3d9c09d8f02924178e5))
11
+
12
+ ### [0.24.1](https://github.com/themesberg/flowbite-svelte/compare/v0.24.0...v0.24.1) (2022-08-07)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * change from import { CloseButton } from $lib to import CloseButton from "../utils/CloseButton.svelte" in lib dir ([4eb4346](https://github.com/themesberg/flowbite-svelte/commit/4eb4346a2c4679d58c00309e0cb1a28304888a72))
18
+ * update Button color types ([974df12](https://github.com/themesberg/flowbite-svelte/commit/974df12eaf2d796676700df09f2ee83d24ffc328))
19
+
20
+ ## [0.24.0](https://github.com/themesberg/flowbite-svelte/compare/v0.23.3...v0.24.0) (2022-08-07)
21
+
22
+
23
+ ### ⚠ BREAKING CHANGES
24
+
25
+ * change node version to 0.16.16 since new playwright and sveltekit require it, https://github.com/sveltejs/kit/issues/5842
26
+
27
+ ### Features
28
+
29
+ * change node version to 0.16.16 since new playwright and sveltekit require it, https://github.com/sveltejs/kit/issues/5842 ([6175c2c](https://github.com/themesberg/flowbite-svelte/commit/6175c2cb54c60829eb329bce90772e59b888063f))
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * [#200](https://github.com/themesberg/flowbite-svelte/issues/200) undefined in tooltips ([4ed2ec0](https://github.com/themesberg/flowbite-svelte/commit/4ed2ec04945676cbc3e40011fb7790d1de18d8db))
35
+ * A11y fix for all alt taking out picture for img tag ([a247c32](https://github.com/themesberg/flowbite-svelte/commit/a247c32171543450647877a0f7192e63ee64fbb5))
36
+ * add CloseButton to index and change import from $lib ([cc8fe25](https://github.com/themesberg/flowbite-svelte/commit/cc8fe2504474f6a0fbefb5474ef5cf798f6a28a8))
37
+ * alerts with list color removal ([f940441](https://github.com/themesberg/flowbite-svelte/commit/f940441098e4f033b6dd405d0cb774e6d8b5030e))
38
+ * clean up import from utils for docs ([b50126d](https://github.com/themesberg/flowbite-svelte/commit/b50126d2f78e7613e48008b46c0bd77cdc7471fa))
39
+
5
40
  ### [0.23.3](https://github.com/themesberg/flowbite-svelte/compare/v0.23.2...v0.23.3) (2022-08-05)
6
41
 
7
42
 
package/README.md CHANGED
@@ -5,6 +5,8 @@
5
5
  [![release](https://badgen.net/github/release/themesberg/flowbite-svelte)](https://github.com/themesberg/flowbite-svelte/releases)
6
6
  [![license](https://badgen.net/npm/license/flowbite-svelte)](https://github.com/themesberg/flowbite-svelte/blob/main/LICENSE)
7
7
 
8
+ **⚠️ Flowbite-Svelte is currently in early development and APIs and packages are likely to change quite often.**
9
+
8
10
  <p>
9
11
  <a href="https://flowbite-svelte.com" >
10
12
  <img alt="Flowbite-Svelte CSS components" width="350" src="https://raw.githubusercontent.com/themesberg/flowbite-svelte/main/static/images/flowbite-svelte.png">
@@ -7,7 +7,7 @@ declare const __propDef: {
7
7
  gradient?: boolean;
8
8
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
9
9
  href?: string;
10
- color?: 'blue' | 'alternative' | 'dark' | 'light' | 'green' | 'red' | 'yellow' | 'purple';
10
+ color?: 'alternative' | 'blue' | 'cyan' | 'dark' | 'light' | 'lime' | 'green' | 'pink' | 'red' | 'teal' | 'yellow' | 'purple' | 'purpleToBlue' | 'cyanToBlue' | 'greenToBlue' | 'purpleToPink' | 'pinkToOrange' | 'tealToLime' | 'redToYellow';
11
11
  shadow?: 'blue' | 'green' | 'cyan' | 'teal' | 'lime' | 'red' | 'pink' | 'purple' | null;
12
12
  };
13
13
  events: {
package/cards/Card.svelte CHANGED
@@ -5,17 +5,26 @@ export let horizontal = false;
5
5
  export let reverse = false;
6
6
  export let img = undefined;
7
7
  export let padding = 'lg';
8
+ export let size = 'sm';
8
9
  setContext('background', true);
9
10
  const paddings = {
11
+ none: 'p-0',
10
12
  sm: 'p-4',
11
13
  md: 'p-5',
12
14
  lg: 'p-6',
13
15
  xl: 'p-8'
14
16
  };
17
+ const sizes = {
18
+ xs: 'max-w-xs',
19
+ sm: 'max-w-sm',
20
+ md: 'max-w-lg',
21
+ lg: 'max-w-2xl',
22
+ xl: 'max-w-screen-xl'
23
+ };
15
24
  let innerPdding;
16
25
  $: innerPdding = paddings[padding];
17
26
  let cardClass;
18
- $: cardClass = classNames('block max-w-sm', 'flex', 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);
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);
19
28
  let imgClass;
20
29
  $: 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'));
21
30
  </script>
@@ -27,6 +36,6 @@ $: imgClass = classNames(reverse ? 'rounded-b-lg' : 'rounded-t-lg', horizontal &
27
36
  <slot />
28
37
  </div>
29
38
  {:else}
30
- <div><slot /></div>
39
+ <slot />
31
40
  {/if}
32
41
  </svelte:element>
@@ -6,7 +6,8 @@ declare const __propDef: {
6
6
  horizontal?: boolean;
7
7
  reverse?: boolean;
8
8
  img?: string;
9
- padding?: 'sm' | 'md' | 'lg';
9
+ padding?: 'none' | 'sm' | 'md' | 'lg';
10
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
10
11
  };
11
12
  events: {
12
13
  [evt: string]: CustomEvent<any>;
package/index.d.ts CHANGED
@@ -108,3 +108,4 @@ export { default as TimelineItemHorizontal } from './timelines/TimelineItemHoriz
108
108
  export { default as TimelineItemVertical } from './timelines/TimelineItemVertical.svelte';
109
109
  export { default as Toast } from './toasts/Toast.svelte';
110
110
  export { default as Tooltip } from './tooltips/Tooltip.svelte';
111
+ export { default as CloseButton } from './utils/CloseButton.svelte';
package/index.js CHANGED
@@ -139,3 +139,5 @@ export { default as TimelineItemVertical } from './timelines/TimelineItemVertica
139
139
  export { default as Toast } from './toasts/Toast.svelte';
140
140
  // Tooltips
141
141
  export { default as Tooltip } from './tooltips/Tooltip.svelte';
142
+ // utils
143
+ export { default as CloseButton } from './utils/CloseButton.svelte';
@@ -1,5 +1,4 @@
1
- <script>import { createEventDispatcher } from 'svelte';
2
- import { setContext } from 'svelte';
1
+ <script>import { createEventDispatcher, setContext } from 'svelte';
3
2
  import CloseButton from '../utils/CloseButton.svelte';
4
3
  import focusTrap from '../utils/focusTrap';
5
4
  export let open = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flowbite-svelte",
3
- "version": "0.23.3",
3
+ "version": "0.24.2",
4
4
  "description": "Flowbite components for Svelte",
5
5
  "main": "index.js",
6
6
  "author": {
@@ -86,7 +86,7 @@
86
86
  },
87
87
  "engines": {
88
88
  "npm": ">=7.0.0",
89
- "node": ">=16.0.0"
89
+ "node": ">=16.16.0"
90
90
  },
91
91
  "contributors": [
92
92
  "Zoltán Szőgyényi <zoltan@themesberg.com>",
@@ -10,6 +10,7 @@ export let params = {};
10
10
  // Absolute position
11
11
  export let position = undefined; // default not set
12
12
  export let visible = true;
13
+ export let divClass = 'w-full max-w-xs p-4 text-gray-500 bg-white rounded-lg shadow dark:text-gray-400 dark:bg-gray-800';
13
14
  const colors = {
14
15
  blue: 'text-blue-500 bg-blue-100 dark:bg-blue-800 dark:text-blue-200',
15
16
  green: 'text-green-500 bg-green-100 dark:bg-green-800 dark:text-green-200',
@@ -22,8 +23,7 @@ const colors = {
22
23
  // have a custom transition function that returns the desired transition
23
24
  let transitionFunc;
24
25
  $: transitionFunc = transitions[transition] ?? transitions.fade;
25
- let divClass;
26
- $: divClass = classNames('w-full max-w-xs p-4 text-gray-500 bg-white rounded-lg shadow dark:text-gray-400 dark:bg-gray-800', {
26
+ $: classDiv = classNames(divClass, {
27
27
  'absolute top-5 left-5': position == 'tl',
28
28
  'absolute top-5 right-5': position == 'tr',
29
29
  'absolute bottom-5 left-5': position == 'bl',
@@ -34,7 +34,7 @@ $: iconClass = classNames('inline-flex items-center justify-center flex-shrink-0
34
34
  </script>
35
35
 
36
36
  {#if visible}
37
- <div transition:transitionFunc={params} class={divClass} role="alert">
37
+ <div transition:transitionFunc={params} class={classDiv} role="alert">
38
38
  <div class="flex {$$slots.extra ? 'items-start' : 'items-center'}">
39
39
  {#if $$slots.icon}
40
40
  <div class={iconClass}><slot name="icon" /></div>
@@ -9,6 +9,7 @@ declare const __propDef: {
9
9
  params?: TransitionParamTypes;
10
10
  position?: 'tl' | 'tr' | 'bl' | 'br';
11
11
  visible?: boolean;
12
+ divClass?: string;
12
13
  };
13
14
  events: {
14
15
  [evt: string]: CustomEvent<any>;
@@ -23,25 +23,12 @@ const arrowStyleClasses = {
23
23
  custom: tipColor
24
24
  };
25
25
  let toolTipClass;
26
- $: toolTipClass = classNames(tipClass, animation !== false && `transition-opacity ${animation}`, {
27
- 'invisible opacity-0': !open
28
- }, tipStyleClasses[style], $$props.class);
26
+ $: toolTipClass = classNames(tipClass, animation !== false && `transition-opacity ${animation}`, !open && 'invisible opacity-0', tipStyleClasses[style], $$props.class);
29
27
  let open = false;
30
- const floatingPlacement = ({ placement }) => {
28
+ const floatingPlacement = (placement) => {
31
29
  return placement === 'auto' ? undefined : placement;
32
30
  };
33
- const floatingArrowPlacement = ({ placement }) => {
34
- if (!placement) {
35
- return 'top';
36
- }
37
- return {
38
- top: 'bottom',
39
- right: 'left',
40
- bottom: 'top',
41
- left: 'right'
42
- }[placement.split('-')[0]];
43
- };
44
- const floatingMiddleware = ({ arrowRef, placement }) => {
31
+ const floatingMiddleware = (arrowRef, placement) => {
45
32
  const middleware = [];
46
33
  middleware.push(offset(8));
47
34
  middleware.push(placement === 'auto' ? autoPlacement() : flip());
@@ -54,8 +41,8 @@ const floatingMiddleware = ({ arrowRef, placement }) => {
54
41
  let placementData;
55
42
  let tooltipRef, triggerRef, arrowRef;
56
43
  const updatePosition = () => computePosition(triggerRef, tooltipRef, {
57
- middleware: floatingMiddleware({ arrowRef, placement }),
58
- placement: floatingPlacement({ placement })
44
+ middleware: floatingMiddleware(arrowRef, placement),
45
+ placement: floatingPlacement(placement)
59
46
  }).then((data) => (placementData = data));
60
47
  let attachedScroll = false;
61
48
  $: tooltipRef && open && updatePosition();
@@ -75,6 +62,24 @@ onDestroy(() => {
75
62
  window.removeEventListener('scroll', updatePosition, true);
76
63
  }
77
64
  });
65
+ const arrPos = {
66
+ top: 'bottom',
67
+ right: 'left',
68
+ bottom: 'top',
69
+ left: 'right'
70
+ };
71
+ let floatingArrowPlacement;
72
+ $: {
73
+ if (placementData) {
74
+ const arrow = placementData.middlewareData.arrow;
75
+ const pos = arrPos[placementData?.placement?.split('-')[0]] ?? 'top';
76
+ if (pos === 'top' || pos === 'bottom')
77
+ floatingArrowPlacement = `${pos}: -4px; left: ${px(arrow?.x)}`;
78
+ else
79
+ floatingArrowPlacement = `${pos}: -4px; top: ${px(arrow?.y)}`;
80
+ }
81
+ }
82
+ const px = (x) => (x === undefined ? '' : x + 'px');
78
83
  </script>
79
84
 
80
85
  <svelte:window on:resize={() => open && updatePosition()} />
@@ -112,7 +117,9 @@ onDestroy(() => {
112
117
  bind:this={tooltipRef}
113
118
  data-testid="tooltip"
114
119
  class={toolTipClass}
115
- style={`left:${placementData?.x}px;top:${placementData?.y}px;position:${placementData?.strategy}`}
120
+ style:left={px(placementData?.x)}
121
+ style:top={px(placementData?.y)}
122
+ style:position={placementData?.strategy ?? ''}
116
123
  >
117
124
  <div class="relative z-20">
118
125
  <slot name="content">
@@ -123,9 +130,7 @@ onDestroy(() => {
123
130
  <div
124
131
  class={classNames('absolute z-10 h-2 w-2 rotate-45', arrowStyleClasses[style])}
125
132
  data-testid="tooltip-arrow"
126
- style={`left:${placementData?.middlewareData.arrow?.x}px;top:${
127
- placementData?.middlewareData.arrow?.y
128
- }px;${floatingArrowPlacement({ placement: placementData?.placement })}:-4px`}
133
+ style={floatingArrowPlacement}
129
134
  bind:this={arrowRef}
130
135
  >
131
136
  &nbsp;
package/types.d.ts CHANGED
@@ -57,7 +57,7 @@ export interface CheckboxType {
57
57
  disabled?: boolean;
58
58
  helper?: string;
59
59
  }
60
- export declare type Colors = 'blue' | 'gray' | 'red' | 'yellow' | 'purple' | 'green' | 'indigo' | 'pink';
60
+ export declare type Colors = 'blue' | 'gray' | 'red' | 'yellow' | 'purple' | 'green' | 'indigo' | 'pink' | 'white';
61
61
  export declare type CrumbType = {
62
62
  label: string;
63
63
  href: string;