ui-ingredients 0.31.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/dist/accordion/accordion-item.svelte +3 -0
  2. package/dist/accordion/accordion-root.svelte +13 -7
  3. package/dist/accordion/accordion-root.svelte.d.ts +2 -2
  4. package/dist/accordion/create-accordion.svelte.d.ts +1 -2
  5. package/dist/accordion/create-accordion.svelte.js +7 -13
  6. package/dist/alert/alert-root.svelte +11 -5
  7. package/dist/alert/alert-root.svelte.d.ts +2 -2
  8. package/dist/alert/create-alert.svelte.d.ts +1 -1
  9. package/dist/alert/create-alert.svelte.js +3 -5
  10. package/dist/alert-dialog/alert-dialog-anatomy.js +1 -1
  11. package/dist/alert-dialog/alert-dialog-root.svelte +9 -3
  12. package/dist/alert-dialog/alert-dialog-root.svelte.d.ts +2 -1
  13. package/dist/alert-dialog/create-alert-dialog.svelte.d.ts +1 -3
  14. package/dist/alert-dialog/create-alert-dialog.svelte.js +11 -16
  15. package/dist/angle-slider/angle-slider-root.svelte +10 -5
  16. package/dist/angle-slider/angle-slider-root.svelte.d.ts +2 -2
  17. package/dist/angle-slider/create-angle-slider.svelte.d.ts +1 -2
  18. package/dist/angle-slider/create-angle-slider.svelte.js +3 -7
  19. package/dist/avatar/avatar-root.svelte +12 -4
  20. package/dist/avatar/avatar-root.svelte.d.ts +2 -2
  21. package/dist/avatar/create-avatar.svelte.d.ts +1 -2
  22. package/dist/avatar/create-avatar.svelte.js +3 -7
  23. package/dist/breadcrumbs/breadcrumbs-anatomy.d.ts +3 -0
  24. package/dist/breadcrumbs/breadcrumbs-anatomy.js +3 -0
  25. package/dist/breadcrumbs/breadcrumbs-context.svelte.d.ts +3 -0
  26. package/dist/breadcrumbs/breadcrumbs-context.svelte.js +3 -0
  27. package/dist/breadcrumbs/breadcrumbs-item.svelte +5 -0
  28. package/dist/breadcrumbs/breadcrumbs-item.svelte.d.ts +1 -0
  29. package/dist/breadcrumbs/breadcrumbs-link.svelte +5 -0
  30. package/dist/breadcrumbs/breadcrumbs-link.svelte.d.ts +1 -0
  31. package/dist/breadcrumbs/breadcrumbs-list.svelte +5 -0
  32. package/dist/breadcrumbs/breadcrumbs-list.svelte.d.ts +1 -0
  33. package/dist/breadcrumbs/breadcrumbs-root.svelte +5 -0
  34. package/dist/breadcrumbs/breadcrumbs-root.svelte.d.ts +1 -0
  35. package/dist/breadcrumbs/breadcrumbs-separator.svelte +5 -0
  36. package/dist/breadcrumbs/breadcrumbs-separator.svelte.d.ts +1 -0
  37. package/dist/breadcrumbs/create-breadcrumbs.d.ts +6 -0
  38. package/dist/breadcrumbs/create-breadcrumbs.js +3 -0
  39. package/dist/carousel/carousel-root.svelte +11 -5
  40. package/dist/carousel/carousel-root.svelte.d.ts +2 -2
  41. package/dist/carousel/create-carousel.svelte.d.ts +1 -2
  42. package/dist/carousel/create-carousel.svelte.js +3 -7
  43. package/dist/checkbox/checkbox-root.svelte +10 -5
  44. package/dist/checkbox/checkbox-root.svelte.d.ts +2 -2
  45. package/dist/checkbox/create-checkbox.svelte.d.ts +1 -2
  46. package/dist/checkbox/create-checkbox.svelte.js +5 -9
  47. package/dist/clipboard/clipboard-root.svelte +11 -5
  48. package/dist/clipboard/clipboard-root.svelte.d.ts +2 -2
  49. package/dist/clipboard/create-clipboard.svelte.d.ts +1 -2
  50. package/dist/clipboard/create-clipboard.svelte.js +2 -6
  51. package/dist/collapsible/collapsible-root.svelte +13 -8
  52. package/dist/collapsible/collapsible-root.svelte.d.ts +2 -2
  53. package/dist/collapsible/create-collapsible.svelte.d.ts +1 -3
  54. package/dist/collapsible/create-collapsible.svelte.js +3 -8
  55. package/dist/color-picker/color-picker-channel-slider-value-text.svelte +1 -1
  56. package/dist/color-picker/color-picker-root.svelte +15 -8
  57. package/dist/color-picker/color-picker-root.svelte.d.ts +2 -2
  58. package/dist/color-picker/create-color-picker.svelte.d.ts +5 -5
  59. package/dist/color-picker/create-color-picker.svelte.js +9 -13
  60. package/dist/combobox/combobox-item-group.svelte +2 -2
  61. package/dist/combobox/combobox-root.svelte +16 -8
  62. package/dist/combobox/combobox-root.svelte.d.ts +2 -2
  63. package/dist/combobox/create-combobox.svelte.d.ts +1 -5
  64. package/dist/combobox/create-combobox.svelte.js +6 -14
  65. package/dist/date-picker/create-date-picker.svelte.d.ts +1 -7
  66. package/dist/date-picker/create-date-picker.svelte.js +4 -24
  67. package/dist/date-picker/date-picker-anatomy.d.ts +1 -2
  68. package/dist/date-picker/date-picker-anatomy.js +1 -3
  69. package/dist/date-picker/date-picker-root.svelte +20 -11
  70. package/dist/date-picker/date-picker-root.svelte.d.ts +2 -2
  71. package/dist/dialog/create-dialog.svelte.d.ts +1 -3
  72. package/dist/dialog/create-dialog.svelte.js +3 -8
  73. package/dist/dialog/dialog-root.svelte +9 -3
  74. package/dist/dialog/dialog-root.svelte.d.ts +2 -1
  75. package/dist/drawer/create-drawer.svelte.d.ts +8 -3
  76. package/dist/drawer/create-drawer.svelte.js +38 -20
  77. package/dist/drawer/drawer-root.svelte +9 -3
  78. package/dist/drawer/drawer-root.svelte.d.ts +2 -1
  79. package/dist/editable/create-editable.svelte.d.ts +1 -3
  80. package/dist/editable/create-editable.svelte.js +5 -10
  81. package/dist/editable/editable-root.svelte +12 -6
  82. package/dist/editable/editable-root.svelte.d.ts +2 -2
  83. package/dist/field/create-field.svelte.d.ts +2 -1
  84. package/dist/field/create-field.svelte.js +11 -3
  85. package/dist/field/field-root.svelte +12 -7
  86. package/dist/field/field-root.svelte.d.ts +2 -2
  87. package/dist/file-upload/create-file-upload.svelte.d.ts +1 -2
  88. package/dist/file-upload/create-file-upload.svelte.js +5 -9
  89. package/dist/file-upload/file-upload-root.svelte +9 -6
  90. package/dist/file-upload/file-upload-root.svelte.d.ts +2 -2
  91. package/dist/floating-panel/create-floating-panel.svelte.d.ts +1 -2
  92. package/dist/floating-panel/create-floating-panel.svelte.js +3 -7
  93. package/dist/floating-panel/floating-panel-anatomy.d.ts +1 -1
  94. package/dist/floating-panel/floating-panel-anatomy.js +1 -1
  95. package/dist/floating-panel/floating-panel-root.svelte +6 -3
  96. package/dist/floating-panel/floating-panel-root.svelte.d.ts +2 -1
  97. package/dist/focus-trap/focus-trap.svelte +104 -0
  98. package/dist/focus-trap/focus-trap.svelte.d.ts +11 -0
  99. package/dist/focus-trap/index.d.ts +1 -0
  100. package/dist/focus-trap/index.js +1 -0
  101. package/dist/highlight/highlight.svelte +8 -2
  102. package/dist/hover-card/create-hover-card.svelte.d.ts +1 -3
  103. package/dist/hover-card/create-hover-card.svelte.js +3 -8
  104. package/dist/hover-card/hover-card-root.svelte +14 -6
  105. package/dist/hover-card/hover-card-root.svelte.d.ts +2 -1
  106. package/dist/index.d.ts +1 -1
  107. package/dist/index.js +1 -1
  108. package/dist/locale-provider/index.d.ts +2 -2
  109. package/dist/locale-provider/index.js +2 -2
  110. package/dist/locale-provider/{local-provider.svelte → locale-provider.svelte} +1 -1
  111. package/dist/locale-provider/locale-provider.svelte.d.ts +8 -0
  112. package/dist/menu/create-menu.svelte.d.ts +2 -4
  113. package/dist/menu/create-menu.svelte.js +4 -9
  114. package/dist/menu/menu-arrow-tip.svelte +1 -1
  115. package/dist/menu/menu-arrow.svelte +1 -1
  116. package/dist/menu/menu-content.svelte +5 -1
  117. package/dist/menu/menu-context-trigger.svelte +3 -1
  118. package/dist/menu/menu-indicator.svelte +3 -1
  119. package/dist/menu/menu-item-group-label.svelte +1 -1
  120. package/dist/menu/menu-item-group.svelte +3 -3
  121. package/dist/menu/menu-item.svelte +9 -2
  122. package/dist/menu/menu-option-item-indicator.svelte +1 -1
  123. package/dist/menu/menu-option-item-text.svelte +1 -1
  124. package/dist/menu/menu-option-item.svelte +10 -2
  125. package/dist/menu/menu-positioner.svelte +5 -1
  126. package/dist/menu/menu-root.svelte +13 -8
  127. package/dist/menu/menu-root.svelte.d.ts +2 -1
  128. package/dist/menu/menu-separator.svelte +3 -1
  129. package/dist/menu/menu-trigger.svelte +1 -1
  130. package/dist/number-input/create-number-input.svelte.d.ts +1 -2
  131. package/dist/number-input/create-number-input.svelte.js +5 -9
  132. package/dist/number-input/number-input-root.svelte +10 -5
  133. package/dist/number-input/number-input-root.svelte.d.ts +2 -2
  134. package/dist/pagination/create-pagination.svelte.d.ts +1 -2
  135. package/dist/pagination/create-pagination.svelte.js +3 -7
  136. package/dist/pagination/pagination-root.svelte +11 -5
  137. package/dist/pagination/pagination-root.svelte.d.ts +2 -2
  138. package/dist/pin-input/create-pin-input.svelte.d.ts +1 -4
  139. package/dist/pin-input/create-pin-input.svelte.js +5 -19
  140. package/dist/pin-input/index.d.ts +0 -1
  141. package/dist/pin-input/pin-input-anatomy.d.ts +1 -2
  142. package/dist/pin-input/pin-input-anatomy.js +1 -3
  143. package/dist/pin-input/pin-input-root.svelte +11 -5
  144. package/dist/pin-input/pin-input-root.svelte.d.ts +2 -2
  145. package/dist/pin-input/pin-input.d.ts +0 -1
  146. package/dist/pin-input/pin-input.js +0 -1
  147. package/dist/popover/create-popover.svelte.d.ts +1 -3
  148. package/dist/popover/create-popover.svelte.js +3 -8
  149. package/dist/popover/popover-root.svelte +11 -6
  150. package/dist/popover/popover-root.svelte.d.ts +2 -1
  151. package/dist/presence/create-presence.svelte.d.ts +2 -2
  152. package/dist/presence/create-presence.svelte.js +5 -13
  153. package/dist/presence/presence.svelte +10 -1
  154. package/dist/progress/create-progress.svelte.d.ts +1 -2
  155. package/dist/progress/create-progress.svelte.js +4 -7
  156. package/dist/progress/progress-root.svelte +12 -5
  157. package/dist/progress/progress-root.svelte.d.ts +2 -2
  158. package/dist/qr-code/create-qr-code.svelte.d.ts +1 -2
  159. package/dist/qr-code/create-qr-code.svelte.js +3 -7
  160. package/dist/qr-code/qr-code-root.svelte +11 -5
  161. package/dist/qr-code/qr-code-root.svelte.d.ts +2 -2
  162. package/dist/radio-group/create-radio-group.svelte.d.ts +1 -2
  163. package/dist/radio-group/create-radio-group.svelte.js +3 -7
  164. package/dist/radio-group/radio-group-root.svelte +11 -5
  165. package/dist/radio-group/radio-group-root.svelte.d.ts +2 -2
  166. package/dist/rating-group/create-rating-group.svelte.d.ts +1 -2
  167. package/dist/rating-group/create-rating-group.svelte.js +5 -9
  168. package/dist/rating-group/rating-group-root.svelte +11 -5
  169. package/dist/rating-group/rating-group-root.svelte.d.ts +2 -2
  170. package/dist/segment-group/create-segment-group.svelte.d.ts +1 -2
  171. package/dist/segment-group/create-segment-group.svelte.js +28 -15
  172. package/dist/segment-group/segment-group-root.svelte +11 -5
  173. package/dist/segment-group/segment-group-root.svelte.d.ts +2 -2
  174. package/dist/select/create-select.svelte.d.ts +1 -5
  175. package/dist/select/create-select.svelte.js +6 -11
  176. package/dist/select/select-item-group.svelte +2 -2
  177. package/dist/select/select-root.svelte +17 -8
  178. package/dist/select/select-root.svelte.d.ts +2 -2
  179. package/dist/signature-pad/create-signature-pad.svelte.d.ts +1 -2
  180. package/dist/signature-pad/create-signature-pad.svelte.js +3 -7
  181. package/dist/signature-pad/signature-pad-root.svelte +9 -5
  182. package/dist/signature-pad/signature-pad-root.svelte.d.ts +2 -2
  183. package/dist/slider/create-slider.svelte.d.ts +1 -2
  184. package/dist/slider/create-slider.svelte.js +3 -7
  185. package/dist/slider/slider-root.svelte +11 -5
  186. package/dist/slider/slider-root.svelte.d.ts +2 -2
  187. package/dist/splitter/create-splitter.svelte.d.ts +1 -2
  188. package/dist/splitter/create-splitter.svelte.js +3 -7
  189. package/dist/splitter/splitter-root.svelte +11 -5
  190. package/dist/splitter/splitter-root.svelte.d.ts +2 -2
  191. package/dist/steps/create-steps.svelte.d.ts +1 -2
  192. package/dist/steps/create-steps.svelte.js +3 -7
  193. package/dist/steps/steps-root.svelte +13 -7
  194. package/dist/steps/steps-root.svelte.d.ts +2 -2
  195. package/dist/switch/create-switch.svelte.d.ts +1 -2
  196. package/dist/switch/create-switch.svelte.js +5 -9
  197. package/dist/switch/switch-root.svelte +11 -5
  198. package/dist/switch/switch-root.svelte.d.ts +2 -2
  199. package/dist/tabs/create-tabs.svelte.d.ts +1 -2
  200. package/dist/tabs/create-tabs.svelte.js +3 -7
  201. package/dist/tabs/tabs-root.svelte +9 -5
  202. package/dist/tabs/tabs-root.svelte.d.ts +2 -2
  203. package/dist/tabs/tabs-trigger.svelte +10 -3
  204. package/dist/tabs/tabs-trigger.svelte.d.ts +6 -1
  205. package/dist/tags-input/create-tags-input.svelte.d.ts +1 -2
  206. package/dist/tags-input/create-tags-input.svelte.js +5 -9
  207. package/dist/tags-input/tags-input-root.svelte +11 -5
  208. package/dist/tags-input/tags-input-root.svelte.d.ts +2 -2
  209. package/dist/time-picker/create-time-picker.svelte.d.ts +1 -3
  210. package/dist/time-picker/create-time-picker.svelte.js +3 -8
  211. package/dist/time-picker/time-picker-root.svelte +16 -8
  212. package/dist/time-picker/time-picker-root.svelte.d.ts +2 -2
  213. package/dist/timer/create-timer.svelte.d.ts +1 -2
  214. package/dist/timer/create-timer.svelte.js +2 -6
  215. package/dist/timer/timer-root.svelte +10 -5
  216. package/dist/timer/timer-root.svelte.d.ts +2 -2
  217. package/dist/toast/create-toaster.svelte.d.ts +4 -7
  218. package/dist/toast/create-toaster.svelte.js +3 -9
  219. package/dist/toast/index.d.ts +1 -3
  220. package/dist/toast/index.js +1 -3
  221. package/dist/toast/toast-anatomy.d.ts +1 -1
  222. package/dist/toast/toast-anatomy.js +1 -1
  223. package/dist/toast/toast-context.svelte.js +1 -0
  224. package/dist/toast/toast-provider.svelte +27 -0
  225. package/dist/toast/toast-provider.svelte.d.ts +11 -0
  226. package/dist/toast/toast-root.svelte +2 -2
  227. package/dist/toast/toast-root.svelte.d.ts +2 -2
  228. package/dist/toast/toaster.svelte +23 -37
  229. package/dist/toast/toaster.svelte.d.ts +7 -6
  230. package/dist/toggle/create-toggle.svelte.d.ts +3 -13
  231. package/dist/toggle/create-toggle.svelte.js +4 -31
  232. package/dist/toggle/index.d.ts +1 -0
  233. package/dist/toggle/toggle-anatomy.d.ts +1 -2
  234. package/dist/toggle/toggle-anatomy.js +1 -3
  235. package/dist/toggle/toggle-indicator.svelte +29 -0
  236. package/dist/toggle/toggle-indicator.svelte.d.ts +6 -0
  237. package/dist/toggle/toggle-root.svelte +1 -0
  238. package/dist/toggle/toggle.d.ts +1 -0
  239. package/dist/toggle/toggle.js +1 -0
  240. package/dist/toggle-group/create-toggle-group.svelte.d.ts +1 -2
  241. package/dist/toggle-group/create-toggle-group.svelte.js +3 -7
  242. package/dist/toggle-group/toggle-group-root.svelte +11 -5
  243. package/dist/toggle-group/toggle-group-root.svelte.d.ts +2 -2
  244. package/dist/tooltip/create-tooltip.svelte.d.ts +1 -3
  245. package/dist/tooltip/create-tooltip.svelte.js +3 -8
  246. package/dist/tooltip/tooltip-root.svelte +9 -3
  247. package/dist/tooltip/tooltip-root.svelte.d.ts +2 -1
  248. package/dist/tour/create-tour.svelte.d.ts +7 -3
  249. package/dist/tour/create-tour.svelte.js +9 -12
  250. package/dist/tour/tour-root.svelte +9 -3
  251. package/dist/tour/tour-root.svelte.d.ts +2 -1
  252. package/dist/tree-view/create-tree-view.svelte.d.ts +1 -2
  253. package/dist/tree-view/create-tree-view.svelte.js +3 -7
  254. package/dist/tree-view/tree-view-branch.svelte +3 -0
  255. package/dist/tree-view/tree-view-root.svelte +14 -7
  256. package/dist/tree-view/tree-view-root.svelte.d.ts +2 -2
  257. package/dist/types.d.ts +1 -0
  258. package/package.json +403 -403
  259. package/dist/create-unique-id.d.ts +0 -1
  260. package/dist/create-unique-id.js +0 -15
  261. package/dist/locale-provider/local-provider.svelte.d.ts +0 -8
  262. package/dist/pin-input/pin-input-clear-trigger.svelte +0 -31
  263. package/dist/pin-input/pin-input-clear-trigger.svelte.d.ts +0 -6
  264. package/dist/toast/create-toast.svelte.d.ts +0 -6
  265. package/dist/toast/create-toast.svelte.js +0 -6
  266. package/dist/toast/toast-actor.svelte +0 -19
  267. package/dist/toast/toast-actor.svelte.d.ts +0 -10
  268. package/dist/toast/toast-context.svelte.d.ts +0 -2
  269. /package/dist/locale-provider/{local-provider-context.svelte.d.ts → locale-provider-context.svelte.d.ts} +0 -0
  270. /package/dist/locale-provider/{local-provider-context.svelte.js → locale-provider-context.svelte.js} +0 -0
