@ark-ui/solid 1.0.0-beta.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 (358) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/cjs/index.js +659 -381
  3. package/cjs/index.js.map +1 -1
  4. package/esm/index.js +655 -383
  5. package/esm/index.js.map +1 -1
  6. package/package.json +45 -45
  7. package/source/accordion/accordion-item-content.jsx +7 -6
  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 +7 -2
  17. package/source/color-picker/color-picker-positioner.jsx +6 -1
  18. package/source/color-picker/color-picker-value-text.jsx +9 -0
  19. package/source/color-picker/color-picker-view.jsx +13 -0
  20. package/source/color-picker/color-picker.jsx +8 -3
  21. package/source/color-picker/index.js +5 -1
  22. package/source/combobox/combobox-content.jsx +6 -5
  23. package/source/combobox/combobox-item-group-label.jsx +2 -2
  24. package/source/combobox/combobox-positioner.jsx +8 -3
  25. package/source/combobox/combobox.jsx +8 -3
  26. package/source/date-picker/date-picker-content.jsx +7 -2
  27. package/source/date-picker/date-picker-positioner.jsx +6 -1
  28. package/source/date-picker/date-picker-view.jsx +4 -1
  29. package/source/date-picker/date-picker.jsx +9 -4
  30. package/source/dialog/dialog-backdrop.jsx +6 -5
  31. package/source/dialog/dialog-close-trigger.jsx +2 -2
  32. package/source/dialog/dialog-content.jsx +6 -5
  33. package/source/dialog/dialog-description.jsx +2 -2
  34. package/source/dialog/dialog-positioner.jsx +8 -3
  35. package/source/dialog/dialog-title.jsx +2 -2
  36. package/source/dialog/dialog-trigger.jsx +6 -3
  37. package/source/dialog/dialog.jsx +9 -3
  38. package/source/editable/editable-area.jsx +2 -2
  39. package/source/editable/editable-cancel-trigger.jsx +2 -2
  40. package/source/editable/editable-control.jsx +2 -2
  41. package/source/editable/editable-edit-trigger.jsx +2 -2
  42. package/source/editable/editable-input.jsx +2 -2
  43. package/source/editable/editable-label.jsx +2 -2
  44. package/source/editable/editable-preview.jsx +2 -2
  45. package/source/editable/editable-submit-trigger.jsx +2 -2
  46. package/source/editable/editable.jsx +2 -2
  47. package/source/hover-card/hover-card-arrow-tip.jsx +2 -2
  48. package/source/hover-card/hover-card-arrow.jsx +2 -2
  49. package/source/hover-card/hover-card-content.jsx +6 -5
  50. package/source/hover-card/hover-card-positioner.jsx +8 -3
  51. package/source/hover-card/hover-card-trigger.jsx +2 -2
  52. package/source/hover-card/hover-card.jsx +9 -3
  53. package/source/menu/menu-arrow-tip.jsx +2 -2
  54. package/source/menu/menu-arrow.jsx +2 -2
  55. package/source/menu/menu-content.jsx +6 -5
  56. package/source/menu/menu-context-trigger.jsx +2 -2
  57. package/source/menu/menu-item-group-label.jsx +3 -5
  58. package/source/menu/menu-item-group.jsx +2 -2
  59. package/source/menu/menu-item.jsx +2 -2
  60. package/source/menu/menu-option-item.jsx +2 -2
  61. package/source/menu/menu-positioner.jsx +8 -3
  62. package/source/menu/menu-separator.jsx +2 -2
  63. package/source/menu/menu-trigger-item.jsx +2 -2
  64. package/source/menu/menu-trigger.jsx +2 -2
  65. package/source/menu/menu.jsx +11 -12
  66. package/source/number-input/number-input-control.jsx +2 -2
  67. package/source/number-input/number-input-decrement-trigger.jsx +2 -2
  68. package/source/number-input/number-input-field.jsx +2 -2
  69. package/source/number-input/number-input-increment-trigger.jsx +2 -2
  70. package/source/number-input/number-input-label.jsx +2 -2
  71. package/source/number-input/number-input-scrubber.jsx +2 -2
  72. package/source/number-input/number-input.jsx +2 -2
  73. package/source/pagination/pagination.jsx +2 -2
  74. package/source/pin-input/pin-input-field.jsx +2 -2
  75. package/source/pin-input/pin-input-label.jsx +2 -2
  76. package/source/popover/popover-anchor.jsx +2 -2
  77. package/source/popover/popover-arrow-tip.jsx +2 -2
  78. package/source/popover/popover-arrow.jsx +2 -2
  79. package/source/popover/popover-close-trigger.jsx +2 -2
  80. package/source/popover/popover-content.jsx +6 -5
  81. package/source/popover/popover-description.jsx +2 -2
  82. package/source/popover/popover-positioner.jsx +7 -2
  83. package/source/popover/popover-title.jsx +2 -2
  84. package/source/popover/popover-trigger.jsx +5 -2
  85. package/source/popover/popover.jsx +10 -2
  86. package/source/presence/index.js +4 -1
  87. package/source/presence/presence-context.js +5 -0
  88. package/source/presence/presence-props-context.js +5 -0
  89. package/source/presence/presence.jsx +9 -28
  90. package/source/presence/use-presence.js +21 -4
  91. package/source/rating-group/rating-group-item.jsx +5 -4
  92. package/source/select/select-content.jsx +6 -5
  93. package/source/select/select-control.jsx +9 -1
  94. package/source/select/select-item-group-label.jsx +2 -2
  95. package/source/select/select-positioner.jsx +6 -1
  96. package/source/select/select.jsx +8 -3
  97. package/source/slider/index.js +3 -3
  98. package/source/slider/slider-thumb.jsx +2 -2
  99. package/source/slider/slider-value-text.jsx +10 -0
  100. package/source/splitter/splitter-panel.jsx +2 -2
  101. package/source/splitter/splitter-resize-trigger.jsx +2 -2
  102. package/source/splitter/splitter.jsx +2 -2
  103. package/source/switch/switch-label.jsx +2 -2
  104. package/source/switch/switch-thumb.jsx +2 -2
  105. package/source/tabs/tab-content.jsx +11 -8
  106. package/source/tabs/tab-indicator.jsx +2 -2
  107. package/source/tabs/tab-list.jsx +2 -2
  108. package/source/tabs/tab-trigger.jsx +2 -2
  109. package/source/tabs/tabs.jsx +7 -3
  110. package/source/toggle-group/toggle-group.jsx +2 -2
  111. package/source/tooltip/tooltip-arrow-tip.jsx +2 -2
  112. package/source/tooltip/tooltip-arrow.jsx +2 -2
  113. package/source/tooltip/tooltip-content.jsx +7 -6
  114. package/source/tooltip/tooltip-positioner.jsx +7 -2
  115. package/source/tooltip/tooltip-trigger.jsx +2 -2
  116. package/source/tooltip/tooltip.jsx +10 -2
  117. package/types/accordion/accordion-context.d.ts +3 -2
  118. package/types/accordion/accordion-item-content.d.ts +2 -2
  119. package/types/accordion/accordion-item-context.d.ts +3 -2
  120. package/types/accordion/accordion-item-indicator.d.ts +2 -1
  121. package/types/accordion/accordion-item-trigger.d.ts +2 -1
  122. package/types/accordion/accordion-item.d.ts +5 -4
  123. package/types/accordion/accordion.d.ts +3 -1
  124. package/types/accordion/use-accordion.d.ts +4 -2
  125. package/types/avatar/avatar-context.d.ts +3 -2
  126. package/types/avatar/avatar-fallback.d.ts +2 -1
  127. package/types/avatar/avatar-image.d.ts +2 -1
  128. package/types/avatar/avatar.d.ts +2 -1
  129. package/types/avatar/use-avatar.d.ts +4 -2
  130. package/types/carousel/carousel-context.d.ts +3 -2
  131. package/types/carousel/carousel-control.d.ts +2 -1
  132. package/types/carousel/carousel-indicator-group.d.ts +2 -1
  133. package/types/carousel/carousel-indicator.d.ts +2 -1
  134. package/types/carousel/carousel-next-trigger.d.ts +2 -1
  135. package/types/carousel/carousel-prev-trigger.d.ts +2 -1
  136. package/types/carousel/carousel-slide-group.d.ts +2 -1
  137. package/types/carousel/carousel-slide.d.ts +2 -1
  138. package/types/carousel/carousel-viewport.d.ts +2 -1
  139. package/types/carousel/carousel.d.ts +7 -3
  140. package/types/carousel/use-carousel.d.ts +4 -2
  141. package/types/checkbox/checkbox-context.d.ts +3 -2
  142. package/types/checkbox/checkbox-control.d.ts +2 -1
  143. package/types/checkbox/checkbox-indicator.d.ts +2 -1
  144. package/types/checkbox/checkbox-label.d.ts +2 -1
  145. package/types/checkbox/checkbox.d.ts +5 -5
  146. package/types/checkbox/use-checkbox.d.ts +4 -2
  147. package/types/color-picker/color-picker-transparency-grid.d.ts +2 -2
  148. package/types/color-picker/color-picker-value-text.d.ts +5 -0
  149. package/types/color-picker/color-picker-view.d.ts +7 -0
  150. package/types/color-picker/color-picker.d.ts +5 -3
  151. package/types/color-picker/index.d.ts +8 -4
  152. package/types/combobox/combobox-clear-trigger.d.ts +2 -1
  153. package/types/combobox/combobox-content.d.ts +2 -2
  154. package/types/combobox/combobox-context.d.ts +2 -1
  155. package/types/combobox/combobox-control.d.ts +2 -1
  156. package/types/combobox/combobox-input.d.ts +2 -1
  157. package/types/combobox/combobox-item-context.d.ts +3 -2
  158. package/types/combobox/combobox-item-group-label.d.ts +6 -2
  159. package/types/combobox/combobox-item-group.d.ts +2 -1
  160. package/types/combobox/combobox-item-indicator.d.ts +2 -1
  161. package/types/combobox/combobox-item-text.d.ts +2 -1
  162. package/types/combobox/combobox-item.d.ts +5 -4
  163. package/types/combobox/combobox-label.d.ts +2 -1
  164. package/types/combobox/combobox-positioner.d.ts +2 -1
  165. package/types/combobox/combobox-trigger.d.ts +2 -1
  166. package/types/combobox/combobox.d.ts +7 -6
  167. package/types/combobox/use-combobox.d.ts +2 -1
  168. package/types/date-picker/date-picker-context.d.ts +3 -2
  169. package/types/date-picker/date-picker-view.d.ts +4 -3
  170. package/types/date-picker/date-picker.d.ts +5 -3
  171. package/types/dialog/dialog-backdrop.d.ts +2 -2
  172. package/types/dialog/dialog-close-trigger.d.ts +2 -1
  173. package/types/dialog/dialog-content.d.ts +2 -2
  174. package/types/dialog/dialog-context.d.ts +3 -2
  175. package/types/dialog/dialog-description.d.ts +2 -1
  176. package/types/dialog/dialog-positioner.d.ts +2 -1
  177. package/types/dialog/dialog-title.d.ts +2 -1
  178. package/types/dialog/dialog-trigger.d.ts +2 -1
  179. package/types/dialog/dialog.d.ts +4 -3
  180. package/types/dialog/use-dialog.d.ts +4 -2
  181. package/types/editable/editable-area.d.ts +2 -1
  182. package/types/editable/editable-cancel-trigger.d.ts +2 -1
  183. package/types/editable/editable-context.d.ts +3 -2
  184. package/types/editable/editable-control.d.ts +2 -1
  185. package/types/editable/editable-edit-trigger.d.ts +2 -1
  186. package/types/editable/editable-input.d.ts +2 -1
  187. package/types/editable/editable-label.d.ts +2 -1
  188. package/types/editable/editable-preview.d.ts +2 -1
  189. package/types/editable/editable-submit-trigger.d.ts +2 -1
  190. package/types/editable/editable.d.ts +5 -5
  191. package/types/editable/use-editable.d.ts +4 -2
  192. package/types/environment/environment.d.ts +2 -2
  193. package/types/hover-card/hover-card-arrow-tip.d.ts +2 -1
  194. package/types/hover-card/hover-card-arrow.d.ts +2 -1
  195. package/types/hover-card/hover-card-content.d.ts +2 -2
  196. package/types/hover-card/hover-card-context.d.ts +3 -2
  197. package/types/hover-card/hover-card-positioner.d.ts +2 -1
  198. package/types/hover-card/hover-card-trigger.d.ts +2 -1
  199. package/types/hover-card/hover-card.d.ts +4 -3
  200. package/types/hover-card/use-hover-card.d.ts +4 -2
  201. package/types/menu/menu-arrow-tip.d.ts +2 -1
  202. package/types/menu/menu-arrow.d.ts +2 -1
  203. package/types/menu/menu-content.d.ts +2 -2
  204. package/types/menu/menu-context-trigger.d.ts +2 -1
  205. package/types/menu/menu-item-group-label.d.ts +5 -4
  206. package/types/menu/menu-item-group.d.ts +2 -1
  207. package/types/menu/menu-item.d.ts +2 -1
  208. package/types/menu/menu-option-item.d.ts +3 -2
  209. package/types/menu/menu-positioner.d.ts +2 -1
  210. package/types/menu/menu-separator.d.ts +2 -1
  211. package/types/menu/menu-trigger-item.d.ts +2 -1
  212. package/types/menu/menu-trigger.d.ts +2 -1
  213. package/types/menu/menu.d.ts +6 -9
  214. package/types/menu/use-menu.d.ts +2 -1
  215. package/types/number-input/number-input-context.d.ts +3 -2
  216. package/types/number-input/number-input-control.d.ts +2 -1
  217. package/types/number-input/number-input-decrement-trigger.d.ts +2 -1
  218. package/types/number-input/number-input-field.d.ts +2 -1
  219. package/types/number-input/number-input-increment-trigger.d.ts +2 -1
  220. package/types/number-input/number-input-label.d.ts +2 -1
  221. package/types/number-input/number-input-scrubber.d.ts +2 -1
  222. package/types/number-input/number-input.d.ts +2 -1
  223. package/types/number-input/use-number-input.d.ts +4 -2
  224. package/types/pagination/pagination-context.d.ts +3 -2
  225. package/types/pagination/pagination-ellipsis.d.ts +2 -1
  226. package/types/pagination/pagination-item.d.ts +2 -1
  227. package/types/pagination/pagination.d.ts +4 -3
  228. package/types/pagination/use-pagination.d.ts +4 -2
  229. package/types/pin-input/pin-input-context.d.ts +3 -2
  230. package/types/pin-input/pin-input-control.d.ts +2 -1
  231. package/types/pin-input/pin-input-field.d.ts +3 -2
  232. package/types/pin-input/pin-input-label.d.ts +2 -1
  233. package/types/pin-input/pin-input.d.ts +2 -1
  234. package/types/pin-input/use-pin-input.d.ts +4 -2
  235. package/types/popover/popover-anchor.d.ts +2 -1
  236. package/types/popover/popover-arrow-tip.d.ts +2 -1
  237. package/types/popover/popover-arrow.d.ts +2 -1
  238. package/types/popover/popover-close-trigger.d.ts +2 -1
  239. package/types/popover/popover-content.d.ts +2 -2
  240. package/types/popover/popover-context.d.ts +3 -2
  241. package/types/popover/popover-description.d.ts +2 -1
  242. package/types/popover/popover-indicator.d.ts +2 -1
  243. package/types/popover/popover-positioner.d.ts +2 -1
  244. package/types/popover/popover-title.d.ts +2 -1
  245. package/types/popover/popover-trigger.d.ts +2 -1
  246. package/types/popover/popover.d.ts +5 -4
  247. package/types/popover/use-popover.d.ts +4 -2
  248. package/types/presence/index.d.ts +5 -2
  249. package/types/presence/presence-context.d.ts +4 -0
  250. package/types/presence/presence-props-context.d.ts +4 -0
  251. package/types/presence/presence.d.ts +4 -15
  252. package/types/presence/split-presence-props.d.ts +2 -2
  253. package/types/presence/use-presence.d.ts +23 -2
  254. package/types/radio-group/radio-group-context.d.ts +3 -2
  255. package/types/radio-group/radio-group-indicator.d.ts +2 -1
  256. package/types/radio-group/radio-group-item-context.d.ts +3 -2
  257. package/types/radio-group/radio-group-item-control.d.ts +2 -1
  258. package/types/radio-group/radio-group-item-text.d.ts +2 -1
  259. package/types/radio-group/radio-group-item.d.ts +2 -1
  260. package/types/radio-group/radio-group-label.d.ts +2 -1
  261. package/types/radio-group/radio-group.d.ts +2 -1
  262. package/types/radio-group/use-radio-group.d.ts +4 -2
  263. package/types/rating-group/rating-group-context.d.ts +3 -2
  264. package/types/rating-group/rating-group-control.d.ts +6 -5
  265. package/types/rating-group/rating-group-item-context.d.ts +4 -2
  266. package/types/rating-group/rating-group-item.d.ts +6 -6
  267. package/types/rating-group/rating-group-label.d.ts +2 -1
  268. package/types/rating-group/rating-group.d.ts +2 -1
  269. package/types/rating-group/use-rating-group.d.ts +4 -2
  270. package/types/segment-group/segment-group-context.d.ts +3 -2
  271. package/types/segment-group/segment-group-indicator.d.ts +2 -1
  272. package/types/segment-group/segment-group-item-control.d.ts +2 -1
  273. package/types/segment-group/segment-group-item-text.d.ts +2 -1
  274. package/types/segment-group/segment-group-item.d.ts +2 -1
  275. package/types/segment-group/segment-group-label.d.ts +2 -1
  276. package/types/segment-group/segment-group.d.ts +2 -1
  277. package/types/segment-group/use-segment-group.d.ts +4 -2
  278. package/types/select/select-clear-trigger.d.ts +2 -1
  279. package/types/select/select-content.d.ts +2 -2
  280. package/types/select/select-context.d.ts +2 -1
  281. package/types/select/select-control.d.ts +2 -1
  282. package/types/select/select-indicator.d.ts +2 -1
  283. package/types/select/select-item-context.d.ts +2 -1
  284. package/types/select/select-item-group-label.d.ts +6 -2
  285. package/types/select/select-item-group.d.ts +2 -1
  286. package/types/select/select-item-indicator.d.ts +2 -1
  287. package/types/select/select-item-text.d.ts +2 -1
  288. package/types/select/select-item.d.ts +5 -4
  289. package/types/select/select-label.d.ts +2 -1
  290. package/types/select/select-positioner.d.ts +2 -1
  291. package/types/select/select-trigger.d.ts +2 -1
  292. package/types/select/select.d.ts +7 -6
  293. package/types/select/use-select.d.ts +2 -1
  294. package/types/slider/index.d.ts +4 -4
  295. package/types/slider/slider-context.d.ts +3 -2
  296. package/types/slider/slider-control.d.ts +2 -1
  297. package/types/slider/slider-label.d.ts +2 -1
  298. package/types/slider/slider-marker-group.d.ts +2 -1
  299. package/types/slider/slider-marker.d.ts +2 -1
  300. package/types/slider/slider-range.d.ts +2 -1
  301. package/types/slider/slider-thumb.d.ts +2 -1
  302. package/types/slider/slider-track.d.ts +2 -1
  303. package/types/slider/slider-value-text.d.ts +4 -0
  304. package/types/slider/slider.d.ts +4 -3
  305. package/types/slider/use-slider.d.ts +4 -2
  306. package/types/splitter/splitter-context.d.ts +3 -2
  307. package/types/splitter/splitter-panel.d.ts +2 -1
  308. package/types/splitter/splitter-resize-trigger.d.ts +2 -1
  309. package/types/splitter/splitter.d.ts +4 -3
  310. package/types/splitter/use-splitter.d.ts +4 -2
  311. package/types/switch/switch-context.d.ts +3 -2
  312. package/types/switch/switch-control.d.ts +2 -1
  313. package/types/switch/switch-label.d.ts +2 -1
  314. package/types/switch/switch-thumb.d.ts +2 -1
  315. package/types/switch/switch.d.ts +5 -5
  316. package/types/switch/use-switch.d.ts +4 -2
  317. package/types/tabs/tab-content.d.ts +2 -2
  318. package/types/tabs/tab-indicator.d.ts +2 -1
  319. package/types/tabs/tab-list.d.ts +2 -1
  320. package/types/tabs/tab-trigger.d.ts +2 -1
  321. package/types/tabs/tabs-context.d.ts +3 -2
  322. package/types/tabs/tabs.d.ts +3 -1
  323. package/types/tabs/use-tabs.d.ts +4 -2
  324. package/types/tags-input/tags-input-clear-trigger.d.ts +2 -1
  325. package/types/tags-input/tags-input-context.d.ts +3 -2
  326. package/types/tags-input/tags-input-control.d.ts +2 -1
  327. package/types/tags-input/tags-input-input.d.ts +2 -1
  328. package/types/tags-input/tags-input-item-context.d.ts +3 -2
  329. package/types/tags-input/tags-input-item-delete-trigger.d.ts +2 -1
  330. package/types/tags-input/tags-input-item-input.d.ts +2 -1
  331. package/types/tags-input/tags-input-item-text.d.ts +2 -1
  332. package/types/tags-input/tags-input-item.d.ts +5 -4
  333. package/types/tags-input/tags-input-label.d.ts +2 -1
  334. package/types/tags-input/tags-input.d.ts +5 -5
  335. package/types/tags-input/use-tags-input.d.ts +4 -2
  336. package/types/toast/toast-close-trigger.d.ts +2 -1
  337. package/types/toast/toast-description.d.ts +2 -1
  338. package/types/toast/toast-title.d.ts +2 -1
  339. package/types/toast/toast.d.ts +2 -1
  340. package/types/toggle-group/toggle-group-context.d.ts +3 -2
  341. package/types/toggle-group/toggle-group.d.ts +2 -1
  342. package/types/toggle-group/use-toggle-group.d.ts +4 -2
  343. package/types/tooltip/tooltip-arrow-tip.d.ts +2 -1
  344. package/types/tooltip/tooltip-arrow.d.ts +2 -1
  345. package/types/tooltip/tooltip-content.d.ts +2 -2
  346. package/types/tooltip/tooltip-context.d.ts +3 -2
  347. package/types/tooltip/tooltip-positioner.d.ts +2 -1
  348. package/types/tooltip/tooltip-trigger.d.ts +2 -1
  349. package/types/tooltip/tooltip.d.ts +6 -5
  350. package/types/tooltip/use-tooltip.d.ts +4 -2
  351. package/source/slider/slider-output.jsx +0 -10
  352. package/source/tabs/tab-presence.jsx +0 -6
  353. package/types/slider/slider-output.d.ts +0 -8
  354. package/types/tabs/tab-presence.d.ts +0 -4
  355. /package/source/date-picker/{use-date-picker.jsx → use-date-picker.js} +0 -0
  356. /package/source/radio-group/{use-radio-group.jsx → use-radio-group.js} +0 -0
  357. /package/source/rating-group/{use-rating-group.jsx → use-rating-group.js} +0 -0
  358. /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.2",
