flowbite-svelte 0.46.15 → 0.46.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.
Files changed (154) hide show
  1. package/dist/accordion/AccordionItem.svelte.d.ts +13 -13
  2. package/dist/avatar/Avatar.svelte +1 -1
  3. package/dist/avatar/Avatar.svelte.d.ts +6 -6
  4. package/dist/badge/Badge.svelte +11 -20
  5. package/dist/badge/Badge.svelte.d.ts +16 -18
  6. package/dist/banner/Banner.svelte.d.ts +8 -8
  7. package/dist/bottom-navigation/BottomNav.svelte.d.ts +6 -6
  8. package/dist/bottom-navigation/BottomNavHeader.svelte.d.ts +2 -2
  9. package/dist/bottom-navigation/BottomNavHeaderItem.svelte.d.ts +4 -4
  10. package/dist/bottom-navigation/BottomNavItem.svelte.d.ts +5 -5
  11. package/dist/breadcrumb/Breadcrumb.svelte.d.ts +5 -5
  12. package/dist/breadcrumb/BreadcrumbItem.svelte.d.ts +4 -4
  13. package/dist/button-group/ButtonGroup.svelte.d.ts +2 -2
  14. package/dist/buttons/Button.svelte.d.ts +7 -7
  15. package/dist/buttons/GradientButton.svelte.d.ts +2 -2
  16. package/dist/cards/Card.svelte.d.ts +1 -0
  17. package/dist/carousel/Carousel.svelte.d.ts +7 -7
  18. package/dist/carousel/Indicators.svelte.d.ts +2 -2
  19. package/dist/carousel/Slide.svelte.d.ts +1 -1
  20. package/dist/carousel/Thumbnail.svelte +6 -4
  21. package/dist/carousel/Thumbnail.svelte.d.ts +7 -5
  22. package/dist/carousel/Thumbnails.svelte.d.ts +5 -5
  23. package/dist/charts/Chart.svelte +2 -1
  24. package/dist/charts/Chart.svelte.d.ts +2 -0
  25. package/dist/darkmode/DarkMode.svelte.d.ts +3 -3
  26. package/dist/datepicker/Datepicker.svelte.d.ts +7 -7
  27. package/dist/device-mockups/Android.svelte.d.ts +7 -7
  28. package/dist/device-mockups/DefaultMockup.svelte.d.ts +6 -6
  29. package/dist/device-mockups/Desktop.svelte.d.ts +4 -4
  30. package/dist/device-mockups/Ios.svelte.d.ts +6 -6
  31. package/dist/device-mockups/Laptop.svelte.d.ts +4 -4
  32. package/dist/device-mockups/Smartwatch.svelte.d.ts +6 -6
  33. package/dist/device-mockups/Tablet.svelte.d.ts +6 -6
  34. package/dist/drawer/Drawer.svelte.d.ts +15 -15
  35. package/dist/dropdown/Dropdown.svelte.d.ts +12 -12
  36. package/dist/dropdown/DropdownDivider.svelte.d.ts +1 -1
  37. package/dist/dropdown/DropdownHeader.svelte.d.ts +2 -2
  38. package/dist/dropdown/DropdownItem.svelte.d.ts +1 -1
  39. package/dist/footer/FooterBrand.svelte.d.ts +7 -7
  40. package/dist/footer/FooterCopyright.svelte.d.ts +6 -6
  41. package/dist/footer/FooterIcon.svelte.d.ts +3 -3
  42. package/dist/footer/FooterLink.svelte.d.ts +3 -3
  43. package/dist/footer/FooterLinkGroup.svelte.d.ts +1 -1
  44. package/dist/forms/Checkbox.svelte.d.ts +9 -9
  45. package/dist/forms/CheckboxButton.svelte.d.ts +6 -6
  46. package/dist/forms/Dropzone.svelte.d.ts +2 -2
  47. package/dist/forms/Fileupload.svelte.d.ts +2 -2
  48. package/dist/forms/FloatingLabelInput.svelte +1 -1
  49. package/dist/forms/FloatingLabelInput.svelte.d.ts +5 -5
  50. package/dist/forms/Helper.svelte.d.ts +2 -2
  51. package/dist/forms/Input.svelte +20 -6
  52. package/dist/forms/Input.svelte.d.ts +7 -5
  53. package/dist/forms/Label.svelte.d.ts +3 -3
  54. package/dist/forms/MultiSelect.svelte +2 -2
  55. package/dist/forms/MultiSelect.svelte.d.ts +5 -5
  56. package/dist/forms/NumberInput.svelte.d.ts +1 -1
  57. package/dist/forms/Radio.svelte +5 -0
  58. package/dist/forms/Radio.svelte.d.ts +7 -5
  59. package/dist/forms/RadioButton.svelte.d.ts +6 -6
  60. package/dist/forms/Range.svelte.d.ts +1 -1
  61. package/dist/forms/Search.svelte.d.ts +3 -3
  62. package/dist/forms/Select.svelte.d.ts +6 -6
  63. package/dist/forms/Textarea.svelte.d.ts +5 -5
  64. package/dist/forms/Toggle.svelte +2 -1
  65. package/dist/forms/Toggle.svelte.d.ts +5 -4
  66. package/dist/gallery/Gallery.svelte.d.ts +2 -2
  67. package/dist/indicators/Indicator.svelte.d.ts +5 -5
  68. package/dist/kbd/ArrowKeyDown.svelte.d.ts +1 -1
  69. package/dist/kbd/ArrowKeyLeft.svelte.d.ts +1 -1
  70. package/dist/kbd/ArrowKeyRight.svelte.d.ts +1 -1
  71. package/dist/kbd/ArrowKeyUp.svelte.d.ts +1 -1
  72. package/dist/kbd/Kbd.svelte.d.ts +1 -1
  73. package/dist/list-group/Listgroup.svelte +2 -2
  74. package/dist/list-group/Listgroup.svelte.d.ts +12 -12
  75. package/dist/list-group/ListgroupItem.svelte.d.ts +10 -10
  76. package/dist/marquee/Marquee.svelte.d.ts +3 -3
  77. package/dist/navbar/Menu.svelte.d.ts +4 -4
  78. package/dist/navbar/NavBrand.svelte.d.ts +1 -1
  79. package/dist/navbar/NavHamburger.svelte.d.ts +1 -1
  80. package/dist/navbar/NavLi.svelte.d.ts +1 -1
  81. package/dist/navbar/NavUl.svelte.d.ts +6 -6
  82. package/dist/pagination/Pagination.svelte.d.ts +7 -7
  83. package/dist/pagination/PaginationItem.svelte.d.ts +4 -4
  84. package/dist/progress/Progressbar.svelte +5 -3
  85. package/dist/progress/Progressbar.svelte.d.ts +13 -11
  86. package/dist/rating/AdvancedRating.svelte.d.ts +7 -7
  87. package/dist/rating/Heart.svelte.d.ts +7 -7
  88. package/dist/rating/Rating.svelte +19 -15
  89. package/dist/rating/Rating.svelte.d.ts +14 -10
  90. package/dist/rating/Review.svelte.d.ts +5 -5
  91. package/dist/rating/Star.svelte.d.ts +7 -7
  92. package/dist/rating/Thumbup.svelte.d.ts +7 -7
  93. package/dist/sidebar/Sidebar.svelte.d.ts +5 -5
  94. package/dist/sidebar/SidebarBrand.svelte.d.ts +3 -3
  95. package/dist/sidebar/SidebarCta.svelte.d.ts +4 -4
  96. package/dist/sidebar/SidebarDropdownItem.svelte.d.ts +5 -5
  97. package/dist/sidebar/SidebarDropdownWrapper.svelte.d.ts +7 -7
  98. package/dist/sidebar/SidebarGroup.svelte.d.ts +3 -3
  99. package/dist/sidebar/SidebarItem.svelte.d.ts +3 -3
  100. package/dist/sidebar/SidebarWrapper.svelte.d.ts +1 -1
  101. package/dist/skeleton/CardPlaceholder.svelte.d.ts +2 -2
  102. package/dist/skeleton/ImagePlaceholder.svelte.d.ts +3 -3
  103. package/dist/skeleton/ListPlaceholder.svelte.d.ts +1 -1
  104. package/dist/skeleton/Skeleton.svelte.d.ts +2 -2
  105. package/dist/skeleton/TestimonialPlaceholder.svelte.d.ts +1 -1
  106. package/dist/skeleton/TextPlaceholder.svelte.d.ts +2 -2
  107. package/dist/skeleton/VideoPlaceholder.svelte.d.ts +2 -2
  108. package/dist/skeleton/WidgetPlaceholder.svelte.d.ts +1 -1
  109. package/dist/speed-dial/SpeedDial.svelte.d.ts +11 -11
  110. package/dist/speed-dial/SpeedDialButton.svelte.d.ts +7 -7
  111. package/dist/spinner/Spinner.svelte.d.ts +5 -5
  112. package/dist/steps/StepIndicator.svelte.d.ts +8 -8
  113. package/dist/table/Table.svelte +47 -1
  114. package/dist/table/Table.svelte.d.ts +35 -16
  115. package/dist/table/TableBody.svelte +11 -1
  116. package/dist/table/TableBody.svelte.d.ts +12 -9
  117. package/dist/table/TableBodyCell.svelte.d.ts +1 -1
  118. package/dist/table/TableBodyRow.svelte.d.ts +1 -1
  119. package/dist/table/TableHead.svelte.d.ts +2 -2
  120. package/dist/table/TableHeadCell.svelte +34 -1
  121. package/dist/table/TableHeadCell.svelte.d.ts +18 -10
  122. package/dist/table/TableSearch.svelte.d.ts +12 -12
  123. package/dist/tabs/TabItem.svelte +3 -1
  124. package/dist/tabs/TabItem.svelte.d.ts +5 -3
  125. package/dist/tabs/Tabs.svelte.d.ts +6 -6
  126. package/dist/timeline/Activity.svelte.d.ts +1 -1
  127. package/dist/timeline/ActivityItem.svelte.d.ts +8 -8
  128. package/dist/timeline/Group.svelte.d.ts +3 -3
  129. package/dist/timeline/GroupItem.svelte +4 -0
  130. package/dist/timeline/GroupItem.svelte.d.ts +7 -5
  131. package/dist/timeline/Timeline.svelte.d.ts +1 -1
  132. package/dist/timeline/TimelineItem.svelte.d.ts +3 -3
  133. package/dist/toast/Toast.svelte +2 -1
  134. package/dist/toast/Toast.svelte.d.ts +10 -10
  135. package/dist/toolbar/ToolbarButton.svelte.d.ts +2 -2
  136. package/dist/toolbar/ToolbarGroup.svelte.d.ts +1 -1
  137. package/dist/typography/A.svelte.d.ts +3 -3
  138. package/dist/typography/Blockquote.svelte.d.ts +8 -8
  139. package/dist/typography/DescriptionList.svelte.d.ts +2 -2
  140. package/dist/typography/Heading.svelte.d.ts +3 -3
  141. package/dist/typography/Hr.svelte.d.ts +6 -6
  142. package/dist/typography/Img.svelte.d.ts +7 -7
  143. package/dist/typography/Layout.svelte.d.ts +2 -2
  144. package/dist/typography/Li.svelte.d.ts +2 -2
  145. package/dist/typography/List.svelte.d.ts +2 -2
  146. package/dist/typography/Mark.svelte.d.ts +3 -3
  147. package/dist/typography/P.svelte.d.ts +10 -10
  148. package/dist/typography/Secondary.svelte.d.ts +2 -2
  149. package/dist/typography/Span.svelte.d.ts +9 -9
  150. package/dist/utils/CloseButton.svelte.d.ts +1 -1
  151. package/dist/utils/Popper.svelte +18 -17
  152. package/dist/utils/Wrapper.svelte.d.ts +2 -2
  153. package/dist/video/Video.svelte.d.ts +4 -4
  154. package/package.json +35 -35