package/dist/index.d.ts CHANGED
@@ -18,6 +18,7 @@ export * from './environment-provider/index.js';
18
18
  export * from './field/index.js';
19
19
  export * from './file-upload/index.js';
20
20
  export * from './floating-panel/index.js';
21
+ export * from './focus-trap/index.js';
21
22
  export * from './highlight/index.js';
22
23
  export * from './hover-card/index.js';
23
24
  export * from './locale-provider/index.js';
@@ -51,7 +52,6 @@ export * from './tour/index.js';
51
52
  export * from './tree-view/index.js';
52
53
  export * from './create-context.svelte.js';
53
54
  export * from './create-split-props.js';
54
- export * from './create-unique-id.js';
55
55
  export * from './merge-props.js';
56
56
  export * from '@zag-js/anatomy';
57
57
  export { reflect } from '@zag-js/svelte';
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ export * from './environment-provider/index.js';
18
18
  export * from './field/index.js';
19
19
  export * from './file-upload/index.js';
20
20
  export * from './floating-panel/index.js';
21
+ export * from './focus-trap/index.js';
21
22
  export * from './highlight/index.js';
22
23
  export * from './hover-card/index.js';
23
24
  export * from './locale-provider/index.js';
@@ -51,7 +52,6 @@ export * from './tour/index.js';
51
52
  export * from './tree-view/index.js';
