@ark-ui/solid 0.2.0 → 0.3.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 (419) hide show
  1. package/README.md +100 -0
  2. package/dist/accordion/accordion-content.cjs +5 -5
  3. package/dist/accordion/accordion-content.mjs +6 -6
  4. package/dist/accordion/accordion-context.cjs +2 -2
  5. package/dist/accordion/accordion-context.mjs +2 -2
  6. package/dist/accordion/accordion-item.cjs +10 -6
  7. package/dist/accordion/accordion-item.d.ts +1 -1
  8. package/dist/accordion/accordion-item.mjs +12 -8
  9. package/dist/accordion/accordion-trigger.cjs +7 -14
  10. package/dist/accordion/accordion-trigger.d.ts +4 -6
  11. package/dist/accordion/accordion-trigger.mjs +7 -14
  12. package/dist/accordion/accordion.cjs +6 -4
  13. package/dist/accordion/accordion.d.ts +1 -1
  14. package/dist/accordion/accordion.mjs +7 -5
  15. package/dist/carousel/carousel-context.cjs +13 -0
  16. package/dist/carousel/carousel-context.d.ts +62 -0
  17. package/dist/carousel/carousel-context.mjs +8 -0
  18. package/dist/carousel/carousel-control.cjs +10 -0
  19. package/dist/carousel/carousel-control.d.ts +4 -0
  20. package/dist/carousel/carousel-control.mjs +6 -0
  21. package/dist/carousel/carousel-next-slide-trigger.cjs +16 -0
  22. package/dist/carousel/carousel-next-slide-trigger.d.ts +4 -0
  23. package/dist/carousel/carousel-next-slide-trigger.mjs +12 -0
  24. package/dist/carousel/carousel-prev-slide-trigger.cjs +16 -0
  25. package/dist/carousel/carousel-prev-slide-trigger.d.ts +4 -0
  26. package/dist/carousel/carousel-prev-slide-trigger.mjs +12 -0
  27. package/dist/carousel/carousel-slide-group.cjs +16 -0
  28. package/dist/carousel/carousel-slide-group.d.ts +4 -0
  29. package/dist/carousel/carousel-slide-group.mjs +12 -0
  30. package/dist/carousel/carousel-slide.cjs +18 -0
  31. package/dist/carousel/carousel-slide.d.ts +6 -0
  32. package/dist/carousel/carousel-slide.mjs +14 -0
  33. package/dist/carousel/carousel-viewport.cjs +16 -0
  34. package/dist/carousel/carousel-viewport.d.ts +4 -0
  35. package/dist/carousel/carousel-viewport.mjs +12 -0
  36. package/dist/carousel/carousel.anatomy.cjs +10 -0
  37. package/dist/carousel/carousel.anatomy.d.ts +3 -0
  38. package/dist/carousel/carousel.anatomy.mjs +6 -0
  39. package/dist/carousel/carousel.cjs +24 -0
  40. package/dist/carousel/carousel.d.ts +6 -0
  41. package/dist/carousel/carousel.mjs +20 -0
  42. package/dist/carousel/index.d.ts +8 -0
  43. package/dist/carousel/use-carousel.cjs +36 -0
  44. package/dist/carousel/use-carousel.d.ts +35 -0
  45. package/dist/carousel/use-carousel.mjs +13 -0
  46. package/dist/checkbox/checkbox-context.cjs +2 -2
  47. package/dist/checkbox/checkbox-context.mjs +2 -2
  48. package/dist/checkbox/checkbox-control.cjs +3 -1
  49. package/dist/checkbox/checkbox-control.mjs +4 -2
  50. package/dist/checkbox/checkbox-input.cjs +3 -1
  51. package/dist/checkbox/checkbox-input.mjs +4 -2
  52. package/dist/checkbox/checkbox-label.cjs +3 -1
  53. package/dist/checkbox/checkbox-label.mjs +4 -2
  54. package/dist/checkbox/checkbox.cjs +10 -13
  55. package/dist/checkbox/checkbox.d.ts +3 -5
  56. package/dist/checkbox/checkbox.mjs +12 -15
  57. package/dist/combobox/combobox-content.cjs +3 -1
  58. package/dist/combobox/combobox-content.mjs +4 -2
  59. package/dist/combobox/combobox-control.cjs +3 -1
  60. package/dist/combobox/combobox-control.mjs +4 -2
  61. package/dist/combobox/combobox-input.cjs +3 -1
  62. package/dist/combobox/combobox-input.mjs +4 -2
  63. package/dist/combobox/combobox-label.cjs +3 -1
  64. package/dist/combobox/combobox-label.mjs +4 -2
  65. package/dist/combobox/combobox-option.cjs +5 -6
  66. package/dist/combobox/combobox-option.d.ts +1 -1
  67. package/dist/combobox/combobox-option.mjs +8 -9
  68. package/dist/combobox/combobox-positioner.cjs +3 -1
  69. package/dist/combobox/combobox-positioner.mjs +4 -2
  70. package/dist/combobox/combobox-trigger.cjs +4 -11
  71. package/dist/combobox/combobox-trigger.d.ts +4 -6
  72. package/dist/combobox/combobox-trigger.mjs +5 -12
  73. package/dist/combobox/combobox.cjs +9 -12
  74. package/dist/combobox/combobox.d.ts +3 -5
  75. package/dist/combobox/combobox.mjs +11 -14
  76. package/dist/create-split-props.d.ts +3 -1
  77. package/dist/dialog/dialog-backdrop.cjs +3 -1
  78. package/dist/dialog/dialog-backdrop.mjs +4 -2
  79. package/dist/dialog/dialog-close-trigger.cjs +4 -11
  80. package/dist/dialog/dialog-close-trigger.d.ts +4 -6
  81. package/dist/dialog/dialog-close-trigger.mjs +5 -12
  82. package/dist/dialog/dialog-container.cjs +3 -1
  83. package/dist/dialog/dialog-container.mjs +4 -2
  84. package/dist/dialog/dialog-content.cjs +3 -1
  85. package/dist/dialog/dialog-content.mjs +4 -2
  86. package/dist/dialog/dialog-description.cjs +3 -1
  87. package/dist/dialog/dialog-description.mjs +4 -2
  88. package/dist/dialog/dialog-title.cjs +3 -1
  89. package/dist/dialog/dialog-title.mjs +4 -2
  90. package/dist/dialog/dialog-trigger.cjs +4 -11
  91. package/dist/dialog/dialog-trigger.d.ts +4 -6
  92. package/dist/dialog/dialog-trigger.mjs +5 -12
  93. package/dist/dialog/dialog.cjs +5 -6
  94. package/dist/dialog/dialog.d.ts +1 -1
  95. package/dist/dialog/dialog.mjs +5 -6
  96. package/dist/editable/editable-area.cjs +3 -1
  97. package/dist/editable/editable-area.mjs +4 -2
  98. package/dist/editable/editable-cancel-trigger.cjs +5 -12
  99. package/dist/editable/editable-cancel-trigger.d.ts +4 -6
  100. package/dist/editable/editable-cancel-trigger.mjs +6 -13
  101. package/dist/editable/editable-control.cjs +3 -1
  102. package/dist/editable/editable-control.mjs +4 -2
  103. package/dist/editable/editable-edit-trigger.cjs +5 -12
  104. package/dist/editable/editable-edit-trigger.d.ts +4 -6
  105. package/dist/editable/editable-edit-trigger.mjs +6 -13
  106. package/dist/editable/editable-input.cjs +3 -1
  107. package/dist/editable/editable-input.mjs +4 -2
  108. package/dist/editable/editable-label.cjs +3 -1
  109. package/dist/editable/editable-label.mjs +4 -2
  110. package/dist/editable/editable-preview.cjs +3 -1
  111. package/dist/editable/editable-preview.mjs +4 -2
  112. package/dist/editable/editable-submit-trigger.cjs +4 -11
  113. package/dist/editable/editable-submit-trigger.d.ts +4 -6
  114. package/dist/editable/editable-submit-trigger.mjs +5 -12
  115. package/dist/editable/editable.cjs +10 -11
  116. package/dist/editable/editable.d.ts +4 -6
  117. package/dist/editable/editable.mjs +13 -14
  118. package/dist/factory.cjs +43 -9
  119. package/dist/factory.d.ts +14 -12
  120. package/dist/factory.mjs +43 -10
  121. package/dist/filter-props.cjs +28 -0
  122. package/dist/filter-props.d.ts +2 -0
  123. package/dist/filter-props.mjs +23 -0
  124. package/dist/hover-card/hover-card-arrow-tip.cjs +3 -1
  125. package/dist/hover-card/hover-card-arrow-tip.mjs +4 -2
  126. package/dist/hover-card/hover-card-arrow.cjs +3 -1
  127. package/dist/hover-card/hover-card-arrow.mjs +4 -2
  128. package/dist/hover-card/hover-card-content.cjs +3 -1
  129. package/dist/hover-card/hover-card-content.mjs +4 -2
  130. package/dist/hover-card/hover-card-positioner.cjs +3 -1
  131. package/dist/hover-card/hover-card-positioner.mjs +4 -2
  132. package/dist/hover-card/hover-card-trigger.cjs +4 -11
  133. package/dist/hover-card/hover-card-trigger.d.ts +4 -6
  134. package/dist/hover-card/hover-card-trigger.mjs +5 -12
  135. package/dist/index.cjs +18 -0
  136. package/dist/index.d.ts +1 -0
  137. package/dist/index.mjs +9 -0
  138. package/dist/menu/menu-arrow-tip.cjs +3 -1
  139. package/dist/menu/menu-arrow-tip.mjs +4 -2
  140. package/dist/menu/menu-arrow.cjs +3 -1
  141. package/dist/menu/menu-arrow.mjs +4 -2
  142. package/dist/menu/menu-content.cjs +3 -1
  143. package/dist/menu/menu-content.mjs +4 -2
  144. package/dist/menu/menu-context-trigger.cjs +4 -9
  145. package/dist/menu/menu-context-trigger.d.ts +4 -6
  146. package/dist/menu/menu-context-trigger.mjs +5 -10
  147. package/dist/menu/menu-item-group-label.cjs +4 -2
  148. package/dist/menu/menu-item-group-label.d.ts +1 -1
  149. package/dist/menu/menu-item-group-label.mjs +5 -3
  150. package/dist/menu/menu-item-group.cjs +4 -2
  151. package/dist/menu/menu-item-group.d.ts +1 -1
  152. package/dist/menu/menu-item-group.mjs +5 -3
  153. package/dist/menu/menu-item.cjs +4 -2
  154. package/dist/menu/menu-item.d.ts +1 -1
  155. package/dist/menu/menu-item.mjs +5 -3
  156. package/dist/menu/menu-option-item.cjs +9 -4
  157. package/dist/menu/menu-option-item.d.ts +3 -3
  158. package/dist/menu/menu-option-item.mjs +11 -6
  159. package/dist/menu/menu-positioner.cjs +3 -1
  160. package/dist/menu/menu-positioner.mjs +4 -2
  161. package/dist/menu/menu-separator.cjs +3 -1
  162. package/dist/menu/menu-separator.mjs +4 -2
  163. package/dist/menu/menu-trigger-item.cjs +3 -1
  164. package/dist/menu/menu-trigger-item.mjs +4 -2
  165. package/dist/menu/menu-trigger.cjs +4 -10
  166. package/dist/menu/menu-trigger.d.ts +4 -6
  167. package/dist/menu/menu-trigger.mjs +5 -11
  168. package/dist/menu/menu.cjs +13 -21
  169. package/dist/menu/menu.d.ts +1 -1
  170. package/dist/menu/menu.mjs +15 -23
  171. package/dist/number-input/number-input-control.cjs +4 -2
  172. package/dist/number-input/number-input-control.mjs +5 -3
  173. package/dist/number-input/number-input-decrement-trigger.cjs +5 -12
  174. package/dist/number-input/number-input-decrement-trigger.d.ts +4 -6
  175. package/dist/number-input/number-input-decrement-trigger.mjs +6 -13
  176. package/dist/number-input/number-input-field.cjs +4 -2
  177. package/dist/number-input/number-input-field.mjs +5 -3
  178. package/dist/number-input/number-input-increment-trigger.cjs +5 -12
  179. package/dist/number-input/number-input-increment-trigger.d.ts +4 -6
  180. package/dist/number-input/number-input-increment-trigger.mjs +6 -13
  181. package/dist/number-input/number-input-label.cjs +4 -2
  182. package/dist/number-input/number-input-label.mjs +5 -3
  183. package/dist/number-input/number-input-scrubber.cjs +4 -2
  184. package/dist/number-input/number-input-scrubber.mjs +5 -3
  185. package/dist/number-input/number-input.cjs +6 -4
  186. package/dist/number-input/number-input.d.ts +1 -1
  187. package/dist/number-input/number-input.mjs +7 -5
  188. package/dist/pagination/index.d.ts +1 -0
  189. package/dist/pagination/pagination-context.d.ts +5 -15
  190. package/dist/pagination/pagination-ellipsis.cjs +5 -3
  191. package/dist/pagination/pagination-ellipsis.d.ts +3 -6
  192. package/dist/pagination/pagination-ellipsis.mjs +6 -4
  193. package/dist/pagination/pagination-list-item.cjs +11 -0
  194. package/dist/pagination/pagination-list-item.d.ts +4 -0
  195. package/dist/pagination/pagination-list-item.mjs +7 -0
  196. package/dist/pagination/pagination-list.cjs +2 -1
  197. package/dist/pagination/pagination-list.mjs +3 -2
  198. package/dist/pagination/pagination-page-trigger.d.ts +1 -1
  199. package/dist/pagination/pagination-prev-page-trigger.cjs +2 -2
  200. package/dist/pagination/pagination-prev-page-trigger.mjs +2 -2
  201. package/dist/pagination/pagination.anatomy.cjs +3 -1
  202. package/dist/pagination/pagination.anatomy.d.ts +3 -2
  203. package/dist/pagination/pagination.anatomy.mjs +3 -2
  204. package/dist/pagination/pagination.cjs +9 -7
  205. package/dist/pagination/pagination.d.ts +3 -3
  206. package/dist/pagination/pagination.mjs +11 -9
  207. package/dist/pagination/use-pagination.d.ts +3 -8
  208. package/dist/pin-input/pin-input-control.cjs +8 -4
  209. package/dist/pin-input/pin-input-control.mjs +9 -5
  210. package/dist/pin-input/pin-input-field.cjs +6 -8
  211. package/dist/pin-input/pin-input-field.d.ts +1 -1
  212. package/dist/pin-input/pin-input-field.mjs +7 -9
  213. package/dist/pin-input/pin-input-label.cjs +4 -2
  214. package/dist/pin-input/pin-input-label.mjs +5 -3
  215. package/dist/pin-input/pin-input.cjs +5 -3
  216. package/dist/pin-input/pin-input.d.ts +1 -1
  217. package/dist/pin-input/pin-input.mjs +6 -4
  218. package/dist/popover/popover-anchor.cjs +6 -13
  219. package/dist/popover/popover-anchor.d.ts +4 -6
  220. package/dist/popover/popover-anchor.mjs +6 -13
  221. package/dist/popover/popover-arrow-tip.cjs +3 -1
  222. package/dist/popover/popover-arrow-tip.mjs +4 -2
  223. package/dist/popover/popover-arrow.cjs +3 -1
  224. package/dist/popover/popover-arrow.mjs +4 -2
  225. package/dist/popover/popover-close-trigger.cjs +5 -12
  226. package/dist/popover/popover-close-trigger.d.ts +4 -6
  227. package/dist/popover/popover-close-trigger.mjs +6 -13
  228. package/dist/popover/popover-content.cjs +4 -2
  229. package/dist/popover/popover-content.mjs +5 -3
  230. package/dist/popover/popover-description.cjs +4 -2
  231. package/dist/popover/popover-description.mjs +5 -3
  232. package/dist/popover/popover-positioner.cjs +4 -2
  233. package/dist/popover/popover-positioner.mjs +5 -3
  234. package/dist/popover/popover-title.cjs +4 -2
  235. package/dist/popover/popover-title.mjs +5 -3
  236. package/dist/popover/popover-trigger.cjs +6 -13
  237. package/dist/popover/popover-trigger.d.ts +4 -6
  238. package/dist/popover/popover-trigger.mjs +6 -13
  239. package/dist/popover/popover.cjs +2 -2
  240. package/dist/popover/popover.mjs +2 -2
  241. package/dist/pressable/pressable.cjs +5 -5
  242. package/dist/pressable/pressable.d.ts +1 -1
  243. package/dist/pressable/pressable.mjs +6 -6
  244. package/dist/pressable/use-pressable.cjs +1 -1
  245. package/dist/pressable/use-pressable.d.ts +3 -3
  246. package/dist/pressable/use-pressable.mjs +2 -2
  247. package/dist/prop-trap.cjs +37 -0
  248. package/dist/prop-trap.d.ts +5 -0
  249. package/dist/prop-trap.mjs +33 -0
  250. package/dist/radio-group/radio-control.cjs +5 -3
  251. package/dist/radio-group/radio-control.mjs +6 -4
  252. package/dist/radio-group/radio-group-label.cjs +4 -2
  253. package/dist/radio-group/radio-group-label.mjs +5 -3
  254. package/dist/radio-group/radio-group.cjs +6 -4
  255. package/dist/radio-group/radio-group.d.ts +1 -1
  256. package/dist/radio-group/radio-group.mjs +7 -5
  257. package/dist/radio-group/radio-input.cjs +5 -3
  258. package/dist/radio-group/radio-input.mjs +6 -4
  259. package/dist/radio-group/radio-label.cjs +5 -3
  260. package/dist/radio-group/radio-label.mjs +6 -4
  261. package/dist/radio-group/radio.cjs +5 -6
  262. package/dist/radio-group/radio.d.ts +1 -1
  263. package/dist/radio-group/radio.mjs +6 -7
  264. package/dist/range-slider/range-slider-control.cjs +3 -1
  265. package/dist/range-slider/range-slider-control.mjs +4 -2
  266. package/dist/range-slider/range-slider-label.cjs +3 -1
  267. package/dist/range-slider/range-slider-label.mjs +4 -2
  268. package/dist/range-slider/range-slider-marker-group.cjs +3 -1
  269. package/dist/range-slider/range-slider-marker-group.mjs +4 -2
  270. package/dist/range-slider/range-slider-marker.cjs +5 -3
  271. package/dist/range-slider/range-slider-marker.d.ts +1 -1
  272. package/dist/range-slider/range-slider-marker.mjs +6 -4
  273. package/dist/range-slider/range-slider-output.cjs +6 -5
  274. package/dist/range-slider/range-slider-output.d.ts +2 -2
  275. package/dist/range-slider/range-slider-output.mjs +7 -6
  276. package/dist/range-slider/range-slider-range.cjs +3 -1
  277. package/dist/range-slider/range-slider-range.mjs +4 -2
  278. package/dist/range-slider/range-slider-thumb.cjs +5 -3
  279. package/dist/range-slider/range-slider-thumb.d.ts +1 -1
  280. package/dist/range-slider/range-slider-thumb.mjs +6 -4
  281. package/dist/range-slider/range-slider-track.cjs +3 -1
  282. package/dist/range-slider/range-slider-track.mjs +4 -2
  283. package/dist/range-slider/range-slider.cjs +7 -6
  284. package/dist/range-slider/range-slider.d.ts +2 -2
  285. package/dist/range-slider/range-slider.mjs +7 -6
  286. package/dist/rating-group/rating-context.d.ts +4 -3
  287. package/dist/rating-group/rating-group-control.cjs +6 -5
  288. package/dist/rating-group/rating-group-control.d.ts +3 -2
  289. package/dist/rating-group/rating-group-control.mjs +7 -6
  290. package/dist/rating-group/rating-group-label.cjs +3 -1
  291. package/dist/rating-group/rating-group-label.mjs +4 -2
  292. package/dist/rating-group/rating-group.cjs +7 -5
  293. package/dist/rating-group/rating-group.d.ts +2 -2
  294. package/dist/rating-group/rating-group.mjs +8 -6
  295. package/dist/rating-group/rating.cjs +9 -8
  296. package/dist/rating-group/rating.d.ts +5 -3
  297. package/dist/rating-group/rating.mjs +10 -9
  298. package/dist/select/select-content.cjs +4 -2
  299. package/dist/select/select-content.mjs +5 -3
  300. package/dist/select/select-label.cjs +4 -2
  301. package/dist/select/select-label.mjs +5 -3
  302. package/dist/select/select-option-group-label.cjs +5 -3
  303. package/dist/select/select-option-group-label.d.ts +3 -3
  304. package/dist/select/select-option-group-label.mjs +6 -4
  305. package/dist/select/select-option-group.cjs +5 -3
  306. package/dist/select/select-option-group.d.ts +3 -3
  307. package/dist/select/select-option-group.mjs +6 -4
  308. package/dist/select/select-option.cjs +6 -4
  309. package/dist/select/select-option.d.ts +3 -3
  310. package/dist/select/select-option.mjs +7 -5
  311. package/dist/select/select-positioner.cjs +4 -2
  312. package/dist/select/select-positioner.mjs +5 -3
  313. package/dist/select/select-trigger.cjs +5 -12
  314. package/dist/select/select-trigger.d.ts +4 -6
  315. package/dist/select/select-trigger.mjs +6 -13
  316. package/dist/select/select.cjs +5 -12
  317. package/dist/select/select.d.ts +1 -1
  318. package/dist/select/select.mjs +7 -14
  319. package/dist/slider/slider-control.cjs +4 -2
  320. package/dist/slider/slider-control.mjs +5 -3
  321. package/dist/slider/slider-label.cjs +4 -2
  322. package/dist/slider/slider-label.mjs +5 -3
  323. package/dist/slider/slider-marker-group.cjs +4 -2
  324. package/dist/slider/slider-marker-group.mjs +5 -3
  325. package/dist/slider/slider-marker.cjs +5 -3
  326. package/dist/slider/slider-marker.d.ts +3 -3
  327. package/dist/slider/slider-marker.mjs +6 -4
  328. package/dist/slider/slider-output.cjs +7 -4
  329. package/dist/slider/slider-output.d.ts +2 -2
  330. package/dist/slider/slider-output.mjs +8 -5
  331. package/dist/slider/slider-range.cjs +3 -1
  332. package/dist/slider/slider-range.mjs +4 -2
  333. package/dist/slider/slider-thumb.cjs +5 -3
  334. package/dist/slider/slider-thumb.mjs +6 -4
  335. package/dist/slider/slider-track.cjs +3 -1
  336. package/dist/slider/slider-track.mjs +4 -2
  337. package/dist/slider/slider.cjs +10 -7
  338. package/dist/slider/slider.d.ts +2 -2
  339. package/dist/slider/slider.mjs +11 -8
  340. package/dist/splitter/splitter-panel.cjs +5 -3
  341. package/dist/splitter/splitter-panel.d.ts +3 -3
  342. package/dist/splitter/splitter-panel.mjs +6 -4
  343. package/dist/splitter/splitter-resize-trigger.cjs +7 -12
  344. package/dist/splitter/splitter-resize-trigger.d.ts +7 -9
  345. package/dist/splitter/splitter-resize-trigger.mjs +8 -13
  346. package/dist/splitter/splitter.cjs +6 -4
  347. package/dist/splitter/splitter.d.ts +1 -1
  348. package/dist/splitter/splitter.mjs +7 -5
  349. package/dist/spread.cjs +26 -13
  350. package/dist/spread.mjs +26 -13
  351. package/dist/tabs/tab-content.cjs +5 -3
  352. package/dist/tabs/tab-content.d.ts +3 -3
  353. package/dist/tabs/tab-content.mjs +6 -4
  354. package/dist/tabs/tab-indicator.cjs +4 -2
  355. package/dist/tabs/tab-indicator.mjs +5 -3
  356. package/dist/tabs/tab-list.cjs +4 -2
  357. package/dist/tabs/tab-list.mjs +5 -3
  358. package/dist/tabs/tab-trigger.cjs +6 -13
  359. package/dist/tabs/tab-trigger.d.ts +6 -8
  360. package/dist/tabs/tab-trigger.mjs +7 -14
  361. package/dist/tabs/tabs.cjs +6 -4
  362. package/dist/tabs/tabs.d.ts +1 -1
  363. package/dist/tabs/tabs.mjs +7 -5
  364. package/dist/tags-input/tag-delete-trigger.cjs +6 -13
  365. package/dist/tags-input/tag-delete-trigger.d.ts +5 -7
  366. package/dist/tags-input/tag-delete-trigger.mjs +7 -14
  367. package/dist/tags-input/tag-input.cjs +5 -3
  368. package/dist/tags-input/tag-input.d.ts +1 -1
  369. package/dist/tags-input/tag-input.mjs +6 -4
  370. package/dist/tags-input/tag.cjs +5 -3
  371. package/dist/tags-input/tag.d.ts +1 -1
  372. package/dist/tags-input/tag.mjs +6 -4
  373. package/dist/tags-input/tags-input-clear-trigger.cjs +4 -11
  374. package/dist/tags-input/tags-input-clear-trigger.d.ts +4 -6
  375. package/dist/tags-input/tags-input-clear-trigger.mjs +5 -12
  376. package/dist/tags-input/tags-input-control.cjs +4 -2
  377. package/dist/tags-input/tags-input-control.mjs +5 -3
  378. package/dist/tags-input/tags-input-field.cjs +4 -2
  379. package/dist/tags-input/tags-input-field.mjs +5 -3
  380. package/dist/tags-input/tags-input-label.cjs +4 -2
  381. package/dist/tags-input/tags-input-label.mjs +5 -3
  382. package/dist/tags-input/tags-input.cjs +10 -7
  383. package/dist/tags-input/tags-input.d.ts +3 -3
  384. package/dist/tags-input/tags-input.mjs +11 -8
  385. package/dist/toast/toast-close-trigger.cjs +5 -12
  386. package/dist/toast/toast-close-trigger.d.ts +4 -6
  387. package/dist/toast/toast-close-trigger.mjs +6 -13
  388. package/dist/toast/toast-description.cjs +5 -3
  389. package/dist/toast/toast-description.mjs +6 -4
  390. package/dist/toast/toast-group.cjs +8 -6
  391. package/dist/toast/toast-group.d.ts +6 -4
  392. package/dist/toast/toast-group.mjs +10 -8
  393. package/dist/toast/toast-placements.cjs +4 -2
  394. package/dist/toast/toast-placements.d.ts +2 -2
  395. package/dist/toast/toast-placements.mjs +5 -3
  396. package/dist/toast/toast-provider.cjs +2 -2
  397. package/dist/toast/toast-provider.mjs +2 -2
  398. package/dist/toast/toast-title.cjs +3 -1
  399. package/dist/toast/toast-title.mjs +4 -2
  400. package/dist/toast/toast.cjs +6 -4
  401. package/dist/toast/toast.d.ts +1 -1
  402. package/dist/toast/toast.mjs +7 -5
  403. package/dist/tooltip/tooltip-arrow-tip.cjs +4 -2
  404. package/dist/tooltip/tooltip-arrow-tip.mjs +5 -3
  405. package/dist/tooltip/tooltip-arrow.cjs +3 -1
  406. package/dist/tooltip/tooltip-arrow.mjs +4 -2
  407. package/dist/tooltip/tooltip-content.cjs +4 -2
  408. package/dist/tooltip/tooltip-content.mjs +5 -3
  409. package/dist/tooltip/tooltip-context.cjs +2 -2
  410. package/dist/tooltip/tooltip-context.mjs +2 -2
  411. package/dist/tooltip/tooltip-positioner.cjs +5 -3
  412. package/dist/tooltip/tooltip-positioner.mjs +6 -4
  413. package/dist/tooltip/tooltip-trigger.cjs +5 -12
  414. package/dist/tooltip/tooltip-trigger.d.ts +4 -6
  415. package/dist/tooltip/tooltip-trigger.mjs +6 -13
  416. package/dist/tooltip/tooltip.cjs +4 -4
  417. package/dist/tooltip/tooltip.mjs +4 -4
  418. package/dist/types.d.ts +7 -4
  419. package/package.json +70 -40