3
+ "version": "1.0.0",
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,68 +79,68 @@
79
79
  "release-it": "release-it --config ../../../release-it.json"
80
80
  },
81
81
  "dependencies": {
82
- "@ark-ui/anatomy": "1.0.0-beta.0",
83
- "@zag-js/accordion": "0.26.0",
84
- "@zag-js/anatomy": "0.26.0",
85
- "@zag-js/avatar": "0.26.0",
86
- "@zag-js/carousel": "0.26.0",
87
- "@zag-js/checkbox": "0.26.0",
88
- "@zag-js/color-picker": "0.26.0",
89
- "@zag-js/combobox": "0.26.0",
90
- "@zag-js/date-picker": "0.26.0",
91
- "@zag-js/dialog": "0.26.0",
92
- "@zag-js/editable": "0.26.0",
93
- "@zag-js/hover-card": "0.26.0",
94
- "@zag-js/menu": "0.26.0",
95
- "@zag-js/number-input": "0.26.0",
96
- "@zag-js/pagination": "0.26.0",
97
- "@zag-js/pin-input": "0.26.0",
98
- "@zag-js/popover": "0.26.0",
99
- "@zag-js/presence": "0.26.0",
100
- "@zag-js/radio-group": "0.26.0",
101
- "@zag-js/rating-group": "0.26.0",
102
- "@zag-js/select": "0.26.0",
103
- "@zag-js/slider": "0.26.0",
104
- "@zag-js/solid": "0.26.0",
105
- "@zag-js/splitter": "0.26.0",
106
- "@zag-js/switch": "0.26.0",
107
- "@zag-js/tabs": "0.26.0",
108
- "@zag-js/tags-input": "0.26.0",
109
- "@zag-js/toast": "0.26.0",
110
- "@zag-js/toggle-group": "0.26.0",
111
- "@zag-js/tooltip": "0.26.0",
112
- "@zag-js/types": "0.26.0"
82
+ "@ark-ui/anatomy": "1.0.0",
83
+ "@zag-js/accordion": "0.28.0",
84
+ "@zag-js/avatar": "0.28.0",
85
+ "@zag-js/carousel": "0.28.0",
86
+ "@zag-js/checkbox": "0.28.0",
87
+ "@zag-js/color-picker": "0.28.0",
88
+ "@zag-js/combobox": "0.28.0",
89
+ "@zag-js/date-picker": "0.28.0",
90
+ "@zag-js/dialog": "0.28.0",
91
+ "@zag-js/editable": "0.28.0",
92
+ "@zag-js/hover-card": "0.28.0",
93
+ "@zag-js/menu": "0.28.0",
94
+ "@zag-js/number-input": "0.28.0",
95
+ "@zag-js/pagination": "0.28.0",
96
+ "@zag-js/pin-input": "0.28.0",
97
+ "@zag-js/popover": "0.28.0",
98
+ "@zag-js/presence": "0.28.0",
99
+ "@zag-js/radio-group": "0.28.0",
100
+ "@zag-js/rating-group": "0.28.0",
101
+ "@zag-js/select": "0.28.0",
102
+ "@zag-js/slider": "0.28.0",
103
+ "@zag-js/solid": "0.28.0",
104
+ "@zag-js/splitter": "0.28.0",
105
+ "@zag-js/switch": "0.28.0",
106
+ "@zag-js/tabs": "0.28.0",
107
+ "@zag-js/tags-input": "0.28.0",
108
+ "@zag-js/toast": "0.28.0",
109
+ "@zag-js/toggle-group": "0.28.0",
110
+ "@zag-js/tooltip": "0.28.0",
111
+ "@zag-js/types": "0.28.0",
112
+ "resize-observer-polyfill": "1.5.1"
113
113
  },
