flowbite-svelte 1.30.1 → 1.32.0

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 (190) hide show
  1. package/dist/accordion/Accordion.svelte +1 -1
  2. package/dist/accordion/AccordionItem.svelte +4 -3
  3. package/dist/alert/Alert.svelte +1 -1
  4. package/dist/avatar/Avatar.svelte +1 -1
  5. package/dist/badge/Badge.svelte +1 -1
  6. package/dist/banner/Banner.svelte +1 -1
  7. package/dist/bottom-navigation/BottomNav.svelte +1 -1
  8. package/dist/bottom-navigation/BottomNavHeader.svelte +1 -1
  9. package/dist/bottom-navigation/BottomNavHeaderItem.svelte +1 -1
  10. package/dist/bottom-navigation/BottomNavItem.svelte +1 -1
  11. package/dist/breadcrumb/Breadcrumb.svelte +1 -1
  12. package/dist/breadcrumb/BreadcrumbItem.svelte +1 -1
  13. package/dist/button-group/ButtonGroup.svelte +1 -1
  14. package/dist/buttons/Button.svelte +1 -1
  15. package/dist/buttons/GradientButton.svelte +1 -1
  16. package/dist/card/Card.svelte +1 -1
  17. package/dist/carousel/Carousel.svelte +1 -1
  18. package/dist/carousel/CarouselIndicators.svelte +1 -1
  19. package/dist/carousel/ControlButton.svelte +1 -1
  20. package/dist/carousel/Controls.svelte +1 -1
  21. package/dist/carousel/Slide.svelte +1 -1
  22. package/dist/carousel/Thumbnail.svelte +1 -1
  23. package/dist/carousel/Thumbnails.svelte +1 -1
  24. package/dist/clipboard/Clipboard.svelte +1 -1
  25. package/dist/clipboard-manager/ClipboardManager.svelte +1 -1
  26. package/dist/command-palette/CommandPalette.svelte +2 -2
  27. package/dist/command-palette/CommandPalette.svelte.d.ts +1 -1
  28. package/dist/context.d.ts +4 -1
  29. package/dist/context.js +0 -1
  30. package/dist/darkmode/DarkMode.svelte +1 -1
  31. package/dist/datepicker/Datepicker.svelte +9 -16
  32. package/dist/drawer/Drawer.svelte +1 -1
  33. package/dist/drawer/DrawerHandle.svelte +1 -1
  34. package/dist/drawer/Drawerhead.svelte +1 -1
  35. package/dist/dropdown/Dropdown.svelte +1 -1
  36. package/dist/dropdown/DropdownDivider.svelte +1 -1
  37. package/dist/dropdown/DropdownGroup.svelte +1 -1
  38. package/dist/dropdown/DropdownHeader.svelte +1 -1
  39. package/dist/dropdown/DropdownItem.svelte +1 -1
  40. package/dist/footer/Footer.svelte +1 -1
  41. package/dist/footer/FooterBrand.svelte +1 -1
  42. package/dist/footer/FooterCopyright.svelte +1 -1
  43. package/dist/footer/FooterIcon.svelte +1 -1
  44. package/dist/footer/FooterLink.svelte +1 -1
  45. package/dist/footer/FooterLinkGroup.svelte +1 -1
  46. package/dist/forms/button-toggle/ButtonToggle.svelte +1 -1
  47. package/dist/forms/button-toggle/ButtonToggleGroup.svelte +1 -1
  48. package/dist/forms/checkbox/Checkbox.svelte +1 -1
  49. package/dist/forms/checkbox/CheckboxButton.svelte +1 -1
  50. package/dist/forms/dropzone/Dropzone.svelte +1 -1
  51. package/dist/forms/fileupload/Fileupload.svelte +1 -1
  52. package/dist/forms/floating-label/FloatingLabelInput.svelte +1 -1
  53. package/dist/forms/helper/Helper.svelte +1 -1
  54. package/dist/forms/input-field/Input.svelte +1 -1
  55. package/dist/forms/label/Label.svelte +1 -1
  56. package/dist/forms/phoneinput/PhoneInput.svelte +1 -1
  57. package/dist/forms/radio/Radio.svelte +1 -1
  58. package/dist/forms/radio/RadioButton.svelte +1 -1
  59. package/dist/forms/range/Range.svelte +1 -1
  60. package/dist/forms/search/Search.svelte +1 -1
  61. package/dist/forms/select/MultiSelect.svelte +9 -7
  62. package/dist/forms/select/Select.svelte +1 -1
  63. package/dist/forms/tags/Tags.svelte +2 -2
  64. package/dist/forms/tags/theme.js +3 -3
  65. package/dist/forms/textarea/Textarea.svelte +1 -1
  66. package/dist/forms/timepicker/Timepicker.svelte +1 -1
  67. package/dist/forms/toggle/Toggle.svelte +1 -1
  68. package/dist/gallery/Gallery.svelte +1 -1
  69. package/dist/indicator/Indicator.svelte +1 -1
  70. package/dist/kanban/KanbanBoard.svelte +1 -1
  71. package/dist/kanban/KanbanCard.svelte +2 -2
  72. package/dist/kanban/KanbanCard.svelte.d.ts +1 -1
  73. package/dist/kbd/Kbd.svelte +1 -1
  74. package/dist/list-group/Listgroup.svelte +1 -1
  75. package/dist/list-group/ListgroupItem.svelte +1 -1
  76. package/dist/mega-menu/MegaMenu.svelte +1 -1
  77. package/dist/modal/Modal.svelte +1 -1
  78. package/dist/navbar/NavBrand.svelte +1 -1
  79. package/dist/navbar/NavContainer.svelte +1 -1
  80. package/dist/navbar/NavHamburger.svelte +1 -1
  81. package/dist/navbar/NavLi.svelte +1 -1
  82. package/dist/navbar/NavUl.svelte +1 -1
  83. package/dist/navbar/Navbar.svelte +1 -1
  84. package/dist/pagination/Pagination.svelte +1 -1
  85. package/dist/pagination/PaginationButton.svelte +1 -1
  86. package/dist/pagination/PaginationItem.svelte +1 -1
  87. package/dist/pagination/PaginationNav.svelte +1 -1
  88. package/dist/popover/Popover.svelte +1 -1
  89. package/dist/progress/Progressbar.svelte +1 -1
  90. package/dist/progress/Progressradial.svelte +1 -1
  91. package/dist/rating/AdvancedRating.svelte +1 -1
  92. package/dist/rating/Rating.svelte +1 -1
  93. package/dist/rating/Review.svelte +1 -1
  94. package/dist/rating/ScoreRating.svelte +1 -1
  95. package/dist/scroll-spy/ScrollSpy.svelte +2 -2
  96. package/dist/scroll-spy/ScrollSpy.svelte.d.ts +1 -1
  97. package/dist/sidebar/Sidebar.svelte +1 -1
  98. package/dist/sidebar/SidebarBrand.svelte +1 -1
  99. package/dist/sidebar/SidebarButton.svelte +1 -1
  100. package/dist/sidebar/SidebarCta.svelte +1 -1
  101. package/dist/sidebar/SidebarDropdownWrapper.svelte +1 -1
  102. package/dist/skeleton/CardPlaceholder.svelte +1 -1
  103. package/dist/skeleton/ImagePlaceholder.svelte +1 -1
  104. package/dist/skeleton/ListPlaceholder.svelte +1 -1
  105. package/dist/skeleton/Skeleton.svelte +1 -1
  106. package/dist/skeleton/TestimonialPlaceholder.svelte +1 -1
  107. package/dist/skeleton/TextPlaceholder.svelte +1 -1
  108. package/dist/skeleton/VideoPlaceholder.svelte +1 -1
  109. package/dist/skeleton/WidgetPlaceholder.svelte +1 -1
  110. package/dist/speed-dial/SpeedDial.svelte +1 -1
  111. package/dist/speed-dial/SpeedDialButton.svelte +1 -1
  112. package/dist/spinner/Spinner.svelte +1 -1
  113. package/dist/split-pane/Divider.svelte +4 -4
  114. package/dist/split-pane/Divider.svelte.d.ts +1 -1
  115. package/dist/split-pane/Pane.svelte +2 -2
  116. package/dist/split-pane/Pane.svelte.d.ts +1 -1
  117. package/dist/split-pane/SplitPane.svelte +2 -2
  118. package/dist/split-pane/SplitPane.svelte.d.ts +1 -1
  119. package/dist/step-indicator/StepIndicator.svelte +1 -1
  120. package/dist/stepper/BreadcrumbStepper.svelte +1 -1
  121. package/dist/stepper/DetailedStepper.svelte +1 -1
  122. package/dist/stepper/ProgressStepper.svelte +1 -1
  123. package/dist/stepper/Stepper.svelte +1 -1
  124. package/dist/stepper/TimelineStepper.svelte +1 -1
  125. package/dist/stepper/VerticalStepper.svelte +1 -1
  126. package/dist/table/Table.svelte +1 -1
  127. package/dist/table/TableBodyCell.svelte +1 -1
  128. package/dist/table/TableBodyRow.svelte +1 -1
  129. package/dist/table/TableHead.svelte +1 -1
  130. package/dist/table/TableHeadCell.svelte +1 -1
  131. package/dist/table/TableSearch.svelte +1 -1
  132. package/dist/tabs/TabItem.svelte +1 -1
  133. package/dist/tabs/Tabs.svelte +1 -1
  134. package/dist/theme/ThemeProvider.svelte +11 -6
  135. package/dist/theme/themeUtils.js +4 -2
  136. package/dist/timeline/Activity.svelte +1 -1
  137. package/dist/timeline/ActivityItem.svelte +1 -1
  138. package/dist/timeline/Group.svelte +1 -1
  139. package/dist/timeline/GroupItem.svelte +1 -1
  140. package/dist/timeline/Timeline.svelte +3 -5
  141. package/dist/timeline/TimelineItem.svelte +7 -2
  142. package/dist/timeline/TimelineItem.svelte.d.ts +1 -0
  143. package/dist/timeline/theme.d.ts +3 -0
  144. package/dist/timeline/theme.js +2 -1
  145. package/dist/toast/Toast.svelte +2 -2
  146. package/dist/toast/Toast.svelte.d.ts +1 -1
  147. package/dist/toast/ToastContainer.svelte +2 -2
  148. package/dist/toast/ToastContainer.svelte.d.ts +1 -1
  149. package/dist/toolbar/Toolbar.svelte +1 -1
  150. package/dist/toolbar/ToolbarButton.svelte +1 -1
  151. package/dist/toolbar/ToolbarGroup.svelte +1 -1
  152. package/dist/tooltip/Tooltip.svelte +1 -1
  153. package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
  154. package/dist/tour/Tour.svelte +1 -1
  155. package/dist/types.d.ts +2 -0
  156. package/dist/typography/a/A.svelte +2 -2
  157. package/dist/typography/a/A.svelte.d.ts +1 -1
  158. package/dist/typography/blockquote/Blockquote.svelte +2 -2
  159. package/dist/typography/blockquote/Blockquote.svelte.d.ts +1 -1
  160. package/dist/typography/descriptionlist/DescriptionList.svelte +2 -2
  161. package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +1 -1
  162. package/dist/typography/heading/Heading.svelte +2 -2
  163. package/dist/typography/heading/Heading.svelte.d.ts +1 -1
  164. package/dist/typography/hr/Hr.svelte +1 -1
  165. package/dist/typography/img/Img.svelte +2 -2
  166. package/dist/typography/img/Img.svelte.d.ts +1 -1
  167. package/dist/typography/layout/Layout.svelte +2 -2
  168. package/dist/typography/layout/Layout.svelte.d.ts +1 -1
  169. package/dist/typography/list/Li.svelte +1 -1
  170. package/dist/typography/list/Li.svelte.d.ts +1 -1
  171. package/dist/typography/list/List.svelte +2 -2
  172. package/dist/typography/list/List.svelte.d.ts +1 -1
  173. package/dist/typography/mark/Mark.svelte +2 -2
  174. package/dist/typography/mark/Mark.svelte.d.ts +1 -1
  175. package/dist/typography/paragraph/P.svelte +2 -2
  176. package/dist/typography/paragraph/P.svelte.d.ts +1 -1
  177. package/dist/typography/secondary/Secondary.svelte +2 -2
  178. package/dist/typography/secondary/Secondary.svelte.d.ts +1 -1
  179. package/dist/typography/span/Span.svelte +2 -2
  180. package/dist/typography/span/Span.svelte.d.ts +1 -1
  181. package/dist/utils/Arrow.svelte +1 -1
  182. package/dist/utils/Arrow.svelte.d.ts +1 -1
  183. package/dist/utils/Popper.svelte +1 -1
  184. package/dist/utils/Popper.svelte.d.ts +1 -1
  185. package/dist/video/Video.svelte +2 -2
  186. package/dist/video/Video.svelte.d.ts +1 -1
  187. package/dist/virtual-masonry/VirtualMasonry.svelte +1 -1
  188. package/dist/virtuallist/VirtualList.svelte +1 -1
  189. package/package.json +41 -41
  190. /package/{License → LICENSE} +0 -0
