flowbite-svelte 1.30.1 → 1.31.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 (188) hide show
  1. package/dist/accordion/Accordion.svelte +1 -1
  2. package/dist/accordion/AccordionItem.svelte +1 -1
  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 +1 -1
  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 +1 -1
  62. package/dist/forms/select/Select.svelte +1 -1
  63. package/dist/forms/tags/Tags.svelte +1 -1
  64. package/dist/forms/textarea/Textarea.svelte +1 -1
  65. package/dist/forms/timepicker/Timepicker.svelte +1 -1
  66. package/dist/forms/toggle/Toggle.svelte +1 -1
  67. package/dist/gallery/Gallery.svelte +1 -1
  68. package/dist/indicator/Indicator.svelte +1 -1
  69. package/dist/kanban/KanbanBoard.svelte +1 -1
  70. package/dist/kanban/KanbanCard.svelte +2 -2
  71. package/dist/kanban/KanbanCard.svelte.d.ts +1 -1
  72. package/dist/kbd/Kbd.svelte +1 -1
  73. package/dist/list-group/Listgroup.svelte +1 -1
  74. package/dist/list-group/ListgroupItem.svelte +1 -1
  75. package/dist/mega-menu/MegaMenu.svelte +1 -1
  76. package/dist/modal/Modal.svelte +1 -1
  77. package/dist/navbar/NavBrand.svelte +1 -1
  78. package/dist/navbar/NavContainer.svelte +1 -1
  79. package/dist/navbar/NavHamburger.svelte +1 -1
  80. package/dist/navbar/NavLi.svelte +1 -1
  81. package/dist/navbar/NavUl.svelte +1 -1
  82. package/dist/navbar/Navbar.svelte +1 -1
  83. package/dist/pagination/Pagination.svelte +1 -1
  84. package/dist/pagination/PaginationButton.svelte +1 -1
  85. package/dist/pagination/PaginationItem.svelte +1 -1
  86. package/dist/pagination/PaginationNav.svelte +1 -1
  87. package/dist/popover/Popover.svelte +1 -1
  88. package/dist/progress/Progressbar.svelte +1 -1
  89. package/dist/progress/Progressradial.svelte +1 -1
  90. package/dist/rating/AdvancedRating.svelte +1 -1
  91. package/dist/rating/Rating.svelte +1 -1
  92. package/dist/rating/Review.svelte +1 -1
  93. package/dist/rating/ScoreRating.svelte +1 -1
  94. package/dist/scroll-spy/ScrollSpy.svelte +2 -2
  95. package/dist/scroll-spy/ScrollSpy.svelte.d.ts +1 -1
  96. package/dist/sidebar/Sidebar.svelte +1 -1
  97. package/dist/sidebar/SidebarBrand.svelte +1 -1
  98. package/dist/sidebar/SidebarButton.svelte +1 -1
  99. package/dist/sidebar/SidebarCta.svelte +1 -1
  100. package/dist/sidebar/SidebarDropdownWrapper.svelte +1 -1
  101. package/dist/skeleton/CardPlaceholder.svelte +1 -1
  102. package/dist/skeleton/ImagePlaceholder.svelte +1 -1
  103. package/dist/skeleton/ListPlaceholder.svelte +1 -1
  104. package/dist/skeleton/Skeleton.svelte +1 -1
  105. package/dist/skeleton/TestimonialPlaceholder.svelte +1 -1
  106. package/dist/skeleton/TextPlaceholder.svelte +1 -1
  107. package/dist/skeleton/VideoPlaceholder.svelte +1 -1
  108. package/dist/skeleton/WidgetPlaceholder.svelte +1 -1
  109. package/dist/speed-dial/SpeedDial.svelte +1 -1
  110. package/dist/speed-dial/SpeedDialButton.svelte +1 -1
  111. package/dist/spinner/Spinner.svelte +1 -1
  112. package/dist/split-pane/Divider.svelte +4 -4
  113. package/dist/split-pane/Divider.svelte.d.ts +1 -1
  114. package/dist/split-pane/Pane.svelte +2 -2
  115. package/dist/split-pane/Pane.svelte.d.ts +1 -1
  116. package/dist/split-pane/SplitPane.svelte +2 -2
  117. package/dist/split-pane/SplitPane.svelte.d.ts +1 -1
  118. package/dist/step-indicator/StepIndicator.svelte +1 -1
  119. package/dist/stepper/BreadcrumbStepper.svelte +1 -1
  120. package/dist/stepper/DetailedStepper.svelte +1 -1
  121. package/dist/stepper/ProgressStepper.svelte +1 -1
  122. package/dist/stepper/Stepper.svelte +1 -1
  123. package/dist/stepper/TimelineStepper.svelte +1 -1
  124. package/dist/stepper/VerticalStepper.svelte +1 -1
  125. package/dist/table/Table.svelte +1 -1
  126. package/dist/table/TableBodyCell.svelte +1 -1
  127. package/dist/table/TableBodyRow.svelte +1 -1
  128. package/dist/table/TableHead.svelte +1 -1
  129. package/dist/table/TableHeadCell.svelte +1 -1
  130. package/dist/table/TableSearch.svelte +1 -1
  131. package/dist/tabs/TabItem.svelte +1 -1
  132. package/dist/tabs/Tabs.svelte +1 -1
  133. package/dist/theme/ThemeProvider.svelte +11 -6
  134. package/dist/theme/themeUtils.js +4 -2
  135. package/dist/timeline/Activity.svelte +1 -1
  136. package/dist/timeline/ActivityItem.svelte +1 -1
  137. package/dist/timeline/Group.svelte +1 -1
  138. package/dist/timeline/GroupItem.svelte +1 -1
  139. package/dist/timeline/Timeline.svelte +3 -5
  140. package/dist/timeline/TimelineItem.svelte +7 -2
  141. package/dist/timeline/TimelineItem.svelte.d.ts +1 -0
  142. package/dist/timeline/theme.d.ts +3 -0
  143. package/dist/timeline/theme.js +2 -1
  144. package/dist/toast/Toast.svelte +2 -2
  145. package/dist/toast/Toast.svelte.d.ts +1 -1
  146. package/dist/toast/ToastContainer.svelte +2 -2
  147. package/dist/toast/ToastContainer.svelte.d.ts +1 -1
  148. package/dist/toolbar/Toolbar.svelte +1 -1
  149. package/dist/toolbar/ToolbarButton.svelte +1 -1
  150. package/dist/toolbar/ToolbarGroup.svelte +1 -1
  151. package/dist/tooltip/Tooltip.svelte +1 -1
  152. package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
  153. package/dist/tour/Tour.svelte +1 -1
  154. package/dist/types.d.ts +1 -0
  155. package/dist/typography/a/A.svelte +2 -2
  156. package/dist/typography/a/A.svelte.d.ts +1 -1
  157. package/dist/typography/blockquote/Blockquote.svelte +2 -2
  158. package/dist/typography/blockquote/Blockquote.svelte.d.ts +1 -1
  159. package/dist/typography/descriptionlist/DescriptionList.svelte +2 -2
  160. package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +1 -1
  161. package/dist/typography/heading/Heading.svelte +2 -2
  162. package/dist/typography/heading/Heading.svelte.d.ts +1 -1
  163. package/dist/typography/hr/Hr.svelte +1 -1
  164. package/dist/typography/img/Img.svelte +2 -2
  165. package/dist/typography/img/Img.svelte.d.ts +1 -1
  166. package/dist/typography/layout/Layout.svelte +2 -2
  167. package/dist/typography/layout/Layout.svelte.d.ts +1 -1
  168. package/dist/typography/list/Li.svelte +1 -1
  169. package/dist/typography/list/Li.svelte.d.ts +1 -1
  170. package/dist/typography/list/List.svelte +2 -2
  171. package/dist/typography/list/List.svelte.d.ts +1 -1
  172. package/dist/typography/mark/Mark.svelte +2 -2
  173. package/dist/typography/mark/Mark.svelte.d.ts +1 -1
  174. package/dist/typography/paragraph/P.svelte +2 -2
  175. package/dist/typography/paragraph/P.svelte.d.ts +1 -1
  176. package/dist/typography/secondary/Secondary.svelte +2 -2
  177. package/dist/typography/secondary/Secondary.svelte.d.ts +1 -1
  178. package/dist/typography/span/Span.svelte +2 -2
  179. package/dist/typography/span/Span.svelte.d.ts +1 -1
  180. package/dist/utils/Arrow.svelte +1 -1
  181. package/dist/utils/Arrow.svelte.d.ts +1 -1
  182. package/dist/utils/Popper.svelte +1 -1
  183. package/dist/utils/Popper.svelte.d.ts +1 -1
  184. package/dist/video/Video.svelte +2 -2
  185. package/dist/video/Video.svelte.d.ts +1 -1
  186. package/dist/virtual-masonry/VirtualMasonry.svelte +1 -1
  187. package/dist/virtuallist/VirtualList.svelte +1 -1
  188. package/package.json +13 -13
