flowbite-svelte 1.30.0 → 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 (195) hide show
  1. package/dist/accordion/Accordion.svelte +5 -4
  2. package/dist/accordion/AccordionItem.svelte +4 -4
  3. package/dist/alert/Alert.svelte +1 -1
  4. package/dist/avatar/Avatar.svelte +1 -1
  5. package/dist/badge/Badge.svelte +7 -3
  6. package/dist/banner/Banner.svelte +7 -3
  7. package/dist/bottom-navigation/BottomNav.svelte +7 -3
  8. package/dist/bottom-navigation/BottomNavHeader.svelte +7 -3
  9. package/dist/bottom-navigation/BottomNavHeaderItem.svelte +1 -1
  10. package/dist/bottom-navigation/BottomNavItem.svelte +7 -3
  11. package/dist/breadcrumb/Breadcrumb.svelte +7 -3
  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 +7 -3
  17. package/dist/carousel/Carousel.svelte +7 -3
  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/device-mockups/Android.svelte +2 -2
  33. package/dist/device-mockups/DefaultMockup.svelte +2 -2
  34. package/dist/device-mockups/Desktop.svelte +6 -2
  35. package/dist/device-mockups/Ios.svelte +2 -2
  36. package/dist/device-mockups/Laptop.svelte +2 -2
  37. package/dist/device-mockups/Smartwatch.svelte +2 -2
  38. package/dist/device-mockups/Tablet.svelte +2 -2
  39. package/dist/drawer/Drawer.svelte +1 -1
  40. package/dist/drawer/DrawerHandle.svelte +1 -1
  41. package/dist/drawer/Drawerhead.svelte +7 -3
  42. package/dist/dropdown/Dropdown.svelte +1 -1
  43. package/dist/dropdown/DropdownDivider.svelte +1 -1
  44. package/dist/dropdown/DropdownGroup.svelte +1 -1
  45. package/dist/dropdown/DropdownHeader.svelte +1 -1
  46. package/dist/dropdown/DropdownItem.svelte +7 -3
  47. package/dist/footer/Footer.svelte +1 -1
  48. package/dist/footer/FooterBrand.svelte +1 -1
  49. package/dist/footer/FooterCopyright.svelte +7 -3
  50. package/dist/footer/FooterIcon.svelte +1 -1
  51. package/dist/footer/FooterLink.svelte +7 -3
  52. package/dist/footer/FooterLinkGroup.svelte +1 -1
  53. package/dist/forms/button-toggle/ButtonToggle.svelte +7 -3
  54. package/dist/forms/button-toggle/ButtonToggleGroup.svelte +1 -1
  55. package/dist/forms/checkbox/Checkbox.svelte +7 -3
  56. package/dist/forms/checkbox/CheckboxButton.svelte +1 -1
  57. package/dist/forms/dropzone/Dropzone.svelte +1 -1
  58. package/dist/forms/fileupload/Fileupload.svelte +7 -3
  59. package/dist/forms/floating-label/FloatingLabelInput.svelte +3 -3
  60. package/dist/forms/helper/Helper.svelte +1 -1
  61. package/dist/forms/input-field/Input.svelte +3 -4
  62. package/dist/forms/label/Label.svelte +1 -1
  63. package/dist/forms/phoneinput/PhoneInput.svelte +1 -1
  64. package/dist/forms/radio/Radio.svelte +7 -3
  65. package/dist/forms/radio/RadioButton.svelte +1 -1
  66. package/dist/forms/range/Range.svelte +1 -1
  67. package/dist/forms/search/Search.svelte +7 -3
  68. package/dist/forms/select/MultiSelect.svelte +13 -6
  69. package/dist/forms/select/Select.svelte +7 -3
  70. package/dist/forms/tags/Tags.svelte +7 -4
  71. package/dist/forms/textarea/Textarea.svelte +3 -3
  72. package/dist/forms/timepicker/Timepicker.svelte +1 -1
  73. package/dist/forms/toggle/Toggle.svelte +7 -3
  74. package/dist/gallery/Gallery.svelte +7 -3
  75. package/dist/indicator/Indicator.svelte +1 -1
  76. package/dist/kanban/KanbanBoard.svelte +1 -1
  77. package/dist/kanban/KanbanCard.svelte +2 -2
  78. package/dist/kanban/KanbanCard.svelte.d.ts +1 -1
  79. package/dist/kbd/Kbd.svelte +1 -1
  80. package/dist/list-group/Listgroup.svelte +1 -1
  81. package/dist/list-group/ListgroupItem.svelte +1 -1
  82. package/dist/mega-menu/MegaMenu.svelte +7 -3
  83. package/dist/modal/Modal.svelte +7 -3
  84. package/dist/navbar/NavBrand.svelte +1 -1
  85. package/dist/navbar/NavContainer.svelte +1 -1
  86. package/dist/navbar/NavHamburger.svelte +7 -3
  87. package/dist/navbar/NavLi.svelte +1 -1
  88. package/dist/navbar/NavUl.svelte +7 -3
  89. package/dist/navbar/Navbar.svelte +1 -1
  90. package/dist/pagination/Pagination.svelte +1 -1
  91. package/dist/pagination/PaginationButton.svelte +1 -1
  92. package/dist/pagination/PaginationItem.svelte +1 -1
  93. package/dist/pagination/PaginationNav.svelte +7 -3
  94. package/dist/popover/Popover.svelte +7 -3
  95. package/dist/progress/Progressbar.svelte +1 -1
  96. package/dist/progress/Progressradial.svelte +1 -1
  97. package/dist/rating/AdvancedRating.svelte +3 -3
  98. package/dist/rating/Rating.svelte +7 -3
  99. package/dist/rating/Review.svelte +3 -3
  100. package/dist/rating/ScoreRating.svelte +1 -1
  101. package/dist/scroll-spy/ScrollSpy.svelte +2 -2
  102. package/dist/scroll-spy/ScrollSpy.svelte.d.ts +1 -1
  103. package/dist/sidebar/Sidebar.svelte +7 -3
  104. package/dist/sidebar/SidebarBrand.svelte +7 -3
  105. package/dist/sidebar/SidebarButton.svelte +1 -1
  106. package/dist/sidebar/SidebarCta.svelte +7 -3
  107. package/dist/sidebar/SidebarDropdownWrapper.svelte +7 -3
  108. package/dist/skeleton/CardPlaceholder.svelte +1 -1
  109. package/dist/skeleton/ImagePlaceholder.svelte +1 -1
  110. package/dist/skeleton/ListPlaceholder.svelte +1 -1
  111. package/dist/skeleton/Skeleton.svelte +1 -1
  112. package/dist/skeleton/TestimonialPlaceholder.svelte +1 -1
  113. package/dist/skeleton/TextPlaceholder.svelte +1 -1
  114. package/dist/skeleton/VideoPlaceholder.svelte +1 -1
  115. package/dist/skeleton/WidgetPlaceholder.svelte +1 -1
  116. package/dist/speed-dial/SpeedDial.svelte +7 -4
  117. package/dist/speed-dial/SpeedDialButton.svelte +7 -4
  118. package/dist/spinner/Spinner.svelte +1 -1
  119. package/dist/split-pane/Divider.svelte +4 -4
  120. package/dist/split-pane/Divider.svelte.d.ts +1 -1
  121. package/dist/split-pane/Pane.svelte +2 -2
  122. package/dist/split-pane/Pane.svelte.d.ts +1 -1
  123. package/dist/split-pane/SplitPane.svelte +2 -2
  124. package/dist/split-pane/SplitPane.svelte.d.ts +1 -1
  125. package/dist/step-indicator/StepIndicator.svelte +1 -1
  126. package/dist/stepper/BreadcrumbStepper.svelte +1 -1
  127. package/dist/stepper/DetailedStepper.svelte +1 -1
  128. package/dist/stepper/ProgressStepper.svelte +1 -1
  129. package/dist/stepper/Stepper.svelte +1 -1
  130. package/dist/stepper/TimelineStepper.svelte +1 -1
  131. package/dist/stepper/VerticalStepper.svelte +1 -1
  132. package/dist/table/Table.svelte +7 -3
  133. package/dist/table/TableBodyCell.svelte +1 -1
  134. package/dist/table/TableBodyRow.svelte +1 -1
  135. package/dist/table/TableHead.svelte +1 -1
  136. package/dist/table/TableHeadCell.svelte +1 -1
  137. package/dist/table/TableSearch.svelte +3 -3
  138. package/dist/tabs/TabItem.svelte +1 -1
  139. package/dist/tabs/Tabs.svelte +7 -3
  140. package/dist/theme/ThemeProvider.svelte +11 -6
  141. package/dist/theme/themeUtils.js +4 -2
  142. package/dist/timeline/Activity.svelte +1 -1
  143. package/dist/timeline/ActivityItem.svelte +3 -3
  144. package/dist/timeline/Group.svelte +3 -3
  145. package/dist/timeline/GroupItem.svelte +3 -3
  146. package/dist/timeline/Timeline.svelte +3 -5
  147. package/dist/timeline/TimelineItem.svelte +9 -5
  148. package/dist/timeline/TimelineItem.svelte.d.ts +1 -0
  149. package/dist/timeline/theme.d.ts +3 -0
  150. package/dist/timeline/theme.js +2 -1
  151. package/dist/toast/Toast.svelte +4 -4
  152. package/dist/toast/Toast.svelte.d.ts +1 -1
  153. package/dist/toast/ToastContainer.svelte +2 -2
  154. package/dist/toast/ToastContainer.svelte.d.ts +1 -1
  155. package/dist/toolbar/Toolbar.svelte +1 -1
  156. package/dist/toolbar/ToolbarButton.svelte +1 -1
  157. package/dist/toolbar/ToolbarGroup.svelte +1 -1
  158. package/dist/tooltip/Tooltip.svelte +1 -1
  159. package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
  160. package/dist/tour/Tour.svelte +1 -1
  161. package/dist/types.d.ts +1 -0
  162. package/dist/typography/a/A.svelte +2 -2
  163. package/dist/typography/a/A.svelte.d.ts +1 -1
  164. package/dist/typography/blockquote/Blockquote.svelte +2 -2
  165. package/dist/typography/blockquote/Blockquote.svelte.d.ts +1 -1
  166. package/dist/typography/descriptionlist/DescriptionList.svelte +2 -2
  167. package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +1 -1
  168. package/dist/typography/heading/Heading.svelte +2 -2
  169. package/dist/typography/heading/Heading.svelte.d.ts +1 -1
  170. package/dist/typography/hr/Hr.svelte +3 -3
  171. package/dist/typography/img/Img.svelte +4 -4
  172. package/dist/typography/img/Img.svelte.d.ts +1 -1
  173. package/dist/typography/layout/Layout.svelte +2 -2
  174. package/dist/typography/layout/Layout.svelte.d.ts +1 -1
  175. package/dist/typography/list/Li.svelte +1 -1
  176. package/dist/typography/list/Li.svelte.d.ts +1 -1
  177. package/dist/typography/list/List.svelte +2 -2
  178. package/dist/typography/list/List.svelte.d.ts +1 -1
  179. package/dist/typography/mark/Mark.svelte +2 -2
  180. package/dist/typography/mark/Mark.svelte.d.ts +1 -1
  181. package/dist/typography/paragraph/P.svelte +2 -2
  182. package/dist/typography/paragraph/P.svelte.d.ts +1 -1
  183. package/dist/typography/secondary/Secondary.svelte +2 -2
  184. package/dist/typography/secondary/Secondary.svelte.d.ts +1 -1
  185. package/dist/typography/span/Span.svelte +2 -2
  186. package/dist/typography/span/Span.svelte.d.ts +1 -1
  187. package/dist/utils/Arrow.svelte +1 -1
  188. package/dist/utils/Arrow.svelte.d.ts +1 -1
  189. package/dist/utils/Popper.svelte +1 -1
  190. package/dist/utils/Popper.svelte.d.ts +1 -1
  191. package/dist/video/Video.svelte +2 -2
  192. package/dist/video/Video.svelte.d.ts +1 -1
  193. package/dist/virtual-masonry/VirtualMasonry.svelte +1 -1
  194. package/dist/virtuallist/VirtualList.svelte +1 -1
  195. package/package.json +22 -22