@@ -2,22 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const solidJs = require('solid-js');
6
5
  const web = require('solid-js/web');
7
- const ssrSpread = require('../ssr-spread.cjs');
6
+ const solid = require('@zag-js/solid');
7
+ const factory = require('../factory.cjs');
8
8
  const editableContext = require('./editable-context.cjs');
9
9
 
10
10
  const EditableCancelTrigger = props => {
11
- const dialog = editableContext.useEditableContext();
12
- const triggerProps = dialog().cancelTriggerProps;
13
- const getChildren = solidJs.children(() => ssrSpread.ssrSpread(props.children, triggerProps));
14
- solidJs.createEffect(() => {
15
- const children = getChildren();
16
- if (children instanceof HTMLElement) {
17
- web.spread(children, triggerProps);
18
- }
19
- });
20
- return getChildren();
11
+ const editable = editableContext.useEditableContext();
12
+ const triggerProps = solid.mergeProps(() => editable().cancelTriggerProps, props);
13
+ return web.createComponent(factory.ark.button, triggerProps);
21
14
  };
22
15
 
23
16
  exports.EditableCancelTrigger = EditableCancelTrigger;
@@ -1,6 +1,4 @@
1
- import type { ResolvedChildren } from 'solid-js/types/reactive/signal';
2
- import { type JSX } from 'solid-js';
3
- export type EditableCancelTriggerProps = {
4
- children: JSX.Element;
5
- };
6
- export declare const EditableCancelTrigger: (props: EditableCancelTriggerProps) => ResolvedChildren;
1
+ import type { JSX } from 'solid-js';
2
+ import { type HTMLArkProps } from '../factory';
3
+ export type EditableCancelTriggerProps = HTMLArkProps<'button'>;
4
+ export declare const EditableCancelTrigger: (props: EditableCancelTriggerProps) => JSX.Element;
@@ -1,19 +1,12 @@
1
- import { children, createEffect } from 'solid-js';
2
- import { spread } from 'solid-js/web';
3
- import { ssrSpread } from '../ssr-spread.mjs';
1
+ import { createComponent } from 'solid-js/web';
2
+ import { mergeProps } from '@zag-js/solid';
3
+ import { ark } from '../factory.mjs';
4
4
  import { useEditableContext } from './editable-context.mjs';
