flowbite-svelte 0.27.5 → 0.27.8

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 (50) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +1 -1
  3. package/accordions/Accordion.svelte +2 -2
  4. package/accordions/Accordion.svelte.d.ts +1 -1
  5. package/accordions/AccordionItem.svelte +3 -1
  6. package/breadcrumbs/BreadcrumbItem.svelte +37 -44
  7. package/breadcrumbs/BreadcrumbItem.svelte.d.ts +1 -0
  8. package/buttons/Button.svelte +2 -6
  9. package/buttons/Button.svelte.d.ts +2 -2
  10. package/cards/Card.svelte +13 -13
  11. package/cards/Card.svelte.d.ts +3 -2
  12. package/carousels/CarouselTransition.svelte +1 -1
  13. package/carousels/Thumbnail.svelte +10 -1
  14. package/darkmode/DarkMode.svelte +27 -24
  15. package/drawer/Drawer.svelte +27 -14
  16. package/drawer/Drawer.svelte.d.ts +1 -0
  17. package/forms/Checkbox.svelte +17 -18
  18. package/forms/FloatingLabelInput.svelte.d.ts +1 -1
  19. package/forms/Helper.svelte.d.ts +1 -1
  20. package/forms/Input.svelte +22 -20
  21. package/forms/Input.svelte.d.ts +7 -2
  22. package/forms/Label.svelte.d.ts +1 -1
  23. package/forms/NumberInput.svelte +7 -0
  24. package/forms/NumberInput.svelte.d.ts +16 -0
  25. package/forms/Toggle.svelte +4 -13
  26. package/index.d.ts +3 -4
  27. package/index.js +3 -4
  28. package/list-group/ListgroupItem.svelte +38 -40
  29. package/modals/Modal.svelte +15 -12
  30. package/modals/Modal.svelte.d.ts +2 -1
  31. package/package.json +7 -6
  32. package/ratings/Rating.svelte +21 -20
  33. package/ratings/Rating.svelte.d.ts +1 -0
  34. package/tables/Table.svelte.d.ts +1 -1
  35. package/tables/TableSearch.svelte.d.ts +1 -1
  36. package/tabs/TabHead.svelte +4 -3
  37. package/tabs/TabHeadItem.svelte +3 -0
  38. package/tabs/TabItem.svelte +53 -0
  39. package/tabs/TabItem.svelte.d.ts +34 -0
  40. package/tabs/Tabs.svelte +50 -0
  41. package/tabs/Tabs.svelte.d.ts +33 -0
  42. package/tooltips/Tooltip.svelte.d.ts +1 -1
  43. package/typography/P.svelte.d.ts +1 -1
  44. package/utils/Frame.svelte.d.ts +1 -1
  45. package/utils/Popper.svelte +19 -16
  46. package/utils/focusTrap.js +15 -24
  47. package/tabs/TabContentItem.svelte +0 -10
  48. package/tabs/TabContentItem.svelte.d.ts +0 -20
  49. package/tabs/TabWrapper.svelte +0 -8
  50. package/tabs/TabWrapper.svelte.d.ts +0 -22
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.27.8](https://github.com/themesberg/flowbite-svelte/compare/v0.27.7...v0.27.8) (2022-10-17)
6
+
7
+ ### [0.27.7](https://github.com/themesberg/flowbite-svelte/compare/v0.27.6...v0.27.7) (2022-10-17)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * [#376](https://github.com/themesberg/flowbite-svelte/issues/376) ([#378](https://github.com/themesberg/flowbite-svelte/issues/378)) ([8b4c2e3](https://github.com/themesberg/flowbite-svelte/commit/8b4c2e3200c73448aa34f921738e8ea8d10ee538))
13
+ * card - restProps ([#373](https://github.com/themesberg/flowbite-svelte/issues/373)) ([a7331fc](https://github.com/themesberg/flowbite-svelte/commit/a7331fcd5915e6142a99859113776ce74a72529a))
14
+ * flitering ([#370](https://github.com/themesberg/flowbite-svelte/issues/370)) ([e8ac071](https://github.com/themesberg/flowbite-svelte/commit/e8ac07134518a373949da3fadc4f63c656fe2d59))
15
+ * modal arrow keys ([#369](https://github.com/themesberg/flowbite-svelte/issues/369)) ([2a8bc1c](https://github.com/themesberg/flowbite-svelte/commit/2a8bc1c156c66a3dc0569312343b6f6b65a051ea))
16
+ * remove |local from Frame componentso that toast transitions work ([6da412c](https://github.com/themesberg/flowbite-svelte/commit/6da412c0665f27a6f9dd33bbf89758c4a924d239))
17
+
18
+ ### [0.27.6](https://github.com/themesberg/flowbite-svelte/compare/v0.27.5...v0.27.6) (2022-10-09)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * card padding-x in mobile view ([#358](https://github.com/themesberg/flowbite-svelte/issues/358)) ([639457f](https://github.com/themesberg/flowbite-svelte/commit/639457f5efc54f38fda9288aa9cf017c2d0f883d))
24
+ * color flicker when changing theme using DarkMode ([#353](https://github.com/themesberg/flowbite-svelte/issues/353)) ([7e1daf1](https://github.com/themesberg/flowbite-svelte/commit/7e1daf14b1b91b0f3c0dac55c38e28fee42c4878))
25
+ * improved focustrap ([#354](https://github.com/themesberg/flowbite-svelte/issues/354)) ([fb17cd3](https://github.com/themesberg/flowbite-svelte/commit/fb17cd357e748df4b1d95060bcbecf7b406d3f03))
26
+ * input icons ([#350](https://github.com/themesberg/flowbite-svelte/issues/350)) ([7b72712](https://github.com/themesberg/flowbite-svelte/commit/7b727121b3b730eb552200c1de36f3cdc45f7977))
27
+ * input number workaround ([#351](https://github.com/themesberg/flowbite-svelte/issues/351)) ([e4cb012](https://github.com/themesberg/flowbite-svelte/commit/e4cb01221c3b4334a2c860aa32ccee06df2fe41d))
28
+ * remove // [@ts-ignore](https://github.com/ts-ignore) ([ea82a2b](https://github.com/themesberg/flowbite-svelte/commit/ea82a2bc22085bad26967a82d078d8ab86b2477d))
29
+ * remove package-lock, pnpm-lock and node_modules and reinstall ([a8985ea](https://github.com/themesberg/flowbite-svelte/commit/a8985ea2fdb7c18eb23e61dd163e65da98a53ae4))
30
+ * remove svelte-sidebar-menu ([2820488](https://github.com/themesberg/flowbite-svelte/commit/28204885bbefcb826e073a1e6b7127a0b488b752))
31
+ * ts types for Popper ([#362](https://github.com/themesberg/flowbite-svelte/issues/362)) ([4a22230](https://github.com/themesberg/flowbite-svelte/commit/4a22230d66d780cb2d5c189266f97c87c251b70a))
32
+
5
33
  ### [0.27.5](https://github.com/themesberg/flowbite-svelte/compare/v0.27.4...v0.27.5) (2022-10-01)
6
34
 
7
35
 
package/README.md CHANGED
@@ -446,4 +446,4 @@ Please read [How to contribute](https://github.com/themesberg/flowbite-svelte/bl
446
446
 
447
447
  ## Changelog
448
448
 
449
- [Changelog](https://github.com/themesberg/flowbite-svelte/blob/main/CHANGELOG.md)
449
+ [Changelog](https://github.com/themesberg/flowbite-svelte/blob/main/CHANGELOG.md)
@@ -4,7 +4,7 @@
4
4
  <script>import Frame from '../utils/Frame.svelte';
5
5
  import classNames from 'classnames';
6
6
  import { setContext } from 'svelte';
7
- export let single = true;
7
+ export let multiple = false;
8
8
  export let flush = false;
9
9
  export let activeClasses = 'bg-gray-100 dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-800';
10
10
  export let inactiveClasses = 'text-gray-500 dark:text-gray-400 hover:bg-gray-100 hover:dark:bg-gray-800';
@@ -13,7 +13,7 @@ const ctx = {
13
13
  flush,
14
14
  activeClasses,
15
15
  inactiveClasses,
16
- selected: single ? writable() : undefined
16
+ selected: multiple ? undefined : writable()
17
17
  };
18
18
  setContext('ctx', ctx);
19
19
  let frameClass = classNames(defaultClass, 'divide-y divide-gray-200 dark:divide-gray-700', 'border-gray-200 dark:border-gray-700', 'rounded-t-xl', $$props.class);
@@ -9,7 +9,7 @@ export interface AccordionCtxType {
9
9
  declare const __propDef: {
10
10
  props: {
11
11
  [x: string]: any;
12
- single?: boolean | undefined;
12
+ multiple?: boolean | undefined;
13
13
  flush?: boolean | undefined;
14
14
  activeClasses?: string | undefined;
15
15
  inactiveClasses?: string | undefined;
@@ -12,8 +12,10 @@ const ctx = getContext('ctx') ?? {};
12
12
  // single selection
13
13
  const self = {};
14
14
  const selected = ctx.selected ?? writable();
15
+ let _open = open;
16
+ open = false;
15
17
  onMount(() => {
16
- if (open)
18
+ if (_open)
17
19
  $selected = self;
18
20
  // this will trigger unsubscribe on destroy
19
21
  return selected.subscribe((x) => (open = x === self));
@@ -1,51 +1,44 @@
1
1
  <script>export let home = false;
2
+ export let href = undefined;
2
3
  export let linkClass = 'ml-1 text-sm font-medium text-gray-700 hover:text-gray-900 md:ml-2 dark:text-gray-400 dark:hover:text-white';
3
4
  export let spanClass = 'ml-1 text-sm font-medium text-gray-500 md:ml-2 dark:text-gray-400';
4
5
  export let homeClass = 'inline-flex items-center text-sm font-medium text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white';
5
6
  </script>
6
7
 
7
- <li class="inline-flex items-center" {...$$props}>
8
- {#if home}
9
- <a class={homeClass} href={$$props.href}>
10
- {#if $$slots.icon}
11
- <slot name="icon" />
12
- {:else}
13
- <svg
14
- class="w-4 h-4 mr-2"
15
- fill="currentColor"
16
- viewBox="0 0 20 20"
17
- xmlns="http://www.w3.org/2000/svg"
18
- ><path
19
- d="M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z"
20
- /></svg
21
- >
22
- {/if}
23
- <slot />
24
- </a>
25
- {:else}
26
- {#if $$slots.icon}
27
- <slot name="icon" />
28
- {:else}
29
- <svg
30
- class="w-6 h-6 text-gray-400"
31
- fill="currentColor"
32
- viewBox="0 0 20 20"
33
- xmlns="http://www.w3.org/2000/svg"
34
- ><path
35
- fill-rule="evenodd"
36
- d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
37
- clip-rule="evenodd"
38
- /></svg
39
- >
40
- {/if}
41
- {#if $$props.href}
42
- <a class={linkClass} href={$$props.href}>
43
- <slot />
44
- </a>
45
- {:else}
46
- <span class={spanClass}>
47
- <slot />
48
- </span>
49
- {/if}
50
- {/if}
8
+ <li class="inline-flex items-center" {...$$restProps}>
9
+ {#if home}
10
+ <a class={homeClass} {href}>
11
+ {#if $$slots.icon}
12
+ <slot name="icon" />
13
+ {:else}
14
+ <svg class="w-4 h-4 mr-2" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"
15
+ ><path
16
+ d="M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z" /></svg>
17
+ {/if}
18
+ <slot />
19
+ </a>
20
+ {:else}
21
+ {#if $$slots.icon}
22
+ <slot name="icon" />
23
+ {:else}
24
+ <svg
25
+ class="w-6 h-6 text-gray-400"
26
+ fill="currentColor"
27
+ viewBox="0 0 20 20"
28
+ xmlns="http://www.w3.org/2000/svg"
29
+ ><path
30
+ fill-rule="evenodd"
31
+ d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
32
+ clip-rule="evenodd" /></svg>
33
+ {/if}
34
+ {#if href}
35
+ <a class={linkClass} {href}>
36
+ <slot />
37
+ </a>
38
+ {:else}
39
+ <span class={spanClass}>
40
+ <slot />
41
+ </span>
42
+ {/if}
43
+ {/if}
51
44
  </li>
@@ -3,6 +3,7 @@ declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
5
  home?: boolean | undefined;
6
+ href?: string | undefined;
6
7
  linkClass?: string | undefined;
7
8
  spanClass?: string | undefined;
8
9
  homeClass?: string | undefined;
@@ -76,16 +76,12 @@ const hasBorder = () => outline || color === 'alternative' || color === 'light';
76
76
  let buttonClass;
77
77
  $: buttonClass = btnClass
78
78
  ? btnClass
79
- : classNames('text-center font-medium', group ? 'focus:ring-2' : 'focus:ring-4', group && 'focus:z-10', !group || color === 'alternative' || (outline && color === 'dark') || 'focus:outline-none', outline && gradient
80
- ? 'p-0.5'
81
- : 'inline-flex items-center justify-center ' + sizeClasses[size], gradient ? gradientClasses[color] : outline ? outlineClasses[color] : colorClasses[color], color === 'alternative' &&
79
+ : classNames('text-center font-medium', group ? 'focus:ring-2' : 'focus:ring-4', group && 'focus:z-10', !group || color === 'alternative' || (outline && color === 'dark') || 'focus:outline-none', outline && gradient ? 'p-0.5' : 'inline-flex items-center justify-center ' + sizeClasses[size], gradient ? gradientClasses[color] : outline ? outlineClasses[color] : colorClasses[color], color === 'alternative' &&
82
80
  (group
83
81
  ? 'dark:bg-gray-700 dark:text-white dark:border-gray-700 dark:hover:border-gray-600 dark:hover:bg-gray-600'
84
82
  : 'dark:bg-transparent dark:border-gray-800 dark:hover:border-gray-700'), outline &&
85
83
  color === 'dark' &&
86
- (group
87
- ? 'dark:text-white dark:border-white'
88
- : 'dark:text-gray-400 dark:border-gray-700'), hasBorder() && group && 'border-l-0 first:border-l', rounded(false), shadow && coloredShadowClasses[shadow], $$props.disabled && 'cursor-not-allowed opacity-50', $$props.class);
84
+ (group ? 'dark:text-white dark:border-white' : 'dark:text-gray-400 dark:border-gray-700'), hasBorder() && group && 'border-l-0 first:border-l', rounded(false), shadow && coloredShadowClasses[shadow], $$props.disabled && 'cursor-not-allowed opacity-50', $$props.class);
89
85
  let gradientOutlineClass;
90
86
  $: gradientOutlineClass = classNames('inline-flex items-center justify-center', sizeClasses[size], rounded(true), 'bg-white text-gray-900 dark:bg-gray-900 dark:text-white', // this is limitation - no transparency
91
87
  'transition-all duration-75 ease-in group-hover:bg-opacity-0 group-hover:text-inherit');
@@ -10,8 +10,8 @@ declare const __propDef: {
10
10
  href?: string | undefined;
11
11
  btnClass?: string | undefined;
12
12
  type?: ButtonType | undefined;
13
- color?: "blue" | "dark" | "light" | "green" | "red" | "yellow" | "purple" | "cyan" | "teal" | "lime" | "pink" | "alternative" | "purpleToBlue" | "cyanToBlue" | "greenToBlue" | "purpleToPink" | "pinkToOrange" | "tealToLime" | "redToYellow" | undefined;
14
- shadow?: "blue" | "green" | "red" | "purple" | "cyan" | "teal" | "lime" | "pink" | null | undefined;
13
+ color?: "red" | "yellow" | "green" | "purple" | "pink" | "blue" | "light" | "dark" | "cyan" | "teal" | "lime" | "alternative" | "purpleToBlue" | "cyanToBlue" | "greenToBlue" | "purpleToPink" | "pinkToOrange" | "tealToLime" | "redToYellow" | undefined;
14
+ shadow?: "red" | "green" | "purple" | "pink" | "blue" | "cyan" | "teal" | "lime" | null | undefined;
15
15
  };
16
16
  events: {
17
17
  click: MouseEvent;
package/cards/Card.svelte CHANGED
@@ -8,10 +8,10 @@ export let padding = 'lg';
8
8
  export let size = 'sm';
9
9
  const paddings = {
10
10
  none: 'p-0',
11
- sm: 'p-4',
12
- md: 'p-5',
13
- lg: 'p-6',
14
- xl: 'p-8'
11
+ sm: 'p-4 sm:p-6 md:p-8',
12
+ md: 'p-4 sm:p-5',
13
+ lg: 'p-4 sm:p-6',
14
+ xl: 'p-4 sm:p-8'
15
15
  };
16
16
  const sizes = {
17
17
  xs: 'max-w-xs',
@@ -28,13 +28,13 @@ let imgClass;
28
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'));
29
29
  </script>
30
30
 
31
- <Frame tag={href ? 'a' : 'div'} rounded shadow border {href} class={cardClass}>
32
- {#if img}
33
- <img class={imgClass} src={img} alt="" />
34
- <div class={innerPdding}>
35
- <slot />
36
- </div>
37
- {:else}
38
- <slot />
39
- {/if}
31
+ <Frame tag={href ? 'a' : 'div'} rounded shadow border {href} {...$$restProps} class={cardClass}>
32
+ {#if img}
33
+ <img class={imgClass} src={img} alt="" />
34
+ <div class={innerPdding}>
35
+ <slot />
36
+ </div>
37
+ {:else}
38
+ <slot />
39
+ {/if}
40
40
  </Frame>
@@ -1,4 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
+ import type { SizeType } from '../types';
2
3
  declare const __propDef: {
3
4
  props: {
4
5
  [x: string]: any;
@@ -6,8 +7,8 @@ declare const __propDef: {
6
7
  horizontal?: boolean | undefined;
7
8
  reverse?: boolean | undefined;
8
9
  img?: string | undefined;
9
- padding?: "sm" | "md" | "lg" | "none" | undefined;
10
- size?: "xs" | "sm" | "md" | "lg" | "xl" | undefined;
10
+ padding?: "none" | "sm" | "md" | "lg" | "xl" | undefined;
11
+ size?: SizeType | undefined;
11
12
  };
12
13
  events: {
13
14
  [evt: string]: CustomEvent<any>;
@@ -34,7 +34,7 @@ const multiple = (node, params) => {
34
34
  };
35
35
  // Slide
36
36
  // export let slideClass: string = 'hidden';
37
- let imageShowingIndex = 1;
37
+ let imageShowingIndex = 0;
38
38
  // $: image = images[imageShowingIndex];
39
39
  const nextSlide = () => {
40
40
  if (imageShowingIndex === images.length - 1) {
@@ -6,7 +6,16 @@ export let thumbWidth;
6
6
  export let selected = false;
7
7
  </script>
8
8
 
9
- <img class="opacity-40" class:active={selected} id={id.toString()} src={thumbImg} alt={altTag} title="Image from {titleLink}" on:click width="{thumbWidth}%" />
9
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
10
+ <img
11
+ class="opacity-40"
12
+ class:active={selected}
13
+ id={id.toString()}
14
+ src={thumbImg}
15
+ alt={altTag}
16
+ title="Image from {titleLink}"
17
+ on:click
18
+ width="{thumbWidth}%" />
10
19
 
11
20
  <style>
12
21
  .active {
@@ -1,31 +1,34 @@
1
- <script>import { onMount } from 'svelte';
2
- export let btnClass = 'text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 fixed left-0 top-8 z-50';
3
- let dark = false;
1
+ <script>export let btnClass = 'text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 fixed left-0 top-8 z-50';
4
2
  const toggleTheme = () => {
5
- dark = window.document.documentElement.classList.toggle('dark');
6
- localStorage.setItem('color-theme', dark ? 'dark' : 'light');
3
+ const isDark = window.document.documentElement.classList.toggle('dark');
4
+ localStorage.setItem('color-theme', isDark ? 'dark' : 'light');
7
5
  };
8
- onMount(() => {
9
- localStorage.getItem('color-theme') === 'dark' ||
10
- (!('color-theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)
6
+ </script>
7
+
8
+ <svelte:head>
9
+ <script>
10
+ if (window) {
11
+ localStorage.getItem('color-theme') === 'dark' ||
12
+ (!('color-theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)
11
13
  ? window.document.documentElement.classList.add('dark')
12
14
  : window.document.documentElement.classList.remove('dark');
13
- dark = window.document.documentElement.classList.contains('dark');
14
- });
15
- </script>
15
+ }
16
+ </script>
17
+ </svelte:head>
16
18
 
17
19
  <button on:click={toggleTheme} aria-label="Dark mode" type="button" class={btnClass}>
18
- {#if dark}
19
- <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
20
- <path
21
- d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
22
- fill-rule="evenodd"
23
- clip-rule="evenodd"
24
- />
25
- </svg>
26
- {:else}
27
- <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
28
- <path d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" />
29
- </svg>
30
- {/if}
20
+ <span class="hidden dark:block">
21
+ <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
22
+ <path
23
+ d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1
24
+ 0 100-2H3a1 1 0 000 2h1z"
25
+ fill-rule="evenodd"
26
+ clip-rule="evenodd" />
27
+ </svg>
28
+ </span>
29
+ <span class="dark:hidden">
30
+ <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
31
+ <path d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" />
32
+ </svg>
33
+ </span>
31
34
  </button>
@@ -1,6 +1,7 @@
1
1
  <script>import classNames from 'classnames';
2
2
  import { fly, slide, blur, fade } from 'svelte/transition';
3
3
  import { clickOutside } from '../utils/clickOutside';
4
+ export let activateClickOutside = true;
4
5
  export let hidden = true;
5
6
  export let position = 'fixed';
6
7
  export let leftOffset = 'inset-y-0 left-0';
@@ -36,24 +37,36 @@ const placements = {
36
37
  };
37
38
  const handleDrawer = () => {
38
39
  hidden = !hidden;
39
- console.log('clicked');
40
40
  };
41
41
  let backdropDivClass = classNames('fixed top-0 left-0 z-50 w-full h-full', backdrop && bgColor, backdrop && bgOpacity);
42
42
  </script>
43
43
 
44
44
  {#if !hidden}
45
- {#if backdrop}
46
- <div class={backdropDivClass} on:click={() => !hidden && handleDrawer()} />
45
+ {#if backdrop && activateClickOutside}
46
+ <div role="presentation" class={backdropDivClass} on:click={() => !hidden && handleDrawer()} />
47
+ {/if}
48
+ {#if activateClickOutside}
49
+ <div
50
+ use:clickOutside={() => !hidden && handleDrawer()}
51
+ {id}
52
+ {...$$restProps}
53
+ class={classNames(divClass, width, position, placements[placement], $$props.class)}
54
+ transition:multiple={transitionParams}
55
+ tabindex="-1"
56
+ aria-controls={id}
57
+ aria-labelledby={id}>
58
+ <slot {hidden} />
59
+ </div>
60
+ {:else}
61
+ <div
62
+ {id}
63
+ {...$$restProps}
64
+ class={classNames(divClass, width, position, placements[placement], $$props.class)}
65
+ transition:multiple={transitionParams}
66
+ tabindex="-1"
67
+ aria-controls={id}
68
+ aria-labelledby={id}>
69
+ <slot {hidden} />
70
+ </div>
47
71
  {/if}
48
- <div
49
- use:clickOutside={() => !hidden && handleDrawer()}
50
- {id}
51
- {...$$restProps}
52
- class={classNames(divClass, width, position, placements[placement], $$props.class)}
53
- transition:multiple={transitionParams}
54
- tabindex="-1"
55
- aria-controls={id}
56
- aria-labelledby={id}>
57
- <slot {hidden} />
58
- </div>
59
72
  {/if}
@@ -3,6 +3,7 @@ import type { drawerTransitionParamTypes, drawerTransitionTypes } from '../types
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  [x: string]: any;
6
+ activateClickOutside?: boolean | undefined;
6
7
  hidden?: boolean | undefined;
7
8
  position?: "fixed" | "absolute" | undefined;
8
9
  leftOffset?: string | undefined;
@@ -7,7 +7,7 @@ export let custom = false;
7
7
  export let inline = false;
8
8
  export let group = [];
9
9
  export let value = '';
10
- export let checked = undefined;
10
+ export let checked = false;
11
11
  // tinted if put in component having its own background
12
12
  let background = getContext('background');
13
13
  $: {
@@ -33,21 +33,20 @@ $: {
33
33
  </script>
34
34
 
35
35
  <Label class={labelClass(inline, $$props.class)} show={!!$$slots.default}>
36
- <input
37
- type="checkbox"
38
- bind:checked
39
- on:keyup
40
- on:keydown
41
- on:keypress
42
- on:focus
43
- on:blur
44
- on:click
45
- on:mouseover
46
- on:mouseenter
47
- on:mouseleave
48
- on:paste
49
- {value}
50
- {...$$restProps}
51
- class={inputClass(custom, color, true, background, $$slots.default || $$props.class)}
52
- /><slot />
36
+ <input
37
+ type="checkbox"
38
+ bind:checked
39
+ on:keyup
40
+ on:keydown
41
+ on:keypress
42
+ on:focus
43
+ on:blur
44
+ on:click
45
+ on:mouseover
46
+ on:mouseenter
47
+ on:mouseleave
48
+ on:paste
49
+ {value}
50
+ {...$$restProps}
51
+ class={inputClass(custom, color, true, background, $$slots.default || $$props.class)} /><slot />
53
52
  </Label>
@@ -7,7 +7,7 @@ declare const __propDef: {
7
7
  style?: "filled" | "outlined" | "standard" | undefined;
8
8
  type?: InputType | undefined;
9
9
  size?: "default" | "small" | undefined;
10
- color?: "green" | "red" | "base" | undefined;
10
+ color?: "red" | "green" | "base" | undefined;
11
11
  value?: string | undefined;
12
12
  label?: string | undefined;
13
13
  };
@@ -3,7 +3,7 @@ declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
5
  helperClass?: string | undefined;
6
- color?: "green" | "red" | "gray" | "disabled" | undefined;
6
+ color?: "gray" | "red" | "green" | "disabled" | undefined;
7
7
  };
8
8
  events: {
9
9
  [evt: string]: CustomEvent<any>;
@@ -50,31 +50,33 @@ $: {
50
50
  const _color = color === 'base' && background ? 'tinted' : color;
51
51
  inputClass = classNames(defaultClass, $$slots.left && leftPadding[_size], $$slots.right && rightPadding[_size], ringClasses[color], colorClasses[_color], borderClasses[_color], inputPadding[_size], textSizes[_size], group || 'rounded-lg', group && 'first:rounded-l-lg last:rounded-r-lg', group && 'border-l-0 first:border-l last:border-r', $$props.class);
52
52
  }
53
- let floatClass = 'flex absolute inset-y-0 left-0 items-center pointer-events-none text-gray-500 dark:text-gray-400';
53
+ let floatClass = 'flex absolute inset-y-0 items-center pointer-events-none text-gray-500 dark:text-gray-400';
54
54
  </script>
55
55
 
56
56
  <Wrapper class="relative w-full" show={$$slots.left || $$slots.right}>
57
57
  {#if $$slots.left}
58
- <div class="{floatClass} pl-3"><slot name="left" /></div>
58
+ <div class="{floatClass} left-0 pl-2.5"><slot name="left" /></div>
59
59
  {/if}
60
- <input
61
- {...$$restProps}
62
- bind:value
63
- on:blur
64
- on:change
65
- on:click
66
- on:focus
67
- on:keydown
68
- on:keypress
69
- on:keyup
70
- on:mouseover
71
- on:mouseenter
72
- on:mouseleave
73
- on:paste
74
- on:input
75
- use:setType={type}
76
- class={inputClass} />
60
+ <slot props={{ ...$$restProps, class: inputClass }}>
61
+ <input
62
+ {...$$restProps}
63
+ bind:value
64
+ on:blur
65
+ on:change
66
+ on:click
67
+ on:focus
68
+ on:keydown
69
+ on:keypress
70
+ on:keyup
71
+ on:mouseover
72
+ on:mouseenter
73
+ on:mouseleave
74
+ on:paste
75
+ on:input
76
+ use:setType={type}
77
+ class={inputClass} />
78
+ </slot>
77
79
  {#if $$slots.right}
78
- <div class="{floatClass} pr-3"><slot name="right" /></div>
80
+ <div class="{floatClass} right-0 pr-2.5"><slot name="right" /></div>
79
81
  {/if}
80
82
  </Wrapper>
@@ -6,10 +6,10 @@ declare const __propDef: {
6
6
  props: {
7
7
  [x: string]: any;
8
8
  type?: InputType | undefined;
9
- value?: string | undefined;
9
+ value?: string | number | undefined;
10
10
  size?: FormSizeType | undefined;
11
11
  defaultClass?: string | undefined;
12
- color?: "green" | "red" | "base" | undefined;
12
+ color?: "red" | "green" | "base" | undefined;
13
13
  };
14
14
  events: {
15
15
  blur: FocusEvent;
@@ -29,6 +29,11 @@ declare const __propDef: {
29
29
  };
30
30
  slots: {
31
31
  left: {};
32
+ default: {
33
+ props: {
34
+ class: string;
35
+ };
36
+ };
32
37
  right: {};
33
38
  };
34
39
  };
@@ -2,7 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- color?: "green" | "red" | "gray" | "disabled" | undefined;
5
+ color?: "gray" | "red" | "green" | "disabled" | undefined;
6
6
  defaultClass?: string | undefined;
7
7
  show?: boolean | undefined;
8
8
  };
@@ -0,0 +1,7 @@
1
+ <script>import Input from './Input.svelte';
2
+ export let value = 0;
3
+ </script>
4
+
5
+ <Input let:props>
6
+ <input {...props} type="number" bind:value />
7
+ </Input>
@@ -0,0 +1,16 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ value?: number | undefined;
5
+ };
6
+ events: {
7
+ [evt: string]: CustomEvent<any>;
8
+ };
9
+ slots: {};
10
+ };
11
+ export declare type NumberInputProps = typeof __propDef.props;
12
+ export declare type NumberInputEvents = typeof __propDef.events;
13
+ export declare type NumberInputSlots = typeof __propDef.slots;
14
+ export default class NumberInput extends SvelteComponentTyped<NumberInputProps, NumberInputEvents, NumberInputSlots> {
15
+ }
16
+ export {};