ui-ingredients 0.20.0 → 0.21.1

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 (62) hide show
  1. package/dist/accordion/accordion-item-content.svelte +55 -55
  2. package/dist/accordion/accordion-root.svelte +66 -66
  3. package/dist/alert-dialog/alert-dialog-backdrop.svelte +49 -49
  4. package/dist/alert-dialog/alert-dialog-root.svelte +48 -48
  5. package/dist/avatar/avatar-root.svelte +46 -46
  6. package/dist/carousel/carousel-root.svelte +56 -56
  7. package/dist/checkbox/checkbox-root.svelte +59 -59
  8. package/dist/clipboard/clipboard-root.svelte +52 -52
  9. package/dist/collapsible/collapsible-root.svelte +75 -75
  10. package/dist/color-picker/color-picker-root.svelte +87 -87
  11. package/dist/combobox/combobox-root.svelte +101 -101
  12. package/dist/combobox/combobox-trigger.svelte +41 -41
  13. package/dist/date-picker/date-picker-root.svelte +89 -89
  14. package/dist/dialog/dialog-backdrop.svelte +45 -45
  15. package/dist/dialog/dialog-root.svelte +48 -48
  16. package/dist/drawer/drawer-backdrop.svelte +45 -45
  17. package/dist/drawer/drawer-root.svelte +48 -48
  18. package/dist/editable/editable-root.svelte +74 -74
  19. package/dist/field/field-error-text.svelte +50 -50
  20. package/dist/field/field-root.svelte +63 -63
  21. package/dist/file-upload/file-upload-root.svelte +66 -66
  22. package/dist/floating-panel/floating-panel-root.svelte +47 -47
  23. package/dist/hover-card/hover-card-root.svelte +52 -52
  24. package/dist/menu/menu-root.svelte +74 -74
  25. package/dist/number-input/number-input-root.svelte +74 -74
  26. package/dist/pagination/pagination-root.svelte +57 -57
  27. package/dist/pin-input/pin-input-root.svelte +68 -68
  28. package/dist/popover/popover-root.svelte +60 -60
  29. package/dist/presence/presence.svelte +48 -48
  30. package/dist/progress/progress-root.svelte +54 -54
  31. package/dist/qr-code/qr-code-root.svelte +48 -48
  32. package/dist/radio-group/radio-group-root.svelte +56 -56
  33. package/dist/rating-group/rating-group-root.svelte +63 -63
  34. package/dist/segment-group/segment-group-root.svelte +58 -58
  35. package/dist/select/select-root.svelte +88 -88
  36. package/dist/signature-pad/signature-pad-root.svelte +59 -59
  37. package/dist/slider/slider-root.svelte +69 -69
  38. package/dist/splitter/splitter-root.svelte +53 -53
  39. package/dist/steps/steps-completed-content.svelte +51 -37
  40. package/dist/steps/steps-completed-content.svelte.d.ts +2 -1
  41. package/dist/steps/steps-content.svelte +55 -32
  42. package/dist/steps/steps-content.svelte.d.ts +2 -1
  43. package/dist/steps/steps-root.svelte +65 -55
  44. package/dist/steps/steps-root.svelte.d.ts +2 -1
  45. package/dist/switch/switch-root.svelte +59 -59
  46. package/dist/tabs/tabs-root.svelte +57 -57
  47. package/dist/tags-input/tags-input-root.svelte +74 -74
  48. package/dist/time-picker/time-picker-root.svelte +81 -81
  49. package/dist/timer/timer-root.svelte +55 -55
  50. package/dist/toast/create-toaster.svelte.d.ts +1 -1
  51. package/dist/toast/toast-actor.svelte +19 -19
  52. package/dist/toast/toast-actor.svelte.d.ts +3 -3
  53. package/dist/toast/toaster.svelte +19 -21
  54. package/dist/toast/toaster.svelte.d.ts +1 -1
  55. package/dist/toggle/toggle-root.svelte +50 -50
  56. package/dist/toggle-group/toggle-group-root.svelte +58 -58
  57. package/dist/tooltip/tooltip-root.svelte +44 -44
  58. package/dist/tour/tour-backdrop.svelte +44 -44
  59. package/dist/tour/tour-root.svelte +47 -47
  60. package/dist/tree-view/tree-view-branch-content.svelte +55 -55
  61. package/dist/tree-view/tree-view-root.svelte +68 -68
  62. package/package.json +5 -5
