ui-ingredients 0.0.5 → 0.0.7

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 (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>