ui-ingredients 0.0.17 → 0.0.19

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 (283) hide show
  1. package/dist/accordion/create-accordion.svelte.d.ts +2 -1
  2. package/dist/accordion/create-accordion.svelte.js +11 -1
  3. package/dist/accordion/item-content.svelte +3 -2
  4. package/dist/accordion/item-indicator.svelte +3 -2
  5. package/dist/accordion/item-trigger.svelte +3 -2
  6. package/dist/accordion/item.svelte +2 -2
  7. package/dist/accordion/root.svelte +3 -15
  8. package/dist/avatar/create-avatar.svelte.d.ts +2 -1
  9. package/dist/avatar/create-avatar.svelte.js +11 -1
  10. package/dist/avatar/fallback.svelte +2 -2
  11. package/dist/avatar/image.svelte +2 -2
  12. package/dist/avatar/root.svelte +11 -14
  13. package/dist/carousel/create-carousel.svelte.d.ts +2 -1
  14. package/dist/carousel/create-carousel.svelte.js +11 -1
  15. package/dist/carousel/indicator-group.svelte +2 -2
  16. package/dist/carousel/indicator.svelte +2 -3
  17. package/dist/carousel/item-group.svelte +2 -2
  18. package/dist/carousel/item.svelte +2 -2
  19. package/dist/carousel/next-trigger.svelte +2 -2
  20. package/dist/carousel/prev-trigger.svelte +2 -2
  21. package/dist/carousel/root.svelte +3 -15
  22. package/dist/carousel/viewport.svelte +2 -2
  23. package/dist/checkbox/control.svelte +2 -2
  24. package/dist/checkbox/create-checkbox.svelte.d.ts +2 -1
  25. package/dist/checkbox/create-checkbox.svelte.js +11 -1
  26. package/dist/checkbox/hidden-input.svelte +2 -2
  27. package/dist/checkbox/indicator.svelte +2 -2
  28. package/dist/checkbox/label.svelte +2 -2
  29. package/dist/checkbox/root.svelte +3 -18
  30. package/dist/clipboard/control.svelte +2 -2
  31. package/dist/clipboard/create-clipboard.svelte.d.ts +2 -1
  32. package/dist/clipboard/create-clipboard.svelte.js +8 -1
  33. package/dist/clipboard/indicator.svelte +2 -2
  34. package/dist/clipboard/input.svelte +2 -2
  35. package/dist/clipboard/label.svelte +2 -2
  36. package/dist/clipboard/root.svelte +3 -11
  37. package/dist/clipboard/trigger.svelte +2 -2
  38. package/dist/collapsible/content.svelte +2 -2
  39. package/dist/collapsible/create-collapsible.svelte.d.ts +3 -1
  40. package/dist/collapsible/create-collapsible.svelte.js +13 -1
  41. package/dist/collapsible/root.svelte +5 -20
  42. package/dist/collapsible/trigger.svelte +2 -2
  43. package/dist/combobox/clear-trigger.svelte +2 -2
  44. package/dist/combobox/content.svelte +2 -2
  45. package/dist/combobox/control.svelte +2 -2
  46. package/dist/combobox/create-combobox.svelte.d.ts +3 -1
  47. package/dist/combobox/create-combobox.svelte.js +10 -0
  48. package/dist/combobox/input.svelte +2 -2
  49. package/dist/combobox/item-group-label.svelte +2 -2
  50. package/dist/combobox/item-group.svelte +2 -2
  51. package/dist/combobox/item-indicator.svelte +2 -2
  52. package/dist/combobox/item-text.svelte +2 -2
  53. package/dist/combobox/item.svelte +2 -3
  54. package/dist/combobox/label.svelte +2 -2
  55. package/dist/combobox/list.svelte +2 -2
  56. package/dist/combobox/positioner.svelte +2 -2
  57. package/dist/combobox/root.svelte +5 -20
  58. package/dist/combobox/trigger.svelte +2 -2
  59. package/dist/dialog/backdrop.svelte +2 -2
  60. package/dist/dialog/close-trigger.svelte +2 -2
  61. package/dist/dialog/content.svelte +2 -2
  62. package/dist/dialog/create-dialog.svelte.d.ts +3 -1
  63. package/dist/dialog/create-dialog.svelte.js +13 -1
  64. package/dist/dialog/description.svelte +2 -2
  65. package/dist/dialog/positioner.svelte +2 -2
  66. package/dist/dialog/root.svelte +3 -17
  67. package/dist/dialog/title.svelte +2 -2
  68. package/dist/dialog/trigger.svelte +2 -2
  69. package/dist/editable/area.svelte +2 -2
  70. package/dist/editable/cancel-trigger.svelte +2 -2
  71. package/dist/editable/control.svelte +2 -2
  72. package/dist/editable/create-editable.svelte.d.ts +3 -1
  73. package/dist/editable/create-editable.svelte.js +13 -1
  74. package/dist/editable/edit-trigger.svelte +2 -2
  75. package/dist/editable/input.svelte +2 -2
  76. package/dist/editable/label.svelte +2 -2
  77. package/dist/editable/preview.svelte +2 -2
  78. package/dist/editable/root.svelte +3 -17
  79. package/dist/editable/submit-trigger.svelte +2 -2
  80. package/dist/environment-provider/root.svelte +21 -5
  81. package/dist/hover-card/arrow-tip.svelte +2 -2
  82. package/dist/hover-card/arrow.svelte +2 -2
  83. package/dist/hover-card/content.svelte +2 -2
  84. package/dist/hover-card/create-hover-card.svelte.d.ts +3 -1
  85. package/dist/hover-card/create-hover-card.svelte.js +13 -1
  86. package/dist/hover-card/positioner.svelte +2 -2
  87. package/dist/hover-card/root.svelte +3 -17
  88. package/dist/hover-card/trigger.svelte +2 -2
  89. package/dist/menu/arrow-tip.svelte +2 -2
  90. package/dist/menu/arrow.svelte +2 -2
  91. package/dist/menu/content.svelte +2 -2
  92. package/dist/menu/context-trigger.svelte +2 -2
  93. package/dist/menu/create-menu.svelte.d.ts +3 -1
  94. package/dist/menu/create-menu.svelte.js +13 -1
  95. package/dist/menu/indicator.svelte +2 -2
  96. package/dist/menu/item-group-label.svelte +2 -2
  97. package/dist/menu/item-group.svelte +2 -2
  98. package/dist/menu/item.svelte +2 -3
  99. package/dist/menu/option-item-indicator.svelte +2 -2
  100. package/dist/menu/option-item-text.svelte +2 -2
  101. package/dist/menu/option-item.svelte +5 -8
  102. package/dist/menu/positioner.svelte +2 -2
  103. package/dist/menu/root.svelte +3 -57
  104. package/dist/menu/separator.svelte +2 -2
  105. package/dist/menu/trigger-item.svelte +2 -2
  106. package/dist/menu/trigger.svelte +2 -2
  107. package/dist/number-input/control.svelte +2 -2
  108. package/dist/number-input/create-number-input.svelte.d.ts +2 -1
  109. package/dist/number-input/create-number-input.svelte.js +12 -1
  110. package/dist/number-input/decrement-trigger.svelte +2 -2
  111. package/dist/number-input/increment-trigger.svelte +2 -2
  112. package/dist/number-input/input.svelte +2 -2
  113. package/dist/number-input/label.svelte +2 -2
  114. package/dist/number-input/root.svelte +3 -20
  115. package/dist/number-input/scrubber.svelte +2 -2
  116. package/dist/pagination/create-pagination.svelte.d.ts +2 -1
  117. package/dist/pagination/create-pagination.svelte.js +11 -1
  118. package/dist/pagination/ellipsis.svelte +2 -3
  119. package/dist/pagination/item.svelte +10 -9
  120. package/dist/pagination/next-trigger.svelte +2 -2
  121. package/dist/pagination/prev-trigger.svelte +2 -2
  122. package/dist/pagination/root.svelte +3 -18
  123. package/dist/pin-input/clear-trigger.svelte +2 -2
  124. package/dist/pin-input/create-pin-input.svelte.d.ts +2 -1
  125. package/dist/pin-input/create-pin-input.svelte.js +11 -1
  126. package/dist/pin-input/hidden-input.svelte +2 -2
  127. package/dist/pin-input/input.svelte +2 -2
  128. package/dist/pin-input/label.svelte +2 -2
  129. package/dist/pin-input/root.svelte +3 -15
  130. package/dist/popover/arrow-tip.svelte +2 -2
  131. package/dist/popover/arrow.svelte +2 -2
  132. package/dist/popover/close-trigger.svelte +2 -2
  133. package/dist/popover/content.svelte +2 -2
  134. package/dist/popover/create-popover.svelte.d.ts +3 -1
  135. package/dist/popover/create-popover.svelte.js +13 -1
  136. package/dist/popover/description.svelte +2 -2
  137. package/dist/popover/positioner.svelte +2 -2
  138. package/dist/popover/root.svelte +3 -17
  139. package/dist/popover/title.svelte +2 -2
  140. package/dist/popover/trigger.svelte +2 -2
  141. package/dist/portal/root.svelte +4 -4
  142. package/dist/presence/root.svelte +2 -3
  143. package/dist/progress/circle-range.svelte +2 -2
  144. package/dist/progress/circle-track.svelte +2 -2
  145. package/dist/progress/circle.svelte +2 -2
  146. package/dist/progress/create-progress.svelte.d.ts +2 -1
  147. package/dist/progress/create-progress.svelte.js +11 -1
  148. package/dist/progress/label.svelte +2 -2
  149. package/dist/progress/range.svelte +2 -2
  150. package/dist/progress/root.svelte +4 -15
  151. package/dist/progress/track.svelte +2 -2
  152. package/dist/progress/value-text.svelte +2 -2
  153. package/dist/qr-code/create-qr-code.svelte.d.ts +2 -1
  154. package/dist/qr-code/create-qr-code.svelte.js +11 -1
  155. package/dist/qr-code/frame.svelte +2 -2
  156. package/dist/qr-code/overlay.svelte +2 -2
  157. package/dist/qr-code/pattern.svelte +2 -2
  158. package/dist/qr-code/root.svelte +3 -15
  159. package/dist/radio-group/create-radio-group.svelte.d.ts +2 -1
  160. package/dist/radio-group/create-radio-group.svelte.js +11 -1
  161. package/dist/radio-group/indicator.svelte +2 -2
  162. package/dist/radio-group/item-control.svelte +2 -2
  163. package/dist/radio-group/item-hidden-input.svelte +2 -2
  164. package/dist/radio-group/item-text.svelte +2 -2
  165. package/dist/radio-group/item.svelte +2 -2
  166. package/dist/radio-group/label.svelte +2 -2
  167. package/dist/radio-group/root.svelte +3 -18
  168. package/dist/rating-group/control.svelte +2 -2
  169. package/dist/rating-group/create-rating-group.svelte.d.ts +2 -1
  170. package/dist/rating-group/create-rating-group.svelte.js +11 -1
  171. package/dist/rating-group/hidden-input.svelte +2 -2
  172. package/dist/rating-group/item.svelte +2 -2
  173. package/dist/rating-group/label.svelte +2 -2
  174. package/dist/rating-group/root.svelte +3 -18
  175. package/dist/segment-group/create-segment-group.svelte.d.ts +2 -1
  176. package/dist/segment-group/create-segment-group.svelte.js +11 -1
  177. package/dist/segment-group/indicator.svelte +2 -2
  178. package/dist/segment-group/item-control.svelte +2 -2
  179. package/dist/segment-group/item-hidden-input.svelte +2 -2
  180. package/dist/segment-group/item-text.svelte +2 -2
  181. package/dist/segment-group/item.svelte +2 -2
  182. package/dist/segment-group/label.svelte +2 -2
  183. package/dist/segment-group/root.svelte +4 -18
  184. package/dist/select/clear-trigger.svelte +2 -2
  185. package/dist/select/content.svelte +2 -2
  186. package/dist/select/control.svelte +2 -2
  187. package/dist/select/create-select.svelte.d.ts +3 -1
  188. package/dist/select/create-select.svelte.js +10 -0
  189. package/dist/select/hidden-select.svelte +2 -2
  190. package/dist/select/indicator.svelte +2 -2
  191. package/dist/select/item-group-label.svelte +2 -2
  192. package/dist/select/item-group.svelte +2 -2
  193. package/dist/select/item-indicator.svelte +2 -2
  194. package/dist/select/item-text.svelte +2 -2
  195. package/dist/select/item.svelte +2 -3
  196. package/dist/select/label.svelte +2 -2
  197. package/dist/select/list.svelte +2 -2
  198. package/dist/select/positioner.svelte +2 -2
  199. package/dist/select/root.svelte +5 -17
  200. package/dist/select/trigger.svelte +2 -2
  201. package/dist/select/value-text.svelte +2 -2
  202. package/dist/slider/control.svelte +2 -2
  203. package/dist/slider/create-slider.svelte.d.ts +2 -1
  204. package/dist/slider/create-slider.svelte.js +11 -1
  205. package/dist/slider/hidden-input.svelte +2 -2
  206. package/dist/slider/label.svelte +2 -2
  207. package/dist/slider/marker-group.svelte +2 -2
  208. package/dist/slider/marker.svelte +2 -2
  209. package/dist/slider/range.svelte +2 -2
  210. package/dist/slider/root.svelte +3 -15
  211. package/dist/slider/thumb.svelte +2 -2
  212. package/dist/slider/track.svelte +2 -2
  213. package/dist/slider/value-text.svelte +2 -2
  214. package/dist/steps/content.svelte +2 -2
  215. package/dist/steps/create-steps.svelte.d.ts +2 -1
  216. package/dist/steps/create-steps.svelte.js +11 -1
  217. package/dist/steps/indicator.svelte +2 -2
  218. package/dist/steps/item.svelte +2 -3
  219. package/dist/steps/list.svelte +2 -2
  220. package/dist/steps/next-trigger.svelte +2 -2
  221. package/dist/steps/prev-trigger.svelte +2 -2
  222. package/dist/steps/progress.svelte +2 -2
  223. package/dist/steps/root.svelte +3 -15
  224. package/dist/steps/separator.svelte +2 -2
  225. package/dist/steps/trigger.svelte +2 -2
  226. package/dist/switch/control.svelte +2 -2
  227. package/dist/switch/create-switch.svelte.d.ts +2 -1
  228. package/dist/switch/create-switch.svelte.js +11 -1
  229. package/dist/switch/hidden-input.svelte +2 -2
  230. package/dist/switch/label.svelte +2 -2
  231. package/dist/switch/root.svelte +3 -15
  232. package/dist/switch/thumb.svelte +2 -2
  233. package/dist/tabs/content.svelte +2 -2
  234. package/dist/tabs/create-tabs.svelte.d.ts +2 -1
  235. package/dist/tabs/create-tabs.svelte.js +11 -1
  236. package/dist/tabs/list.svelte +2 -2
  237. package/dist/tabs/root.svelte +3 -16
  238. package/dist/tabs/trigger.svelte +2 -2
  239. package/dist/tags-input/clear-trigger.svelte +2 -2
  240. package/dist/tags-input/control.svelte +2 -2
  241. package/dist/tags-input/create-tags-input.svelte.d.ts +2 -1
  242. package/dist/tags-input/create-tags-input.svelte.js +11 -1
  243. package/dist/tags-input/hidden-input.svelte +2 -2
  244. package/dist/tags-input/input.svelte +2 -2
  245. package/dist/tags-input/item-delete-trigger.svelte +2 -2
  246. package/dist/tags-input/item-input.svelte +2 -2
  247. package/dist/tags-input/item-preview.svelte +2 -2
  248. package/dist/tags-input/item-text.svelte +2 -2
  249. package/dist/tags-input/item.svelte +2 -2
  250. package/dist/tags-input/label.svelte +2 -2
  251. package/dist/tags-input/root.svelte +3 -15
  252. package/dist/timer/action-trigger.svelte +2 -2
  253. package/dist/timer/create-timer.svelte.d.ts +2 -1
  254. package/dist/timer/create-timer.svelte.js +8 -1
  255. package/dist/timer/item-label.svelte +2 -2
  256. package/dist/timer/item-value.svelte +2 -2
  257. package/dist/timer/item.svelte +2 -2
  258. package/dist/timer/root.svelte +3 -12
  259. package/dist/timer/separator.svelte +2 -2
  260. package/dist/toast/action-trigger.svelte +2 -2
  261. package/dist/toast/close-trigger.svelte +2 -2
  262. package/dist/toast/create-toaster.svelte.d.ts +2 -4
  263. package/dist/toast/create-toaster.svelte.js +4 -7
  264. package/dist/toast/description.svelte +2 -2
  265. package/dist/toast/index.d.ts +1 -1
  266. package/dist/toast/index.js +1 -1
  267. package/dist/toast/root.svelte +2 -2
  268. package/dist/toast/title.svelte +2 -2
  269. package/dist/toast/toaster.svelte +2 -2
  270. package/dist/toggle-group/create-toggle-group.svelte.d.ts +2 -1
  271. package/dist/toggle-group/create-toggle-group.svelte.js +11 -1
  272. package/dist/toggle-group/item.svelte +2 -2
  273. package/dist/toggle-group/root.svelte +3 -18
  274. package/dist/tooltip/arrow-tip.svelte +2 -2
  275. package/dist/tooltip/arrow.svelte +2 -2
  276. package/dist/tooltip/content.svelte +2 -2
  277. package/dist/tooltip/create-tooltip.svelte.d.ts +3 -1
  278. package/dist/tooltip/create-tooltip.svelte.js +13 -1
  279. package/dist/tooltip/positioner.svelte +2 -2
  280. package/dist/tooltip/root.svelte +3 -17
  281. package/dist/tooltip/trigger.svelte +2 -2
  282. package/dist/types.d.ts +3 -9
  283. package/package.json +4 -2
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface EditableEditTriggerProps extends HtmlIngredientProps<'button'> {}
4
+ export interface EditableEditTriggerProps extends HtmlProps<'button'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface EditableInputProps extends HtmlIngredientProps<'input'> {}
4
+ export interface EditableInputProps extends HtmlProps<'input'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface EditableLabelProps extends HtmlIngredientProps<'label'> {}
4
+ export interface EditableLabelProps extends HtmlProps<'label'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface EditablePreviewProps extends HtmlIngredientProps<'div'> {}
4
+ export interface EditablePreviewProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -2,32 +2,18 @@
2
2
  import type {Snippet} from 'svelte';