@@ -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 = {
@@ -50,7 +50,7 @@
50
50
  const useTransition = $derived(transitionType === "none" ? false : ctxTransitionType === "none" ? false : true);
51
51
 
52
52
  // Theme context
53
- const theme = getTheme("accordionItem");
53
+ const theme = $derived(getTheme("accordionItem"));
54
54
 
55
55
  // single selection
56
56
  const self = Symbol("accordion-item");
@@ -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);
@@ -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
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { children, class: className, color = "gray", ...restProps }: HelperProps = $props();
8
8
 
9
- const theme = getTheme("helper");
9
+ const theme = $derived(getTheme("helper"));
10
10
 
11
11
  const base = $derived(helper({ color, class: clsx(theme, className) }));
12
12
  </script>
@@ -53,7 +53,7 @@
53
53
 
54
54
  const styling = $derived(classes ?? { left: leftClass, right: rightClass, div: divClass, svg: clearableSvgClass, close: clearableClass, combo: comboClass, comboItem: comboItemClass });
55
55
 
56
- const theme = getTheme("input");
56
+ const theme = $derived(getTheme("input"));
57
57
 
58
58
  // onSelect is a custom combobox selection handler that takes a string
59
59
  // standard DOM events, onInput, onFocus, onBlur, onKeydown will be deprecated in the next minor version
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { children, color = "gray", show = true, class: className, ...restProps }: LabelProps = $props();
8
8
 