5
5
 
6
6
  const EditableCancelTrigger = props => {
7
- const dialog = useEditableContext();
8
- const triggerProps = dialog().cancelTriggerProps;
9
- const getChildren = children(() => ssrSpread(props.children, triggerProps));
10
- createEffect(() => {
11
- const children = getChildren();
12
- if (children instanceof HTMLElement) {
13
- spread(children, triggerProps);
14
- }
15
- });
16
- return getChildren();
7
+ const editable = useEditableContext();
8
+ const triggerProps = mergeProps(() => editable().cancelTriggerProps, props);
9
+ return createComponent(ark.button, triggerProps);
17
10
  };
18
11
 
19
12
  export { EditableCancelTrigger };
@@ -3,12 +3,14 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const web = require('solid-js/web');
6
+ const solid = require('@zag-js/solid');
6
7
  const factory = require('../factory.cjs');
7
8
  const editableContext = require('./editable-context.cjs');
8
9
 
9
10
  const EditableControl = props => {
10
11
  const editable = editableContext.useEditableContext();
11
- return web.createComponent(factory.ark.div, web.mergeProps(() => editable().controlProps, props));
12
+ const controlProps = solid.mergeProps(() => editable().controlProps, props);
13
+ return web.createComponent(factory.ark.div, controlProps);
12
14
  };