3
3
  import type {CreateEditableProps, CreateEditableReturn} from './create-editable.svelte.js';
4
4
 
5
- export interface EditableProps extends Omit<CreateEditableProps, 'id'> {
6
- id?: string | null;
5
+ export interface EditableProps extends CreateEditableProps {
7
6
  children?: Snippet<[api: CreateEditableReturn]>;
8
7
  }
9
8
  </script>
10
9
 
11
10
  <script lang="ts">
12
- import {getEnvironmentContext} from '../environment-provider/index.js';
13
- import {getLocaleContext} from '../locale-provider/index.js';
14
- import {createUniqueId} from '../utils.svelte.js';
15
11
  import {editableContext} from './context.svelte.js';
16
12
  import {createEditable} from './create-editable.svelte.js';
17
13
 
18
- let {id, dir, getRootNode, children, ...props}: EditableProps = $props();
14
+ let {children, ...props}: EditableProps = $props();
19
15
 
20
- let localeContext = getLocaleContext();
21
- let environmentContext = getEnvironmentContext();
22
-
23
- let uid = createUniqueId();
24
-
25
- let context = createEditable({
26
- id: id ?? uid,
27
- dir: dir ?? localeContext?.dir,
28
- getRootNode: getRootNode ?? environmentContext?.getRootNode,
29
- ...props,
30
- });
16
+ let context = createEditable(props);
31
17
 
32
18
  editableContext.set(context);
33
19
  </script>
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface EditableSubmitTriggerProps extends HtmlIngredientProps<'button'> {}
4
+ export interface EditableSubmitTriggerProps extends HtmlProps<'button'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -2,23 +2,39 @@
2
2
  import type {Snippet} from 'svelte';
3
3
  import {type Environment} from './context.svelte.js';
4
4
 
5
- export interface EnvironmentProviderProps extends Partial<Environment> {
5
+ export interface EnvironmentProviderProps {
6
+ rootNode?: ShadowRoot | Document | Node | (() => ShadowRoot | Document | Node);
6
7
  children: Snippet;
7
8
  }
8
9
  </script>
9
10
 
10
11
  <script lang="ts">
12
+ import {getDocument, getWindow} from '@zag-js/dom-query';
11
13
  import {environmentContext} from './context.svelte.js';
12
14
 
13
- let {children, ...props}: EnvironmentProviderProps = $props();
15
+ let {rootNode, children}: EnvironmentProviderProps = $props();
16
+
17
+ let elem: HTMLSpanElement | null = $state(null);
18
+
19
+ let getRootNode = $derived.by(() => {
20
+ if (rootNode) {
21
+ return typeof rootNode === 'function' ? rootNode : () => rootNode;
22
+ } else {
23
+ return () => elem?.ownerDocument ?? document;
24
+ }
25
+ });
14
26
 
15
27
  let context: Environment = $derived({
16
- getRootNode: props.getRootNode ?? (() => document),
17
- getDocument: props.getDocument ?? (() => document),
18
- getWindow: props.getWindow ?? (() => window),
28
+ getRootNode,
29
+ getDocument: () => getDocument(getRootNode()),
30
+ getWindow: () => getWindow(getRootNode()),
19
31
  });
20
32
 
21
33
  environmentContext.set(() => context);
22
34
  </script>
23
35
 
24
36
  {@render children()}
37
+
38
+ {#if !rootNode}
39
+ <span bind:this={elem} hidden></span>
40
+ {/if}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface HoverCardArrowTipProps extends HtmlIngredientProps<'div'> {}
4
+ export interface HoverCardArrowTipProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface HoverCardArrowProps extends HtmlIngredientProps<'div'> {}
4
+ export interface HoverCardArrowProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface HoverCardContentProps extends HtmlIngredientProps<'div'> {}
4
+ export interface HoverCardContentProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,5 +1,7 @@
1
1
  import * as hoverCard from '@zag-js/hover-card';
2
- export interface CreateHoverCardProps extends hoverCard.Context {
2
+ export interface CreateHoverCardProps extends Omit<hoverCard.Context, 'id' | 'dir' | 'getRootNode' | 'open.controlled'> {
3
+ id?: string | null;
4
+ defaultOpen?: boolean;
3
5
  }
4
6
  export interface CreateHoverCardReturn extends hoverCard.Api {
5
7
  }
@@ -1,7 +1,19 @@
1
+ import { getEnvironmentContext } from '../environment-provider/context.svelte.js';
2
+ import { getLocaleContext } from '../locale-provider/context.svelte.js';
3
+ import { createUniqueId } from '../utils.svelte.js';
1
4
  import * as hoverCard from '@zag-js/hover-card';
2
5
  import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
3
6
  export function createHoverCard(props) {
4
- const [state, send] = useMachine(hoverCard.machine(props));
7
+ const localeContext = getLocaleContext();
8
+ const environmentContext = getEnvironmentContext();
9
+ const [state, send] = useMachine(hoverCard.machine({
10
+ ...props,
11
+ id: props.id ?? createUniqueId(),
12
+ dir: localeContext?.dir,
13
+ open: props.defaultOpen,
14
+ getRootNode: environmentContext?.getRootNode,
15
+ 'open.controlled': props.open != null,
16
+ }));
5
17
  const api = $derived(reflect(() => hoverCard.connect(state, send, normalizeProps)));
6
18
  return api;
7
19
  }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface HoverCardPositionerProps extends HtmlIngredientProps<'div'> {}
4
+ export interface HoverCardPositionerProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -2,32 +2,18 @@
2
2
  import type {Snippet} from 'svelte';
3
3
  import type {CreateHoverCardProps, CreateHoverCardReturn} from './create-hover-card.svelte.js';
4
4
 
5
- export interface HoverCardProps extends Omit<CreateHoverCardProps, 'id'> {
6
- id?: string | null;
5
+ export interface HoverCardProps extends CreateHoverCardProps {
7
6
  children?: Snippet<[api: CreateHoverCardReturn]>;
8
7
  }
9
8
  </script>
10
9
 
11
10
  <script lang="ts">
12
- import {getEnvironmentContext} from '../environment-provider/index.js';
13
- import {getLocaleContext} from '../locale-provider/index.js';
14
- import {createUniqueId} from '../utils.svelte.js';
15
11
  import {hoverCardContext} from './context.svelte.js';
16
12
  import {createHoverCard} from './create-hover-card.svelte.js';
17
13
 
18
- let {id, dir, getRootNode, children, ...props}: HoverCardProps = $props();
14
+ let {id, children, ...props}: HoverCardProps = $props();
19
15
 
20
- let localeContext = getLocaleContext();
21
- let environmentContext = getEnvironmentContext();
22
-
23
- let uid = createUniqueId();
24
-
25
- let context = createHoverCard({
26
- id: id ?? uid,
27
- dir: dir ?? localeContext?.dir,
28
- getRootNode: getRootNode ?? environmentContext?.getRootNode,
29
- ...props,
30
- });
16
+ let context = createHoverCard({id, ...props});
31
17
 
32
18
  hoverCardContext.set(context);
33
19
  </script>
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface HoverCardTriggerProps extends HtmlIngredientProps<'a'> {}
4
+ export interface HoverCardTriggerProps extends HtmlProps<'a'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuArrowTipProps extends HtmlIngredientProps<'div'> {}
4
+ export interface MenuArrowTipProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuArrowProps extends HtmlIngredientProps<'div'> {}
4
+ export interface MenuArrowProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuContentProps extends HtmlIngredientProps<'div'> {}
4
+ export interface MenuContentProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuContextTriggerProps extends HtmlIngredientProps<'button'> {}
4
+ export interface MenuContextTriggerProps extends HtmlProps<'button'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,5 +1,7 @@
1
1
  import * as menu from '@zag-js/menu';
2
- export interface CreateMenuProps extends menu.Context {
2
+ export interface CreateMenuProps extends Omit<menu.Context, 'id' | 'dir' | 'getRootNode' | 'open.controlled'> {
3
+ id?: string | null;
4
+ defaultOpen?: boolean;
3
5
  }
4
6
  export interface CreateMenuReturn extends menu.Api {
5
7
  }
@@ -1,7 +1,19 @@
1
+ import { getEnvironmentContext } from '../environment-provider/context.svelte.js';
2
+ import { getLocaleContext } from '../locale-provider/context.svelte.js';
3
+ import { createUniqueId } from '../utils.svelte.js';
1
4
  import * as menu from '@zag-js/menu';
2
5
  import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
3
6
  export function createMenu(props) {
4
- const [state, send] = useMachine(menu.machine(props));
7
+ const localeContext = getLocaleContext();
8
+ const environmentContext = getEnvironmentContext();
9
+ const [state, send] = useMachine(menu.machine({
10
+ ...props,
11
+ id: props.id ?? createUniqueId(),
12
+ dir: localeContext?.dir,
13
+ open: props.defaultOpen,
14
+ getRootNode: environmentContext?.getRootNode,
15
+ 'open.controlled': props.open != null,
16
+ }));
5
17
  const api = $derived(reflect(() => menu.connect(state, send, normalizeProps)));
6
18
  return api;
7
19
  }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuIndicatorProps extends HtmlIngredientProps<'span'> {}
4
+ export interface MenuIndicatorProps extends HtmlProps<'span'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuItemGroupLabelProps extends HtmlIngredientProps<'span'> {}
4
+ export interface MenuItemGroupLabelProps extends HtmlProps<'span'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" module>
2
- import type {Assign, HtmlIngredientProps} from '../types.js';
2
+ import type {Assign, HtmlProps} from '../types.js';
3
3
  import type {ItemGroupProps} from '@zag-js/menu';
4
4
 
5
5
  export interface MenuItemGroupProps
6
- extends Assign<HtmlIngredientProps<'div'>, Omit<ItemGroupProps, 'id'>> {}
6
+ extends Assign<HtmlProps<'div'>, Omit<ItemGroupProps, 'id'>> {}
7
7
  </script>
8
8
 
9
9
  <script lang="ts">
@@ -1,10 +1,9 @@
1
1
  <script lang="ts" module>
2
- import type {Assign, HtmlIngredientProps} from '../types.js';
2
+ import type {Assign, HtmlProps} from '../types.js';
3
3
  import type {ItemProps, ItemState} from '@zag-js/menu';
4
4
  import type {Snippet} from 'svelte';
5
5
 
6
- export interface MenuItemProps
7
- extends Assign<Omit<HtmlIngredientProps<'div'>, 'children'>, ItemProps> {
6
+ export interface MenuItemProps extends Assign<Omit<HtmlProps<'div'>, 'children'>, ItemProps> {
8
7
  children?: Snippet<[state: ItemState]>;
9
8
  }
10
9
  </script>
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuOptionItemIndicatorProps extends HtmlIngredientProps<'span'> {}
4
+ export interface MenuOptionItemIndicatorProps extends HtmlProps<'span'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuOptionItemTextProps extends HtmlIngredientProps<'span'> {}
4
+ export interface MenuOptionItemTextProps extends HtmlProps<'span'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,13 +1,10 @@
1
1
  <script lang="ts" module>
2
- import type {Assign, HtmlIngredientProps, PickPartial} from '../types.js';
2
+ import type {Assign, HtmlProps} from '../types.js';
3
3
  import type {OptionItemProps, OptionItemState} from '@zag-js/menu';
4
4
  import type {Snippet} from 'svelte';
5
5
 
6
6
  export interface MenuOptionItemProps
7
- extends Assign<
8
- Omit<HtmlIngredientProps<'div'>, 'children'>,
9
- PickPartial<OptionItemProps, 'type' | 'checked'>
10
- > {
7
+ extends Assign<Omit<HtmlProps<'div'>, 'children'>, OptionItemProps> {
11
8
  children?: Snippet<[state: OptionItemState]>;
12
9
  }
13
10
  </script>
@@ -17,9 +14,9 @@
17
14
  import {menuContext, menuOptionItemPropsContext} from './context.svelte.js';
18
15
 
19
16
  let {
20
- type = 'checkbox',
17
+ type,
21
18
  value,
22
- checked = false,
19
+ checked,
23
20
  disabled,
24
21
  valueText,
25
22
  closeOnSelect,
@@ -30,7 +27,7 @@
30
27
 
31
28
  let context = menuContext.get();
32
29
 
33
- let itemProps = $derived({
30
+ let itemProps: OptionItemProps = $derived({
34
31
  type,
35
32
  value,
36
33
  checked,
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuPositionerProps extends HtmlIngredientProps<'div'> {}
4
+ export interface MenuPositionerProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -2,72 +2,18 @@
2
2
  import type {Snippet} from 'svelte';
3
3
  import {type CreateMenuProps, type CreateMenuReturn} from './create-menu.svelte.js';
4
4
 
5
- export interface MenuRootProps extends Omit<CreateMenuProps, 'id'> {
6
- id?: string | null;
5
+ export interface MenuRootProps extends CreateMenuProps {
7
6
  children?: Snippet<[api: CreateMenuReturn]>;
8
7
  }
9
8
  </script>
10
9
 
11
10
  <script lang="ts">
12
- import {getEnvironmentContext} from '../environment-provider/index.js';
13
- import {getLocaleContext} from '../locale-provider/index.js';
14
- import {createUniqueId} from '../utils.svelte.js';
15
11
  import {menuContext} from './context.svelte.js';
16
12
  import {createMenu} from './create-menu.svelte.js';
17
13
 
18
- let {
19
- id,
20
- ids,
21
- dir,
22
- open,
23
- 'open.controlled': openControlled,
24
- loopFocus,
25
- typeahead,
26
- composite,
27
- positioning,
28
- anchorPoint,
29
- closeOnSelect,
30
- 'aria-label': ariaLabel,
31
- highlightedValue,
32
- onSelect,
33
- onOpenChange,
34
- onFocusOutside,
35
- onEscapeKeyDown,
36
- onHighlightChange,
37
- onInteractOutside,
38
- onPointerDownOutside,
39
- getRootNode,
40
- children,
41
- }: MenuRootProps = $props();
14
+ let {children, ...props}: MenuRootProps = $props();
42
15
 
43
- let localeContext = getLocaleContext();
44
- let environmnetContext = getEnvironmentContext();
45
-
46
- let uid = createUniqueId();
47
-
48
- let context = createMenu({
49
- id: id ?? uid,
50
- ids,
51
- dir: dir ?? localeContext?.dir,
52
- open,
53
- 'open.controlled': openControlled,
54
- loopFocus,
55
- typeahead,
56
- composite,
57
- positioning,
58
- anchorPoint,
59
- closeOnSelect,
60
- 'aria-label': ariaLabel,
61
- highlightedValue,
62
- onSelect,
63
- onOpenChange,
64
- onFocusOutside,
65
- onEscapeKeyDown,
66
- onHighlightChange,
67
- onInteractOutside,
68
- onPointerDownOutside,
69
- getRootNode: getRootNode ?? environmnetContext?.getRootNode,
70
- });
16
+ let context = createMenu(props);
71
17
 
72
18
  menuContext.set(context);
73
19
  </script>
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuSeparatorProps extends HtmlIngredientProps<'div'> {}
4
+ export interface MenuSeparatorProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuTriggerItemIndicatorProps extends HtmlIngredientProps<'button'> {}
4
+ export interface MenuTriggerItemIndicatorProps extends HtmlProps<'button'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface MenuTriggerProps extends HtmlIngredientProps<'button'> {}
4
+ export interface MenuTriggerProps extends HtmlProps<'button'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface NumberInputControlTriggerProps extends HtmlIngredientProps<'div'> {}
4
+ export interface NumberInputControlTriggerProps extends HtmlProps<'div'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,5 +1,6 @@
1
1
  import * as numberInput from '@zag-js/number-input';
2
- export interface CreateNumberInputProps extends numberInput.Context {
2
+ export interface CreateNumberInputProps extends Omit<numberInput.Context, 'id' | 'dir' | 'locale' | 'getRootNode'> {
3
+ id?: string | null;
3
4
  }
4
5
  export interface CreateNumberInputReturn extends numberInput.Api {
5
6
  }
@@ -1,7 +1,18 @@
1
+ import { getEnvironmentContext } from '../environment-provider/context.svelte.js';
2
+ import { getLocaleContext } from '../locale-provider/context.svelte.js';
3
+ import { createUniqueId } from '../utils.svelte.js';
1
4
  import * as numberInput from '@zag-js/number-input';
2
5
  import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
3
6
  export function createNumberInput(props) {
4
- const [state, send] = useMachine(numberInput.machine(props));
7
+ const localeContext = getLocaleContext();
8
+ const environmentContext = getEnvironmentContext();
9
+ const [state, send] = useMachine(numberInput.machine({
10
+ ...props,
11
+ id: props.id ?? createUniqueId(),
12
+ dir: localeContext?.dir,
13
+ locale: localeContext?.locale,
14
+ getRootNode: environmentContext?.getRootNode,
15
+ }));
5
16
  const api = $derived(reflect(() => numberInput.connect(state, send, normalizeProps)));
6
17
  return api;
7
18
  }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface NumberInputDecrementTriggerProps extends HtmlIngredientProps<'button'> {}
4
+ export interface NumberInputDecrementTriggerProps extends HtmlProps<'button'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface NumberInputIncrementTriggerProps extends HtmlIngredientProps<'button'> {}
4
+ export interface NumberInputIncrementTriggerProps extends HtmlProps<'button'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
- import type {HtmlIngredientProps} from '../types.js';
2
+ import type {HtmlProps} from '../types.js';
3
3
 
4
- export interface NumberInputInputProps extends HtmlIngredientProps<'input'> {}
4
+ export interface NumberInputInputProps extends HtmlProps<'input'> {}
5
5
  </script>
6
6
 
7
7
  <script lang="ts">