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
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" module>
2
2
  import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
3
- import type {Assign, HtmlIngredientProps} from '../types.js';
3
+ import type {Assign, HtmlIngredientProps, Optional} from '../types.js';
4
4
  import type {
5
5
  CreateComboboxProps,
6
6
  CreateComboboxReturn,
@@ -9,7 +9,7 @@
9
9
  export interface ComboboxProps
10
10
  extends Assign<
11
11
  HtmlIngredientProps<'div', HTMLDivElement, CreateComboboxReturn>,
12
- CreateComboboxProps
12
+ Optional<CreateComboboxProps, 'id'>
13
13
  >,
14
14
  PresenceStrategyProps {}
15
15
  </script>
@@ -24,30 +24,36 @@
24
24
  import {createCombobox} from './create-combobox.svelte.js';
25
25
 
26
26
  let {
27
+ id,
27
28
  ref = $bindable(null),
28
29
  asChild,
29
30
  children,
30
31
  ...props
31
32
  }: ComboboxProps = $props();
32
33
 
33
- let [presenceStrategyProps, rest] = $derived(
34
+ let uid = $props.id();
35
+
36
+ let [presenceStrategyProps, comboboxProps] = $derived(
34
37
  createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
35
38
  props,
36
39
  ),
37
40
  );
38
41
 
39
42
  let [createComboboxProps, localProps] = $derived(
40
- createSplitProps<CreateComboboxProps>([
43
+ createSplitProps<Omit<CreateComboboxProps, 'id'>>([
41
44
  'allowCustomValue',
42
45
  'autoFocus',
43
46
  'closeOnSelect',
44
47
  'collection',
45
48
  'composite',
49
+ 'defaultHighlightedValue',
50
+ 'defaultInputValue',
51
+ 'defaultOpen',
52
+ 'defaultValue',
46
53
  'disableLayer',
47
54
  'disabled',
48
55
  'form',
49
56
  'highlightedValue',
50
- 'id',
51
57
  'ids',
52
58
  'inputBehavior',
53
59
  'inputValue',
@@ -64,7 +70,6 @@
64
70
  'onPointerDownOutside',
65
71
  'onValueChange',
66
72
  'open',
67
- 'openControlled',
68
73
  'openOnChange',
69
74
  'openOnClick',
70
75
  'openOnKeyPress',
@@ -76,10 +81,13 @@
76
81
  'selectionBehavior',
77
82
  'translations',
78
83
  'value',
79
- ])(rest),
84
+ ])(comboboxProps),
85
+ );
86
+
87
+ let combobox = createCombobox(
88
+ reflect(() => ({...createComboboxProps, id: id ?? uid})),
80
89
  );
81
90
 
82
- let combobox = createCombobox(reflect(() => createComboboxProps));
83
91
  let presence = createPresence(
84
92
  reflect(() => ({
85
93
  ...presenceStrategyProps,
@@ -1,7 +1,7 @@
1
1
  import type { PresenceStrategyProps } from '../presence/create-presence.svelte.js';
2
- import type { Assign, HtmlIngredientProps } from '../types.js';
2
+ import type { Assign, HtmlIngredientProps, Optional } from '../types.js';
3
3
  import type { CreateComboboxProps, CreateComboboxReturn } from './create-combobox.svelte.js';
4
- export interface ComboboxProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateComboboxReturn>, CreateComboboxProps>, PresenceStrategyProps {
4
+ export interface ComboboxProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateComboboxReturn>, Optional<CreateComboboxProps, 'id'>>, PresenceStrategyProps {
5
5
  }
6
6
  declare const ComboboxRoot: import("svelte").Component<ComboboxProps, {}, "ref">;
7
7
  type ComboboxRoot = ReturnType<typeof ComboboxRoot>;
@@ -1,10 +1,6 @@
1
1
  import * as combobox from '@zag-js/combobox';
2
- type Omitted = 'id' | 'dir' | 'getRootNode' | 'open.controlled';
3
- export interface CreateComboboxProps extends Omit<combobox.Context, Omitted> {
4
- id?: string;
5
- openControlled?: boolean;
2
+ export interface CreateComboboxProps extends Omit<combobox.Props, 'dir' | 'getRootNode'> {
6
3
  }
7
4
  export interface CreateComboboxReturn extends combobox.Api {
8
5
  }
9
6
  export declare function createCombobox(props: CreateComboboxProps): CreateComboboxReturn;
10
- export {};
@@ -1,16 +1,13 @@
1
1
  import * as combobox from '@zag-js/combobox';
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 createCombobox(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(combobox.machine, () => ({
14
11
  ids: {
15
12
  label: field?.ids.label,
16
13
  input: field?.ids.control,
@@ -20,22 +17,17 @@ export function createCombobox(props) {
20
17
  disabled: field?.disabled,
21
18
  readOnly: field?.readOnly,
22
19
  required: field?.required,
23
- ...props,
24
20
  getRootNode: environment?.getRootNode,
25
- 'open.controlled': props.openControlled,
21
+ ...props,
26
22
  }));
27
- const [state, send, service] = useMachine(combobox.machine(context));
28
- $effect(() => {
29
- service.setContext(context);
30
- });
31
23
  return reflect(() => {
32
- const o = combobox.connect(state, send, normalizeProps);
24
+ const api = combobox.connect(service, normalizeProps);
33
25
  return {
34
- ...o,
26
+ ...api,
35
27
  getInputProps() {
36
28
  return {
37
29
  'aria-describedby': field?.['aria-describedby'],
38
- ...o.getInputProps(),
30
+ ...api.getInputProps(),
39
31
  };
40
32
  },
41
33
  };
@@ -1,12 +1,6 @@
1
1
  import * as datePicker from '@zag-js/date-picker';
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- type Omitted = 'id' | 'dir' | 'getRootNode' | 'open.controlled';
4
- export interface CreateDatePickerProps extends Omit<datePicker.Context, Omitted> {
5
- id?: string;
6
- openControlled?: boolean;
2
+ export interface CreateDatePickerProps extends Omit<datePicker.Props, 'dir' | 'getRootNode'> {
7
3
  }
8
4
  export interface CreateDatePickerReturn extends datePicker.Api {
9
- getViewProps(props: datePicker.ViewProps): HTMLAttributes<HTMLElement>;
10
5
  }
11
6
  export declare function createDatePicker(props: CreateDatePickerProps): CreateDatePickerReturn;
12
- export {};
@@ -1,35 +1,15 @@
1
1
  import * as datePicker from '@zag-js/date-picker';
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';
6
- import { parts } from './date-picker-anatomy.js';
4
+ import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
7
5
  export function createDatePicker(props) {
8
6
  const locale = getLocaleContext();
9
7
  const environment = getEnvironmentContext();
10
- const id = createUniqueId();
11
- const context = $derived.by(() => ({
12
- id,
8
+ const service = useMachine(datePicker.machine, () => ({
13
9
  dir: locale?.dir,
14
10
  locale: locale?.locale,
15
- ...props,
16
11
  getRootNode: environment?.getRootNode,
17
- 'open.controlled': props.openControlled,
12
+ ...props,
18
13
  }));
19
- const [state, send, service] = useMachine(datePicker.machine(context));
20
- $effect(() => {
21
- service.setContext(context);
22
- });
23
- return reflect(() => {
24
- const o = datePicker.connect(state, send, normalizeProps);
25
- return {
26
- ...o,
27
- getViewProps(props) {
28
- return {
29
- ...parts.view.attrs,
30
- hidden: o.view !== props.view,
31
- };
32
- },
33
- };
34
- });
14
+ return reflect(() => datePicker.connect(service, normalizeProps));
35
15
  }
@@ -1,2 +1 @@
1
- export declare const anatomy: import("@zag-js/anatomy").AnatomyInstance<"content" | "trigger" | "positioner" | "root" | "label" | "control" | "view" | "table" | "input" | "clearTrigger" | "monthSelect" | "nextTrigger" | "prevTrigger" | "rangeText" | "tableBody" | "tableCell" | "tableCellTrigger" | "tableHead" | "tableHeader" | "tableRow" | "viewTrigger" | "viewControl" | "yearSelect" | "presetTrigger">;
2
- export declare const parts: Record<"content" | "trigger" | "positioner" | "root" | "label" | "control" | "view" | "table" | "input" | "clearTrigger" | "monthSelect" | "nextTrigger" | "prevTrigger" | "rangeText" | "tableBody" | "tableCell" | "tableCellTrigger" | "tableHead" | "tableHeader" | "tableRow" | "viewTrigger" | "viewControl" | "yearSelect" | "presetTrigger", import("@zag-js/anatomy").AnatomyPart>;
1
+ export { anatomy } from '@zag-js/date-picker';
@@ -1,3 +1 @@
1
- import { anatomy as _ } from '@zag-js/date-picker';
2
- export const anatomy = _.extendWith('view');
3
- export const parts = anatomy.build();
1
+ export { anatomy } from '@zag-js/date-picker';
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" module>
2
2
  import type {PresenceStrategyProps} from '../presence/create-presence.svelte.js';
3
- import type {Assign, HtmlIngredientProps} from '../types.js';
3
+ import type {Assign, HtmlIngredientProps, Optional} from '../types.js';
4
4
  import type {
5
5
  CreateDatePickerProps,
6
6
  CreateDatePickerReturn,
@@ -9,7 +9,7 @@
9
9
  export interface DatePickerProps
10
10
  extends Assign<
11
11
  HtmlIngredientProps<'div', HTMLDivElement, CreateDatePickerReturn>,
12
- CreateDatePickerProps
12
+ Optional<CreateDatePickerProps, 'id'>
13
13
  >,
14
14
  PresenceStrategyProps {}
15
15
  </script>
@@ -24,29 +24,37 @@
24
24
  import {setDatePickerContext} from './date-picker-context.svelte.js';
25
25
 
26
26
  let {
27
+ id,
27
28
  ref = $bindable(null),
28
29
  asChild,
29
30
  children,
30
31
  ...props
31
32
  }: DatePickerProps = $props();
32
33
 
33
- let [presenceStrategyProps, rest] = $derived(
34
+ let uid = $props.id();
35
+
36
+ let [presenceStrategyProps, datePickerProps] = $derived(
34
37
  createSplitProps<PresenceStrategyProps>([])(props),
35
38
  );
36
39
 
37
40
  let [createDatePickerProps, localProps] = $derived(
38
- createSplitProps<CreateDatePickerProps>([
41
+ createSplitProps<Omit<CreateDatePickerProps, 'id'>>([
39
42
  'closeOnSelect',
43
+ 'defaultFocusedValue',
44
+ 'defaultOpen',
45
+ 'defaultValue',
46
+ 'defaultView',
40
47
  'disabled',
41
48
  'fixedWeeks',
42
49
  'focusedValue',
43
50
  'format',
44
- 'id',
45
51
  'ids',
46
52
  'isDateUnavailable',
47
53
  'locale',
48
54
  'max',
55
+ 'maxView',
49
56
  'min',
57
+ 'minView',
50
58
  'name',
51
59
  'numOfMonths',
52
60
  'onFocusChange',
@@ -54,7 +62,8 @@
54
62
  'onValueChange',
55
63
  'onViewChange',
56
64
  'open',
57
- 'openControlled',
65
+ 'parse',
66
+ 'placeholder',
58
67
  'positioning',
59
68
  'readOnly',
60
69
  'selectionMode',
@@ -63,13 +72,13 @@
63
72
  'translations',
64
73
  'value',
65
74
  'view',
66
- 'minView',
67
- 'maxView',
68
- 'placeholder',
69
- ])(rest),
75
+ ])(datePickerProps),
76
+ );
77
+
78
+ let datePicker = createDatePicker(
79
+ reflect(() => ({...createDatePickerProps, id: id ?? uid})),
70
80
  );
71
81
 
72
- let datePicker = createDatePicker(reflect(() => createDatePickerProps));
73
82
  let presence = createPresence(
74
83
  reflect(() => ({
75
84
  ...presenceStrategyProps,
@@ -1,7 +1,7 @@
1
1
  import type { PresenceStrategyProps } from '../presence/create-presence.svelte.js';
2
- import type { Assign, HtmlIngredientProps } from '../types.js';
2
+ import type { Assign, HtmlIngredientProps, Optional } from '../types.js';
3
3
  import type { CreateDatePickerProps, CreateDatePickerReturn } from './create-date-picker.svelte.js';
4
- export interface DatePickerProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateDatePickerReturn>, CreateDatePickerProps>, PresenceStrategyProps {
4
+ export interface DatePickerProps extends Assign<HtmlIngredientProps<'div', HTMLDivElement, CreateDatePickerReturn>, Optional<CreateDatePickerProps, 'id'>>, PresenceStrategyProps {
5
5
  }
6
6
  declare const DatePickerRoot: import("svelte").Component<DatePickerProps, {}, "ref">;
7
7
  type DatePickerRoot = ReturnType<typeof DatePickerRoot>;
@@ -1,7 +1,5 @@
1
1
  import * as dialog from '@zag-js/dialog';
2
- export interface CreateDialogProps extends Omit<dialog.Context, 'id' | 'dir' | 'role' | 'getRootNode' | 'open.controlled'> {
3
- id?: string;
4
- openControlled?: boolean;
2
+ export interface CreateDialogProps extends Omit<dialog.Props, 'dir' | 'role' | 'getRootNode'> {
5
3
  }
6
4
  export interface CreateDialogReturn extends dialog.Api {
7
5
  }
@@ -1,20 +1,15 @@
1
1
  import * as dialog from '@zag-js/dialog';
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 createDialog(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(dialog.machine, () => ({
12
9
  dir: locale?.dir,
13
10
  role: 'dialog',
14
11
  getRootNode: environment?.getRootNode,
15
- 'open.controlled': props.openControlled,
16
12
  ...props,
17
13
  }));
18
- const [state, send] = useMachine(dialog.machine(context), { context });
19
- return reflect(() => dialog.connect(state, send, normalizeProps));
14
+ return reflect(() => dialog.connect(service, normalizeProps));
20
15
  }
@@ -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 type {
5
6
  CreateDialogProps,
6
7
  CreateDialogReturn,
7
8
  } from './create-dialog.svelte.js';
8
9
 
9
10
  export interface DialogProps
10
- extends CreateDialogProps,
11
+ extends Optional<CreateDialogProps, 'id'>,
11
12
  PresenceStrategyProps {
12
13
  children?: Snippet<[CreateDialogReturn]>;
13
14
  }
@@ -24,7 +25,9 @@
24
25
  import {createDialog} from './create-dialog.svelte.js';
25
26
  import {setDialogContext} from './dialog-context.svelte.js';
26
27
 
27
- let {children, ...props}: DialogProps = $props();
28
+ let {id, children, ...props}: DialogProps = $props();
29
+
30
+ let uid = $props.id();
28
31
 
29
32
  let [presenceStrategyProps, createDialogProps] = $derived(
30
33
  createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
@@ -32,7 +35,10 @@
32
35
  ),
33
36
  );
34
37
 
35
- let dialog = createDialog(reflect(() => createDialogProps));
38
+ let dialog = createDialog(
39
+ reflect(() => ({...createDialogProps, id: id ?? uid})),
40
+ );
41
+
36
42
  let presence = createPresence(
37
43
  reflect(() => ({
38
44
  ...presenceStrategyProps,
@@ -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 { CreateDialogProps, CreateDialogReturn } from './create-dialog.svelte.js';
4
- export interface DialogProps extends CreateDialogProps, PresenceStrategyProps {
5
+ export interface DialogProps extends Optional<CreateDialogProps, 'id'>, PresenceStrategyProps {
5
6
  children?: Snippet<[CreateDialogReturn]>;
6
7
  }
7
8
  declare const DialogRoot: import("svelte").Component<DialogProps, {}, "">;
@@ -1,8 +1,12 @@
1
1
  import * as dialog from '@zag-js/dialog';
2
2
  import type { HTMLAttributes } from 'svelte/elements';
3
- export interface CreateDrawerProps extends Omit<dialog.Context, 'id' | 'dir' | 'role' | 'getRootNode' | 'open.controlled'> {
4
- id?: string;
5
- openControlled?: boolean;
3
+ interface ElementIds extends dialog.ElementIds {
4
+ body?: string;
5
+ footer?: string;
6
+ header?: string;
7
+ }
8
+ export interface CreateDrawerProps extends Omit<dialog.Props, 'dir' | 'role' | 'getRootNode' | 'elementIds'> {
9
+ elementIds?: ElementIds;
6
10
  }
7
11
  export interface CreateDrawerReturn extends dialog.Api {
8
12
  getBodyProps(): HTMLAttributes<HTMLElement>;
@@ -10,3 +14,4 @@ export interface CreateDrawerReturn extends dialog.Api {
10
14
  getHeaderProps(): HTMLAttributes<HTMLElement>;
11
15
  }
12
16
  export declare function createDrawer(props: CreateDrawerProps): CreateDrawerReturn;
17
+ export {};
@@ -1,64 +1,82 @@
1
1
  import * as dialog from '@zag-js/dialog';
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';
6
- import { mergeProps } from '../merge-props.js';
4
+ import { getLocaleContext } from '../locale-provider/locale-provider-context.svelte.js';
7
5
  import { parts } from './drawer-anatomy.js';
8
6
  export function createDrawer(props) {
9
7
  const locale = getLocaleContext();
10
8
  const environment = getEnvironmentContext();
11
- const id = createUniqueId();
12
- const context = reflect(() => ({
13
- id,
9
+ const service = useMachine(dialog.machine, () => ({
14
10
  dir: locale?.dir,
15
11
  role: 'dialog',
16
12
  getRootNode: environment?.getRootNode,
17
- 'open.controlled': props.openControlled,
18
13
  ...props,
19
14
  }));
20
- const [state, send] = useMachine(dialog.machine(context), { context });
21
15
  return reflect(() => {
22
- const o = dialog.connect(state, send, normalizeProps);
16
+ const api = dialog.connect(service, normalizeProps);
23
17
  return {
24
- ...o,
18
+ ...api,
25
19
  getBackdropProps() {
26
- return mergeProps(o.getBackdropProps(), parts.backdrop.attrs);
20
+ return {
21
+ ...api.getBackdropProps(),
22
+ ...parts.backdrop.attrs,
23
+ };
27
24
  },
28
25
  getCloseTriggerProps() {
29
- return mergeProps(o.getCloseTriggerProps(), parts.closeTrigger.attrs);
26
+ return {
27
+ ...api.getCloseTriggerProps(),
28
+ ...parts.closeTrigger.attrs,
29
+ };
30
30
  },
31
31
  getContentProps() {
32
- return mergeProps(o.getContentProps(), parts.content.attrs);
32
+ return {
33
+ ...api.getContentProps(),
34
+ ...parts.content.attrs,
35
+ };
33
36
  },
34
37
  getDescriptionProps() {
35
- return mergeProps(o.getDescriptionProps(), parts.description.attrs);
38
+ return {
39
+ ...api.getDescriptionProps(),
40
+ ...parts.description.attrs,
41
+ };
36
42
  },
37
43
  getPositionerProps() {
38
- return mergeProps(o.getPositionerProps(), parts.positioner.attrs);
44
+ return {
45
+ ...api.getPositionerProps(),
46
+ ...parts.positioner.attrs,
47
+ };
39
48
  },
40
49
  getTitleProps() {
41
- return mergeProps(o.getTitleProps(), parts.title.attrs);
50
+ return {
51
+ ...api.getTitleProps(),
52
+ ...parts.title.attrs,
53
+ };
42
54
  },
43
55
  getTriggerProps() {
44
- return mergeProps(o.getTriggerProps(), parts.trigger.attrs);
56
+ return {
57
+ ...api.getTriggerProps(),
58
+ ...parts.trigger.attrs,
59
+ };
45
60
  },
46
61
  getBodyProps() {
47
62
  return {
63
+ id: props.elementIds?.body ?? `drawer:${props.id}:body`,
64
+ 'data-state': api.open ? 'open' : 'closed',
48
65
  ...parts.body.attrs,
49
- 'data-state': o.open ? 'open' : 'closed',
50
66
  };
51
67
  },
52
68
  getFooterProps() {
53
69
  return {
70
+ id: props.elementIds?.footer ?? `drawer:${props.id}:footer`,
71
+ 'data-state': api.open ? 'open' : 'closed',
54
72
  ...parts.footer.attrs,
55
- 'data-state': o.open ? 'open' : 'closed',
56
73
  };
57
74
  },
58
75
  getHeaderProps() {
59
76
  return {
77
+ id: props.elementIds?.header ?? `drawer:${props.id}:header`,
78
+ 'data-state': api.open ? 'open' : 'closed',
60
79
  ...parts.header.attrs,
61
- 'data-state': o.open ? 'open' : 'closed',
62
80
  };
63
81
  },
64
82
  };
@@ -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 type {
5
6
  CreateDrawerProps,
6
7
  CreateDrawerReturn,
7
8
  } from './create-drawer.svelte.js';
8
9
 
9
10
  export interface DrawerProps
10
- extends CreateDrawerProps,
11
+ extends Optional<CreateDrawerProps, 'id'>,
11
12
  PresenceStrategyProps {
12
13
  children?: Snippet<[CreateDrawerReturn]>;
13
14
  }
@@ -24,7 +25,9 @@
24
25
  import {createDrawer} from './create-drawer.svelte.js';
25
26
  import {setDrawerContext} from './drawer-context.svelte.js';
26
27
 
27
- let {children, ...props}: DrawerProps = $props();
28
+ let {id, children, ...props}: DrawerProps = $props();
29
+
30
+ let uid = $props.id();
28
31
 
29
32
  let [presenceStrategyProps, createDialogProps] = $derived(
30
33
  createSplitProps<PresenceStrategyProps>(['lazyMount', 'keepMounted'])(
@@ -32,7 +35,10 @@
32
35
  ),
33
36
  );
34
37
 
35
- let drawer = createDrawer(reflect(() => createDialogProps));
38
+ let drawer = createDrawer(
39
+ reflect(() => ({...createDialogProps, id: id ?? uid})),
40
+ );
41
+
36
42
  let presence = createPresence(
37
43
  reflect(() => ({
38
44
  ...presenceStrategyProps,
@@ -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 { CreateDrawerProps, CreateDrawerReturn } from './create-drawer.svelte.js';
4
- export interface DrawerProps extends CreateDrawerProps, PresenceStrategyProps {
5
+ export interface DrawerProps extends Optional<CreateDrawerProps, 'id'>, PresenceStrategyProps {
5
6
  children?: Snippet<[CreateDrawerReturn]>;
6
7
  }
7
8
  declare const DrawerRoot: import("svelte").Component<DrawerProps, {}, "">;
@@ -1,7 +1,5 @@
1
1
  import * as editable from '@zag-js/editable';
2
- export interface CreateEditableProps extends Omit<editable.Context, 'id' | 'dir' | 'getRootNode' | 'edit.controlled'> {
3
- id?: string;
4
- editControlled?: boolean;
2
+ export interface CreateEditableProps extends Omit<editable.Props, 'dir' | 'getRootNode'> {
5
3
  }
6
4
  export interface CreateEditableReturn extends editable.Api {
7
5
  }
@@ -1,16 +1,13 @@
1
1
  import * as editable from '@zag-js/editable';
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 createEditable(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(editable.machine, () => ({
14
11
  ids: {
15
12
  label: field?.ids.label,
16
13
  input: field?.ids.control,
@@ -21,18 +18,16 @@ export function createEditable(props) {
21
18
  readOnly: field?.readOnly,
22
19
  required: field?.required,
23
20
  getRootNode: environment?.getRootNode,
24
- 'edit.controlled': props.editControlled,
25
21
  ...props,
26
22
  }));
27
- const [state, send] = useMachine(editable.machine(context), { context });
28
23
  return reflect(() => {
29
- const o = editable.connect(state, send, normalizeProps);
24
+ const api = editable.connect(service, normalizeProps);
30
25
  return {
31
- ...o,
26
+ ...api,
32
27
  getInputProps() {
33
28
  return {
34
29
  'aria-describedby': field?.['aria-describedby'],
35
- ...o.getInputProps(),
30
+ ...api.getInputProps(),
36
31
  };
37
32
  },
38
33
  };