13
15
 
14
16
  exports.EditableControl = EditableControl;
@@ -1,10 +1,12 @@
1
- import { createComponent, mergeProps } from 'solid-js/web';
1
+ import { createComponent } from 'solid-js/web';
2
+ import { mergeProps } from '@zag-js/solid';
2
3
  import { ark } from '../factory.mjs';
3
4
  import { useEditableContext } from './editable-context.mjs';
4
5
 
5
6
  const EditableControl = props => {
6
7
  const editable = useEditableContext();
7
- return createComponent(ark.div, mergeProps(() => editable().controlProps, props));
8
+ const controlProps = mergeProps(() => editable().controlProps, props);
9
+ return createComponent(ark.div, controlProps);
8
10
  };
9
11
 
10
12
  export { EditableControl };
@@ -2,22 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const solidJs = require('solid-js');
6
5
  const web = require('solid-js/web');
7
- const ssrSpread = require('../ssr-spread.cjs');
6
+ const solidJs = require('solid-js');
7
+ const factory = require('../factory.cjs');
8
8
  const editableContext = require('./editable-context.cjs');
9
9
 
10
10
  const EditableEditTrigger = props => {
11
- const dialog = editableContext.useEditableContext();
12
- const triggerProps = dialog().editTriggerProps;
13
- const getChildren = solidJs.children(() => ssrSpread.ssrSpread(props.children, triggerProps));
14
- solidJs.createEffect(() => {
15
- const children = getChildren();
16
- if (children instanceof HTMLElement) {
17
- web.spread(children, triggerProps);
18
- }
19
- });
20
- return getChildren();
11
+ const editable = editableContext.useEditableContext();
12
+ const triggerProps = solidJs.mergeProps(() => editable().editTriggerProps, props);
13
+ return web.createComponent(factory.ark.button, triggerProps);
21
14
  };
