@ark-ui/solid 1.0.0-beta.3 → 1.0.1

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 (346) hide show
  1. package/CHANGELOG.md +14 -51
  2. package/cjs/index.js +604 -453
  3. package/cjs/index.js.map +1 -1
  4. package/esm/index.js +601 -455
  5. package/esm/index.js.map +1 -1
  6. package/package.json +42 -42
  7. package/source/accordion/accordion-item-content.jsx +6 -5
  8. package/source/accordion/accordion-item-trigger.jsx +4 -1
  9. package/source/accordion/accordion-item.jsx +10 -6
  10. package/source/accordion/accordion.jsx +8 -4
  11. package/source/avatar/avatar-fallback.jsx +2 -2
  12. package/source/avatar/avatar-image.jsx +2 -2
  13. package/source/avatar/avatar.jsx +2 -2
  14. package/source/carousel/carousel.jsx +6 -4
  15. package/source/checkbox/checkbox-label.jsx +2 -2
  16. package/source/color-picker/color-picker-content.jsx +6 -5
  17. package/source/color-picker/color-picker-positioner.jsx +6 -1
  18. package/source/color-picker/color-picker-view.jsx +13 -0
  19. package/source/color-picker/color-picker.jsx +8 -3
  20. package/source/color-picker/index.js +2 -0
  21. package/source/combobox/combobox-content.jsx +6 -5
  22. package/source/combobox/combobox-positioner.jsx +8 -3
  23. package/source/combobox/combobox.jsx +8 -3
  24. package/source/date-picker/date-picker-content.jsx +6 -5
  25. package/source/date-picker/date-picker-positioner.jsx +6 -1
  26. package/source/date-picker/date-picker.jsx +8 -3
  27. package/source/dialog/dialog-backdrop.jsx +7 -5
  28. package/source/dialog/dialog-close-trigger.jsx +2 -2
  29. package/source/dialog/dialog-content.jsx +6 -5
  30. package/source/dialog/dialog-description.jsx +2 -2
  31. package/source/dialog/dialog-positioner.jsx +8 -3
  32. package/source/dialog/dialog-title.jsx +2 -2
  33. package/source/dialog/dialog-trigger.jsx +6 -3
  34. package/source/dialog/dialog.jsx +11 -3
  35. package/source/editable/editable-area.jsx +2 -2
  36. package/source/editable/editable-cancel-trigger.jsx +2 -2
  37. package/source/editable/editable-control.jsx +2 -2
  38. package/source/editable/editable-edit-trigger.jsx +2 -2
  39. package/source/editable/editable-input.jsx +2 -2
  40. package/source/editable/editable-label.jsx +2 -2
  41. package/source/editable/editable-preview.jsx +2 -2
  42. package/source/editable/editable-submit-trigger.jsx +2 -2
  43. package/source/editable/editable.jsx +2 -2
  44. package/source/hover-card/hover-card-arrow-tip.jsx +2 -2
  45. package/source/hover-card/hover-card-arrow.jsx +2 -2
  46. package/source/hover-card/hover-card-content.jsx +6 -5
  47. package/source/hover-card/hover-card-positioner.jsx +8 -3
  48. package/source/hover-card/hover-card-trigger.jsx +2 -2
  49. package/source/hover-card/hover-card.jsx +9 -3
  50. package/source/menu/menu-arrow-tip.jsx +2 -2
  51. package/source/menu/menu-arrow.jsx +2 -2
  52. package/source/menu/menu-content.jsx +6 -5
  53. package/source/menu/menu-context-trigger.jsx +2 -2
  54. package/source/menu/menu-item-group.jsx +2 -2
  55. package/source/menu/menu-item.jsx +2 -2
  56. package/source/menu/menu-option-item.jsx +2 -2
  57. package/source/menu/menu-positioner.jsx +8 -3
  58. package/source/menu/menu-separator.jsx +2 -2
  59. package/source/menu/menu-trigger-item.jsx +2 -2
  60. package/source/menu/menu-trigger.jsx +6 -3
  61. package/source/menu/menu.jsx +11 -12
  62. package/source/number-input/number-input-control.jsx +2 -2
  63. package/source/number-input/number-input-decrement-trigger.jsx +2 -2
  64. package/source/number-input/number-input-field.jsx +2 -2
  65. package/source/number-input/number-input-increment-trigger.jsx +2 -2
  66. package/source/number-input/number-input-label.jsx +2 -2
  67. package/source/number-input/number-input-scrubber.jsx +2 -2
  68. package/source/number-input/number-input.jsx +2 -2
  69. package/source/pagination/pagination.jsx +2 -2
  70. package/source/pin-input/pin-input-field.jsx +2 -2
  71. package/source/pin-input/pin-input-label.jsx +2 -2
  72. package/source/popover/popover-anchor.jsx +2 -2
  73. package/source/popover/popover-arrow-tip.jsx +2 -2
  74. package/source/popover/popover-arrow.jsx +2 -2
  75. package/source/popover/popover-close-trigger.jsx +2 -2
  76. package/source/popover/popover-content.jsx +6 -5
  77. package/source/popover/popover-description.jsx +2 -2
  78. package/source/popover/popover-positioner.jsx +7 -2
  79. package/source/popover/popover-title.jsx +2 -2
  80. package/source/popover/popover-trigger.jsx +5 -2
  81. package/source/popover/popover.jsx +10 -2
  82. package/source/presence/index.js +4 -1
  83. package/source/presence/presence-context.js +5 -0
  84. package/source/presence/presence-props-context.js +5 -0
  85. package/source/presence/presence.jsx +9 -28
  86. package/source/presence/split-presence-props.js +0 -1
  87. package/source/presence/use-presence.js +21 -4
  88. package/source/rating-group/rating-group-item.jsx +5 -4
  89. package/source/select/select-content.jsx +6 -5
  90. package/source/select/select-positioner.jsx +6 -1
  91. package/source/select/select.jsx +8 -3
  92. package/source/slider/slider-thumb.jsx +2 -2
  93. package/source/slider/slider-value-text.jsx +3 -3
  94. package/source/splitter/splitter-panel.jsx +2 -2
  95. package/source/splitter/splitter-resize-trigger.jsx +2 -2
  96. package/source/splitter/splitter.jsx +2 -2
  97. package/source/switch/switch-label.jsx +2 -2
  98. package/source/switch/switch-thumb.jsx +2 -2
  99. package/source/tabs/tab-content.jsx +11 -8
  100. package/source/tabs/tab-indicator.jsx +2 -2
  101. package/source/tabs/tab-list.jsx +2 -2
  102. package/source/tabs/tab-trigger.jsx +2 -2
  103. package/source/tabs/tabs.jsx +7 -3
  104. package/source/toggle-group/toggle-group.jsx +2 -2
  105. package/source/tooltip/tooltip-arrow-tip.jsx +2 -2
  106. package/source/tooltip/tooltip-arrow.jsx +2 -2
  107. package/source/tooltip/tooltip-content.jsx +7 -6
  108. package/source/tooltip/tooltip-positioner.jsx +7 -2
  109. package/source/tooltip/tooltip-trigger.jsx +2 -2
  110. package/source/tooltip/tooltip.jsx +10 -2
  111. package/types/accordion/accordion-context.d.ts +3 -2
  112. package/types/accordion/accordion-item-content.d.ts +1 -3
  113. package/types/accordion/accordion-item-context.d.ts +3 -2
  114. package/types/accordion/accordion-item-indicator.d.ts +2 -1
  115. package/types/accordion/accordion-item-trigger.d.ts +2 -1
  116. package/types/accordion/accordion-item.d.ts +5 -4
  117. package/types/accordion/accordion.d.ts +3 -1
  118. package/types/accordion/use-accordion.d.ts +4 -2
  119. package/types/avatar/avatar-context.d.ts +3 -2
  120. package/types/avatar/avatar-fallback.d.ts +2 -1
  121. package/types/avatar/avatar-image.d.ts +2 -1
  122. package/types/avatar/avatar.d.ts +2 -1
  123. package/types/avatar/use-avatar.d.ts +4 -2
  124. package/types/carousel/carousel-context.d.ts +3 -2
  125. package/types/carousel/carousel-control.d.ts +2 -1
  126. package/types/carousel/carousel-indicator-group.d.ts +2 -1
  127. package/types/carousel/carousel-indicator.d.ts +2 -1
  128. package/types/carousel/carousel-next-trigger.d.ts +2 -1
  129. package/types/carousel/carousel-prev-trigger.d.ts +2 -1
  130. package/types/carousel/carousel-slide-group.d.ts +2 -1
  131. package/types/carousel/carousel-slide.d.ts +2 -1
  132. package/types/carousel/carousel-viewport.d.ts +2 -1
  133. package/types/carousel/carousel.d.ts +7 -3
  134. package/types/carousel/use-carousel.d.ts +4 -2
  135. package/types/checkbox/checkbox-context.d.ts +3 -2
  136. package/types/checkbox/checkbox-control.d.ts +2 -1
  137. package/types/checkbox/checkbox-indicator.d.ts +2 -1
  138. package/types/checkbox/checkbox-label.d.ts +2 -1
  139. package/types/checkbox/checkbox.d.ts +5 -5
  140. package/types/checkbox/use-checkbox.d.ts +4 -2
  141. package/types/color-picker/color-picker-content.d.ts +1 -3
  142. package/types/color-picker/color-picker-view.d.ts +7 -0
  143. package/types/color-picker/color-picker.d.ts +5 -3
  144. package/types/color-picker/index.d.ts +3 -1
  145. package/types/combobox/combobox-clear-trigger.d.ts +2 -1
  146. package/types/combobox/combobox-content.d.ts +1 -3
  147. package/types/combobox/combobox-context.d.ts +2 -1
  148. package/types/combobox/combobox-control.d.ts +2 -1
  149. package/types/combobox/combobox-input.d.ts +2 -1
  150. package/types/combobox/combobox-item-context.d.ts +3 -2
  151. package/types/combobox/combobox-item-group.d.ts +2 -1
  152. package/types/combobox/combobox-item-indicator.d.ts +2 -1
  153. package/types/combobox/combobox-item-text.d.ts +2 -1
  154. package/types/combobox/combobox-item.d.ts +5 -4
  155. package/types/combobox/combobox-label.d.ts +2 -1
  156. package/types/combobox/combobox-positioner.d.ts +2 -1
  157. package/types/combobox/combobox-trigger.d.ts +2 -1
  158. package/types/combobox/combobox.d.ts +7 -6
  159. package/types/combobox/use-combobox.d.ts +2 -1
  160. package/types/date-picker/date-picker-content.d.ts +1 -3
  161. package/types/date-picker/date-picker-context.d.ts +3 -2
  162. package/types/date-picker/date-picker-view.d.ts +4 -3
  163. package/types/date-picker/date-picker.d.ts +5 -3
  164. package/types/dialog/dialog-backdrop.d.ts +1 -3
  165. package/types/dialog/dialog-close-trigger.d.ts +2 -1
  166. package/types/dialog/dialog-content.d.ts +1 -3
  167. package/types/dialog/dialog-context.d.ts +3 -2
  168. package/types/dialog/dialog-description.d.ts +2 -1
  169. package/types/dialog/dialog-positioner.d.ts +2 -1
  170. package/types/dialog/dialog-title.d.ts +2 -1
  171. package/types/dialog/dialog-trigger.d.ts +2 -1
  172. package/types/dialog/dialog.d.ts +4 -3
  173. package/types/dialog/use-dialog.d.ts +4 -2
  174. package/types/editable/editable-area.d.ts +2 -1
  175. package/types/editable/editable-cancel-trigger.d.ts +2 -1
  176. package/types/editable/editable-context.d.ts +3 -2
  177. package/types/editable/editable-control.d.ts +2 -1
  178. package/types/editable/editable-edit-trigger.d.ts +2 -1
  179. package/types/editable/editable-input.d.ts +2 -1
  180. package/types/editable/editable-label.d.ts +2 -1
  181. package/types/editable/editable-preview.d.ts +2 -1
  182. package/types/editable/editable-submit-trigger.d.ts +2 -1
  183. package/types/editable/editable.d.ts +5 -5
  184. package/types/editable/use-editable.d.ts +4 -2
  185. package/types/environment/environment.d.ts +2 -2
  186. package/types/hover-card/hover-card-arrow-tip.d.ts +2 -1
  187. package/types/hover-card/hover-card-arrow.d.ts +2 -1
  188. package/types/hover-card/hover-card-content.d.ts +1 -3
  189. package/types/hover-card/hover-card-context.d.ts +3 -2
  190. package/types/hover-card/hover-card-positioner.d.ts +2 -1
  191. package/types/hover-card/hover-card-trigger.d.ts +2 -1
  192. package/types/hover-card/hover-card.d.ts +4 -3
  193. package/types/hover-card/use-hover-card.d.ts +4 -2
  194. package/types/menu/menu-arrow-tip.d.ts +2 -1
  195. package/types/menu/menu-arrow.d.ts +2 -1
  196. package/types/menu/menu-content.d.ts +1 -3
  197. package/types/menu/menu-context-trigger.d.ts +2 -1
  198. package/types/menu/menu-item-group.d.ts +2 -1
  199. package/types/menu/menu-item.d.ts +2 -1
  200. package/types/menu/menu-option-item.d.ts +3 -2
  201. package/types/menu/menu-positioner.d.ts +2 -1
  202. package/types/menu/menu-separator.d.ts +2 -1
  203. package/types/menu/menu-trigger-item.d.ts +2 -1
  204. package/types/menu/menu-trigger.d.ts +2 -1
  205. package/types/menu/menu.d.ts +6 -9
  206. package/types/menu/use-menu.d.ts +2 -1
  207. package/types/number-input/number-input-context.d.ts +3 -2
  208. package/types/number-input/number-input-control.d.ts +2 -1
  209. package/types/number-input/number-input-decrement-trigger.d.ts +2 -1
  210. package/types/number-input/number-input-field.d.ts +2 -1
  211. package/types/number-input/number-input-increment-trigger.d.ts +2 -1
  212. package/types/number-input/number-input-label.d.ts +2 -1
  213. package/types/number-input/number-input-scrubber.d.ts +2 -1
  214. package/types/number-input/number-input.d.ts +2 -1
  215. package/types/number-input/use-number-input.d.ts +4 -2
  216. package/types/pagination/pagination-context.d.ts +3 -2
  217. package/types/pagination/pagination-ellipsis.d.ts +2 -1
  218. package/types/pagination/pagination-item.d.ts +2 -1
  219. package/types/pagination/pagination.d.ts +4 -3
  220. package/types/pagination/use-pagination.d.ts +4 -2
  221. package/types/pin-input/pin-input-context.d.ts +3 -2
  222. package/types/pin-input/pin-input-control.d.ts +2 -1
  223. package/types/pin-input/pin-input-field.d.ts +3 -2
  224. package/types/pin-input/pin-input-label.d.ts +2 -1
  225. package/types/pin-input/pin-input.d.ts +2 -1
  226. package/types/pin-input/use-pin-input.d.ts +4 -2
  227. package/types/popover/popover-anchor.d.ts +2 -1
  228. package/types/popover/popover-arrow-tip.d.ts +2 -1
  229. package/types/popover/popover-arrow.d.ts +2 -1
  230. package/types/popover/popover-close-trigger.d.ts +2 -1
  231. package/types/popover/popover-content.d.ts +1 -3
  232. package/types/popover/popover-context.d.ts +3 -2
  233. package/types/popover/popover-description.d.ts +2 -1
  234. package/types/popover/popover-indicator.d.ts +2 -1
  235. package/types/popover/popover-positioner.d.ts +2 -1
  236. package/types/popover/popover-title.d.ts +2 -1
  237. package/types/popover/popover-trigger.d.ts +2 -1
  238. package/types/popover/popover.d.ts +5 -4
  239. package/types/popover/use-popover.d.ts +4 -2
  240. package/types/presence/index.d.ts +5 -2
  241. package/types/presence/presence-context.d.ts +4 -0
  242. package/types/presence/presence-props-context.d.ts +4 -0
  243. package/types/presence/presence.d.ts +3 -18
  244. package/types/presence/split-presence-props.d.ts +2 -2
  245. package/types/presence/use-presence.d.ts +23 -2
  246. package/types/radio-group/radio-group-context.d.ts +3 -2
  247. package/types/radio-group/radio-group-indicator.d.ts +2 -1
  248. package/types/radio-group/radio-group-item-context.d.ts +3 -2
  249. package/types/radio-group/radio-group-item-control.d.ts +2 -1
  250. package/types/radio-group/radio-group-item-text.d.ts +2 -1
  251. package/types/radio-group/radio-group-item.d.ts +2 -1
  252. package/types/radio-group/radio-group-label.d.ts +2 -1
  253. package/types/radio-group/radio-group.d.ts +2 -1
  254. package/types/radio-group/use-radio-group.d.ts +4 -2
  255. package/types/rating-group/rating-group-context.d.ts +3 -2
  256. package/types/rating-group/rating-group-control.d.ts +6 -5
  257. package/types/rating-group/rating-group-item-context.d.ts +4 -2
  258. package/types/rating-group/rating-group-item.d.ts +6 -6
  259. package/types/rating-group/rating-group-label.d.ts +2 -1
  260. package/types/rating-group/rating-group.d.ts +2 -1
  261. package/types/rating-group/use-rating-group.d.ts +4 -2
  262. package/types/segment-group/segment-group-context.d.ts +3 -2
  263. package/types/segment-group/segment-group-indicator.d.ts +2 -1
  264. package/types/segment-group/segment-group-item-control.d.ts +2 -1
  265. package/types/segment-group/segment-group-item-text.d.ts +2 -1
  266. package/types/segment-group/segment-group-item.d.ts +2 -1
  267. package/types/segment-group/segment-group-label.d.ts +2 -1
  268. package/types/segment-group/segment-group.d.ts +2 -1
  269. package/types/segment-group/use-segment-group.d.ts +4 -2
  270. package/types/select/select-clear-trigger.d.ts +2 -1
  271. package/types/select/select-content.d.ts +1 -3
  272. package/types/select/select-context.d.ts +2 -1
  273. package/types/select/select-control.d.ts +2 -1
  274. package/types/select/select-indicator.d.ts +2 -1
  275. package/types/select/select-item-context.d.ts +2 -1
  276. package/types/select/select-item-group.d.ts +2 -1
  277. package/types/select/select-item-indicator.d.ts +2 -1
  278. package/types/select/select-item-text.d.ts +2 -1
  279. package/types/select/select-item.d.ts +5 -4
  280. package/types/select/select-label.d.ts +2 -1
  281. package/types/select/select-positioner.d.ts +2 -1
  282. package/types/select/select-trigger.d.ts +2 -1
  283. package/types/select/select.d.ts +7 -6
  284. package/types/select/use-select.d.ts +2 -1
  285. package/types/slider/slider-context.d.ts +3 -2
  286. package/types/slider/slider-control.d.ts +2 -1
  287. package/types/slider/slider-label.d.ts +2 -1
  288. package/types/slider/slider-marker-group.d.ts +2 -1
  289. package/types/slider/slider-marker.d.ts +2 -1
  290. package/types/slider/slider-range.d.ts +2 -1
  291. package/types/slider/slider-thumb.d.ts +2 -1
  292. package/types/slider/slider-track.d.ts +2 -1
  293. package/types/slider/slider-value-text.d.ts +3 -7
  294. package/types/slider/slider.d.ts +4 -3
  295. package/types/slider/use-slider.d.ts +4 -2
  296. package/types/splitter/splitter-context.d.ts +3 -2
  297. package/types/splitter/splitter-panel.d.ts +2 -1
  298. package/types/splitter/splitter-resize-trigger.d.ts +2 -1
  299. package/types/splitter/splitter.d.ts +4 -3
  300. package/types/splitter/use-splitter.d.ts +4 -2
  301. package/types/switch/switch-context.d.ts +3 -2
  302. package/types/switch/switch-control.d.ts +2 -1
  303. package/types/switch/switch-label.d.ts +2 -1
  304. package/types/switch/switch-thumb.d.ts +2 -1
  305. package/types/switch/switch.d.ts +5 -5
  306. package/types/switch/use-switch.d.ts +4 -2
  307. package/types/tabs/tab-content.d.ts +2 -2
  308. package/types/tabs/tab-indicator.d.ts +2 -1
  309. package/types/tabs/tab-list.d.ts +2 -1
  310. package/types/tabs/tab-trigger.d.ts +2 -1
  311. package/types/tabs/tabs-context.d.ts +3 -2
  312. package/types/tabs/tabs.d.ts +3 -1
  313. package/types/tabs/use-tabs.d.ts +4 -2
  314. package/types/tags-input/tags-input-clear-trigger.d.ts +2 -1
  315. package/types/tags-input/tags-input-context.d.ts +3 -2
  316. package/types/tags-input/tags-input-control.d.ts +2 -1
  317. package/types/tags-input/tags-input-input.d.ts +2 -1
  318. package/types/tags-input/tags-input-item-context.d.ts +3 -2
  319. package/types/tags-input/tags-input-item-delete-trigger.d.ts +2 -1
  320. package/types/tags-input/tags-input-item-input.d.ts +2 -1
  321. package/types/tags-input/tags-input-item-text.d.ts +2 -1
  322. package/types/tags-input/tags-input-item.d.ts +5 -4
  323. package/types/tags-input/tags-input-label.d.ts +2 -1
  324. package/types/tags-input/tags-input.d.ts +5 -5
  325. package/types/tags-input/use-tags-input.d.ts +4 -2
  326. package/types/toast/toast-close-trigger.d.ts +2 -1
  327. package/types/toast/toast-description.d.ts +2 -1
  328. package/types/toast/toast-title.d.ts +2 -1
  329. package/types/toast/toast.d.ts +2 -1
  330. package/types/toggle-group/toggle-group-context.d.ts +3 -2
  331. package/types/toggle-group/toggle-group.d.ts +2 -1
  332. package/types/toggle-group/use-toggle-group.d.ts +4 -2
  333. package/types/tooltip/tooltip-arrow-tip.d.ts +2 -1
  334. package/types/tooltip/tooltip-arrow.d.ts +2 -1
  335. package/types/tooltip/tooltip-content.d.ts +1 -3
  336. package/types/tooltip/tooltip-context.d.ts +3 -2
  337. package/types/tooltip/tooltip-positioner.d.ts +2 -1
  338. package/types/tooltip/tooltip-trigger.d.ts +2 -1
  339. package/types/tooltip/tooltip.d.ts +6 -5
  340. package/types/tooltip/use-tooltip.d.ts +4 -2
  341. package/source/tabs/tab-presence.jsx +0 -6
  342. package/types/tabs/tab-presence.d.ts +0 -4
  343. /package/source/date-picker/{use-date-picker.jsx → use-date-picker.js} +0 -0
  344. /package/source/radio-group/{use-radio-group.jsx → use-radio-group.js} +0 -0
  345. /package/source/rating-group/{use-rating-group.jsx → use-rating-group.js} +0 -0
  346. /package/source/segment-group/{use-segment-group.jsx → use-segment-group.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ark-ui/solid",
3
- "version": "1.0.0-beta.3",
3
+ "version": "1.0.1",
4
4
  "description": "A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.",
5
5
  "keywords": [
6
6
  "accordion",
@@ -79,64 +79,64 @@
79
79
  "release-it": "release-it --config ../../../release-it.json"
80
80
  },
81
81
  "dependencies": {
82
- "@ark-ui/anatomy": "1.0.0-beta.1",
83
- "@zag-js/accordion": "0.27.1",
84
- "@zag-js/anatomy": "0.27.1",
85
- "@zag-js/avatar": "0.27.1",
86
- "@zag-js/carousel": "0.27.1",
87
- "@zag-js/checkbox": "0.27.1",
88
- "@zag-js/color-picker": "0.27.1",
89
- "@zag-js/combobox": "0.27.1",
90
- "@zag-js/date-picker": "0.27.1",
91
- "@zag-js/dialog": "0.27.1",
92
- "@zag-js/editable": "0.27.1",
93
- "@zag-js/hover-card": "0.27.1",
94
- "@zag-js/menu": "0.27.1",
95
- "@zag-js/number-input": "0.27.1",
96
- "@zag-js/pagination": "0.27.1",
97
- "@zag-js/pin-input": "0.27.1",
98
- "@zag-js/popover": "0.27.1",
99
- "@zag-js/presence": "0.27.1",
100
- "@zag-js/radio-group": "0.27.1",
101
- "@zag-js/rating-group": "0.27.1",
102
- "@zag-js/select": "0.27.1",
103
- "@zag-js/slider": "0.27.1",
104
- "@zag-js/solid": "0.27.1",
105
- "@zag-js/splitter": "0.27.1",
106
- "@zag-js/switch": "0.27.1",
107
- "@zag-js/tabs": "0.27.1",
108
- "@zag-js/tags-input": "0.27.1",
109
- "@zag-js/toast": "0.27.1",
110
- "@zag-js/toggle-group": "0.27.1",
111
- "@zag-js/tooltip": "0.27.1",
112
- "@zag-js/types": "0.27.1"
82
+ "@ark-ui/anatomy": "1.0.0",
83
+ "@zag-js/accordion": "0.29.0",
84
+ "@zag-js/avatar": "0.29.0",
85
+ "@zag-js/carousel": "0.29.0",
86
+ "@zag-js/checkbox": "0.29.0",
87
+ "@zag-js/color-picker": "0.29.0",
88
+ "@zag-js/combobox": "0.29.0",
89
+ "@zag-js/date-picker": "0.29.0",
90
+ "@zag-js/dialog": "0.29.0",
91
+ "@zag-js/editable": "0.29.0",
92
+ "@zag-js/hover-card": "0.29.0",
93
+ "@zag-js/menu": "0.29.0",
94
+ "@zag-js/number-input": "0.29.0",
95
+ "@zag-js/pagination": "0.29.0",
96
+ "@zag-js/pin-input": "0.29.0",
97
+ "@zag-js/popover": "0.29.0",
98
+ "@zag-js/presence": "0.29.0",
99
+ "@zag-js/radio-group": "0.29.0",
100
+ "@zag-js/rating-group": "0.29.0",
101
+ "@zag-js/select": "0.29.0",
102
+ "@zag-js/slider": "0.29.0",
103
+ "@zag-js/solid": "0.29.0",
104
+ "@zag-js/splitter": "0.29.0",
105
+ "@zag-js/switch": "0.29.0",
106
+ "@zag-js/tabs": "0.29.0",
107
+ "@zag-js/tags-input": "0.29.0",
108
+ "@zag-js/toast": "0.29.0",
109
+ "@zag-js/toggle-group": "0.29.0",
110
+ "@zag-js/tooltip": "0.29.0",
111
+ "@zag-js/types": "0.29.0"
113
112
  },
114
113
  "devDependencies": {
115
114
  "@release-it/keep-a-changelog": "4.0.0",
116
115
  "@solidjs/testing-library": "0.8.4",
117
- "@storybook/addon-essentials": "7.5.2",
118
- "@storybook/addon-interactions": "7.5.2",
119
- "@storybook/addon-links": "7.5.2",
120
- "@storybook/blocks": "7.5.2",
116
+ "@storybook/addon-essentials": "7.5.3",
117
+ "@storybook/addon-interactions": "7.5.3",
118
+ "@storybook/addon-links": "7.5.3",
119
+ "@storybook/blocks": "7.5.3",
121
120
  "@storybook/testing-library": "0.2.2",
122
121
  "@testing-library/dom": "9.3.3",
123
122
  "@testing-library/jest-dom": "6.1.4",
124
123
  "@testing-library/user-event": "14.5.1",
125
- "@types/jsdom": "21.1.4",
124
+ "@types/jsdom": "21.1.5",
126
125
  "@types/testing-library__jest-dom": "5.14.9",
127
- "@typescript-eslint/eslint-plugin": "6.9.1",
128
- "@typescript-eslint/parser": "6.9.1",
126
+ "@typescript-eslint/eslint-plugin": "6.10.0",
127
+ "@typescript-eslint/parser": "6.10.0",
129
128
  "@vitest/coverage-v8": "0.34.6",
130
- "eslint": "8.52.0",
129
+ "eslint": "8.53.0",
131
130
  "globby": "13.2.2",
132
131
  "jsdom": "22.1.0",
133
132
  "react": "18.2.0",
134
133
  "react-dom": "18.2.0",
135
134
  "release-it": "16.2.1",
136
- "rollup": "4.2.0",
135
+ "resize-observer-polyfill": "1.5.1",
136
+ "rollup": "4.3.0",
137
137
  "rollup-preset-solid": "2.0.1",
138
138
  "solid-js": "1.8.5",
139
- "storybook": "7.5.2",
139
+ "storybook": "7.5.3",
140
140
  "storybook-solidjs": "1.0.0-beta.2",
141
141
  "storybook-solidjs-vite": "1.0.0-beta.2",
142
142
  "typescript": "5.2.2",
@@ -1,14 +1,15 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { ark } from '../factory';
3
- import { Presence, splitPresenceProps } from '../presence';
4
+ import { usePresenceContext } from '../presence';
4
5
  import { useAccordionContext } from './accordion-context';
5
6
  import { useAccordionItemContext } from './accordion-item-context';
6
7
  export const AccordionItemContent = (props) => {
7
- const [presenceProps, localProps] = splitPresenceProps(props);
8
8
  const api = useAccordionContext();
9
9
  const accordionItem = useAccordionItemContext();
10
- const mergedProps = mergeProps(() => api().getItemContentProps(accordionItem), localProps);
11
- return (<Presence present={accordionItem.isOpen} {...presenceProps} fallback={<div {...api().getItemContentProps(accordionItem)}/>}>
10
+ const presenceApi = usePresenceContext();
11
+ const mergedProps = mergeProps(() => api().getItemContentProps(accordionItem), () => presenceApi().presenceProps, props);
12
+ return (<Show when={!presenceApi().isUnmounted}>
12
13
  <ark.div {...mergedProps}/>
13
- </Presence>);
14
+ </Show>);
14
15
  };
@@ -1,10 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
2
  import { ark } from '../factory';
3
+ import { usePresenceContext } from '../presence';
3
4
  import { useAccordionContext } from './accordion-context';
4
5
  import { useAccordionItemContext } from './accordion-item-context';
5
6
  export const AccordionItemTrigger = (props) => {
6
7
  const api = useAccordionContext();
7
8
  const item = useAccordionItemContext();
8
- const mergedProps = mergeProps(() => api().getItemTriggerProps(item), props);
9
+ const presenceApi = usePresenceContext();
10
+ const mergedProps = mergeProps(() => api().getItemTriggerProps(item), () => ({ 'aria-controls': presenceApi().isUnmounted && null }), props);
11
+ // @ts-expect-error we want aria-controls to be null to remove them if the popover if lazy mounted
9
12
  return <ark.button {...mergedProps}/>;
10
13
  };
@@ -1,16 +1,20 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
2
  import { createSplitProps } from '../create-split-props';
3
3
  import { ark } from '../factory';
4
+ import { PresenceProvider, usePresence, usePresencePropsContext } from '../presence';
4
5
  import { runIfFn } from '../run-if-fn';
5
6
  import { useAccordionContext } from './accordion-context';
6
7
  import { AccordionItemProvider } from './accordion-item-context';
7
8
  export const AccordionItem = (props) => {
8
- const [itemProps, restProps] = createSplitProps()(props, ['value', 'disabled']);
9
+ const [itemProps, localProps] = createSplitProps()(props, ['value', 'disabled']);
9
10
  const api = useAccordionContext();
10
- const mergedProps = mergeProps(() => api().getItemProps(itemProps), restProps);
11
- const accordionItem = mergeProps(() => api().getItemState(itemProps), itemProps);
12
- const getChildren = () => runIfFn(restProps.children, () => api().getItemState(itemProps));
13
- return (<AccordionItemProvider value={accordionItem}>
14
- <ark.div {...mergedProps}>{getChildren()}</ark.div>
11
+ const presenceProps = usePresencePropsContext();
12
+ const presenceApi = usePresence(mergeProps(presenceProps, () => ({ present: api().getItemState(itemProps).isOpen })));
13
+ const mergedProps = mergeProps(() => api().getItemProps(itemProps), localProps);
14
+ const getChildren = () => runIfFn(localProps.children, () => api().getItemState(itemProps));
15
+ return (<AccordionItemProvider value={itemProps}>
16
+ <PresenceProvider value={presenceApi}>
17
+ <ark.div {...mergedProps}>{getChildren()}</ark.div>
18
+ </PresenceProvider>
15
19
  </AccordionItemProvider>);
16
20
  };
@@ -1,10 +1,12 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
2
  import { createSplitProps } from '../create-split-props';
3
3
  import { ark } from '../factory';
4
+ import { PresencePropsProvider, splitPresenceProps } from '../presence';
4
5
  import { AccordionProvider } from './accordion-context';
5
6
  import { useAccordion } from './use-accordion';
6
7
  export const Accordion = (props) => {
7
- const [params, localProps] = createSplitProps()(props, [
8
+ const [presenceProps, accordionProps] = splitPresenceProps(props);
9
+ const [useAccordionProps, localProps] = createSplitProps()(accordionProps, [
8
10
  'collapsible',
9
11
  'dir',
10
12
  'disabled',
@@ -17,9 +19,11 @@ export const Accordion = (props) => {
17
19
  'orientation',
18
20
  'value',
19
21
  ]);
20
- const api = useAccordion(params);
21
- const rootProps = mergeProps(() => api().rootProps, localProps);
22
+ const api = useAccordion(useAccordionProps);
23
+ const mergedProps = mergeProps(() => api().rootProps, localProps);
22
24
  return (<AccordionProvider value={api}>
23
- <ark.div {...rootProps}/>
25
+ <PresencePropsProvider value={presenceProps}>
26
+ <ark.div {...mergedProps}/>
27
+ </PresencePropsProvider>
24
28
  </AccordionProvider>);
25
29
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useAvatarContext } from './avatar-context';
4
4
  export const AvatarFallback = (props) => {
5
5
  const avatar = useAvatarContext();
6
- const fallbackProps = mergeProps(() => avatar().fallbackProps, props);
7
- return <ark.span {...fallbackProps}/>;
6
+ const mergedProps = mergeProps(() => avatar().fallbackProps, props);
7
+ return <ark.span {...mergedProps}/>;
8
8
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useAvatarContext } from './avatar-context';
4
4
  export const AvatarImage = (props) => {
5
5
  const avatar = useAvatarContext();
6
- const imageProps = mergeProps(() => avatar().imageProps, props);
7
- return <ark.img {...imageProps}/>;
6
+ const mergedProps = mergeProps(() => avatar().imageProps, props);
7
+ return <ark.img {...mergedProps}/>;
8
8
  };
@@ -11,8 +11,8 @@ export const Avatar = (props) => {
11
11
  'onLoadingStatusChange',
12
12
  ]);
13
13
  const api = useAvatar(params);
14
- const rootProps = mergeProps(() => api().rootProps, localProps);
14
+ const mergedProps = mergeProps(() => api().rootProps, localProps);
15
15
  return (<AvatarProvider value={api}>
16
- <ark.div {...rootProps}/>
16
+ <ark.div {...mergedProps}/>
17
17
  </AvatarProvider>);
18
18
  };
@@ -1,6 +1,7 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
2
  import { createSplitProps } from '../create-split-props';
3
3
  import { ark } from '../factory';
4
+ import { runIfFn } from '../run-if-fn';
4
5
  import { CarouselProvider } from './carousel-context';
5
6
  import { useCarousel } from './use-carousel';
6
7
  export const Carousel = (props) => {
@@ -17,9 +18,10 @@ export const Carousel = (props) => {
17
18
  'slidesPerView',
18
19
  'spacing',
19
20
  ]);
20
- const carousel = useCarousel(useCarouselProps);
21
- const rootProps = mergeProps(() => carousel().rootProps, localProps);
22
- return (<CarouselProvider value={carousel}>
23
- <ark.div {...rootProps}/>
21
+ const api = useCarousel(useCarouselProps);
22
+ const mergedProps = mergeProps(() => api().rootProps, localProps);
23
+ const getChildren = () => runIfFn(localProps.children, api);
24
+ return (<CarouselProvider value={api}>
25
+ <ark.div {...mergedProps}>{getChildren()}</ark.div>
24
26
  </CarouselProvider>);
25
27
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useCheckboxContext } from './checkbox-context';
4
4
  export const CheckboxLabel = (props) => {
5
5
  const checkbox = useCheckboxContext();
6
- const labelProps = mergeProps(() => checkbox().labelProps, props);
7
- return <ark.span {...labelProps}/>;
6
+ const mergedProps = mergeProps(() => checkbox().labelProps, props);
7
+ return <ark.span {...mergedProps}/>;
8
8
  };
@@ -1,12 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { ark } from '../factory';
3
- import { Presence, splitPresenceProps } from '../presence';
4
+ import { usePresenceContext } from '../presence';
4
5
  import { useColorPickerContext } from './color-picker-context';
5
6
  export const ColorPickerContent = (props) => {
6
- const [presenceProps, localProps] = splitPresenceProps(props);
7
7
  const api = useColorPickerContext();
8
- const mergedProps = mergeProps(() => api().contentProps, localProps);
9
- return (<Presence present={api().isOpen} {...presenceProps} fallback={<div {...api().contentProps}/>}>
8
+ const presenceApi = usePresenceContext();
9
+ const mergedProps = mergeProps(() => api().contentProps, () => presenceApi().presenceProps, props);
10
+ return (<Show when={!presenceApi().isUnmounted}>
10
11
  <ark.div {...mergedProps}/>
11
- </Presence>);
12
+ </Show>);
12
13
  };
@@ -1,8 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { ark } from '../factory';
4
+ import { usePresenceContext } from '../presence';
3
5
  import { useColorPickerContext } from './color-picker-context';
4
6
  export const ColorPickerPositioner = (props) => {
5
7
  const api = useColorPickerContext();
8
+ const presenceApi = usePresenceContext();
6
9
  const mergedProps = mergeProps(() => api().positionerProps, props);
7
- return <ark.div {...mergedProps}/>;
10
+ return (<Show when={!presenceApi().isUnmounted}>
11
+ <ark.div {...mergedProps}/>
12
+ </Show>);
8
13
  };
@@ -0,0 +1,13 @@
1
+ import { colorPickerAnatomy } from '@ark-ui/anatomy';
2
+ import { mergeProps } from '@zag-js/solid';
3
+ import { Show } from 'solid-js';
4
+ import { ark } from '../factory';
5
+ import { useColorPickerContext } from './color-picker-context';
6
+ export const ColorPickerView = (props) => {
7
+ const api = useColorPickerContext();
8
+ const mergedProps = mergeProps(() => colorPickerAnatomy.build().view.attrs, props);
9
+ // TODO @segunadebayo
10
+ return (<Show when={api().format === props.format}>
11
+ <ark.div data-format={props.format} {...mergedProps}/>
12
+ </Show>);
13
+ };
@@ -1,11 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
2
  import { createSplitProps } from '../create-split-props';
3
3
  import { ark } from '../factory';
4
+ import { PresenceProvider, splitPresenceProps, usePresence, } from '../presence';
4
5
  import { runIfFn } from '../run-if-fn';
5
6
  import { ColorPickerProvider } from './color-picker-context';
6
7
  import { useColorPicker, } from './use-color-picker';
7
8
  export const ColorPicker = (props) => {
8
- const [colorPickerProps, localProps] = createSplitProps()(props, [
9
+ const [presenceProps, colorPickerProps] = splitPresenceProps(props);
10
+ const [useColorPickerProps, localProps] = createSplitProps()(colorPickerProps, [
9
11
  'autoFocus',
10
12
  'dir',
11
13
  'disabled',
@@ -26,11 +28,14 @@ export const ColorPicker = (props) => {
26
28
  'readOnly',
27
29
  'value',
28
30
  ]);
29
- const api = useColorPicker(colorPickerProps);
31
+ const api = useColorPicker(useColorPickerProps);
32
+ const apiPresence = usePresence(mergeProps(presenceProps, () => ({ present: api().isOpen })));
30
33
  const mergedProps = mergeProps(() => api().rootProps, localProps);
31
34
  const getChildren = () => runIfFn(localProps.children, api);
32
35
  return (<ColorPickerProvider value={api}>
33
- <ark.div {...mergedProps}>{getChildren()}</ark.div>
36
+ <PresenceProvider value={apiPresence}>
37
+ <ark.div {...mergedProps}>{getChildren()}</ark.div>
38
+ </PresenceProvider>
34
39
  <input {...api().hiddenInputProps}/>
35
40
  </ColorPickerProvider>);
36
41
  };
@@ -20,6 +20,7 @@ import { ColorPickerSwatchTrigger, } from './color-picker-swatch-trigger';
20
20
  import { ColorPickerTransparencyGrid, } from './color-picker-transparency-grid';
21
21
  import { ColorPickerTrigger } from './color-picker-trigger';
22
22
  import { ColorPickerValueText } from './color-picker-value-text';
23
+ import { ColorPickerView } from './color-picker-view';
23
24
  const ColorPicker = Object.assign(ColorPickerRoot, {
24
25
  Root: ColorPickerRoot,
25
26
  Area: ColorPickerArea,
@@ -40,5 +41,6 @@ const ColorPicker = Object.assign(ColorPickerRoot, {
40
41
  TransparencyGrid: ColorPickerTransparencyGrid,
41
42
  Trigger: ColorPickerTrigger,
42
43
  ValueText: ColorPickerValueText,
44
+ View: ColorPickerView,
43
45
  });
44
46
  export { ColorPicker, ColorPickerArea, ColorPickerAreaBackground, ColorPickerAreaThumb, ColorPickerChannelInput, ColorPickerChannelSlider, ColorPickerChannelSliderThumb, ColorPickerChannelSliderTrack, ColorPickerContent, ColorPickerControl, ColorPickerEyeDropperTrigger, ColorPickerLabel, ColorPickerPositioner, ColorPickerSwatch, ColorPickerSwatchGroup, ColorPickerSwatchTrigger, ColorPickerTransparencyGrid, ColorPickerTrigger, ColorPickerValueText, useColorPickerAreaContext, useColorPickerChannelSliderContext, useColorPickerContext, };
@@ -1,12 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { ark } from '../factory';
3
- import { Presence, splitPresenceProps } from '../presence';
4
+ import { usePresenceContext } from '../presence';
4
5
  import { useComboboxContext } from './combobox-context';
5
6
  export const ComboboxContent = (props) => {
6
- const [presenceProps, localProps] = splitPresenceProps(props);
7
7
  const api = useComboboxContext();
8
- const mergedProps = mergeProps(() => api().contentProps, localProps);
9
- return (<Presence present={api().isOpen} {...presenceProps} fallback={<div {...api().contentProps}/>}>
8
+ const presenceApi = usePresenceContext();
9
+ const mergedProps = mergeProps(() => api().contentProps, () => presenceApi().presenceProps, props);
10
+ return (<Show when={!presenceApi().isUnmounted}>
10
11
  <ark.div {...mergedProps}/>
11
- </Presence>);
12
+ </Show>);
12
13
  };
@@ -1,8 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { ark } from '../factory';
4
+ import { usePresenceContext } from '../presence';
3
5
  import { useComboboxContext } from './combobox-context';
4
6
  export const ComboboxPositioner = (props) => {
5
- const combobox = useComboboxContext();
6
- const mergedProps = mergeProps(() => combobox().positionerProps, props);
7
- return <ark.div {...mergedProps}/>;
7
+ const api = useComboboxContext();
8
+ const presenceApi = usePresenceContext();
9
+ const mergedProps = mergeProps(() => api().positionerProps, props);
10
+ return (<Show when={!presenceApi().isUnmounted}>
11
+ <ark.div {...mergedProps}/>
12
+ </Show>);
8
13
  };
@@ -1,11 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
2
  import { createSplitProps } from '../create-split-props';
3
3
  import { ark } from '../factory';
4
+ import { PresenceProvider, splitPresenceProps, usePresence, } from '../presence';
4
5
  import { runIfFn } from '../run-if-fn';
5
6
  import { ComboboxProvider } from './combobox-context';
6
7
  import { useCombobox } from './use-combobox';
7
8
  export const Combobox = (props) => {
8
- const [selectProps, localProps] = createSplitProps()(props, [
9
+ const [presenceProps, comboboxProps] = splitPresenceProps(props);
10
+ const [useComboboxProps, localProps] = createSplitProps()(comboboxProps, [
9
11
  'allowCustomValue',
10
12
  'autoFocus',
11
13
  'closeOnSelect',
@@ -43,10 +45,13 @@ export const Combobox = (props) => {
43
45
  'translations',
44
46
  'value',
45
47
  ]);
46
- const api = useCombobox(selectProps);
48
+ const api = useCombobox(useComboboxProps);
49
+ const apiPresence = usePresence(mergeProps(presenceProps, () => ({ present: api().isOpen })));
47
50
  const mergedProps = mergeProps(() => api().rootProps, localProps);
48
51
  const getChildren = () => runIfFn(localProps.children, api);
49
52
  return (<ComboboxProvider value={api}>
50
- <ark.div {...mergedProps}>{getChildren()}</ark.div>
53
+ <PresenceProvider value={apiPresence}>
54
+ <ark.div {...mergedProps}>{getChildren()}</ark.div>
55
+ </PresenceProvider>
51
56
  </ComboboxProvider>);
52
57
  };
@@ -1,12 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { ark } from '../factory';
3
- import { Presence, splitPresenceProps } from '../presence';
4
+ import { usePresenceContext } from '../presence';
4
5
  import { useDatePickerContext } from './date-picker-context';
5
6
  export const DatePickerContent = (props) => {
6
- const [presenceProps, localProps] = splitPresenceProps(props);
7
7
  const api = useDatePickerContext();
8
- const mergedProps = mergeProps(() => api().contentProps, localProps);
9
- return (<Presence present={api().isOpen} {...presenceProps} fallback={<div {...api().contentProps}/>}>
8
+ const presenceApi = usePresenceContext();
9
+ const mergedProps = mergeProps(() => api().contentProps, () => presenceApi().presenceProps, props);
10
+ return (<Show when={!presenceApi().isUnmounted}>
10
11
  <ark.div {...mergedProps}/>
11
- </Presence>);
12
+ </Show>);
12
13
  };
@@ -1,8 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { ark } from '../factory';
4
+ import { usePresenceContext } from '../presence';
3
5
  import { useDatePickerContext } from './date-picker-context';
4
6
  export const DatePickerPositioner = (props) => {
5
7
  const api = useDatePickerContext();
8
+ const presenceApi = usePresenceContext();
6
9
  const mergedProps = mergeProps(() => api().positionerProps, props);
7
- return <ark.div {...mergedProps}/>;
10
+ return (<Show when={!presenceApi().isUnmounted}>
11
+ <ark.div {...mergedProps}/>
12
+ </Show>);
8
13
  };
@@ -1,11 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
2
  import { createSplitProps } from '../create-split-props';
3
3
  import { ark } from '../factory';
4
+ import { PresenceProvider, splitPresenceProps, usePresence, } from '../presence';
4
5
  import { runIfFn } from '../run-if-fn';
5
6
  import { DatePickerProvider } from './date-picker-context';
6
7
  import { useDatePicker } from './use-date-picker';
7
8
  export const DatePicker = (props) => {
8
- const [datePickerProps, localProps] = createSplitProps()(props, [
9
+ const [presenceProps, datePickerProps] = splitPresenceProps(props);
10
+ const [useDatePickerProps, localProps] = createSplitProps()(datePickerProps, [
9
11
  'closeOnSelect',
10
12
  'dir',
11
13
  'disabled',
@@ -38,10 +40,13 @@ export const DatePicker = (props) => {
38
40
  'value',
39
41
  'view',
40
42
  ]);
41
- const api = useDatePicker(datePickerProps);
43
+ const api = useDatePicker(useDatePickerProps);
44
+ const apiPresence = usePresence(mergeProps(presenceProps, () => ({ present: api().isOpen })));
42
45
  const mergedProps = mergeProps(() => api().rootProps, localProps);
43
46
  const getChildren = () => runIfFn(localProps.children, api);
44
47
  return (<DatePickerProvider value={api}>
45
- <ark.div {...mergedProps}>{getChildren()}</ark.div>
48
+ <PresenceProvider value={apiPresence}>
49
+ <ark.div {...mergedProps}>{getChildren()}</ark.div>
50
+ </PresenceProvider>
46
51
  </DatePickerProvider>);
47
52
  };
@@ -1,12 +1,14 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { ark } from '../factory';
3
- import { Presence, splitPresenceProps } from '../presence';
4
+ import { usePresence, usePresencePropsContext } from '../presence';
4
5
  import { useDialogContext } from './dialog-context';
5
6
  export const DialogBackdrop = (props) => {
6
- const [presenceProps, localProps] = splitPresenceProps(props);
7
7
  const api = useDialogContext();
8
- const mergedProps = mergeProps(() => api().backdropProps, localProps);
9
- return (<Presence present={api().isOpen} {...presenceProps} fallback={<div {...api().backdropProps}/>}>
8
+ const presenceProps = usePresencePropsContext();
9
+ const presenceApi = usePresence(mergeProps(presenceProps, () => ({ present: api().isOpen })));
10
+ const mergedProps = mergeProps(() => api().backdropProps, () => presenceApi().presenceProps, props);
11
+ return (<Show when={!presenceApi().isUnmounted}>
10
12
  <ark.div {...mergedProps}/>
11
- </Presence>);
13
+ </Show>);
12
14
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useDialogContext } from './dialog-context';
4
4
  export const DialogCloseTrigger = (props) => {
5
5
  const dialog = useDialogContext();
6
- const triggerProps = mergeProps(() => dialog().triggerProps, props);
7
- return <ark.button {...triggerProps}/>;
6
+ const mergedProps = mergeProps(() => dialog().triggerProps, props);
7
+ return <ark.button {...mergedProps}/>;
8
8
  };
@@ -1,12 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { ark } from '../factory';
3
- import { Presence, splitPresenceProps } from '../presence';
4
+ import { usePresenceContext } from '../presence';
4
5
  import { useDialogContext } from './dialog-context';
5
6
  export const DialogContent = (props) => {
6
- const [presenceProps, localProps] = splitPresenceProps(props);
7
7
  const api = useDialogContext();
8
- const mergedProps = mergeProps(() => api().contentProps, localProps);
9
- return (<Presence present={api().isOpen} {...presenceProps} fallback={<div {...api().contentProps}/>}>
8
+ const presenceApi = usePresenceContext();
9
+ const mergedProps = mergeProps(() => api().contentProps, () => presenceApi().presenceProps, props);
10
+ return (<Show when={!presenceApi().isUnmounted}>
10
11
  <ark.div {...mergedProps}/>
11
- </Presence>);
12
+ </Show>);
12
13
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useDialogContext } from './dialog-context';
4
4
  export const DialogDescription = (props) => {
5
5
  const dialog = useDialogContext();
6
- const descriptionProps = mergeProps(() => dialog().descriptionProps, props);
7
- return <ark.p {...descriptionProps}/>;
6
+ const mergedProps = mergeProps(() => dialog().descriptionProps, props);
7
+ return <ark.p {...mergedProps}/>;
8
8
  };
@@ -1,8 +1,13 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { ark } from '../factory';
4
+ import { usePresenceContext } from '../presence';
3
5
  import { useDialogContext } from './dialog-context';
4
6
  export const DialogPositioner = (props) => {
5
- const dialog = useDialogContext();
6
- const mergedProps = mergeProps(() => dialog().positionerProps, props);
7
- return <ark.div {...mergedProps}/>;
7
+ const api = useDialogContext();
8
+ const presenceApi = usePresenceContext();
9
+ const mergedProps = mergeProps(() => api().positionerProps, props);
10
+ return (<Show when={!presenceApi().isUnmounted}>
11
+ <ark.div {...mergedProps}/>
12
+ </Show>);
8
13
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useDialogContext } from './dialog-context';
4
4
  export const DialogTitle = (props) => {
5
5
  const dialog = useDialogContext();
6
- const titleProps = mergeProps(() => dialog().titleProps, props);
7
- return <ark.h2 {...titleProps}/>;
6
+ const mergedProps = mergeProps(() => dialog().titleProps, props);
7
+ return <ark.h2 {...mergedProps}/>;
8
8
  };
@@ -1,8 +1,11 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
2
  import { ark } from '../factory';
3
+ import { usePresenceContext } from '../presence';
3
4
  import { useDialogContext } from './dialog-context';
4
5
  export const DialogTrigger = (props) => {
5
- const dialog = useDialogContext();
6
- const triggerProps = mergeProps(() => dialog().triggerProps, props);
7
- return <ark.button {...triggerProps}/>;
6
+ const api = useDialogContext();
7
+ const presenceApi = usePresenceContext();
8
+ const mergedProps = mergeProps(() => api().triggerProps, () => ({ 'aria-controls': presenceApi().isUnmounted && null }), props);
9
+ // @ts-expect-error we want aria-controls to be null to remove them if the popover if lazy mounted
10
+ return <ark.button {...mergedProps}/>;
8
11
  };