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/dist/CmdPalette.svelte +15 -11
- package/dist/CmdPalette.svelte.d.ts +4 -2
- package/dist/CopyButton.svelte +27 -6
- package/dist/CopyButton.svelte.d.ts +3 -3
- package/dist/Icon.svelte.d.ts +2 -2
- package/dist/MultiSelect.svelte +150 -63
- package/dist/MultiSelect.svelte.d.ts +11 -4
- package/dist/PrevNext.svelte +9 -8
- package/dist/PrevNext.svelte.d.ts +32 -44
- package/dist/Toggle.svelte +2 -1
- package/dist/Toggle.svelte.d.ts +2 -2
- package/dist/attachments.d.ts +9 -6
- package/dist/attachments.js +187 -43
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/types.d.ts +5 -20
- package/dist/utils.d.ts +3 -8
- package/dist/utils.js +24 -48
- package/package.json +17 -17
- package/readme.md +5 -5
- package/dist/RadioButtons.svelte +0 -67
- package/dist/RadioButtons.svelte.d.ts +0 -44
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.
|
|
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.
|
|
17
|
-
"@stylistic/eslint-plugin": "^5.
|
|
18
|
-
"@sveltejs/adapter-static": "^3.0.
|
|
19
|
-
"@sveltejs/kit": "^2.
|
|
20
|
-
"@sveltejs/package": "2.
|
|
21
|
-
"@sveltejs/vite-plugin-svelte": "^6.
|
|
22
|
-
"@types/node": "^24.
|
|
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.
|
|
25
|
-
"eslint-plugin-svelte": "^3.
|
|
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.
|
|
33
|
-
"svelte-check": "^4.
|
|
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.
|
|
37
|
-
"typescript": "5.
|
|
38
|
-
"typescript-eslint": "^8.
|
|
39
|
-
"vite": "^7.
|
|
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
|
|
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={(
|
|
647
|
-
if (
|
|
648
|
-
if (
|
|
649
|
-
if (
|
|
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
|
```
|
package/dist/RadioButtons.svelte
DELETED
|
@@ -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;
|