odj-svelte-ui 0.4.4 → 0.5.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.
package/README.md CHANGED
@@ -35,8 +35,10 @@ This is a fork from [Flowbite for Svelte 5 with Runes](https://svelte-5-ui-lib.c
35
35
  - `SidebarButton` has been removed. Please use the `Drawer` component to maintain the old sidebar behaviour;
36
36
  - `Card` can be a button now adding `clickable` prop;
37
37
  - `Accordion` has a new design and 4 options to the new prop `accordionStyle`: `none`, `flush`, `outlined` and `cards`;
38
- - New `MultiSelect` input.
38
+ - New `MultiSelect` input;
39
39
  - `Table` can be rounded with `rounded` prop.
40
+ - Change the placeholder value for `Select`.
41
+ - Using custom `Select` for supported browsers with CSS-only approach.
40
42
 
41
43
  ## Installation
42
44
 
@@ -11,20 +11,13 @@
11
11
  </script>
12
12
 
13
13
  {#if badgeStatus}
14
- <div {...restProps} transition:transition={params as ParamsType} class={base({ className })}>
15
- {#if href}
16
- <a {href} {target} class={hrefClass({ class: aClass })}>
17
- {@render children()}
18
- </a>
19
- {:else}
20
- {@render children()}
21
- {/if}
22
-
14
+ <svelte:element this={href ? "a" : "div"} {href} {target} {...restProps} transition:transition={params as ParamsType} class={[base({ className }), href && hrefClass({ class: aClass })]}>
15
+ {@render children()}
23
16
  {#if dismissable}
24
17
  {#if icon}
25
18
  <button
26
19
  type="button"
27
- class="m-0.5 -me-1.5 ms-1.5 whitespace-normal rounded-sm p-0.5 text-primary-500 hover:bg-primary-200 focus:outline-hidden focus:ring-1 focus:ring-primary-400 dark:hover:bg-primary-800 dark:hover:text-primary-300"
20
+ class="text-primary-500 hover:bg-primary-200 focus:ring-primary-400 dark:hover:bg-primary-800 dark:hover:text-primary-300 m-0.5 ms-1.5 -me-1.5 rounded-sm p-0.5 whitespace-normal focus:ring-1 focus:outline-hidden"
28
21
  aria-label="Remove badge"
29
22
  onclick={() => {
30
23
  badgeStatus = false;
@@ -34,10 +27,10 @@
34
27
  {@render icon()}
35
28
  </button>
36
29
  {:else if onclick}
37
- <CloseButton class="-me-1.5 ms-1.5" {color} size={large ? "sm" : "xs"} ariaLabel="Remove badge" {onclick} />
30
+ <CloseButton class="ms-1.5 -me-1.5" {color} size={large ? "sm" : "xs"} ariaLabel="Remove badge" {onclick} />
38
31
  {:else}
39
32
  <CloseButton
40
- class="-me-1.5 ms-1.5"
33
+ class="ms-1.5 -me-1.5"
41
34
  {color}
42
35
  size={large ? "sm" : "xs"}
43
36
  ariaLabel="Remove badge"
@@ -47,7 +40,7 @@
47
40
  />
48
41
  {/if}
49
42
  {/if}
50
- </div>
43
+ </svelte:element>
51
44
  {/if}
52
45
 
53
46
  <!--
@@ -5,6 +5,7 @@
5
5
  let {
6
6
  outerDivClass,
7
7
  ulOptionsClass,
8
+ liOptionsClass,
8
9
  ulSelectedClass,
9
10
  liSelectedClass,
10
11
  inputClass,
@@ -25,7 +26,7 @@
25
26
 
26
27
  ...restProps
27
28
  }: Props<T> = $props();
28
- const { outerDiv: outerDivCls, ulOptions, ulSelected, liSelected, input: inputCls } = $derived(multiselect());
29
+ const { outerDiv: outerDivCls, ulOptions, ulSelected, liSelected, input: inputCls, liOptions } = $derived(multiselect());
29
30
  </script>
30
31
 
31
- <MultiSelect bind:selected bind:value bind:searchText bind:open bind:activeIndex bind:activeOption bind:invalid bind:input bind:outerDiv bind:form_input bind:options bind:matchingOptions {...restProps} outerDivClass={outerDivCls({ className: outerDivClass })} ulOptionsClass={ulOptions({ class: ulOptionsClass })} ulSelectedClass={ulSelected({ class: ulSelectedClass })} liSelectedClass={liSelected({ class: liSelectedClass })} inputClass={inputCls({ class: inputClass })} --sms-remove-btn-hover-color="white" />
32
+ <MultiSelect bind:selected bind:value bind:searchText bind:open bind:activeIndex bind:activeOption bind:invalid bind:input bind:outerDiv bind:form_input bind:options bind:matchingOptions {...restProps} outerDivClass={outerDivCls({ className: outerDivClass })} ulOptionsClass={ulOptions({ class: ulOptionsClass })} ulSelectedClass={ulSelected({ class: ulSelectedClass })} liSelectedClass={liSelected({ class: liSelectedClass })} inputClass={inputCls({ class: inputClass })} liOptionClass={liOptions({ class: liOptionsClass })} --sms-remove-btn-hover-color="white" />
@@ -1,19 +1,35 @@
1
1
  <script lang="ts" generics="T">
2
+ import { browser } from "$app/environment";
2
3
  import { type SelectProps as Props, select as selectCls } from ".";
3
4
 
4
- let { children, items, value = $bindable(), underline, size = "md", class: className, placeholder = "Choose option...", ...restProps }: Props<T> = $props();
5
+ let { children, items, value = $bindable(), underline, size = "md", class: className, placeholder = "Choose option...", placeholderValue = undefined, ...restProps }: Props<T> = $props();
5
6
 
6
- const selectStyle = $derived(selectCls({ underline, size, className }));
7
+ const customSelect = $derived(browser ? CSS.supports("appearance: base-select") : true);
8
+ const selectStyle = $derived(selectCls({ underline, size, customSelect, className }));
7
9
  </script>
8
10
 
9
- <select {...restProps} bind:value class={selectStyle}>
11
+ <select class={selectStyle} class:custom-select={customSelect} bind:value {...restProps}>
12
+ {#if customSelect}
13
+ <!-- svelte-ignore node_invalid_placement_ssr -->
14
+ <button class="flex w-full items-center justify-between" aria-label="Select Picker">
15
+ <selectedcontent></selectedcontent>
16
+ <span class="picker transition-rotate duration-400">
17
+ <svg class="text-light-surface-800 size-3 dark:text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
18
+ <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5 5 1 1 5" />
19
+ </svg>
20
+ </span>
21
+ </button>
22
+ {/if}
23
+
10
24
  {#if placeholder}
11
- <option disabled selected value={undefined}>{placeholder}</option>
25
+ <option disabled selected value={placeholderValue} class={[customSelect && "flex flex-row items-center gap-3 rounded-lg rounded-md px-3 py-2 text-sm"]}>{placeholder}</option>
12
26
  {/if}
13
27
 
14
28
  {#if items}
15
29
  {#each items as { value, name }}
16
- <option {value} class="text-dark-surface-950 required:invalid:text-dark-surface-400 dark:text-white">{name}</option>
30
+ <option {value} class={["text-dark-surface-950 required:invalid:text-dark-surface-400 dark:text-white", customSelect && "hover:bg-light-surface-200/70 dark:hover:bg-dark-surface-600 hover:text-light-surface-900 flex cursor-pointer flex-row items-center gap-3 rounded-lg rounded-md px-3 py-2 text-sm dark:hover:text-white"]}>
31
+ {name}
32
+ </option>
17
33
  {/each}
18
34
  {/if}
19
35
 
@@ -22,9 +38,40 @@
22
38
  {/if}
23
39
  </select>
24
40
 
25
- <!--
26
- @component
27
- [Go to docs](https://svelte-5-ui-lib.codewithshin.com/)
28
- ## Props
29
- @props:
30
- -->
41
+ <style>
42
+ select.custom-select {
43
+ &,
44
+ &::picker(select) {
45
+ appearance: base-select;
46
+ }
47
+
48
+ &::picker-icon {
49
+ display: none;
50
+ }
51
+ .picker {
52
+ rotate: 180deg;
53
+ :open & {
54
+ rotate: 0deg;
55
+ }
56
+ }
57
+
58
+ &::picker(select) {
59
+ border-radius: var(--radius-lg);
60
+ padding: calc(var(--spacing) * 1);
61
+ margin-block: 0.5rem;
62
+ border: none;
63
+ box-shadow:
64
+ 0 10px 15px -3px rgba(0, 0, 0, 0.1),
65
+ 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */
66
+ background-color: #ffffff;
67
+ color: var(--color-light-surface-700);
68
+ border: 1px solid var(--color-light-surface-200);
69
+ }
70
+
71
+ :global(.dark &::picker(select)) {
72
+ background-color: var(--color-dark-surface-700);
73
+ color: var(--color-dark-surface-200);
74
+ border-color: var(--color-dark-surface-600);
75
+ }
76
+ }
77
+ </style>
@@ -20,11 +20,6 @@ interface $$IsomorphicComponent {
20
20
  <T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
21
21
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
22
22
  }
23
- /**
24
- * [Go to docs](https://svelte-5-ui-lib.codewithshin.com/)
25
- * ## Props
26
- * @props:
27
- */
28
23
  declare const Select: $$IsomorphicComponent;
29
24
  type Select<T> = InstanceType<typeof Select<T>>;
30
25
  export default Select;
@@ -8,6 +8,10 @@ export declare const select: import("tailwind-variants").TVReturnType<{
8
8
  md: string;
9
9
  lg: string;
10
10
  };
11
+ customSelect: {
12
+ true: string;
13
+ false: string;
14
+ };
11
15
  }, undefined, "block w-full disabled:cursor-not-allowed disabled:opacity-50", import("tailwind-variants/dist/config.js").TVConfig<{
12
16
  underline: {
13
17
  true: string;
@@ -18,6 +22,10 @@ export declare const select: import("tailwind-variants").TVReturnType<{
18
22
  md: string;
19
23
  lg: string;
20
24
  };
25
+ customSelect: {
26
+ true: string;
27
+ false: string;
28
+ };
21
29
  }, {
22
30
  underline: {
23
31
  true: string;
@@ -28,6 +36,10 @@ export declare const select: import("tailwind-variants").TVReturnType<{
28
36
  md: string;
29
37
  lg: string;
30
38
  };
39
+ customSelect: {
40
+ true: string;
41
+ false: string;
42
+ };
31
43
  }>, {
32
44
  underline: {
33
45
  true: string;
@@ -38,6 +50,10 @@ export declare const select: import("tailwind-variants").TVReturnType<{
38
50
  md: string;
39
51
  lg: string;
40
52
  };
53
+ customSelect: {
54
+ true: string;
55
+ false: string;
56
+ };
41
57
  }, undefined, import("tailwind-variants").TVReturnType<{
42
58
  underline: {
43
59
  true: string;
@@ -48,6 +64,10 @@ export declare const select: import("tailwind-variants").TVReturnType<{
48
64
  md: string;
49
65
  lg: string;
50
66
  };
67
+ customSelect: {
68
+ true: string;
69
+ false: string;
70
+ };
51
71
  }, undefined, "block w-full disabled:cursor-not-allowed disabled:opacity-50", import("tailwind-variants/dist/config.js").TVConfig<{
52
72
  underline: {
53
73
  true: string;
@@ -58,6 +78,10 @@ export declare const select: import("tailwind-variants").TVReturnType<{
58
78
  md: string;
59
79
  lg: string;
60
80
  };
81
+ customSelect: {
82
+ true: string;
83
+ false: string;
84
+ };
61
85
  }, {
62
86
  underline: {
63
87
  true: string;
@@ -68,6 +92,10 @@ export declare const select: import("tailwind-variants").TVReturnType<{
68
92
  md: string;
69
93
  lg: string;
70
94
  };
95
+ customSelect: {
96
+ true: string;
97
+ false: string;
98
+ };
71
99
  }>, unknown, unknown, undefined>>;
72
100
  export declare const multiselect: import("tailwind-variants").TVReturnType<{
73
101
  [key: string]: {
@@ -77,6 +105,7 @@ export declare const multiselect: import("tailwind-variants").TVReturnType<{
77
105
  ulOptions?: import("tailwind-variants").ClassValue;
78
106
  ulSelected?: import("tailwind-variants").ClassValue;
79
107
  liSelected?: import("tailwind-variants").ClassValue;
108
+ liOptions?: import("tailwind-variants").ClassValue;
80
109
  };
81
110
  };
82
111
  } | {
@@ -87,11 +116,13 @@ export declare const multiselect: import("tailwind-variants").TVReturnType<{
87
116
  ulOptions?: import("tailwind-variants").ClassValue;
88
117
  ulSelected?: import("tailwind-variants").ClassValue;
89
118
  liSelected?: import("tailwind-variants").ClassValue;
119
+ liOptions?: import("tailwind-variants").ClassValue;
90
120
  };
91
121
  };
92
122
  } | {}, {
93
123
  outerDiv: string;
94
124
  ulOptions: string;
125
+ liOptions: string;
95
126
  ulSelected: string;
96
127
  liSelected: string;
97
128
  input: string;
@@ -103,6 +134,7 @@ export declare const multiselect: import("tailwind-variants").TVReturnType<{
103
134
  ulOptions?: import("tailwind-variants").ClassValue;
104
135
  ulSelected?: import("tailwind-variants").ClassValue;
105
136
  liSelected?: import("tailwind-variants").ClassValue;
137
+ liOptions?: import("tailwind-variants").ClassValue;
106
138
  };
107
139
  };
108
140
  } | {}>, {
@@ -113,17 +145,20 @@ export declare const multiselect: import("tailwind-variants").TVReturnType<{
113
145
  ulOptions?: import("tailwind-variants").ClassValue;
114
146
  ulSelected?: import("tailwind-variants").ClassValue;
115
147
  liSelected?: import("tailwind-variants").ClassValue;
148
+ liOptions?: import("tailwind-variants").ClassValue;
116
149
  };
117
150
  };
118
151
  } | {}, {
119
152
  outerDiv: string;
120
153
  ulOptions: string;
154
+ liOptions: string;
121
155
  ulSelected: string;
122
156
  liSelected: string;
123
157
  input: string;
124
158
  }, import("tailwind-variants").TVReturnType<unknown, {
125
159
  outerDiv: string;
126
160
  ulOptions: string;
161
+ liOptions: string;
127
162
  ulSelected: string;
128
163
  liSelected: string;
129
164
  input: string;
@@ -135,6 +170,7 @@ export declare const multiselect: import("tailwind-variants").TVReturnType<{
135
170
  ulOptions?: import("tailwind-variants").ClassValue;
136
171
  ulSelected?: import("tailwind-variants").ClassValue;
137
172
  liSelected?: import("tailwind-variants").ClassValue;
173
+ liOptions?: import("tailwind-variants").ClassValue;
138
174
  };
139
175
  };
140
176
  } | {}>, unknown, unknown, undefined>>;
@@ -8,20 +8,26 @@ export const select = tv({
8
8
  false: "text-light-surface-900 bg-light-surface-50 border border-light-surface-300 rounded-lg focus:ring-primary-500 focus:border-primary-500 dark:bg-dark-surface-700 dark:border-dark-surface-600 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500 dark:placeholder-dark-surface-400 required:invalid:text-dark-surface-400 outline-hidden focus:ring-1"
9
9
  },
10
10
  size: {
11
- sm: "text-sm p-2",
12
- md: "text-sm p-2.5",
13
- lg: "text-base py-3 px-4"
11
+ sm: "text-xs ps-9 pe-9 p-2",
12
+ md: "text-sm ps-10 pe-10 p-2.5",
13
+ lg: "sm:text-base ps-11 pe-11 p-3"
14
+ },
15
+ customSelect: {
16
+ true: "",
17
+ false: ""
14
18
  }
15
19
  },
16
20
  defaultVariants: {
17
21
  underline: false,
18
- size: "md"
22
+ size: "md",
23
+ customSelect: true
19
24
  }
20
25
  });
21
26
  export const multiselect = tv({
22
27
  slots: {
23
28
  outerDiv: "!text-light-surface-900 !bg-light-surface-50 !border !border-light-surface-300 !rounded-lg !outline-none focus-within:!ring-1 focus-within:!ring-primary-500 focus-within:!border-primary-500 dark:!bg-dark-surface-700 dark:!border-dark-surface-600 dark:!placeholder-dark-surface-400 dark:!text-white dark:focus-within:!ring-primary-500 dark:focus-within:!border-primary-500 !px-2 !py-1 !min-h-[2.7rem]",
24
- ulOptions: "!bg-white dark:!bg-dark-surface-700 !max-h-40",
29
+ ulOptions: "!bg-white dark:!bg-dark-surface-700 !max-h-40 !border-1 !outline-none drop-shadow-lg dark:!border-dark-surface-600 !border-light-surface-200 !p-1 text-light-surface-700 dark:text-dark-surface-200",
30
+ liOptions: "!bg-transparent !text-dark-surface-950 required:invalid:!text-dark-surface-400 dark:!text-white hover:!bg-light-surface-200/70 dark:hover:!bg-dark-surface-600 hover:!text-light-surface-900 flex cursor-pointer flex-row items-center gap-3 rounded-md !px-3 !py-2 text-sm dark:hover:!text-white",
25
31
  ulSelected: "!flex !gap-1.5 !mx-2",
26
32
  liSelected: "!border-light-surface-200 dark:!border-dark-surface-700 !divide-light-surface-200 dark:!divide-dark-surface-700 !font-medium !text-xs !text-light-surface-800 dark:!text-dark-surface-300 !rounded !bg-light-surface-200 dark:!bg-dark-surface-600 !py-1 !px-2 !m-0",
27
33
  input: "placeholder:!text-light-surface-400"
@@ -12,10 +12,12 @@ interface SelectProps<T> extends Omit<HTMLSelectAttributes, "size"> {
12
12
  underline?: boolean;
13
13
  size?: SelectSize;
14
14
  placeholder?: string;
15
+ placeholderValue?: any;
15
16
  }
16
17
  interface MultiSelectProps<T> extends MultiSelectParameters {
17
18
  outerDivClass?: string;
18
19
  ulOptionsClass?: string;
20
+ liOptionsClass?: string;
19
21
  ulSelectedClass?: string;
20
22
  liSelectedClass?: string;
21
23
  inputClass?: string;
@@ -2,7 +2,7 @@ import { tv } from "tailwind-variants";
2
2
  export const toggle = tv({
3
3
  slots: {
4
4
  span: "me-3 shrink-0 bg-light-surface-200 rounded-full peer-focus-visible:ring-4 peer-checked:after:translate-x-full peer-checked:rtl:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:bg-white after:border-light-surface-300 after:border after:rounded-full after:transition-all dark:bg-dark-surface-600 dark:border-dark-surface-500 relative cursor-pointer",
5
- label: "flex items-center",
5
+ label: "flex items-center w-fit",
6
6
  input: "w-4 h-4 bg-light-surface-100 border-light-surface-300 dark:ring-offset-dark-surface-800 focus:ring-2 rounded-sm dark:bg-dark-surface-700 dark:border-dark-surface-600 sr-only peer"
7
7
  },
8
8
  variants: {
@@ -2,9 +2,9 @@ import { tv } from "tailwind-variants";
2
2
  export const sidebar = tv({
3
3
  slots: {
4
4
  base: "top-0 left-0 z-10 min-w-full",
5
- div: "overflow-y-auto p-2 rounded-xl bg-light-surface-100 dark:bg-dark-surface-800",
6
- active: "cursor-pointer flex items-center p-2 rounded-lg text-base font-normal text-light-surface-900 dark:text-white bg-light-surface-300 dark:bg-dark-surface-700 hover:bg-light-surface-300/50 dark:hover:bg-dark-surface-600",
7
- nonactive: "cursor-pointer flex items-center p-2 rounded-lg text-base font-normal text-light-surface-700 dark:text-dark-surface-400 hover:bg-light-surface-300/50 dark:hover:bg-dark-surface-600 hover:text-light-surface-800 dark:hover:text-dark-surface-200"
5
+ div: "overflow-y-auto p-2 rounded-xl bg-light-surface-200 dark:bg-dark-surface-800",
6
+ active: "cursor-pointer flex items-center p-2 text-nowrap rounded-lg text-base font-normal text-light-surface-900 dark:text-white bg-light-surface-100 dark:bg-dark-surface-700 hover:bg-light-surface-300/50 dark:hover:bg-dark-surface-600",
7
+ nonactive: "cursor-pointer flex items-center p-2 text-nowrap rounded-lg text-base font-normal text-light-surface-700 dark:text-dark-surface-400 hover:bg-light-surface-300/50 dark:hover:bg-dark-surface-600 hover:text-light-surface-800 dark:hover:text-dark-surface-200"
8
8
  },
9
9
  variants: {
10
10
  position: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "odj-svelte-ui",
3
3
  "author": "orbitadajogatina",
4
- "version": "0.4.4",
4
+ "version": "0.5.0",
5
5
  "description": "This is a fork from Flowbite Svelte 5 with Runes. I just made some changes that fits better my taste.",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
@@ -37,19 +37,19 @@
37
37
  "cp": "npx changeset publish"
38
38
  },
39
39
  "devDependencies": {
40
- "@changesets/cli": "^2.29.7",
41
- "@playwright/test": "^1.55.1",
40
+ "@changesets/cli": "^2.31.0",
41
+ "@playwright/test": "^1.59.1",
42
42
  "@popperjs/core": "^2.11.8",
43
- "@sveltejs/adapter-vercel": "^5.10.2",
43
+ "@sveltejs/adapter-vercel": "^5.10.3",
44
44
  "@sveltejs/enhanced-img": "^0.4.4",
45
- "@sveltejs/kit": "^2.43.5",
46
- "@sveltejs/package": "^2.5.4",
45
+ "@sveltejs/kit": "^2.57.1",
46
+ "@sveltejs/package": "^2.5.7",
47
47
  "@sveltejs/vite-plugin-svelte": "^5.1.1",
48
48
  "@svitejs/changesets-changelog-github-compact": "^1.2.0",
49
49
  "@types/eslint": "^9.6.1",
50
- "@types/node": "^22.18.6",
51
- "autoprefixer": "^10.4.21",
52
- "eslint": "^9.36.0",
50
+ "@types/node": "^22.19.17",
51
+ "autoprefixer": "^10.5.0",
52
+ "eslint": "^9.39.4",
53
53
  "eslint-config-prettier": "^9.1.2",
54
54
  "eslint-plugin-svelte": "^2.46.1",
55
55
  "flowbite": "^2.5.2",
@@ -57,23 +57,23 @@
57
57
  "flowbite-svelte-icons": "^2.3.0",
58
58
  "globals": "^15.15.0",
59
59
  "highlight.js": "^11.11.1",
60
- "postcss": "^8.5.6",
61
- "prettier": "^3.6.2",
62
- "prettier-plugin-svelte": "^3.4.0",
60
+ "postcss": "^8.5.10",
61
+ "prettier": "^3.8.3",
62
+ "prettier-plugin-svelte": "^3.5.1",
63
63
  "prettier-plugin-tailwindcss": "^0.6.14",
64
64
  "publint": "^0.2.12",
65
65
  "runatics": "^0.1.4",
66
66
  "runes-meta-tags": "^0.4.5",
67
- "svelte": "^5.39.6",
67
+ "svelte": "^5.55.4",
68
68
  "svelte-animated-icons": "^0.7.1",
69
- "svelte-check": "^4.3.2",
69
+ "svelte-check": "^4.4.6",
70
70
  "svelte-lib-helpers": "^0.4.31",
71
71
  "svelte-rune-highlight": "^0.5.15",
72
72
  "tslib": "^2.8.1",
73
- "tsx": "^4.20.6",
74
- "typescript": "^5.9.2",
75
- "typescript-eslint": "^8.44.1",
76
- "vite": "^6.3.6",
73
+ "tsx": "^4.21.0",
74
+ "typescript": "^5.9.3",
75
+ "typescript-eslint": "^8.59.0",
76
+ "vite": "^6.4.2",
77
77
  "vite-imagetools": "^7.1.1"
78
78
  },
79
79
  "peerDependencies": {
@@ -89,16 +89,16 @@
89
89
  ],
90
90
  "type": "module",
91
91
  "dependencies": {
92
- "@floating-ui/dom": "^1.7.4",
92
+ "@floating-ui/dom": "^1.7.6",
93
93
  "@skeletonlabs/floating-ui-svelte": "^0.3.9",
94
- "@tailwindcss/postcss": "^4.1.13",
94
+ "@tailwindcss/postcss": "^4.2.4",
95
95
  "apexcharts": "^3.54.1",
96
96
  "clsx": "^2.1.1",
97
97
  "deepmerge": "^4.3.1",
98
- "svelte-multiselect": "^11.2.3",
99
- "tailwind-merge": "^2.6.0",
98
+ "svelte-multiselect": "^11.7.0",
99
+ "tailwind-merge": "^2.6.1",
100
100
  "tailwind-variants": "^0.3.1",
101
- "tailwindcss": "^4.1.13"
101
+ "tailwindcss": "^4.2.4"
102
102
  },
103
103
  "exports": {
104
104
  ".": {