22
15
 
23
16
  exports.EditableEditTrigger = EditableEditTrigger;
@@ -1,6 +1,4 @@
1
- import type { ResolvedChildren } from 'solid-js/types/reactive/signal';
2
- import { type JSX } from 'solid-js';
3
- export type EditableEditTriggerProps = {
4
- children: JSX.Element;
5
- };
6
- export declare const EditableEditTrigger: (props: EditableEditTriggerProps) => ResolvedChildren;
1
+ import type { JSX } from 'solid-js';
2
+ import { type HTMLArkProps } from '../factory';
3
+ export type EditableEditTriggerProps = HTMLArkProps<'button'>;
4
+ export declare const EditableEditTrigger: (props: EditableEditTriggerProps) => JSX.Element;
@@ -1,19 +1,12 @@
1
- import { children, createEffect } from 'solid-js';
2
- import { spread } from 'solid-js/web';
3
- import { ssrSpread } from '../ssr-spread.mjs';
1
+ import { createComponent } from 'solid-js/web';
2
+ import { mergeProps } from 'solid-js';
3
+ import { ark } from '../factory.mjs';
4
4
  import { useEditableContext } from './editable-context.mjs';
5
5
 
6
6
  const EditableEditTrigger = props => {
7
- const dialog = useEditableContext();
8
- const triggerProps = dialog().editTriggerProps;
9
- const getChildren = children(() => ssrSpread(props.children, triggerProps));
10
- createEffect(() => {
11
- const children = getChildren();
12
- if (children instanceof HTMLElement) {
13
- spread(children, triggerProps);
14
- }
15
- });
16
- return getChildren();
7
+ const editable = useEditableContext();
8
+ const triggerProps = mergeProps(() => editable().editTriggerProps, props);
9
+ return createComponent(ark.button, triggerProps);
17
10
  };