@@ -3,15 +3,19 @@
3
3
  import clsx from "clsx";
4
4
  import type { DrawerheadProps } from "..";
5
5
  import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { closeIcon, children, buttonClass, svgClass, class: className, classes, ...restProps }: DrawerheadProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
- warnThemeDeprecation("Drawerhead", { buttonClass, svgClass }, { buttonClass: "button", svgClass: "svg" });
10
+ warnThemeDeprecation(
11
+ "Drawerhead",
12
+ untrack(() => ({ buttonClass, svgClass })),
13
+ { buttonClass: "button", svgClass: "svg" }
14
+ );
11
15
 
12
16
  const styling = $derived(classes ?? { button: buttonClass, svg: svgClass });
13
17
 
14
- const theme = getTheme("drawer");
18
+ const theme = $derived(getTheme("drawer"));
15
19
 
16
20
  const { base, button, svg } = $derived(drawerhead());
17
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) })}>
@@ -4,15 +4,19 @@
4
4
  import clsx from "clsx";
5
5
  import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
6
6
  import type { DropdownItemProps } from "../types";
7
+ import { untrack } from "svelte";
7
8
 
8
9
  let { aClass, children, activeClass, liClass, classes, class: className, href, onclick, ...restProps }: DropdownItemProps = $props();
