@ark-ui/svelte 5.1.1 → 5.3.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 (64) hide show
  1. package/dist/components/checkbox/checkbox-group-provider.svelte +24 -0
  2. package/dist/components/checkbox/checkbox-group-provider.svelte.d.ts +10 -0
  3. package/dist/components/checkbox/checkbox-group.svelte +2 -2
  4. package/dist/components/checkbox/checkbox.d.ts +1 -0
  5. package/dist/components/checkbox/checkbox.js +1 -0
  6. package/dist/components/checkbox/index.d.ts +2 -1
  7. package/dist/components/checkbox/index.js +2 -1
  8. package/dist/components/checkbox/use-checkbox-group-context.d.ts +1 -1
  9. package/dist/components/checkbox/use-checkbox-group-context.js +1 -1
  10. package/dist/components/collection/index.d.ts +2 -1
  11. package/dist/components/collection/index.js +2 -1
  12. package/dist/components/collection/use-list-selection.svelte.d.ts +104 -0
  13. package/dist/components/collection/use-list-selection.svelte.js +91 -0
  14. package/dist/components/combobox/combobox-context.svelte.d.ts +10 -3
  15. package/dist/components/combobox/combobox-root-provider.svelte.d.ts +10 -3
  16. package/dist/components/combobox/combobox-root.svelte.d.ts +10 -3
  17. package/dist/components/factory/factory.svelte.d.ts +11 -4
  18. package/dist/components/factory/svg-factory.svelte.d.ts +11 -4
  19. package/dist/components/file-upload/file-upload-root.svelte +8 -1
  20. package/dist/components/file-upload/file-upload-root.svelte.d.ts +1 -1
  21. package/dist/components/file-upload/file-upload.d.ts +1 -1
  22. package/dist/components/file-upload/index.d.ts +1 -1
  23. package/dist/components/index.d.ts +1 -0
  24. package/dist/components/index.js +1 -0
  25. package/dist/components/json-tree-view/get-branch-value.d.ts +3 -0
  26. package/dist/components/json-tree-view/get-branch-value.js +13 -0
  27. package/dist/components/json-tree-view/index.d.ts +5 -0
  28. package/dist/components/json-tree-view/index.js +5 -0
  29. package/dist/components/json-tree-view/json-tree-view-key-node.svelte +23 -0
  30. package/dist/components/json-tree-view/json-tree-view-key-node.svelte.d.ts +14 -0
  31. package/dist/components/json-tree-view/json-tree-view-node.svelte +102 -0
  32. package/dist/components/json-tree-view/json-tree-view-node.svelte.d.ts +24 -0
  33. package/dist/components/json-tree-view/json-tree-view-props-context.d.ts +8 -0
  34. package/dist/components/json-tree-view/json-tree-view-props-context.js +6 -0
  35. package/dist/components/json-tree-view/json-tree-view-root-provider.svelte +12 -0
  36. package/dist/components/json-tree-view/json-tree-view-root-provider.svelte.d.ts +7 -0
  37. package/dist/components/json-tree-view/json-tree-view-root.svelte +54 -0
  38. package/dist/components/json-tree-view/json-tree-view-root.svelte.d.ts +18 -0
  39. package/dist/components/json-tree-view/json-tree-view-tree.svelte +23 -0
  40. package/dist/components/json-tree-view/json-tree-view-tree.svelte.d.ts +9 -0
  41. package/dist/components/json-tree-view/json-tree-view-value-node.svelte +31 -0
  42. package/dist/components/json-tree-view/json-tree-view-value-node.svelte.d.ts +10 -0
  43. package/dist/components/json-tree-view/json-tree-view.d.ts +3 -0
  44. package/dist/components/json-tree-view/json-tree-view.js +3 -0
  45. package/dist/components/json-tree-view/use-json-tree-view.svelte.d.ts +10 -0
  46. package/dist/components/json-tree-view/use-json-tree-view.svelte.js +23 -0
  47. package/dist/components/listbox/listbox-context.svelte.d.ts +10 -3
  48. package/dist/components/listbox/listbox-root-provider.svelte.d.ts +10 -3
  49. package/dist/components/listbox/listbox-root.svelte.d.ts +10 -3
  50. package/dist/components/portal/portal.svelte +38 -3
  51. package/dist/components/portal/portal.svelte.d.ts +10 -0
  52. package/dist/components/select/select-context.svelte.d.ts +10 -3
  53. package/dist/components/select/select-item.svelte.d.ts +10 -3
  54. package/dist/components/select/select-root-provider.svelte.d.ts +10 -3
  55. package/dist/components/select/select-root.svelte.d.ts +10 -3
  56. package/dist/components/signature-pad/signature-pad-root.svelte +10 -3
  57. package/dist/components/signature-pad/signature-pad-root.svelte.d.ts +1 -1
  58. package/dist/components/tour/tour.anatomy.d.ts +1 -1
  59. package/dist/components/tree-view/tree-view-node-context.svelte.d.ts +10 -3
  60. package/dist/components/tree-view/tree-view-node-provider.svelte.d.ts +10 -3
  61. package/dist/components/tree-view/tree-view-root-provider.svelte.d.ts +10 -3
  62. package/dist/components/tree-view/tree-view-root.svelte.d.ts +10 -3
  63. package/dist/components/tree-view/tree-view-split-props.d.ts +1 -1
  64. package/package.json +69 -68