18
11
 
19
12
  export { EditableEditTrigger };
@@ -3,12 +3,14 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const web = require('solid-js/web');
6
+ const solid = require('@zag-js/solid');
6
7
  const factory = require('../factory.cjs');
7
8
  const editableContext = require('./editable-context.cjs');
8
9
 
9
10
  const EditableInput = props => {
10
11
  const editable = editableContext.useEditableContext();
11
- return web.createComponent(factory.ark.input, web.mergeProps(() => editable().inputProps, props));
12
+ const inputProps = solid.mergeProps(() => editable().inputProps, props);
13
+ return web.createComponent(factory.ark.input, inputProps);
12
14
  };
13
15
 
14
16
  exports.EditableInput = EditableInput;
@@ -1,10 +1,12 @@
1
- import { createComponent, mergeProps } from 'solid-js/web';
1
+ import { createComponent } from 'solid-js/web';
2
+ import { mergeProps } from '@zag-js/solid';
2
3
  import { ark } from '../factory.mjs';
3
4
  import { useEditableContext } from './editable-context.mjs';
4
5
 
5
6
  const EditableInput = props => {
6
7
  const editable = useEditableContext();
7
- return createComponent(ark.input, mergeProps(() => editable().inputProps, props));
8
+ const inputProps = mergeProps(() => editable().inputProps, props);
9
+ return createComponent(ark.input, inputProps);
8
10
  };
9
11
 
10
12
  export { EditableInput };
@@ -3,12 +3,14 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const web = require('solid-js/web');
6
+ const solid = require('@zag-js/solid');
6
7
  const factory = require('../factory.cjs');
7
8
  const editableContext = require('./editable-context.cjs');
8
9
 
9
10
  const EditableLabel = props => {
10
11
  const editable = editableContext.useEditableContext();
11
- return web.createComponent(factory.ark.label, web.mergeProps(() => editable().labelProps, props));
12
+ const labelProps = solid.mergeProps(() => editable().labelProps, props);
13
+ return web.createComponent(factory.ark.label, labelProps);
12
14
  };
13
15
 
14
16
  exports.EditableLabel = EditableLabel;
@@ -1,10 +1,12 @@
1
- import { createComponent, mergeProps } from 'solid-js/web';
1
+ import { createComponent } from 'solid-js/web';
2
+ import { mergeProps } from '@zag-js/solid';
2
3
  import { ark } from '../factory.mjs';
3
4
  import { useEditableContext } from './editable-context.mjs';
4
5
 
5
6
  const EditableLabel = props => {
6
7
  const editable = useEditableContext();
7
- return createComponent(ark.label, mergeProps(() => editable().labelProps, props));
8
+ const labelProps = mergeProps(() => editable().labelProps, props);
9
+ return createComponent(ark.label, labelProps);
8
10
  };
9
11
 
10
12
  export { EditableLabel };
@@ -3,12 +3,14 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const web = require('solid-js/web');
6
+ const solidJs = require('solid-js');
6
7
  const factory = require('../factory.cjs');
7
8
  const editableContext = require('./editable-context.cjs');
8
9
 
9
10
  const EditablePreview = props => {
10
11
  const editable = editableContext.useEditableContext();
11
- return web.createComponent(factory.ark.span, web.mergeProps(() => editable().previewProps, props));
12
+ const previewProps = solidJs.mergeProps(() => editable().previewProps, props);
13
+ return web.createComponent(factory.ark.span, previewProps);
12
14
  };
13
15
 
14
16
  exports.EditablePreview = EditablePreview;
@@ -1,10 +1,12 @@
1
- import { createComponent, mergeProps } from 'solid-js/web';
1
+ import { createComponent } from 'solid-js/web';
2
+ import { mergeProps } from 'solid-js';
2
3
  import { ark } from '../factory.mjs';
3
4
  import { useEditableContext } from './editable-context.mjs';
4
5
 
5
6
  const EditablePreview = props => {
6
7
  const editable = useEditableContext();
7
- return createComponent(ark.span, mergeProps(() => editable().previewProps, props));
8
+ const previewProps = mergeProps(() => editable().previewProps, props);
9
+ return createComponent(ark.span, previewProps);
8
10
  };
9
11
 
10
12
  export { EditablePreview };
@@ -2,22 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const solidJs = require('solid-js');
6
5
  const web = require('solid-js/web');
7
- const ssrSpread = require('../ssr-spread.cjs');
6
+ const solidJs = require('solid-js');
7
+ const factory = require('../factory.cjs');
8
8
  const editableContext = require('./editable-context.cjs');
9
9
 
10
10
  const EditableSubmitTrigger = props => {
11
11
  const dialog = editableContext.useEditableContext();
12
- const triggerProps = dialog().submitTriggerProps;
13
- const getChildren = solidJs.children(() => ssrSpread.ssrSpread(props.children, triggerProps));
14
- solidJs.createEffect(() => {
15
- const children = getChildren();
16
- if (children instanceof HTMLElement) {
17
- web.spread(children, triggerProps);
18
- }
19
- });
20
- return getChildren();
12
+ const triggerProps = solidJs.mergeProps(() => dialog().submitTriggerProps, props);
13
+ return web.createComponent(factory.ark.button, triggerProps);
21
14
  };
22
15
 
23
16
  exports.EditableSubmitTrigger = EditableSubmitTrigger;
@@ -1,6 +1,4 @@
1
- import type { ResolvedChildren } from 'solid-js/types/reactive/signal';
2
- import { type JSX } from 'solid-js';
3
- export type EditableSubmitTriggerProps = {
4
- children: JSX.Element;
5
- };
6
- export declare const EditableSubmitTrigger: (props: EditableSubmitTriggerProps) => ResolvedChildren;
1
+ import type { JSX } from 'solid-js';
2
+ import { type HTMLArkProps } from '../factory';
3
+ export type EditableSubmitTriggerProps = HTMLArkProps<'button'>;
4
+ export declare const EditableSubmitTrigger: (props: EditableSubmitTriggerProps) => JSX.Element;
@@ -1,19 +1,12 @@
1
- import { children, createEffect } from 'solid-js';
2
- import { spread } from 'solid-js/web';
3
- import { ssrSpread } from '../ssr-spread.mjs';
1
+ import { createComponent } from 'solid-js/web';
2
+ import { mergeProps } from 'solid-js';
3
+ import { ark } from '../factory.mjs';
4
4
  import { useEditableContext } from './editable-context.mjs';
5
5
 
6
6
  const EditableSubmitTrigger = props => {
7
7
  const dialog = useEditableContext();
8
- const triggerProps = dialog().submitTriggerProps;
9
- const getChildren = children(() => ssrSpread(props.children, triggerProps));
10
- createEffect(() => {
11
- const children = getChildren();
12
- if (children instanceof HTMLElement) {
13
- spread(children, triggerProps);
14
- }
15
- });
16
- return getChildren();
8
+ const triggerProps = mergeProps(() => dialog().submitTriggerProps, props);
9
+ return createComponent(ark.button, triggerProps);
17
10
  };
