@webamoki/web-svelte 0.5.19 → 0.5.20

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.
@@ -1,17 +1,18 @@
1
1
  <script
2
2
  lang="ts"
3
- generics="V, K extends string | number | symbol,T extends Record<string, unknown>, U extends FormPath<T>, M"
3
+ generics="V,I, K extends string | number | symbol,T extends Record<string, unknown>, U extends FormPath<T>, M"
4
4
  >
5
+ import Choice, { type ChoiceProps } from '../../ui/choice/Choice.svelte';
5
6
  import type { FormPath } from 'sveltekit-superforms';
6
7
  import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
7
- import Choice, { type ChoiceProps } from '../../ui/choice/Choice.svelte';
8
8
 
9
- type Props = FieldWrapperProps<T, U, M> & ChoiceProps<V, K>;
9
+ type Props = FieldWrapperProps<T, U, M> & ChoiceProps<V, I, K>;
10
10
 
11
11
  let {
12
12
  items,
13
13
  getKey,
14
14
  getLabel,
15
+ getValue,
15
16
  onChange,
16
17
  vertical,
17
18
  value = $bindable(undefined),
@@ -33,6 +34,7 @@
33
34
  {items}
34
35
  {getKey}
35
36
  {getLabel}
37
+ {getValue}
36
38
  {onChange}
37
39
  {buttonContent}
38
40
  {vertical}
@@ -1,27 +1,27 @@
1
+ import { type ChoiceProps } from '../../ui/choice/Choice.svelte';
1
2
  import type { FormPath } from 'sveltekit-superforms';
2
3
  import { type FieldWrapperProps } from '../FieldWrapper.svelte';
3
- import { type ChoiceProps } from '../../ui/choice/Choice.svelte';
4
- declare function $$render<V, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
5
- props: FieldWrapperProps<T, U, M> & ChoiceProps<V, K>;
4
+ declare function $$render<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
5
+ props: FieldWrapperProps<T, U, M> & ChoiceProps<V, I, K>;
6
6
  exports: {};
7
7
  bindings: "value";
8
8
  slots: {};
9
9
  events: {};
10
10
  };
11
- declare class __sveltets_Render<V, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> {
12
- props(): ReturnType<typeof $$render<V, K, T, U, M>>['props'];
13
- events(): ReturnType<typeof $$render<V, K, T, U, M>>['events'];
14
- slots(): ReturnType<typeof $$render<V, K, T, U, M>>['slots'];
11
+ declare class __sveltets_Render<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> {
12
+ props(): ReturnType<typeof $$render<V, I, K, T, U, M>>['props'];
13
+ events(): ReturnType<typeof $$render<V, I, K, T, U, M>>['events'];
14
+ slots(): ReturnType<typeof $$render<V, I, K, T, U, M>>['slots'];
15
15
  bindings(): "value";
16
16
  exports(): {};
17
17
  }
18
18
  interface $$IsomorphicComponent {
19
- new <V, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, K, T, U, M>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, K, T, U, M>['props']>, ReturnType<__sveltets_Render<V, K, T, U, M>['events']>, ReturnType<__sveltets_Render<V, K, T, U, M>['slots']>> & {
20
- $$bindings?: ReturnType<__sveltets_Render<V, K, T, U, M>['bindings']>;
21
- } & ReturnType<__sveltets_Render<V, K, T, U, M>['exports']>;
22
- <V, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<V, K, T, U, M>['props']> & {}): ReturnType<__sveltets_Render<V, K, T, U, M>['exports']>;
23
- z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any, any>['bindings']>;
19
+ new <V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']>, ReturnType<__sveltets_Render<V, I, K, T, U, M>['events']>, ReturnType<__sveltets_Render<V, I, K, T, U, M>['slots']>> & {
20
+ $$bindings?: ReturnType<__sveltets_Render<V, I, K, T, U, M>['bindings']>;
21
+ } & ReturnType<__sveltets_Render<V, I, K, T, U, M>['exports']>;
22
+ <V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']> & {}): ReturnType<__sveltets_Render<V, I, K, T, U, M>['exports']>;
23
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any, any, any>['bindings']>;
24
24
  }
25
25
  declare const ChoiceField: $$IsomorphicComponent;
26
- type ChoiceField<V, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> = InstanceType<typeof ChoiceField<V, K, T, U, M>>;
26
+ type ChoiceField<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> = InstanceType<typeof ChoiceField<V, I, K, T, U, M>>;
27
27
  export default ChoiceField;