@@ -2,10 +2,10 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divWrapperClass?: string;
6
- divClass?: string;
7
- spanClass?: string;
8
- label?: string;
5
+ divWrapperClass?: string | undefined;
6
+ divClass?: string | undefined;
7
+ spanClass?: string | undefined;
8
+ label?: string | undefined;
9
9
  };
10
10
  events: {
11
11
  [evt: string]: CustomEvent<any>;
@@ -2,11 +2,11 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- aClass?: string;
6
- href?: string;
7
- label?: string;
8
- activeClass?: string;
9
- active?: boolean;
5
+ aClass?: string | undefined;
6
+ href?: string | undefined;
7
+ label?: string | undefined;
8
+ activeClass?: string | undefined;
9
+ active?: boolean | undefined;
10
10
  };
11
11
  events: {
12
12
  blur: FocusEvent;
@@ -3,13 +3,13 @@ import type { TransitionTypes, TransitionParamTypes } from '../types';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  [x: string]: any;
6
- btnClass?: string;
7
- label?: string;
8
- spanClass?: string;
9
- ulClass?: string;
10
- transitionType?: TransitionTypes;
11
- transitionParams?: TransitionParamTypes;
12
- isOpen?: boolean;
6
+ btnClass?: string | undefined;
7
+ label?: string | undefined;
8
+ spanClass?: string | undefined;
9
+ ulClass?: string | undefined;
10
+ transitionType?: TransitionTypes | undefined;
11
+ transitionParams?: TransitionParamTypes | undefined;
12
+ isOpen?: boolean | undefined;
13
13
  };