18
11
 
19
12
  export { EditableSubmitTrigger };
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const web = require('solid-js/web');
6
+ const solid = require('@zag-js/solid');
6
7
  const solidJs = require('solid-js');
7
8
  const createSplitProps = require('../create-split-props.cjs');
8
9
  const factory = require('../factory.cjs');
@@ -11,23 +12,21 @@ const editableContext = require('./editable-context.cjs');
11
12
  const useEditable = require('./use-editable.cjs');
12
13
 
13
14
  const Editable = props => {
14
- const [useEditableProps, editableContextProps] = createSplitProps.createSplitProps()(props, ['activationMode', 'autoResize', 'dir', 'disabled', 'form', 'getRootNode', 'id', 'ids', 'invalid', 'maxLength', 'name', 'onCancel', 'onChange', 'onEdit', 'onInteractOutside', 'onSubmit', 'placeholder', 'readOnly', 'selectOnFocus', 'startWithEditView', 'submitMode', 'translations', 'value']);
15
+ const [useEditableProps, restProps] = createSplitProps.createSplitProps()(props, ['activationMode', 'autoResize', 'dir', 'disabled', 'finalFocusEl', 'form', 'getRootNode', 'id', 'ids', 'invalid', 'maxLength', 'name', 'onCancel', 'onChange', 'onEdit', 'onInteractOutside', 'onSubmit', 'placeholder', 'readOnly', 'selectOnFocus', 'startWithEditView', 'submitMode', 'translations', 'value']);
15
16
  const editable = useEditable.useEditable(useEditableProps);
17
+ const [childrenProps, localProps] = solidJs.splitProps(restProps, ['children']);
18
+ const rootProps = solid.mergeProps(() => editable().rootProps, localProps);
19
+ const getChildren = () => runIfFn.runIfFn(childrenProps.children, editable);
16
20
  return web.createComponent(editableContext.EditableProvider, {
17
21
  value: editable,
18
22
  get children() {
19
- return web.createComponent(EditableContextWrapper, editableContextProps);
23
+ return web.createComponent(factory.ark.div, web.mergeProps(rootProps, {
24
+ get children() {
25
+ return getChildren();
26
+ }
27
+ }));
20
28
  }
21
29
  });
22
30
  };
23
- const EditableContextWrapper = props => {
24
- const editable = editableContext.useEditableContext();
25
- const view = solidJs.children(() => runIfFn.runIfFn(props.children, editable));
26
- return web.createComponent(factory.ark.div, web.mergeProps(() => editable().rootProps, props, {
27
- get children() {
28
- return view();
29
- }
30
- }));
31
- };
32
31
 
33
32
  exports.Editable = Editable;
@@ -1,11 +1,9 @@
1
- import { type Assign } from '@polymorphic-factory/solid';
2
1
  import { type JSX } from 'solid-js';
3
2
  import { type HTMLArkProps } from '../factory';
3
+ import type { Assign } from '../types';
4
4
  import { type EditableContext } from './editable-context';
5
5
  import { type UseEditableProps } from './use-editable';
