flowbite-svelte 1.30.0 → 1.30.1

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 (60) hide show
  1. package/dist/accordion/Accordion.svelte +4 -3
  2. package/dist/accordion/AccordionItem.svelte +3 -3
  3. package/dist/badge/Badge.svelte +6 -2
  4. package/dist/banner/Banner.svelte +6 -2
  5. package/dist/bottom-navigation/BottomNav.svelte +6 -2
  6. package/dist/bottom-navigation/BottomNavHeader.svelte +6 -2
  7. package/dist/bottom-navigation/BottomNavItem.svelte +6 -2
  8. package/dist/breadcrumb/Breadcrumb.svelte +6 -2
  9. package/dist/card/Card.svelte +6 -2
  10. package/dist/carousel/Carousel.svelte +6 -2
  11. package/dist/device-mockups/Android.svelte +2 -2
  12. package/dist/device-mockups/DefaultMockup.svelte +2 -2
  13. package/dist/device-mockups/Desktop.svelte +6 -2
  14. package/dist/device-mockups/Ios.svelte +2 -2
  15. package/dist/device-mockups/Laptop.svelte +2 -2
  16. package/dist/device-mockups/Smartwatch.svelte +2 -2
  17. package/dist/device-mockups/Tablet.svelte +2 -2
  18. package/dist/drawer/Drawerhead.svelte +6 -2
  19. package/dist/dropdown/DropdownItem.svelte +6 -2
  20. package/dist/footer/FooterCopyright.svelte +6 -2
  21. package/dist/footer/FooterLink.svelte +6 -2
  22. package/dist/forms/button-toggle/ButtonToggle.svelte +6 -2
  23. package/dist/forms/checkbox/Checkbox.svelte +6 -2
  24. package/dist/forms/fileupload/Fileupload.svelte +6 -2
  25. package/dist/forms/floating-label/FloatingLabelInput.svelte +2 -2
  26. package/dist/forms/input-field/Input.svelte +2 -3
  27. package/dist/forms/radio/Radio.svelte +6 -2
  28. package/dist/forms/search/Search.svelte +6 -2
  29. package/dist/forms/select/MultiSelect.svelte +12 -5
  30. package/dist/forms/select/Select.svelte +6 -2
  31. package/dist/forms/tags/Tags.svelte +6 -3
  32. package/dist/forms/textarea/Textarea.svelte +2 -2
  33. package/dist/forms/toggle/Toggle.svelte +6 -2
  34. package/dist/gallery/Gallery.svelte +6 -2
  35. package/dist/mega-menu/MegaMenu.svelte +6 -2
  36. package/dist/modal/Modal.svelte +6 -2
  37. package/dist/navbar/NavHamburger.svelte +6 -2
  38. package/dist/navbar/NavUl.svelte +6 -2
  39. package/dist/pagination/PaginationNav.svelte +6 -2
  40. package/dist/popover/Popover.svelte +6 -2
  41. package/dist/rating/AdvancedRating.svelte +2 -2
  42. package/dist/rating/Rating.svelte +6 -2
  43. package/dist/rating/Review.svelte +2 -2
  44. package/dist/sidebar/Sidebar.svelte +6 -2
  45. package/dist/sidebar/SidebarBrand.svelte +6 -2
  46. package/dist/sidebar/SidebarCta.svelte +6 -2
  47. package/dist/sidebar/SidebarDropdownWrapper.svelte +6 -2
  48. package/dist/speed-dial/SpeedDial.svelte +6 -3
  49. package/dist/speed-dial/SpeedDialButton.svelte +6 -3
  50. package/dist/table/Table.svelte +6 -2
  51. package/dist/table/TableSearch.svelte +2 -2
  52. package/dist/tabs/Tabs.svelte +6 -2
  53. package/dist/timeline/ActivityItem.svelte +2 -2
  54. package/dist/timeline/Group.svelte +2 -2
  55. package/dist/timeline/GroupItem.svelte +2 -2
  56. package/dist/timeline/TimelineItem.svelte +2 -3
  57. package/dist/toast/Toast.svelte +2 -2
  58. package/dist/typography/hr/Hr.svelte +2 -2
  59. package/dist/typography/img/Img.svelte +2 -2
  60. package/package.json +14 -14
@@ -5,6 +5,7 @@
5
5
  import { setAccordionContext } from "../context";
6
6
  import { accordion } from "./theme";
7
7
  import { createSingleSelectionContext } from "../utils/singleselection.svelte";
8
+ import { untrack } from "svelte";
8
9
 
9
10
  let { children, flush, activeClass, inactiveClass, multiple = false, class: className, transitionType, ...restProps }: AccordionProps = $props();
10
11
 
@@ -29,9 +30,9 @@
29
30
  // Set context during initialization