9
10
 
10
- // svelte-ignore state_referenced_locally
11
- warnThemeDeprecation("DropdownItem", { aClass, activeClass, liClass }, { aClass: "class", activeClass: "active", liClass: "li" });
11
+ warnThemeDeprecation(
12
+ "DropdownItem",
13
+ untrack(() => ({ aClass, activeClass, liClass })),
14
+ { aClass: "class", activeClass: "active", liClass: "li" }
15
+ );
12
16
 
13
17
  const styling = $derived(classes ?? { active: activeClass, li: liClass });
14
18
 
15
- const theme = getTheme("dropdownItem");
19
+ const theme = $derived(getTheme("dropdownItem"));
16
20
 
17
21
  const ctx = getDropdownContext();
18
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>
@@ -4,16 +4,20 @@
4
4
  import clsx from "clsx";
5
5
  import type { FooterCopyrightProps } from "..";
6
6
  import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
7
+ import { untrack } from "svelte";
7
8
 
8
9
  let { spanClass, aClass, href, by, copyrightMessage = "All Rights Reserved.", year, bySpanClass, classes, class: className, ...restProps }: FooterCopyrightProps = $props();
9
10
 
10
- // svelte-ignore state_referenced_locally
11
- warnThemeDeprecation("FooterCopyright", { aClass, spanClass, bySpanClass }, { aClass: "link", spanClass: "class", bySpanClass: "bySpan" });
11
+ warnThemeDeprecation(
12
+ "FooterCopyright",
13
+ untrack(() => ({ aClass, spanClass, bySpanClass })),
14
+ { aClass: "link", spanClass: "class", bySpanClass: "bySpan" }
15
+ );
12
16
 