6
- export type EditableProps = Assign<EditableContextWrapperProps, UseEditableProps>;
7
- export declare const Editable: (props: EditableProps) => JSX.Element;
8
- type EditableContextWrapperProps = Assign<HTMLArkProps<'div'>, {
9
- children: JSX.Element | ((context: EditableContext) => JSX.Element);
6
+ export type EditableProps = Assign<HTMLArkProps<'div'>, UseEditableProps & {
7
+ children: JSX.Element | ((api: EditableContext) => JSX.Element);
10
8
  }>;
11
- export {};
9
+ export declare const Editable: (props: EditableProps) => JSX.Element;
@@ -1,29 +1,28 @@
1
- import { createComponent, mergeProps } from 'solid-js/web';
2
- import { children } from 'solid-js';
1
+ import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web';
2
+ import { mergeProps } from '@zag-js/solid';
3
+ import { splitProps } from 'solid-js';
3
4
  import { createSplitProps } from '../create-split-props.mjs';
4
5
  import { ark } from '../factory.mjs';
5
6
  import { runIfFn } from '../run-if-fn.mjs';
6
- import { EditableProvider, useEditableContext } from './editable-context.mjs';
7
+ import { EditableProvider } from './editable-context.mjs';
7
8
  import { useEditable } from './use-editable.mjs';
8
9
 
9
10
  const Editable = props => {
10
- const [useEditableProps, editableContextProps] = createSplitProps()(props, ['activationMode', 'autoResize', 'dir', 'disabled', 'form', 'getRootNode', 'id', 'ids', 'invalid', 'maxLength', 'name', 'onCancel', 'onChange', 'onEdit', 'onInteractOutside', 'onSubmit', 'placeholder', 'readOnly', 'selectOnFocus', 'startWithEditView', 'submitMode', 'translations', 'value']);
11
+ const [useEditableProps, restProps] = createSplitProps()(props, ['activationMode', 'autoResize', 'dir', 'disabled', 'finalFocusEl', 'form', 'getRootNode', 'id', 'ids', 'invalid', 'maxLength', 'name', 'onCancel', 'onChange', 'onEdit', 'onInteractOutside', 'onSubmit', 'placeholder', 'readOnly', 'selectOnFocus', 'startWithEditView', 'submitMode', 'translations', 'value']);
11
12
  const editable = useEditable(useEditableProps);
13
+ const [childrenProps, localProps] = splitProps(restProps, ['children']);
14
+ const rootProps = mergeProps(() => editable().rootProps, localProps);
15
+ const getChildren = () => runIfFn(childrenProps.children, editable);
12
16
  return createComponent(EditableProvider, {
13
17
  value: editable,
14
18
  get children() {
15
- return createComponent(EditableContextWrapper, editableContextProps);
19
+ return createComponent(ark.div, mergeProps$1(rootProps, {
20
+ get children() {
21
+ return getChildren();
22
+ }
23
+ }));
16
24
  }
17
25
  });
18
26
  };
19
- const EditableContextWrapper = props => {
20
- const editable = useEditableContext();
21
- const view = children(() => runIfFn(props.children, editable));
22
- return createComponent(ark.div, mergeProps(() => editable().rootProps, props, {
23
- get children() {
24
- return view();
25
- }
26
- }));
27
- };
28
27
 
29
28
  export { Editable };
package/dist/factory.cjs CHANGED
@@ -2,15 +2,49 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const solid = require('@polymorphic-factory/solid');
5
+ const web = require('solid-js/web');
6
+ const solidJs = require('solid-js');
7
+ const spread = require('./spread.cjs');
8
+ const ssrSpread = require('./ssr-spread.cjs');
6
9
 
7
- /**
8
- * All html and svg elements for ark components.
9
- * This is mostly for `ark.<element>` syntax.
10
- */
11
- /**
12
- * The ark factory serves as an object of JSX elements to render React components which accept the `as` prop
13
- */
14
- const ark = solid.polymorphicFactory();
10
+ function withAsChild(Component) {
11
+ return function jsx(props) {
12
+ const [localProps, restProps] = solidJs.splitProps(props, ['asChild', 'children']);
13
+ if (!localProps.asChild) {
14
+ return web.createComponent(web.Dynamic, web.mergeProps({
15
+ component: Component
16
+ }, restProps, {
17
+ get children() {
18
+ return localProps.children;
19
+ }
20
+ }));
21
+ }
22
+ const getChildren = solidJs.children(() => ssrSpread.ssrSpread(localProps.children, restProps));
23
+ solidJs.createEffect(() => {
24
+ const children = getChildren();
25
+ if (children instanceof HTMLElement) {
26
+ spread.spread(children, restProps);
27
+ }
28
+ });
29
+ return getChildren;
30
+ };
31
+ }
32
+ function jsxFactory() {
33
+ const cache = new Map();
34
+ return new Proxy(withAsChild, {
35
+ apply(target, thisArg, argArray) {
36
+ return withAsChild(argArray[0]);
37
+ },
38
+ get(_, element) {
39
+ const asElement = element;
40
+ if (!cache.has(asElement)) {
41
+ cache.set(asElement, withAsChild(asElement));
42
+ }
43
+ return cache.get(asElement);
44
+ }
45
+ });
46
+ }
47
+ const ark = jsxFactory();
15
48
 
16
49
  exports.ark = ark;
50
+ exports.jsxFactory = jsxFactory;
package/dist/factory.d.ts CHANGED
@@ -1,12 +1,14 @@
1
- /**
2
- * All html and svg elements for ark components.
3
- * This is mostly for `ark.<element>` syntax.
4
- */
5
- import type { ComponentWithAs, type HTMLPolymorphicComponents, type HTMLPolymorphicProps } from '@polymorphic-factory/solid';
6
- import type { Component, type JSX } from 'solid-js';
7
- export type HTMLArkComponents = HTMLPolymorphicComponents;
8
- export type HTMLArkProps<T extends keyof JSX.IntrinsicElements> = HTMLPolymorphicProps<T>;
9
- /**
10
- * The ark factory serves as an object of JSX elements to render React components which accept the `as` prop
11
- */
12
- export declare const ark: (<T extends keyof JSX.IntrinsicElements | Component<any>, P extends Record<never, never> = Record<never, never>>(component: T, option?: undefined) => ComponentWithAs<T, P>) & HTMLPolymorphicComponents<Record<never, never>>;
1
+ import { type Component, type ComponentProps, type JSX } from 'solid-js';
2
+ type ElementType = keyof JSX.IntrinsicElements | Component<any>;
3
+ export type AsChildProps = {
4
+ asChild?: boolean;
5
+ };
6
+ type JsxElements = {
7
+ [E in keyof JSX.IntrinsicElements]: AsChildForwardRefComponent<E>;
8
+ };
9
+ export type AsChildForwardRefComponent<E extends ElementType> = Component<AsChildComponentProps<E>>;
10
+ export type AsChildComponentProps<E extends ElementType> = ComponentProps<E> & AsChildProps;
11
+ export type HTMLArkProps<T extends ElementType> = AsChildComponentProps<T>;
12
+ export declare function jsxFactory(): JsxElements;
13
+ export declare const ark: JsxElements;
14
+ export {};
package/dist/factory.mjs CHANGED
@@ -1,12 +1,45 @@
1
- import { polymorphicFactory } from '@polymorphic-factory/solid';
1
+ import { createComponent, Dynamic, mergeProps } from 'solid-js/web';
2
+ import { splitProps, children, createEffect } from 'solid-js';
3
+ import { spread } from './spread.mjs';
4
+ import { ssrSpread } from './ssr-spread.mjs';
2
5
 
3
- /**
4
- * All html and svg elements for ark components.
5
- * This is mostly for `ark.<element>` syntax.
6
- */
7
- /**
8
- * The ark factory serves as an object of JSX elements to render React components which accept the `as` prop
9
- */
10
- const ark = polymorphicFactory();
6
+ function withAsChild(Component) {
7
+ return function jsx(props) {
8
+ const [localProps, restProps] = splitProps(props, ['asChild', 'children']);
9
+ if (!localProps.asChild) {
10
+ return createComponent(Dynamic, mergeProps({
11
+ component: Component
12
+ }, restProps, {
13
+ get children() {
14
+ return localProps.children;
15
+ }
16
+ }));
17
+ }
18
+ const getChildren = children(() => ssrSpread(localProps.children, restProps));
19
+ createEffect(() => {
20
+ const children = getChildren();
21
+ if (children instanceof HTMLElement) {
22
+ spread(children, restProps);
23
+ }
24
+ });
25
+ return getChildren;
26
+ };
27
+ }
28
+ function jsxFactory() {
29
+ const cache = new Map();
30
+ return new Proxy(withAsChild, {
31
+ apply(target, thisArg, argArray) {
32
+ return withAsChild(argArray[0]);
33
+ },
34
+ get(_, element) {
35
+ const asElement = element;
36
+ if (!cache.has(asElement)) {
37
+ cache.set(asElement, withAsChild(asElement));
38
+ }
39
+ return cache.get(asElement);
40
+ }
41
+ });
42
+ }
43
+ const ark = jsxFactory();
11
44
 
12
- export { ark };
45
+ export { ark, jsxFactory };
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const propTrap = require('./prop-trap.cjs');
6
+
7
+ function filterProps(props, predicate) {
8
+ return new Proxy(
9
+ {
10
+ get(property) {
11
+ return property in props && predicate(property) ? props[property] : void 0;
12
+ },
13
+ has(property) {
14
+ return property in props && predicate(property);
15
+ },
16
+ keys() {
17
+ return Object.keys(props).filter(predicate);
18
+ }
19
+ },
20
+ propTrap.propTraps
21
+ );
22
+ }
23
+ function mapProps(props, mapper) {
24
+ return Object.fromEntries(Object.entries(props).map(([key, value]) => [key, mapper(key, value)]));
25
+ }
26
+
27
+ exports.filterProps = filterProps;
28
+ exports.mapProps = mapProps;
@@ -0,0 +1,2 @@
1
+ export declare function filterProps<T extends object>(props: T, predicate: (key: keyof T) => boolean): T;
2
+ export declare function mapProps(props: Record<string, unknown>, mapper: (key: string, value: unknown) => unknown): Record<string, unknown>;
@@ -0,0 +1,23 @@
1
+ import { propTraps } from './prop-trap.mjs';
2
+
3
+ function filterProps(props, predicate) {
4
+ return new Proxy(
5
+ {
6
+ get(property) {
7
+ return property in props && predicate(property) ? props[property] : void 0;
8
+ },
9
+ has(property) {
10
+ return property in props && predicate(property);
11
+ },
12
+ keys() {
13
+ return Object.keys(props).filter(predicate);
14
+ }
15
+ },
16
+ propTraps
17
+ );
18
+ }
19
+ function mapProps(props, mapper) {
20
+ return Object.fromEntries(Object.entries(props).map(([key, value]) => [key, mapper(key, value)]));
21
+ }
22
+
23
+ export { filterProps, mapProps };