svelte-multiselect 11.2.2 → 11.2.4

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/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "homepage": "https://janosh.github.io/svelte-multiselect",
6
6
  "repository": "https://github.com/janosh/svelte-multiselect",
7
7
  "license": "MIT",
8
- "version": "11.2.2",
8
+ "version": "11.2.4",
9
9
  "type": "module",
10
10
  "svelte": "./dist/index.js",
11
11
  "bugs": "https://github.com/janosh/svelte-multiselect/issues",
@@ -13,30 +13,30 @@
13
13
  "svelte": "^5.35.6"
14
14
  },
15
15
  "devDependencies": {
16
- "@playwright/test": "^1.54.1",
17
- "@stylistic/eslint-plugin": "^5.1.0",
18
- "@sveltejs/adapter-static": "^3.0.8",
19
- "@sveltejs/kit": "^2.22.5",
20
- "@sveltejs/package": "2.3.12",
21
- "@sveltejs/vite-plugin-svelte": "^6.0.0",
22
- "@types/node": "^24.0.13",
16
+ "@playwright/test": "^1.55.1",
17
+ "@stylistic/eslint-plugin": "^5.4.0",
18
+ "@sveltejs/adapter-static": "^3.0.10",
19
+ "@sveltejs/kit": "^2.43.8",
20
+ "@sveltejs/package": "2.5.4",
21
+ "@sveltejs/vite-plugin-svelte": "^6.2.1",
22
+ "@types/node": "^24.6.2",
23
23
  "@vitest/coverage-v8": "^3.2.4",
24
- "eslint": "^9.31.0",
25
- "eslint-plugin-svelte": "^3.10.1",
24
+ "eslint": "^9.37.0",
25
+ "eslint-plugin-svelte": "^3.12.4",
26
+ "happy-dom": "^19.0.2",
26
27
  "hastscript": "^9.0.1",
27
- "jsdom": "^26.1.0",
28
28
  "mdsvex": "^0.12.6",
29
29
  "mdsvexamples": "^0.5.0",
30
30
  "rehype-autolink-headings": "^7.1.0",
31
31
  "rehype-slug": "^6.0.0",
32
- "svelte": "^5.35.6",
33
- "svelte-check": "^4.2.2",
32
+ "svelte": "^5.39.8",
33
+ "svelte-check": "^4.3.2",
34
34
  "svelte-preprocess": "^6.0.3",
35
35
  "svelte-toc": "^0.6.2",
36
- "svelte2tsx": "^0.7.40",
37
- "typescript": "5.8.3",
38
- "typescript-eslint": "^8.36.0",
39
- "vite": "^7.0.4",
36
+ "svelte2tsx": "^0.7.44",
37
+ "typescript": "5.9.3",
38
+ "typescript-eslint": "^8.45.0",
39
+ "vite": "^7.1.9",
40
40
  "vitest": "^3.2.4"
41
41
  },
