@ark-ui/svelte 5.15.0 → 5.16.0

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 (98) hide show
  1. package/dist/components/accordion/accordion-root.svelte +1 -4
  2. package/dist/components/angle-slider/angle-slider-root.svelte +1 -3
  3. package/dist/components/bottom-sheet/bottom-sheet-content.svelte +4 -2
  4. package/dist/components/bottom-sheet/bottom-sheet-grabber-indicator.svelte +4 -2
  5. package/dist/components/carousel/carousel-autoplay-indicator.svelte +4 -2
  6. package/dist/components/checkbox/use-checkbox.svelte.js +1 -1
  7. package/dist/components/color-picker/color-picker-area-background.svelte +4 -2
  8. package/dist/components/color-picker/color-picker-channel-input.svelte +1 -3
  9. package/dist/components/color-picker/color-picker-channel-slider-label.svelte +4 -2
  10. package/dist/components/color-picker/color-picker-channel-slider-thumb.svelte +4 -2
  11. package/dist/components/color-picker/color-picker-channel-slider-track.svelte +4 -2
  12. package/dist/components/color-picker/color-picker-channel-slider-value-text.svelte +4 -2
  13. package/dist/components/color-picker/color-picker-eye-dropper-trigger.svelte +4 -2
  14. package/dist/components/color-picker/color-picker-format-trigger.svelte +4 -2
  15. package/dist/components/color-picker/color-picker-root.svelte +1 -4
  16. package/dist/components/color-picker/color-picker-swatch-indicator.svelte +4 -2
  17. package/dist/components/color-picker/color-picker-swatch-trigger.svelte +5 -5
  18. package/dist/components/color-picker/color-picker-transparency-grid.svelte +5 -5
  19. package/dist/components/combobox/combobox-root-provider.svelte +5 -6
  20. package/dist/components/combobox/combobox-root.svelte +5 -6
  21. package/dist/components/date-picker/date-picker-preset-trigger.svelte +1 -3
  22. package/dist/components/date-picker/date-picker-root-provider.svelte +1 -3
  23. package/dist/components/date-picker/date-picker-root.svelte +2 -4
  24. package/dist/components/date-picker/date-picker-table-cell-trigger.svelte +4 -2
  25. package/dist/components/date-picker/date-picker-table-cell.svelte +1 -3
  26. package/dist/components/date-picker/date-picker-value-text.svelte +69 -0
  27. package/dist/components/date-picker/date-picker-value-text.svelte.d.ts +28 -0
  28. package/dist/components/date-picker/date-picker.anatomy.d.ts +1 -1
  29. package/dist/components/date-picker/date-picker.anatomy.js +1 -1
  30. package/dist/components/date-picker/date-picker.d.ts +1 -0
  31. package/dist/components/date-picker/date-picker.js +1 -0
  32. package/dist/components/date-picker/index.d.ts +1 -0
  33. package/dist/components/date-picker/index.js +1 -0
  34. package/dist/components/factory/factory.svelte +2 -0
  35. package/dist/components/file-upload/file-upload-item-delete-trigger.svelte +4 -2
  36. package/dist/components/file-upload/file-upload-item-preview-image.svelte +4 -2
  37. package/dist/components/file-upload/file-upload-root.svelte +1 -0
  38. package/dist/components/floating-panel/floating-panel-close-trigger.svelte +4 -2
  39. package/dist/components/floating-panel/floating-panel-resize-trigger.svelte +5 -5
  40. package/dist/components/floating-panel/floating-panel-root.svelte +1 -3
  41. package/dist/components/floating-panel/floating-panel-stage-trigger.svelte +5 -5
  42. package/dist/components/focus-trap/focus-trap.svelte +4 -5
  43. package/dist/components/image-cropper/image-cropper-root-provider.svelte +4 -8
  44. package/dist/components/image-cropper/image-cropper-root-provider.svelte.d.ts +3 -7
  45. package/dist/components/json-tree-view/json-tree-view-root-provider.svelte +13 -2
  46. package/dist/components/json-tree-view/json-tree-view-root.svelte +1 -2
  47. package/dist/components/json-tree-view/use-json-tree-view.svelte.d.ts +9 -3
  48. package/dist/components/json-tree-view/use-json-tree-view.svelte.js +13 -2
  49. package/dist/components/listbox/listbox-root-provider.svelte +5 -4
  50. package/dist/components/listbox/listbox-root.svelte +4 -2
  51. package/dist/components/marquee/marquee-root.svelte +1 -3
  52. package/dist/components/menu/menu-radio-item-group.svelte +1 -3
  53. package/dist/components/navigation-menu/navigation-menu-content.svelte +1 -3
  54. package/dist/components/navigation-menu/navigation-menu-item-indicator.svelte +5 -2
  55. package/dist/components/navigation-menu/navigation-menu-root-provider.svelte +5 -6
  56. package/dist/components/navigation-menu/navigation-menu-root.svelte +1 -4
  57. package/dist/components/navigation-menu/navigation-menu-trigger.svelte +1 -3
  58. package/dist/components/navigation-menu/navigation-menu-viewport-positioner.svelte +16 -9
  59. package/dist/components/navigation-menu/navigation-menu-viewport-positioner.svelte.d.ts +5 -1
  60. package/dist/components/navigation-menu/navigation-menu-viewport.svelte +4 -6
  61. package/dist/components/navigation-menu/navigation-menu-viewport.svelte.d.ts +1 -2
  62. package/dist/components/navigation-menu/use-navigation-menu-viewport-props-context.d.ts +3 -0
  63. package/dist/components/navigation-menu/use-navigation-menu-viewport-props-context.js +5 -0
  64. package/dist/components/number-input/number-input-decrement-trigger.svelte +4 -2
  65. package/dist/components/number-input/number-input-increment-trigger.svelte +4 -2
  66. package/dist/components/pagination/pagination-first-trigger.svelte +1 -1
  67. package/dist/components/pagination/pagination-last-trigger.svelte +1 -1
  68. package/dist/components/password-input/password-input-root-provider.svelte +2 -2
  69. package/dist/components/password-input/password-input-root-provider.svelte.d.ts +2 -2
  70. package/dist/components/password-input/password-input-visibility-trigger.svelte +4 -2
  71. package/dist/components/pin-input/pin-input-root-provider.svelte +3 -2
  72. package/dist/components/pin-input/pin-input-root-provider.svelte.d.ts +2 -2
  73. package/dist/components/progress/progress-root.svelte +1 -3
  74. package/dist/components/qr-code/qr-code-download-trigger.svelte +1 -3
  75. package/dist/components/radio-group/radio-group-item-hidden-input.svelte +4 -2
  76. package/dist/components/segment-group/segment-group-item-hidden-input.svelte +4 -2
  77. package/dist/components/select/select-item.svelte +5 -4
  78. package/dist/components/select/select-root-provider.svelte +5 -5
  79. package/dist/components/select/select-root.svelte +5 -6
  80. package/dist/components/signature-pad/signature-pad-clear-trigger.svelte +4 -2
  81. package/dist/components/slider/slider-root.svelte +1 -0
  82. package/dist/components/splitter/splitter-resize-trigger-indicator.svelte +4 -2
  83. package/dist/components/splitter/splitter-resize-trigger.svelte +1 -3
  84. package/dist/components/steps/steps-root.svelte +4 -1
  85. package/dist/components/tabs/tabs-root-provider.svelte +1 -4
  86. package/dist/components/tags-input/tags-input-item-delete-trigger.svelte +4 -2
  87. package/dist/components/tags-input/tags-input-root.svelte +1 -0
  88. package/dist/components/tooltip/tooltip-root.svelte +2 -1
  89. package/dist/components/tooltip/tooltip-root.svelte.d.ts +2 -1
  90. package/dist/components/tour/index.d.ts +3 -1
  91. package/dist/components/tour/index.js +2 -0
  92. package/dist/components/tour/tour-action-trigger.svelte +1 -3
  93. package/dist/components/tour/wait-for-event.d.ts +6 -0
  94. package/dist/components/tour/wait-for-event.js +19 -0
  95. package/dist/components/tree-view/tree-view-branch-indent-guide.svelte +4 -2
  96. package/dist/components/tree-view/tree-view-root-provider.svelte +5 -5
  97. package/dist/components/tree-view/tree-view-root.svelte +1 -4
  98. package/package.json +70 -69