52
53
  export * from './create-context.svelte.js';
53
54
  export * from './create-split-props.js';
54
- export * from './create-unique-id.js';
55
55
  export * from './merge-props.js';
56
56
  export * from '@zag-js/anatomy';
57
57
  export { reflect } from '@zag-js/svelte';
@@ -1,3 +1,3 @@
1
1
  export type { Locale } from '@zag-js/i18n-utils';
2
- export { getLocaleContext, setLocaleContext, } from './local-provider-context.svelte.js';
3
- export { default as LocaleProvider, type LocaleProviderProps, } from './local-provider.svelte';
2
+ export { getLocaleContext, setLocaleContext, } from './locale-provider-context.svelte.js';
3
+ export { default as LocaleProvider, type LocaleProviderProps, } from './locale-provider.svelte';
@@ -1,2 +1,2 @@
1
- export { getLocaleContext, setLocaleContext, } from './local-provider-context.svelte.js';
2
- export { default as LocaleProvider, } from './local-provider.svelte';
1
+ export { getLocaleContext, setLocaleContext, } from './locale-provider-context.svelte.js';
2
+ export { default as LocaleProvider, } from './locale-provider.svelte';
@@ -9,7 +9,7 @@
9
9
 
10
10
  <script lang="ts">
11
11
  import {isRTL} from '@zag-js/i18n-utils';