14
14
  events: {
15
15
  [evt: string]: CustomEvent<any>;
@@ -2,9 +2,9 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- ulClass?: string;
6
- borderClass?: string;
7
- border?: boolean;
5
+ ulClass?: string | undefined;
6
+ borderClass?: string | undefined;
7
+ border?: boolean | undefined;
8
8
  };
9
9
  events: {
10
10
  [evt: string]: CustomEvent<any>;
@@ -2,9 +2,9 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- href?: string;
6
- label?: string;
7
- spanClass?: string;
5
+ href?: string | undefined;
6
+ label?: string | undefined;
7
+ spanClass?: string | undefined;
8
8
  activeClass?: string | undefined;
9
9
  nonActiveClass?: string | undefined;
10
10
  };
@@ -2,7 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divClass?: string;
5
+ divClass?: string | undefined;
6
6
  };
7
7
  events: {
8
8
  [evt: string]: CustomEvent<any>;
@@ -2,8 +2,8 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divClass?: string;
6
- size?: string | number;
5
+ divClass?: string | undefined;
6
+ size?: (string | number) | undefined;
7
7
  };
8
8
  events: {
9
9
  [evt: string]: CustomEvent<any>;
@@ -2,9 +2,9 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divClass?: string;
6
- imgHeight?: string;
7
- imgOnly?: boolean;
5
+ divClass?: string | undefined;
6
+ imgHeight?: string | undefined;
7
+ imgOnly?: boolean | undefined;
8
8
  };
