@skeletonlabs/skeleton-svelte 2.0.0-next.3 → 2.0.0-next.4

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 (154) hide show
  1. package/dist/components/accordion/anatomy/content.svelte +9 -7
  2. package/dist/components/accordion/anatomy/content.svelte.d.ts +2 -2
  3. package/dist/components/accordion/anatomy/heading.svelte +9 -5
  4. package/dist/components/accordion/anatomy/heading.svelte.d.ts +2 -2
  5. package/dist/components/accordion/anatomy/indicator.svelte +7 -9
  6. package/dist/components/accordion/anatomy/indicator.svelte.d.ts +2 -2
  7. package/dist/components/accordion/anatomy/item.svelte +13 -16
  8. package/dist/components/accordion/anatomy/item.svelte.d.ts +2 -2
  9. package/dist/components/accordion/anatomy/root-context.svelte +6 -4
  10. package/dist/components/accordion/anatomy/root-context.svelte.d.ts +2 -2
  11. package/dist/components/accordion/anatomy/root-provider.svelte +31 -0
  12. package/dist/components/accordion/anatomy/root-provider.svelte.d.ts +9 -0
  13. package/dist/components/accordion/anatomy/root.svelte +17 -19
  14. package/dist/components/accordion/anatomy/root.svelte.d.ts +2 -2
  15. package/dist/components/accordion/anatomy/trigger.svelte +9 -7
  16. package/dist/components/accordion/anatomy/trigger.svelte.d.ts +2 -2
  17. package/dist/components/accordion/index.d.ts +2 -3
  18. package/dist/components/accordion/index.js +1 -0
  19. package/dist/components/accordion/modules/anatomy.d.ts +1 -1
  20. package/dist/components/accordion/modules/anatomy.js +2 -2
  21. package/dist/components/accordion/modules/item-context.d.ts +3 -7
  22. package/dist/components/accordion/modules/use-accordion.svelte.js +7 -0
  23. package/dist/components/avatar/anatomy/fallback.svelte +10 -6
  24. package/dist/components/avatar/anatomy/fallback.svelte.d.ts +2 -2
  25. package/dist/components/avatar/anatomy/image.svelte +10 -6
  26. package/dist/components/avatar/anatomy/image.svelte.d.ts +2 -2
  27. package/dist/components/avatar/anatomy/root-context.svelte +6 -4
  28. package/dist/components/avatar/anatomy/root-context.svelte.d.ts +2 -2
  29. package/dist/components/avatar/anatomy/root-provider.svelte +35 -0
  30. package/dist/components/avatar/anatomy/root-provider.svelte.d.ts +9 -0
  31. package/dist/components/avatar/anatomy/root.svelte +17 -16
  32. package/dist/components/avatar/anatomy/root.svelte.d.ts +2 -2
  33. package/dist/components/avatar/index.d.ts +2 -1
  34. package/dist/components/avatar/index.js +1 -0
  35. package/dist/components/avatar/modules/anatomy.d.ts +1 -0
  36. package/dist/components/avatar/modules/anatomy.js +2 -0
  37. package/dist/components/avatar/modules/use-avatar.svelte.js +7 -0
  38. package/dist/components/progress-linear/anatomy/label.svelte +8 -12
  39. package/dist/components/progress-linear/anatomy/label.svelte.d.ts +2 -2
  40. package/dist/components/progress-linear/anatomy/range.svelte +8 -12
  41. package/dist/components/progress-linear/anatomy/range.svelte.d.ts +2 -2
  42. package/dist/components/progress-linear/anatomy/root-context.svelte +6 -4
  43. package/dist/components/progress-linear/anatomy/root-context.svelte.d.ts +2 -2
  44. package/dist/components/progress-linear/anatomy/root-provider.svelte +35 -0
  45. package/dist/components/progress-linear/anatomy/root-provider.svelte.d.ts +9 -0
  46. package/dist/components/progress-linear/anatomy/root.svelte +14 -25
  47. package/dist/components/progress-linear/anatomy/root.svelte.d.ts +2 -2
  48. package/dist/components/progress-linear/anatomy/track.svelte +10 -6
  49. package/dist/components/progress-linear/anatomy/track.svelte.d.ts +2 -2
  50. package/dist/components/progress-linear/index.d.ts +2 -1
  51. package/dist/components/progress-linear/index.js +1 -0
  52. package/dist/components/progress-linear/modules/use-progress-linear.svelte.js +7 -0
  53. package/dist/components/rating-group/anatomy/control.svelte +13 -7
  54. package/dist/components/rating-group/anatomy/control.svelte.d.ts +2 -2
  55. package/dist/components/rating-group/anatomy/hidden-input.svelte +10 -8
  56. package/dist/components/rating-group/anatomy/hidden-input.svelte.d.ts +2 -2
  57. package/dist/components/rating-group/anatomy/item.svelte +11 -17
  58. package/dist/components/rating-group/anatomy/item.svelte.d.ts +2 -2
  59. package/dist/components/rating-group/anatomy/label.svelte +13 -7
  60. package/dist/components/rating-group/anatomy/label.svelte.d.ts +2 -2
  61. package/dist/components/rating-group/anatomy/root-context.svelte +6 -4
  62. package/dist/components/rating-group/anatomy/root-context.svelte.d.ts +2 -2
  63. package/dist/components/rating-group/anatomy/root-provider.svelte +35 -0
  64. package/dist/components/rating-group/anatomy/root-provider.svelte.d.ts +9 -0
  65. package/dist/components/rating-group/anatomy/root.svelte +18 -23
  66. package/dist/components/rating-group/anatomy/root.svelte.d.ts +3 -3
  67. package/dist/components/rating-group/index.d.ts +2 -3
  68. package/dist/components/rating-group/index.js +1 -0
  69. package/dist/components/rating-group/modules/anatomy.d.ts +1 -1
  70. package/dist/components/rating-group/modules/anatomy.js +2 -2
  71. package/dist/components/rating-group/modules/use-rating-group.svelte.js +7 -0
  72. package/dist/components/switch/anatomy/control.svelte +32 -0
  73. package/dist/components/switch/anatomy/control.svelte.d.ts +7 -0
  74. package/dist/components/switch/anatomy/hidden-input.svelte +30 -0
  75. package/dist/components/switch/anatomy/hidden-input.svelte.d.ts +7 -0
  76. package/dist/components/switch/anatomy/label.svelte +32 -0
  77. package/dist/components/switch/anatomy/label.svelte.d.ts +7 -0
  78. package/dist/components/switch/anatomy/root-context.svelte +20 -0
  79. package/dist/components/switch/anatomy/root-context.svelte.d.ts +8 -0
  80. package/dist/components/switch/anatomy/root-provider.svelte +35 -0
  81. package/dist/components/switch/anatomy/root-provider.svelte.d.ts +9 -0
  82. package/dist/components/switch/anatomy/root.svelte +42 -0
  83. package/dist/components/switch/anatomy/root.svelte.d.ts +8 -0
  84. package/dist/components/switch/anatomy/thumb.svelte +32 -0
  85. package/dist/components/switch/anatomy/thumb.svelte.d.ts +7 -0
  86. package/dist/components/switch/index.d.ts +9 -0
  87. package/dist/components/switch/index.js +2 -0
  88. package/dist/components/switch/modules/anatomy.d.ts +8 -0
  89. package/dist/components/switch/modules/anatomy.js +15 -0
  90. package/dist/components/{rating-group/modules/item-context.js → switch/modules/root-context.js} +1 -1
  91. package/dist/components/switch/modules/use-switch.svelte.js +7 -0
  92. package/dist/components/tabs/anatomy/content.svelte +10 -6
  93. package/dist/components/tabs/anatomy/content.svelte.d.ts +2 -2
  94. package/dist/components/tabs/anatomy/indicator.svelte +10 -6
  95. package/dist/components/tabs/anatomy/indicator.svelte.d.ts +2 -2
  96. package/dist/components/tabs/anatomy/list.svelte +10 -6
  97. package/dist/components/tabs/anatomy/list.svelte.d.ts +2 -2
  98. package/dist/components/tabs/anatomy/root-context.svelte +6 -4
  99. package/dist/components/tabs/anatomy/root-context.svelte.d.ts +2 -2
  100. package/dist/components/tabs/anatomy/root-provider.svelte +34 -0
  101. package/dist/components/tabs/anatomy/root-provider.svelte.d.ts +9 -0
  102. package/dist/components/tabs/anatomy/root.svelte +16 -19
  103. package/dist/components/tabs/anatomy/root.svelte.d.ts +2 -2
  104. package/dist/components/tabs/anatomy/trigger.svelte +10 -6
  105. package/dist/components/tabs/anatomy/trigger.svelte.d.ts +2 -2
  106. package/dist/components/tabs/index.d.ts +9 -1
  107. package/dist/components/tabs/index.js +2 -1
  108. package/dist/components/tabs/modules/anatomy.d.ts +1 -0
  109. package/dist/components/tabs/modules/anatomy.js +2 -0
  110. package/dist/components/tabs/modules/use-tabs.svelte.js +7 -0
  111. package/dist/components/toast/anatomy/action-trigger.svelte +32 -0
  112. package/dist/components/toast/anatomy/action-trigger.svelte.d.ts +7 -0
  113. package/dist/components/toast/anatomy/close-trigger.svelte +37 -0
  114. package/dist/components/toast/anatomy/close-trigger.svelte.d.ts +7 -0
  115. package/dist/components/toast/anatomy/description.svelte +32 -0
  116. package/dist/components/toast/anatomy/description.svelte.d.ts +7 -0
  117. package/dist/components/toast/anatomy/group.svelte +47 -0
  118. package/dist/components/toast/anatomy/group.svelte.d.ts +11 -0
  119. package/dist/components/toast/anatomy/message.svelte +29 -0
  120. package/dist/components/toast/anatomy/message.svelte.d.ts +7 -0
  121. package/dist/components/toast/anatomy/root-context.svelte +20 -0
  122. package/dist/components/toast/anatomy/root-context.svelte.d.ts +8 -0
  123. package/dist/components/toast/anatomy/root.svelte +74 -0
  124. package/dist/components/toast/anatomy/root.svelte.d.ts +9 -0
  125. package/dist/components/toast/anatomy/title.svelte +32 -0
  126. package/dist/components/toast/anatomy/title.svelte.d.ts +7 -0
  127. package/dist/components/toast/index.d.ts +9 -0
  128. package/dist/components/toast/index.js +2 -0
  129. package/dist/components/toast/modules/anatomy.d.ts +9 -0
  130. package/dist/components/toast/modules/anatomy.js +17 -0
  131. package/dist/components/toast/modules/group-context.d.ts +6 -0
  132. package/dist/components/toast/modules/group-context.js +2 -0
  133. package/dist/components/toast/modules/root-context.d.ts +6 -0
  134. package/dist/components/toast/modules/root-context.js +2 -0
  135. package/dist/index.d.ts +2 -0
  136. package/dist/index.js +2 -0
  137. package/dist/internal/components/x.svelte +14 -0
  138. package/dist/internal/components/x.svelte.d.ts +26 -0
  139. package/dist/internal/html-attributes.d.ts +2 -0
  140. package/dist/internal/html-attributes.js +1 -0
  141. package/dist/internal/props-with-element.d.ts +4 -4
  142. package/package.json +19 -19
  143. package/dist/components/accordion/anatomy/item-context.svelte +0 -18
  144. package/dist/components/accordion/anatomy/item-context.svelte.d.ts +0 -8
  145. package/dist/components/accordion/modules/root-context.d.ts +0 -9
  146. package/dist/components/avatar/modules/root-context.d.ts +0 -9
  147. package/dist/components/progress-linear/modules/root-context.d.ts +0 -9
  148. package/dist/components/rating-group/anatomy/item-context.svelte +0 -18
  149. package/dist/components/rating-group/anatomy/item-context.svelte.d.ts +0 -8
  150. package/dist/components/rating-group/modules/item-context.d.ts +0 -9
  151. package/dist/components/rating-group/modules/root-context.d.ts +0 -9
  152. package/dist/components/tabs/modules/root-context.d.ts +0 -9
  153. package/dist/internal/test-utils.d.ts +0 -3
  154. package/dist/internal/test-utils.js +0 -9
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" module>
2
- import type { HTMLAttributes } from 'svelte/elements';
3
2
  import type { PropsWithElement } from '../../../internal/props-with-element';
