flowbite-svelte 0.27.16 → 0.27.17

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,18 @@
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.27.17](https://github.com/themesberg/flowbite-svelte/compare/v0.27.16...v0.27.17) (2022-11-18)
6
+
7
+
8
+ ### Features
9
+
10
+ * add SpeedDial component ([a959c5e](https://github.com/themesberg/flowbite-svelte/commit/a959c5edd96e56145453f0558f19be7f7a7fa8b5))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * checkbox group ([#427](https://github.com/themesberg/flowbite-svelte/issues/427)) ([58c6660](https://github.com/themesberg/flowbite-svelte/commit/58c66600abcb943c730dbd64e6e4ca920bc06f8e))
16
+
5
17
  ### [0.27.16](https://github.com/themesberg/flowbite-svelte/compare/v0.27.15...v0.27.16) (2022-11-14)
6
18
 
7
19
  ### [0.27.15](https://github.com/themesberg/flowbite-svelte/compare/v0.27.14...v0.27.15) (2022-11-13)
@@ -50,6 +50,7 @@ const coloredShadowClasses = {
50
50
  };
51
51
  const outlineClasses = {
52
52
  blue: 'text-blue-700 hover:text-white border border-blue-700 hover:bg-blue-800 focus:ring-blue-300 dark:border-blue-500 dark:text-blue-500 dark:hover:text-white dark:hover:bg-blue-600 dark:focus:ring-blue-800',
53
+ light: "text-gray-500 hover:text-gray-900 bg-white border border-gray-200 dark:border-gray-600 dark:hover:text-white dark:text-gray-400 hover:bg-gray-50 dark:bg-gray-700 dark:hover:bg-gray-600 focus:ring-4 focus:ring-gray-300 dark:focus:ring-gray-400",
53
54
  dark: 'text-gray-900 hover:text-white border border-gray-800 hover:bg-gray-900 focus:bg-gray-900 focus:text-white focus:ring-gray-300 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-600 dark:focus:ring-gray-800',
54
55
  green: 'text-green-700 hover:text-white border border-green-700 hover:bg-green-800 focus:ring-green-300 dark:border-green-500 dark:text-green-500 dark:hover:text-white dark:hover:bg-green-600 dark:focus:ring-green-800',
55
56
  red: 'text-red-700 hover:text-white border border-red-700 hover:bg-red-800 focus:ring-red-300 dark:border-red-500 dark:text-red-500 dark:hover:text-white dark:hover:bg-red-600 dark:focus:ring-red-900',
@@ -1,5 +1,5 @@
1
1
  <script>import { getContext } from 'svelte';
2
- import Radio, { labelClass, inputClass } from './Radio.svelte';
2
+ import { labelClass, inputClass } from './Radio.svelte';
3
3
  import Label from './Label.svelte';
4
4
  // properties forwarding
5
5
  export let color = 'blue';
@@ -10,7 +10,16 @@ export let value = '';
10
10
  export let checked = false;
11
11
  // tinted if put in component having its own background
12
12
  let background = getContext('background');
13
- $: {
13
+ // react on external group changes
14
+ function init(_, _group) {
15
+ checked = _group.includes(value);
16
+ return {
17
+ update(_group) {
18
+ checked = _group.includes(value);
19
+ }
20
+ };
21
+ }
22
+ function onChange() {
14
23
  // There's a bug in Svelte and bind:group is not working with wrapped checkbox
15
24
  // This workaround is taken from:
16
25
  // https://svelte.dev/repl/de117399559f4e7e9e14e2fc9ab243cc?version=3.12.1
@@ -34,6 +43,7 @@ $: {
34
43
 
35
44
  <Label class={labelClass(inline, $$props.class)} show={!!$$slots.default}>
36
45
  <input
46
+ use:init={group}
37
47
  type="checkbox"
38
48
  bind:checked
39
49
  on:keyup
@@ -46,6 +56,8 @@ $: {
46
56
  on:mouseenter
47
57
  on:mouseleave
48
58
  on:paste
59
+ on:change={onChange}
60
+ on:change
49
61
  {value}
50
62
  {...$$restProps}
51
63
  class={inputClass(custom, color, true, background, $$slots.default || $$props.class)} /><slot />
@@ -21,6 +21,7 @@ declare const __propDef: {
21
21
  mouseenter: MouseEvent;
22
22
  mouseleave: MouseEvent;
23
23
  paste: ClipboardEvent;
24
+ change: Event;
24
25
  } & {
25
26
  [evt: string]: CustomEvent<any>;
26
27
  };
@@ -9,7 +9,7 @@ declare const __propDef: {
9
9
  };
10
10
  events: {
11
11
  click: MouseEvent;
12
- change: CustomEvent<any>;
12
+ change: Event;
13
13
  } & {
14
14
  [evt: string]: CustomEvent<any>;
15
15
  };
package/index.d.ts CHANGED
@@ -81,6 +81,8 @@ export { default as TestimonialPlaceholder } from './skeleton/TestimonialPlaceho
81
81
  export { default as TextPlaceholder } from './skeleton/TextPlaceholder.svelte';
82
82
  export { default as VideoPlaceholder } from './skeleton/VideoPlaceholder.svelte';
83
83
  export { default as WidgetPlaceholder } from './skeleton/WidgetPlaceholder.svelte';
84
+ export { default as SpeedDial } from './speed-dial/SpeedDial.svelte';
85
+ export { default as SpeedDialButton } from './speed-dial/SpeedDialButton.svelte';
84
86
  export { default as Spinner } from './spinners/Spinner.svelte';
85
87
  export { default as Table } from './tables/Table.svelte';
86
88
  export { default as TableBody } from './tables/TableBody.svelte';
package/index.js CHANGED
@@ -107,6 +107,9 @@ export { default as TestimonialPlaceholder } from './skeleton/TestimonialPlaceho
107
107
  export { default as TextPlaceholder } from './skeleton/TextPlaceholder.svelte';
108
108
  export { default as VideoPlaceholder } from './skeleton/VideoPlaceholder.svelte';
109
109
  export { default as WidgetPlaceholder } from './skeleton/WidgetPlaceholder.svelte';
110
+ // Speed dial
111
+ export { default as SpeedDial } from './speed-dial/SpeedDial.svelte';
112
+ export { default as SpeedDialButton } from './speed-dial/SpeedDialButton.svelte';
110
113
  // Spin
111
114
  export { default as Spinner } from './spinners/Spinner.svelte';
112
115
  // Tables
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flowbite-svelte",
3
- "version": "0.27.16",
3
+ "version": "0.27.17",
4
4
  "description": "Flowbite components for Svelte",
5
5
  "main": "index.js",
6
6
  "author": {
@@ -196,6 +196,8 @@
196
196
  "./skeleton/TextPlaceholder.svelte": "./skeleton/TextPlaceholder.svelte",
197
197
  "./skeleton/VideoPlaceholder.svelte": "./skeleton/VideoPlaceholder.svelte",
198
198
  "./skeleton/WidgetPlaceholder.svelte": "./skeleton/WidgetPlaceholder.svelte",
199
+ "./speed-dial/SpeedDial.svelte": "./speed-dial/SpeedDial.svelte",
200
+ "./speed-dial/SpeedDialButton.svelte": "./speed-dial/SpeedDialButton.svelte",
199
201
  "./spinners/Spinner.svelte": "./spinners/Spinner.svelte",
200
202
  "./tables/Table.svelte": "./tables/Table.svelte",
201
203
  "./tables/TableBody.svelte": "./tables/TableBody.svelte",
@@ -0,0 +1,44 @@
1
+ <script context="module">export {};
2
+ </script>
3
+
4
+ <script>import classNames from 'classnames';
5
+ import Button from '../buttons/Button.svelte';
6
+ import Popper from '../utils/Popper.svelte';
7
+ import { setContext } from 'svelte';
8
+ import generateId from '../utils/generateId';
9
+ export let defaultClass = 'fixed right-6 bottom-6';
10
+ export let placement = 'top';
11
+ export let pill = true;
12
+ export let tooltip = 'left';
13
+ export let trigger = 'hover';
14
+ export let textOutside = false;
15
+ export let id = generateId();
16
+ setContext('speed-dial', { pill, tooltip, textOutside });
17
+ let divClass;
18
+ $: divClass = classNames(defaultClass, 'group', $$props.class);
19
+ let poperClass;
20
+ $: poperClass = classNames('flex items-center mb-4 gap-2', ['top', 'bottom'].includes(placement) && 'flex-col');
21
+ </script>
22
+
23
+ <div class={divClass}>
24
+ <Button {pill} name="Open actions menu" aria-controls={id} aria-expanded="false" color="blue" class="!p-3">
25
+ <slot name="icon">
26
+ <svg
27
+ aria-hidden="true"
28
+ class="w-8 h-8 transition-transform group-hover:rotate-45"
29
+ fill="none"
30
+ stroke="currentColor"
31
+ viewBox="0 0 24 24"
32
+ xmlns="http://www.w3.org/2000/svg"
33
+ ><path
34
+ stroke-linecap="round"
35
+ stroke-linejoin="round"
36
+ stroke-width="2"
37
+ d="M12 6v6m0 0v6m0-6h6m-6 0H6" /></svg>
38
+ </slot>
39
+ <span class="sr-only">Open actions menu</span>
40
+ </Button>
41
+ <Popper {id} {trigger} arrow={false} color="none" activeContent {placement} class={poperClass}>
42
+ <slot />
43
+ </Popper>
44
+ </div>
@@ -0,0 +1,32 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { Placement } from '@popperjs/core';
3
+ export interface SpeedCtxType {
4
+ pill: boolean;
5
+ tooltip: Placement | 'none';
6
+ textOutside: boolean;
7
+ }
8
+ declare const __propDef: {
9
+ props: {
10
+ [x: string]: any;
11
+ defaultClass?: string | undefined;
12
+ placement?: Placement | undefined;
13
+ pill?: boolean | undefined;
14
+ tooltip?: "none" | Placement | undefined;
15
+ trigger?: "click" | "hover" | undefined;
16
+ textOutside?: boolean | undefined;
17
+ id?: string | undefined;
18
+ };
19
+ events: {
20
+ [evt: string]: CustomEvent<any>;
21
+ };
22
+ slots: {
23
+ icon: {};
24
+ default: {};
25
+ };
26
+ };
27
+ export declare type SpeedDialProps = typeof __propDef.props;
28
+ export declare type SpeedDialEvents = typeof __propDef.events;
29
+ export declare type SpeedDialSlots = typeof __propDef.slots;
30
+ export default class SpeedDial extends SvelteComponentTyped<SpeedDialProps, SpeedDialEvents, SpeedDialSlots> {
31
+ }
32
+ export {};
@@ -0,0 +1,33 @@
1
+ <script>import Button from '../buttons/Button.svelte';
2
+ import Tooltip from '../tooltips/Tooltip.svelte';
3
+ import classNames from 'classnames';
4
+ import { getContext } from 'svelte';
5
+ export let name = '';
6
+ export let tooltip;
7
+ export let pill = undefined;
8
+ export let textOutside = undefined;
9
+ const context = getContext('speed-dial');
10
+ $: {
11
+ // set defaults
12
+ pill = pill ?? context?.pill ?? true;
13
+ tooltip = tooltip ?? context?.tooltip ?? 'left';
14
+ textOutside = textOutside ?? context?.textOutside ?? false;
15
+ }
16
+ let btnClass;
17
+ $: btnClass = classNames('w-[52px] h-[52px] shadow-sm !p-2', tooltip === 'none' && 'flex-col', textOutside && 'relative', $$props.class);
18
+ </script>
19
+
20
+ <Button {pill} outline color="light" {...$$restProps} class={btnClass} on:click>
21
+ <slot />
22
+ {#if tooltip !== 'none'}
23
+ <span class="sr-only">{name}</span>
24
+ {:else if textOutside}
25
+ <span class="block absolute -left-14 top-1/2 mb-px text-sm font-medium -translate-y-1/2">{name}</span>
26
+ {:else}
27
+ <span class="block mb-px text-xs font-medium">{name}</span>
28
+ {/if}
29
+ </Button>
30
+
31
+ {#if tooltip !== 'none'}
32
+ <Tooltip placement={tooltip} style="dark">{name}</Tooltip>
33
+ {/if}
@@ -0,0 +1,25 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { Placement } from '@popperjs/core';
3
+ declare const __propDef: {
4
+ props: {
5
+ [x: string]: any;
6
+ name?: string | undefined;
7
+ tooltip: Placement | 'none';
8
+ pill?: boolean | undefined;
9
+ textOutside?: boolean | undefined;
10
+ };
11
+ events: {
12
+ click: MouseEvent;
13
+ } & {
14
+ [evt: string]: CustomEvent<any>;
15
+ };
16
+ slots: {
17
+ default: {};
18
+ };
19
+ };
20
+ export declare type SpeedDialButtonProps = typeof __propDef.props;
21
+ export declare type SpeedDialButtonEvents = typeof __propDef.events;
22
+ export declare type SpeedDialButtonSlots = typeof __propDef.slots;
23
+ export default class SpeedDialButton extends SvelteComponentTyped<SpeedDialButtonProps, SpeedDialButtonEvents, SpeedDialButtonSlots> {
24
+ }
25
+ export {};