9
9
  events: {
10
10
  [evt: string]: CustomEvent<any>;
@@ -2,7 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divClass?: string;
5
+ divClass?: string | undefined;
6
6
  };
7
7
  events: {
8
8
  [evt: string]: CustomEvent<any>;
@@ -2,8 +2,8 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divClass?: string;
6
- size?: string | number;
5
+ divClass?: string | undefined;
6
+ size?: (string | number) | undefined;
7
7
  };
8
8
  events: {
9
9
  [evt: string]: CustomEvent<any>;
@@ -2,7 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divClass?: string;
5
+ divClass?: string | undefined;
6
6
  };
7
7
  events: {
8
8
  [evt: string]: CustomEvent<any>;
@@ -2,8 +2,8 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divClass?: string;
6
- size?: string | number;
5
+ divClass?: string | undefined;
6
+ size?: (string | number) | undefined;
7
7
  };
8
8
  events: {
9
9
  [evt: string]: CustomEvent<any>;
@@ -2,8 +2,8 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divClass?: string;
6
- size?: string | number;
5
+ divClass?: string | undefined;
6
+ size?: (string | number) | undefined;
7
7
  };
8
8
  events: {
9
9
  [evt: string]: CustomEvent<any>;
@@ -2,7 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divClass?: string;
5
+ divClass?: string | undefined;
6
6
  };
