ui-ingredients 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. package/README.md +75 -75
  2. package/dist/accordion/context.svelte.js +1 -1
  3. package/dist/accordion/item-content.svelte +22 -13
  4. package/dist/accordion/item-indicator.svelte +22 -13
  5. package/dist/accordion/item-trigger.svelte +22 -13
  6. package/dist/accordion/item.svelte +35 -24
  7. package/dist/accordion/root.svelte +61 -40
  8. package/dist/avatar/fallback.svelte +21 -12
  9. package/dist/avatar/image.svelte +19 -10
  10. package/dist/avatar/root.svelte +46 -29
  11. package/dist/carousel/indicator-group.svelte +21 -12
  12. package/dist/carousel/indicator.svelte +31 -20
  13. package/dist/carousel/item-group.svelte +21 -12
  14. package/dist/carousel/item.svelte +22 -12
  15. package/dist/carousel/next-trigger.svelte +21 -12
  16. package/dist/carousel/prev-trigger.svelte +21 -12
  17. package/dist/carousel/root.svelte +58 -40
  18. package/dist/carousel/viewport.svelte +21 -12
  19. package/dist/checkbox/control.svelte +21 -12
  20. package/dist/checkbox/hidden-input.svelte +19 -10
  21. package/dist/checkbox/indicator.svelte +21 -12
  22. package/dist/checkbox/label.svelte +21 -12
  23. package/dist/checkbox/root.svelte +62 -44
  24. package/dist/clipboard/control.svelte +21 -12
  25. package/dist/clipboard/indicator.svelte +23 -12
  26. package/dist/clipboard/input.svelte +19 -10
  27. package/dist/clipboard/label.svelte +21 -12
  28. package/dist/clipboard/root.svelte +51 -30
  29. package/dist/clipboard/trigger.svelte +21 -12
  30. package/dist/collapsible/content.svelte +21 -12
  31. package/dist/collapsible/root.svelte +57 -36
  32. package/dist/collapsible/trigger.svelte +19 -12
  33. package/dist/combobox/clear-trigger.svelte +21 -12
  34. package/dist/combobox/content.svelte +21 -12
  35. package/dist/combobox/context.svelte.js +3 -3
  36. package/dist/combobox/control.svelte +21 -12
  37. package/dist/combobox/input.svelte +19 -10
  38. package/dist/combobox/item-group-label.svelte +29 -20
  39. package/dist/combobox/item-group.svelte +26 -14
  40. package/dist/combobox/item-indicator.svelte +22 -13
  41. package/dist/combobox/item-text.svelte +26 -17
  42. package/dist/combobox/item.svelte +35 -24
  43. package/dist/combobox/label.svelte +21 -12
  44. package/dist/combobox/list.svelte +21 -12
  45. package/dist/combobox/positioner.svelte +21 -12
  46. package/dist/combobox/root.svelte +122 -104
  47. package/dist/combobox/trigger.svelte +21 -12
  48. package/dist/dialog/backdrop.svelte +21 -12
  49. package/dist/dialog/close-trigger.svelte +21 -12
  50. package/dist/dialog/content.svelte +21 -12
  51. package/dist/dialog/description.svelte +21 -12
  52. package/dist/dialog/positioner.svelte +21 -12
  53. package/dist/dialog/root.svelte +22 -10
  54. package/dist/dialog/title.svelte +21 -12
  55. package/dist/dialog/trigger.svelte +21 -12
  56. package/dist/hover-card/arrow-tip.svelte +21 -12
  57. package/dist/hover-card/arrow.svelte +21 -12
  58. package/dist/hover-card/content.svelte +21 -12
  59. package/dist/hover-card/positioner.svelte +21 -12
  60. package/dist/hover-card/root.svelte +25 -10
  61. package/dist/hover-card/trigger.svelte +21 -12
  62. package/dist/number-input/control.svelte +21 -12
  63. package/dist/number-input/decrement-trigger.svelte +22 -12
  64. package/dist/number-input/increment-trigger.svelte +22 -12
  65. package/dist/number-input/input.svelte +19 -10
  66. package/dist/number-input/label.svelte +21 -12
  67. package/dist/number-input/root.svelte +93 -72
  68. package/dist/number-input/scrubber.svelte +21 -12
  69. package/dist/pagination/ellipsis.svelte +23 -12
  70. package/dist/pagination/item.svelte +31 -20
  71. package/dist/pagination/next-trigger.svelte +21 -12
  72. package/dist/pagination/prev-trigger.svelte +21 -12
  73. package/dist/pagination/root.svelte +63 -42
  74. package/dist/pin-input/clear-trigger.svelte +25 -17
  75. package/dist/pin-input/hidden-input.svelte +19 -10
  76. package/dist/pin-input/input.svelte +20 -10
  77. package/dist/pin-input/label.svelte +21 -12
  78. package/dist/pin-input/root.svelte +82 -64
  79. package/dist/popover/arrow-tip.svelte +21 -12
  80. package/dist/popover/arrow.svelte +21 -12
  81. package/dist/popover/close-trigger.svelte +21 -12
  82. package/dist/popover/content.svelte +21 -12
  83. package/dist/popover/description.svelte +21 -12
  84. package/dist/popover/positioner.svelte +21 -12
  85. package/dist/popover/root.svelte +22 -10
  86. package/dist/popover/title.svelte +21 -12
  87. package/dist/popover/trigger.svelte +21 -12
  88. package/dist/portal/root.svelte +20 -10
  89. package/dist/presence/root.svelte +39 -27
  90. package/dist/progress/circle-range.svelte +21 -12
  91. package/dist/progress/circle-track.svelte +21 -12
  92. package/dist/progress/circle.svelte +21 -12
  93. package/dist/progress/label.svelte +21 -12
  94. package/dist/progress/range.svelte +21 -12
  95. package/dist/progress/root.svelte +54 -36
  96. package/dist/progress/track.svelte +21 -12
  97. package/dist/progress/value-text.svelte +25 -16
  98. package/dist/radio-group/context.svelte.js +1 -1
  99. package/dist/radio-group/indicator.svelte +21 -12
  100. package/dist/radio-group/item-control.svelte +22 -13
  101. package/dist/radio-group/item-hidden-input.svelte +20 -11
  102. package/dist/radio-group/item-text.svelte +22 -13
  103. package/dist/radio-group/item.svelte +37 -26
  104. package/dist/radio-group/label.svelte +21 -12
  105. package/dist/radio-group/root.svelte +61 -40
  106. package/dist/select/clear-trigger.svelte +21 -12
  107. package/dist/select/content.svelte +21 -12
  108. package/dist/select/context.svelte.js +3 -3
  109. package/dist/select/control.svelte +21 -12
  110. package/dist/select/hidden-select.svelte +21 -12
  111. package/dist/select/indicator.svelte +21 -12
  112. package/dist/select/item-group-label.svelte +24 -15
  113. package/dist/select/item-group.svelte +26 -14
  114. package/dist/select/item-indicator.svelte +22 -13
  115. package/dist/select/item-text.svelte +26 -17
  116. package/dist/select/item.svelte +35 -24
  117. package/dist/select/label.svelte +21 -12
  118. package/dist/select/list.svelte +21 -12
  119. package/dist/select/positioner.svelte +21 -12
  120. package/dist/select/root.svelte +96 -78
  121. package/dist/select/trigger.svelte +21 -12
  122. package/dist/select/value-text.svelte +27 -18
  123. package/dist/slider/context.svelte.js +1 -1
  124. package/dist/slider/control.svelte +21 -12
  125. package/dist/slider/hidden-input.svelte +20 -11
  126. package/dist/slider/label.svelte +21 -12
  127. package/dist/slider/marker-group.svelte +21 -12
  128. package/dist/slider/marker.svelte +29 -19
  129. package/dist/slider/range.svelte +21 -12
  130. package/dist/slider/root.svelte +84 -66
  131. package/dist/slider/thumb.svelte +35 -24
  132. package/dist/slider/track.svelte +21 -12
  133. package/dist/slider/value-text.svelte +25 -16
  134. package/dist/steps/content.svelte +22 -12
  135. package/dist/steps/indicator.svelte +22 -13
  136. package/dist/steps/item.svelte +24 -13
  137. package/dist/steps/list.svelte +21 -12
  138. package/dist/steps/next-trigger.svelte +21 -12
  139. package/dist/steps/prev-trigger.svelte +21 -12
  140. package/dist/steps/progress.svelte +21 -12
  141. package/dist/steps/root.svelte +56 -38
  142. package/dist/steps/separator.svelte +22 -13
  143. package/dist/steps/trigger.svelte +22 -13
  144. package/dist/switch/control.svelte +21 -12
  145. package/dist/switch/hidden-input.svelte +19 -10
  146. package/dist/switch/label.svelte +21 -12
  147. package/dist/switch/root.svelte +64 -46
  148. package/dist/switch/thumb.svelte +21 -12
  149. package/dist/tabs/content.svelte +22 -12
  150. package/dist/tabs/list.svelte +21 -12
  151. package/dist/tabs/root.svelte +57 -42
  152. package/dist/tabs/trigger.svelte +22 -12
  153. package/dist/toast/action-trigger.svelte +21 -12
  154. package/dist/toast/actor.svelte +22 -11
  155. package/dist/toast/close-trigger.svelte +21 -12
  156. package/dist/toast/description.svelte +25 -16
  157. package/dist/toast/root.svelte +25 -16
  158. package/dist/toast/title.svelte +25 -16
  159. package/dist/toast/toaster.svelte +40 -25
  160. package/dist/toggle-group/item.svelte +22 -12
  161. package/dist/toggle-group/root.svelte +61 -40
  162. package/dist/tooltip/arrow-tip.svelte +21 -12
  163. package/dist/tooltip/arrow.svelte +21 -12
  164. package/dist/tooltip/content.svelte +21 -12
  165. package/dist/tooltip/positioner.svelte +21 -12
  166. package/dist/tooltip/root.svelte +22 -10
  167. package/dist/tooltip/trigger.svelte +21 -12
  168. package/package.json +6 -14