@@ -9,7 +9,7 @@
9
9
 
10
10
  let { children, flush, activeClass, inactiveClass, multiple = false, class: className, transitionType, ...restProps }: AccordionProps = $props();
11
11
 
12
- const theme = getTheme("accordion");
12
+ const theme = $derived(getTheme("accordion"));
13
13
 
14
14
  // Simple reactive state object
15
15
  const reactiveCtx: AccordionContextType = {
@@ -13,6 +13,7 @@
13
13
  header,
14
14
  arrowup,
15
15
  arrowdown,
16
+ headingTag,
16
17
  open = $bindable(false),
17
18
  activeClass,
18
19
  inactiveClass,
@@ -50,7 +51,7 @@
50
51
  const useTransition = $derived(transitionType === "none" ? false : ctxTransitionType === "none" ? false : true);
51
52
 
52
53
  // Theme context
53
- const theme = getTheme("accordionItem");
54
+ const theme = $derived(getTheme("accordionItem"));
54
55
 
55
56
  // single selection
56
57
  const self = Symbol("accordion-item");
@@ -70,7 +71,7 @@
70
71
  let buttonClass = $derived(clsx(open && !ctx?.flush && (styling.active || ctx?.activeClass || active()), !open && !ctx?.flush && (styling.inactive || ctx?.inactiveClass || inactive())));
71
72
  </script>
72
73
 
73
- <h2 class={base({ class: clsx(theme?.base, className) })}>
74
+ <svelte:element this={headingTag ?? "h2"} class={base({ class: clsx(theme?.base, className) })}>
74
75
  <button type="button" onclick={handleToggle} class={button({ class: clsx(buttonClass, theme?.button, styling.button) })} aria-expanded={open}>
75
76
  {#if header}
76
77
  {@render header()}
@@ -91,7 +92,7 @@
91
92
  {/if}
92
93
  {/if}
93
94
  </button>
94
- </h2>
95
+ </svelte:element>
95
96
 
96
97
  {#if useTransition}
97
98
  {#if open && transitionType !== "none"}
@@ -23,7 +23,7 @@
23
23
  }: AlertProps = $props();
24
24
 
25
25
  // Theme context
26
- const theme = getTheme("alert");
26
+ const theme = $derived(getTheme("alert"));
27
27
 
28
28
  let divCls = $derived(
29
29
  alert({
@@ -8,7 +8,7 @@
8
8
  let { children, indicator, src, href, target, cornerStyle = "circular", border = false, stacked = false, dot, class: className, alt, size = "md", onclick, ...restProps }: AvatarProps = $props();
9
9
 
10
10
  // Theme context
11
- const theme = getTheme("avatar");
11
+ const theme = $derived(getTheme("avatar"));
12
12
 
13
13
  let dotProps = $derived(dot ? { placement: "top-right" as const, color: "gray" as const, size: "lg" as const, ...dot } : undefined);
14
14
 
@@ -36,7 +36,7 @@
36
36
  const styling = $derived(classes ?? { linkClass: aClass });
37
37
 
38
38
  // Theme context
39
- const theme = getTheme("badge");
39
+ const theme = $derived(getTheme("badge"));
40
40
 
41
41
  const { base, linkClass } = $derived(badge({ color, size: large ? "large" : "small", rounded, border }));
42
42
 
@@ -34,7 +34,7 @@
34
34
  const styling = $derived(classes ?? { insideDiv: innerClass, dismissable: closeClass });
35
35
 
36
36
  // Theme context
37
- const theme = getTheme("banner");
37
+ const theme = $derived(getTheme("banner"));
38
38
 
39
39
  const { base, insideDiv, dismissable: dismissableClass } = $derived(banner({ type, color }));
40
40
 
@@ -18,7 +18,7 @@
18
18
  const styling = $derived(classes ?? { inner: innerClass });
19
19
 
20
20
  // Theme context
21
- const theme = getTheme("bottomNav");
21
+ const theme = $derived(getTheme("bottomNav"));
22
22
 
23
23
  const activeCls = $derived(cn("text-primary-700 dark:text-primary-700 hover:text-primary-900 dark:hover:text-primary-900", activeClass));
24
24
 
@@ -16,7 +16,7 @@
16
16
  const styling = $derived(classes ?? { innerDiv: innerClass });
17
17
 
18
18
  // Theme context
19
- const theme = getTheme("bottomNavHeader");
19
+ const theme = $derived(getTheme("bottomNavHeader"));
20
20
 
21
21
  const { innerDiv, base } = $derived(bottomNavHeader());
22
22
  </script>
@@ -7,7 +7,7 @@
7
7
  let { itemName, active, class: className, ...restProps }: BottomNavHeaderItemProps = $props();
8
8
 
9
9
  // Theme context
10
- const theme = getTheme("bottomNavHeaderItem");
10
+ const theme = $derived(getTheme("bottomNavHeaderItem"));
11
11
 
12
12
  let base = $derived(bottomNavHeaderItem({ active, class: clsx(theme, className) }));
13
13
  </script>
@@ -18,7 +18,7 @@
18
18
  const styling = $derived(classes ?? { span: spanClass });
19
19
 
20
20
  // Theme context
21
- const theme = getTheme("bottomNavItem");
21
+ const theme = $derived(getTheme("bottomNavItem"));
22
22
 
23
23
  const context = getBottomNavContext();
24
24
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  const styling = $derived(classes ?? { list: olClass });
17
17
 
18
- const theme = getTheme("breadcrumb");
18
+ const theme = $derived(getTheme("breadcrumb"));
19
19
 
20
20
  const { base, list } = $derived(breadcrumb({ solid }));
21
21
  let classNav = $derived(base({ class: clsx(theme?.base, className) }));
@@ -8,7 +8,7 @@
8
8
 
9
9
  const styling = $derived(classes ?? {});
10
10
 
11
- const theme = getTheme("breadcrumbItem");
11
+ const theme = $derived(getTheme("breadcrumbItem"));
12
12
 
13
13
  const { base, separator } = $derived(
14
14
  breadcrumbItem({
@@ -7,7 +7,7 @@
7
7
 
8
8
  let { children, size = "md", disabled, class: className, ...restProps }: ButtonGroupProps = $props();
9
9
 
10
- const theme = getTheme("buttonGroup");
10
+ const theme = $derived(getTheme("buttonGroup"));
11
11
 
12
12
  let groupClass = $derived(buttonGroup({ size, class: clsx(theme, className) }));
13
13
 
@@ -25,7 +25,7 @@
25
25
  ...restProps
26
26
  }: ButtonProps = $props();
27
27
 
28
- const theme = getTheme("button");
28
+ const theme = $derived(getTheme("button"));
29
29
 
30
30
  let actualSize = $derived(group ? "sm" : size);
31
31
  let actualColor = $derived(color ?? (group ? (outline ? "dark" : "alternative") : "primary"));
@@ -10,7 +10,7 @@
10
10
 
11
11
  let { children, outline, pill, color = "blue", shadow, class: className, href, disabled, size, btnClass, ...restProps }: GradientButtonProps = $props();
12
12
 
13
- const theme = getTheme("gradientButton");
13
+ const theme = $derived(getTheme("gradientButton"));
14
14
 
15
15
  const { base, outlineWrapper } = $derived(gradientButton({ color, outline, pill, shadow, disabled, size, group: !!group }));
16
16
  </script>
@@ -15,7 +15,7 @@
15
15
 
16
16
  const styling = $derived(classes ?? { image: imgClass });
17
17
 
18
- const theme = getTheme("card");
18
+ const theme = $derived(getTheme("card"));
19
19
 
20
20
  const { base, image } = $derived(
21
21
  card({
@@ -39,7 +39,7 @@
39
39
  const styling = $derived(classes ?? { slide: imgClass });
40
40
 
41
41
  // Theme context
42
- const theme = getTheme("carousel");
42
+ const theme = $derived(getTheme("carousel"));
43
43
 
44
44
  let { base, slide: slideCls } = $derived(carousel());
45
45
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  let { children, activeClass, inactiveClass, position = "bottom", class: className, ...restProps }: IndicatorsProps = $props();
10
10
 
11
- const theme = getTheme("carouselIndicators");
11
+ const theme = $derived(getTheme("carouselIndicators"));
12
12
 
13
13
  const _state = getCarouselContext();
14
14
  const { base, indicator } = $derived(carouselIndicators({ position }));
@@ -8,7 +8,7 @@
8
8
 
9
9
  const { base, span } = $derived(controlButton({ forward }));
10
10
 
11
- const theme = getTheme("controlButton");
11
+ const theme = $derived(getTheme("controlButton"));
12
12
  </script>
13
13
 
14
14
  <button type="button" class={base({ class: clsx(className, theme) })} {...restProps}>
@@ -7,7 +7,7 @@
7
7
 
8
8
  let { children, class: className, ...restProps }: ControlsProps = $props();
9
9
 
10
- const theme = getTheme("controlButton");
10
+ const theme = $derived(getTheme("controlButton"));
11
11
 
12
12
  const _state = getCarouselContext();
13
13
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  let { image, transition, fit, class: className, ...restProps }: SlideProps = $props();
12
12
 
13
- const theme = getTheme("slide");
13
+ const theme = $derived(getTheme("slide"));
14
14
 
15
15
  let transitionSlideIn = $derived({
16
16
  x: _state?.forward ? "100%" : "-100%",
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { selected, class: className, ...restProps }: ThumbnailProps = $props();
8
8
 
9
- const theme = getTheme("thumbnail");
9
+ const theme = $derived(getTheme("thumbnail"));
10
10
  </script>
11
11
 
12
12
  <img {...restProps} class={thumbnail({ selected, class: clsx(theme, className) })} />
@@ -7,7 +7,7 @@
7
7
 
8
8
  let { children, images = [], index = $bindable(), ariaLabel = "Click to view image", imgClass, throttleDelay = 650, class: className }: ThumbnailsProps = $props();
9
9
 
10
- const theme = getTheme("thumbnails");
10
+ const theme = $derived(getTheme("thumbnails"));
11
11
 
12
12
  // Initialize so the first click is never throttled
13
13
  let lastClickedAt = -Infinity;
@@ -8,7 +8,7 @@
8
8
 
9
9
  let { children, embedded = false, value = $bindable(""), success = $bindable(false), onclick, class: className = "", ...restProps }: ClipboardProps = $props();
10
10
 
11
- const theme = getTheme("clipboard");
11
+ const theme = $derived(getTheme("clipboard"));
12
12
 
13
13
  const copyToClipboard: MouseEventHandler<HTMLButtonElement> = async (ev) => {
14
14
  onclick?.(ev);
@@ -30,7 +30,7 @@
30
30
  detectSensitiveData
31
31
  }: ClipboardManagerProps = $props();
32
32
 
33
- const theme = getTheme("clipboardManager");
33
+ const theme = $derived(getTheme("clipboardManager"));
34
34
 
35
35
  const isModal = $derived(open !== undefined);
36
36
 
@@ -21,7 +21,7 @@
21
21
  ...restProps
22
22
  }: CommandPaletteProps = $props();
23
23
 
24
- const theme = getTheme("commandPalette");
24
+ const theme = $derived(getTheme("commandPalette"));
25
25
 
26
26
  let search = $state("");
27
27
  let selectedIndex = $state(0);
@@ -194,7 +194,7 @@
194
194
  @component
195
195
  [Go to docs](https://flowbite-svelte.com/)
196
196
  ## Type
197
- [CommandPaletteProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2312)
197
+ [CommandPaletteProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2313)
198
198
  ## Props
199
199
  @prop open = $bindable(false)
200
200
  @prop items = []
@@ -2,7 +2,7 @@ import type { CommandPaletteProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [CommandPaletteProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2312)
5
+ * [CommandPaletteProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L2313)
6
6
  * ## Props
7
7
  * @prop open = $bindable(false)
8
8
  * @prop items = []
package/dist/context.d.ts CHANGED
@@ -19,7 +19,10 @@ declare const getListContext: () => ListContextType | undefined, setListContext:
19
19
  export { getListContext, setListContext };
20
20
  declare const getToolbarContext: () => ToolbarContextType | undefined, setToolbarContext: (context: ToolbarContextType) => ToolbarContextType;
21
21
  export { getToolbarContext, setToolbarContext };
22
- declare const getThemeContext: () => ThemeConfig | undefined, setThemeContext: (context: ThemeConfig) => ThemeConfig;
22
+ type ThemeContextValue = ThemeConfig | {
23
+ value?: ThemeConfig;
24
+ };
25
+ declare const getThemeContext: () => ThemeContextValue | undefined, setThemeContext: (context: ThemeContextValue) => ThemeContextValue;
23
26
  export { getThemeContext, setThemeContext };
24
27
  declare const getListGroupContext: () => ListGroupContextType | undefined, setListGroupContext: (context: ListGroupContextType) => ListGroupContextType;
25
28
  export { getListGroupContext, setListGroupContext };
package/dist/context.js CHANGED
@@ -42,7 +42,6 @@ export { getListContext, setListContext };
42
42
  // Toolbar
43
43
  const [getToolbarContext, setToolbarContext] = createSafeContext();
44
44
  export { getToolbarContext, setToolbarContext };
45
- // Theme
46
45
  const [getThemeContext, setThemeContext] = createSafeContext();
47
46
  export { getThemeContext, setThemeContext };
48
47
  // ListGroup
@@ -7,7 +7,7 @@
7
7
  // const THEME_PREFERENCE_KEY = 'color-theme';
8
8
  let { class: className, lightIcon, darkIcon, size = "md", ariaLabel = "Dark mode", ...restProps }: DarkmodeProps = $props();
9
9
 
10
- const theme = getTheme("darkmode");
10
+ const theme = $derived(getTheme("darkmode"));
11
11
 
12
12
  const sizes = {
13
13
  sm: "w-4 h-4",
@@ -45,7 +45,7 @@
45
45
  inputProps = {}
46
46
  }: DatepickerProps = $props();
47
47
 
48
- const theme = getTheme("datepicker");
48
+ const theme = $derived(getTheme("datepicker"));
49
49
 
50
50
  // If translationLocale is not explicitly provided, it will default to the value of locale. This ensures reactivity as both are directly exposed as props.
51
51
  const finalTranslationLocale = $derived(translationLocale ?? locale);
@@ -55,13 +55,6 @@
55
55
  isOpen = inline;
56
56
  });
57
57
  let showMonthSelector: boolean = $state(false);
58
- let inputElement: HTMLInputElement | null = $state(null);
59
-
60
- $effect(() => {
61
- if (inputElement) {
62
- elementRef = inputElement;
63
- }
64
- });
65
58
  let datepickerContainerElement: HTMLDivElement;
66
59
  let currentMonth: Date = $state(new Date());
67
60
  $effect(() => {
@@ -162,15 +155,15 @@
162
155
  }
163
156
 
164
157
  function handleInputChangeWithDateFns() {
165
- const inputValue = inputElement?.value?.trim();
158
+ const inputValue = elementRef?.value?.trim();
166
159
  if (!inputValue) {
167
160
  rangeFrom = undefined;
168
161
  rangeTo = undefined;
169
- inputElement?.setCustomValidity("");
162
+ elementRef?.setCustomValidity("");
170
163
  return;
171
164
  }
172
165
 
173
- inputElement?.setCustomValidity("");
166
+ elementRef?.setCustomValidity("");
174
167
 
175
168
  if (range) {
176
169
  const parts = inputValue.split(" - ");
@@ -183,7 +176,7 @@
183
176
  onselect?.({ from: rangeFrom, to: rangeTo });
184
177
  return;
185
178
  } else {
186
- inputElement?.setCustomValidity(`Please enter date range in format: ${getDateFormatPattern()} - ${getDateFormatPattern()}`);
179
+ elementRef?.setCustomValidity(`Please enter date range in format: ${getDateFormatPattern()} - ${getDateFormatPattern()}`);
187
180
  return;
188
181
  }
189
182
  }
@@ -193,12 +186,12 @@
193
186
 
194
187
  if (!parsedDate || !isValid(parsedDate)) {
195
188
  const formatPattern = getDateFormatPattern();
196
- inputElement?.setCustomValidity(`Please enter date in format: ${formatPattern}`);
189
+ elementRef?.setCustomValidity(`Please enter date in format: ${formatPattern}`);
197
190
  return;
198
191
  }
199
192
 
200
193
  if (!isDateAvailable(parsedDate)) {
201
- inputElement?.setCustomValidity("Selected date is not available");
194
+ elementRef?.setCustomValidity("Selected date is not available");
202
195
  return;
203
196
  }
204
197
 
@@ -353,7 +346,7 @@
353
346
  case "Escape":
354
347
  isOpen = false;
355
348
  showMonthSelector = false;
356
- inputElement?.focus();
349
+ elementRef?.focus();
357
350
  break;
358
351
  default:
359
352
  return;
@@ -421,7 +414,7 @@
421
414
  <div class="relative">
422
415
  <input
423
416
  {...inputProps}
424
- bind:this={inputElement}
417
+ bind:this={elementRef}
425
418
  type="text"
426
419
  class={input({ color, class: clsx(theme?.input, inputClass) })}
427
420
  {placeholder}
@@ -64,7 +64,7 @@
64
64
  });
65
65
  // end
66
66
 
67
- const theme = getTheme("drawer");
67
+ const theme = $derived(getTheme("drawer"));
68
68
 
69
69
  let shifted = $state(true);
70
70
 
@@ -9,7 +9,7 @@
9
9
 
10
10
  const ctx = getDrawerContext();
11
11
 
12
- const theme = getTheme("drawerhandle");
12
+ const theme = $derived(getTheme("drawerhandle"));
13
13
  let { base, handle } = $derived(drawerhandle({ placement: placement ?? ctx?.placement ?? "left" }));
14
14
  </script>
15
15
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  const styling = $derived(classes ?? { button: buttonClass, svg: svgClass });
17
17
 
18
- const theme = getTheme("drawer");
18
+ const theme = $derived(getTheme("drawer"));
19
19
 
20
20
  const { base, button, svg } = $derived(drawerhead());
21
21
  </script>
@@ -9,7 +9,7 @@
9
9
 
10
10
  let { children, simple = false, placement = "bottom", offset = 2, class: className, activeUrl = "", isOpen = $bindable(false), onclose, ...restProps }: DropdownProps = $props();
11
11
 
12
- const theme = getTheme("dropdown");
12
+ const theme = $derived(getTheme("dropdown"));
13
13
 
14
14
  const base = $derived(dropdown({ class: clsx(theme, className) }));
15
15
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { class: className, ...restProps }: DropdownDividerProps = $props();
8
8
 
9
- const theme = getTheme("dropdownDivider");
9
+ const theme = $derived(getTheme("dropdownDivider"));
10
10
  </script>
11
11
 
12
12
  <div {...restProps} class={dropdownDivider({ class: clsx(theme, className) })}></div>
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { children, class: className, ...restProps }: DropdownGroupProps = $props();
8
8
 
9
- const theme = getTheme("dropdownGroup");
9
+ const theme = $derived(getTheme("dropdownGroup"));
10
10
  </script>
11
11
 
12
12
  <ul {...restProps} class={dropdownGroup({ class: clsx(theme, className) })}>
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { children, class: className, ...restProps }: DropdownHeaderProps = $props();
8
8
 
9
- const theme = getTheme("dropdownHeader");
9
+ const theme = $derived(getTheme("dropdownHeader"));
10
10
  </script>
11
11
 
12
12
  <div {...restProps} class={dropdownHeader({ class: clsx(theme, className) })}>
@@ -16,7 +16,7 @@
16
16
 
17
17
  const styling = $derived(classes ?? { active: activeClass, li: liClass });
18
18
 
19
- const theme = getTheme("dropdownItem");
19
+ const theme = $derived(getTheme("dropdownItem"));
20
20
 
21
21
  const ctx = getDropdownContext();
22
22
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { children, footerType = "default", class: className, ...restProps }: FooterProps = $props();
8
8
 
9
- const theme = getTheme("footer");
9
+ const theme = $derived(getTheme("footer"));
10
10
 
11
11
  const footerCls = $derived(footer({ footerType, class: clsx(theme, className) }));
12
12
  </script>
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { children, aClass, spanClass, imgClass, href, src, alt, name, ...restProps }: FooterBrandProps = $props();
8
8
 
9
- const theme = getTheme("footerBrand");
9
+ const theme = $derived(getTheme("footerBrand"));
10
10
 
11
11
  const { base, span, img } = $derived(footerBrand());
12
12
  </script>
@@ -17,7 +17,7 @@
17
17
  // link, bySpan
18
18
  const styling = $derived(classes ?? { bySpan: bySpanClass, link: aClass });
19
19
 
20
- const theme = getTheme("footerCopyright");
20
+ const theme = $derived(getTheme("footerCopyright"));
21
21
 
22
22
  const effectiveYear = $derived(year ?? new SvelteDate().getFullYear());
23
23
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { children, href, ariaLabel, class: className, ...restProps }: FooterIconProps = $props();
8
8
 
9
- const theme = getTheme("footerIcon");
9
+ const theme = $derived(getTheme("footerIcon"));
10
10
  </script>
11
11
 
12
12
  {#if href}
@@ -16,7 +16,7 @@
16
16
  // link, bySpan
17
17
  const styling = $derived(classes ?? { link: aClass });
18
18
 
19
- const theme = getTheme("footerLink");
19
+ const theme = $derived(getTheme("footerLink"));
20
20
 
21
21
  const { base, link } = footerLink();
22
22
  </script>
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { class: className, children, ...restProps }: FooterLinkGroupProps = $props();
8
8
 
9
- const theme = getTheme("footerLinkGroup");
9
+ const theme = $derived(getTheme("footerLinkGroup"));
10
10
  </script>
11
11
 
12
12
  <ul {...restProps} class={footerLinkGroup({ class: clsx(theme, className) })}>
@@ -19,7 +19,7 @@
19
19
  // button(className), content, text, icon
20
20
  const styling = $derived(classes ?? { icon: iconClass, text: txtClass, content: contentClass });
21
21
 
22
- const theme = getTheme("buttonToggle");
22
+ const theme = $derived(getTheme("buttonToggle"));
23
23
 
24
24
  // Get context - it will be undefined if used outside ButtonToggleGroup
25
25
  const ctx = getButtonToggleContext();
@@ -20,7 +20,7 @@
20
20
  ...restProps
21
21
  }: ButtonToggleGroupProps = $props();
22
22
 
23
- const theme = getTheme("buttonToggleGroup");
23
+ const theme = $derived(getTheme("buttonToggleGroup"));
24
24
 
25
25
  const base = $derived(buttonToggleGroup({ roundedSize, class: clsx(theme, className) }));
26
26
  type SelectedValue = string | null | string[];
@@ -33,7 +33,7 @@
33
33
 
34
34
  const styling = $derived(classes ?? { div: divClass });
35
35
 
36
- const theme = getTheme("checkbox");
36
+ const theme = $derived(getTheme("checkbox"));
37
37
 
38
38
  const { base, div: divStyle } = $derived(checkbox({ color, tinted, custom, rounded, inline, disabled: disabled ?? false }));
39
39
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  let { children, class: className, group = $bindable(), checked = $bindable(false), inline, pill, outline, size, color, shadow, ...restProps }: CheckboxButtonProps = $props();
10
10
 
11
- const theme = getTheme("checkboxButton");
11
+ const theme = $derived(getTheme("checkboxButton"));
12
12
 
13
13
  let buttonClass: string = $derived(checkboxButton({ inline, checked, class: clsx(theme, className) }));
14
14
  </script>
@@ -9,7 +9,7 @@
9
9
 
10
10
  let { children, files = $bindable<FileList | null>(), class: className, onDrop, onDragOver, onChange, ...restProps }: DropzoneProps = $props();
11
11
 
12
- const theme = getTheme("dropzone");
12
+ const theme = $derived(getTheme("dropzone"));
13
13
 
14
14
  let inputElement: HTMLInputElement;
15
15
 
@@ -30,7 +30,7 @@
30
30
 
31
31
  const styling = $derived(classes ?? { wrapper: wrapperClass, close: clearableClass, svg: clearableSvgClass });
32
32
 
33
- const theme = getTheme("fileupload");
33
+ const theme = $derived(getTheme("fileupload"));
34
34
 
35
35
  const { base, wrapper, close } = fileupload();
36
36
 
@@ -41,7 +41,7 @@
41
41
 
42
42
  const styling = $derived(classes ?? { input: inputClass, label: labelClass, svg: clearableSvgClass, close: clearableClass, combo: comboClass });
43
43
 
44
- const theme = getTheme("floatingLabelInput");
44
+ const theme = $derived(getTheme("floatingLabelInput"));
45
45
 
46
46
  const { base, input, label, close, combo } = $derived(floatingLabelInput({ variant, size, color }));
47
47