9
- const theme = getTheme("label");
9
+ const theme = $derived(getTheme("label"));
10
10
 
11
11
  let base = $derived(label({ color, class: clsx(theme, className) }));
12
12
  </script>
@@ -16,7 +16,7 @@
16
16
  ...restProps
17
17
  }: PhoneInputProps = $props();
18
18
 
19
- const theme = getTheme("phoneInput");
19
+ const theme = $derived(getTheme("phoneInput"));
20
20
 
21
21
  const { div, svg, input, span, floatingInput, label } = $derived(phoneInput({ phoneType, phoneIcon }));
22
22
  </script>
@@ -31,7 +31,7 @@
31
31
 
32
32
  const styling = $derived(classes ?? { label: labelClass });
33
33
 
34
- const theme = getTheme("radio");
34
+ const theme = $derived(getTheme("radio"));
35
35
 
36
36
  const { input, label } = $derived(radio({ color, tinted: !!getContext("background"), custom, inline }));
37
37
  </script>
@@ -7,7 +7,7 @@
7
7
 
8
8
  let { children, group = $bindable<T>(), value = $bindable<T>(), inline, pill, outline, size, color, shadow, checkedClass, class: className, ...restProps }: RadioButtonProps<T> = $props();
9
9
 
10
- const theme = getTheme("radioButton");
10
+ const theme = $derived(getTheme("radioButton"));
11
11
 
12
12
  let isChecked = $derived(value == group);
13
13
  let base = $derived(radioButton({ inline, class: clsx(isChecked && checkedClass, theme, className) }));
@@ -6,7 +6,7 @@
6
6
 
7
7
  let { value = $bindable(), appearance = "none", color = "blue", size = "md", inputClass, class: className, ...restProps }: RangeProps = $props();
8
8
 
9
- const theme = getTheme("range");
9
+ const theme = $derived(getTheme("range"));
10
10
  // remove inputClass in next major version
11
11
  const inputCls = $derived(range({ appearance, color, size, class: clsx(theme, inputClass, className) }));
12
12
  </script>
@@ -32,7 +32,7 @@
32
32
 
33
33
  const styling = $derived(classes ?? { input: inputClass, svg: clearableSvgClass, close: clearableClass });
34
34
 
35
- const theme = getTheme("search");
35
+ const theme = $derived(getTheme("search"));
36
36
 
37
37
  const { base, content, icon, close, input: inputCls, left } = $derived(search({ size }));
38
38