42
42
  "keywords": [
package/readme.md CHANGED
@@ -619,7 +619,7 @@ Example using several snippets:
619
619
  onremoveAll={(event) => console.log(event.detail.options)}`
620
620
  ```
621
621
 
622
- Triggers when all selected options are removed. The payload `event.detail.options` gives the options that were previously selected.
622
+ Triggers when all selected options are removed. The payload `event.detail.options` gives the options that were removed (might not be all if `minSelect` is set).
623
623
 
624
624
  1. ```ts
625
625
  onchange={(event) => console.log(`${event.detail.type}: '${event.detail.option}'`)}
@@ -643,10 +643,10 @@ For example, here's how you might annoy your users with an alert every time one
643
643
 
644
644
  ```svelte
645
645
  <MultiSelect
646
- onchange={(e) => {
647
- if (e.detail.type === 'add') alert(`You added ${e.detail.option}`)
648
- if (e.detail.type === 'remove') alert(`You removed ${e.detail.option}`)
649
- if (e.detail.type === 'removeAll') alert(`You removed ${e.detail.options}`)
646
+ onchange={(event) => {
647
+ if (event.detail.type === 'add') alert(`You added ${event.detail.option}`)
648
+ if (event.detail.type === 'remove') alert(`You removed ${event.detail.option}`)
649
+ if (event.detail.type === 'removeAll') alert(`You removed ${event.detail.options}`)
650
650
  }}
651
651
  />
652
652
  ```
@@ -1,67 +0,0 @@
1
- <script lang="ts">// get the label key from an option object or the option itself if it's a string or number
2
- const get_label = (op) => {
3
- if (op instanceof Object) {
4
- if (op.label === undefined) {
5
- console.error(`RadioButton option ${JSON.stringify(op)} is an object but has no label key`);
6
- }
7
- return op.label;
8
- }
9
- return op;
10
- };
11
- let { options, selected = $bindable(), id = null, name = null, disabled = false, required = false, aria_label = null, onclick, onchange, oninput, option_snippet, children, ...rest } = $props();
12
- export {};
13
- </script>
14
-
15
- <div {id} {...rest}>
16
- {#each options as option (JSON.stringify(option))}
17
- {@const label = get_label(option)}
18
- {@const active = selected && get_label(option) === get_label(selected)}
19
- <label class:active aria-label={aria_label}>
20
- <input
21
- type="radio"
22
- value={option}
23
- {name}
24
- {disabled}
25
- {required}
26
- bind:group={selected}
27
- {onchange}
28
- {oninput}
29
- {onclick}
30
- />
31
- {#if option_snippet}
32
- {@render option_snippet({ option, selected, active })}
33
- {:else if children}
34
- {@render children({ option, selected, active })}
35
- {:else}<span>{label}</span>{/if}
36
- </label>
37
- {/each}
38
- </div>
39
-
40
- <style>
41
- div {
42
- max-width: max-content;
43
- overflow: hidden;
44
- height: fit-content;
45
- display: var(--radio-btn-display, inline-flex);
46
- border-radius: var(--radio-btn-border-radius, 0.5em);
47
- }
48
- input {
49
- display: none;
50
- }
51
- span {
52
- cursor: pointer;
53
- display: inline-block;
54
- color: var(--radio-btn-color, white);
55
- padding: var(--radio-btn-padding, 2pt 5pt);
56
- background: var(--radio-btn-bg, black);
57
- transition: var(--radio-btn-transition, background 0.3s, transform 0.3s);
58
- }
59
- label:not(.active) span:hover {
60
- background: var(--radio-btn-hover-bg, cornflowerblue);
61
- color: var(--radio-btn-hover-color, white);
62
- }
63
- label.active span {
64
- box-shadow: var(--radio-btn-checked-shadow, inset 0 0 1em -3pt black);
65
- background: var(--radio-btn-checked-bg, darkcyan);
66
- }
67
- </style>
@@ -1,44 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- type GenericOption = string | number | {
3
- value: unknown;
4
- label: string | number;
5
- };
6
- declare class __sveltets_Render<Option extends GenericOption> {
7
- props(): {
8
- [key: string]: unknown;
9
- options: Option[];
10
- selected?: string | number | null;
11
- id?: string | null;
12
- name?: string | null;
13
- disabled?: boolean;
14
- required?: boolean;
15
- aria_label?: string | null;
16
- onclick?: ((event: MouseEvent) => void) | undefined;
17
- onchange?: ((event: Event) => void) | undefined;
18
- oninput?: ((event: Event) => void) | undefined;
19
- option_snippet?: Snippet<[{
20
- option: Option;
21
- selected: boolean;
22
- active: boolean;
23
- }]> | undefined;
24
- children?: Snippet<[{
25
- option: Option;
26
- selected: boolean;
27
- active: boolean;
28
- }]> | undefined;
29
- };
30
- events(): {};
31
- slots(): {};
32
- bindings(): "selected";
33
- exports(): {};
34
- }
35
- interface $$IsomorphicComponent {
36
- new <Option extends GenericOption>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Option>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Option>['props']>, ReturnType<__sveltets_Render<Option>['events']>, ReturnType<__sveltets_Render<Option>['slots']>> & {
37
- $$bindings?: ReturnType<__sveltets_Render<Option>['bindings']>;
38
- } & ReturnType<__sveltets_Render<Option>['exports']>;
39
- <Option extends GenericOption>(internal: unknown, props: ReturnType<__sveltets_Render<Option>['props']> & {}): ReturnType<__sveltets_Render<Option>['exports']>;
40
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
41
- }
42
- declare const RadioButtons: $$IsomorphicComponent;
43
- type RadioButtons<Option extends GenericOption> = InstanceType<typeof RadioButtons<Option>>;
44
- export default RadioButtons;