30
31
  setAccordionContext(reactiveCtx);
31
32
 
32
- $effect(() => {
33
- createSingleSelectionContext(multiple);
34
- });
33
+ // Create selection context synchronously for proper nesting
34
+ // Use untrack to explicitly capture only the initial value
35
+ createSingleSelectionContext(untrack(() => multiple));
35
36
 
36
37
  const base = $derived(accordion({ flush, class: clsx(theme, className) }));
37
38
  </script>
@@ -6,6 +6,7 @@
6
6
  import { getAccordionContext } from "../context";
7
7
  import { slide } from "svelte/transition";
8
8
  import { accordionItem } from "./theme";
9
+ import { untrack } from "svelte";
9
10
 
10
11
  let {
11
12
  children,
@@ -23,15 +24,14 @@
23
24
  contentClass
24
25
  }: AccordionItemProps = $props();
25
26
 
26
- // svelte-ignore state_referenced_locally
27
27
  warnThemeDeprecation(
28
28
  "AccordionItem",
29
- {
29
+ untrack(() => ({
30
30
  headerClass,
31
31
  contentClass,
32
32
  activeClass,
33
33
  inactiveClass
34
- },
34
+ })),
35
35
  {
36
36
  headerClass: "button",
37
37
  contentClass: "content",
@@ -6,6 +6,7 @@
6
6
  import { fade } from "svelte/transition";
7
7
  import { badge } from "./theme";
8
8
  import { createDismissableContext } from "../utils/dismissable";
9
+ import { untrack } from "svelte";
9
10
 
10
11
  let {
11
12
  children,
@@ -26,8 +27,11 @@
26
27
  ...restProps
27
28
  }: BadgeProps = $props();
28
29
 
29
- // svelte-ignore state_referenced_locally
30
- warnThemeDeprecation("Badge", { aClass }, { aClass: "linkClass" });
30
+ warnThemeDeprecation(
31
+ "Badge",
32
+ untrack(() => ({ aClass })),
33
+ { aClass: "linkClass" }
34
+ );
31
35
 
32
36
  const styling = $derived(classes ?? { linkClass: aClass });
33
37
 
@@ -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,
@@ -24,8 +25,11 @@
24
25
  ...restProps
25
26
  }: BannerProps = $props();
26
27
 
27
- // svelte-ignore state_referenced_locally
28
- warnThemeDeprecation("Banner", { innerClass, closeClass }, { innerClass: "insideDiv", closeClass: "dismissable" });
28
+ warnThemeDeprecation(
29
+ "Banner",
30
+ untrack(() => ({ innerClass, closeClass })),
31
+ { innerClass: "insideDiv", closeClass: "dismissable" }
32
+ );
29
33
 
30
34
  const styling = $derived(classes ?? { insideDiv: innerClass, dismissable: closeClass });
31
35
 
@@ -5,11 +5,15 @@
5
5
  import clsx from "clsx";
6
6
  import { setBottomNavContext } from "../context";
7
7
  import { bottomNav } from "./theme";
8
+ import { untrack } from "svelte";
8
9
 
9
10
  let { children, header, position = "fixed", navType = "default", class: className, classes, outerClass, innerClass, activeClass, activeUrl = "", ...restProps }: BottomNavProps = $props();
10
11
 
11
- // svelte-ignore state_referenced_locally
12
- warnThemeDeprecation("BottomNav", { innerClass, outerClass }, { innerClass: "inner", outerClass: "class" });
12
+ warnThemeDeprecation(
13
+ "BottomNav",
14
+ untrack(() => ({ innerClass, outerClass })),
15
+ { innerClass: "inner", outerClass: "class" }
16
+ );
13
17
 
14
18
  const styling = $derived(classes ?? { inner: innerClass });
15
19
 
@@ -3,11 +3,15 @@
3
3
  import clsx from "clsx";
4
4
  import type { BottomNavHeaderProps } from "..";
5
5
  import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, class: className, classes, outerClass, innerClass, ...restProps }: BottomNavHeaderProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
- warnThemeDeprecation("BottomNavHeader", { innerClass, outerClass }, { innerClass: "inner", outerClass: "class" });
10
+ warnThemeDeprecation(
11
+ "BottomNavHeader",
12
+ untrack(() => ({ innerClass, outerClass })),
13
+ { innerClass: "inner", outerClass: "class" }
14
+ );
11
15
 
12
16
  const styling = $derived(classes ?? { innerDiv: innerClass });
13
17
 
@@ -5,11 +5,15 @@
5
5
  import { getBottomNavContext } from "../context";
6
6
  import type { HTMLAnchorAttributes, HTMLButtonAttributes } from "svelte/elements";
