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
@@ -1,68 +1,68 @@
1
- <script lang="ts" module>
2
- import type {Assign, HtmlIngredientProps} from '../types.js';
3
- import type {
4
- CreateFileUploadProps,
5
- CreateFileUploadReturn,
6
- } from './create-file-upload.svelte.js';
7
-
8
- export interface FileUploadProps
9
- extends Assign<
10
- HtmlIngredientProps<'div', HTMLDivElement, CreateFileUploadReturn>,
11
- CreateFileUploadProps
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 {createFileUpload} from './create-file-upload.svelte.js';
20
- import {setFileUploadContext} from './file-upload-context.svelte.js';
21
-
22
- let {
23
- ref = $bindable(null),
24
- asChild,
25
- children,
26
- ...props
27
- }: FileUploadProps = $props();
28
-
29
- let [createFileUploadProps, localProps] = $derived(
30
- createSplitProps<CreateFileUploadProps>([
31
- 'accept',
32
- 'allowDrop',
33
- 'capture',
34
- 'directory',
35
- 'disabled',
36
- 'id',
37
- 'ids',
38
- 'invalid',
39
- 'locale',
40
- 'maxFileSize',
41
- 'maxFiles',
42
- 'minFileSize',
43
- 'minFileSize',
44
- 'name',
45
- 'onFileAccept',
46
- 'onFileChange',
47
- 'onFileReject',
48
- 'preventDocumentDrop',
49
- 'required',
50
- 'translations',
51
- 'validate',
52
- ])(props),
53
- );
54
-
55
- let fileUpload = createFileUpload(reflect(() => createFileUploadProps));
56
-
57
- let mergedProps = $derived(mergeProps(fileUpload.getRootProps(), localProps));
58
-
59
- setFileUploadContext(fileUpload);
60
- </script>
61
-
62
- {#if asChild}
63
- {@render asChild(mergedProps, fileUpload)}
64
- {:else}
65
- <div bind:this={ref} {...mergedProps}>
66
- {@render children?.(fileUpload)}
67
- </div>
68
- {/if}
1
+ <script lang="ts" module>
2
+ import type {Assign, HtmlIngredientProps} from '../types.js';
3
+ import type {
4
+ CreateFileUploadProps,
5
+ CreateFileUploadReturn,
6
+ } from './create-file-upload.svelte.js';
7
+
8
+ export interface FileUploadProps
9
+ extends Assign<
10
+ HtmlIngredientProps<'div', HTMLDivElement, CreateFileUploadReturn>,
11
+ CreateFileUploadProps
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 {createFileUpload} from './create-file-upload.svelte.js';
20
+ import {setFileUploadContext} from './file-upload-context.svelte.js';
21
+
22
+ let {
23
+ ref = $bindable(null),
24
+ asChild,
25
+ children,
26
+ ...props
27
+ }: FileUploadProps = $props();
28
+
29
+ let [createFileUploadProps, localProps] = $derived(
30
+ createSplitProps<CreateFileUploadProps>([
31
+ 'accept',
32
+ 'allowDrop',
33
+ 'capture',
34
+ 'directory',
35
+ 'disabled',
36
+ 'id',
37
+ 'ids',
38
+ 'invalid',
39
+ 'locale',
40
+ 'maxFileSize',
41
+ 'maxFiles',
42
+ 'minFileSize',
43
+ 'minFileSize',
44
+ 'name',
45
+ 'onFileAccept',
46
+ 'onFileChange',
47
+ 'onFileReject',
48
+ 'preventDocumentDrop',
49
+ 'required',
50
+ 'translations',
51
+ 'validate',
52
+ ])(props),
53
+ );
54
+
55
+ let fileUpload = createFileUpload(reflect(() => createFileUploadProps));
56
+
57
+ let mergedProps = $derived(mergeProps(fileUpload.getRootProps(), localProps));
58
+
59
+ setFileUploadContext(fileUpload);
60
+ </script>
61
+
62
+ {#if asChild}
63
+ {@render asChild(mergedProps, fileUpload)}
64
+ {:else}
65
+ <div bind:this={ref} {...mergedProps}>
66
+ {@render children?.(fileUpload)}
67
+ </div>
68
+ {/if}
@@ -1,47 +1,47 @@
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
- CreateFloatingPanelProps,
6
- CreateFloatingPanelReturn,
7
- } from './create-floating-panel.svelte.js';
8
-
9
- export interface FloatingPanelProps
10
- extends CreateFloatingPanelProps,
11
- PresenceStrategyProps {
12
- children?: Snippet<[CreateFloatingPanelReturn]>;
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 {setPresenceContext} from '../presence/presence-context.svelte.js';
21
- import {createFloatingPanel} from './create-floating-panel.svelte.js';
22
- import {setFloatingPanelContext} from './floating-panel-context.svelte.js';
23
-
24
- let {children, ...props}: FloatingPanelProps = $props();
25
-
26
- let [presenceStrategyProps, createFloatingPanelProps] = $derived(
27
- createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
28
- props,
29
- ),
30
- );
31
-
32
- let floatingPanel = createFloatingPanel(
33
- reflect(() => createFloatingPanelProps),
34
- );
35
-
36
- let presence = createPresence(
37
- reflect(() => ({
38
- ...presenceStrategyProps,
39
- present: floatingPanel.open,
40
- })),
41
- );
42
-
43
- setFloatingPanelContext(floatingPanel);
44
- setPresenceContext(presence);
45
- </script>
46
-
47
- {@render children?.(floatingPanel)}
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
+ CreateFloatingPanelProps,
6
+ CreateFloatingPanelReturn,
7
+ } from './create-floating-panel.svelte.js';
8
+
9
+ export interface FloatingPanelProps
10
+ extends CreateFloatingPanelProps,
11
+ PresenceStrategyProps {
12
+ children?: Snippet<[CreateFloatingPanelReturn]>;
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 {setPresenceContext} from '../presence/presence-context.svelte.js';
21
+ import {createFloatingPanel} from './create-floating-panel.svelte.js';
22
+ import {setFloatingPanelContext} from './floating-panel-context.svelte.js';
23
+
24
+ let {children, ...props}: FloatingPanelProps = $props();
25
+
26
+ let [presenceStrategyProps, createFloatingPanelProps] = $derived(
27
+ createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
28
+ props,
29
+ ),
30
+ );
31
+
32
+ let floatingPanel = createFloatingPanel(
33
+ reflect(() => createFloatingPanelProps),
34
+ );
35
+
36
+ let presence = createPresence(
37
+ reflect(() => ({
38
+ ...presenceStrategyProps,
39
+ present: floatingPanel.open,
40
+ })),
41
+ );
42
+
43
+ setFloatingPanelContext(floatingPanel);
44
+ setPresenceContext(presence);
45
+ </script>
46
+
47
+ {@render children?.(floatingPanel)}
@@ -1,42 +1,42 @@
1
- <script lang="ts" module>
2
- import type {HighlightWordProps} from '@zag-js/highlight-word';
3
- import type {Assign, HtmlIngredientProps} from '../types.js';
4
-
5
- export interface HighlightProps
6
- extends Assign<
7
- Omit<HtmlIngredientProps<'div', HTMLDivElement>, 'children'>,
8
- HighlightWordProps
9
- > {}
10
- </script>
11
-
12
- <script lang="ts">
13
- import {highlightWord} from '@zag-js/highlight-word';
14
- import {createSplitProps} from '../create-split-props.js';
15
-
16
- let {ref = $bindable(null), asChild, ...props}: HighlightProps = $props();
17
-
18
- let [highlightWordProps, localProps] = $derived(
19
- createSplitProps<HighlightWordProps>([
20
- 'ignoreCase',
21
- 'matchAll',
22
- 'query',
23
- 'text',
24
- ])(props),
25
- );
26
-
27
- let chunks = $derived(highlightWord(highlightWordProps));
28
- </script>
29
-
30
- {#if asChild}
31
- {@render asChild(localProps)}
32
- {:else}
33
- <div bind:this={ref} data-scope="highlight" data-part="root" {...localProps}>
34
- {#each chunks as chunk}
35
- {#if chunk.match}
36
- <mark>{chunk.text}</mark>
37
- {:else}
38
- {chunk.text}
39
- {/if}
40
- {/each}
41
- </div>
42
- {/if}
1
+ <script lang="ts" module>
2
+ import type {HighlightWordProps} from '@zag-js/highlight-word';
3
+ import type {Assign, HtmlIngredientProps} from '../types.js';
4
+
5
+ export interface HighlightProps
6
+ extends Assign<
7
+ Omit<HtmlIngredientProps<'div', HTMLDivElement>, 'children'>,
8
+ HighlightWordProps
9
+ > {}
10
+ </script>
11
+
12
+ <script lang="ts">
13
+ import {highlightWord} from '@zag-js/highlight-word';
14
+ import {createSplitProps} from '../create-split-props.js';
15
+
16
+ let {ref = $bindable(null), asChild, ...props}: HighlightProps = $props();
17
+
18
+ let [highlightWordProps, localProps] = $derived(
19
+ createSplitProps<HighlightWordProps>([
20
+ 'ignoreCase',
21
+ 'matchAll',
22
+ 'query',
23
+ 'text',
24
+ ])(props),
25
+ );
26
+
27
+ let chunks = $derived(highlightWord(highlightWordProps));
28
+ </script>
29
+
30
+ {#if asChild}
31
+ {@render asChild(localProps)}
32
+ {:else}
33
+ <div bind:this={ref} data-scope="highlight" data-part="root" {...localProps}>
34
+ {#each chunks as chunk}
35
+ {#if chunk.match}
36
+ <mark>{chunk.text}</mark>
37
+ {:else}
38
+ {chunk.text}
39
+ {/if}
40
+ {/each}
41
+ </div>
42
+ {/if}
@@ -1,51 +1,51 @@
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
- CreateHoverCardProps,
6
- CreateHoverCardReturn,
7
- } from './create-hover-card.svelte.js';
8
-
9
- export interface HoverCardProps
10
- extends CreateHoverCardProps,
11
- PresenceStrategyProps {
12
- children?: Snippet<[CreateHoverCardReturn]>;
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 {setPresenceContext} from '../presence/presence-context.svelte.js';
21
- import {createHoverCard} from './create-hover-card.svelte.js';
22
- import {setHoverCardContext} from './hover-card-context.svelte.js';
23
-
24
- let {children, ...props}: HoverCardProps = $props();
25
-
26
- let [createHoverCardProps, presenceStrategyProps] = $derived(
27
- createSplitProps<CreateHoverCardProps>([
28
- 'closeDelay',
29
- 'id',
30
- 'ids',
31
- 'onOpenChange',
32
- 'open',
33
- 'openControlled',
34
- 'openDelay',
35
- 'positioning',
36
- ])(props),
37
- );
38
-
39
- let hoverCard = createHoverCard(reflect(() => createHoverCardProps));
40
- let presence = createPresence(
41
- reflect(() => ({
42
- ...presenceStrategyProps,
43
- present: hoverCard.open,
44
- })),
45
- );
46
-
47
- setHoverCardContext(hoverCard);
48
- setPresenceContext(presence);
49
- </script>
50
-
51
- {@render children?.(hoverCard)}
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
+ CreateHoverCardProps,
6
+ CreateHoverCardReturn,
7
+ } from './create-hover-card.svelte.js';
8
+
9
+ export interface HoverCardProps
10
+ extends CreateHoverCardProps,
11
+ PresenceStrategyProps {
12
+ children?: Snippet<[CreateHoverCardReturn]>;
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 {setPresenceContext} from '../presence/presence-context.svelte.js';
21
+ import {createHoverCard} from './create-hover-card.svelte.js';
22
+ import {setHoverCardContext} from './hover-card-context.svelte.js';
23
+
24
+ let {children, ...props}: HoverCardProps = $props();
25
+
26
+ let [createHoverCardProps, presenceStrategyProps] = $derived(
27
+ createSplitProps<CreateHoverCardProps>([
28
+ 'closeDelay',
29
+ 'id',
30
+ 'ids',
31
+ 'onOpenChange',
32
+ 'open',
33
+ 'openControlled',
34
+ 'openDelay',
35
+ 'positioning',
36
+ ])(props),
37
+ );
38
+
39
+ let hoverCard = createHoverCard(reflect(() => createHoverCardProps));
40
+ let presence = createPresence(
41
+ reflect(() => ({
42
+ ...presenceStrategyProps,
43
+ present: hoverCard.open,
44
+ })),
45
+ );
46
+
47
+ setHoverCardContext(hoverCard);
48
+ setPresenceContext(presence);
49
+ </script>
50
+
51
+ {@render children?.(hoverCard)}
@@ -1,74 +1,74 @@
1
- <script lang="ts" module>
2
- import type {Snippet} from 'svelte';
3
- import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
4
- import {
5
- type CreateMenuProps,
6
- type CreateMenuReturn,
7
- } from './create-menu.svelte.js';
8
-
9
- export interface MenuRootProps
10
- extends CreateMenuProps,
11
- PresenceStrategyProps {
12
- children?: Snippet<[CreateMenuReturn]>;
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 {setPresenceContext} from '../presence/presence-context.svelte.js';
21
- import {createMenu} from './create-menu.svelte.js';
22
- import {
23
- getMenuContext,
24
- setMenuContext,
25
- setMenuTriggerItemContext,
26
- } from './menu-context.svelte.js';
27
-
28
- let {children, ...props}: MenuRootProps = $props();
29
-
30
- let [createMenuProps, presenceStrategyProps] = $derived(
31
- createSplitProps<CreateMenuProps>([
32
- 'anchorPoint',
33
- 'aria-label',
34
- 'closeOnSelect',
35
- 'composite',
36
- 'highlightedValue',
37
- 'id',
38
- 'ids',
39
- 'loopFocus',
40
- 'navigate',
41
- 'onEscapeKeyDown',
42
- 'onFocusOutside',
43
- 'onHighlightChange',
44
- 'onInteractOutside',
45
- 'onOpenChange',
46
- 'onPointerDownOutside',
47
- 'onSelect',
48
- 'open',
49
- 'openControlled',
50
- 'positioning',
51
- 'typeahead',
52
- ])(props),
53
- );
54
-
55
- let parentMenu = getMenuContext();
56
- let menu = createMenu(reflect(() => createMenuProps));
57
- let presence = createPresence(
58
- reflect(() => ({
59
- ...presenceStrategyProps,
60
- present: menu.open,
61
- })),
62
- );
63
-
64
- setMenuContext(menu);
65
- setPresenceContext(presence);
66
- setMenuTriggerItemContext(() => parentMenu?.getTriggerItemProps(menu) ?? {});
67
-
68
- if (parentMenu) {
69
- parentMenu.setChild(menu.machine);
70
- menu.setParent(parentMenu.machine);
71
- }
72
- </script>
73
-
74
- {@render children?.(menu)}
1
+ <script lang="ts" module>
2
+ import type {Snippet} from 'svelte';
3
+ import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
4
+ import {
5
+ type CreateMenuProps,
6
+ type CreateMenuReturn,
7
+ } from './create-menu.svelte.js';
8
+
9
+ export interface MenuRootProps
10
+ extends CreateMenuProps,
11
+ PresenceStrategyProps {
12
+ children?: Snippet<[CreateMenuReturn]>;
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 {setPresenceContext} from '../presence/presence-context.svelte.js';
21
+ import {createMenu} from './create-menu.svelte.js';
22
+ import {
23
+ getMenuContext,
24
+ setMenuContext,
25
+ setMenuTriggerItemContext,
26
+ } from './menu-context.svelte.js';
27
+
28
+ let {children, ...props}: MenuRootProps = $props();
29
+
30
+ let [createMenuProps, presenceStrategyProps] = $derived(
31
+ createSplitProps<CreateMenuProps>([
32
+ 'anchorPoint',
33
+ 'aria-label',
34
+ 'closeOnSelect',
35
+ 'composite',
36
+ 'highlightedValue',
37
+ 'id',
38
+ 'ids',
39
+ 'loopFocus',
40
+ 'navigate',
41
+ 'onEscapeKeyDown',
42
+ 'onFocusOutside',
43
+ 'onHighlightChange',
44
+ 'onInteractOutside',
45
+ 'onOpenChange',
46
+ 'onPointerDownOutside',
47
+ 'onSelect',
48
+ 'open',
49
+ 'openControlled',
50
+ 'positioning',
51
+ 'typeahead',
52
+ ])(props),
53
+ );
54
+
55
+ let parentMenu = getMenuContext();
56
+ let menu = createMenu(reflect(() => createMenuProps));
57
+ let presence = createPresence(
58
+ reflect(() => ({
59
+ ...presenceStrategyProps,
60
+ present: menu.open,
61
+ })),
62
+ );
63
+
64
+ setMenuContext(menu);
65
+ setPresenceContext(presence);
66
+ setMenuTriggerItemContext(() => parentMenu?.getTriggerItemProps(menu) ?? {});
67
+
68
+ if (parentMenu) {
69
+ parentMenu.setChild(menu.machine);
70
+ menu.setParent(parentMenu.machine);
71
+ }
72
+ </script>
73
+
74
+ {@render children?.(menu)}
@@ -1,22 +1,20 @@
1
- import { mergeProps as zagMergeProps } from '@zag-js/core';
1
+ import { mergeProps as zagMergeProps } from '@zag-js/svelte';
2
2
  import { clsx } from 'clsx';
3
3
  export function mergeProps(...args) {
4
- let res = {};
5
- /* class */
6
- for (const arg of args) {
7
- const obj = { ...arg };
8
- if (obj.class)
9
- obj.class = clsx(arg.class);
10
- res = zagMergeProps(res, obj);
11
- }
12
- /* style */
13
- if (res.style) {
14
- let style = '';
15
- for (const key in res.style) {
16
- const val = res.style[key];
17
- style += `${key}:${val};`;
4
+ const l = [];
5
+ /* support svelte class value */
6
+ for (const o of args) {
7
+ const c = { ...o };
8
+ if (c.class && !isString(c.class)) {
9
+ c.class = clsx(o.class);
10
+ }
11
+ if (c.className && !isString(c.class)) {
12
+ c.className = clsx(o.className);
18
13
  }
19
- res.style = style;
14
+ l.push(c);
20
15
  }
21
- return res;
16
+ return zagMergeProps(...l);
17
+ }
18
+ function isString(value) {
19
+ return typeof value === 'string';
22
20
  }