13
17
  // link, bySpan
14
18
  const styling = $derived(classes ?? { bySpan: bySpanClass, link: aClass });
15
19
 
16
- const theme = getTheme("footerCopyright");
20
+ const theme = $derived(getTheme("footerCopyright"));
17
21
 
18
22
  const effectiveYear = $derived(year ?? new SvelteDate().getFullYear());
19
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}
@@ -3,16 +3,20 @@
3
3
  import clsx from "clsx";
4
4
  import type { FooterLinkProps } from "..";
5
5
  import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, liClass, aClass, href, classes, class: className, ...restProps }: FooterLinkProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
- warnThemeDeprecation("FooterLink", { liClass, aClass }, { liClass: "class", aClass: "link" });
10
+ warnThemeDeprecation(
11
+ "FooterLink",
12
+ untrack(() => ({ liClass, aClass })),
13
+ { liClass: "class", aClass: "link" }
14
+ );
11
15
 
12
16
  // link, bySpan
13
17
  const styling = $derived(classes ?? { link: aClass });
14
18
 
15
- const theme = getTheme("footerLink");
19
+ const theme = $derived(getTheme("footerLink"));
16
20
 
17
21
  const { base, link } = footerLink();
18
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) })}>
@@ -6,16 +6,20 @@
6
6
  import type { ButtonToggleProps } from "../..";