@@ -0,0 +1,102 @@
1
+ <script lang="ts">
2
+ import {
3
+ type JsonNode,
4
+ type JsonNodeHastElement,
5
+ getAccessibleDescription,
6
+ jsonNodeToElement,
7
+ keyPathToKey,
8
+ } from '@zag-js/json-tree-utils'
9
+ import type { Snippet } from 'svelte'
10
+ import { TreeView, useTreeViewContext } from '../tree-view'
11
+ import JsonTreeViewKeyNode from './json-tree-view-key-node.svelte'
12
+ import JsonTreeViewNode from './json-tree-view-node.svelte'
13
+ import { useJsonTreeViewPropsContext } from './json-tree-view-props-context'
14
+ import JsonTreeViewValueNode from './json-tree-view-value-node.svelte'
15
+
16
+ export interface JsonTreeViewNodeBaseProps {
17
+ /**
18
+ * The icon to use for the arrow.
19
+ */
20
+ arrow?: Snippet<[]>
21
+ /**
22
+ * The indent guide to use for the tree.
23
+ */
24
+ indentGuide?: boolean | Snippet<[]>
25
+ /**
26
+ * The function to render the value of the node.
27
+ */
28
+ renderValue?: Snippet<[JsonNodeHastElement]>
29
+ }
30
+
31
+ export interface JsonTreeViewNodeProps extends JsonTreeViewNodeBaseProps {
32
+ node: JsonNode
33
+ indexPath: number[]
34
+ }
35
+
36
+ const props: JsonTreeViewNodeProps = $props()
37
+
38
+ const { node, indexPath, arrow, indentGuide, renderValue } = props
39
+
40
+ const options = useJsonTreeViewPropsContext()
41
+
42
+ const tree = useTreeViewContext()
43
+ const nodeState = $derived(tree().getNodeState({ node, indexPath }))
44
+
45
+ const key = $derived(keyPathToKey(node.keyPath, { excludeRoot: true }))
46
+ const valueNode = $derived(jsonNodeToElement(node, options()))
47
+
48
+ const nodeProps = $derived.by(() => {
49
+ const desc = getAccessibleDescription(node)
50
+ const line = indexPath.reduce((acc, curr) => acc + curr, 1)
51
+ const lineLength = indexPath.length - 1
52
+
53
+ return {
54
+ 'aria-label': desc,
55
+ 'data-line': line,
56
+ style: `--line-length: ${lineLength}`,
57
+ }
58
+ })
59
+
60
+ const scopeProps = {
61
+ 'data-scope': 'json-tree-view',
62
+ }
63
+ </script>
64
+
65
+ <TreeView.NodeProvider {node} {indexPath}>
66
+ {#if nodeState.isBranch}
67
+ <TreeView.Branch {...scopeProps}>
68
+ <TreeView.BranchControl {...nodeProps} {...scopeProps}>
69
+ {#if arrow}
70
+ <TreeView.BranchIndicator {...scopeProps}>
71
+ {@render arrow()}
72
+ </TreeView.BranchIndicator>
73
+ {/if}
74
+ <TreeView.BranchText {...scopeProps}>
75
+ {#if key}
76
+ <JsonTreeViewKeyNode {node} showQuotes={options().quotesOnKeys} />
77
+ {/if}
78
+ <JsonTreeViewValueNode node={valueNode} {renderValue} />
79
+ </TreeView.BranchText>
80
+ </TreeView.BranchControl>
81
+ <TreeView.BranchContent {...scopeProps}>
82
+ {#if typeof indentGuide === 'boolean'}
83
+ <TreeView.BranchIndentGuide />
84
+ {:else if indentGuide}
85
+ {@render indentGuide()}
86
+ {/if}
87
+ {#each node.children ?? [] as child, index (index)}
88
+ <JsonTreeViewNode {...props} node={child} indexPath={[...indexPath, index]} />
89
+ {/each}
90
+ </TreeView.BranchContent>
91
+ </TreeView.Branch>
92
+ {:else}
93
+ <TreeView.Item {...nodeProps} {...scopeProps}>
94
+ <TreeView.ItemText {...scopeProps}>
95
+ {#if key}
96
+ <JsonTreeViewKeyNode {node} showQuotes={options().quotesOnKeys} />
97
+ {/if}
98
+ <JsonTreeViewValueNode node={valueNode} {renderValue} />
99
+ </TreeView.ItemText>
100
+ </TreeView.Item>
101
+ {/if}
102
+ </TreeView.NodeProvider>
@@ -0,0 +1,24 @@
1
+ import { type JsonNode, type JsonNodeHastElement } from '@zag-js/json-tree-utils';
2
+ import type { Snippet } from 'svelte';
3
+ import JsonTreeViewNode from './json-tree-view-node.svelte';
4
+ export interface JsonTreeViewNodeBaseProps {
5
+ /**
6
+ * The icon to use for the arrow.
7
+ */
8
+ arrow?: Snippet<[]>;
9
+ /**
10
+ * The indent guide to use for the tree.
11
+ */
12
+ indentGuide?: boolean | Snippet<[]>;
13
+ /**
14
+ * The function to render the value of the node.
15
+ */
16
+ renderValue?: Snippet<[JsonNodeHastElement]>;
17
+ }
18
+ export interface JsonTreeViewNodeProps extends JsonTreeViewNodeBaseProps {
19
+ node: JsonNode;
20
+ indexPath: number[];
21
+ }
22
+ declare const JsonTreeViewNode: import("svelte").Component<JsonTreeViewNodeProps, {}, "">;
23
+ type JsonTreeViewNode = ReturnType<typeof JsonTreeViewNode>;
24
+ export default JsonTreeViewNode;
@@ -0,0 +1,8 @@
1
+ import type { JsonNodePreviewOptions } from '@zag-js/json-tree-utils';
2
+ export interface JsonTreeViewOptions extends Partial<JsonNodePreviewOptions> {
3
+ /**
4
+ * Whether to show quotes on the keys.
5
+ */
6
+ quotesOnKeys?: boolean;
7
+ }
8
+ export declare const JsonTreeViewPropsProvider: (opts: () => JsonTreeViewOptions) => void, useJsonTreeViewPropsContext: (fallback?: (() => JsonTreeViewOptions) | undefined) => () => JsonTreeViewOptions;
@@ -0,0 +1,6 @@
1
+ import { createContext } from '../../utils/create-context';
2
+ export const [JsonTreeViewPropsProvider, useJsonTreeViewPropsContext] = createContext({
3
+ name: 'JsonTreeViewPropsContext',
4
+ hookName: 'useJsonTreeViewPropsContext',
5
+ providerName: '<JsonTreeViewPropsProvider />',
6
+ });
@@ -0,0 +1,12 @@
1
+ <script lang="ts">
2
+ import type { JsonNode } from '@zag-js/json-tree-utils'
3
+ import { TreeViewRootProvider, type TreeViewRootProviderProps } from '../tree-view'
4
+
5
+ export interface JsonTreeViewRootProviderProps extends TreeViewRootProviderProps<JsonNode> {}
6
+
7
+ const props: JsonTreeViewRootProviderProps = $props()
8
+ </script>
9
+
10
+ <TreeViewRootProvider data-scope="json-tree-view" {...props}>
11
+ {@render props.children?.()}
12
+ </TreeViewRootProvider>
@@ -0,0 +1,7 @@
1
+ import type { JsonNode } from '@zag-js/json-tree-utils';
2
+ import { type TreeViewRootProviderProps } from '../tree-view';
3
+ export interface JsonTreeViewRootProviderProps extends TreeViewRootProviderProps<JsonNode> {
4
+ }
5
+ declare const JsonTreeViewRootProvider: import("svelte").Component<JsonTreeViewRootProviderProps, {}, "">;
6
+ type JsonTreeViewRootProvider = ReturnType<typeof JsonTreeViewRootProvider>;
7
+ export default JsonTreeViewRootProvider;
@@ -0,0 +1,54 @@
1
+ <script lang="ts">
2
+ import { type JsonNode, getRootNode, nodeToString, nodeToValue } from '@zag-js/json-tree-utils'
3
+ import { createSplitProps } from '../../utils/create-split-props'
4
+ import { TreeView, createTreeCollection, type TreeViewRootProps } from '../tree-view'
5
+ import { getBranchValues } from './get-branch-value'
6
+ import { type JsonTreeViewOptions, JsonTreeViewPropsProvider } from './json-tree-view-props-context'
7
+
8
+ export interface JsonTreeViewRootBaseProps extends JsonTreeViewOptions {
9
+ /**
10
+ * The data to display in the tree.
11
+ */
12
+ data: unknown
13
+ /**
14
+ * The default expand level.
15
+ */
16
+ defaultExpandedDepth?: number
17
+ }
18
+
19
+ export interface JsonTreeViewRootProps
20
+ extends Omit<TreeViewRootProps<JsonNode>, 'collection'>,
21
+ JsonTreeViewRootBaseProps {}
22
+
23
+ const { data, defaultExpandedDepth, ...props }: JsonTreeViewRootProps = $props()
24
+
25
+ const splitJsonTreeViewProps = createSplitProps<JsonTreeViewOptions>()
26
+
27
+ const [jsonTreeProps, localProps] = $derived(
28
+ splitJsonTreeViewProps(props, [
29
+ 'maxPreviewItems',
30
+ 'collapseStringsAfterLength',
31
+ 'quotesOnKeys',
32
+ 'groupArraysAfterLength',
33
+ 'showNonenumerable',
34
+ ]),
35
+ )
36
+
37
+ const collection = $derived(
38
+ createTreeCollection<JsonNode>({
39
+ nodeToValue,
40
+ nodeToString,
41
+ rootNode: getRootNode(data),
42
+ }),
43
+ )
44
+
45
+ const defaultExpandedValue = $derived(
46
+ defaultExpandedDepth != null ? getBranchValues(collection, defaultExpandedDepth) : undefined,
47
+ )
48
+
49
+ JsonTreeViewPropsProvider(() => jsonTreeProps)
50
+ </script>
51
+
52
+ <TreeView.Root data-scope="json-tree-view" {collection} {defaultExpandedValue} {...localProps}>
53
+ {@render props.children?.()}
54
+ </TreeView.Root>
@@ -0,0 +1,18 @@
1
+ import { type JsonNode } from '@zag-js/json-tree-utils';
2
+ import { type TreeViewRootProps } from '../tree-view';
3
+ import { type JsonTreeViewOptions } from './json-tree-view-props-context';
4
+ export interface JsonTreeViewRootBaseProps extends JsonTreeViewOptions {
5
+ /**
6
+ * The data to display in the tree.
7
+ */
8
+ data: unknown;
9
+ /**
10
+ * The default expand level.
11
+ */
12
+ defaultExpandedDepth?: number;
13
+ }
14
+ export interface JsonTreeViewRootProps extends Omit<TreeViewRootProps<JsonNode>, 'collection'>, JsonTreeViewRootBaseProps {
15
+ }
16
+ declare const JsonTreeViewRoot: import("svelte").Component<JsonTreeViewRootProps, {}, "">;
17
+ type JsonTreeViewRoot = ReturnType<typeof JsonTreeViewRoot>;
18
+ export default JsonTreeViewRoot;
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import { createSplitProps } from '../../utils/create-split-props'
3
+ import { TreeView, useTreeViewContext, type TreeViewTreeProps } from '../tree-view'
4
+ import JsonTreeViewNode, { type JsonTreeViewNodeBaseProps } from './json-tree-view-node.svelte'
5
+
6
+ export interface JsonTreeViewTreeBaseProps extends JsonTreeViewNodeBaseProps {}
7
+
8
+ export interface JsonTreeViewTreeProps extends TreeViewTreeProps, JsonTreeViewTreeBaseProps {}
9
+
10
+ const props: JsonTreeViewTreeProps = $props()
11
+
12
+ const splitTreeNodeProps = createSplitProps<JsonTreeViewNodeBaseProps>()
13
+ const [nodeProps, treeProps] = splitTreeNodeProps(props, ['arrow', 'indentGuide', 'renderValue'])
14
+
15
+ const tree = useTreeViewContext()
16
+ const children = $derived(tree().collection.getNodeChildren(tree().collection.rootNode))
17
+ </script>
18
+
19
+ <TreeView.Tree data-scope="json-tree-view" {...treeProps}>
20
+ {#each children as child, index (index)}
21
+ <JsonTreeViewNode node={child} indexPath={[index]} {...nodeProps} />
22
+ {/each}
23
+ </TreeView.Tree>
@@ -0,0 +1,9 @@
1
+ import { type TreeViewTreeProps } from '../tree-view';
2
+ import { type JsonTreeViewNodeBaseProps } from './json-tree-view-node.svelte';
3
+ export interface JsonTreeViewTreeBaseProps extends JsonTreeViewNodeBaseProps {
4
+ }
5
+ export interface JsonTreeViewTreeProps extends TreeViewTreeProps, JsonTreeViewTreeBaseProps {
6
+ }
7
+ declare const JsonTreeViewTree: import("svelte").Component<JsonTreeViewTreeProps, {}, "">;
8
+ type JsonTreeViewTree = ReturnType<typeof JsonTreeViewTree>;
9
+ export default JsonTreeViewTree;
@@ -0,0 +1,31 @@
1
+ <script lang="ts">
2
+ import type { JsonNodeHastElement } from '@zag-js/json-tree-utils'
3
+ import JsonTreeViewValueNode from './json-tree-view-value-node.svelte'
4
+ import type { Snippet } from 'svelte'
5
+
6
+ interface JsonTreeViewValueNodeProps {
7
+ node: JsonNodeHastElement
8
+ renderValue?: Snippet<[JsonNodeHastElement]>
9
+ }
10
+
11
+ let { node, renderValue }: JsonTreeViewValueNodeProps = $props()
12
+ </script>
13
+
14
+ {#if node.type === 'text'}
15
+ {#if renderValue}
16
+ {@render renderValue(node)}
17
+ {:else}
18
+ {node.value}
19
+ {/if}
20
+ {:else}
21
+ <svelte:element
22
+ this={node.tagName}
23
+ data-root={node.properties.root ? '' : undefined}
24
+ data-type={node.properties.nodeType}
25
+ data-kind={node.properties.kind}
26
+ >
27
+ {#each node.children as child, index (index)}
28
+ <JsonTreeViewValueNode node={child} {renderValue} />
29
+ {/each}
30
+ </svelte:element>
31
+ {/if}
@@ -0,0 +1,10 @@
1
+ import type { JsonNodeHastElement } from '@zag-js/json-tree-utils';
2
+ import JsonTreeViewValueNode from './json-tree-view-value-node.svelte';
3
+ import type { Snippet } from 'svelte';
4
+ interface JsonTreeViewValueNodeProps {
5
+ node: JsonNodeHastElement;
6
+ renderValue?: Snippet<[JsonNodeHastElement]>;
7
+ }
8
+ declare const JsonTreeViewValueNode: import("svelte").Component<JsonTreeViewValueNodeProps, {}, "">;
9
+ type JsonTreeViewValueNode = ReturnType<typeof JsonTreeViewValueNode>;
10
+ export default JsonTreeViewValueNode;
@@ -0,0 +1,3 @@
1
+ export { default as Root, type JsonTreeViewRootBaseProps as RootBaseProps, type JsonTreeViewRootProps as RootProps, } from './json-tree-view-root.svelte';
2
+ export { default as RootProvider, type JsonTreeViewRootProviderProps as RootProviderProps, } from './json-tree-view-root-provider.svelte';
3
+ export { default as Tree, type JsonTreeViewTreeBaseProps as TreeBaseProps, type JsonTreeViewTreeProps as TreeProps, } from './json-tree-view-tree.svelte';
@@ -0,0 +1,3 @@
1
+ export { default as Root, } from './json-tree-view-root.svelte';
2
+ export { default as RootProvider, } from './json-tree-view-root-provider.svelte';
3
+ export { default as Tree, } from './json-tree-view-tree.svelte';
@@ -0,0 +1,10 @@
1
+ import { type JsonNode } from '@zag-js/json-tree-utils';
2
+ 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'> {
5
+ data: unknown;
6
+ defaultExpandedDepth?: number;
7
+ }
8
+ export interface UseJsonTreeViewReturn extends UseTreeViewReturn<JsonNode> {
9
+ }
10
+ export declare const useJsonTreeView: (props: MaybeFunction<UseJsonTreeViewProps>) => UseJsonTreeViewReturn;
@@ -0,0 +1,23 @@
1
+ import { runIfFn } from '../../utils/run-if-fn';
2
+ import { getRootNode, nodeToString, nodeToValue } from '@zag-js/json-tree-utils';
3
+ import { untrack } from 'svelte';
4
+ import { createTreeCollection, useTreeView } from '../tree-view';
5
+ import { getBranchValues } from './get-branch-value';
6
+ export const useJsonTreeView = (props) => {
7
+ const machineProps = $derived.by(() => {
8
+ const { data, defaultExpandedDepth, ...restProps } = runIfFn(props);
9
+ const collection = createTreeCollection({
10
+ nodeToValue,
11
+ nodeToString,
12
+ rootNode: getRootNode(data),
13
+ });
14
+ const defaultExpandedValue = untrack(() => defaultExpandedDepth != null ? getBranchValues(collection, defaultExpandedDepth) : undefined);
15
+ return {
16
+ collection,
17
+ defaultExpandedValue,
18
+ ...restProps,
19
+ typeahead: false,
20
+ };
21
+ });
22
+ return useTreeView(() => machineProps);
23
+ };
@@ -4,10 +4,17 @@ export interface ListboxContextProps<T extends CollectionItem> {
4
4
  render: Snippet<[UseListboxContext<T>]>;
5
5
  }
6
6
  import type { UseListboxContext } from './use-listbox-context.js';
7
+ declare function $$render<T extends CollectionItem>(): {
8
+ props: ListboxContextProps<T>;
9
+ exports: {};
10
+ bindings: "";
11
+ slots: {};
12
+ events: {};
13
+ };
7
14
  declare class __sveltets_Render<T extends CollectionItem> {
8
- props(): ListboxContextProps<T>;
9
- events(): {};
10
- slots(): {};
15
+ props(): ReturnType<typeof $$render<T>>['props'];
16
+ events(): ReturnType<typeof $$render<T>>['events'];
17
+ slots(): ReturnType<typeof $$render<T>>['slots'];
11
18
  bindings(): "";
12
19
  exports(): {};
13
20
  }
@@ -8,10 +8,17 @@ export interface ListboxRootProviderProps<T extends CollectionItem> extends Assi
8
8
  import type { Assign, HTMLProps, PolymorphicProps } from '../../types.js';
9
9
  import type { CollectionItem } from '../collection/index.js';
10
10
  import type { UseListboxReturn } from './use-listbox.svelte.js';
11
+ declare function $$render<T extends CollectionItem>(): {
12
+ props: ListboxRootProviderProps<T>;
13
+ exports: {};
14
+ bindings: "";
15
+ slots: {};
16
+ events: {};
17
+ };
11
18
  declare class __sveltets_Render<T extends CollectionItem> {
12
- props(): ListboxRootProviderProps<T>;
13
- events(): {};
14
- slots(): {};
19
+ props(): ReturnType<typeof $$render<T>>['props'];
20
+ events(): ReturnType<typeof $$render<T>>['events'];
21
+ slots(): ReturnType<typeof $$render<T>>['slots'];
15
22
  bindings(): "";
16
23
  exports(): {};
17
24
  }
@@ -5,10 +5,17 @@ export interface ListboxRootBaseProps<T extends CollectionItem> extends UseListb
5
5
  }
6
6
  export interface ListboxRootProps<T extends CollectionItem> extends Assign<HTMLProps<'div'>, ListboxRootBaseProps<T>> {
7
7
  }
8
+ declare function $$render<T extends CollectionItem>(): {
9
+ props: ListboxRootProps<T>;
10
+ exports: {};
11
+ bindings: "value" | "highlightedValue";
12
+ slots: {};
13
+ events: {};
14
+ };
8
15
  declare class __sveltets_Render<T extends CollectionItem> {
9
- props(): ListboxRootProps<T>;
10
- events(): {};
11
- slots(): {};
16
+ props(): ReturnType<typeof $$render<T>>['props'];
17
+ events(): ReturnType<typeof $$render<T>>['events'];
18
+ slots(): ReturnType<typeof $$render<T>>['slots'];
12
19
  bindings(): "value" | "highlightedValue";
13
20
  exports(): {};
14
21
  }
@@ -1,7 +1,18 @@
1
1
  <script module lang="ts">
2
2
  import type { Snippet } from 'svelte'
3
+
3
4
  export interface PortalProps {
5
+ /**
6
+ * If true, the portal will not be rendered.
7
+ */
8
+ disabled?: boolean
9
+ /**
10
+ * The container to render the portal into.
11
+ */
4
12
  container?: HTMLElement
13
+ /**
14
+ * The children to render in the portal.
15
+ */
5
16
  children: Snippet
6
17
  }
7
18
  </script>
@@ -13,13 +24,37 @@
13
24
  import { getAllContexts, mount, unmount } from 'svelte'
14
25
  import PortalConsumer from './portal-consumer.svelte'
15
26
 
16
- const { container = globalThis?.document?.body, children }: PortalProps = $props()
27
+ const { container = globalThis?.document?.body, children, disabled = false }: PortalProps = $props()
17
28
 
18
29
  const context = getAllContexts()
19
30
 
31
+ let instance: ReturnType<typeof mount> | null = null
32
+
33
+ const unmountInstance = () => {
34
+ if (instance) {
35
+ unmount(instance)
36
+ instance = null
37
+ }
38
+ }
39
+
20
40
  $effect(() => {
21
- mount(PortalConsumer, { target: container, props: { children }, context })
41
+ if (disabled || !container) {
42
+ unmountInstance()
43
+ return
44
+ }
45
+
46
+ instance = mount(PortalConsumer, {
47
+ target: container,
48
+ props: { children },
49
+ context,
50
+ })
22
51
 
23
- return () => unmount(PortalConsumer)
52
+ return () => {
53
+ unmountInstance()
54
+ }
24
55
  })
25
56
  </script>
57
+
58
+ {#if disabled}
59
+ {@render children?.()}
60
+ {/if}
@@ -1,6 +1,16 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  export interface PortalProps {
3
+ /**
4
+ * If true, the portal will not be rendered.
5
+ */
6
+ disabled?: boolean;
7
+ /**
8
+ * The container to render the portal into.
9
+ */
3
10
  container?: HTMLElement;
11
+ /**
12
+ * The children to render in the portal.
13
+ */
4
14
  children: Snippet;
5
15
  }
6
16
  declare const Portal: import("svelte").Component<PortalProps, {}, "">;
@@ -4,10 +4,17 @@ import type { UseSelectReturn } from './use-select.svelte';
4
4
  export interface SelectContextProps<T extends CollectionItem = CollectionItem> {
5
5
  render: Snippet<[UseSelectReturn<T>]>;
6
6
  }
7
+ declare function $$render<T extends CollectionItem = CollectionItem>(): {
8
+ props: SelectContextProps<T>;
9
+ exports: {};
10
+ bindings: "";
11
+ slots: {};
12
+ events: {};
13
+ };
7
14
  declare class __sveltets_Render<T extends CollectionItem = CollectionItem> {
8
- props(): SelectContextProps<T>;
9
- events(): {};
10
- slots(): {};
15
+ props(): ReturnType<typeof $$render<T>>['props'];
16
+ events(): ReturnType<typeof $$render<T>>['events'];
17
+ slots(): ReturnType<typeof $$render<T>>['slots'];
11
18
  bindings(): "";
12
19
  exports(): {};
13
20
  }
@@ -6,10 +6,17 @@ export interface SelectItemBaseProps<T extends CollectionItem = CollectionItem>
6
6
  }
7
7
  export interface SelectItemProps<T extends CollectionItem = CollectionItem> extends Assign<HTMLProps<'div'>, SelectItemBaseProps<T>> {
8
8
  }
9
+ declare function $$render<T extends CollectionItem = CollectionItem>(): {
10
+ props: SelectItemProps<T>;
11
+ exports: {};
12
+ bindings: "ref";
13
+ slots: {};
14
+ events: {};
15
+ };
9
16
  declare class __sveltets_Render<T extends CollectionItem = CollectionItem> {
10
- props(): SelectItemProps<T>;
11
- events(): {};
12
- slots(): {};
17
+ props(): ReturnType<typeof $$render<T>>['props'];
18
+ events(): ReturnType<typeof $$render<T>>['events'];
19
+ slots(): ReturnType<typeof $$render<T>>['slots'];
13
20
  bindings(): "ref";
14
21
  exports(): {};
15
22
  }
@@ -7,10 +7,17 @@ export interface SelectRootProviderBaseProps<T extends CollectionItem = Collecti
7
7
  export interface SelectRootProviderProps<T extends CollectionItem = CollectionItem> extends Assign<HTMLProps<'div'>, SelectRootProviderBaseProps<T>> {
8
8
  }
9
9
  import { type UsePresenceProps } from '../presence';
10
+ declare function $$render<T extends CollectionItem = CollectionItem>(): {
11
+ props: SelectRootProviderProps<T>;
12
+ exports: {};
13
+ bindings: "ref";
14
+ slots: {};
15
+ events: {};
16
+ };
10
17
  declare class __sveltets_Render<T extends CollectionItem = CollectionItem> {
11
- props(): SelectRootProviderProps<T>;
12
- events(): {};
13
- slots(): {};
18
+ props(): ReturnType<typeof $$render<T>>['props'];
19
+ events(): ReturnType<typeof $$render<T>>['events'];
20
+ slots(): ReturnType<typeof $$render<T>>['slots'];
14
21
  bindings(): "ref";
15
22
  exports(): {};
16
23
  }
@@ -6,10 +6,17 @@ export interface SelectRootBaseProps<T extends CollectionItem = CollectionItem>
6
6
  export interface SelectRootProps<T extends CollectionItem = CollectionItem> extends Assign<HTMLProps<'div'>, SelectRootBaseProps<T>> {
7
7
  }
8
8
  import { type UsePresenceProps } from '../presence';
9
+ declare function $$render<T extends CollectionItem = CollectionItem>(): {
10
+ props: SelectRootProps<T>;
11
+ exports: {};
12
+ bindings: "ref" | "value";
13
+ slots: {};
14
+ events: {};
15
+ };
9
16
  declare class __sveltets_Render<T extends CollectionItem = CollectionItem> {
10
- props(): SelectRootProps<T>;
11
- events(): {};
12
- slots(): {};
17
+ props(): ReturnType<typeof $$render<T>>['props'];
18
+ events(): ReturnType<typeof $$render<T>>['events'];
19
+ slots(): ReturnType<typeof $$render<T>>['slots'];
13
20
  bindings(): "ref" | "value";
14
21
  exports(): {};
15
22
  }
@@ -13,30 +13,37 @@
13
13
  import { useSignaturePad } from './use-signature-pad.svelte'
14
14
  import { SignaturePadProvider } from './use-signature-pad-context'
15
15
 
16
- let { ref = $bindable(null), ...props }: SignaturePadRootProps = $props()
16
+ let { ref = $bindable(null), paths = $bindable(), ...props }: SignaturePadRootProps = $props()
17
17
  const providedId = $props.id()
18
18
 
19
19
  const [useSignaturePadProps, localProps] = $derived(
20
20
  createSplitProps<UseSignaturePadProps>()(props, [
21
21
  'id',
22
22
  'ids',
23
+ 'defaultPaths',
23
24
  'drawing',
24
25
  'disabled',
25
26
  'readOnly',
26
27
  'name',
27
28
  'onDraw',
28
29
  'onDrawEnd',
30
+ 'paths',
29
31
  'required',
30
32
  'translations',
31
33
  ]),
32
34
  )
33
35
 
34
- const resolvedProps = $derived<UseSignaturePadProps>({
36
+ const machineProps = $derived<UseSignaturePadProps>({
35
37
  ...useSignaturePadProps,
36
38
  id: useSignaturePadProps.id ?? providedId,
39
+ paths,
40
+ onDraw: (details) => {
41
+ useSignaturePadProps.onDraw?.(details)
42
+ if (paths !== undefined) paths = details.paths
43
+ },
37
44
  })
38
45
 
39
- const signaturePad = useSignaturePad(() => resolvedProps)
46
+ const signaturePad = useSignaturePad(() => machineProps)
40
47
  const mergedProps = $derived(mergeProps(signaturePad().getRootProps(), localProps))
41
48
 
42
49
  SignaturePadProvider(signaturePad)
@@ -4,6 +4,6 @@ export interface SignaturePadRootBaseProps extends UseSignaturePadProps, Polymor
4
4
  }
5
5
  export interface SignaturePadRootProps extends Assign<HTMLProps<'div'>, SignaturePadRootBaseProps> {
6
6
  }
7
- declare const SignaturePadRoot: import("svelte").Component<SignaturePadRootProps, {}, "ref">;
7
+ declare const SignaturePadRoot: import("svelte").Component<SignaturePadRootProps, {}, "ref" | "paths">;
8
8
  type SignaturePadRoot = ReturnType<typeof SignaturePadRoot>;
9
9
  export default SignaturePadRoot;
@@ -1 +1 @@
1
- export declare const tourAnatomy: import("@zag-js/anatomy").AnatomyInstance<"title" | "content" | "control" | "positioner" | "description" | "actionTrigger" | "closeTrigger" | "progressText" | "arrow" | "arrowTip" | "backdrop" | "spotlight">;
1
+ export declare const tourAnatomy: import("@zag-js/anatomy").AnatomyInstance<"title" | "content" | "control" | "positioner" | "arrow" | "description" | "actionTrigger" | "closeTrigger" | "progressText" | "arrowTip" | "backdrop" | "spotlight">;