ui-ingredients 0.31.0 → 0.31.2

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 (50) hide show
  1. package/README.md +49 -49
  2. package/dist/accordion/accordion-item.svelte +64 -64
  3. package/dist/accordion/accordion-root.svelte +65 -65
  4. package/dist/alert/alert-root.svelte +45 -45
  5. package/dist/alert-dialog/alert-dialog-root.svelte +48 -48
  6. package/dist/angle-slider/angle-slider-root.svelte +58 -58
  7. package/dist/avatar/avatar-root.svelte +45 -45
  8. package/dist/carousel/carousel-root.svelte +64 -64
  9. package/dist/clipboard/clipboard-root.svelte +52 -52
  10. package/dist/collapsible/collapsible-root.svelte +73 -73
  11. package/dist/color-picker/color-picker-root.svelte +88 -88
  12. package/dist/combobox/combobox-root.svelte +102 -102
  13. package/dist/dialog/dialog-root.svelte +48 -48
  14. package/dist/drawer/drawer-root.svelte +48 -48
  15. package/dist/editable/editable-root.svelte +72 -72
  16. package/dist/field/field-root.svelte +62 -62
  17. package/dist/file-upload/file-upload-root.svelte +68 -68
  18. package/dist/floating-panel/floating-panel-root.svelte +47 -47
  19. package/dist/highlight/highlight.svelte +42 -42
  20. package/dist/hover-card/hover-card-root.svelte +51 -51
  21. package/dist/menu/menu-root.svelte +74 -74
  22. package/dist/merge-props.js +15 -17
  23. package/dist/number-input/number-input-root.svelte +74 -74
  24. package/dist/pagination/pagination-root.svelte +57 -57
  25. package/dist/pin-input/pin-input-root.svelte +67 -67
  26. package/dist/popover/popover-root.svelte +60 -60
  27. package/dist/presence/presence.svelte +43 -43
  28. package/dist/progress/progress-root.svelte +55 -55
  29. package/dist/qr-code/qr-code-root.svelte +52 -52
  30. package/dist/radio-group/radio-group-root.svelte +55 -55
  31. package/dist/rating-group/rating-group-root.svelte +62 -62
  32. package/dist/segment-group/segment-group-root.svelte +57 -57
  33. package/dist/select/select-root.svelte +88 -88
  34. package/dist/signature-pad/signature-pad-root.svelte +59 -59
  35. package/dist/slider/slider-root.svelte +68 -68
  36. package/dist/splitter/splitter-root.svelte +52 -52
  37. package/dist/steps/steps-root.svelte +64 -64
  38. package/dist/switch/switch-root.svelte +58 -58
  39. package/dist/tabs/tabs-root.svelte +58 -58
  40. package/dist/tags-input/tags-input-root.svelte +74 -74
  41. package/dist/time-picker/time-picker-root.svelte +81 -81
  42. package/dist/timer/timer-root.svelte +55 -55
  43. package/dist/toast/toast-actor.svelte +19 -19
  44. package/dist/toggle/toggle-root.svelte +49 -49
  45. package/dist/toggle-group/toggle-group-root.svelte +57 -57
  46. package/dist/tooltip/tooltip-root.svelte +44 -44
  47. package/dist/tour/tour-root.svelte +46 -46
  48. package/dist/tree-view/tree-view-branch.svelte +63 -63
  49. package/dist/tree-view/tree-view-root.svelte +68 -68
  50. package/package.json +403 -411