7
7
  import { bottomNavItem } from "./theme";
8
+ import { untrack } from "svelte";
8
9
 
9
10
  let { children, btnName, appBtnPosition = "middle", activeClass, class: className, classes, btnClass, spanClass, active: manualActive, ...restProps }: BottomNavItemProps = $props();
10
11
 
11
- // svelte-ignore state_referenced_locally
12
- warnThemeDeprecation("BottomNavItem", { spanClass, btnClass }, { spanClass: "span", btnClass: "class" });
12
+ warnThemeDeprecation(
13
+ "BottomNavItem",
14
+ untrack(() => ({ spanClass, btnClass })),
15
+ { spanClass: "span", btnClass: "class" }
16
+ );
13
17
 
14
18
  const styling = $derived(classes ?? { span: spanClass });
15
19
 
@@ -3,11 +3,15 @@
3
3
  import clsx from "clsx";
4
4
  import type { BreadcrumbProps } from "..";
5
5
  import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, solid = false, class: className, classes, olClass, ariaLabel = "Breadcrumb", ...restProps }: BreadcrumbProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
- warnThemeDeprecation("Breadcrumb", { olClass }, { olClass: "list" });
10
+ warnThemeDeprecation(
11
+ "Breadcrumb",
12
+ untrack(() => ({ olClass })),
13
+ { olClass: "list" }
14
+ );
11
15
 
12
16
  const styling = $derived(classes ?? { list: olClass });
13
17
 
@@ -3,11 +3,15 @@
3
3
  import { getTheme, warnThemeDeprecation } from "../theme/themeUtils";
4
4
  import clsx from "clsx";
5
5
  import { card } from "./theme";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, color = "gray", horizontal = false, shadow = "md", reverse = false, img, size = "sm", class: className, classes, imgClass, ...restProps }: CardProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
- warnThemeDeprecation("Card", { imgClass }, { imgClass: "image" });
10
+ warnThemeDeprecation(
11
+ "Card",
12
+ untrack(() => ({ imgClass })),
13
+ { imgClass: "image" }
14
+ );
11
15
 
12
16
  const styling = $derived(classes ?? { image: imgClass });
13
17
 
@@ -7,6 +7,7 @@
7
7
  import { setCarouselContext } from "../context";
8
8
  import { canChangeSlide } from "./CarouselSlide";
9
9
  import { carousel } from "./theme";
10
+ import { untrack } from "svelte";
10
11
 
11
12
  const SLIDE_DURATION_RATIO = 0.25;
12
13
 
@@ -29,8 +30,11 @@
29
30
  ...restProps
30
31
  }: CarouselProps = $props();
31
32
 
32
- // svelte-ignore state_referenced_locally
33
- warnThemeDeprecation("Carousel", { imgClass }, { imgClass: "slide" });
33
+ warnThemeDeprecation(
34
+ "Carousel",
35
+ untrack(() => ({ imgClass })),
36
+ { imgClass: "slide" }
37
+ );
34
38
 
35
39
  const styling = $derived(classes ?? { slide: imgClass });
36
40
 
@@ -3,13 +3,13 @@
3
3
  import { warnThemeDeprecation } from "../theme/themeUtils";
4
4
  import clsx from "clsx";
5
5
  import { android } from "./theme";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, class: className, classes, divClass, div2Class, div3Class, div4Class, div5Class, div6Class, div7Class, ...restProps }: AndroidProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
10
  warnThemeDeprecation(
11
11
  "Android",
12
- { divClass, div2Class, div3Class, div4Class, div5Class, div6Class, div7Class },
12
+ untrack(() => ({ divClass, div2Class, div3Class, div4Class, div5Class, div6Class, div7Class })),
13
13
  { divClass: "class", div2Class: "top", div3Class: "leftTop", div4Class: "leftMid", div5Class: "leftBot", div6Class: "right", div7Class: "slot" }
14
14
  );
15
15
 
@@ -3,13 +3,13 @@
3
3
  import { warnThemeDeprecation } from "../theme/themeUtils";
4
4
  import clsx from "clsx";
5
5
  import { defaultMockup } from "./theme";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, class: className, classes, divClass, div2Class, div3Class, div4Class, div5Class, div6Class, ...restProps }: DefaultMockupProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
10
  warnThemeDeprecation(
11
11
  "DefaultMockup",
12
- { divClass, div2Class, div3Class, div4Class, div5Class, div6Class },
12
+ untrack(() => ({ divClass, div2Class, div3Class, div4Class, div5Class, div6Class })),
13
13
  { divClass: "class", div2Class: "top", div3Class: "leftTop", div4Class: "leftBot", div5Class: "right", div6Class: "slot" }
14
14
  );
15
15
 
