@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
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { usePopoverContext } from './popover-context';
4
4
  export const PopoverTitle = (props) => {
5
5
  const api = usePopoverContext();
6
- const titleProps = mergeProps(() => api().titleProps, props);
7
- return <ark.div {...titleProps}/>;
6
+ const mergedProps = mergeProps(() => api().titleProps, props);
7
+ return <ark.div {...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 { usePopoverContext } from './popover-context';
4
5
  export const PopoverTrigger = (props) => {
5
6
  const api = usePopoverContext();
6
- const triggerProps = mergeProps(() => api().triggerProps, props);
7
- return <ark.button {...triggerProps}/>;
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
  };
@@ -1,8 +1,12 @@
1
+ import { mergeProps } from '@zag-js/solid';
1
2
  import { createSplitProps } from '../create-split-props';
3
+ import { PresenceProvider, splitPresenceProps, usePresence, } from '../presence';
4
+ import { runIfFn } from '../run-if-fn';
2
5
  import { PopoverProvider } from './popover-context';
3
6
  import { usePopover } from './use-popover';
4
7
  export const Popover = (props) => {
5
- const [usePopoverProps, restProps] = createSplitProps()(props, [
8
+ const [presenceProps, popoverProps] = splitPresenceProps(props);
9
+ const [usePopoverProps, localProps] = createSplitProps()(popoverProps, [
6
10
  'autoFocus',
7
11
  'closeOnEsc',
8
12
  'closeOnInteractOutside',
@@ -22,5 +26,9 @@ export const Popover = (props) => {
22
26
  'positioning',
23
27
  ]);
24
28
  const api = usePopover(usePopoverProps);
25
- return <PopoverProvider value={api}>{restProps.children}</PopoverProvider>;
29
+ const apiPresence = usePresence(mergeProps(presenceProps, () => ({ present: api().isOpen })));
30
+ const getChildren = () => runIfFn(localProps.children, api);
31
+ return (<PopoverProvider value={api}>
32
+ <PresenceProvider value={apiPresence}>{getChildren()}</PresenceProvider>
33
+ </PopoverProvider>);
26
34
  };
@@ -1,6 +1,9 @@
1
1
  import { Presence as PresenceRoot } from './presence';
2
+ import { PresenceProvider, usePresenceContext } from './presence-context';
3
+ import { PresencePropsProvider, usePresencePropsContext, } from './presence-props-context';
2
4
  import { splitPresenceProps } from './split-presence-props';
5
+ import { usePresence } from './use-presence';
3
6
  const Presence = Object.assign(PresenceRoot, {
4
7
  Root: PresenceRoot,
5
8
  });
6
- export { Presence, splitPresenceProps };
9
+ export { Presence, PresencePropsProvider, PresenceProvider, splitPresenceProps, usePresence, usePresenceContext, usePresencePropsContext, };
@@ -0,0 +1,5 @@
1
+ import { createContext } from '../create-context';
2
+ export const [PresenceProvider, usePresenceContext] = createContext({
3
+ hookName: 'usePresenceContext',
4
+ providerName: '<PresenceProvider />',
5
+ });
@@ -0,0 +1,5 @@
1
+ import { createContext } from '../create-context';
2
+ export const [PresencePropsProvider, usePresencePropsContext] = createContext({
3
+ hookName: 'usePresencePropsContext',
4
+ providerName: '<PresencePropsProvider />',
5
+ });
@@ -1,32 +1,13 @@
1
- import { children, createEffect, createSignal } from 'solid-js';
2
- import { spread } from 'solid-js/web';
3
- import { createSplitProps } from '../create-split-props';
1
+ import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
3
+ import { ark } from '../factory';
4
+ import { splitPresenceProps } from './split-presence-props';
4
5
  import { usePresence } from './use-presence';
5
6
  export const Presence = (props) => {
6
- const [presenceProps, localProps] = createSplitProps()(props, [
7
- 'onExitComplete',
8
- 'present',
9
- ]);
7
+ const [presenceProps, localProps] = splitPresenceProps(props);
10
8
  const api = usePresence(presenceProps);
11
- const [wasEverPresent, setWasEverPresent] = createSignal(false);
12
- const getChildren = children(() => props.children);
13
- createEffect(() => {
14
- const isPresent = api().isPresent;
15
- if (isPresent)
16
- setWasEverPresent(true);
17
- const children = getChildren();
18
- if (children instanceof HTMLElement) {
19
- api().setNode(children);
20
- spread(children, {
21
- ['data-state']: presenceProps.present ? 'open' : 'closed',
22
- hidden: !api().isPresent,
23
- });
24
- }
25
- });
26
- return (<>
27
- {(!api().isPresent && !wasEverPresent() && localProps.lazyMount) ||
28
- (localProps.unmountOnExit && !api().isPresent && wasEverPresent())
29
- ? localProps.fallback
30
- : getChildren()}
31
- </>);
9
+ const mergedProps = mergeProps(() => api().presenceProps, localProps);
10
+ return (<Show when={!api().isUnmounted}>
11
+ <ark.div {...mergedProps} data-scope="presence" data-part="root"/>
12
+ </Show>);
32
13
  };
@@ -1,7 +1,6 @@
1
1
  import { createSplitProps } from '../create-split-props';
2
2
  export function splitPresenceProps(props) {
3
3
  return createSplitProps()(props, [
4
- 'fallback',
5
4
  'lazyMount',
6
5
  'onExitComplete',
7
6
  'present',
@@ -1,9 +1,26 @@
1
1
  import * as presence from '@zag-js/presence';
2
2
  import { normalizeProps, useMachine } from '@zag-js/solid';
3
- import { createMemo } from 'solid-js';
3
+ import { createEffect, createMemo, createSignal, splitProps } from 'solid-js';
4
4
  export const usePresence = (props) => {
5
- const [state, send] = useMachine(presence.machine(props), {
6
- context: props,
5
+ const [localProps, machineProps] = splitProps(props, ['lazyMount', 'unmountOnExit']);
6
+ const [wasEverPresent, setWasEverPresent] = createSignal(false);
7
+ const [state, send] = useMachine(presence.machine(machineProps), {
8
+ context: machineProps,
7
9
  });
8
- return createMemo(() => presence.connect(state, send, normalizeProps));
10
+ const api = createMemo(() => presence.connect(state, send, normalizeProps));
11
+ createEffect(() => {
12
+ const isPresent = api().isPresent;
13
+ if (isPresent)
14
+ setWasEverPresent(true);
15
+ });
16
+ return createMemo(() => ({
17
+ isUnmounted: (!api().isPresent && !wasEverPresent() && localProps.lazyMount) ||
18
+ (localProps.unmountOnExit && !api().isPresent && wasEverPresent()),
19
+ isPresent: api().isPresent,
20
+ presenceProps: {
21
+ ref: api().setNode,
22
+ hidden: !api().isPresent,
23
+ 'data-state': machineProps.present ? 'open' : 'closed',
24
+ },
25
+ }));
9
26
  };
@@ -1,15 +1,16 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { createMemo } from 'solid-js';
2
3
  import { createSplitProps } from '../create-split-props';
3
4
  import { ark } from '../factory';
4
5
  import { runIfFn } from '../run-if-fn';
5
6
  import { useRatingGroupContext } from './rating-group-context';
6
7
  import { RatingGroupItemProvider } from './rating-group-item-context';
7
8
  export const RatingGroupItem = (props) => {
8
- const [ratingParams, restProps] = createSplitProps()(props, ['index']);
9
+ const [itemProps, localProps] = createSplitProps()(props, ['index']);
9
10
  const api = useRatingGroupContext();
10
- const itemState = api().getItemState(ratingParams);
11
- const mergedProps = mergeProps(() => api().getItemProps(ratingParams), restProps);
12
- const getChildren = () => runIfFn(restProps.children, itemState);
11
+ const itemState = createMemo(() => api().getItemState(itemProps));
12
+ const getChildren = () => runIfFn(localProps.children, itemState);
13
+ const mergedProps = mergeProps(() => api().getItemProps(itemProps), localProps);
13
14
  return (<RatingGroupItemProvider value={itemState}>
14
15
  <ark.span {...mergedProps}>{getChildren()}</ark.span>
15
16
  </RatingGroupItemProvider>);
@@ -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 { useSelectContext } from './select-context';
5
6
  export const SelectContent = (props) => {
6
- const [presenceProps, localProps] = splitPresenceProps(props);
7
7
  const api = useSelectContext();
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 { useSelectContext } from './select-context';
4
6
  export const SelectPositioner = (props) => {
5
7
  const api = useSelectContext();
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 { SelectProvider } from './select-context';
6
7
  import { useSelect } from './use-select';
7
8
  export const Select = (props) => {
8
- const [selectProps, localProps] = createSplitProps()(props, [
9
+ const [presenceProps, selectProps] = splitPresenceProps(props);
10
+ const [useSelectProps, localProps] = createSplitProps()(selectProps, [
9
11
  'closeOnSelect',
10
12
  'dir',
11
13
  'disabled',
@@ -34,10 +36,13 @@ export const Select = (props) => {
34
36
  'selectOnBlur',
35
37
  'value',
36
38
  ]);
37
- const api = useSelect(selectProps);
39
+ const api = useSelect(useSelectProps);
40
+ const apiPresence = usePresence(mergeProps(presenceProps, () => ({ present: api().isOpen })));
38
41
  const mergedProps = mergeProps(() => api().rootProps, localProps);
39
42
  const getChildren = () => runIfFn(localProps.children, api);
40
43
  return (<SelectProvider value={api}>
41
- <ark.div {...mergedProps}>{getChildren()}</ark.div>
44
+ <PresenceProvider value={apiPresence}>
45
+ <ark.div {...mergedProps}>{getChildren()}</ark.div>
46
+ </PresenceProvider>
42
47
  </SelectProvider>);
43
48
  };
@@ -5,6 +5,6 @@ import { useSliderContext } from './slider-context';
5
5
  export const SliderThumb = (props) => {
6
6
  const [thumbProps, localProps] = createSplitProps()(props, ['index']);
7
7
  const api = useSliderContext();
8
- const mergePdrops = mergeProps(() => api().getThumbProps(thumbProps), localProps);
9
- return <ark.div {...mergePdrops}/>;
8
+ const mergedProps = mergeProps(() => api().getThumbProps(thumbProps), localProps);
9
+ return <ark.div {...mergedProps}/>;
10
10
  };
@@ -1,10 +1,10 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { children } from 'solid-js';
2
3
  import { ark } from '../factory';
3
- import { runIfFn } from '../run-if-fn';
4
4
  import { useSliderContext } from './slider-context';
5
5
  export const SliderValueText = (props) => {
6
6
  const api = useSliderContext();
7
- const getChildren = () => runIfFn(props.children, api);
8
7
  const mergedProps = mergeProps(() => api().valueTextProps, props);
9
- return <ark.div {...mergedProps}>{getChildren()}</ark.div>;
8
+ const getChildren = children(() => props.children);
9
+ return <ark.div {...mergedProps}>{getChildren() || api().value.join(',')}</ark.div>;
10
10
  };
@@ -5,6 +5,6 @@ import { useSplitterContext } from './splitter-context';
5
5
  export const SplitterPanel = (props) => {
6
6
  const [panelParams, restProps] = createSplitProps()(props, ['id', 'snapSize']);
7
7
  const api = useSplitterContext();
8
- const panelProps = mergeProps(() => api().getPanelProps(panelParams), restProps);
9
- return <ark.div {...panelProps}/>;
8
+ const mergedProps = mergeProps(() => api().getPanelProps(panelParams), restProps);
9
+ return <ark.div {...mergedProps}/>;
10
10
  };
@@ -9,6 +9,6 @@ export const SplitterResizeTrigger = (props) => {
9
9
  'id',
10
10
  'step',
11
11
  ]);
12
- const triggerProps = mergeProps(() => api().getResizeTriggerProps(triggerParams), restProps);
13
- return <ark.button {...triggerProps}/>;
12
+ const mergedProps = mergeProps(() => api().getResizeTriggerProps(triggerParams), restProps);
13
+ return <ark.button {...mergedProps}/>;
14
14
  };
@@ -18,8 +18,8 @@ export const Splitter = (props) => {
18
18
  ]);
19
19
  const api = useSplitter(splitterParams);
20
20
  const getChildren = () => runIfFn(localProps.children, api);
21
- const rootProps = mergeProps(() => api().rootProps, localProps);
21
+ const mergedProps = mergeProps(() => api().rootProps, localProps);
22
22
  return (<SplitterProvider value={api}>
23
- <ark.div {...rootProps}>{getChildren()}</ark.div>
23
+ <ark.div {...mergedProps}>{getChildren()}</ark.div>
24
24
  </SplitterProvider>);
25
25
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useSwitchContext } from './switch-context';
4
4
  export const SwitchLabel = (props) => {
5
5
  const checkbox = useSwitchContext();
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
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useSwitchContext } from './switch-context';
4
4
  export const SwitchThumb = (props) => {
5
5
  const checkbox = useSwitchContext();
6
- const thumbProps = mergeProps(() => checkbox().thumbProps, props);
7
- return <ark.span {...thumbProps}/>;
6
+ const mergedProps = mergeProps(() => checkbox().thumbProps, props);
7
+ return <ark.span {...mergedProps}/>;
8
8
  };
@@ -1,15 +1,18 @@
1
1
  import { mergeProps } from '@zag-js/solid';
2
+ import { Show } from 'solid-js';
2
3
  import { createSplitProps } from '../create-split-props';
3
4
  import { ark } from '../factory';
4
- import { splitPresenceProps } from '../presence';
5
- import { TabPresence } from './tab-presence';
5
+ import { PresenceProvider, usePresence, usePresencePropsContext } from '../presence';
6
6
  import { useTabsContext } from './tabs-context';
7
7
  export const TabContent = (props) => {
8
- const [presenceProps, localProps] = splitPresenceProps(props);
9
- const [getContentProps, restProps] = createSplitProps()(localProps, ['value']);
8
+ const [contentProps, localProps] = createSplitProps()(props, ['value']);
10
9
  const api = useTabsContext();
11
- const contentProps = mergeProps(() => api().getContentProps(getContentProps), restProps);
12
- return (<TabPresence {...presenceProps} {...getContentProps}>
13
- <ark.div {...contentProps}/>
14
- </TabPresence>);
10
+ const presenceProps = usePresencePropsContext();
11
+ const presenceApi = usePresence(mergeProps(presenceProps, () => ({ present: api().value === contentProps.value })));
12
+ const mergedProps = mergeProps(() => api().getContentProps(contentProps), () => presenceApi().presenceProps, localProps);
13
+ return (<PresenceProvider value={presenceApi}>
14
+ <Show when={!presenceApi().isUnmounted}>
15
+ <ark.div {...mergedProps}/>
16
+ </Show>
17
+ </PresenceProvider>);
15
18
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useTabsContext } from './tabs-context';
4
4
  export const TabIndicator = (props) => {
5
5
  const api = useTabsContext();
6
- const indicatorProps = mergeProps(() => api().indicatorProps, props);
7
- return <ark.div {...indicatorProps}/>;
6
+ const mergedProps = mergeProps(() => api().indicatorProps, props);
7
+ return <ark.div {...mergedProps}/>;
8
8
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useTabsContext } from './tabs-context';
4
4
  export const TabList = (props) => {
5
5
  const api = useTabsContext();
6
- const tablistProps = mergeProps(() => api().tablistProps, props);
7
- return <ark.div {...tablistProps}/>;
6
+ const mergedProps = mergeProps(() => api().tablistProps, props);
7
+ return <ark.div {...mergedProps}/>;
8
8
  };
@@ -5,6 +5,6 @@ import { useTabsContext } from './tabs-context';
5
5
  export const TabTrigger = (props) => {
6
6
  const [tabParams, restProps] = createSplitProps()(props, ['disabled', 'value']);
7
7
  const api = useTabsContext();
8
- const triggerProps = mergeProps(() => api().getTriggerProps(tabParams), restProps);
9
- return <ark.button {...triggerProps}/>;
8
+ const mergedProps = mergeProps(() => api().getTriggerProps(tabParams), restProps);
9
+ return <ark.button {...mergedProps}/>;
10
10
  };
@@ -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 { TabsProvider } from './tabs-context';
5
6
  import { useTabs } from './use-tabs';
6
7
  export const Tabs = (props) => {
7
- const [tabsParams, restProps] = createSplitProps()(props, [
8
+ const [presenceProps, tabsProps] = splitPresenceProps(props);
9
+ const [tabsParams, restProps] = createSplitProps()(tabsProps, [
8
10
  'activationMode',
9
11
  'dir',
10
12
  'getRootNode',
@@ -18,8 +20,10 @@ export const Tabs = (props) => {
18
20
  'value',
19
21
  ]);
20
22
  const api = useTabs(tabsParams);
21
- const rootProps = mergeProps(() => api().rootProps, restProps);
23
+ const mergedProps = mergeProps(() => api().rootProps, restProps);
22
24
  return (<TabsProvider value={api}>
23
- <ark.div {...rootProps}/>
25
+ <PresencePropsProvider value={presenceProps}>
26
+ <ark.div {...mergedProps}/>
27
+ </PresencePropsProvider>
24
28
  </TabsProvider>);
25
29
  };
@@ -18,8 +18,8 @@ export const ToggleGroup = (props) => {
18
18
  'value',
19
19
  ]);
20
20
  const api = useToggleGroup(groupParams);
21
- const rootProps = mergeProps(() => api().rootProps, restProps);
21
+ const mergedProps = mergeProps(() => api().rootProps, restProps);
22
22
  return (<ToggleGroupProvider value={api}>
23
- <ark.div {...rootProps}/>
23
+ <ark.div {...mergedProps}/>
24
24
  </ToggleGroupProvider>);
25
25
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useTooltipContext } from './tooltip-context';
4
4
  export const TooltipArrowTip = (props) => {
5
5
  const api = useTooltipContext();
6
- const arrowTipProps = mergeProps(() => api().arrowTipProps, props);
7
- return <ark.div {...arrowTipProps}/>;
6
+ const mergedProps = mergeProps(() => api().arrowTipProps, props);
7
+ return <ark.div {...mergedProps}/>;
8
8
  };
@@ -3,6 +3,6 @@ import { ark } from '../factory';
3
3
  import { useTooltipContext } from './tooltip-context';
4
4
  export const TooltipArrow = (props) => {
5
5
  const tooltip = useTooltipContext();
6
- const arrowProps = mergeProps(() => tooltip().arrowProps, props);
7
- return <ark.div {...arrowProps}/>;
6
+ const mergedProps = mergeProps(() => tooltip().arrowProps, props);
7
+ return <ark.div {...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 { useTooltipContext } from './tooltip-context';
5
6
  export const TooltipContent = (props) => {
6
- const [presenceProps, localProps] = splitPresenceProps(props);
7
7
  const api = useTooltipContext();
8
- const contentProps = mergeProps(() => api().contentProps, localProps);
9
- return (<Presence present={api().isOpen} {...presenceProps} fallback={<div {...api().contentProps}/>}>
10
- <ark.div {...contentProps}/>
11
- </Presence>);
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>);
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 { useTooltipContext } from './tooltip-context';
4
6
  export const TooltipPositioner = (props) => {
5
7
  const api = useTooltipContext();
6
- const positionerProps = mergeProps(() => api().positionerProps, props);
7
- return <ark.div {...positionerProps}/>;
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 { useTooltipContext } from './tooltip-context';
4
4
  export const TooltipTrigger = (props) => {
5
5
  const api = useTooltipContext();
6
- const triggerProps = mergeProps(() => api().triggerProps, props);
7
- return <ark.button {...triggerProps}/>;
6
+ const mergedProps = mergeProps(() => api().triggerProps, props);
7
+ return <ark.button {...mergedProps}/>;
8
8
  };
@@ -1,8 +1,12 @@
1
+ import { mergeProps } from '@zag-js/solid';
1
2
  import { createSplitProps } from '../create-split-props';
3
+ import { PresenceProvider, splitPresenceProps, usePresence, } from '../presence';
4
+ import { runIfFn } from '../run-if-fn';
2
5
  import { TooltipProvider } from './tooltip-context';
3
6
  import { useTooltip } from './use-tooltip';
4
7
  export const Tooltip = (props) => {
5
- const [useTooltipProps, restProps] = createSplitProps()(props, [
8
+ const [presenceProps, tooltipProps] = splitPresenceProps(props);
9
+ const [useTooltipProps, localProps] = createSplitProps()(tooltipProps, [
6
10
  'aria-label',
7
11
  'closeDelay',
8
12
  'closeOnEsc',
@@ -19,5 +23,9 @@ export const Tooltip = (props) => {
19
23
  'positioning',
20
24
  ]);
21
25
  const api = useTooltip(useTooltipProps);
22
- return <TooltipProvider value={api} {...restProps}/>;
26
+ const apiPresence = usePresence(mergeProps(presenceProps, () => ({ present: api().isOpen })));
27
+ const getChildren = () => runIfFn(localProps.children, api);
28
+ return (<TooltipProvider value={api}>
29
+ <PresenceProvider value={apiPresence}>{getChildren()}</PresenceProvider>
30
+ </TooltipProvider>);
23
31
  };
@@ -1,3 +1,4 @@
1
1
  import { type UseAccordionReturn } from './use-accordion';
2
- export type AccordionContext = UseAccordionReturn;
3
- export declare const AccordionProvider: import("solid-js").ContextProviderComponent<UseAccordionReturn>, useAccordionContext: () => UseAccordionReturn;
2
+ export interface AccordionContext extends UseAccordionReturn {
3
+ }
4
+ export declare const AccordionProvider: import("solid-js").ContextProviderComponent<AccordionContext>, useAccordionContext: () => AccordionContext;
@@ -1,6 +1,4 @@
1
1
  import { type HTMLArkProps } from '../factory';
2
- import { type PresenceProps } from '../presence';
3
- import type { Assign } from '../types';
4
- export interface AccordionItemContentProps extends Assign<HTMLArkProps<'div'>, Omit<PresenceProps, 'fallback'>> {
2
+ export interface AccordionItemContentProps extends HTMLArkProps<'div'> {
5
3
  }
6
4
  export declare const AccordionItemContent: (props: AccordionItemContentProps) => import("solid-js").JSX.Element;
@@ -1,3 +1,4 @@
1
- import type { ItemProps, ItemState } from '@zag-js/accordion';
2
- export type AccordionItemContext = ItemProps & ItemState;
1
+ import type { ItemProps } from '@zag-js/accordion';
2
+ export interface AccordionItemContext extends ItemProps {
3
+ }
3
4
  export declare const AccordionItemProvider: import("solid-js").ContextProviderComponent<AccordionItemContext>, useAccordionItemContext: () => AccordionItemContext;
@@ -1,3 +1,4 @@
1
1
  import { type HTMLArkProps } from '../factory';
2
- export type AccordionItemIndicatorProps = HTMLArkProps<'div'>;
2
+ export interface AccordionItemIndicatorProps extends HTMLArkProps<'div'> {
3
+ }
3
4
  export declare const AccordionItemIndicator: (props: AccordionItemIndicatorProps) => import("solid-js").JSX.Element;
@@ -1,3 +1,4 @@
1
1
  import { type HTMLArkProps } from '../factory';
2
- export type AccordionItemTriggerProps = HTMLArkProps<'button'>;
2
+ export interface AccordionItemTriggerProps extends HTMLArkProps<'button'> {
3
+ }
3
4
  export declare const AccordionItemTrigger: (props: AccordionItemTriggerProps) => import("solid-js").JSX.Element;
@@ -1,8 +1,9 @@
1
1
  import { type ItemProps, type ItemState } from '@zag-js/accordion';
2
- import { type JSX } from 'solid-js';
2
+ import { type Accessor, type JSX } from 'solid-js';
3
3
  import { type HTMLArkProps } from '../factory';
4
4
  import type { Assign } from '../types';
5
- export type AccordionItemProps = Assign<HTMLArkProps<'div'>, ItemProps & {
6
- children?: JSX.Element | ((state: () => ItemState) => JSX.Element);
7
- }>;
5
+ export interface AccordionItemProps extends Assign<HTMLArkProps<'div'>, {
6
+ children?: JSX.Element | ((state: Accessor<ItemState>) => JSX.Element);
7
+ }>, ItemProps {
8
+ }
8
9
  export declare const AccordionItem: (props: AccordionItemProps) => JSX.Element;
@@ -1,5 +1,7 @@
1
1
  import { type HTMLArkProps } from '../factory';
2
+ import { type UsePresenceProps } from '../presence';
2
3
  import type { Assign } from '../types';
3
4
  import { type UseAccordionProps } from './use-accordion';
4
- export type AccordionProps = Assign<HTMLArkProps<'div'>, UseAccordionProps>;
5
+ export interface AccordionProps extends Assign<HTMLArkProps<'div'>, UseAccordionProps>, UsePresenceProps {
6
+ }
5
7
  export declare const Accordion: (props: AccordionProps) => import("solid-js").JSX.Element;
@@ -2,6 +2,8 @@ import * as accordion from '@zag-js/accordion';
2
2
  import { type PropTypes } from '@zag-js/solid';
3
3
  import { type Accessor } from 'solid-js';
4
4
  import { type Optional } from '../types';
5
- export type UseAccordionProps = Optional<accordion.Context, 'id'>;
6
- export type UseAccordionReturn = Accessor<accordion.Api<PropTypes>>;
5
+ export interface UseAccordionProps extends Optional<accordion.Context, 'id'> {
6
+ }
7
+ export interface UseAccordionReturn extends Accessor<accordion.Api<PropTypes>> {
8
+ }
7
9
  export declare const useAccordion: (props: UseAccordionProps) => UseAccordionReturn;
@@ -1,3 +1,4 @@
1
1
  import { type UseAvatarReturn } from './use-avatar';
2
- export type AvatarContext = UseAvatarReturn;
3
- export declare const AvatarProvider: import("solid-js").ContextProviderComponent<UseAvatarReturn>, useAvatarContext: () => UseAvatarReturn;
2
+ export interface AvatarContext extends UseAvatarReturn {
3
+ }
4
+ export declare const AvatarProvider: import("solid-js").ContextProviderComponent<AvatarContext>, useAvatarContext: () => AvatarContext;
@@ -1,3 +1,4 @@
1
1
  import { type HTMLArkProps } from '../factory';
2
- export type AvatarFallbackProps = HTMLArkProps<'span'>;
2
+ export interface AvatarFallbackProps extends HTMLArkProps<'span'> {
3
+ }
3
4
  export declare const AvatarFallback: (props: AvatarFallbackProps) => import("solid-js").JSX.Element;