@@ -1,16 +1,17 @@
1
1
  <script
2
2
  lang="ts"
3
- generics="V, K extends string | number | symbol,T extends Record<string, unknown>, U extends FormPath<T>, M"
3
+ generics="V,I, K extends string | number | symbol,T extends Record<string, unknown>, U extends FormPath<T>, M"
4
4
  >
5
5
  import ChoiceMulti, { type ChoiceMultiProps } from '../../ui/choice/ChoiceMulti.svelte';
6
6
  import type { FormPath } from 'sveltekit-superforms';
7
7
  import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
8
8
 
9
- type Props = FieldWrapperProps<T, U, M> & ChoiceMultiProps<V, K>;
9
+ type Props = FieldWrapperProps<T, U, M> & ChoiceMultiProps<V, I, K>;
10
10
  let {
11
11
  items,
12
12
  getKey,
13
13
  getLabel,
14
+ getValue,
14
15
  onAdd,
15
16
  onRemove,
16
17
  vertical,
@@ -33,6 +34,7 @@
33
34
  {items}
34
35
  {getKey}
35
36
  {getLabel}
37
+ {getValue}
36
38
  {onAdd}
37
39
  {onRemove}
38
40
  {buttonContent}
@@ -1,27 +1,27 @@
1
1
  import { type ChoiceMultiProps } from '../../ui/choice/ChoiceMulti.svelte';
2
2
  import type { FormPath } from 'sveltekit-superforms';
3
3
  import { type FieldWrapperProps } from '../FieldWrapper.svelte';
4
- declare function $$render<V, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
5
- props: FieldWrapperProps<T, U, M> & ChoiceMultiProps<V, K>;
4
+ declare function $$render<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
5
+ props: FieldWrapperProps<T, U, M> & ChoiceMultiProps<V, I, K>;
6
6
  exports: {};
7
7
  bindings: "value";
8
8
  slots: {};
9
9
  events: {};
10
10
  };
11
- declare class __sveltets_Render<V, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> {
12
- props(): ReturnType<typeof $$render<V, K, T, U, M>>['props'];
13
- events(): ReturnType<typeof $$render<V, K, T, U, M>>['events'];
14
- slots(): ReturnType<typeof $$render<V, K, T, U, M>>['slots'];
11
+ declare class __sveltets_Render<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> {
12
+ props(): ReturnType<typeof $$render<V, I, K, T, U, M>>['props'];
13
+ events(): ReturnType<typeof $$render<V, I, K, T, U, M>>['events'];
14
+ slots(): ReturnType<typeof $$render<V, I, K, T, U, M>>['slots'];
15
15
  bindings(): "value";
16
16
  exports(): {};
17
17
  }
18
18
  interface $$IsomorphicComponent {
19
- new <V, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, K, T, U, M>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, K, T, U, M>['props']>, ReturnType<__sveltets_Render<V, K, T, U, M>['events']>, ReturnType<__sveltets_Render<V, K, T, U, M>['slots']>> & {
20
- $$bindings?: ReturnType<__sveltets_Render<V, K, T, U, M>['bindings']>;
21
- } & ReturnType<__sveltets_Render<V, K, T, U, M>['exports']>;
22
- <V, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<V, K, T, U, M>['props']> & {}): ReturnType<__sveltets_Render<V, K, T, U, M>['exports']>;
23
- z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any, any>['bindings']>;
19
+ new <V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']>, ReturnType<__sveltets_Render<V, I, K, T, U, M>['events']>, ReturnType<__sveltets_Render<V, I, K, T, U, M>['slots']>> & {
20
+ $$bindings?: ReturnType<__sveltets_Render<V, I, K, T, U, M>['bindings']>;
21
+ } & ReturnType<__sveltets_Render<V, I, K, T, U, M>['exports']>;
22
+ <V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']> & {}): ReturnType<__sveltets_Render<V, I, K, T, U, M>['exports']>;
23
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any, any, any>['bindings']>;
24
24
  }
25
25
  declare const ChoiceMultiField: $$IsomorphicComponent;
26
- type ChoiceMultiField<V, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> = InstanceType<typeof ChoiceMultiField<V, K, T, U, M>>;
26
+ type ChoiceMultiField<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> = InstanceType<typeof ChoiceMultiField<V, I, K, T, U, M>>;
27
27
  export default ChoiceMultiField;
@@ -1,27 +1,30 @@
1
1
  <script lang="ts" module>