@@ -4,11 +4,10 @@
4
4
  import { type FocusTrapOptions, trapFocus } from '@zag-js/focus-trap'
5
5
  import { Ark } from '../factory/index.js'
6
6
 
7
- export interface TrapOptions
8
- extends Pick<
9
- FocusTrapOptions,
10
- 'onActivate' | 'onDeactivate' | 'initialFocus' | 'fallbackFocus' | 'returnFocusOnDeactivate' | 'setReturnFocus'
11
- > {
7
+ export interface TrapOptions extends Pick<
8
+ FocusTrapOptions,
9
+ 'onActivate' | 'onDeactivate' | 'initialFocus' | 'fallbackFocus' | 'returnFocusOnDeactivate' | 'setReturnFocus'
10
+ > {
12
11
  /**
13
12
  * Whether the focus trap is disabled.
14
13
  */
@@ -1,16 +1,12 @@
1
1
  <script module lang="ts">
2
- import type { Snippet } from 'svelte'
3
- import type { PolymorphicProps, RefAttribute } from '../../types'
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
4
3
  import type { UseImageCropperReturn } from './use-image-cropper.svelte'
5
4
 
6
- interface RootProviderProps {
5
+ export interface ImageCropperRootProviderBaseProps extends PolymorphicProps<'div'>, RefAttribute {
7
6
  value: UseImageCropperReturn
8
7
  }
9
-
10
- export interface ImageCropperRootProviderBaseProps extends RootProviderProps, PolymorphicProps<'div'>, RefAttribute {}
11
- export interface ImageCropperRootProviderProps extends ImageCropperRootProviderBaseProps {
12
- children?: Snippet
13
- }
8
+ export interface ImageCropperRootProviderProps
9
+ extends Assign<HTMLProps<'div'>, ImageCropperRootProviderBaseProps> {}
14
10
  </script>
15
11
 
16
12
  <script lang="ts">
@@ -1,13 +1,9 @@
1
- import type { Snippet } from 'svelte';
2
- import type { PolymorphicProps, RefAttribute } from '../../types';
1
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
3
2
  import type { UseImageCropperReturn } from './use-image-cropper.svelte';
4
- interface RootProviderProps {
3
+ export interface ImageCropperRootProviderBaseProps extends PolymorphicProps<'div'>, RefAttribute {
5
4
  value: UseImageCropperReturn;
6
5
  }
7
- export interface ImageCropperRootProviderBaseProps extends RootProviderProps, PolymorphicProps<'div'>, RefAttribute {
8
- }
9
- export interface ImageCropperRootProviderProps extends ImageCropperRootProviderBaseProps {
10
- children?: Snippet;
6
+ export interface ImageCropperRootProviderProps extends Assign<HTMLProps<'div'>, ImageCropperRootProviderBaseProps> {
11
7
  }
12
8
  declare const ImageCropperRootProvider: import("svelte").Component<ImageCropperRootProviderProps, {}, "ref">;
13
9
  type ImageCropperRootProvider = ReturnType<typeof ImageCropperRootProvider>;
@@ -1,12 +1,23 @@
1
1
  <script lang="ts">
2
2
  import type { JsonNode } from '@zag-js/json-tree-utils'
3
3
  import { TreeViewRootProvider, type TreeViewRootProviderProps } from '../tree-view'
4
+ import { JsonTreeViewPropsProvider } from './json-tree-view-props-context'
5
+ import type { UseJsonTreeViewReturn } from './use-json-tree-view.svelte'
4
6
 
5
7
  export interface JsonTreeViewRootProviderProps extends TreeViewRootProviderProps<JsonNode> {}
6
8
 
7
- const props: JsonTreeViewRootProviderProps = $props()
9
+ const { value, ...props }: JsonTreeViewRootProviderProps = $props()
10
+
11
+ const jsonTreeView = value as unknown as UseJsonTreeViewReturn
12
+
13
+ const treeView = $derived(() => {
14
+ const { options: _, ...rest } = jsonTreeView()
15
+ return rest
16
+ })
17
+
18
+ JsonTreeViewPropsProvider(() => jsonTreeView().options)
8
19
  </script>
9
20
 
10
- <TreeViewRootProvider data-scope="json-tree-view" {...props}>
21
+ <TreeViewRootProvider data-scope="json-tree-view" value={treeView} {...props}>
11
22
  {@render props.children?.()}
12
23
  </TreeViewRootProvider>
@@ -17,8 +17,7 @@
17
17
  }
18
18
 
19
19
  export interface JsonTreeViewRootProps
20
- extends Omit<TreeViewRootProps<JsonNode>, 'collection'>,
21
- JsonTreeViewRootBaseProps {}
20
+ extends Omit<TreeViewRootProps<JsonNode>, 'collection'>, JsonTreeViewRootBaseProps {}
22
21
 
23
22
  const { data, defaultExpandedDepth, ...props }: JsonTreeViewRootProps = $props()
24
23
 
@@ -1,10 +1,16 @@
1
+ import type { Accessor } from '../../types';
1
2
  import { type JsonNode } from '@zag-js/json-tree-utils';
3
+ import type { PropTypes } from '@zag-js/svelte';
4
+ import type * as treeView from '@zag-js/tree-view';
2
5
  import type { MaybeFunction } from '@zag-js/utils';
3
- import { type UseTreeViewProps, type UseTreeViewReturn } from '../tree-view';
4
- export interface UseJsonTreeViewProps extends Omit<UseTreeViewProps<JsonNode>, 'collection'> {
6
+ import { type UseTreeViewProps } from '../tree-view';
7
+ import type { JsonTreeViewOptions } from './json-tree-view-props-context';
8
+ export interface UseJsonTreeViewProps extends Omit<UseTreeViewProps<JsonNode>, 'collection'>, JsonTreeViewOptions {
5
9
  data: unknown;
6
10
  defaultExpandedDepth?: number;
7
11
  }
8
- export interface UseJsonTreeViewReturn extends UseTreeViewReturn<JsonNode> {
12
+ export interface UseJsonTreeViewReturn extends Accessor<treeView.Api<PropTypes, JsonNode> & {
13
+ options: JsonTreeViewOptions;
14
+ }> {
9
15
  }
10
16
  export declare const useJsonTreeView: (props: MaybeFunction<UseJsonTreeViewProps>) => UseJsonTreeViewReturn;
@@ -1,11 +1,20 @@
1
1
  import { runIfFn } from '../../utils/run-if-fn';
2
2
  import { getRootNode, nodeToString, nodeToValue } from '@zag-js/json-tree-utils';
3
3
  import { untrack } from 'svelte';
4
+ import { createSplitProps } from '../../utils/create-split-props';
4
5
  import { createTreeCollection, useTreeView } from '../tree-view';
5
6
  import { getBranchValues } from './get-branch-value';
7
+ const splitJsonTreeViewProps = createSplitProps();
6
8
  export const useJsonTreeView = (props) => {
9
+ const [jsonTreeProps, localProps] = splitJsonTreeViewProps(runIfFn(props), [
10
+ 'maxPreviewItems',
11
+ 'collapseStringsAfterLength',
12
+ 'quotesOnKeys',
13
+ 'groupArraysAfterLength',
14
+ 'showNonenumerable',
15
+ ]);
7
16
  const machineProps = $derived.by(() => {
8
- const { data, defaultExpandedDepth, ...restProps } = runIfFn(props);
17
+ const { data, defaultExpandedDepth, ...restProps } = localProps;
9
18
  const collection = createTreeCollection({
10
19
  nodeToValue,
11
20
  nodeToString,
@@ -19,5 +28,7 @@ export const useJsonTreeView = (props) => {
19
28
  typeahead: false,
20
29
  };
21
30
  });
22
- return useTreeView(() => machineProps);
31
+ const treeView = useTreeView(() => machineProps);
32
+ const api = $derived({ ...treeView(), options: jsonTreeProps });
33
+ return () => api;
23
34
  };
@@ -6,10 +6,11 @@
6
6
  }
7
7
 
8
8
  export interface ListboxRootProviderBaseProps<T extends CollectionItem>
9
- extends PolymorphicProps<'div'>,
10
- RootProviderProps<T> {}
11
- export interface ListboxRootProviderProps<T extends CollectionItem>
12
- extends Assign<HTMLProps<'div'>, ListboxRootProviderBaseProps<T>> {}
9
+ extends PolymorphicProps<'div'>, RootProviderProps<T> {}
10
+ export interface ListboxRootProviderProps<T extends CollectionItem> extends Assign<
11
+ HTMLProps<'div'>,
12
+ ListboxRootProviderBaseProps<T>
13
+ > {}
13
14
 
14
15
  export type ListboxRootProviderComponent<P = {}> = <T extends CollectionItem>(
15
16
  props: Assign<ListboxRootProviderProps<T>, P>,
@@ -6,8 +6,10 @@
6
6
  import type { UseListboxProps } from './use-listbox.svelte.js'
7
7
 
8
8
  export interface ListboxRootBaseProps<T extends CollectionItem> extends UseListboxProps<T>, PolymorphicProps<'div'> {}
9
- export interface ListboxRootProps<T extends CollectionItem>
10
- extends Assign<HTMLProps<'div'>, ListboxRootBaseProps<T>> {}
9
+ export interface ListboxRootProps<T extends CollectionItem> extends Assign<
10
+ HTMLProps<'div'>,
11
+ ListboxRootBaseProps<T>
12
+ > {}
11
13
 
12
14
  export type ListboxRootComponentProps<T extends CollectionItem = CollectionItem, P = {}> = Assign<
13
15
  ListboxRootProps<T>,
@@ -3,9 +3,7 @@
3
3
  import type { UseMarqueeProps } from './use-marquee.svelte'
4
4
 
5
5
  export interface MarqueeRootBaseProps
6
- extends Optional<UseMarqueeProps, 'id'>,
7
- PolymorphicProps<'div'>,
8
- RefAttribute {}
6
+ extends Optional<UseMarqueeProps, 'id'>, PolymorphicProps<'div'>, RefAttribute {}
9
7
  export interface MarqueeRootProps extends Assign<HTMLProps<'div'>, MarqueeRootBaseProps> {}
10
8
  </script>
11
9
 
@@ -5,9 +5,7 @@
5
5
  type OptionalUseMenuItemGroupContext = Optional<ReturnType<UseMenuItemGroupContext>, 'id'>
6
6
 
7
7
  export interface MenuRadioItemGroupBaseProps
8
- extends OptionalUseMenuItemGroupContext,
9
- PolymorphicProps<'div'>,
10
- RefAttribute {}
8
+ extends OptionalUseMenuItemGroupContext, PolymorphicProps<'div'>, RefAttribute {}
11
9
  export interface MenuRadioItemGroupProps extends Assign<HTMLProps<'div'>, MenuRadioItemGroupBaseProps> {}
12
10
  </script>
13
11
 
@@ -3,9 +3,7 @@
3
3
  import type { ContentProps } from '@zag-js/navigation-menu'
4
4
 
5
5
  export interface NavigationMenuContentBaseProps
6
- extends Partial<ContentProps>,
7
- PolymorphicProps<'div'>,
8
- RefAttribute {}
6
+ extends Partial<ContentProps>, PolymorphicProps<'div'>, RefAttribute {}
9
7
  export interface NavigationMenuContentProps extends Assign<HTMLProps<'div'>, NavigationMenuContentBaseProps> {}
10
8
  </script>
11
9
 
@@ -2,7 +2,10 @@
2
2
  import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
3
 
4
4
  export interface NavigationMenuItemIndicatorBaseProps extends PolymorphicProps<'div'>, RefAttribute {}
5
- export interface NavigationMenuItemIndicatorProps extends Assign<HTMLProps<'div'>, NavigationMenuItemIndicatorBaseProps> {}
5
+ export interface NavigationMenuItemIndicatorProps extends Assign<
6
+ HTMLProps<'div'>,
7
+ NavigationMenuItemIndicatorBaseProps
8
+ > {}
6
9
  </script>
7
10
 
8
11
  <script lang="ts">
@@ -19,4 +22,4 @@
19
22
  const mergedProps = $derived(mergeProps(navigationMenu().getItemIndicatorProps(itemProps()), props))
20
23
  </script>
21
24
 
22
- <Ark as="div" bind:ref {...mergedProps} />
25
+ <Ark as="div" bind:ref {...mergedProps} />
@@ -8,13 +8,12 @@
8
8
  }
9
9
 
10
10
  export interface NavigationMenuRootProviderBaseProps
11
- extends RootProviderProps,
12
- PolymorphicProps<'nav'>,
13
- UsePresenceProps,
14
- RefAttribute {}
11
+ extends RootProviderProps, PolymorphicProps<'nav'>, UsePresenceProps, RefAttribute {}
15
12
 
16
- export interface NavigationMenuRootProviderProps
17
- extends Assign<HTMLProps<'nav'>, NavigationMenuRootProviderBaseProps> {}
13
+ export interface NavigationMenuRootProviderProps extends Assign<
14
+ HTMLProps<'nav'>,
15
+ NavigationMenuRootProviderBaseProps
16
+ > {}
18
17
  </script>
19
18
 
20
19
  <script lang="ts">
@@ -4,10 +4,7 @@
4
4
  import type { UseNavigationMenuProps } from './use-navigation-menu.svelte'
5
5
 
6
6
  export interface NavigationMenuRootBaseProps
7
- extends UseNavigationMenuProps,
8
- UsePresenceProps,
9
- PolymorphicProps<'nav'>,
10
- RefAttribute {}
7
+ extends UseNavigationMenuProps, UsePresenceProps, PolymorphicProps<'nav'>, RefAttribute {}
11
8
  export interface NavigationMenuRootProps extends Assign<HTMLProps<'nav'>, NavigationMenuRootBaseProps> {}
12
9
  </script>
13
10
 
@@ -3,9 +3,7 @@
3
3
  import type { ItemProps } from '@zag-js/navigation-menu'
4
4
 
5
5
  export interface NavigationMenuTriggerBaseProps
6
- extends Omit<ItemProps, 'value'>,
7
- PolymorphicProps<'button'>,
8
- RefAttribute {}
6
+ extends Omit<ItemProps, 'value'>, PolymorphicProps<'button'>, RefAttribute {}
9
7
  export interface NavigationMenuTriggerProps extends Assign<HTMLProps<'button'>, NavigationMenuTriggerBaseProps> {}
10
8
  </script>
11
9
 
@@ -3,27 +3,34 @@
3
3
  import type { ViewportProps } from '@zag-js/navigation-menu'
4
4
 
5
5
  export interface NavigationMenuViewportPositionerBaseProps
6
- extends ViewportProps,
7
- PolymorphicProps<'div'>,
8
- RefAttribute {}
9
- export interface NavigationMenuViewportPositionerProps
10
- extends Assign<HTMLProps<'div'>, NavigationMenuViewportPositionerBaseProps> {}
6
+ extends ViewportProps, PolymorphicProps<'div'>, RefAttribute {}
7
+ export interface NavigationMenuViewportPositionerProps extends Assign<
8
+ HTMLProps<'div'>,
9
+ NavigationMenuViewportPositionerBaseProps
10
+ > {}
11
11
  </script>
12
12
 
13
13
  <script lang="ts">
14
14
  import { mergeProps } from '@zag-js/svelte'
15
15
  import { Ark } from '../factory'
16
16
  import { useNavigationMenuContext } from './use-navigation-menu-context'
17
+ import { setNavigationMenuViewportPropsContext } from './use-navigation-menu-viewport-props-context'
17
18
  import { createSplitProps } from '../../utils/create-split-props'
18
19
 
19
- let { ref = $bindable(null), ...props }: NavigationMenuViewportPositionerProps = $props()
20
+ import type { Snippet } from 'svelte'
21
+
22
+ let { ref = $bindable(null), children, ...props }: NavigationMenuViewportPositionerProps & { children?: Snippet } = $props()
20
23
  const splitViewportProps = createSplitProps<ViewportProps>()
21
- const [viewportPositionerProps, localProps] = $derived(splitViewportProps(props, ['align']))
24
+ const [viewportProps, localProps] = $derived(splitViewportProps(props, ['align']))
25
+
26
+ setNavigationMenuViewportPropsContext(() => viewportProps)
22
27
 
23
28
  const navigationMenu = useNavigationMenuContext()
24
29
  const mergedProps = $derived(
25
- mergeProps(navigationMenu().getViewportPositionerProps(viewportPositionerProps), localProps),
30
+ mergeProps(navigationMenu().getViewportPositionerProps(viewportProps), localProps),
26
31
  )
27
32
  </script>
28
33
 
29
- <Ark as="div" bind:ref {...mergedProps} />
34
+ <Ark as="div" bind:ref {...mergedProps}>
35
+ {@render children?.()}
36
+ </Ark>
@@ -4,6 +4,10 @@ export interface NavigationMenuViewportPositionerBaseProps extends ViewportProps
4
4
  }
5
5
  export interface NavigationMenuViewportPositionerProps extends Assign<HTMLProps<'div'>, NavigationMenuViewportPositionerBaseProps> {
6
6
  }
7
- declare const NavigationMenuViewportPositioner: import("svelte").Component<NavigationMenuViewportPositionerProps, {}, "ref">;
7
+ import type { Snippet } from 'svelte';
8
+ type $$ComponentProps = NavigationMenuViewportPositionerProps & {
9
+ children?: Snippet;
10
+ };
11
+ declare const NavigationMenuViewportPositioner: import("svelte").Component<$$ComponentProps, {}, "ref">;
8
12
  type NavigationMenuViewportPositioner = ReturnType<typeof NavigationMenuViewportPositioner>;
9
13
  export default NavigationMenuViewportPositioner;
@@ -1,8 +1,7 @@
1
1
  <script module lang="ts">
2
2
  import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
- import type { ViewportProps } from '@zag-js/navigation-menu'
4
3
 
5
- export interface NavigationMenuViewportBaseProps extends ViewportProps, PolymorphicProps<'div'>, RefAttribute {}
4
+ export interface NavigationMenuViewportBaseProps extends PolymorphicProps<'div'>, RefAttribute {}
6
5
  export interface NavigationMenuViewportProps extends Assign<HTMLProps<'div'>, NavigationMenuViewportBaseProps> {}
7
6
  </script>
8
7
 
@@ -11,19 +10,18 @@
11
10
  import { Ark } from '../factory'
12
11
  import { usePresence } from '../presence'
13
12
  import { useNavigationMenuContext } from './use-navigation-menu-context'
13
+ import { getNavigationMenuViewportPropsContext } from './use-navigation-menu-viewport-props-context'
14
14
  import { useRenderStrategyPropsContext } from '../../utils/render-strategy'
15
- import { createSplitProps } from '../../utils/create-split-props'
16
15
 
17
16
  let { ref = $bindable(null), ...props }: NavigationMenuViewportProps = $props()
18
17
 
19
- const splitViewportProps = createSplitProps<ViewportProps>()
20
- const [viewportProps, localProps] = $derived(splitViewportProps(props, ['align']))
18
+ const viewportPropsContext = getNavigationMenuViewportPropsContext()
21
19
 
22
20
  const navigationMenu = useNavigationMenuContext()
23
21
  const renderStrategyProps = useRenderStrategyPropsContext()
24
22
  const presence = usePresence(() => ({ ...renderStrategyProps, present: navigationMenu().open }))
25
23
  const mergedProps = $derived(
26
- mergeProps(navigationMenu().getViewportProps(viewportProps), presence().getPresenceProps(), localProps),
24
+ mergeProps(navigationMenu().getViewportProps(viewportPropsContext?.()), presence().getPresenceProps(), props),
27
25
  )
28
26
 
29
27
  function setNode(node: Element | null) {
@@ -1,6 +1,5 @@
1
1
  import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
2
- import type { ViewportProps } from '@zag-js/navigation-menu';
3
- export interface NavigationMenuViewportBaseProps extends ViewportProps, PolymorphicProps<'div'>, RefAttribute {
2
+ export interface NavigationMenuViewportBaseProps extends PolymorphicProps<'div'>, RefAttribute {
4
3
  }
5
4
  export interface NavigationMenuViewportProps extends Assign<HTMLProps<'div'>, NavigationMenuViewportBaseProps> {
6
5
  }
@@ -0,0 +1,3 @@
1
+ import type { ViewportProps } from '@zag-js/navigation-menu';
2
+ import type { Accessor } from '../../types';
3
+ export declare const setNavigationMenuViewportPropsContext: (opts: Accessor<ViewportProps>) => void, getNavigationMenuViewportPropsContext: (fallback?: Accessor<ViewportProps> | undefined) => Accessor<ViewportProps>;
@@ -0,0 +1,5 @@
1
+ import { createContext } from '../../utils/create-context';
2
+ export const [setNavigationMenuViewportPropsContext, getNavigationMenuViewportPropsContext] = createContext({
3
+ name: 'NavigationMenuViewportPropsContext',
4
+ strict: false,
5
+ });
@@ -2,8 +2,10 @@
2
2
  import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
3
 
4
4
  export interface NumberInputDecrementTriggerBaseProps extends PolymorphicProps<'button'>, RefAttribute {}
5
- export interface NumberInputDecrementTriggerProps
6
- extends Assign<HTMLProps<'button'>, NumberInputDecrementTriggerBaseProps> {}
5
+ export interface NumberInputDecrementTriggerProps extends Assign<
6
+ HTMLProps<'button'>,
7
+ NumberInputDecrementTriggerBaseProps
8
+ > {}
7
9
  </script>
8
10
 
9
11
  <script lang="ts">
@@ -2,8 +2,10 @@
2
2
  import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
3
 
4
4
  export interface NumberInputIncrementTriggerBaseProps extends PolymorphicProps<'button'>, RefAttribute {}
5
- export interface NumberInputIncrementTriggerProps
6
- extends Assign<HTMLProps<'button'>, NumberInputIncrementTriggerBaseProps> {}
5
+ export interface NumberInputIncrementTriggerProps extends Assign<
6
+ HTMLProps<'button'>,
7
+ NumberInputIncrementTriggerBaseProps
8
+ > {}
7
9
  </script>
8
10
 
9
11
  <script lang="ts">
@@ -15,4 +15,4 @@
15
15
  const mergedProps = $derived(mergeProps(pagination().getFirstTriggerProps(), props))
16
16
  </script>
17
17
 
18
- <Ark as="button" bind:ref {...mergedProps} />
18
+ <Ark as="button" bind:ref {...mergedProps} />
@@ -15,4 +15,4 @@
15
15
  const mergedProps = $derived(mergeProps(pagination().getLastTriggerProps(), props))
16
16
  </script>
17
17
 
18
- <Ark as="button" bind:ref {...mergedProps} />
18
+ <Ark as="button" bind:ref {...mergedProps} />
@@ -1,6 +1,6 @@
1
1
  <script module lang="ts">
2
2
  import type { Snippet } from 'svelte'
3
- import type { RefAttribute } from '../../types'
3
+ import type { Assign, HTMLProps, RefAttribute } from '../../types'
4
4
  import type { UsePasswordInputReturn } from './use-password-input.svelte'
5
5
 
6
6
  interface RootProviderProps {
@@ -8,7 +8,7 @@
8
8
  }
9
9
 
10
10
  export interface PasswordInputRootProviderBaseProps extends RootProviderProps, RefAttribute {}
11
- export interface PasswordInputRootProviderProps extends PasswordInputRootProviderBaseProps {
11
+ export interface PasswordInputRootProviderProps extends Assign<HTMLProps<'div'>, PasswordInputRootProviderBaseProps> {
12
12
  children?: Snippet
13
13
  }
14
14
  </script>
@@ -1,12 +1,12 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { RefAttribute } from '../../types';
2
+ import type { Assign, HTMLProps, RefAttribute } from '../../types';
3
3
  import type { UsePasswordInputReturn } from './use-password-input.svelte';
4
4
  interface RootProviderProps {
5
5
  value: UsePasswordInputReturn;
6
6
  }
7
7
  export interface PasswordInputRootProviderBaseProps extends RootProviderProps, RefAttribute {
8
8
  }
9
- export interface PasswordInputRootProviderProps extends PasswordInputRootProviderBaseProps {
9
+ export interface PasswordInputRootProviderProps extends Assign<HTMLProps<'div'>, PasswordInputRootProviderBaseProps> {
10
10
  children?: Snippet;
11
11
  }
12
12
  declare const PasswordInputRootProvider: import("svelte").Component<PasswordInputRootProviderProps, {}, "ref">;
@@ -2,8 +2,10 @@
2
2
  import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
3
 
4
4
  export interface PasswordInputVisibilityTriggerBaseProps extends PolymorphicProps<'button'>, RefAttribute {}
5
- export interface PasswordInputVisibilityTriggerProps
6
- extends Assign<HTMLProps<'button'>, PasswordInputVisibilityTriggerBaseProps> {}
5
+ export interface PasswordInputVisibilityTriggerProps extends Assign<
6
+ HTMLProps<'button'>,
7
+ PasswordInputVisibilityTriggerBaseProps
8
+ > {}
7
9
  </script>
8
10
 
9
11
  <script lang="ts">
@@ -1,13 +1,14 @@
1
1
  <script module lang="ts">
2
2
  import type { Snippet } from 'svelte'
3
- import type { PolymorphicProps, RefAttribute } from '../../types'
3
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
4
4
  import type { UsePinInputReturn } from './use-pin-input.svelte'
5
5
 
6
6
  interface RootProviderProps {
7
7
  value: UsePinInputReturn
8
8
  }
9
9
 
10
- export interface PinInputRootProviderBaseProps extends RootProviderProps, PolymorphicProps<'div'>, RefAttribute {}
10
+ export interface PinInputRootProviderBaseProps
11
+ extends Assign<HTMLProps<'div'>, RootProviderProps>, PolymorphicProps<'div'>, RefAttribute {}
11
12
  export interface PinInputRootProviderProps extends PinInputRootProviderBaseProps {
12
13
  children?: Snippet
13
14
  }
@@ -1,10 +1,10 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { PolymorphicProps, RefAttribute } from '../../types';
2
+ import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types';
3
3
  import type { UsePinInputReturn } from './use-pin-input.svelte';
4
4
  interface RootProviderProps {
5
5
  value: UsePinInputReturn;
6
6
  }
7
- export interface PinInputRootProviderBaseProps extends RootProviderProps, PolymorphicProps<'div'>, RefAttribute {
7
+ export interface PinInputRootProviderBaseProps extends Assign<HTMLProps<'div'>, RootProviderProps>, PolymorphicProps<'div'>, RefAttribute {
8
8
  }
9
9
  export interface PinInputRootProviderProps extends PinInputRootProviderBaseProps {
10
10
  children?: Snippet;
@@ -3,9 +3,7 @@
3
3
  import type { UseProgressProps } from './use-progress.svelte'
4
4
 
5
5
  export interface ProgressRootBaseProps
6
- extends Optional<UseProgressProps, 'id'>,
7
- PolymorphicProps<'div'>,
8
- RefAttribute {}
6
+ extends Optional<UseProgressProps, 'id'>, PolymorphicProps<'div'>, RefAttribute {}
9
7
  export interface ProgressRootProps extends Assign<HTMLProps<'div'>, ProgressRootBaseProps> {}
10
8
  </script>
11
9
 
@@ -3,9 +3,7 @@
3
3
  import type { DownloadTriggerProps } from '@zag-js/qr-code'
4
4
 
5
5
  export interface QrCodeDownloadTriggerBaseProps
6
- extends DownloadTriggerProps,
7
- PolymorphicProps<'button'>,
8
- RefAttribute {}
6
+ extends DownloadTriggerProps, PolymorphicProps<'button'>, RefAttribute {}
9
7
 
10
8
  export interface QrCodeDownloadTriggerProps extends HTMLProps<'button'>, QrCodeDownloadTriggerBaseProps {}
11
9
  </script>
@@ -2,8 +2,10 @@
2
2
  import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
3
 
4
4
  export interface RadioGroupItemHiddenInputBaseProps extends PolymorphicProps<'input'>, RefAttribute {}
5
- export interface RadioGroupItemHiddenInputProps
6
- extends Assign<HTMLProps<'input'>, RadioGroupItemHiddenInputBaseProps> {}
5
+ export interface RadioGroupItemHiddenInputProps extends Assign<
6
+ HTMLProps<'input'>,
7
+ RadioGroupItemHiddenInputBaseProps
8
+ > {}
7
9
  </script>
8
10
 
9
11
  <script lang="ts">
@@ -2,8 +2,10 @@
2
2
  import type { Assign, HTMLProps, PolymorphicProps, RefAttribute } from '../../types'
3
3
 
4
4
  export interface SegmentGroupItemHiddenInputBaseProps extends PolymorphicProps<'input'>, RefAttribute {}
5
- export interface SegmentGroupItemHiddenInputProps
6
- extends Assign<HTMLProps<'input'>, SegmentGroupItemHiddenInputBaseProps> {}
5
+ export interface SegmentGroupItemHiddenInputProps extends Assign<
6
+ HTMLProps<'input'>,
7
+ SegmentGroupItemHiddenInputBaseProps
8
+ > {}
7
9
  </script>
8
10
 
9
11
  <script lang="ts">
@@ -3,13 +3,14 @@
3
3
  import type { CollectionItem } from '../collection'
4
4
 
5
5
  export interface SelectItemBaseProps<T extends CollectionItem = CollectionItem>
6
- extends PolymorphicProps<'div'>,
7
- RefAttribute {
6
+ extends PolymorphicProps<'div'>, RefAttribute {
8
7
  item: T
9
8
  disabled?: boolean
10
9
  }
11
- export interface SelectItemProps<T extends CollectionItem = CollectionItem>
12
- extends Assign<HTMLProps<'div'>, SelectItemBaseProps<T>> {}
10
+ export interface SelectItemProps<T extends CollectionItem = CollectionItem> extends Assign<
11
+ HTMLProps<'div'>,
12
+ SelectItemBaseProps<T>
13
+ > {}
13
14
  </script>
14
15
 
15
16
  <script lang="ts" generics="T extends CollectionItem = CollectionItem">
@@ -4,14 +4,14 @@
4
4
  import type { UseSelectReturn } from './use-select.svelte'
5
5
 
6
6
  export interface SelectRootProviderBaseProps<T extends CollectionItem = CollectionItem>
7
- extends PolymorphicProps<'div'>,
8
- UsePresenceProps,
9
- RefAttribute {
7
+ extends PolymorphicProps<'div'>, UsePresenceProps, RefAttribute {
10
8
  value: UseSelectReturn<T>
11
9
  }
12
10
 
13
- export interface SelectRootProviderProps<T extends CollectionItem = CollectionItem>
14
- extends Assign<HTMLProps<'div'>, SelectRootProviderBaseProps<T>> {}
11
+ export interface SelectRootProviderProps<T extends CollectionItem = CollectionItem> extends Assign<
12
+ HTMLProps<'div'>,
13
+ SelectRootProviderBaseProps<T>
14
+ > {}
15
15
 
16
16
  export type SelectRootProviderComponent<P = {}> = <T extends CollectionItem>(
17
17
  props: Assign<SelectRootProviderProps<T>, P>,
@@ -5,13 +5,12 @@
5
5
  import type { UseSelectProps } from './use-select.svelte'
6
6
 
7
7
  export interface SelectRootBaseProps<T extends CollectionItem = CollectionItem>
8
- extends UseSelectProps<T>,
9
- UsePresenceProps,
10
- PolymorphicProps<'div'>,
11
- RefAttribute {}
8
+ extends UseSelectProps<T>, UsePresenceProps, PolymorphicProps<'div'>, RefAttribute {}
12
9
 
13
- export interface SelectRootProps<T extends CollectionItem = CollectionItem>
14
- extends Assign<HTMLProps<'div'>, SelectRootBaseProps<T>> {}
10
+ export interface SelectRootProps<T extends CollectionItem = CollectionItem> extends Assign<
11
+ HTMLProps<'div'>,
12
+ SelectRootBaseProps<T>
13
+ > {}
15
14
 
16
15
  export type SelectRootComponentProps<T extends CollectionItem = CollectionItem, P = {}> = Assign<
17
16
  SelectRootProps<T>,