114
114
  "devDependencies": {
115
115
  "@release-it/keep-a-changelog": "4.0.0",
116
116
  "@solidjs/testing-library": "0.8.4",
117
- "@storybook/addon-essentials": "7.5.1",
118
- "@storybook/addon-interactions": "7.5.1",
119
- "@storybook/addon-links": "7.5.1",
120
- "@storybook/blocks": "7.5.1",
117
+ "@storybook/addon-essentials": "7.5.3",
118
+ "@storybook/addon-interactions": "7.5.3",
119
+ "@storybook/addon-links": "7.5.3",
120
+ "@storybook/blocks": "7.5.3",
121
121
  "@storybook/testing-library": "0.2.2",
122
122
  "@testing-library/dom": "9.3.3",
123
123
  "@testing-library/jest-dom": "6.1.4",
124
124
  "@testing-library/user-event": "14.5.1",
125
- "@types/jsdom": "21.1.4",
125
+ "@types/jsdom": "21.1.5",
126
126
  "@types/testing-library__jest-dom": "5.14.9",
127
- "@typescript-eslint/eslint-plugin": "6.8.0",
128
- "@typescript-eslint/parser": "6.8.0",
129
- "@vitest/coverage-v8": "0.34.3",
130
- "eslint": "8.51.0",
127
+ "@typescript-eslint/eslint-plugin": "6.10.0",
128
+ "@typescript-eslint/parser": "6.10.0",
129
+ "@vitest/coverage-v8": "0.34.6",
130
+ "eslint": "8.53.0",
131
131
  "globby": "13.2.2",
132
132
  "jsdom": "22.1.0",
133
133
  "react": "18.2.0",
134
134
  "react-dom": "18.2.0",
135
135
  "release-it": "16.2.1",
136
- "rollup": "4.1.4",
136
+ "rollup": "4.3.0",
137
137
  "rollup-preset-solid": "2.0.1",
138
- "solid-js": "1.8.1",
139
- "storybook": "7.5.1",
138
+ "solid-js": "1.8.5",
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",
143
- "vite": "4.4.11",
143
+ "vite": "4.5.0",
144
144
  "vite-plugin-solid": "2.7.2",
145
145
  "vitest": "0.34.2"
146
146
  },