7
7
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
8
8
  import { getButtonToggleContext } from "../../context";
9
+ import { untrack } from "svelte";
9
10
 
10
11
  let { value, selected = false, children, iconSlot, color, class: className, iconClass, txtClass, contentClass, classes, ...restProps }: ButtonToggleProps = $props();
11
12
 
12
- // svelte-ignore state_referenced_locally
13
- warnThemeDeprecation("ButtonToggle", { iconClass, txtClass, contentClass }, { iconClass: "icon", txtClass: "text", contentClass: "content" });
13
+ warnThemeDeprecation(
14
+ "ButtonToggle",
15
+ untrack(() => ({ iconClass, txtClass, contentClass })),
16
+ { iconClass: "icon", txtClass: "text", contentClass: "content" }
17
+ );
14
18
 
15
19
  // button(className), content, text, icon
16
20
  const styling = $derived(classes ?? { icon: iconClass, text: txtClass, content: contentClass });
17
21
 
18
- const theme = getTheme("buttonToggle");
22
+ const theme = $derived(getTheme("buttonToggle"));
19
23
 
20
24
  // Get context - it will be undefined if used outside ButtonToggleGroup
21
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[];
@@ -4,6 +4,7 @@
4
4
  import { type CheckboxProps } from "../..";
5
5
  import Label from "../label/Label.svelte";
6
6
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
7
+ import { untrack } from "svelte";
7
8
 
8
9
  let {
9
10
  children,
@@ -24,12 +25,15 @@
24
25
  ...restProps
25
26
  }: CheckboxProps = $props();
26
27
 
27
- // svelte-ignore state_referenced_locally
28
- warnThemeDeprecation("Checkbox", { divClass }, { divClass: "div" });
28
+ warnThemeDeprecation(
29
+ "Checkbox",
30
+ untrack(() => ({ divClass })),
31
+ { divClass: "div" }
32
+ );
29
33
 
30
34
  const styling = $derived(classes ?? { div: divClass });
31
35
 
32
- const theme = getTheme("checkbox");
36
+ const theme = $derived(getTheme("checkbox"));
33
37
 
34
38
  const { base, div: divStyle } = $derived(checkbox({ color, tinted, custom, rounded, inline, disabled: disabled ?? false }));
35
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
 
@@ -5,6 +5,7 @@
5
5
  import CloseButton from "../../utils/CloseButton.svelte";
6
6
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
7
7
  import { createDismissableContext } from "../../utils/dismissable";
8
+ import { untrack } from "svelte";
8
9
 
9
10
  let {
10
11
  files = $bindable(),
@@ -21,12 +22,15 @@
21
22
  ...restProps
22
23
  }: FileuploadProps = $props();
23
24
 
24
- // svelte-ignore state_referenced_locally
25
- warnThemeDeprecation("Fileupload", { wrapperClass, clearableClass, clearableSvgClass }, { wrapperClass: "wrapper", clearableClass: "close", clearableSvgClass: "svg" });
25
+ warnThemeDeprecation(
26
+ "Fileupload",
27
+ untrack(() => ({ wrapperClass, clearableClass, clearableSvgClass })),
28
+ { wrapperClass: "wrapper", clearableClass: "close", clearableSvgClass: "svg" }
29
+ );
26
30
 
27
31
  const styling = $derived(classes ?? { wrapper: wrapperClass, close: clearableClass, svg: clearableSvgClass });
28
32
 
29
- const theme = getTheme("fileupload");
33
+ const theme = $derived(getTheme("fileupload"));
30
34
 
31
35
  const { base, wrapper, close } = fileupload();
32
36
 
@@ -6,6 +6,7 @@
6
6
  import CloseButton from "../../utils/CloseButton.svelte";
7
7
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
8
8
  import { createDismissableContext } from "../../utils/dismissable";
9
+ import { untrack } from "svelte";
9
10
 