@@ -1,101 +1,101 @@
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
- CreateComboboxProps,
6
- CreateComboboxReturn,
7
- } from './create-combobox.svelte.js';
8
-
9
- export interface ComboboxProps
10
- extends Assign<
11
- HtmlIngredientProps<'div', HTMLDivElement, CreateComboboxReturn>,
12
- CreateComboboxProps
13
- >,
14
- PresenceStrategyProps {}
15
- </script>
16
-
17
- <script lang="ts">
18
- import {mergeProps} from '../merge-props.js';
19
- import {createPresence} from '../presence/create-presence.svelte.js';
20
- import {setPresenceContext} from '../presence/presence-context.svelte.js';
21
- import {reflect} from '@zag-js/svelte';
22
- import {createSplitProps} from '@zag-js/utils';
23
- import {setComboboxContext} from './combobox-context.svelte.js';
24
- import {createCombobox} from './create-combobox.svelte.js';
25
-
26
- let {
27
- ref = $bindable(null),
28
- asChild,
29
- children,
30
- ...props
31
- }: ComboboxProps = $props();
32
-
33
- let [presenceStrategyProps, rest] = $derived(
34
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
35
- props,
36
- ),
37
- );
38
-
39
- let [createComboboxProps, localProps] = $derived(
40
- createSplitProps<CreateComboboxProps>([
41
- 'id',
42
- 'ids',
43
- 'name',
44
- 'form',
45
- 'open',
46
- 'openControlled',
47
- 'collection',
48
- 'value',
49
- 'invalid',
50
- 'disabled',
51
- 'multiple',
52
- 'readOnly',
53
- 'required',
54
- 'autoFocus',
55
- 'composite',
56
- 'loopFocus',
57
- 'inputValue',
58
- 'placeholder',
59
- 'positioning',
60
- 'translations',
61
- 'disableLayer',
62
- 'closeOnSelect',
63
- 'inputBehavior',
64
- 'openOnChange',
65
- 'openOnClick',
66
- 'openOnKeyPress',
67
- 'allowCustomValue',
68
- 'highlightedValue',
69
- 'selectionBehavior',
70
- 'onOpenChange',
71
- 'onValueChange',
72
- 'onFocusOutside',
73
- 'onHighlightChange',
74
- 'onInteractOutside',
75
- 'onInputValueChange',
76
- 'onPointerDownOutside',
77
- 'scrollToIndexFn',
78
- ])(rest),
79
- );
80
-
81
- let combobox = createCombobox(reflect(() => createComboboxProps));
82
- let presence = createPresence(
83
- reflect(() => ({
84
- ...presenceStrategyProps,
85
- present: combobox.open,
86
- })),
87
- );
88
-
89
- let mergedProps = $derived(mergeProps(combobox.getRootProps(), localProps));
90
-
91
- setComboboxContext(combobox);
92
- setPresenceContext(presence);
93
- </script>
94
-
95
- {#if asChild}
96
- {@render asChild(mergedProps, combobox)}
97
- {:else}
98
- <div bind:this={ref} {...mergedProps}>
99
- {@render children?.(combobox)}
100
- </div>
101
- {/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
+ CreateComboboxProps,
6
+ CreateComboboxReturn,
7
+ } from './create-combobox.svelte.js';
8
+
9
+ export interface ComboboxProps
10
+ extends Assign<
11
+ HtmlIngredientProps<'div', HTMLDivElement, CreateComboboxReturn>,
12
+ CreateComboboxProps
13
+ >,
14
+ PresenceStrategyProps {}
15
+ </script>
16
+
17
+ <script lang="ts">
18
+ import {mergeProps} from '../merge-props.js';
19
+ import {createPresence} from '../presence/create-presence.svelte.js';
20
+ import {setPresenceContext} from '../presence/presence-context.svelte.js';
21
+ import {reflect} from '@zag-js/svelte';
22
+ import {createSplitProps} from '@zag-js/utils';
23
+ import {setComboboxContext} from './combobox-context.svelte.js';
24
+ import {createCombobox} from './create-combobox.svelte.js';
25
+
26
+ let {
27
+ ref = $bindable(null),
28
+ asChild,
29
+ children,
30
+ ...props
31
+ }: ComboboxProps = $props();
32
+
33
+ let [presenceStrategyProps, rest] = $derived(
34
+ createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
35
+ props,
36
+ ),
37
+ );
38
+
39
+ let [createComboboxProps, localProps] = $derived(
40
+ createSplitProps<CreateComboboxProps>([
41
+ 'id',
42
+ 'ids',
43
+ 'name',
44
+ 'form',
45
+ 'open',
46
+ 'openControlled',
47
+ 'collection',
48
+ 'value',
49
+ 'invalid',
50
+ 'disabled',
51
+ 'multiple',
52
+ 'readOnly',
53
+ 'required',
54
+ 'autoFocus',
55
+ 'composite',
56
+ 'loopFocus',
57
+ 'inputValue',
58
+ 'placeholder',
59
+ 'positioning',
60
+ 'translations',
61
+ 'disableLayer',
62
+ 'closeOnSelect',
63
+ 'inputBehavior',
64
+ 'openOnChange',
65
+ 'openOnClick',
66
+ 'openOnKeyPress',
67
+ 'allowCustomValue',
68
+ 'highlightedValue',
69
+ 'selectionBehavior',
70
+ 'onOpenChange',
71
+ 'onValueChange',
72
+ 'onFocusOutside',
73
+ 'onHighlightChange',
74
+ 'onInteractOutside',
75
+ 'onInputValueChange',
76
+ 'onPointerDownOutside',
77
+ 'scrollToIndexFn',
78
+ ])(rest),
79
+ );
80
+
81
+ let combobox = createCombobox(reflect(() => createComboboxProps));
82
+ let presence = createPresence(
83
+ reflect(() => ({
84
+ ...presenceStrategyProps,
85
+ present: combobox.open,
86
+ })),
87
+ );
88
+
89
+ let mergedProps = $derived(mergeProps(combobox.getRootProps(), localProps));
90
+
91
+ setComboboxContext(combobox);
92
+ setPresenceContext(presence);
93
+ </script>
94
+
95
+ {#if asChild}
96
+ {@render asChild(mergedProps, combobox)}
97
+ {:else}
98
+ <div bind:this={ref} {...mergedProps}>
99
+ {@render children?.(combobox)}
100
+ </div>
101
+ {/if}
@@ -1,41 +1,41 @@
1
- <script lang="ts" module>
2
- import {mergeProps} from '../merge-props.js';
3
- import type {Assign, HtmlIngredientProps} from '../types.js';
4
-
5
- export interface ComboboxTriggerProps
6
- extends Assign<
7
- HtmlIngredientProps<'button', HTMLButtonElement>,
8
- TriggerProps
9
- > {}
10
- </script>
11
-
12
- <script lang="ts">
13
- import type {TriggerProps} from '@zag-js/combobox';
14
- import {createSplitProps} from '@zag-js/utils';
15
- import {getComboboxContext} from './combobox-context.svelte.js';
16
-
17
- let {
18
- ref = $bindable(null),
19
- asChild,
20
- children,
21
- ...props
22
- }: ComboboxTriggerProps = $props();
23
-
24
- let [triggerProps, localProps] = $derived(
25
- createSplitProps<TriggerProps>(['focusable'])(props),
26
- );
27
-
28
- let combobox = getComboboxContext();
29
-
30
- let mergedProps = $derived(
31
- mergeProps(combobox.getTriggerProps(triggerProps), localProps),
32
- );
33
- </script>
34
-
35
- {#if asChild}
36
- {@render asChild(mergedProps)}
37
- {:else}
38
- <button bind:this={ref} {...mergedProps}>
39
- {@render children?.()}
40
- </button>
41
- {/if}
1
+ <script lang="ts" module>
2
+ import {mergeProps} from '../merge-props.js';
3
+ import type {Assign, HtmlIngredientProps} from '../types.js';
4
+
5
+ export interface ComboboxTriggerProps
6
+ extends Assign<
7
+ HtmlIngredientProps<'button', HTMLButtonElement>,
8
+ TriggerProps
9
+ > {}
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ import type {TriggerProps} from '@zag-js/combobox';
14
+ import {createSplitProps} from '@zag-js/utils';
15
+ import {getComboboxContext} from './combobox-context.svelte.js';
16
+
17
+ let {
18
+ ref = $bindable(null),
19
+ asChild,
20
+ children,
21
+ ...props
22
+ }: ComboboxTriggerProps = $props();
23
+
24
+ let [triggerProps, localProps] = $derived(
25
+ createSplitProps<TriggerProps>(['focusable'])(props),
26
+ );
27
+
28
+ let combobox = getComboboxContext();
29
+
30
+ let mergedProps = $derived(
31
+ mergeProps(combobox.getTriggerProps(triggerProps), localProps),
32
+ );
33
+ </script>
34
+
35
+ {#if asChild}
36
+ {@render asChild(mergedProps)}
37
+ {:else}
38
+ <button bind:this={ref} {...mergedProps}>
39
+ {@render children?.()}
40
+ </button>
41
+ {/if}
@@ -1,89 +1,89 @@
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
- CreateDatePickerProps,
6
- CreateDatePickerReturn,
7
- } from './create-date-picker.svelte.js';
8
-
9
- export interface DatePickerProps
10
- extends Assign<
11
- HtmlIngredientProps<'div', HTMLDivElement, CreateDatePickerReturn>,
12
- CreateDatePickerProps
13
- >,
14
- PresenceStrategyProps {}
15
- </script>
16
-
17
- <script lang="ts">
18
- import {mergeProps} from '../merge-props.js';
19
- import {createPresence} from '../presence/create-presence.svelte.js';
20
- import {setPresenceContext} from '../presence/presence-context.svelte.js';
21
- import {reflect} from '@zag-js/svelte';
22
- import {createSplitProps} from '@zag-js/utils';
23
- import {createDatePicker} from './create-date-picker.svelte.js';
24
- import {setDatePickerContext} from './date-picker-context.svelte.js';
25
-
26
- let {
27
- ref = $bindable(null),
28
- asChild,
29
- children,
30
- ...props
31
- }: DatePickerProps = $props();
32
-
33
- let [presenceStrategyProps, rest] = $derived(
34
- createSplitProps<PresenceStrategyProps>([])(props),
35
- );
36
-
37
- let [createDatePickerProps, localProps] = $derived(
38
- createSplitProps<CreateDatePickerProps>([
39
- 'id',
40
- 'ids',
41
- 'min',
42
- 'max',
43
- 'name',
44
- 'open',
45
- 'openControlled',
46
- 'view',
47
- 'value',
48
- 'format',
49
- 'locale',
50
- 'disabled',
51
- 'readOnly',
52
- 'timeZone',
53
- 'fixedWeeks',
54
- 'startOfWeek',
55
- 'positioning',
56
- 'numOfMonths',
57
- 'translations',
58
- 'focusedValue',
59
- 'closeOnSelect',
60
- 'selectionMode',
61
- 'onViewChange',
62
- 'onOpenChange',
63
- 'onValueChange',
64
- 'onFocusChange',
65
- 'isDateUnavailable',
66
- ])(rest),
67
- );
68
-
69
- let datePicker = createDatePicker(reflect(() => createDatePickerProps));
70
- let presence = createPresence(
71
- reflect(() => ({
72
- ...presenceStrategyProps,
73
- present: datePicker.open,
74
- })),
75
- );
76
-
77
- let mergedProps = $derived(mergeProps(datePicker.getRootProps(), localProps));
78
-
79
- setDatePickerContext(datePicker);
80
- setPresenceContext(presence);
81
- </script>
82
-
83
- {#if asChild}
84
- {@render asChild(mergedProps, datePicker)}
85
- {:else}
86
- <div bind:this={ref} {...mergedProps}>
87
- {@render children?.(datePicker)}
88
- </div>
89
- {/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
+ CreateDatePickerProps,
6
+ CreateDatePickerReturn,
7
+ } from './create-date-picker.svelte.js';
8
+
9
+ export interface DatePickerProps
10
+ extends Assign<
11
+ HtmlIngredientProps<'div', HTMLDivElement, CreateDatePickerReturn>,
12
+ CreateDatePickerProps
13
+ >,
14
+ PresenceStrategyProps {}
15
+ </script>
16
+
17
+ <script lang="ts">
18
+ import {mergeProps} from '../merge-props.js';
19
+ import {createPresence} from '../presence/create-presence.svelte.js';
20
+ import {setPresenceContext} from '../presence/presence-context.svelte.js';
21
+ import {reflect} from '@zag-js/svelte';
22
+ import {createSplitProps} from '@zag-js/utils';
23
+ import {createDatePicker} from './create-date-picker.svelte.js';
24
+ import {setDatePickerContext} from './date-picker-context.svelte.js';
25
+
26
+ let {
27
+ ref = $bindable(null),
28
+ asChild,
29
+ children,
30
+ ...props
31
+ }: DatePickerProps = $props();
32
+
33
+ let [presenceStrategyProps, rest] = $derived(
34
+ createSplitProps<PresenceStrategyProps>([])(props),
35
+ );
36
+
37
+ let [createDatePickerProps, localProps] = $derived(
38
+ createSplitProps<CreateDatePickerProps>([
39
+ 'id',
40
+ 'ids',
41
+ 'min',
42
+ 'max',
43
+ 'name',
44
+ 'open',
45
+ 'openControlled',
46
+ 'view',
47
+ 'value',
48
+ 'format',
49
+ 'locale',
50
+ 'disabled',
51
+ 'readOnly',
52
+ 'timeZone',
53
+ 'fixedWeeks',
54
+ 'startOfWeek',
55
+ 'positioning',
56
+ 'numOfMonths',
57
+ 'translations',
58
+ 'focusedValue',
59
+ 'closeOnSelect',
60
+ 'selectionMode',
61
+ 'onViewChange',
62
+ 'onOpenChange',
63
+ 'onValueChange',
64
+ 'onFocusChange',
65
+ 'isDateUnavailable',
66
+ ])(rest),
67
+ );
68
+
69
+ let datePicker = createDatePicker(reflect(() => createDatePickerProps));
70
+ let presence = createPresence(
71
+ reflect(() => ({
72
+ ...presenceStrategyProps,
73
+ present: datePicker.open,
74
+ })),
75
+ );
76
+
77
+ let mergedProps = $derived(mergeProps(datePicker.getRootProps(), localProps));
78
+
79
+ setDatePickerContext(datePicker);
80
+ setPresenceContext(presence);
81
+ </script>
82
+
83
+ {#if asChild}
84
+ {@render asChild(mergedProps, datePicker)}
85
+ {:else}
86
+ <div bind:this={ref} {...mergedProps}>
87
+ {@render children?.(datePicker)}
88
+ </div>
89
+ {/if}
@@ -1,45 +1,45 @@
1
- <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
3
- import type {Action} from 'svelte/action';
4
-
5
- export interface DialogBackdropProps
6
- extends HtmlIngredientProps<'div', HTMLDivElement, never, Action> {}
7
- </script>
8
-
9
- <script lang="ts">
10
- import {mergeProps} from '../merge-props.js';
11
- import {createPresence} from '../presence/create-presence.svelte.js';
12
- import {getPresenceStrategyPropsContext} from '../presence/presence-context.svelte.js';
13
- import {reflect} from '@zag-js/svelte';
14
- import {getDialogContext} from './dialog-context.svelte.js';
15
-
16
- let {
17
- ref = $bindable(null),
18
- asChild,
19
- children,
20
- ...props
21
- }: DialogBackdropProps = $props();
22
-
23
- let dialog = getDialogContext();
24
- let presenceStrategyProps = getPresenceStrategyPropsContext();
25
- let presence = createPresence(
26
- reflect(() => ({
27
- ...presenceStrategyProps,
28
- present: dialog.open,
29
- })),
30
- );
31
-
32
- let mergedProps = $derived(
33
- mergeProps(dialog.getBackdropProps(), presence.getPresenceProps(), props),
34
- );
35
- </script>
36
-
37
- {#if presence.mounted}
38
- {#if asChild}
39
- {@render asChild(presence.setReference, mergedProps)}
40
- {:else}
41
- <div bind:this={ref} use:presence.setReference {...mergedProps}>
42
- {@render children?.()}
43
- </div>
44
- {/if}
45
- {/if}
1
+ <script lang="ts" module>
2
+ import type {HtmlIngredientProps} from '../types.js';
3
+ import type {Action} from 'svelte/action';
4
+
5
+ export interface DialogBackdropProps
6
+ extends HtmlIngredientProps<'div', HTMLDivElement, never, Action> {}
7
+ </script>
8
+
9
+ <script lang="ts">
10
+ import {mergeProps} from '../merge-props.js';
11
+ import {createPresence} from '../presence/create-presence.svelte.js';
12
+ import {getPresenceStrategyPropsContext} from '../presence/presence-context.svelte.js';
13
+ import {reflect} from '@zag-js/svelte';
14
+ import {getDialogContext} from './dialog-context.svelte.js';
15
+
16
+ let {
17
+ ref = $bindable(null),
18
+ asChild,
19
+ children,
20
+ ...props
21
+ }: DialogBackdropProps = $props();
22
+
23
+ let dialog = getDialogContext();
24
+ let presenceStrategyProps = getPresenceStrategyPropsContext();
25
+ let presence = createPresence(
26
+ reflect(() => ({
27
+ ...presenceStrategyProps,
28
+ present: dialog.open,
29
+ })),
30
+ );
31
+
32
+ let mergedProps = $derived(
33
+ mergeProps(dialog.getBackdropProps(), presence.getPresenceProps(), props),
34
+ );
35
+ </script>
36
+
37
+ {#if presence.mounted}
38
+ {#if asChild}
39
+ {@render asChild(presence.setReference, mergedProps)}
40
+ {:else}
41
+ <div bind:this={ref} use:presence.setReference {...mergedProps}>
42
+ {@render children?.()}
43
+ </div>
44
+ {/if}
45
+ {/if}
@@ -1,48 +1,48 @@
1
- <script lang="ts" module>
2
- import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
3
- import type {Snippet} from 'svelte';
4
- import type {
5
- CreateDialogProps,
6
- CreateDialogReturn,
7
- } from './create-dialog.svelte.js';
8
-
9
- export interface DialogProps
10
- extends CreateDialogProps,
11
- PresenceStrategyProps {
12
- children?: Snippet<[CreateDialogReturn]>;
13
- }
14
- </script>
15
-
16
- <script lang="ts">
17
- import {createPresence} from '../presence/create-presence.svelte.js';
18
- import {
19
- setPresenceContext,
20
- setPresenceStrategyPropsContext,
21
- } from '../presence/presence-context.svelte.js';
22
- import {reflect} from '@zag-js/svelte';
23
- import {createSplitProps} from '@zag-js/utils';
24
- import {createDialog} from './create-dialog.svelte.js';
25
- import {setDialogContext} from './dialog-context.svelte.js';
26
-
27
- let {children, ...props}: DialogProps = $props();
28
-
29
- let [presenceStrategyProps, createDialogProps] = $derived(
30
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
31
- props,
32
- ),
33
- );
34
-
35
- let dialog = createDialog(reflect(() => createDialogProps));
36
- let presence = createPresence(
37
- reflect(() => ({
38
- ...presenceStrategyProps,
39
- present: dialog.open,
40
- })),
41
- );
42
-
43
- setDialogContext(dialog);
44
- setPresenceContext(presence);
45
- setPresenceStrategyPropsContext(() => presenceStrategyProps);
46
- </script>
47
-
48
- {@render children?.(dialog)}
1
+ <script lang="ts" module>
2
+ import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
3
+ import type {Snippet} from 'svelte';
4
+ import type {
5
+ CreateDialogProps,
6
+ CreateDialogReturn,
7
+ } from './create-dialog.svelte.js';
8
+
9
+ export interface DialogProps
10
+ extends CreateDialogProps,
11
+ PresenceStrategyProps {
12
+ children?: Snippet<[CreateDialogReturn]>;
13
+ }
14
+ </script>
15
+
16
+ <script lang="ts">
17
+ import {createPresence} from '../presence/create-presence.svelte.js';
18
+ import {
19
+ setPresenceContext,
20
+ setPresenceStrategyPropsContext,
21
+ } from '../presence/presence-context.svelte.js';
22
+ import {reflect} from '@zag-js/svelte';
23
+ import {createSplitProps} from '@zag-js/utils';
24
+ import {createDialog} from './create-dialog.svelte.js';
25
+ import {setDialogContext} from './dialog-context.svelte.js';
26
+
27
+ let {children, ...props}: DialogProps = $props();
28
+
29
+ let [presenceStrategyProps, createDialogProps] = $derived(
30
+ createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
31
+ props,
32
+ ),
33
+ );
34
+
35
+ let dialog = createDialog(reflect(() => createDialogProps));
36
+ let presence = createPresence(
37
+ reflect(() => ({
38
+ ...presenceStrategyProps,
39
+ present: dialog.open,
40
+ })),
41
+ );
42
+
43
+ setDialogContext(dialog);
44
+ setPresenceContext(presence);
45
+ setPresenceStrategyPropsContext(() => presenceStrategyProps);
46
+ </script>
47
+
48
+ {@render children?.(dialog)}