package/README.md CHANGED
@@ -1,49 +1,49 @@
1
- # ui-ingredients
2
-
3
- Headless component library for [Svelte](https://svelte.dev/) powered by [zag](https://zagjs.com/)
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install ui-ingredients
9
- ```
10
-
11
- ## Usage
12
-
13
- ```svelte
14
- <script>
15
- import {Dialog, Portal} from 'ui-ingredients';
16
- import {XCloseIcon} from '$lib/icons';
17
- import {Button} from '$lib/ui';
18
- </script>
19
-
20
- <Dialog.Root lazyMount keepMounted>
21
- <Dialog.Trigger>
22
- {#snippet asChild(attrs)}
23
- <Button {...attrs}>Open</Button>
24
- {/snippet}
25
- </Dialog.Trigger>
26
-
27
- <Portal>
28
- <Dialog.Backdrop />
29
- <Dialog.Positioner>
30
- <Dialog.Content>
31
- <Dialog.Title>Title</Dialog.Title>
32
- <Dialog.Description>Description</Dialog.Description>
33
- <Dialog.CloseTrigger>
34
- <XCloseIcon />
35
- </Dialog.CloseTrigger>
36
- </Dialog.Content>
37
- </Dialog.Positioner>
38
- </Portal>
39
- </Dialog.Root>
40
- ```
41
-
42
- ## Inspiration
43
-
44
- - [zag](https://zagjs.com/) - The fantastic library that powers UI ingredients
45
- - [ark](https://ark-ui.com/) - The outstanding headless component library that greatly inspired this one
46
-
47
- ## Documentation
48
-
49
- Browse the [documentation](https://ui-ingredients.vercel.app/) for more information on how to use UI Ingredients
1
+ # ui-ingredients
2
+
3
+ Headless component library for [Svelte](https://svelte.dev/) powered by [zag](https://zagjs.com/)
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install ui-ingredients
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```svelte
14
+ <script>
15
+ import {Dialog, Portal} from 'ui-ingredients';
16
+ import {XCloseIcon} from '$lib/icons';
17
+ import {Button} from '$lib/ui';
18
+ </script>
19
+
20
+ <Dialog.Root lazyMount keepMounted>
21
+ <Dialog.Trigger>
22
+ {#snippet asChild(attrs)}
23
+ <Button {...attrs}>Open</Button>
24
+ {/snippet}
25
+ </Dialog.Trigger>
26
+
27
+ <Portal>
28
+ <Dialog.Backdrop />
29
+ <Dialog.Positioner>
30
+ <Dialog.Content>
31
+ <Dialog.Title>Title</Dialog.Title>
32
+ <Dialog.Description>Description</Dialog.Description>
33
+ <Dialog.CloseTrigger>
34
+ <XCloseIcon />
35
+ </Dialog.CloseTrigger>
36
+ </Dialog.Content>
37
+ </Dialog.Positioner>
38
+ </Portal>
39
+ </Dialog.Root>
40
+ ```
41
+
42
+ ## Inspiration
43
+
44
+ - [zag](https://zagjs.com/) - The fantastic library that powers UI ingredients
45
+ - [ark](https://ark-ui.com/) - The outstanding headless component library that greatly inspired this one
46
+
47
+ ## Documentation
48
+
49
+ Browse the [documentation](https://ui-ingredients.vercel.app/) for more information on how to use UI Ingredients
@@ -1,64 +1,64 @@
1
- <script lang="ts" module>
2
- import type {ItemProps, ItemState} from '@zag-js/accordion';
3
- import type {Assign, HtmlIngredientProps} from '../types.js';
4
-
5
- export interface AccordionItemProps
6
- extends Assign<
7
- HtmlIngredientProps<'div', HTMLDivElement, ItemState>,
8
- ItemProps
9
- > {}
10
- </script>
11
-
12
- <script lang="ts">
13
- import {reflect} from '@zag-js/svelte';
14
- import {setCollapsibleContext} from '../collapsible/collapsible-context.svelte.js';
15
- import {createCollapsible} from '../collapsible/create-collapsible.svelte.js';
16
- import {createSplitProps} from '../create-split-props.js';
17
- import {mergeProps} from '../merge-props.js';
18
- import {
19
- getAccordionContext,
20
- setAccordionItemPropsContext,
21
- } from './accordion-context.svelte.js';
22
-
23
- let {
24
- ref = $bindable(null),
25
- asChild,
26
- children,
27
- ...props
28
- }: AccordionItemProps = $props();
29
-
30
- let accordion = getAccordionContext();
31
-
32
- let [itemProps, localProps] = $derived(
33
- createSplitProps<ItemProps>(['value', 'disabled'])(props),
34
- );
35
-
36
- let itemState = $derived(accordion.getItemState(itemProps));
37
- let contentProps = $derived(accordion.getItemContentProps(itemProps));
38
- let collapsible = createCollapsible(
39
- reflect(() => ({
40
- ids: {content: contentProps.id},
41
- open: itemState.expanded,
42
- disabled: itemState.disabled,
43
- })),
44
- );
45
-
46
- let mergedProps = $derived(
47
- mergeProps(
48
- collapsible.getRootProps(),
49
- accordion.getItemProps(itemProps),
50
- localProps,
51
- ),
52
- );
53
-
54
- setCollapsibleContext(collapsible);
55
- setAccordionItemPropsContext(() => itemProps);
56
- </script>
57
-
58
- {#if asChild}
59
- {@render asChild(mergedProps, itemState)}
60
- {:else}
61
- <div bind:this={ref} {...mergedProps}>
62
- {@render children?.(itemState)}
63
- </div>
64
- {/if}
1
+ <script lang="ts" module>
2
+ import type {ItemProps, ItemState} from '@zag-js/accordion';
3
+ import type {Assign, HtmlIngredientProps} from '../types.js';
4
+
5
+ export interface AccordionItemProps
6
+ extends Assign<
7
+ HtmlIngredientProps<'div', HTMLDivElement, ItemState>,
8
+ ItemProps
9
+ > {}
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ import {reflect} from '@zag-js/svelte';
14
+ import {setCollapsibleContext} from '../collapsible/collapsible-context.svelte.js';
15
+ import {createCollapsible} from '../collapsible/create-collapsible.svelte.js';
16
+ import {createSplitProps} from '../create-split-props.js';
17
+ import {mergeProps} from '../merge-props.js';
18
+ import {
19
+ getAccordionContext,
20
+ setAccordionItemPropsContext,
21
+ } from './accordion-context.svelte.js';
22
+
23
+ let {
24
+ ref = $bindable(null),
25
+ asChild,
26
+ children,
27
+ ...props
28
+ }: AccordionItemProps = $props();
29
+
30
+ let accordion = getAccordionContext();
31
+
32
+ let [itemProps, localProps] = $derived(
33
+ createSplitProps<ItemProps>(['value', 'disabled'])(props),
34
+ );
35
+
36
+ let itemState = $derived(accordion.getItemState(itemProps));
37
+ let contentProps = $derived(accordion.getItemContentProps(itemProps));
38
+ let collapsible = createCollapsible(
39
+ reflect(() => ({
40
+ ids: {content: contentProps.id},
41
+ open: itemState.expanded,
42
+ disabled: itemState.disabled,
43
+ })),
44
+ );
45
+
46
+ let mergedProps = $derived(
47
+ mergeProps(
48
+ collapsible.getRootProps(),
49
+ accordion.getItemProps(itemProps),
50
+ localProps,
51
+ ),
52
+ );
53
+
54
+ setCollapsibleContext(collapsible);
55
+ setAccordionItemPropsContext(() => itemProps);
56
+ </script>
57
+
58
+ {#if asChild}
59
+ {@render asChild(mergedProps, itemState)}
60
+ {:else}
61
+ <div bind:this={ref} {...mergedProps}>
62
+ {@render children?.(itemState)}
63
+ </div>
64
+ {/if}
@@ -1,65 +1,65 @@
1
- <script lang="ts" module>
2
- import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
3
- import type {Assign, HtmlIngredientProps} from '../types.js';
4
- import type {
5
- CreateAccordionProps,
6
- CreateAccordionReturn,
7
- } from './create-accordion.svelte.js';
8
-
9
- export interface AccordionProps
10
- extends Assign<
11
- HtmlIngredientProps<'div', HTMLDivElement, CreateAccordionReturn>,
12
- CreateAccordionProps
13
- >,
14
- PresenceStrategyProps {}
15
- </script>
16
-
17
- <script lang="ts">
18
- import {reflect} from '@zag-js/svelte';
19
- import {createSplitProps} from '../create-split-props.js';
20
- import {mergeProps} from '../merge-props.js';
21
- import {setPresenceStrategyPropsContext} from '../presence/presence-context.svelte.js';
22
- import {setAccordionContext} from './accordion-context.svelte.js';
23
- import {createAccordion} from './create-accordion.svelte.js';
24
-
25
- let {
26
- ref = $bindable(null),
27
- asChild,
28
- children,
29
- ...props
30
- }: AccordionProps = $props();
31
-
32
- let [presenceStrategyProps, rest] = $derived(
33
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
34
- props,
35
- ),
36
- );
37
-
38
- let [createAccordionProps, localProps] = $derived(
39
- createSplitProps<CreateAccordionProps>([
40
- 'collapsible',
41
- 'disabled',
42
- 'id',
43
- 'ids',
44
- 'multiple',
45
- 'onFocusChange',
46
- 'onValueChange',
47
- 'orientation',
48
- 'value',
49
- ])(rest),
50
- );
51
-
52
- let accordion = createAccordion(reflect(() => createAccordionProps));
53
- let mergedProps = $derived(mergeProps(accordion.getRootProps(), localProps));
54
-
55
- setAccordionContext(accordion);
56
- setPresenceStrategyPropsContext(() => presenceStrategyProps);
57
- </script>
58
-
59
- {#if asChild}
60
- {@render asChild(mergedProps, accordion)}
61
- {:else}
62
- <div bind:this={ref} {...mergedProps}>
63
- {@render children?.(accordion)}
64
- </div>
65
- {/if}
1
+ <script lang="ts" module>
2
+ import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
3
+ import type {Assign, HtmlIngredientProps} from '../types.js';
4
+ import type {
5
+ CreateAccordionProps,
6
+ CreateAccordionReturn,
7
+ } from './create-accordion.svelte.js';
8
+
9
+ export interface AccordionProps
10
+ extends Assign<
11
+ HtmlIngredientProps<'div', HTMLDivElement, CreateAccordionReturn>,
12
+ CreateAccordionProps
13
+ >,
14
+ PresenceStrategyProps {}
15
+ </script>
16
+
17
+ <script lang="ts">
18
+ import {reflect} from '@zag-js/svelte';
19
+ import {createSplitProps} from '../create-split-props.js';
20
+ import {mergeProps} from '../merge-props.js';
21
+ import {setPresenceStrategyPropsContext} from '../presence/presence-context.svelte.js';
22
+ import {setAccordionContext} from './accordion-context.svelte.js';
23
+ import {createAccordion} from './create-accordion.svelte.js';
24
+
25
+ let {
26
+ ref = $bindable(null),
27
+ asChild,
28
+ children,
29
+ ...props
30
+ }: AccordionProps = $props();
31
+
32
+ let [presenceStrategyProps, rest] = $derived(
33
+ createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
34
+ props,
35
+ ),
36
+ );
37
+
38
+ let [createAccordionProps, localProps] = $derived(
39
+ createSplitProps<CreateAccordionProps>([
40
+ 'collapsible',
41
+ 'disabled',
42
+ 'id',
43
+ 'ids',
44
+ 'multiple',
45
+ 'onFocusChange',
46
+ 'onValueChange',
47
+ 'orientation',
48
+ 'value',
49
+ ])(rest),
50
+ );
51
+
52
+ let accordion = createAccordion(reflect(() => createAccordionProps));
53
+ let mergedProps = $derived(mergeProps(accordion.getRootProps(), localProps));
54
+
55
+ setAccordionContext(accordion);
56
+ setPresenceStrategyPropsContext(() => presenceStrategyProps);
57
+ </script>
58
+
59
+ {#if asChild}
60
+ {@render asChild(mergedProps, accordion)}
61
+ {:else}
62
+ <div bind:this={ref} {...mergedProps}>
63
+ {@render children?.(accordion)}
64
+ </div>
65
+ {/if}
@@ -1,45 +1,45 @@
1
- <script lang="ts" module>
2
- import type {Assign, HtmlIngredientProps} from '../types.js';
3
- import type {
4
- CreateAlertProps,
5
- CreateAlertReturn,
6
- } from './create-alert.svelte.js';
7
-
8
- export interface AlertProps
9
- extends Assign<
10
- HtmlIngredientProps<'div', HTMLDivElement, CreateAlertReturn>,
11
- CreateAlertProps
12
- > {}
13
- </script>
14
-
15
- <script lang="ts">
16
- import {createSplitProps} from '../create-split-props.js';
17
- import {reflect} from '@zag-js/svelte';
18
- import {mergeProps} from '../merge-props.js';
19
- import {setAlertContext} from './alert-context.js';
20
- import {createAlert} from './create-alert.svelte.js';
21
-
22
- let {
23
- ref = $bindable(null),
24
- asChild,
25
- children,
26
- ...props
27
- }: AlertProps = $props();
28
-
29
- let [createAlertProps, localProps] = $derived(
30
- createSplitProps<CreateAlertProps>(['id'])(props),
31
- );
32
-
33
- let alert = createAlert(reflect(() => createAlertProps));
34
- let mergedProps = $derived(mergeProps(alert.getRootProps(), localProps));
35
-
36
- setAlertContext(alert);
37
- </script>
38
-
39
- {#if asChild}
40
- {@render asChild(mergedProps, alert)}
41
- {:else}
42
- <div bind:this={ref} {...mergedProps}>
43
- {@render children?.(alert)}
44
- </div>
45
- {/if}
1
+ <script lang="ts" module>
2
+ import type {Assign, HtmlIngredientProps} from '../types.js';
3
+ import type {
4
+ CreateAlertProps,
5
+ CreateAlertReturn,
6
+ } from './create-alert.svelte.js';
7
+
8
+ export interface AlertProps
9
+ extends Assign<
10
+ HtmlIngredientProps<'div', HTMLDivElement, CreateAlertReturn>,
11
+ CreateAlertProps
12
+ > {}
13
+ </script>
14
+
15
+ <script lang="ts">
16
+ import {createSplitProps} from '../create-split-props.js';
17
+ import {reflect} from '@zag-js/svelte';
18
+ import {mergeProps} from '../merge-props.js';
19
+ import {setAlertContext} from './alert-context.js';
20
+ import {createAlert} from './create-alert.svelte.js';
21
+
22
+ let {
23
+ ref = $bindable(null),
24
+ asChild,
25
+ children,
26
+ ...props
27
+ }: AlertProps = $props();
28
+
29
+ let [createAlertProps, localProps] = $derived(
30
+ createSplitProps<CreateAlertProps>(['id'])(props),
31
+ );
32
+
33
+ let alert = createAlert(reflect(() => createAlertProps));
34
+ let mergedProps = $derived(mergeProps(alert.getRootProps(), localProps));
35
+
36
+ setAlertContext(alert);
37
+ </script>
38
+
39
+ {#if asChild}
40
+ {@render asChild(mergedProps, alert)}
41
+ {:else}
42
+ <div bind:this={ref} {...mergedProps}>
43
+ {@render children?.(alert)}
44
+ </div>
45
+ {/if}
@@ -1,48 +1,48 @@
1
- <script lang="ts" module>
2
- import type {Snippet} from 'svelte';
3
- import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
4
- import type {
5
- CreateAlertDialogProps,
6
- CreateAlertDialogReturn,
7
- } from './create-alert-dialog.svelte.js';
8
-
9
- export interface AlertDialogProps
10
- extends CreateAlertDialogProps,
11
- PresenceStrategyProps {
12
- children?: Snippet<[CreateAlertDialogReturn]>;
13
- }
14
- </script>
15
-
16
- <script lang="ts">
17
- import {reflect} from '@zag-js/svelte';
18
- import {createSplitProps} from '../create-split-props.js';
19
- import {createPresence} from '../presence/create-presence.svelte.js';
20
- import {
21
- setPresenceContext,
22
- setPresenceStrategyPropsContext,
23
- } from '../presence/presence-context.svelte.js';
24
- import {setAlertDialogContext} from './alert-dialog-context.svelte.js';
25
- import {createAlertDialog} from './create-alert-dialog.svelte.js';
26
-
27
- let {children, ...props}: AlertDialogProps = $props();
28
-
29
- let [presenceStrategyProps, createDialogProps] = $derived(
30
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
31
- props,
32
- ),
33
- );
34
-
35
- let alertDialog = createAlertDialog(reflect(() => createDialogProps));
36
- let presence = createPresence(
37
- reflect(() => ({
38
- ...presenceStrategyProps,
39
- present: alertDialog.open,
40
- })),
41
- );
42
-
43
- setAlertDialogContext(alertDialog);
44
- setPresenceContext(presence);
45
- setPresenceStrategyPropsContext(() => presenceStrategyProps);
46
- </script>
47
-
48
- {@render children?.(alertDialog)}
1
+ <script lang="ts" module>
2
+ import type {Snippet} from 'svelte';
3
+ import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
4
+ import type {
5
+ CreateAlertDialogProps,
6
+ CreateAlertDialogReturn,
7
+ } from './create-alert-dialog.svelte.js';
8
+
9
+ export interface AlertDialogProps
10
+ extends CreateAlertDialogProps,
11
+ PresenceStrategyProps {
12
+ children?: Snippet<[CreateAlertDialogReturn]>;
13
+ }
14
+ </script>
15
+
16
+ <script lang="ts">
17
+ import {reflect} from '@zag-js/svelte';
18
+ import {createSplitProps} from '../create-split-props.js';
19
+ import {createPresence} from '../presence/create-presence.svelte.js';
20
+ import {
21
+ setPresenceContext,
22
+ setPresenceStrategyPropsContext,
23
+ } from '../presence/presence-context.svelte.js';
24
+ import {setAlertDialogContext} from './alert-dialog-context.svelte.js';
25
+ import {createAlertDialog} from './create-alert-dialog.svelte.js';
26
+
27
+ let {children, ...props}: AlertDialogProps = $props();
28
+
29
+ let [presenceStrategyProps, createDialogProps] = $derived(
30
+ createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
31
+ props,
32
+ ),
33
+ );
34
+
35
+ let alertDialog = createAlertDialog(reflect(() => createDialogProps));
36
+ let presence = createPresence(
37
+ reflect(() => ({
38
+ ...presenceStrategyProps,
39
+ present: alertDialog.open,
40
+ })),
41
+ );
42
+
43
+ setAlertDialogContext(alertDialog);
44
+ setPresenceContext(presence);
45
+ setPresenceStrategyPropsContext(() => presenceStrategyProps);
46
+ </script>
47
+
48
+ {@render children?.(alertDialog)}
@@ -1,58 +1,58 @@
1
- <script lang="ts" module>
2
- import type {Assign, HtmlIngredientProps} from '../types.js';
3
- import {
4
- type CreateAngleSliderProps,
5
- type CreateAngleSliderReturn,
6
- } from './create-angle-slider.svelte.js';
7
-
8
- export interface AngleSliderProps
9
- extends Assign<
10
- HtmlIngredientProps<'div', HTMLDivElement, CreateAngleSliderReturn>,
11
- CreateAngleSliderProps
12
- > {}
13
- </script>
14
-
15
- <script lang="ts">
16
- import {reflect} from '@zag-js/svelte';
17
- import {createSplitProps} from '../create-split-props.js';
18
- import {mergeProps} from '../merge-props.js';
19
- import {setAngleSliderContext} from './angle-slider-context.svelte.js';
20
- import {createAngleSlider} from './create-angle-slider.svelte.js';
21
-
22
- let {
23
- ref = $bindable(null),
24
- asChild,
25
- children,
26
- ...props
27
- }: AngleSliderProps = $props();
28
-
29
- let [createAngleSliderProps, localProps] = $derived(
30
- createSplitProps<CreateAngleSliderProps>([
31
- 'disabled',
32
- 'id',
33
- 'ids',
34
- 'invalid',
35
- 'name',
36
- 'onValueChange',
37
- 'onValueChangeEnd',
38
- 'readOnly',
39
- 'step',
40
- 'value',
41
- ])(props),
42
- );
43
-
44
- let angleSlider = createAngleSlider(reflect(() => createAngleSliderProps));
45
- let mergedProps = $derived(
46
- mergeProps(angleSlider.getRootProps(), localProps),
47
- );
48
-
49
- setAngleSliderContext(angleSlider);
50
- </script>
51
-
52
- {#if asChild}
53
- {@render asChild(mergedProps, angleSlider)}
54
- {:else}
55
- <div bind:this={ref} {...mergedProps}>
56
- {@render children?.(angleSlider)}
57
- </div>
58
- {/if}
1
+ <script lang="ts" module>
2
+ import type {Assign, HtmlIngredientProps} from '../types.js';
3
+ import {
4
+ type CreateAngleSliderProps,
5
+ type CreateAngleSliderReturn,
6
+ } from './create-angle-slider.svelte.js';
7
+
8
+ export interface AngleSliderProps
9
+ extends Assign<
10
+ HtmlIngredientProps<'div', HTMLDivElement, CreateAngleSliderReturn>,
11
+ CreateAngleSliderProps
12
+ > {}
13
+ </script>
14
+
15
+ <script lang="ts">
16
+ import {reflect} from '@zag-js/svelte';
17
+ import {createSplitProps} from '../create-split-props.js';
18
+ import {mergeProps} from '../merge-props.js';
19
+ import {setAngleSliderContext} from './angle-slider-context.svelte.js';
20
+ import {createAngleSlider} from './create-angle-slider.svelte.js';
21
+
22
+ let {
23
+ ref = $bindable(null),
24
+ asChild,
25
+ children,
26
+ ...props
27
+ }: AngleSliderProps = $props();
28
+
29
+ let [createAngleSliderProps, localProps] = $derived(
30
+ createSplitProps<CreateAngleSliderProps>([
31
+ 'disabled',
32
+ 'id',
33
+ 'ids',
34
+ 'invalid',
35
+ 'name',
36
+ 'onValueChange',
37
+ 'onValueChangeEnd',
38
+ 'readOnly',
39
+ 'step',
40
+ 'value',
41
+ ])(props),
42
+ );
43
+
44
+ let angleSlider = createAngleSlider(reflect(() => createAngleSliderProps));
45
+ let mergedProps = $derived(
46
+ mergeProps(angleSlider.getRootProps(), localProps),
47
+ );
48
+
49
+ setAngleSliderContext(angleSlider);
50
+ </script>
51
+
52
+ {#if asChild}
53
+ {@render asChild(mergedProps, angleSlider)}
54
+ {:else}
55
+ <div bind:this={ref} {...mergedProps}>
56
+ {@render children?.(angleSlider)}
57
+ </div>
58
+ {/if}