@@ -3,11 +3,15 @@
3
3
  import { warnThemeDeprecation } from "../theme/themeUtils";
4
4
  import clsx from "clsx";
5
5
  import { desktop } from "./theme";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, class: className, classes, divClass, div2Class, div3Class, div4Class, ...restProps }: DesktopProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
- warnThemeDeprecation("Desktop", { divClass, div2Class, div3Class, div4Class }, { divClass: "class", div2Class: "inner", div3Class: "bot", div4Class: "botUnder" });
10
+ warnThemeDeprecation(
11
+ "Desktop",
12
+ untrack(() => ({ divClass, div2Class, div3Class, div4Class })),
13
+ { divClass: "class", div2Class: "inner", div3Class: "bot", div4Class: "botUnder" }
14
+ );
11
15
 
12
16
  const styling = $derived(
13
17
  classes ?? {
@@ -3,13 +3,13 @@
3
3
  import type { IosProps } from "..";
4
4
  import { warnThemeDeprecation } from "../theme/themeUtils";
5
5
  import clsx from "clsx";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, class: className, classes, divClass, div2Class, div3Class, div4Class, div5Class, div6Class, ...restProps }: IosProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
10
  warnThemeDeprecation(
11
11
  "Ios",
12
- { divClass, div2Class, div3Class, div4Class, div5Class, div6Class },
12
+ untrack(() => ({ divClass, div2Class, div3Class, div4Class, div5Class, div6Class })),
13
13
  { divClass: "class", div2Class: "top", div3Class: "lefttop", div4Class: "leftBot", div5Class: "right", div6Class: "slot" }
14
14
  );
15
15
 
@@ -3,13 +3,13 @@
3
3
  import { warnThemeDeprecation } from "../theme/themeUtils";
4
4
  import clsx from "clsx";
5
5
  import { laptop } from "./theme";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, class: className, classes, divClass, div2Class, div3Class, div4Class, ...restProps }: LaptopProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
10
  warnThemeDeprecation(
11
11
  "Laptop",
12
- { divClass, div2Class, div3Class, div4Class },
12
+ untrack(() => ({ divClass, div2Class, div3Class, div4Class })),
13
13
  { divClass: "class", div2Class: "top", div3Class: "lefttop", div4Class: "leftBot", div5Class: "right", div6Class: "slot" }
14
14
  );
15
15
 
@@ -3,13 +3,13 @@
3
3
  import { warnThemeDeprecation } from "../theme/themeUtils";
4
4
  import clsx from "clsx";
5
5
  import { smartwatch } from "./theme";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, class: className, classes, divClass, div2Class, div3Class, div4Class, div5Class, div6Class, ...restProps }: SmartwatchProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
10
  warnThemeDeprecation(
11
11
  "Smartwatch",
12
- { divClass, div2Class, div3Class, div4Class, div5Class, div6Class },
12
+ untrack(() => ({ divClass, div2Class, div3Class, div4Class, div5Class, div6Class })),
13
13
  { divClass: "class", div2Class: "top", div3Class: "rightTop", div4Class: "rightBot", div5Class: "bot", div6Class: "slot" }
14
14
  );
15
15
 
@@ -3,13 +3,13 @@
3
3
  import type { TabletProps } from "..";
4
4
  import { warnThemeDeprecation } from "../theme/themeUtils";
5
5
  import clsx from "clsx";
6
+ import { untrack } from "svelte";
6
7
 
7
8
  let { children, class: className, classes, divClass, div2Class, div3Class, div4Class, div5Class, div6Class, ...restProps }: TabletProps = $props();
8
9
 
9
- // svelte-ignore state_referenced_locally
10
10
  warnThemeDeprecation(
11
11
  "Tablet",
12
- { divClass, div2Class, div3Class, div4Class, div5Class, div6Class },
12
+ untrack(() => ({ divClass, div2Class, div3Class, div4Class, div5Class, div6Class })),
13
13
  { divClass: "class", div2Class: "leftTop", div3Class: "leftMid", div4Class: "leftBot", div5Class: "right", div6Class: "slot" }
14
14
  );
15
15
 
@@ -3,11 +3,15 @@
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
 
@@ -4,11 +4,15 @@
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
 
@@ -4,11 +4,15 @@
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 });
@@ -3,11 +3,15 @@
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 });
@@ -6,11 +6,15 @@
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 });
@@ -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,8 +25,11 @@
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
 
@@ -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,8 +22,11 @@
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
 
@@ -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,10 +33,9 @@
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
 
@@ -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,11 +45,9 @@
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
 
@@ -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,8 +23,11 @@
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
 
@@ -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,8 +24,11 @@
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
 
@@ -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,8 +31,11 @@
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
 
@@ -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,8 +29,11 @@
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