3
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
4
4
 
5
- export interface AccordionContentProps extends PropsWithElement, HTMLAttributes<HTMLDivElement> {}
5
+ export interface AccordionContentProps extends PropsWithElement<'div'>, HTMLAttributes<'div'> {}
6
6
  </script>
7
7
 
8
8
  <script lang="ts">
@@ -13,18 +13,20 @@
13
13
 
14
14
  const props: AccordionContentProps = $props();
15
15
 
16
- const rootContext = AccordionRootContext.consume();
17
- const itemContext = AccordionItemContext.consume();
16
+ const accordion = AccordionRootContext.consume();
17
+ const itemProps = AccordionItemContext.consume();
18
18
 
19
- const { element, children, ...restAttributes } = $derived(props);
19
+ const { element, children, ...rest } = $derived(props);
20
20
 
21
21
  const attributes = $derived(
22
- mergeProps(rootContext.api.getItemContentProps(itemContext.itemProps), { class: classesAccordion.content }, restAttributes)
22
+ mergeProps(accordion().getItemContentProps(itemProps()), rest, {
23
+ class: classesAccordion.content
24
+ })
23
25
  );
24
26
  </script>
25
27
 
26
28
  {#if element}
27
- {@render element({ attributes })}
29
+ {@render element(attributes)}
28
30
  {:else}
29
31
  <div {...attributes}>
30
32
  {@render children?.()}
@@ -1,6 +1,6 @@
1
- import type { HTMLAttributes } from 'svelte/elements';
2
1
  import type { PropsWithElement } from '../../../internal/props-with-element';
3
- export interface AccordionContentProps extends PropsWithElement, HTMLAttributes<HTMLDivElement> {
2
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
3
+ export interface AccordionContentProps extends PropsWithElement<'div'>, HTMLAttributes<'div'> {
4
4
  }
5
5
  declare const Content: import("svelte").Component<AccordionContentProps, {}, "">;
6
6
  type Content = ReturnType<typeof Content>;
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" module>
2
- import type { HTMLAttributes } from 'svelte/elements';
2
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
3
3
  import type { PropsWithElement } from '../../../internal/props-with-element';
4
4
 
5
- export interface AccordionHeadingProps extends PropsWithElement, HTMLAttributes<HTMLHeadingElement> {
5
+ export interface AccordionHeadingProps extends PropsWithElement<'h3'>, HTMLAttributes<'h3'> {
6
6
  /**
7
7
  * The level of the heading.
8
8
  *
@@ -17,15 +17,19 @@
17
17
  import { classesAccordion } from '@skeletonlabs/skeleton-common';
18
18
 
19
19
  const props: AccordionHeadingProps = $props();
20
- const { level = 3, element, children, ...restAttributes } = $derived(props);
20
+ const { level = 3, element, children, ...rest } = $derived(props);
21
21
 
22
22
  const tag = $derived(`h${level}`);
23
23
 
24
- const attributes = $derived(mergeProps({ class: classesAccordion.heading }, restAttributes));
24
+ const attributes = $derived(
25
+ mergeProps(rest, {
26
+ class: classesAccordion.heading
27
+ })
28
+ );
25
29
  </script>
26
30
 
27
31
  {#if element}
28
- {@render element({ attributes })}
32
+ {@render element(attributes)}
29
33
  {:else}
30
34
  <svelte:element this={tag} {...attributes}>
31
35
  {@render children?.()}
@@ -1,6 +1,6 @@
1
- import type { HTMLAttributes } from 'svelte/elements';
1
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
2
2
  import type { PropsWithElement } from '../../../internal/props-with-element';
3
- export interface AccordionHeadingProps extends PropsWithElement, HTMLAttributes<HTMLHeadingElement> {
3
+ export interface AccordionHeadingProps extends PropsWithElement<'h3'>, HTMLAttributes<'h3'> {
4
4
  /**
5
5
  * The level of the heading.
6
6
  *
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" module>
2
2
  import type { PropsWithElement } from '../../../internal/props-with-element';
3
- import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
4
4
 
5
- export interface AccordionIndicatorProps extends PropsWithElement, HTMLAttributes<HTMLDivElement> {}
5
+ export interface AccordionIndicatorProps extends PropsWithElement<'div'>, HTMLAttributes<'div'> {}
6
6
  </script>
7
7
 
8
8
  <script lang="ts">
@@ -13,18 +13,16 @@
13
13
 
14
14
  const props: AccordionIndicatorProps = $props();
15
15
 
16
- const rootContext = AccordionRootContext.consume();
17
- const itemContext = AccordionItemContext.consume();
16
+ const accordion = AccordionRootContext.consume();
17
+ const itemProps = AccordionItemContext.consume();
18
18
 
19
- const { element, children, ...restAttributes } = $derived(props);
19
+ const { element, children, ...rest } = $derived(props);
20
20
 
21
- const attributes = $derived(
22
- mergeProps(rootContext.api.getItemIndicatorProps(itemContext.itemProps), { class: classesAccordion.indicator }, restAttributes)
23
- );
21
+ const attributes = $derived(mergeProps(accordion().getItemIndicatorProps(itemProps()), rest, { class: classesAccordion.indicator }));
24
22
  </script>
25
23
 
26
24
  {#if element}
27
- {@render element({ attributes })}
25
+ {@render element(attributes)}
28
26
  {:else}
29
27
  <div {...attributes}>
30
28
  {@render children?.()}
@@ -1,6 +1,6 @@
1
1
  import type { PropsWithElement } from '../../../internal/props-with-element';
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- export interface AccordionIndicatorProps extends PropsWithElement, HTMLAttributes<HTMLDivElement> {
2
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
3
+ export interface AccordionIndicatorProps extends PropsWithElement<'div'>, HTMLAttributes<'div'> {
4
4
  }
5
5
  declare const Indicator: import("svelte").Component<AccordionIndicatorProps, {}, "">;
6
6
  type Indicator = ReturnType<typeof Indicator>;
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" module>
2
- import type { HTMLAttributes } from 'svelte/elements';
2
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
3
3
  import type { PropsWithElement } from '../../../internal/props-with-element';
4
4
  import type { ItemProps } from '@zag-js/accordion';
5
5
 
6
- export interface AccordionItemProps extends PropsWithElement, ItemProps, HTMLAttributes<HTMLDivElement> {}
6
+ export interface AccordionItemProps extends ItemProps, PropsWithElement<'div'>, HTMLAttributes<'div'> {}
7
7
  </script>
8
8
 
9
9
  <script lang="ts">
@@ -15,25 +15,22 @@
15
15
 
16
16
  const props: AccordionItemProps = $props();
17
17
 
18
- const rootContext = AccordionRootContext.consume();
18
+ const accordion = AccordionRootContext.consume();
19
19
 
20
20
  const [itemProps, componentProps] = $derived(splitItemProps(props));
21
- const { element, children, ...restAttributes } = $derived(componentProps);
22
-
23
- const attributes = $derived(mergeProps(rootContext.api.getItemProps(itemProps), { class: classesAccordion.item }, restAttributes));
24
-
25
- AccordionItemContext.provide({
26
- get itemProps() {
27
- return itemProps;
28
- },
29
- get itemState() {
30
- return rootContext.api.getItemState(itemProps);
31
- }
32
- });
21
+ const { element, children, ...rest } = $derived(componentProps);
22
+
23
+ const attributes = $derived(
24
+ mergeProps(accordion().getItemProps(itemProps), rest, {
25
+ class: classesAccordion.item
26
+ })
27
+ );
28
+
29
+ AccordionItemContext.provide(() => itemProps);
33
30
  </script>
34
31
 
35
32
  {#if element}
36
- {@render element({ attributes })}
33
+ {@render element(attributes)}
37
34
  {:else}
38
35
  <div {...attributes}>
39
36
  {@render children?.()}
@@ -1,7 +1,7 @@
1
- import type { HTMLAttributes } from 'svelte/elements';
1
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
2
2
  import type { PropsWithElement } from '../../../internal/props-with-element';
3
3
  import type { ItemProps } from '@zag-js/accordion';
4
- export interface AccordionItemProps extends PropsWithElement, ItemProps, HTMLAttributes<HTMLDivElement> {
4
+ export interface AccordionItemProps extends ItemProps, PropsWithElement<'div'>, HTMLAttributes<'div'> {
5
5
  }
6
6
  declare const Item: import("svelte").Component<AccordionItemProps, {}, "">;
7
7
  type Item = ReturnType<typeof Item>;
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" module>
2
2
  import type { Snippet } from 'svelte';
3
- import type { AccordionRootContextType } from '../modules/root-context';
3
+ import type { useAccordion } from '../modules/use-accordion.svelte';
4
4
 
5
5
  export interface AccordionRootContextProps {
6
- children: Snippet<[AccordionRootContextType]>;
6
+ children: Snippet<[ReturnType<typeof useAccordion>]>;
7
7
  }
8
8
  </script>
9
9
 
@@ -12,7 +12,9 @@
12
12
 
13
13
  const props: AccordionRootContextProps = $props();
14
14
 
15
- const rootContext = AccordionRootContext.consume();
15
+ const accordion = AccordionRootContext.consume();
16
+
17
+ const { children } = $derived(props);
16
18
  </script>
17
19
 
18
- {@render props.children(rootContext)}
20
+ {@render children(accordion)}
@@ -1,7 +1,7 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { AccordionRootContextType } from '../modules/root-context';
2
+ import type { useAccordion } from '../modules/use-accordion.svelte';
3
3
  export interface AccordionRootContextProps {
4
- children: Snippet<[AccordionRootContextType]>;
4
+ children: Snippet<[ReturnType<typeof useAccordion>]>;
5
5
  }
6
6
  declare const RootContext: import("svelte").Component<AccordionRootContextProps, {}, "">;
7
7
  type RootContext = ReturnType<typeof RootContext>;
@@ -0,0 +1,31 @@
1
+ <script lang="ts" module>
2
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
3
+ import type { PropsWithElement } from '../../../internal/props-with-element';
4
+ import type { useAccordion } from '../modules/use-accordion.svelte';
5
+
6
+ export interface AccordionRootProviderProps extends PropsWithElement<'div'>, HTMLAttributes<'div', 'id' | 'dir'> {
7
+ value: ReturnType<typeof useAccordion>;
8
+ }
9
+ </script>
10
+
11
+ <script lang="ts">
12
+ import { mergeProps } from '@zag-js/svelte';
13
+ import { classesAccordion } from '@skeletonlabs/skeleton-common';
14
+ import { AccordionRootContext } from '../modules/root-context';
15
+
16
+ const props: AccordionRootProviderProps = $props();
17
+
18
+ const { element, children, value: accordion, ...rest } = $derived(props);
19
+
20
+ const attributes = $derived(mergeProps(accordion().getRootProps(), { class: classesAccordion.root }, rest));
21
+
22
+ AccordionRootContext.provide(() => accordion());
23
+ </script>
24
+
25
+ {#if element}
26
+ {@render element(attributes)}
27
+ {:else}
28
+ <div {...attributes}>
29
+ {@render children?.()}
30
+ </div>
31
+ {/if}
@@ -0,0 +1,9 @@
1
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
2
+ import type { PropsWithElement } from '../../../internal/props-with-element';
3
+ import type { useAccordion } from '../modules/use-accordion.svelte';
4
+ export interface AccordionRootProviderProps extends PropsWithElement<'div'>, HTMLAttributes<'div', 'id' | 'dir'> {
5
+ value: ReturnType<typeof useAccordion>;
6
+ }
7
+ declare const RootProvider: import("svelte").Component<AccordionRootProviderProps, {}, "">;
8
+ type RootProvider = ReturnType<typeof RootProvider>;
9
+ export default RootProvider;
@@ -1,42 +1,40 @@
1
1
  <script lang="ts" module>
2
2
  import type { Props } from '@zag-js/accordion';
3
- import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
4
4
  import type { PropsWithElement } from '../../../internal/props-with-element';
5
5
 
6
- export interface AccordionRootProps
7
- extends PropsWithElement,
8
- Omit<Props, 'id'>,
9
- Omit<HTMLAttributes<HTMLDivElement>, 'id' | 'defaultValue' | 'dir'> {}
6
+ export interface AccordionRootProps extends Omit<Props, 'id'>, PropsWithElement<'div'>, HTMLAttributes<'div', 'id' | 'dir'> {}
10
7
  </script>
11
8
 
12
9
  <script lang="ts">
13
- import { mergeProps, normalizeProps, useMachine } from '@zag-js/svelte';
14
- import { machine, connect, splitProps } from '@zag-js/accordion';
10
+ import { mergeProps } from '@zag-js/svelte';
11
+ import { splitProps } from '@zag-js/accordion';
15
12
  import { classesAccordion } from '@skeletonlabs/skeleton-common';
16
13
  import { AccordionRootContext } from '../modules/root-context';
14
+ import { useAccordion } from '../modules/use-accordion.svelte';
17
15
 
18
16
  const props: AccordionRootProps = $props();
19
- const [machineProps, componentProps] = $derived(splitProps(props));
20
- const { element, children, ...restAttributes } = $derived(componentProps);
17
+
18
+ const [accordionProps, componentProps] = $derived(splitProps(props));
19
+ const { element, children, ...rest } = $derived(componentProps);
21
20
 
22
21
  const id = $props.id();
23
- const service = useMachine(machine, () => ({
22
+ const accordion = useAccordion(() => ({
24
23
  id: id,
25
- ...machineProps
24
+ ...accordionProps
26
25
  }));
27
- const api = $derived(connect(service, normalizeProps));
28
26
 
29
- const attributes = $derived(mergeProps(api.getRootProps(), { class: classesAccordion.root }, restAttributes));
27
+ const attributes = $derived(
28
+ mergeProps(accordion().getRootProps(), rest, {
29
+ class: classesAccordion.root
30
+ })
31
+ );
30
32
 
31
- AccordionRootContext.provide({
32
- get api() {
33
- return api;
34
- }
35
- });
33
+ AccordionRootContext.provide(() => accordion());
36
34
  </script>
37
35
 
38
36
  {#if element}
39
- {@render element({ attributes })}
37
+ {@render element(attributes)}
40
38
  {:else}
41
39
  <div {...attributes}>
42
40
  {@render children?.()}
@@ -1,7 +1,7 @@
1
1
  import type { Props } from '@zag-js/accordion';
2
- import type { HTMLAttributes } from 'svelte/elements';
2
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
3
3
  import type { PropsWithElement } from '../../../internal/props-with-element';
4
- export interface AccordionRootProps extends PropsWithElement, Omit<Props, 'id'>, Omit<HTMLAttributes<HTMLDivElement>, 'id' | 'defaultValue' | 'dir'> {
4
+ export interface AccordionRootProps extends Omit<Props, 'id'>, PropsWithElement<'div'>, HTMLAttributes<'div', 'id' | 'dir'> {
5
5
  }
6
6
  declare const Root: import("svelte").Component<AccordionRootProps, {}, "">;
7
7
  type Root = ReturnType<typeof Root>;
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" module>
2
- import type { HTMLButtonAttributes } from 'svelte/elements';
2
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
3
3
  import type { PropsWithElement } from '../../../internal/props-with-element';
4
4
 
5
- export interface AccordionTriggerProps extends PropsWithElement, HTMLButtonAttributes {}
5
+ export interface AccordionTriggerProps extends PropsWithElement<'button'>, HTMLAttributes<'button'> {}
6
6
  </script>
7
7
 
8
8
  <script lang="ts">
@@ -13,18 +13,20 @@
13
13
 
14
14
  const props: AccordionTriggerProps = $props();
15
15
 
16
- const rootContext = AccordionRootContext.consume();
17
- const itemContext = AccordionItemContext.consume();
16
+ const accordion = AccordionRootContext.consume();
17
+ const itemProps = AccordionItemContext.consume();
18
18
 
19
- const { element, children, ...restAttributes } = $derived(props);
19
+ const { element, children, ...rest } = $derived(props);
20
20
 
21
21
  const attributes = $derived(
22
- mergeProps(rootContext.api.getItemTriggerProps(itemContext.itemProps), { class: classesAccordion.trigger }, restAttributes)
22
+ mergeProps(accordion().getItemTriggerProps(itemProps()), rest, {
23
+ class: classesAccordion.trigger
24
+ })
23
25
  );
24
26
  </script>
25
27
 
26
28
  {#if element}
27
- {@render element({ attributes })}
29
+ {@render element(attributes)}
28
30
  {:else}
29
31
  <button {...attributes}>
30
32
  {@render children?.()}
@@ -1,6 +1,6 @@
1
- import type { HTMLButtonAttributes } from 'svelte/elements';
1
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
2
2
  import type { PropsWithElement } from '../../../internal/props-with-element';
3
- export interface AccordionTriggerProps extends PropsWithElement, HTMLButtonAttributes {
3
+ export interface AccordionTriggerProps extends PropsWithElement<'button'>, HTMLAttributes<'button'> {
4
4
  }
5
5
  declare const Trigger: import("svelte").Component<AccordionTriggerProps, {}, "">;
6
6
  type Trigger = ReturnType<typeof Trigger>;
@@ -1,11 +1,10 @@
1
1
  export { Accordion } from './modules/anatomy';
2
+ export { useAccordion } from './modules/use-accordion.svelte';
2
3
  export type { AccordionRootProps } from './anatomy/root.svelte';
4
+ export type { AccordionRootProviderProps } from './anatomy/root-provider.svelte';
3
5
  export type { AccordionRootContextProps } from './anatomy/root-context.svelte';
4
6
  export type { AccordionItemProps } from './anatomy/item.svelte';
5
- export type { AccordionItemContextProps } from './anatomy/item-context.svelte';
6
7
  export type { AccordionHeadingProps } from './anatomy/heading.svelte';
7
8
  export type { AccordionTriggerProps } from './anatomy/trigger.svelte';
8
9
  export type { AccordionIndicatorProps } from './anatomy/indicator.svelte';
9
10
  export type { AccordionContentProps } from './anatomy/content.svelte';
10
- export type { AccordionRootContextType as AccordionRootContext } from './modules/root-context';
11
- export type { AccordionItemContextType as AccordionItemContext } from './modules/item-context';
@@ -1 +1,2 @@
1
1
  export { Accordion } from './modules/anatomy';
2
+ export { useAccordion } from './modules/use-accordion.svelte';
@@ -1,7 +1,7 @@
1
1
  export declare const Accordion: import("svelte").Component<import("../anatomy/root.svelte").AccordionRootProps, {}, ""> & {
2
+ Provider: import("svelte").Component<import("../anatomy/root-provider.svelte").AccordionRootProviderProps, {}, "">;
2
3
  Context: import("svelte").Component<import("../anatomy/root-context.svelte").AccordionRootContextProps, {}, "">;
3
4
  Item: import("svelte").Component<import("../anatomy/item.svelte").AccordionItemProps, {}, "">;
4
- ItemContext: import("svelte").Component<import("../anatomy/item-context.svelte").AccordionItemContextProps, {}, "">;
5
5
  Heading: import("svelte").Component<import("../anatomy/heading.svelte").AccordionHeadingProps, {}, "">;
6
6
  Trigger: import("svelte").Component<import("../anatomy/trigger.svelte").AccordionTriggerProps, {}, "">;
7
7
  Indicator: import("svelte").Component<import("../anatomy/indicator.svelte").AccordionIndicatorProps, {}, "">;
@@ -1,15 +1,15 @@
1
1
  import Root from '../anatomy/root.svelte';
2
+ import RootProvider from '../anatomy/root-provider.svelte';
2
3
  import RootContext from '../anatomy/root-context.svelte';
3
4
  import Item from '../anatomy/item.svelte';
4
- import ItemContext from '../anatomy/item-context.svelte';
5
5
  import Heading from '../anatomy/heading.svelte';
6
6
  import Trigger from '../anatomy/trigger.svelte';
7
7
  import Indicator from '../anatomy/indicator.svelte';
8
8
  import Content from '../anatomy/content.svelte';
9
9
  export const Accordion = Object.assign(Root, {
10
+ Provider: RootProvider,
10
11
  Context: RootContext,
11
12
  Item: Item,
12
- ItemContext: ItemContext,
13
13
  Heading: Heading,
14
14
  Trigger: Trigger,
15
15
  Indicator: Indicator,
@@ -1,10 +1,6 @@
1
- import type { ItemProps, ItemState } from '@zag-js/accordion';
2
- export interface AccordionItemContextType {
3
- itemProps: ItemProps;
4
- itemState: ItemState;
5
- }
1
+ import type { ItemProps } from '@zag-js/accordion';
6
2
  export declare const AccordionItemContext: {
7
3
  key: symbol;
8
- consume(): AccordionItemContextType;
9
- provide(value: AccordionItemContextType): AccordionItemContextType;
4
+ consume(): () => ItemProps;
5
+ provide(value: () => ItemProps): () => ItemProps;
10
6
  };
@@ -0,0 +1,7 @@
1
+ import { connect, machine } from '@zag-js/accordion';
2
+ import { useMachine, normalizeProps } from '@zag-js/svelte';
3
+ export function useAccordion(props) {
4
+ const service = useMachine(machine, props);
5
+ const accordion = $derived(connect(service, normalizeProps));
6
+ return () => accordion;
7
+ }
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" module>
2
2
  import type { PropsWithElement } from '../../../internal/props-with-element';
3
- import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
4
4
 
5
- export interface AvatarFallbackProps extends PropsWithElement, HTMLAttributes<HTMLSpanElement> {}
5
+ export interface AvatarFallbackProps extends PropsWithElement<'span'>, HTMLAttributes<'span'> {}
6
6
  </script>
7
7
 
8
8
  <script lang="ts">
@@ -12,15 +12,19 @@
12
12
 
13
13
  const props: AvatarFallbackProps = $props();
14
14
 
15
- const rootContext = AvatarRootContext.consume();
15
+ const avatar = AvatarRootContext.consume();
16
16
 
17
- const { element, children, ...restAttributes } = $derived(props);
17
+ const { element, children, ...rest } = $derived(props);
18
18
 
19
- const attributes = $derived(mergeProps(rootContext.api.getFallbackProps(), { class: classesAvatar.fallback }, restAttributes));
19
+ const attributes = $derived(
20
+ mergeProps(avatar().getFallbackProps(), rest, {
21
+ class: classesAvatar.fallback
22
+ })
23
+ );
20
24
  </script>
21
25
 
22
26
  {#if element}
23
- {@render element({ attributes })}
27
+ {@render element(attributes)}
24
28
  {:else}
25
29
  <span {...attributes}>
26
30
  {@render children?.()}
@@ -1,6 +1,6 @@
1
1
  import type { PropsWithElement } from '../../../internal/props-with-element';
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- export interface AvatarFallbackProps extends PropsWithElement, HTMLAttributes<HTMLSpanElement> {
2
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
3
+ export interface AvatarFallbackProps extends PropsWithElement<'span'>, HTMLAttributes<'span'> {
4
4
  }
5
5
  declare const Fallback: import("svelte").Component<AvatarFallbackProps, {}, "">;
6
6
  type Fallback = ReturnType<typeof Fallback>;
@@ -1,8 +1,8 @@
1
1
  <script lang="ts" module>
2
2
  import type { PropsWithElement } from '../../../internal/props-with-element';
3
- import type { HTMLImgAttributes } from 'svelte/elements';
3
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
4
4
 
5
- export interface AvatarImageProps extends PropsWithElement, HTMLImgAttributes {}
5
+ export interface AvatarImageProps extends PropsWithElement<'img'>, HTMLAttributes<'img'> {}
6
6
  </script>
7
7
 
8
8
  <script lang="ts">
@@ -12,15 +12,19 @@
12
12
 
13
13
  const props: AvatarImageProps = $props();
14
14
 
15
- const rootContext = AvatarRootContext.consume();
15
+ const avatar = AvatarRootContext.consume();
16
16
 
17
- const { element, ...restAttributes } = $derived(props);
17
+ const { element, ...rest } = $derived(props);
18
18
 
19
- const attributes = $derived(mergeProps(rootContext.api.getImageProps(), { class: classesAvatar.image }, restAttributes));
19
+ const attributes = $derived(
20
+ mergeProps(avatar().getImageProps(), rest, {
21
+ class: classesAvatar.image
22
+ })
23
+ );
20
24
  </script>
21
25
 
22
26
  {#if element}
23
- {@render element({ attributes })}
27
+ {@render element(attributes)}
24
28
  {:else}
25
29
  <img {...attributes} />
26
30
  {/if}
@@ -1,6 +1,6 @@
1
1
  import type { PropsWithElement } from '../../../internal/props-with-element';
2
- import type { HTMLImgAttributes } from 'svelte/elements';
3
- export interface AvatarImageProps extends PropsWithElement, HTMLImgAttributes {
2
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
3
+ export interface AvatarImageProps extends PropsWithElement<'img'>, HTMLAttributes<'img'> {
4
4
  }
5
5
  declare const Image: import("svelte").Component<AvatarImageProps, {}, "">;
6
6
  type Image = ReturnType<typeof Image>;
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" module>
2
2
  import type { Snippet } from 'svelte';
3
- import type { AvatarRootContextType } from '../modules/root-context';
3
+ import type { useAvatar } from '../modules/use-avatar.svelte';
4
4
 
5
5
  export interface AvatarRootContextProps {
6
- children: Snippet<[AvatarRootContextType]>;
6
+ children: Snippet<[ReturnType<typeof useAvatar>]>;
7
7
  }
8
8
  </script>
9
9
 
@@ -12,7 +12,9 @@
12
12
 
13
13
  const props: AvatarRootContextProps = $props();
14
14
 
15
- const rootContext = AvatarRootContext.consume();
15
+ const avatar = AvatarRootContext.consume();
16
+
17
+ const { children } = $derived(props);
16
18
  </script>
17
19
 
18
- {@render props.children(rootContext)}
20
+ {@render children(avatar)}
@@ -1,7 +1,7 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { AvatarRootContextType } from '../modules/root-context';
2
+ import type { useAvatar } from '../modules/use-avatar.svelte';
3
3
  export interface AvatarRootContextProps {
4
- children: Snippet<[AvatarRootContextType]>;
4
+ children: Snippet<[ReturnType<typeof useAvatar>]>;
5
5
  }
6
6
  declare const RootContext: import("svelte").Component<AvatarRootContextProps, {}, "">;
7
7
  type RootContext = ReturnType<typeof RootContext>;
@@ -0,0 +1,35 @@
1
+ <script lang="ts" module>
2
+ import type { HTMLAttributes } from '../../../internal/html-attributes';
3
+ import type { PropsWithElement } from '../../../internal/props-with-element';
4
+ import type { useAvatar } from '../modules/use-avatar.svelte';
5
+
6
+ export interface AvatarRootProviderProps extends PropsWithElement<'div'>, HTMLAttributes<'div', 'id' | 'dir'> {
7
+ value: ReturnType<typeof useAvatar>;
8
+ }
9
+ </script>
10
+
11
+ <script lang="ts">
12
+ import { mergeProps } from '@zag-js/svelte';
13
+ import { classesAvatar } from '@skeletonlabs/skeleton-common';
14
+ import { AvatarRootContext } from '../modules/root-context';
15
+
16
+ const props: AvatarRootProviderProps = $props();
17
+
18
+ const { element, children, value: api, ...rest } = $derived(props);
19
+
20
+ const attributes = $derived(
21
+ mergeProps(api().getRootProps(), rest, {
22
+ class: classesAvatar.root
23
+ })
24
+ );
25
+
26
+ AvatarRootContext.provide(() => api());
27
+ </script>
28
+
29
+ {#if element}
30
+ {@render element(attributes)}
31
+ {:else}
32
+ <div {...attributes}>
33
+ {@render children?.()}
34
+ </div>
35
+ {/if}