2
- export interface ChoiceProps<V, K extends string | number | symbol>
3
- extends ChoiceInternalProps<V, K> {
2
+ export interface ChoiceProps<V, I, K extends string | number | symbol>
3
+ extends ChoiceInternalProps<V, I, K> {
4
4
  value?: V;
5
5
  onChange?: (value: V) => void;
6
6
  }
7
7
  </script>
8
8
 
9
- <script lang="ts" generics="V, K extends string | number | symbol">
10
- import ChoiceInternal, {
11
- type ChoiceInternalProps as ChoiceInternalProps
12
- } from './ChoiceInternal.svelte';
9
+ <script lang="ts" generics="V, I, K extends string | number | symbol">
10
+ import ChoiceInternal, { type ChoiceInternalProps } from './ChoiceInternal.svelte';
13
11
 
14
- let { value = $bindable(undefined), onChange, ...props }: ChoiceProps<V, K> = $props();
12
+ let {
13
+ value = $bindable(undefined),
14
+ getValue,
15
+ onChange,
16
+ ...props
17
+ }: ChoiceProps<V, I, K> = $props();
15
18
 
16
- function handleItemClick(item: V) {
17
- value = item;
19
+ function handleItemClick(item: I) {
20
+ value = getValue(item);
18
21
  // Trigger event
19
- onChange?.(item);
22
+ onChange?.(value);
20
23
  }
21
24
 
22
- function isActive(item: V) {
23
- return value === item;
25
+ function isActive(item: I) {
26
+ return value === getValue(item);
24
27
  }
25
28
  </script>
26
29
 
27
- <ChoiceInternal {handleItemClick} {isActive} {...props} />
30
+ <ChoiceInternal {handleItemClick} {isActive} {getValue} {...props} />
@@ -1,29 +1,29 @@
1
- export interface ChoiceProps<V, K extends string | number | symbol> extends ChoiceInternalProps<V, K> {
1
+ export interface ChoiceProps<V, I, K extends string | number | symbol> extends ChoiceInternalProps<V, I, K> {
2
2
  value?: V;
3
3
  onChange?: (value: V) => void;
4
4
  }
5
- import { type ChoiceInternalProps as ChoiceInternalProps } from './ChoiceInternal.svelte';
6
- declare function $$render<V, K extends string | number | symbol>(): {
7
- props: ChoiceProps<V, K>;
5
+ import { type ChoiceInternalProps } from './ChoiceInternal.svelte';
6
+ declare function $$render<V, I, K extends string | number | symbol>(): {
7
+ props: ChoiceProps<V, I, K>;
8
8
  exports: {};
9
9
  bindings: "value";
10
10
  slots: {};
11
11
  events: {};
12
12
  };
13
- declare class __sveltets_Render<V, K extends string | number | symbol> {
14
- props(): ReturnType<typeof $$render<V, K>>['props'];
15
- events(): ReturnType<typeof $$render<V, K>>['events'];
16
- slots(): ReturnType<typeof $$render<V, K>>['slots'];
13
+ declare class __sveltets_Render<V, I, K extends string | number | symbol> {
14
+ props(): ReturnType<typeof $$render<V, I, K>>['props'];
15
+ events(): ReturnType<typeof $$render<V, I, K>>['events'];
16
+ slots(): ReturnType<typeof $$render<V, I, K>>['slots'];
17
17
  bindings(): "value";
18
18
  exports(): {};
19
19
  }
20
20
  interface $$IsomorphicComponent {
21
- new <V, K extends string | number | symbol>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, K>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, K>['props']>, ReturnType<__sveltets_Render<V, K>['events']>, ReturnType<__sveltets_Render<V, K>['slots']>> & {
22
- $$bindings?: ReturnType<__sveltets_Render<V, K>['bindings']>;
23
- } & ReturnType<__sveltets_Render<V, K>['exports']>;
24
- <V, K extends string | number | symbol>(internal: unknown, props: ReturnType<__sveltets_Render<V, K>['props']> & {}): ReturnType<__sveltets_Render<V, K>['exports']>;
25
- z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
21
+ new <V, I, K extends string | number | symbol>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, I, K>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, I, K>['props']>, ReturnType<__sveltets_Render<V, I, K>['events']>, ReturnType<__sveltets_Render<V, I, K>['slots']>> & {
22
+ $$bindings?: ReturnType<__sveltets_Render<V, I, K>['bindings']>;
23
+ } & ReturnType<__sveltets_Render<V, I, K>['exports']>;
24
+ <V, I, K extends string | number | symbol>(internal: unknown, props: ReturnType<__sveltets_Render<V, I, K>['props']> & {}): ReturnType<__sveltets_Render<V, I, K>['exports']>;
25
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
26
26
  }
27
27
  declare const Choice: $$IsomorphicComponent;
28
- type Choice<V, K extends string | number | symbol> = InstanceType<typeof Choice<V, K>>;
28
+ type Choice<V, I, K extends string | number | symbol> = InstanceType<typeof Choice<V, I, K>>;
29
29
  export default Choice;
@@ -1,22 +1,23 @@
1
1
  <script lang="ts" module>
2
- export interface ChoiceInternalProps<T, K extends string | number | symbol>
2
+ export interface ChoiceInternalProps<V, I, K extends string | number | symbol>
3
3
  extends Partial<FormAttrs> {
4
- items: readonly T[];
5
- getKey: (item: T) => K;
6
- getLabel: (item: T) => string;
4
+ items: readonly I[];
5
+ getKey: (item: I) => K;
6
+ getLabel: (item: I) => string;
7
+ getValue: (item: I) => V;
7
8
  vertical?: boolean;
8
9
  buttonContent?: Snippet<[label: string]>;
9
10
  }
10
11
  </script>
11
12
 
12
- <script lang="ts" generics="T, K extends string | number | symbol">
13
+ <script lang="ts" generics="V, I, K extends string | number | symbol">
13
14
  import type { FormAttrs } from '../../form/FieldWrapper.svelte';
14
15
  import { cn } from '../../../shadcn/utils.js';
15
16
  import type { Snippet } from 'svelte';
16
17
 
17
- interface Props extends ChoiceInternalProps<T, K> {
18
- handleItemClick: (item: T) => void;
19
- isActive: (item: T) => boolean;
18
+ interface Props extends ChoiceInternalProps<V, I, K> {
19
+ handleItemClick: (item: I) => void;
20
+ isActive: (item: I) => boolean;
20
21
  }
21
22
 
22
23
  let {
@@ -1,36 +1,37 @@
1
- export interface ChoiceInternalProps<T, K extends string | number | symbol> extends Partial<FormAttrs> {
2
- items: readonly T[];
3
- getKey: (item: T) => K;
4
- getLabel: (item: T) => string;
1
+ export interface ChoiceInternalProps<V, I, K extends string | number | symbol> extends Partial<FormAttrs> {
2
+ items: readonly I[];
3
+ getKey: (item: I) => K;
4
+ getLabel: (item: I) => string;
5
+ getValue: (item: I) => V;
5
6
  vertical?: boolean;
6
7
  buttonContent?: Snippet<[label: string]>;
7
8
  }
8
9
  import type { FormAttrs } from '../../form/FieldWrapper.svelte';
9
10
  import type { Snippet } from 'svelte';
10
- declare function $$render<T, K extends string | number | symbol>(): {
11
- props: ChoiceInternalProps<T, K> & {
12
- handleItemClick: (item: T) => void;
13
- isActive: (item: T) => boolean;
11
+ declare function $$render<V, I, K extends string | number | symbol>(): {
12
+ props: ChoiceInternalProps<V, I, K> & {
13
+ handleItemClick: (item: I) => void;
14
+ isActive: (item: I) => boolean;
14
15
  };
15
16
  exports: {};
16
17
  bindings: "";
17
18
  slots: {};
18
19
  events: {};
19
20
  };
20
- declare class __sveltets_Render<T, K extends string | number | symbol> {
21
- props(): ReturnType<typeof $$render<T, K>>['props'];
22
- events(): ReturnType<typeof $$render<T, K>>['events'];
23
- slots(): ReturnType<typeof $$render<T, K>>['slots'];
21
+ declare class __sveltets_Render<V, I, K extends string | number | symbol> {
22
+ props(): ReturnType<typeof $$render<V, I, K>>['props'];
23
+ events(): ReturnType<typeof $$render<V, I, K>>['events'];
24
+ slots(): ReturnType<typeof $$render<V, I, K>>['slots'];
24
25
  bindings(): "";
25
26
  exports(): {};
26
27
  }
27
28
  interface $$IsomorphicComponent {
28
- new <T, K extends string | number | symbol>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, K>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, K>['props']>, ReturnType<__sveltets_Render<T, K>['events']>, ReturnType<__sveltets_Render<T, K>['slots']>> & {
29
- $$bindings?: ReturnType<__sveltets_Render<T, K>['bindings']>;
30
- } & ReturnType<__sveltets_Render<T, K>['exports']>;
31
- <T, K extends string | number | symbol>(internal: unknown, props: ReturnType<__sveltets_Render<T, K>['props']> & {}): ReturnType<__sveltets_Render<T, K>['exports']>;
32
- z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
29
+ new <V, I, K extends string | number | symbol>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, I, K>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, I, K>['props']>, ReturnType<__sveltets_Render<V, I, K>['events']>, ReturnType<__sveltets_Render<V, I, K>['slots']>> & {
30
+ $$bindings?: ReturnType<__sveltets_Render<V, I, K>['bindings']>;
31
+ } & ReturnType<__sveltets_Render<V, I, K>['exports']>;
32
+ <V, I, K extends string | number | symbol>(internal: unknown, props: ReturnType<__sveltets_Render<V, I, K>['props']> & {}): ReturnType<__sveltets_Render<V, I, K>['exports']>;
33
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
33
34
  }
34
35
  declare const ChoiceInternal: $$IsomorphicComponent;
35
- type ChoiceInternal<T, K extends string | number | symbol> = InstanceType<typeof ChoiceInternal<T, K>>;
36
+ type ChoiceInternal<V, I, K extends string | number | symbol> = InstanceType<typeof ChoiceInternal<V, I, K>>;
36
37
  export default ChoiceInternal;
@@ -1,25 +1,28 @@
1
1
  <script lang="ts" module>
2
- export interface ChoiceMultiProps<V, K extends string | number | symbol>
3
- extends ChoiceInternalProps<V, K> {
2
+ export interface ChoiceMultiProps<V, I, K extends string | number | symbol>
3
+ extends ChoiceInternalProps<V, I, K> {
4
4
  value: V[];
5
5
  onAdd?: (value: V) => void;
6
6
  onRemove?: (value: V) => void;
7
7
  }
8
8
  </script>
9
9
 
10
- <script lang="ts" generics="V, K extends string | number | symbol">
11
- import ChoiceInternal, { type ChoiceInternalProps } from './ChoiceInternal.svelte';
10
+ <script lang="ts" generics="V,I, K extends string | number | symbol">
12
11
  import * as sorted from 'sorted-array-functions';
12
+ import ChoiceInternal, { type ChoiceInternalProps } from './ChoiceInternal.svelte';
13
13
 
14
14
  let {
15
15
  value = $bindable([]),
16
16
  onAdd,
17
17
  onRemove,
18
+ getValue,
18
19
  items,
19
20
  ...props
20
- }: ChoiceMultiProps<V, K> = $props();
21
+ }: ChoiceMultiProps<V, I, K> = $props();
21
22
 
22
- const valueIndex = new Map<V, number>(items.map((item, index) => [item, index] as const));
23
+ const valueIndex = new Map<V, number>(
24
+ items.map((item, index) => [getValue(item), index] as const)
25
+ );
23
26
 
24
27
  function compareItems(a: V, b: V) {
25
28
  const index1 = valueIndex.get(a);
@@ -30,21 +33,21 @@
30
33
  return Math.sign(index1 - index2) as -1 | 0 | 1;
31
34
  }
32
35
 
33
- function contains(item: V) {
36
+ function contains(item: I) {
34
37
  // Sorted contains function
35
- return sorted.has(value, item, compareItems);
38
+ return sorted.has(value, getValue(item), compareItems);
36
39
  }
37
40
 
38
- function handleItemClick(item: V) {
41
+ function handleItemClick(item: I) {
39
42
  // Toggle add or remove
40
43
  if (!contains(item)) {
41
- sorted.add(value, item, compareItems);
44
+ sorted.add(value, getValue(item), compareItems);
42
45
  // Trigger event
43
- onAdd?.(item);
46
+ onAdd?.(getValue(item));
44
47
  } else {
45
- sorted.remove(value, item, compareItems);
48
+ sorted.remove(value, getValue(item), compareItems);
46
49
  // Trigger event
47
- onRemove?.(item);
50
+ onRemove?.(getValue(item));
48
51
  }
49
52
 
50
53
  // Re-assign value to trigger state update
@@ -52,4 +55,4 @@
52
55
  }
53
56
  </script>
54
57
 
55
- <ChoiceInternal {handleItemClick} isActive={contains} {items} {...props} />
58
+ <ChoiceInternal {handleItemClick} {getValue} isActive={contains} {items} {...props} />
@@ -1,30 +1,30 @@
1
- export interface ChoiceMultiProps<V, K extends string | number | symbol> extends ChoiceInternalProps<V, K> {
1
+ export interface ChoiceMultiProps<V, I, K extends string | number | symbol> extends ChoiceInternalProps<V, I, K> {
2
2
  value: V[];
3
3
  onAdd?: (value: V) => void;
4
4
  onRemove?: (value: V) => void;
5
5
  }
6
6
  import { type ChoiceInternalProps } from './ChoiceInternal.svelte';
7
- declare function $$render<V, K extends string | number | symbol>(): {
8
- props: ChoiceMultiProps<V, K>;
7
+ declare function $$render<V, I, K extends string | number | symbol>(): {
8
+ props: ChoiceMultiProps<V, I, K>;
9
9
  exports: {};
10
10
  bindings: "value";
11
11
  slots: {};
12
12
  events: {};
13
13
  };
14
- declare class __sveltets_Render<V, K extends string | number | symbol> {
15
- props(): ReturnType<typeof $$render<V, K>>['props'];
16
- events(): ReturnType<typeof $$render<V, K>>['events'];
17
- slots(): ReturnType<typeof $$render<V, K>>['slots'];
14
+ declare class __sveltets_Render<V, I, K extends string | number | symbol> {
15
+ props(): ReturnType<typeof $$render<V, I, K>>['props'];
16
+ events(): ReturnType<typeof $$render<V, I, K>>['events'];
17
+ slots(): ReturnType<typeof $$render<V, I, K>>['slots'];
18
18
  bindings(): "value";
19
19
  exports(): {};
20
20
  }
21
21
  interface $$IsomorphicComponent {
22
- new <V, K extends string | number | symbol>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, K>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, K>['props']>, ReturnType<__sveltets_Render<V, K>['events']>, ReturnType<__sveltets_Render<V, K>['slots']>> & {
23
- $$bindings?: ReturnType<__sveltets_Render<V, K>['bindings']>;
24
- } & ReturnType<__sveltets_Render<V, K>['exports']>;
25
- <V, K extends string | number | symbol>(internal: unknown, props: ReturnType<__sveltets_Render<V, K>['props']> & {}): ReturnType<__sveltets_Render<V, K>['exports']>;
26
- z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
22
+ new <V, I, K extends string | number | symbol>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, I, K>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, I, K>['props']>, ReturnType<__sveltets_Render<V, I, K>['events']>, ReturnType<__sveltets_Render<V, I, K>['slots']>> & {
23
+ $$bindings?: ReturnType<__sveltets_Render<V, I, K>['bindings']>;
24
+ } & ReturnType<__sveltets_Render<V, I, K>['exports']>;
25
+ <V, I, K extends string | number | symbol>(internal: unknown, props: ReturnType<__sveltets_Render<V, I, K>['props']> & {}): ReturnType<__sveltets_Render<V, I, K>['exports']>;
26
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
27
27
  }
28
28
  declare const ChoiceMulti: $$IsomorphicComponent;
29
- type ChoiceMulti<V, K extends string | number | symbol> = InstanceType<typeof ChoiceMulti<V, K>>;
29
+ type ChoiceMulti<V, I, K extends string | number | symbol> = InstanceType<typeof ChoiceMulti<V, I, K>>;
30
30
  export default ChoiceMulti;
@@ -25,4 +25,4 @@
25
25
  });
26
26
  </script>
27
27
 
28
- <Choice items={Days} bind:value {getLabel} getKey={identity} {...props} />
28
+ <Choice items={Days} bind:value {getLabel} getValue={identity} getKey={identity} {...props} />
@@ -14,8 +14,8 @@
14
14
  </script>
15
15
 
16
16
  <script lang="ts">
17
- import ChoiceMulti from './ChoiceMulti.svelte';
18
17
  import { Days, formatDayLetter, formatDayShort, type Day } from '../../../utils/index.js';
18
+ import ChoiceMulti from './ChoiceMulti.svelte';
19
19
 
20
20
  let { value = $bindable([]), ...props }: WeekdayChoiceMultiProps = $props();
21
21
 
@@ -26,4 +26,4 @@
26
26
  });
27
27
  </script>
28
28
 
29
- <ChoiceMulti items={Days} bind:value {getLabel} getKey={identity} {...props} />
29
+ <ChoiceMulti items={Days} bind:value {getLabel} getKey={identity} getValue={identity} {...props} />
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.5.19",
6
+ "version": "0.5.20",
7
7
  "license": "MIT",
8
8
  "files": [
9
9
  "dist",