ui-ingredients 0.31.1 → 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.
- package/README.md +49 -49
- package/dist/accordion/accordion-item.svelte +64 -64
- package/dist/accordion/accordion-root.svelte +65 -65
- package/dist/alert/alert-root.svelte +45 -45
- package/dist/alert-dialog/alert-dialog-root.svelte +48 -48
- package/dist/angle-slider/angle-slider-root.svelte +58 -58
- package/dist/avatar/avatar-root.svelte +45 -45
- package/dist/carousel/carousel-root.svelte +64 -64
- package/dist/clipboard/clipboard-root.svelte +52 -52
- package/dist/collapsible/collapsible-root.svelte +73 -73
- package/dist/color-picker/color-picker-root.svelte +88 -88
- package/dist/combobox/combobox-root.svelte +102 -102
- package/dist/dialog/dialog-root.svelte +48 -48
- package/dist/drawer/drawer-root.svelte +48 -48
- package/dist/editable/editable-root.svelte +72 -72
- package/dist/field/field-root.svelte +62 -62
- package/dist/file-upload/file-upload-root.svelte +68 -68
- package/dist/floating-panel/floating-panel-root.svelte +47 -47
- package/dist/highlight/highlight.svelte +42 -42
- package/dist/hover-card/hover-card-root.svelte +51 -51
- package/dist/menu/menu-root.svelte +74 -74
- package/dist/merge-props.js +15 -17
- package/dist/number-input/number-input-root.svelte +74 -74
- package/dist/pagination/pagination-root.svelte +57 -57
- package/dist/pin-input/pin-input-root.svelte +67 -67
- package/dist/popover/popover-root.svelte +60 -60
- package/dist/presence/presence.svelte +43 -43
- package/dist/progress/progress-root.svelte +55 -55
- package/dist/qr-code/qr-code-root.svelte +52 -52
- package/dist/radio-group/radio-group-root.svelte +55 -55
- package/dist/rating-group/rating-group-root.svelte +62 -62
- package/dist/segment-group/segment-group-root.svelte +57 -57
- package/dist/select/select-root.svelte +88 -88
- package/dist/signature-pad/signature-pad-root.svelte +59 -59
- package/dist/slider/slider-root.svelte +68 -68
- package/dist/splitter/splitter-root.svelte +52 -52
- package/dist/steps/steps-root.svelte +64 -64
- package/dist/switch/switch-root.svelte +58 -58
- package/dist/tabs/tabs-root.svelte +58 -58
- package/dist/tags-input/tags-input-root.svelte +74 -74
- package/dist/time-picker/time-picker-root.svelte +81 -81
- package/dist/timer/timer-root.svelte +55 -55
- package/dist/toast/toast-actor.svelte +19 -19
- package/dist/toggle/toggle-root.svelte +49 -49
- package/dist/toggle-group/toggle-group-root.svelte +57 -57
- package/dist/tooltip/tooltip-root.svelte +44 -44
- package/dist/tour/tour-root.svelte +46 -46
- package/dist/tree-view/tree-view-branch.svelte +63 -63
- package/dist/tree-view/tree-view-root.svelte +68 -68
- 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}
|