7
7
  events: {
8
8
  [evt: string]: CustomEvent<any>;
@@ -8,17 +8,17 @@ export interface SpeedCtxType {
8
8
  declare const __propDef: {
9
9
  props: {
10
10
  [x: string]: any;
11
- defaultClass?: string;
12
- popperDefaultClass?: string;
13
- placement?: Placement;
14
- pill?: boolean;
15
- tooltip?: Placement | "none";
16
- trigger?: "hover" | "click" | "focus";
17
- textOutside?: boolean;
18
- id?: string;
19
- name?: string;
20
- gradient?: boolean;
21
- open?: boolean;
11
+ defaultClass?: string | undefined;
12
+ popperDefaultClass?: string | undefined;
13
+ placement?: Placement | undefined;
14
+ pill?: boolean | undefined;
15
+ tooltip?: (Placement | "none") | undefined;
16
+ trigger?: ("hover" | "click" | "focus") | undefined;
17
+ textOutside?: boolean | undefined;
18
+ id?: string | undefined;
19
+ name?: string | undefined;
20
+ gradient?: boolean | undefined;
21
+ open?: boolean | undefined;
22
22
  };
23
23
  events: {
24
24
  [evt: string]: CustomEvent<any>;
@@ -3,13 +3,13 @@ import type { Placement } from '@floating-ui/dom';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  [x: string]: any;
6
- btnDefaultClass?: string;
7
- name?: string;
8
- tooltip?: Placement | "none";
9
- pill?: boolean;
10
- textOutside?: boolean;
11
- textOutsideClass?: string;
12
- textDefaultClass?: string;
6
+ btnDefaultClass?: string | undefined;
7
+ name?: string | undefined;
8
+ tooltip?: (Placement | "none") | undefined;
9
+ pill?: boolean | undefined;
10
+ textOutside?: boolean | undefined;
11
+ textOutsideClass?: string | undefined;
12
+ textDefaultClass?: string | undefined;
13
13
  };
14
14
  events: {
15
15
  click: MouseEvent;
@@ -3,11 +3,11 @@ declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
5
  color?: "primary" | "blue" | "gray" | "green" | "red" | "yellow" | "pink" | "purple" | "white" | "custom" | undefined;
6
- bg?: string;
7
- customColor?: string;
8
- size?: string | number;
9
- currentFill?: string;
10
- currentColor?: string;
6
+ bg?: string | undefined;
7
+ customColor?: string | undefined;
8
+ size?: (string | number) | undefined;
9
+ currentFill?: string | undefined;
10
+ currentColor?: string | undefined;
11
11
  };
12
12
  events: {
13
13
  [evt: string]: CustomEvent<any>;
@@ -2,14 +2,14 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- steps?: string[];
6
- currentStep?: number;
7
- size?: string;
8
- color?: "primary" | "secondary" | "gray" | "red" | "yellow" | "green" | "indigo" | "purple" | "pink" | "blue" | "custom";
9
- glow?: boolean;
10
- hideLabel?: boolean;
11
- completedCustom?: string;
12
- currentCustom?: string;
5
+ steps?: string[] | undefined;
6
+ currentStep?: number | undefined;
7
+ size?: string | undefined;
8
+ color?: ("primary" | "secondary" | "gray" | "red" | "yellow" | "green" | "indigo" | "purple" | "pink" | "blue" | "custom") | undefined;
9
+ glow?: boolean | undefined;
10
+ hideLabel?: boolean | undefined;
11
+ completedCustom?: string | undefined;
12
+ currentCustom?: string | undefined;
13
13
  };
14
14
  events: {
15
15
  [evt: string]: CustomEvent<any>;
@@ -1,4 +1,5 @@
1
- <script>import { twMerge, twJoin } from "tailwind-merge";
1
+ <script generics="T">import { writable } from "svelte/store";
2
+ import { twMerge, twJoin } from "tailwind-merge";
2
3
  import { setContext } from "svelte";
3
4
  export let divClass = "relative overflow-x-auto";
4
5
  export let striped = false;
@@ -7,6 +8,17 @@ export let noborder = false;
7
8
  export let shadow = false;
8
9
  export let color = "default";
9
10
  export let customeColor = "";
11
+ export let items = [];
12
+ export let filter = null;
13
+ export let placeholder = "Search";
14
+ export let innerDivClass = "p-4";
15
+ export let searchClass = "relative mt-1";
16
+ export let svgDivClass = "absolute inset-y-0 start-0 flex items-center ps-3 pointer-events-none";
17
+ export let svgClass = "w-5 h-5 text-gray-500 dark:text-gray-400";
18
+ export let inputClass = "bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-80 p-2.5 ps-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";
19
+ let searchTerm = "";
20
+ let inputCls = twMerge(inputClass, $$props.classInput);
21
+ let svgDivCls = twMerge(svgDivClass, $$props.classSvgDiv);
10
22
  const colors = {
11
23
  default: "text-gray-500 dark:text-gray-400",
12
24
  blue: "text-blue-100 dark:text-blue-100",
@@ -22,9 +34,35 @@ $: setContext("striped", striped);
22
34
  $: setContext("hoverable", hoverable);
23
35
  $: setContext("noborder", noborder);
24
36
  $: setContext("color", color);
37
+ $: setContext("items", items);
38
+ const searchTermStore = writable(searchTerm);
39
+ const filterStore = writable(filter);
40
+ setContext("searchTerm", searchTermStore);
41
+ setContext("filter", filterStore);
42
+ $: searchTermStore.set(searchTerm);
43
+ $: filterStore.set(filter);
44
+ setContext("sorter", writable(null));
25
45
  </script>
26
46
 
27
47
  <div class={twJoin(divClass, shadow && 'shadow-md sm:rounded-lg')}>
48
+ {#if filter}
49
+ <slot name="search">
50
+ <div class={innerDivClass}>
51
+ <label for="table-search" class="sr-only">Search</label>
52
+ <div class={searchClass}>
53
+ <div class={svgDivCls}>
54
+ <slot name="svgSearch">
55
+ <svg class={svgClass} fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
56
+ <path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" clip-rule="evenodd" />
57
+ </svg>
58
+ </slot>
59
+ </div>
60
+ <input bind:value={searchTerm} type="text" id="table-search" class={inputCls} {placeholder} />
61
+ </div>
62
+ <slot name="header" />
63
+ </div>
64
+ </slot>
65
+ {/if}
28
66
  <table {...$$restProps} class={twMerge('w-full text-left text-sm', colors[color], $$props.class)}>
29
67
  <slot />
30
68
  </table>
@@ -41,4 +79,12 @@ $: setContext("color", color);
41
79
  @prop export let shadow: boolean = false;
42
80
  @prop export let color: TableColorType = 'default';
43
81
  @prop export let customeColor: string = '';
82
+ @prop export let items: T[] = [];
83
+ @prop export let filter: ((t: T, term: string) => boolean) | null = null;
84
+ @prop export let placeholder: string = 'Search';
85
+ @prop export let innerDivClass: string = 'p-4';
86
+ @prop export let searchClass: string = 'relative mt-1';
87
+ @prop export let svgDivClass: string = 'absolute inset-y-0 start-0 flex items-center ps-3 pointer-events-none';
88
+ @prop export let svgClass: string = 'w-5 h-5 text-gray-500 dark:text-gray-400';
89
+ @prop export let inputClass: string = 'bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-80 p-2.5 ps-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';
44
90
  -->
@@ -1,26 +1,37 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  import type { TableColorType } from '../types';
3
- declare const __propDef: {
4
- props: {
3
+ declare class __sveltets_Render<T> {
4
+ props(): {
5
5
  [x: string]: any;
6
- divClass?: string;
7
- striped?: boolean;
8
- hoverable?: boolean;
9
- noborder?: boolean;
10
- shadow?: boolean;
11
- color?: TableColorType;
12
- customeColor?: string;
6
+ divClass?: string | undefined;
7
+ striped?: boolean | undefined;
8
+ hoverable?: boolean | undefined;
9
+ noborder?: boolean | undefined;
10
+ shadow?: boolean | undefined;
11
+ color?: TableColorType | undefined;
12
+ customeColor?: string | undefined;
13
+ items?: T[] | undefined;
14
+ filter?: ((t: T, term: string) => boolean) | null | undefined;
15
+ placeholder?: string | undefined;
16
+ innerDivClass?: string | undefined;
17
+ searchClass?: string | undefined;
18
+ svgDivClass?: string | undefined;
19
+ svgClass?: string | undefined;
20
+ inputClass?: string | undefined;
13
21
  };
14
- events: {
22
+ events(): {} & {
15
23
  [evt: string]: CustomEvent<any>;
16
24
  };
17
- slots: {
25
+ slots(): {
26
+ search: {};
27
+ svgSearch: {};
28
+ header: {};
18
29
  default: {};
19
30
  };
20
- };
21
- export type TableProps = typeof __propDef.props;
22
- export type TableEvents = typeof __propDef.events;
23
- export type TableSlots = typeof __propDef.slots;
31
+ }
32
+ export type TableProps<T> = ReturnType<__sveltets_Render<T>['props']>;
33
+ export type TableEvents<T> = ReturnType<__sveltets_Render<T>['events']>;
34
+ export type TableSlots<T> = ReturnType<__sveltets_Render<T>['slots']>;
24
35
  /**
25
36
  * [Go to docs](https://flowbite-svelte.com/)
26
37
  * ## Props
@@ -31,7 +42,15 @@ export type TableSlots = typeof __propDef.slots;
31
42
  * @prop export let shadow: boolean = false;
32
43
  * @prop export let color: TableColorType = 'default';
33
44
  * @prop export let customeColor: string = '';
45
+ * @prop export let items: T[] = [];
46
+ * @prop export let filter: ((t: T, term: string) => boolean) | null = null;
47
+ * @prop export let placeholder: string = 'Search';
48
+ * @prop export let innerDivClass: string = 'p-4';
49
+ * @prop export let searchClass: string = 'relative mt-1';
50
+ * @prop export let svgDivClass: string = 'absolute inset-y-0 start-0 flex items-center ps-3 pointer-events-none';
51
+ * @prop export let svgClass: string = 'w-5 h-5 text-gray-500 dark:text-gray-400';
52
+ * @prop export let inputClass: string = 'bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-80 p-2.5 ps-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';
34
53
  */
35
- export default class Table extends SvelteComponentTyped<TableProps, TableEvents, TableSlots> {
54
+ export default class Table<T> extends SvelteComponentTyped<TableProps<T>, TableEvents<T>, TableSlots<T>> {
36
55
  }
37
56
  export {};
@@ -1,8 +1,18 @@
1
- <script>export let tableBodyClass = void 0;
1
+ <script generics="T">import { getContext } from "svelte";
2
+ export let tableBodyClass = void 0;
3
+ $: items = getContext("items") || [];
4
+ let filter = getContext("filter");
5
+ let searchTerm = getContext("searchTerm");
6
+ $: filtered = $filter ? items.filter((item) => $filter(item, $searchTerm)) : items;
7
+ let sorter = getContext("sorter");
8
+ $: sorted = $sorter ? filtered.toSorted((a, b) => $sorter.sortDirection * $sorter.sort(a, b)) : filtered;
2
9
  </script>
3
10
 
4
11
  <tbody class={tableBodyClass}>
5
12
  <slot />
13
+ {#each sorted as item}
14
+ <slot name="row" {item} />
15
+ {/each}
6
16
  </tbody>
7
17
 
8
18
  <!--
@@ -1,23 +1,26 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- declare const __propDef: {
3
- props: {
2
+ declare class __sveltets_Render<T> {
3
+ props(): {
4
4
  tableBodyClass?: string | undefined;
5
5
  };
6
- events: {
6
+ events(): {} & {
7
7
  [evt: string]: CustomEvent<any>;
8
8
  };
9
- slots: {
9
+ slots(): {
10
10
  default: {};
11
+ row: {
12
+ item: T;
13
+ };
11
14
  };
12
- };
13
- export type TableBodyProps = typeof __propDef.props;
14
- export type TableBodyEvents = typeof __propDef.events;
15
- export type TableBodySlots = typeof __propDef.slots;
15
+ }
16
+ export type TableBodyProps<T> = ReturnType<__sveltets_Render<T>['props']>;
17
+ export type TableBodyEvents<T> = ReturnType<__sveltets_Render<T>['events']>;
18
+ export type TableBodySlots<T> = ReturnType<__sveltets_Render<T>['slots']>;
16
19
  /**
17
20
  * [Go to docs](https://flowbite-svelte.com/)
18
21
  * ## Props
19
22
  * @prop export let tableBodyClass: string | undefined = undefined;
20
23
  */
21
- export default class TableBody extends SvelteComponentTyped<TableBodyProps, TableBodyEvents, TableBodySlots> {
24
+ export default class TableBody<T> extends SvelteComponentTyped<TableBodyProps<T>, TableBodyEvents<T>, TableBodySlots<T>> {
22
25
  }
23
26
  export {};
@@ -2,7 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- tdClass?: string;
5
+ tdClass?: string | undefined;
6
6
  };
7
7
  events: {
8
8
  [evt: string]: CustomEvent<any>;
@@ -2,7 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- color?: "blue" | "green" | "red" | "yellow" | "purple" | "default" | "custom";
5
+ color?: ("blue" | "green" | "red" | "yellow" | "purple" | "default" | "custom") | undefined;
6
6
  };
7
7
  events: {
8
8
  click: MouseEvent;
@@ -2,8 +2,8 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- theadClass?: string;
6
- defaultRow?: boolean;
5
+ theadClass?: string | undefined;
6
+ defaultRow?: boolean | undefined;
7
7
  };
8
8
  events: {
9
9
  [evt: string]: CustomEvent<any>;
@@ -1,14 +1,47 @@
1
- <script>import { twMerge } from "tailwind-merge";
1
+ <script generics="T">import { getContext } from "svelte";
2
+ import { twMerge } from "tailwind-merge";
2
3
  export let padding = "px-6 py-3";
4
+ export let sort = null;
5
+ export let defaultDirection = "asc";
6
+ export let defaultSort = false;
7
+ export let direction = defaultSort ? defaultDirection : null;
8
+ let sorter = getContext("sorter");
9
+ let sortId = Math.random().toString(36).substring(2);
10
+ $: direction = $sorter?.id === sortId ? $sorter.sortDirection === 1 ? "asc" : "desc" : null;
11
+ if (defaultSort) {
12
+ sortItems();
13
+ }
14
+ function sortItems() {
15
+ if (!sort || !sorter) return;
16
+ sorter.update((sorter2) => {
17
+ return {
18
+ id: sortId,
19
+ sort,
20
+ sortDirection: sorter2?.id === sortId ? -sorter2.sortDirection : defaultDirection === "asc" ? 1 : -1
21
+ };
22
+ });
23
+ }
3
24
  </script>
4
25
 
26
+ {#if sort && sorter}
27
+ <th {...$$restProps} class={$$props.class} on:click on:focus on:keydown on:keypress on:keyup on:mouseenter on:mouseleave on:mouseover aria-sort={direction ? `${direction}ending` : undefined}>
28
+ <button class={twMerge('w-full text-left', 'after:absolute after:pl-3', direction === 'asc' && 'after:content-["▲"]', direction === 'desc' && 'after:content-["▼"]', padding)} on:click={sortItems}>
29
+ <slot />
30
+ </button>
31
+ </th>
32
+ {:else}
5
33
  <th {...$$restProps} class={twMerge(padding, $$props.class)} on:click on:focus on:keydown on:keypress on:keyup on:mouseenter on:mouseleave on:mouseover>
6
34
  <slot />
7
35
  </th>
36
+ {/if}
8
37
 
9
38
  <!--
10
39
  @component
11
40
  [Go to docs](https://flowbite-svelte.com/)
12
41
  ## Props
13
42
  @prop export let padding: string = 'px-6 py-3';
43
+ @prop export let sort: ((a: T, b: T) => number) | null = null;
44
+ @prop export let defaultDirection: 'asc' | 'desc' = 'asc';
45
+ @prop export let defaultSort: boolean = false;
46
+ @prop export let direction: 'asc' | 'desc' | null = defaultSort ? defaultDirection : null;
14
47
  -->
@@ -1,10 +1,14 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- declare const __propDef: {
3
- props: {
2
+ declare class __sveltets_Render<T> {
3
+ props(): {
4
4
  [x: string]: any;
5
- padding?: string;
5
+ padding?: string | undefined;
6
+ sort?: ((a: T, b: T) => number) | null | undefined;
7
+ defaultDirection?: ("asc" | "desc") | undefined;
8
+ defaultSort?: boolean | undefined;
9
+ direction?: ("asc" | "desc" | null) | undefined;
6
10
  };
7
- events: {
11
+ events(): {
8
12
  click: MouseEvent;
9
13
  focus: FocusEvent;
10
14
  keydown: KeyboardEvent;
@@ -16,18 +20,22 @@ declare const __propDef: {
16
20
  } & {
17
21
  [evt: string]: CustomEvent<any>;
18
22
  };
19
- slots: {
23
+ slots(): {
20
24
  default: {};
21
25
  };
22
- };
23
- export type TableHeadCellProps = typeof __propDef.props;
24
- export type TableHeadCellEvents = typeof __propDef.events;
25
- export type TableHeadCellSlots = typeof __propDef.slots;
26
+ }
27
+ export type TableHeadCellProps<T> = ReturnType<__sveltets_Render<T>['props']>;
28
+ export type TableHeadCellEvents<T> = ReturnType<__sveltets_Render<T>['events']>;
29
+ export type TableHeadCellSlots<T> = ReturnType<__sveltets_Render<T>['slots']>;
26
30
  /**
27
31
  * [Go to docs](https://flowbite-svelte.com/)
28
32
  * ## Props
29
33
  * @prop export let padding: string = 'px-6 py-3';
34
+ * @prop export let sort: ((a: T, b: T) => number) | null = null;
35
+ * @prop export let defaultDirection: 'asc' | 'desc' = 'asc';
36
+ * @prop export let defaultSort: boolean = false;
37
+ * @prop export let direction: 'asc' | 'desc' | null = defaultSort ? defaultDirection : null;
30
38
  */
31
- export default class TableHeadCell extends SvelteComponentTyped<TableHeadCellProps, TableHeadCellEvents, TableHeadCellSlots> {
39
+ export default class TableHeadCell<T> extends SvelteComponentTyped<TableHeadCellProps<T>, TableHeadCellEvents<T>, TableHeadCellSlots<T>> {
32
40
  }
33
41
  export {};
@@ -2,18 +2,18 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- divClass?: string;
6
- inputValue?: string;
7
- striped?: boolean;
8
- hoverable?: boolean;
9
- placeholder?: string;
10
- customColor?: string;
11
- color?: "blue" | "green" | "red" | "yellow" | "purple" | "default" | "custom";
12
- innerDivClass?: string;
13
- searchClass?: string;
14
- svgDivClass?: string;
15
- svgClass?: string;
16
- inputClass?: string;
5
+ divClass?: string | undefined;
6
+ inputValue?: string | undefined;
7
+ striped?: boolean | undefined;
8
+ hoverable?: boolean | undefined;
9
+ placeholder?: string | undefined;
10
+ customColor?: string | undefined;
11
+ color?: ("blue" | "green" | "red" | "yellow" | "purple" | "default" | "custom") | undefined;
12
+ innerDivClass?: string | undefined;
13
+ searchClass?: string | undefined;
14
+ svgDivClass?: string | undefined;
15
+ svgClass?: string | undefined;
16
+ inputClass?: string | undefined;
17
17
  };
18
18
  events: {
19
19
  [evt: string]: CustomEvent<any>;