@@ -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 contentProps = mergeProps(() => api().getItemContentProps(accordionItem), localProps);
11
- return (<Presence present={accordionItem.isOpen} {...presenceProps}>
12
- <ark.div {...contentProps}/>
13
- </Presence>);
10
+ const presenceApi = usePresenceContext();
11
+ const mergedProps = mergeProps(() => api().getItemContentProps(accordionItem), () => presenceApi().presenceProps, props);
12
+ return (<Show when={!presenceApi().isUnmounted}>
13
+ <ark.div {...mergedProps}/>
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,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 ColorPickerContent = (props) => {
5
7
  const api = useColorPickerContext();
6
- const mergedProps = mergeProps(() => api().contentProps, props);
7
- return <ark.div {...mergedProps}/>;
8
+ const presenceApi = usePresenceContext();
9
+ const mergedProps = mergeProps(() => api().contentProps, () => presenceApi().presenceProps, props);
10
+ return (<Show when={!presenceApi().isUnmounted}>
11
+ <ark.div {...mergedProps}/>
12
+ </Show>);
8
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,9 @@
1
+ import { colorPickerAnatomy } from '@ark-ui/anatomy';
2
+ import { mergeProps } from '@zag-js/solid';
3
+ import { ark } from '../factory';
4
+ import { useColorPickerContext } from './color-picker-context';
5
+ export const ColorPickerValueText = (props) => {
6
+ const api = useColorPickerContext();
7
+ const mergedProps = mergeProps(() => colorPickerAnatomy.build().valueText.attrs, props);
8
+ return <ark.span {...mergedProps}>{api().valueAsString || props.children}</ark.span>;
9
+ };
@@ -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
  };
@@ -19,6 +19,8 @@ import { ColorPickerSwatchGroup, } from './color-picker-swatch-group';
19
19
  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
+ import { ColorPickerValueText } from './color-picker-value-text';
23
+ import { ColorPickerView } from './color-picker-view';
22
24
  const ColorPicker = Object.assign(ColorPickerRoot, {
23
25
  Root: ColorPickerRoot,
24
26
  Area: ColorPickerArea,
@@ -38,5 +40,7 @@ const ColorPicker = Object.assign(ColorPickerRoot, {
38
40
  SwatchTrigger: ColorPickerSwatchTrigger,
39
41
  TransparencyGrid: ColorPickerTransparencyGrid,
40
42
  Trigger: ColorPickerTrigger,
43
+ ValueText: ColorPickerValueText,
44
+ View: ColorPickerView,
41
45
  });
42
- export { ColorPicker, ColorPickerArea, ColorPickerAreaBackground, ColorPickerAreaThumb, ColorPickerChannelInput, ColorPickerChannelSlider, ColorPickerChannelSliderThumb, ColorPickerChannelSliderTrack, ColorPickerContent, ColorPickerControl, ColorPickerEyeDropperTrigger, ColorPickerLabel, ColorPickerPositioner, ColorPickerSwatch, ColorPickerSwatchGroup, ColorPickerSwatchTrigger, ColorPickerTransparencyGrid, ColorPickerTrigger, useColorPickerAreaContext, useColorPickerChannelSliderContext, useColorPickerContext, };
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}>
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,8 +3,8 @@ import { createSplitProps } from '../create-split-props';
3
3
  import { ark } from '../factory';
4
4
  import { useComboboxContext } from './combobox-context';
5
5
  export const ComboboxItemGroupLabel = (props) => {
6
- const [labelProps, localProps] = createSplitProps()(props, ['htmlFor']);
6
+ const [labelProps, localProps] = createSplitProps()(props, ['for']);
7
7
  const api = useComboboxContext();
8
- const mergedProps = mergeProps(() => api().getItemGroupLabelProps(labelProps), localProps);
8
+ const mergedProps = mergeProps(() => api().getItemGroupLabelProps({ htmlFor: labelProps.for }), localProps);
9
9
  return <ark.div {...mergedProps}/>;
10
10
  };
@@ -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,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 DatePickerContent = (props) => {
5
7
  const api = useDatePickerContext();
6
- const mergedProps = mergeProps(() => api().contentProps, props);
7
- return <ark.div {...mergedProps}/>;
8
+ const presenceApi = usePresenceContext();
9
+ const mergedProps = mergeProps(() => api().contentProps, () => presenceApi().presenceProps, props);
10
+ return (<Show when={!presenceApi().isUnmounted}>
11
+ <ark.div {...mergedProps}/>
12
+ </Show>);
8
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,3 +1,5 @@
1
+ import { datePickerAnatomy } from '@ark-ui/anatomy';
2
+ import { mergeProps } from '@zag-js/solid';
1
3
  import { createSplitProps } from '../create-split-props';
2
4
  import { ark } from '../factory';
3
5
  import { runIfFn } from '../run-if-fn';
@@ -7,8 +9,9 @@ export const DatePickerView = (props) => {
7
9
  const [viewProps, localProps] = createSplitProps()(props, ['view']);
8
10
  const api = useDatePickerContext();
9
11
  const getChildren = () => runIfFn(localProps.children, api);
12
+ const mergedProps = mergeProps(() => datePickerAnatomy.build().view.attrs, localProps);
10
13
  return (<DatePickerViewProvider value={viewProps}>
11
- <ark.div {...localProps} hidden={api().view !== viewProps.view}>
14
+ <ark.div {...mergedProps} hidden={api().view !== viewProps.view}>
12
15
  {getChildren()}
13
16
  </ark.div>
14
17
  </DatePickerViewProvider>);
@@ -1,11 +1,14 @@
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, [
11
+ 'closeOnSelect',
9
12
  'dir',
10
13
  'disabled',
11
14
  'fixedWeeks',
@@ -14,7 +17,6 @@ export const DatePicker = (props) => {
14
17
  'getRootNode',
15
18
  'id',
16
19
  'ids',
17
- 'inline',
18
20
  'isDateUnavailable',
19
21
  'isDateUnavailable',
20
22
  'locale',
@@ -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,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 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}>
8
+ const presenceApi = usePresenceContext();
9
+ const mergedProps = mergeProps(() => api().backdropProps, 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 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}>
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
  };