12
- import {setLocaleContext} from './local-provider-context.svelte.js';
12
+ import {setLocaleContext} from './locale-provider-context.svelte.js';
13
13
 
14
14
  let {children, ...props}: LocaleProviderProps = $props();
15
15
 
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ export interface LocaleProviderProps {
3
+ locale: string;
4
+ children: Snippet;
5
+ }
6
+ declare const LocaleProvider: import("svelte").Component<LocaleProviderProps, {}, "">;
7
+ type LocaleProvider = ReturnType<typeof LocaleProvider>;
8
+ export default LocaleProvider;
@@ -1,9 +1,7 @@
1
1
  import * as menu from '@zag-js/menu';
2
- export interface CreateMenuProps extends Omit<menu.Context, 'id' | 'dir' | 'getRootNode' | 'open.controlled'> {
3
- id?: string;
4
- openControlled?: boolean;
2
+ export interface CreateMenuProps extends Omit<menu.Props, 'dir' | 'getRootNode'> {
5
3
  }
6
4
  export interface CreateMenuReturn extends menu.Api {
7
- machine: menu.Service;
5
+ service: menu.Service;
8
6
  }
9
7
  export declare function createMenu(props: CreateMenuProps): CreateMenuReturn;
@@ -1,22 +1,17 @@
1
1
  import * as menu from '@zag-js/menu';
2
2
  import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
3
- import { createUniqueId } from '../create-unique-id.js';
4
3
  import { getEnvironmentContext } from '../environment-provider/enviroment-provider-context.svelte.js';
5
- import { getLocaleContext } from '../locale-provider/local-provider-context.svelte.js';
4
+ import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
6
5
  export function createMenu(props) {
7
6
  const locale = getLocaleContext();
8
7
  const environment = getEnvironmentContext();
9
- const id = createUniqueId();
10
- const context = reflect(() => ({
11
- id,
8
+ const service = useMachine(menu.machine, () => ({
12
9
  dir: locale?.dir,
13
10
  getRootNode: environment?.getRootNode,
14
- 'open.controlled': props.openControlled,
15
11
  ...props,
16
12
  }));
17
- const [state, send, machine] = useMachine(menu.machine(context), { context });
18
13
  return reflect(() => ({
19
- ...menu.connect(state, send, normalizeProps),
20
- machine,
14
+ ...menu.connect(service, normalizeProps),
15
+ service,
21
16
  }));
22
17
  }
@@ -17,7 +17,7 @@
17
17
  }: MenuArrowTipProps = $props();
18
18
 
19
19
  let menu = getMenuContext();
20
- let mergedProps = $derived(mergeProps(menu!.getArrowTipProps(), props));
20
+ let mergedProps = $derived(mergeProps(menu?.getArrowTipProps() ?? {}, props));
21
21
  </script>
22
22
 
23
23
  {#if asChild}
@@ -17,7 +17,7 @@
17
17
  }: MenuArrowProps = $props();
18
18
 
19
19
  let menu = getMenuContext();
20
- let mergedProps = $derived(mergeProps(menu!.getArrowProps(), props));
20
+ let mergedProps = $derived(mergeProps(menu?.getArrowProps() ?? {}, props));
21
21
  </script>
22
22
 
23
23
  {#if asChild}
@@ -21,7 +21,11 @@
21
21
  let menu = getMenuContext();
22
22
  let presence = getPresenceContext();
23
23
  let mergedProps = $derived(
24
- mergeProps(menu!.getContentProps(), presence.getPresenceProps(), props),
24
+ mergeProps(
25
+ menu?.getContentProps() ?? {},
26
+ presence.getPresenceProps(),
27
+ props,
28
+ ),
25
29
  );
26
30
  </script>
27
31
 
@@ -17,7 +17,9 @@
17
17
  }: MenuContextTriggerProps = $props();
18
18
 
19
19
  let menu = getMenuContext();
20
- let mergedProps = $derived(mergeProps(menu!.getContextTriggerProps(), props));
20
+ let mergedProps = $derived(
21
+ mergeProps(menu?.getContextTriggerProps() ?? {}, props),
22
+ );
21
23
  </script>
22
24
 
23
25
  {#if asChild}
@@ -17,7 +17,9 @@
17
17
  }: MenuIndicatorProps = $props();
18
18
 
19
19
  let menu = getMenuContext();
20
- let mergedProps = $derived(mergeProps(menu!.getIndicatorProps(), props));
20
+ let mergedProps = $derived(
21
+ mergeProps(menu?.getIndicatorProps() ?? {}, props),
22
+ );
21
23
  </script>
22
24
 
23
25
  {#if asChild}
@@ -23,7 +23,7 @@
23
23
  let itemGroupProps = getMenuItemGroupPropsContext();
24
24
  let mergedProps = $derived(
25
25
  mergeProps(
26
- menu!.getItemGroupLabelProps({htmlFor: itemGroupProps.id}),
26
+ menu?.getItemGroupLabelProps({htmlFor: itemGroupProps.id}) ?? {},
27
27
  props,
28
28
  ),
29
29
  );
@@ -6,7 +6,6 @@
6
6
  </script>
7
7
 
8
8
  <script lang="ts">
9
- import {createUniqueId} from '../create-unique-id.js';
10
9
  import {mergeProps} from '../merge-props.js';
11
10
  import {
12
11
  getMenuContext,
@@ -21,11 +20,12 @@
21
20
  ...props
22
21
  }: MenuItemGroupProps = $props();
23
22
 
23
+ let uid = $props.id();
24
+
24
25
  let menu = getMenuContext();
25
- let uid = createUniqueId();
26
26
  let itemGroupProps = $derived({id: id ?? uid});
27
27
  let mergedProps = $derived(
28
- mergeProps(menu!.getItemGroupProps(itemGroupProps), props),
28
+ mergeProps(menu?.getItemGroupProps(itemGroupProps) ?? {}, props),
29
29
  );
30
30
 
31
31
  setMenuItemGroupPropsContext(() => itemGroupProps);
@@ -31,9 +31,16 @@
31
31
  );
32
32
 
33
33
  let menu = getMenuContext();
34
- let itemState = $derived(menu!.getItemState(itemProps));
34
+
35
+ let itemState: ItemState = $derived(
36
+ menu?.getItemState(itemProps) ?? {
37
+ disabled: false,
38
+ highlighted: false,
39
+ },
40
+ );
41
+
35
42
  let mergedProps = $derived(
36
- mergeProps(menu!.getItemProps(itemProps), localProps),
43
+ mergeProps(menu?.getItemProps(itemProps) ?? {}, localProps),
37
44
  );
38
45
  </script>
39
46
 
@@ -22,7 +22,7 @@
22
22
  let menu = getMenuContext();
23
23
  let itemProps = getMenuOptionItemPropsContext();
24
24
  let mergedProps = $derived(
25
- mergeProps(menu!.getItemIndicatorProps(itemProps), props),
25
+ mergeProps(menu?.getItemIndicatorProps(itemProps) ?? {}, props),
26
26
  );
27
27
  </script>
28
28
 
@@ -22,7 +22,7 @@
22
22
  let menu = getMenuContext();
23
23
  let itemProps = getMenuOptionItemPropsContext();
24
24
  let mergedProps = $derived(
25
- mergeProps(menu!.getItemTextProps(itemProps), props),
25
+ mergeProps(menu?.getItemTextProps(itemProps) ?? {}, props),
26
26
  );
27
27
  </script>
28
28
 
@@ -37,9 +37,17 @@
37
37
  );
38
38
 
39
39
  let menu = getMenuContext();
40
- let itemState = $derived(menu!.getOptionItemState(itemProps));
40
+
41
+ let itemState: OptionItemState = $derived(
42
+ menu?.getOptionItemState(itemProps) ?? {
43
+ checked: false,
44
+ disabled: false,
45
+ highlighted: false,
46
+ },
47
+ );
48
+
41
49
  let mergedProps = $derived(
42
- mergeProps(menu!.getOptionItemProps(itemProps), localProps),
50
+ mergeProps(menu?.getOptionItemProps(itemProps) ?? {}, localProps),
43
51
  );
44
52
 
45
53
  setMenuOptionItemPropsContext(() => itemProps);
@@ -20,7 +20,11 @@
20
20
  let menu = getMenuContext();
21
21
  let presence = getPresenceContext();
22
22
  let mergedProps = $derived(
23
- mergeProps(menu!.getPositionerProps(), presence.getPresenceProps(), props),
23
+ mergeProps(
24
+ menu?.getPositionerProps() ?? {},
25
+ presence.getPresenceProps(),
26
+ props,
27
+ ),
24
28
  );
25
29
  </script>
26
30
 
@@ -1,13 +1,14 @@
1
1
  <script lang="ts" module>
2
2
  import type {Snippet} from 'svelte';
3
3
  import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
4
+ import type {Optional} from '../types.js';
4
5
  import {
5
6
  type CreateMenuProps,
6
7
  type CreateMenuReturn,
7
8
  } from './create-menu.svelte.js';
8
9
 
9
10
  export interface MenuRootProps
10
- extends CreateMenuProps,
11
+ extends Optional<CreateMenuProps, 'id'>,
11
12
  PresenceStrategyProps {
12
13
  children?: Snippet<[CreateMenuReturn]>;
13
14
  }
@@ -25,16 +26,19 @@
25
26
  setMenuTriggerItemContext,
26
27
  } from './menu-context.svelte.js';
27
28
 
28
- let {children, ...props}: MenuRootProps = $props();
29
+ let {id, children, ...props}: MenuRootProps = $props();
30
+
31
+ let uid = $props.id();
29
32
 
30
33
  let [createMenuProps, presenceStrategyProps] = $derived(
31
- createSplitProps<CreateMenuProps>([
34
+ createSplitProps<Omit<CreateMenuProps, 'id'>>([
32
35
  'anchorPoint',
33
36
  'aria-label',
34
37
  'closeOnSelect',
35
38
  'composite',
39
+ 'defaultHighlightedValue',
40
+ 'defaultOpen',
36
41
  'highlightedValue',
37
- 'id',
38
42
  'ids',
39
43
  'loopFocus',
40
44
  'navigate',
@@ -46,14 +50,15 @@
46
50
  'onPointerDownOutside',
47
51
  'onSelect',
48
52
  'open',
49
- 'openControlled',
50
53
  'positioning',
51
54
  'typeahead',
52
55
  ])(props),
53
56
  );
54
57
 
55
58
  let parentMenu = getMenuContext();
56
- let menu = createMenu(reflect(() => createMenuProps));
59
+
60
+ let menu = createMenu(reflect(() => ({...createMenuProps, id: id ?? uid})));
61
+
57
62
  let presence = createPresence(
58
63
  reflect(() => ({
59
64
  ...presenceStrategyProps,
@@ -66,8 +71,8 @@
66
71
  setMenuTriggerItemContext(() => parentMenu?.getTriggerItemProps(menu) ?? {});
67
72
 
68
73
  if (parentMenu) {
69
- parentMenu.setChild(menu.machine);
70
- menu.setParent(parentMenu.machine);
74
+ parentMenu.setChild(menu.service);
75
+ menu.setParent(parentMenu.service);
71
76
  }
72
77
  </script>
73
78
 
@@ -1,7 +1,8 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  import type { PresenceStrategyProps } from '../presence/create-presence.svelte.js';
3
+ import type { Optional } from '../types.js';
3
4
  import { type CreateMenuProps, type CreateMenuReturn } from './create-menu.svelte.js';
4
- export interface MenuRootProps extends CreateMenuProps, PresenceStrategyProps {
5
+ export interface MenuRootProps extends Optional<CreateMenuProps, 'id'>, PresenceStrategyProps {
5
6
  children?: Snippet<[CreateMenuReturn]>;
6
7
  }
7
8
  declare const MenuRoot: import("svelte").Component<MenuRootProps, {}, "">;
@@ -17,7 +17,9 @@
17
17
  }: MenuSeparatorProps = $props();
18
18
 
19
19
  let menu = getMenuContext();
20
- let mergedProps = $derived(mergeProps(menu!.getSeparatorProps(), props));
20
+ let mergedProps = $derived(
21
+ mergeProps(menu?.getSeparatorProps() ?? {}, props),
22
+ );
21
23
  </script>
22
24
 
23
25
  {#if asChild}
@@ -17,7 +17,7 @@
17
17
  }: MenuTriggerProps = $props();
18
18
 
19
19
  let menu = getMenuContext();
20
- let mergedProps = $derived(mergeProps(menu!.getTriggerProps(), props));
20
+ let mergedProps = $derived(mergeProps(menu?.getTriggerProps() ?? {}, props));
21
21
  </script>
22
22
 
23
23
  {#if asChild}
@@ -1,6 +1,5 @@
1
1
  import * as numberInput from '@zag-js/number-input';
2
- export interface CreateNumberInputProps extends Omit<numberInput.Context, 'id' | 'dir' | 'getRootNode'> {
3
- id?: string;
2
+ export interface CreateNumberInputProps extends Omit<numberInput.Props, 'dir' | 'getRootNode'> {
4
3
  }
5
4
  export interface CreateNumberInputReturn extends numberInput.Api {
6
5
  }
@@ -1,16 +1,13 @@
1
1
  import * as numberInput from '@zag-js/number-input';
2
2
  import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
3
- import { createUniqueId } from '../create-unique-id.js';
4
3
  import { getEnvironmentContext } from '../environment-provider/enviroment-provider-context.svelte.js';
5
4
  import { getFieldContext } from '../field/field-context.svelte.js';
6
- import { getLocaleContext } from '../locale-provider/local-provider-context.svelte.js';
5
+ import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
7
6
  export function createNumberInput(props) {
8
7
  const field = getFieldContext();
9
8
  const locale = getLocaleContext();
10
9
  const environment = getEnvironmentContext();
11
- const id = createUniqueId();
12
- const context = reflect(() => ({
13
- id,
10
+ const service = useMachine(numberInput.machine, () => ({
14
11
  dir: locale?.dir,
15
12
  ids: {
16
13
  label: field?.ids.label,
@@ -24,15 +21,14 @@ export function createNumberInput(props) {
24
21
  getRootNode: environment?.getRootNode,
25
22
  ...props,
26
23
  }));
27
- const [state, send] = useMachine(numberInput.machine(context), { context });
28
24
  return reflect(() => {
29
- const o = numberInput.connect(state, send, normalizeProps);
25
+ const api = numberInput.connect(service, normalizeProps);
30
26
  return {
31
- ...o,
27
+ ...api,
32
28
  getInputProps() {
33
29
  return {
34
30
  'aria-describedby': field?.['aria-describedby'],
35
- ...o.getInputProps(),
31
+ ...api.getInputProps(),
36
32
  };
37
33
  },
38
34
  };
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" module>
2
- import type {Assign, HtmlIngredientProps} from '../types.js';
2
+ import type {Assign, HtmlIngredientProps, Optional} from '../types.js';
3
3
  import type {
4
4
  CreateNumberInputProps,
5
5
  CreateNumberInputReturn,
@@ -8,7 +8,7 @@
8
8
  export interface NumberInputProps
9
9
  extends Assign<
10
10
  HtmlIngredientProps<'div', HTMLDivElement, CreateNumberInputReturn>,
11
- CreateNumberInputProps
11
+ Optional<CreateNumberInputProps, 'id'>
12
12
  > {}
13
13
  </script>
14
14
 
@@ -20,22 +20,25 @@
20
20
  import {setNumberInputContext} from './number-input-context.svelte.js';
21
21
 
22
22
  let {
23
+ id,
23
24
  ref = $bindable(null),
24
25
  asChild,
25
26
  children,
26
27
  ...props
27
28
  }: NumberInputProps = $props();
28
29
 
30
+ let uid = $props.id();
31
+
29
32
  let [createNumberInputProps, localProps] = $derived(
30
- createSplitProps<CreateNumberInputProps>([
33
+ createSplitProps<Omit<CreateNumberInputProps, 'id'>>([
31
34
  'allowMouseWheel',
32
35
  'allowOverflow',
33
36
  'clampValueOnBlur',
37
+ 'defaultValue',
34
38
  'disabled',
35
39
  'focusInputOnChange',
36
40
  'form',
37
41
  'formatOptions',
38
- 'id',
39
42
  'ids',
40
43
  'inputMode',
41
44
  'invalid',
@@ -56,7 +59,9 @@
56
59
  ])(props),
57
60
  );
58
61
 
59
- let numberInput = createNumberInput(reflect(() => createNumberInputProps));
62
+ let numberInput = createNumberInput(
63
+ reflect(() => ({...createNumberInputProps, id: id ?? uid})),
64
+ );
60
65
 
61
66
  let mergedProps = $derived(
62
67
  mergeProps(numberInput.getRootProps(), localProps),
@@ -1,6 +1,6 @@
1
- import type { Assign, HtmlIngredientProps } from '../types.js';
1
+ import type { Assign, HtmlIngredientProps, Optional } from '../types.js';
2
2
  import type { CreateNumberInputProps, CreateNumberInputReturn } from './create-number-input.svelte.js';
3
- export interface NumberInputProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateNumberInputReturn>, CreateNumberInputProps> {
3
+ export interface NumberInputProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateNumberInputReturn>, Optional<CreateNumberInputProps, 'id'>> {
4
4
  }
5
5
  declare const NumberInputRoot: import("svelte").Component<NumberInputProps, {}, "ref">;
6
6
  type NumberInputRoot = ReturnType<typeof NumberInputRoot>;
@@ -1,6 +1,5 @@
1
1
  import * as pagination from '@zag-js/pagination';
2
- export interface CreatePaginationProps extends Omit<pagination.Context, 'id' | 'dir' | 'getRootNode'> {
3
- id?: string;
2
+ export interface CreatePaginationProps extends Omit<pagination.Props, 'dir' | 'getRootNode'> {
4
3
  }
5
4
  export interface CreatePaginationReturn extends pagination.Api {
6
5
  }
@@ -1,18 +1,14 @@
1
1
  import * as pagination from '@zag-js/pagination';
2
2
  import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
3
- import { createUniqueId } from '../create-unique-id.js';
4
3
  import { getEnvironmentContext } from '../environment-provider/enviroment-provider-context.svelte.js';
5
- import { getLocaleContext } from '../locale-provider/local-provider-context.svelte.js';
4
+ import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
6
5
  export function createPagination(props) {
7
6
  const locale = getLocaleContext();
8
7
  const environment = getEnvironmentContext();
9
- const id = createUniqueId();
10
- const context = reflect(() => ({
11
- id,
8
+ const service = useMachine(pagination.machine, () => ({
12
9
  dir: locale?.dir,
13
10
  getRootNode: environment?.getRootNode,
14
11
  ...props,
15
12
  }));
16
- const [state, send] = useMachine(pagination.machine(context), { context });
17
- return reflect(() => pagination.connect(state, send, normalizeProps));
13
+ return reflect(() => pagination.connect(service, normalizeProps));
18
14
  }
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" module>
2
- import type {Assign, HtmlIngredientProps} from '../types.js';
2
+ import type {Assign, HtmlIngredientProps, Optional} from '../types.js';
3
3
  import type {
4
4
  CreatePaginationProps,
5
5
  CreatePaginationReturn,
@@ -8,7 +8,7 @@
8
8
  export interface PaginationProps
9
9
  extends Assign<
10
10
  HtmlIngredientProps<'div', HTMLDivElement, CreatePaginationReturn>,
11
- CreatePaginationProps
11
+ Optional<CreatePaginationProps, 'id'>
12
12
  > {}
13
13
  </script>
14
14
 
@@ -20,16 +20,20 @@
20
20
  import {setPaginationContext} from './pagination-context.svelte.js';
21
21
 
22
22
  let {
23
+ id,
23
24
  ref = $bindable(null),
24
25
  asChild,
25
26
  children,
26
27
  ...props
27
28
  }: PaginationProps = $props();
28
29
 
30
+ let uid = $props.id();
31
+
29
32
  let [createPaginationProps, localProps] = $derived(
30
- createSplitProps<CreatePaginationProps>([
33
+ createSplitProps<Omit<CreatePaginationProps, 'id'>>([
31
34
  'count',
32
- 'id',
35
+ 'defaultPage',
36
+ 'defaultPageSize',
33
37
  'ids',
34
38
  'onPageChange',
35
39
  'onPageSizeChange',
@@ -41,7 +45,9 @@
41
45
  ])(props),
42
46
  );
43
47
 
44
- let pagination = createPagination(reflect(() => createPaginationProps));
48
+ let pagination = createPagination(
49
+ reflect(() => ({...createPaginationProps, id: id ?? uid})),
50
+ );
45
51
 
46
52
  let mergedProps = $derived(mergeProps(pagination.getRootProps(), localProps));
47
53
 
@@ -1,6 +1,6 @@
1
- import type { Assign, HtmlIngredientProps } from '../types.js';
1
+ import type { Assign, HtmlIngredientProps, Optional } from '../types.js';
2
2
  import type { CreatePaginationProps, CreatePaginationReturn } from './create-pagination.svelte.js';
3
- export interface PaginationProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreatePaginationReturn>, CreatePaginationProps> {
3
+ export interface PaginationProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreatePaginationReturn>, Optional<CreatePaginationProps, 'id'>> {
4
4
  }
5
5
  declare const PaginationRoot: import("svelte").Component<PaginationProps, {}, "ref">;
6
6
  type PaginationRoot = ReturnType<typeof PaginationRoot>;
@@ -1,9 +1,6 @@
1
1
  import * as pinInput from '@zag-js/pin-input';
2
- import type { HTMLButtonAttributes } from 'svelte/elements';
3
- export interface CreatePinInputProps extends Omit<pinInput.Context, 'id' | 'dir' | 'getRootNode'> {
4
- id?: string;
2
+ export interface CreatePinInputProps extends Omit<pinInput.Props, 'dir' | 'getRootNode'> {
5
3
  }
6
4
  export interface CreatePinInputReturn extends pinInput.Api {
7
- getClearTriggerProps(): HTMLButtonAttributes;
8
5
  }
9
6
  export declare function createPinInputContext(props: CreatePinInputProps): CreatePinInputReturn;
@@ -1,17 +1,13 @@
1
1
  import * as pinInput from '@zag-js/pin-input';
2
2
  import { normalizeProps, reflect, useMachine } from '@zag-js/svelte';
3
- import { createUniqueId } from '../create-unique-id.js';
4
3
  import { getEnvironmentContext } from '../environment-provider/enviroment-provider-context.svelte.js';
5
4
  import { getFieldContext } from '../field/field-context.svelte.js';
6
- import { getLocaleContext } from '../locale-provider/local-provider-context.svelte.js';
7
- import { parts } from './pin-input-anatomy.js';
5
+ import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
8
6
  export function createPinInputContext(props) {
9
7
  const field = getFieldContext();
10
8
  const locale = getLocaleContext();
11
9
  const environment = getEnvironmentContext();
12
- const id = createUniqueId();
13
- const context = reflect(() => ({
14
- id,
10
+ const service = useMachine(pinInput.machine, () => ({
15
11
  dir: locale?.dir,
16
12
  ids: {
17
13
  label: field?.ids.label,
@@ -24,24 +20,14 @@ export function createPinInputContext(props) {
24
20
  getRootNode: environment?.getRootNode,
25
21
  ...props,
26
22
  }));
27
- const [state, send] = useMachine(pinInput.machine(context), { context });
28
23
  return reflect(() => {
29
- const o = pinInput.connect(state, send, normalizeProps);
24
+ const api = pinInput.connect(service, normalizeProps);
30
25
  return {
31
- ...o,
32
- getClearTriggerProps() {
33
- return {
34
- type: 'button',
35
- onclick() {
36
- o.clearValue();
37
- },
38
- ...parts.clearTrigger.attrs,
39
- };
40
- },
26
+ ...api,
41
27
  getHiddenInputProps() {
42
28
  return {
43
29
  'aria-describedby': field?.['aria-describedby'],
44
- ...o.getHiddenInputProps(),
30
+ ...api.getHiddenInputProps(),
45
31
  };
46
32
  },
47
33
  };
@@ -1,5 +1,4 @@
1
1
  export * as PinInput from './pin-input.js';
2
- export type { PinInputClearTriggerProps } from './pin-input-clear-trigger.svelte';
3
2
  export type { PinInputControlProps } from './pin-input-control.svelte';
4
3
  export type { PinInputHiddenInputProps } from './pin-input-hidden-input.svelte';
5
4
  export type { PinInputInputProps } from './pin-input-input.svelte';