10
11
  let {
11
12
  children,
@@ -32,16 +33,15 @@
32
33
  ...restProps
33
34
  }: FloatingLabelInputProps = $props();
34
35
 
35
- // svelte-ignore state_referenced_locally
36
36
  warnThemeDeprecation(
37
37
  "FloatingLabelInput",
38
- { inputClass, labelClass, clearableSvgClass, clearableClass, comboClass },
38
+ untrack(() => ({ inputClass, labelClass, clearableSvgClass, clearableClass, comboClass })),
39
39
  { inputClass: "input", labelClass: "label", clearableSvgClass: "svg", clearableClass: "close", comboClass: "combo" }
40
40
  );
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>
@@ -8,6 +8,7 @@
8
8
  import { clampSize } from "./index";
9
9
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
10
10
  import { createDismissableContext } from "../../utils/dismissable";
11
+ import { untrack } from "svelte";
11
12
 
12
13
  let {
13
14
  children,
@@ -44,17 +45,15 @@
44
45
  ...restProps
45
46
  }: InputProps<InputValue> = $props();
46
47
 
47
- // input, left, right, close, combo, comboItem, div, svg
48
- // svelte-ignore state_referenced_locally
49
48
  warnThemeDeprecation(
50
49
  "Input",
51
- { wrapperClass, leftClass, rightClass, divClass, clearableSvgClass, clearableClass, comboClass },
50
+ untrack(() => ({ wrapperClass, leftClass, rightClass, divClass, clearableSvgClass, clearableClass, comboClass })),
52
51
  { wrapperClass: "wrapper", leftClass: "left", rightClass: "right", divClass: "div", clearableSvgClass: "svg", clearableClass: "close", comboClass: "comboItem" }
53
52
  );
54
53
 
55
54
  const styling = $derived(classes ?? { left: leftClass, right: rightClass, div: divClass, svg: clearableSvgClass, close: clearableClass, combo: comboClass, comboItem: comboItemClass });
56
55
 
57
- const theme = getTheme("input");
56
+ const theme = $derived(getTheme("input"));
58
57
 
59
58
  // onSelect is a custom combobox selection handler that takes a string
60
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>
@@ -5,6 +5,7 @@
5
5
  import type { RadioProps } from "../..";
6
6
  import Label from "../label/Label.svelte";
7
7
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
8
+ import { untrack } from "svelte";
8
9
 
9
10
  // remove inputClass in next major version
10
11
  let {
@@ -22,12 +23,15 @@
22
23
  ...restProps
23
24
  }: RadioProps<T> = $props();
24
25
 
25
- // svelte-ignore state_referenced_locally
26
- warnThemeDeprecation("Radio", { inputClass, labelClass }, { inputClass: "class", labelClass: "label" });
26
+ warnThemeDeprecation(
27
+ "Radio",
28
+ untrack(() => ({ inputClass, labelClass })),
29
+ { inputClass: "class", labelClass: "label" }
30
+ );
27
31
 
28
32
  const styling = $derived(classes ?? { label: labelClass });
29
33
 
30
- const theme = getTheme("radio");
34
+ const theme = $derived(getTheme("radio"));
31
35
 
32
36
  const { input, label } = $derived(radio({ color, tinted: !!getContext("background"), custom, inline }));
33
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>
@@ -5,6 +5,7 @@
5
5
  import CloseButton from "../../utils/CloseButton.svelte";
6
6
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
7
7
  import { createDismissableContext } from "../../utils/dismissable";
8
+ import { untrack } from "svelte";
8
9
 
9
10
  let {
10
11
  children,
@@ -23,12 +24,15 @@
23
24
  ...restProps
24
25
  }: SearchProps = $props();
25
26
 
26
- // svelte-ignore state_referenced_locally
27
- warnThemeDeprecation("Search", { inputClass, clearableSvgClass, clearableClass }, { inputClass: "input", clearableSvgClass: "svg", clearableClass: "close" });
27
+ warnThemeDeprecation(
28
+ "Search",
29
+ untrack(() => ({ inputClass, clearableSvgClass, clearableClass })),
30
+ { inputClass: "input", clearableSvgClass: "svg", clearableClass: "close" }
31
+ );
28
32
 