package/README.md CHANGED
@@ -1,75 +1,75 @@
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 {Clipboard} from 'ui-ingredients';
16
-
17
- let {data} = $props();
18
- </script>
19
-
20
- <Clipboard.Root value={data.token}>
21
- <Clipboard.Label>Token</Clipboard.Label>
22
- <Clipboard.Control>
23
- <Clipboard.Input />
24
- <Clipboard.Trigger>
25
- <Clipboard.Indicator copied>
26
- <CheckIcon />
27
- </Clipboard.Indicator>
28
- <Clipboard.Indicator>
29
- <CopyIcon />
30
- </Clipboard.Indicator>
31
- </Clipboard.Trigger>
32
- </Clipboard.Control>
33
- </Clipboard.Root>
34
- ```
35
-
36
- ## Components
37
-
38
- - 🟢 Accordion
39
- - 🟢 Avatar
40
- - 🟢 Carousel
41
- - 🟢 Checkbox
42
- - 🟢 Clipboard
43
- - 🟢 Collapsible
44
- - ⚪ ColorPicker
45
- - 🟢 Combobox
46
- - 🟡 DatePicker
47
- - 🟢 Dialog
48
- - ⚪ Editable
49
- - ⚪ FileUpload
50
- - 🟢 HoverCard
51
- - 🟡 Menu
52
- - 🟢 NumberInput
53
- - 🟢 Pagination
54
- - 🟢 PinInput
55
- - 🟢 Popover
56
- - 🟢 Portal
57
- - 🟢 Presence
58
- - 🟢 Progress
59
- - ⚪ QRCode
60
- - 🟢 RadioGroup
61
- - ⚪ RatingGroup
62
- - 🟢 Select
63
- - ⚪ SignaturePad
64
- - 🟢 Slider
65
- - ⚪ Splitter
66
- - 🟢 Steps
67
- - 🟢 Switch
68
- - 🟢 Tabs
69
- - 🟡 TagsInput
70
- - ⚪ Timer
71
- - 🟢 Toast
72
- - 🟢 ToggleGroup
73
- - 🟢 Tooltip
74
-
75
- View components demo [here](https://ui-ingredients.vercel.app/)
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 {Clipboard} from 'ui-ingredients';
16
+
17
+ let {data} = $props();
18
+ </script>
19
+
20
+ <Clipboard.Root value={data.token}>
21
+ <Clipboard.Label>Token</Clipboard.Label>
22
+ <Clipboard.Control>
23
+ <Clipboard.Input />
24
+ <Clipboard.Trigger>
25
+ <Clipboard.Indicator copied>
26
+ <CheckIcon />
27
+ </Clipboard.Indicator>
28
+ <Clipboard.Indicator>
29
+ <CopyIcon />
30
+ </Clipboard.Indicator>
31
+ </Clipboard.Trigger>
32
+ </Clipboard.Control>
33
+ </Clipboard.Root>
34
+ ```
35
+
36
+ ## Components
37
+
38
+ - 🟢 Accordion
39
+ - 🟢 Avatar
40
+ - 🟢 Carousel
41
+ - 🟢 Checkbox
42
+ - 🟢 Clipboard
43
+ - 🟢 Collapsible
44
+ - ⚪ ColorPicker
45
+ - 🟢 Combobox
46
+ - 🟡 DatePicker
47
+ - 🟢 Dialog
48
+ - ⚪ Editable
49
+ - ⚪ FileUpload
50
+ - 🟢 HoverCard
51
+ - 🟡 Menu
52
+ - 🟢 NumberInput
53
+ - 🟢 Pagination
54
+ - 🟢 PinInput
55
+ - 🟢 Popover
56
+ - 🟢 Portal
57
+ - 🟢 Presence
58
+ - 🟢 Progress
59
+ - ⚪ QRCode
60
+ - 🟢 RadioGroup
61
+ - ⚪ RatingGroup
62
+ - 🟢 Select
63
+ - ⚪ SignaturePad
64
+ - 🟢 Slider
65
+ - ⚪ Splitter
66
+ - 🟢 Steps
67
+ - 🟢 Switch
68
+ - 🟢 Tabs
69
+ - 🟡 TagsInput
70
+ - ⚪ Timer
71
+ - 🟢 Toast
72
+ - 🟢 ToggleGroup
73
+ - 🟢 Tooltip
74
+
75
+ View components demo [here](https://ui-ingredients.vercel.app/)
@@ -13,7 +13,7 @@ export function useAccordionContext() {
13
13
  return getContext('Accordion');
14
14
  }
15
15
  export function setAccordionItemContext(value) {
16
- setContext('AccordionItem', reflect(() => value));
16
+ setContext('AccordionItem', value);
17
17
  }
18
18
  export function useAccordionItemContext() {
19
19
  return getContext('AccordionItem');
@@ -1,13 +1,22 @@
1
- <script lang="ts" context="module"></script>
2
-
3
- <script lang="ts">import { mergeProps } from "@zag-js/svelte";
4
- import { useAccordionContext, useAccordionItemContext } from "./context.svelte.js";
5
- let { children, ...props } = $props();
6
- let context = useAccordionContext();
7
- let itemContext = useAccordionItemContext();
8
- let attrs = $derived(mergeProps(props, context.getItemContentProps(itemContext)));
9
- </script>
10
-
11
- <div {...attrs}>
12
- {@render children?.()}
13
- </div>
1
+ <script lang="ts" context="module">
2
+ import type {Assign} from '../types.js';
3
+ import type {SvelteHTMLElements} from 'svelte/elements';
4
+
5
+ export interface AccordionItemContentProps extends Assign<SvelteHTMLElements['div'], {}> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import {mergeProps} from '@zag-js/svelte';
10
+ import {useAccordionContext, useAccordionItemContext} from './context.svelte.js';
11
+
12
+ let {children, ...props}: AccordionItemContentProps = $props();
13
+
14
+ let context = useAccordionContext();
15
+ let itemContext = useAccordionItemContext();
16
+
17
+ let attrs = $derived(mergeProps(props, context.getItemContentProps(itemContext)));
18
+ </script>
19
+
20
+ <div {...attrs}>
21
+ {@render children?.()}
22
+ </div>
@@ -1,13 +1,22 @@
1
- <script lang="ts" context="module"></script>
2
-
3
- <script lang="ts">import { mergeProps } from "@zag-js/svelte";
4
- import { useAccordionContext, useAccordionItemContext } from "./context.svelte.js";
5
- let { children, ...props } = $props();
6
- let context = useAccordionContext();
7
- let itemContext = useAccordionItemContext();
8
- let attrs = $derived(mergeProps(props, context.getItemIndicatorProps(itemContext)));
9
- </script>
10
-
11
- <span {...attrs}>
12
- {@render children?.()}
13
- </span>
1
+ <script lang="ts" context="module">
2
+ import type {Assign} from '../types.js';
3
+ import type {SvelteHTMLElements} from 'svelte/elements';
4
+
5
+ export interface AccordionIndicatorProps extends Assign<SvelteHTMLElements['span'], {}> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import {mergeProps} from '@zag-js/svelte';
10
+ import {useAccordionContext, useAccordionItemContext} from './context.svelte.js';
11
+
12
+ let {children, ...props}: AccordionIndicatorProps = $props();
13
+
14
+ let context = useAccordionContext();
15
+ let itemContext = useAccordionItemContext();
16
+
17
+ let attrs = $derived(mergeProps(props, context.getItemIndicatorProps(itemContext)));
18
+ </script>
19
+
20
+ <span {...attrs}>
21
+ {@render children?.()}
22
+ </span>
@@ -1,13 +1,22 @@
1
- <script lang="ts" context="module"></script>
2
-
3
- <script lang="ts">import { mergeProps } from "@zag-js/svelte";
4
- import { useAccordionContext, useAccordionItemContext } from "./context.svelte.js";
5
- let { children, ...props } = $props();
6
- let context = useAccordionContext();
7
- let itemContext = useAccordionItemContext();
8
- let attrs = $derived(mergeProps(props, context.getItemTriggerProps(itemContext)));
9
- </script>
10
-
11
- <button type="button" {...attrs}>
12
- {@render children?.()}
13
- </button>
1
+ <script lang="ts" context="module">
2
+ import type {Assign} from '../types.js';
3
+ import type {SvelteHTMLElements} from 'svelte/elements';
4
+
5
+ export interface AccordionItemTriggerProps extends Assign<SvelteHTMLElements['button'], {}> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import {mergeProps} from '@zag-js/svelte';
10
+ import {useAccordionContext, useAccordionItemContext} from './context.svelte.js';
11
+
12
+ let {children, ...props}: AccordionItemTriggerProps = $props();
13
+
14
+ let context = useAccordionContext();
15
+ let itemContext = useAccordionItemContext();
16
+
17
+ let attrs = $derived(mergeProps(props, context.getItemTriggerProps(itemContext)));
18
+ </script>
19
+
20
+ <button type="button" {...attrs}>
21
+ {@render children?.()}
22
+ </button>
@@ -1,24 +1,35 @@
1
- <script lang="ts" context="module"></script>
2
-
3
- <script lang="ts">import { mergeProps } from "@zag-js/svelte";
4
- import { setAccordionItemContext, useAccordionContext } from "./context.svelte.js";
5
- let { value, disabled, children, ...props } = $props();
6
- let context = useAccordionContext();
7
- let attrs = $derived(
8
- mergeProps(
9
- props,
10
- context.getItemProps({
11
- value,
12
- disabled
13
- })
14
- )
15
- );
16
- setAccordionItemContext({
17
- value,
18
- disabled
19
- });
20
- </script>
21
-
22
- <div {...attrs}>
23
- {@render children?.()}
24
- </div>
1
+ <script lang="ts" context="module">
2
+ import type {Assign} from '../types.js';
3
+ import type {ItemProps} from '@zag-js/accordion';
4
+ import type {SvelteHTMLElements} from 'svelte/elements';
5
+
6
+ export interface AccordionItemProps extends Assign<SvelteHTMLElements['div'], ItemProps> {}
7
+ </script>
8
+
9
+ <script lang="ts">
10
+ import {mergeProps} from '@zag-js/svelte';
11
+ import {setAccordionItemContext, useAccordionContext} from './context.svelte.js';
12
+
13
+ let {value, disabled, children, ...props}: AccordionItemProps = $props();
14
+
15
+ let context = useAccordionContext();
16
+
17
+ let attrs = $derived(
18
+ mergeProps(
19
+ props,
20
+ context.getItemProps({
21
+ value,
22
+ disabled,
23
+ }),
24
+ ),
25
+ );
26
+
27
+ setAccordionItemContext({
28
+ value,
29
+ disabled,
30
+ });
31
+ </script>
32
+
33
+ <div {...attrs}>
34
+ {@render children?.()}
35
+ </div>
@@ -1,40 +1,61 @@
1
- <script lang="ts" context="module"></script>
2
-
3
- <script lang="ts">import { uuid } from "../utils.svelte.js";
4
- import { mergeProps } from "@zag-js/svelte";
5
- import { createAccordionContext, setAccordionContext } from "./context.svelte.js";
6
- let {
7
- id = uuid(),
8
- ids,
9
- dir,
10
- value,
11
- disabled,
12
- multiple,
13
- orientation,
14
- collapsible,
15
- onFocusChange,
16
- onValueChange,
17
- getRootNode,
18
- children,
19
- ...props
20
- } = $props();
21
- let context = createAccordionContext({
22
- id,
23
- ids,
24
- dir,
25
- value: $state.snapshot(value),
26
- multiple,
27
- disabled,
28
- collapsible,
29
- orientation,
30
- onFocusChange,
31
- onValueChange,
32
- getRootNode
33
- });
34
- let attrs = $derived(mergeProps(props, context.getRootProps()));
35
- setAccordionContext(context);
36
- </script>
37
-
38
- <div {...attrs}>
39
- {@render children?.(context)}
40
- </div>
1
+ <script lang="ts" context="module">
2
+ import type {Assign, OptionalId, WithoutChildren} from '../types.js';
3
+ import type {Snippet} from 'svelte';
4
+ import type {SvelteHTMLElements} from 'svelte/elements';
5
+ import type {
6
+ CreateAccordionContextProps,
7
+ CreateAccordionContextReturn,
8
+ } from './context.svelte.js';
9
+
10
+ export interface AccordionProps
11
+ extends Assign<
12
+ WithoutChildren<SvelteHTMLElements['div']>,
13
+ OptionalId<CreateAccordionContextProps>
14
+ > {
15
+ children?: Snippet<[CreateAccordionContextReturn]>;
16
+ }
17
+ </script>
18
+
19
+ <script lang="ts">
20
+ import {uuid} from '../utils.svelte.js';
21
+ import {mergeProps} from '@zag-js/svelte';
22
+ import {createAccordionContext, setAccordionContext} from './context.svelte.js';
23
+
24
+ let {
25
+ id = uuid(),
26
+ ids,
27
+ dir,
28
+ value,
29
+ disabled,
30
+ multiple,
31
+ orientation,
32
+ collapsible,
33
+ onFocusChange,
34
+ onValueChange,
35
+ getRootNode,
36
+ children,
37
+ ...props
38
+ }: AccordionProps = $props();
39
+
40
+ let context = createAccordionContext({
41
+ id,
42
+ ids,
43
+ dir,
44
+ value: $state.snapshot(value),
45
+ multiple,
46
+ disabled,
47
+ collapsible,
48
+ orientation,
49
+ onFocusChange,
50
+ onValueChange,
51
+ getRootNode,
52
+ });
53
+
54
+ let attrs = $derived(mergeProps(props, context.getRootProps()));
55
+
56
+ setAccordionContext(context);
57
+ </script>
58
+
59
+ <div {...attrs}>
60
+ {@render children?.(context)}
61
+ </div>
@@ -1,12 +1,21 @@
1
- <script lang="ts" context="module"></script>
2
-
3
- <script lang="ts">import { mergeProps } from "@zag-js/svelte";
4
- import { useAvatarContext } from "./context.svelte.js";
5
- let { children, ...props } = $props();
6
- let context = useAvatarContext();
7
- let attrs = $derived(mergeProps(props, context.getFallbackProps()));
8
- </script>
9
-
10
- <div {...attrs}>
11
- {@render children?.()}
12
- </div>
1
+ <script lang="ts" context="module">
2
+ import type {Assign} from '../types.js';
3
+ import type {SvelteHTMLElements} from 'svelte/elements';
4
+
5
+ export interface AvatarFallbackProps extends Assign<SvelteHTMLElements['div'], {}> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import {mergeProps} from '@zag-js/svelte';
10
+ import {useAvatarContext} from './context.svelte.js';
11
+
12
+ let {children, ...props}: AvatarFallbackProps = $props();
13
+
14
+ let context = useAvatarContext();
15
+
16
+ let attrs = $derived(mergeProps(props, context.getFallbackProps()));
17
+ </script>
18
+
19
+ <div {...attrs}>
20
+ {@render children?.()}
21
+ </div>
@@ -1,10 +1,19 @@
1
- <script lang="ts" context="module"></script>
2
-
3
- <script lang="ts">import { mergeProps } from "@zag-js/svelte";
4
- import { useAvatarContext } from "./context.svelte.js";
5
- let { ...props } = $props();
6
- let context = useAvatarContext();
7
- let attrs = $derived(mergeProps(props, context.getImageProps()));
8
- </script>
9
-
10
- <img {...attrs} />
1
+ <script lang="ts" context="module">
2
+ import type {Assign} from '../types.js';
3
+ import type {SvelteHTMLElements} from 'svelte/elements';
4
+
5
+ export interface AvatarImageProps extends Assign<SvelteHTMLElements['img'], {}> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import {mergeProps} from '@zag-js/svelte';
10
+ import {useAvatarContext} from './context.svelte.js';
11
+
12
+ let {...props}: AvatarImageProps = $props();
13
+
14
+ let context = useAvatarContext();
15
+
16
+ let attrs = $derived(mergeProps(props, context.getImageProps()));
17
+ </script>
18
+
19
+ <img {...attrs} />
@@ -1,29 +1,46 @@
1
- <script lang="ts" context="module">import {} from "./context.svelte.js";
2
- </script>
3
-
4
- <script lang="ts">import { uuid } from "../utils.svelte.js";
5
- import { mergeProps } from "@zag-js/svelte";
6
- import { createAvatarContext, setAvatarContext } from "./context.svelte.js";
7
- let {
8
- id = uuid(),
9
- ids,
10
- dir,
11
- getRootNode,
12
- onStatusChange,
13
- children,
14
- ...props
15
- } = $props();
16
- let context = createAvatarContext({
17
- id,
18
- ids,
19
- dir,
20
- getRootNode,
21
- onStatusChange
22
- });
23
- let attrs = $derived(mergeProps(props, context.getRootProps()));
24
- setAvatarContext(context);
25
- </script>
26
-
27
- <div {...attrs}>
28
- {@render children?.(context)}
29
- </div>
1
+ <script lang="ts" context="module">
2
+ import type {Assign, OptionalId, WithoutChildren} from '../types.js';
3
+ import type {Snippet} from 'svelte';
4
+ import type {SvelteHTMLElements} from 'svelte/elements';
5
+ import {type CreateAvatarContextProps, type CreateAvatarContextReturn} from './context.svelte.js';
6
+
7
+ export interface AvatarProps
8
+ extends Assign<
9
+ WithoutChildren<SvelteHTMLElements['div']>,
10
+ OptionalId<CreateAvatarContextProps>
11
+ > {
12
+ children?: Snippet<[CreateAvatarContextReturn]>;
13
+ }
14
+ </script>
15
+
16
+ <script lang="ts">
17
+ import {uuid} from '../utils.svelte.js';
18
+ import {mergeProps} from '@zag-js/svelte';
19
+ import {createAvatarContext, setAvatarContext} from './context.svelte.js';
20
+
21
+ let {
22
+ id = uuid(),
23
+ ids,
24
+ dir,
25
+ getRootNode,
26
+ onStatusChange,
27
+ children,
28
+ ...props
29
+ }: AvatarProps = $props();
30
+
31
+ let context = createAvatarContext({
32
+ id,
33
+ ids,
34
+ dir,
35
+ getRootNode,
36
+ onStatusChange,
37
+ });
38
+
39
+ let attrs = $derived(mergeProps(props, context.getRootProps()));
40
+
41
+ setAvatarContext(context);
42
+ </script>
43
+
44
+ <div {...attrs}>
45
+ {@render children?.(context)}
46
+ </div>
@@ -1,12 +1,21 @@
1
- <script lang="ts" context="module"></script>
2
-
3
- <script lang="ts">import { mergeProps } from "@zag-js/svelte";
4
- import { useCarouselContext } from "./context.svelte.js";
5
- let { children, ...props } = $props();
6
- let context = useCarouselContext();
7
- let attrs = $derived(mergeProps(props, context.getIndicatorGroupProps()));
8
- </script>
9
-
10
- <div {...attrs}>
11
- {@render children?.()}
12
- </div>
1
+ <script lang="ts" context="module">
2
+ import type {Assign} from '../types.js';
3
+ import type {SvelteHTMLElements} from 'svelte/elements';
4
+
5
+ export interface CarouselIndicatorGroupProps extends Assign<SvelteHTMLElements['div'], {}> {}
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import {mergeProps} from '@zag-js/svelte';
10
+ import {useCarouselContext} from './context.svelte.js';
11
+
12
+ let {children, ...props}: CarouselIndicatorGroupProps = $props();
13
+
14
+ let context = useCarouselContext();
15
+
16
+ let attrs = $derived(mergeProps(props, context.getIndicatorGroupProps()));
17
+ </script>
18
+
19
+ <div {...attrs}>
20
+ {@render children?.()}
21
+ </div>
@@ -1,20 +1,31 @@
1
- <script lang="ts" context="module"></script>
2
-
3
- <script lang="ts">import { mergeProps } from "@zag-js/svelte";
4
- import { useCarouselContext } from "./context.svelte.js";
5
- let { index, readOnly, children, ...props } = $props();
6
- let context = useCarouselContext();
7
- let attrs = $derived(
8
- mergeProps(
9
- props,
10
- context.getIndicatorProps({
11
- index,
12
- readOnly
13
- })
14
- )
15
- );
16
- </script>
17
-
18
- <button type="button" {...attrs}>
19
- {@render children?.()}
20
- </button>
1
+ <script lang="ts" context="module">
2
+ import type {Assign} from '../types.js';
3
+ import type {IndicatorProps} from '@zag-js/carousel';
4
+ import type {SvelteHTMLElements} from 'svelte/elements';
5
+
6
+ export interface CarouselIndicatorProps
7
+ extends Assign<SvelteHTMLElements['button'], IndicatorProps> {}
8
+ </script>
9
+
10
+ <script lang="ts">
11
+ import {mergeProps} from '@zag-js/svelte';
12
+ import {useCarouselContext} from './context.svelte.js';
13
+
14
+ let {index, readOnly, children, ...props}: CarouselIndicatorProps = $props();
15
+
16
+ let context = useCarouselContext();
17
+
18
+ let attrs = $derived(
19
+ mergeProps(
20
+ props,
21
+ context.getIndicatorProps({
22
+ index,
23
+ readOnly,
24
+ }),
25
+ ),
26
+ );
27
+ </script>
28
+
29
+ <button type="button" {...attrs}>
30
+ {@render children?.()}
31
+ </button>