29
33
  const styling = $derived(classes ?? { input: inputClass, svg: clearableSvgClass, close: clearableClass });
30
34
 
31
- const theme = getTheme("search");
35
+ const theme = $derived(getTheme("search"));
32
36
 
33
37
  const { base, content, icon, close, input: inputCls, left } = $derived(search({ size }));
34
38
 
@@ -5,7 +5,7 @@
5
5
  import CloseButton from "../../utils/CloseButton.svelte";
6
6
  import { multiSelect } from "./theme";
7
7
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
8
- import { onMount } from "svelte";
8
+ import { onMount, untrack } from "svelte";
9
9
  import { createDismissableContext } from "../../utils/dismissable";
10
10
  import { getButtonGroupContext } from "../../context";
11
11
 
@@ -31,12 +31,15 @@
31
31
  ...restProps
32
32
  }: MultiSelectProps<T> = $props();
33
33
 
34
- // svelte-ignore state_referenced_locally
35
- warnThemeDeprecation("MultiSelect", { dropdownClass }, { dropdownClass: "dropdown" });
34
+ warnThemeDeprecation(
35
+ "MultiSelect",
36
+ untrack(() => ({ dropdownClass })),
37
+ { dropdownClass: "dropdown" }
38
+ );
36
39
 
37
40
  const styling = $derived(classes ?? { dropdown: dropdownClass });
38
41
 
39
- const theme = getTheme("multiSelect");
42
+ const theme = $derived(getTheme("multiSelect"));
40
43
 
41
44
  let selectItems = $derived(items.filter((x) => value.includes(x.value)));
42
45
  let show: boolean = $state(false);
@@ -246,15 +249,19 @@
246
249
  {#if show}
247
250
  <div role="presentation" class={dropdown({ class: clsx(styling.dropdown) })}>
248
251
  {#each items as item (item.value)}
252
+ {@const isSelected = selectItems.includes(item)}
253
+ {@const isActive = activeItem === item}
249
254
  <div
250
255
  onclick={(e) => selectOption(item, e)}
251
256
  role="presentation"
252
257
  class={dropdownItem({
253
- selected: selectItems.includes(item),
254
- active: activeItem === item,
258
+ selected: isSelected,
259
+ active: isActive,
255
260
  disabled: item.disabled,
256
261
  class: clsx(classes?.item)
257
262
  })}
263
+ data-selected={isSelected ? "true" : undefined}
264
+ data-active={isActive ? "true" : undefined}
258
265
  >
259
266
  {item.name}
260
267
  </div>
@@ -6,6 +6,7 @@
6
6
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
7
7
  import { createDismissableContext } from "../../utils/dismissable";
8
8
  import { getButtonGroupContext } from "../../context";
9
+ import { untrack } from "svelte";
9
10
 
10
11
  let {
11
12
  children,
@@ -28,12 +29,15 @@
28
29
  ...restProps
29
30
  }: SelectProps<T> = $props();
30
31
 
31
- // svelte-ignore state_referenced_locally
32
- warnThemeDeprecation("Select", { selectClass, clearableSvgClass, clearableClass }, { selectClass: "select", clearableSvgClass: "svg", clearableClass: "close" });
32
+ warnThemeDeprecation(
33
+ "Select",
34
+ untrack(() => ({ selectClass, clearableSvgClass, clearableClass })),
35
+ { selectClass: "select", clearableSvgClass: "svg", clearableClass: "close" }
36
+ );
33
37
 
34
38
  const styling = $derived(classes ?? { select: selectClass, svg: clearableSvgClass, close: clearableClass });
35
39
 
36
- const theme = getTheme("select");
40
+ const theme = $derived(getTheme("select"));
37
41
  const group = getButtonGroupContext();
38
42
  const { base, select, close } = $derived(selectCls({ underline, size, disabled, grouped: !!group }));
39
43
 
@@ -6,7 +6,7 @@
6
6
  import { tags } from "./theme";
7
7
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
8
8
  import { computePosition, offset, flip, shift, autoUpdate } from "@floating-ui/dom";
9
- import { onDestroy } from "svelte";
9
+ import { onDestroy, untrack } from "svelte";
10
10
 
11
11
  let {
12
12
  value = $bindable([]),
@@ -28,8 +28,11 @@
28
28
  ...restProps
29
29
  }: TagsProps = $props();
30
30
 
31
- // svelte-ignore state_referenced_locally
32
- warnThemeDeprecation("Tags", { itemClass, spanClass, closeClass, inputClass }, { itemClass: "tag", spanClass: "span", closeClass: "close", inputClass: "input" });
31
+ warnThemeDeprecation(
32
+ "Tags",
33
+ untrack(() => ({ itemClass, spanClass, closeClass, inputClass })),
34
+ { itemClass: "tag", spanClass: "span", closeClass: "close", inputClass: "input" }
35
+ );
33
36
 
34
37
  const styling = $derived(
35
38
  classes ?? {
@@ -40,7 +43,7 @@
40
43
  }
41
44
  );
42
45
 
43
- const theme = getTheme("tags");
46
+ const theme = $derived(getTheme("tags"));
44
47
 
45
48
  const { base, tag: tagCls, span: spanCls, close, input: inputCls, info, warning, error } = $derived(tags());
46
49
 
@@ -5,6 +5,7 @@
5
5
  import CloseButton from "../../utils/CloseButton.svelte";
6
6
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
7
7
  import { createDismissableContext } from "../../utils/dismissable";
8
+ import { untrack } from "svelte";
8
9
 
9
10
  let {
10
11
  header,
@@ -29,10 +30,9 @@
29
30
  ...restProps
30
31
  }: TextareaProps = $props();
31
32
 
32
- // svelte-ignore state_referenced_locally
33
33
  warnThemeDeprecation(
34
34
  "Textarea",
35
- { divClass, innerClass, headerClass, footerClass, addonClass, textareaClass, clearableClass, clearableSvgClass },
35
+ untrack(() => ({ divClass, innerClass, headerClass, footerClass, addonClass, textareaClass, clearableClass, clearableSvgClass })),
36
36
  { divClass: "div", innerClass: "inner", headerClass: "header", footerClass: "footer", addonClass: "addon", textareaClass: "class", clearableClass: "close", clearableSvgClass: "svg" }
37
37
  );
38
38
 
@@ -49,7 +49,7 @@
49
49
  }
50
50
  );
51
51
 
52
- const theme = getTheme("textarea");
52
+ const theme = $derived(getTheme("textarea"));
53
53
 
54
54
  let hasHeader = $derived(!!header);
55
55
  let hasFooter = $derived(!!footer);
@@ -40,7 +40,7 @@
40
40
  onselect
41
41
  }: TimepickerProps = $props();
42
42
 
43
- const theme = getTheme("timepicker");
43
+ const theme = $derived(getTheme("timepicker"));
44
44
 
45
45
  // Generate theme classes
46
46
  const styles = $derived(timepicker({ type, columns, disabled }));
@@ -4,15 +4,19 @@
4
4
  import type { ToggleProps } from "../..";
5
5
  import Label from "../label/Label.svelte";
6
6
  import { getTheme, warnThemeDeprecation } from "../../theme/themeUtils";
7
+ import { untrack } from "svelte";
7
8
 
8
9
  let { children, size = "default", value, checked = $bindable(), disabled, color = "primary", class: className, classes, inputClass, spanClass, offLabel, ...restProps }: ToggleProps = $props();
9
10
 
10
- // svelte-ignore state_referenced_locally
11
- warnThemeDeprecation("Toggle", { inputClass, spanClass }, { inputClass: "input", spanClass: "span" });
11
+ warnThemeDeprecation(
12
+ "Toggle",
13
+ untrack(() => ({ inputClass, spanClass })),
14
+ { inputClass: "input", spanClass: "span" }
15
+ );
12
16
 
13
17
  const styling = $derived(classes ?? { input: inputClass, span: spanClass });
14
18
 
15
- const theme = getTheme("toggle");
19
+ const theme = $derived(getTheme("toggle"));
16
20
 
17
21
  const { input, label, span } = $derived(toggle({ color, checked, size, disabled, off_state_label: !!offLabel }));
18
22
  </script>