@ark-ui/react 3.4.0-1 → 3.5.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 (399) hide show
  1. package/dist/components/accordion/accordion.anatomy.d.cts +1 -0
  2. package/dist/components/accordion/accordion.anatomy.d.ts +1 -0
  3. package/dist/components/accordion/index.cjs +7 -2
  4. package/dist/components/accordion/index.d.cts +7 -6
  5. package/dist/components/accordion/index.d.ts +7 -6
  6. package/dist/components/accordion/index.js +1 -0
  7. package/dist/components/avatar/avatar.anatomy.d.cts +1 -0
  8. package/dist/components/avatar/avatar.anatomy.d.ts +1 -0
  9. package/dist/components/avatar/index.cjs +7 -2
  10. package/dist/components/avatar/index.d.cts +1 -0
  11. package/dist/components/avatar/index.d.ts +1 -0
  12. package/dist/components/avatar/index.js +1 -0
  13. package/dist/components/carousel/carousel-control.cjs +2 -2
  14. package/dist/components/carousel/carousel-control.js +1 -1
  15. package/dist/components/carousel/carousel.anatomy.cjs +10 -0
  16. package/dist/components/carousel/carousel.anatomy.d.cts +2 -0
  17. package/dist/components/carousel/carousel.anatomy.d.ts +2 -0
  18. package/dist/components/carousel/carousel.anatomy.js +6 -0
  19. package/dist/components/carousel/index.cjs +2 -0
  20. package/dist/components/carousel/index.d.cts +1 -0
  21. package/dist/components/carousel/index.d.ts +1 -0
  22. package/dist/components/carousel/index.js +1 -0
  23. package/dist/components/checkbox/checkbox-group.cjs +4 -3
  24. package/dist/components/checkbox/checkbox-group.js +3 -2
  25. package/dist/components/checkbox/checkbox-hidden-input.cjs +3 -1
  26. package/dist/components/checkbox/checkbox-hidden-input.js +3 -1
  27. package/dist/components/checkbox/checkbox.anatomy.cjs +10 -0
  28. package/dist/components/checkbox/checkbox.anatomy.d.cts +2 -0
  29. package/dist/components/checkbox/checkbox.anatomy.d.ts +2 -0
  30. package/dist/components/checkbox/checkbox.anatomy.js +6 -0
  31. package/dist/components/checkbox/index.cjs +2 -0
  32. package/dist/components/checkbox/index.d.cts +1 -0
  33. package/dist/components/checkbox/index.d.ts +1 -0
  34. package/dist/components/checkbox/index.js +1 -0
  35. package/dist/components/checkbox/use-checkbox-group.cjs +3 -1
  36. package/dist/components/checkbox/use-checkbox-group.d.cts +7 -0
  37. package/dist/components/checkbox/use-checkbox-group.d.ts +7 -0
  38. package/dist/components/checkbox/use-checkbox-group.js +3 -1
  39. package/dist/components/checkbox/use-checkbox.cjs +10 -0
  40. package/dist/components/checkbox/use-checkbox.js +10 -0
  41. package/dist/components/clipboard/clipboard.anatomy.d.cts +1 -0
  42. package/dist/components/clipboard/clipboard.anatomy.d.ts +1 -0
  43. package/dist/components/clipboard/index.cjs +7 -2
  44. package/dist/components/clipboard/index.d.cts +1 -0
  45. package/dist/components/clipboard/index.d.ts +1 -0
  46. package/dist/components/clipboard/index.js +1 -0
  47. package/dist/components/collapsible/collapsible.anatomy.d.cts +1 -0
  48. package/dist/components/collapsible/collapsible.anatomy.d.ts +1 -0
  49. package/dist/components/collapsible/index.cjs +7 -2
  50. package/dist/components/collapsible/index.d.cts +1 -0
  51. package/dist/components/collapsible/index.d.ts +1 -0
  52. package/dist/components/collapsible/index.js +1 -0
  53. package/dist/components/color-picker/color-picker-hidden-input.cjs +3 -1
  54. package/dist/components/color-picker/color-picker-hidden-input.js +3 -1
  55. package/dist/components/color-picker/color-picker-root.cjs +1 -0
  56. package/dist/components/color-picker/color-picker-root.js +1 -0
  57. package/dist/components/color-picker/color-picker-value-text.cjs +4 -2
  58. package/dist/components/color-picker/color-picker-value-text.js +4 -2
  59. package/dist/components/color-picker/color-picker-view.cjs +2 -2
  60. package/dist/components/color-picker/color-picker-view.js +1 -1
  61. package/dist/components/color-picker/color-picker.anatomy.cjs +10 -0
  62. package/dist/components/color-picker/color-picker.anatomy.d.cts +2 -0
  63. package/dist/components/color-picker/color-picker.anatomy.d.ts +2 -0
  64. package/dist/components/color-picker/color-picker.anatomy.js +6 -0
  65. package/dist/components/color-picker/index.cjs +2 -0
  66. package/dist/components/color-picker/index.d.cts +1 -0
  67. package/dist/components/color-picker/index.d.ts +1 -0
  68. package/dist/components/color-picker/index.js +1 -0
  69. package/dist/components/color-picker/use-color-picker.cjs +9 -0
  70. package/dist/components/color-picker/use-color-picker.js +9 -0
  71. package/dist/components/combobox/combobox-input.cjs +3 -1
  72. package/dist/components/combobox/combobox-input.js +3 -1
  73. package/dist/components/combobox/combobox-root.cjs +1 -0
  74. package/dist/components/combobox/combobox-root.js +1 -0
  75. package/dist/components/combobox/combobox.anatomy.d.cts +1 -0
  76. package/dist/components/combobox/combobox.anatomy.d.ts +1 -0
  77. package/dist/components/combobox/index.cjs +7 -2
  78. package/dist/components/combobox/index.d.cts +1 -0
  79. package/dist/components/combobox/index.d.ts +1 -0
  80. package/dist/components/combobox/index.js +1 -0
  81. package/dist/components/combobox/use-combobox.cjs +10 -0
  82. package/dist/components/combobox/use-combobox.js +10 -0
  83. package/dist/components/date-picker/date-picker-view.cjs +2 -2
  84. package/dist/components/date-picker/date-picker-view.js +1 -1
  85. package/dist/components/date-picker/date-picker.anatomy.cjs +10 -0
  86. package/dist/components/date-picker/date-picker.anatomy.d.cts +2 -0
  87. package/dist/components/date-picker/date-picker.anatomy.d.ts +2 -0
  88. package/dist/components/date-picker/date-picker.anatomy.js +6 -0
  89. package/dist/components/date-picker/index.cjs +2 -0
  90. package/dist/components/date-picker/index.d.cts +1 -0
  91. package/dist/components/date-picker/index.d.ts +1 -0
  92. package/dist/components/date-picker/index.js +1 -0
  93. package/dist/components/dialog/dialog-description.d.cts +1 -1
  94. package/dist/components/dialog/dialog-description.d.ts +1 -1
  95. package/dist/components/dialog/dialog.anatomy.d.cts +1 -0
  96. package/dist/components/dialog/dialog.anatomy.d.ts +1 -0
  97. package/dist/components/dialog/index.cjs +7 -2
  98. package/dist/components/dialog/index.d.cts +1 -0
  99. package/dist/components/dialog/index.d.ts +1 -0
  100. package/dist/components/dialog/index.js +1 -0
  101. package/dist/components/editable/editable-input.cjs +3 -1
  102. package/dist/components/editable/editable-input.js +3 -1
  103. package/dist/components/editable/editable-root.cjs +1 -0
  104. package/dist/components/editable/editable-root.js +1 -0
  105. package/dist/components/editable/editable.anatomy.d.cts +1 -0
  106. package/dist/components/editable/editable.anatomy.d.ts +1 -0
  107. package/dist/components/editable/index.cjs +7 -2
  108. package/dist/components/editable/index.d.cts +1 -0
  109. package/dist/components/editable/index.d.ts +1 -0
  110. package/dist/components/editable/index.js +1 -0
  111. package/dist/components/editable/use-editable.cjs +10 -0
  112. package/dist/components/editable/use-editable.js +10 -0
  113. package/dist/components/field/field-context.cjs +10 -0
  114. package/dist/components/field/field-context.d.cts +7 -0
  115. package/dist/components/field/field-context.d.ts +7 -0
  116. package/dist/components/field/field-context.js +6 -0
  117. package/dist/components/field/field-error-text.cjs +22 -0
  118. package/dist/components/field/field-error-text.d.cts +8 -0
  119. package/dist/components/field/field-error-text.d.ts +8 -0
  120. package/dist/components/field/field-error-text.js +18 -0
  121. package/dist/components/field/field-helper-text.cjs +19 -0
  122. package/dist/components/field/field-helper-text.d.cts +8 -0
  123. package/dist/components/field/field-helper-text.d.ts +8 -0
  124. package/dist/components/field/field-helper-text.js +15 -0
  125. package/dist/components/field/field-input.cjs +19 -0
  126. package/dist/components/field/field-input.d.cts +8 -0
  127. package/dist/components/field/field-input.d.ts +8 -0
  128. package/dist/components/field/field-input.js +15 -0
  129. package/dist/components/field/field-label.cjs +19 -0
  130. package/dist/components/field/field-label.d.cts +8 -0
  131. package/dist/components/field/field-label.d.ts +8 -0
  132. package/dist/components/field/field-label.js +15 -0
  133. package/dist/components/field/field-root-provider.cjs +22 -0
  134. package/dist/components/field/field-root-provider.d.cts +13 -0
  135. package/dist/components/field/field-root-provider.d.ts +13 -0
  136. package/dist/components/field/field-root-provider.js +18 -0
  137. package/dist/components/field/field-root.cjs +29 -0
  138. package/dist/components/field/field-root.d.cts +9 -0
  139. package/dist/components/field/field-root.d.ts +9 -0
  140. package/dist/components/field/field-root.js +25 -0
  141. package/dist/components/field/field-select.cjs +19 -0
  142. package/dist/components/field/field-select.d.cts +8 -0
  143. package/dist/components/field/field-select.d.ts +8 -0
  144. package/dist/components/field/field-select.js +15 -0
  145. package/dist/components/field/field-textarea.cjs +19 -0
  146. package/dist/components/field/field-textarea.d.cts +8 -0
  147. package/dist/components/field/field-textarea.d.ts +8 -0
  148. package/dist/components/field/field-textarea.js +15 -0
  149. package/dist/components/field/field.anatomy.cjs +20 -0
  150. package/dist/components/field/field.anatomy.d.cts +3 -0
  151. package/dist/components/field/field.anatomy.d.ts +3 -0
  152. package/dist/components/field/field.anatomy.js +15 -0
  153. package/dist/components/field/field.cjs +25 -0
  154. package/dist/components/field/field.d.cts +9 -0
  155. package/dist/components/field/field.d.ts +9 -0
  156. package/dist/components/field/field.js +9 -0
  157. package/dist/components/field/index.cjs +31 -0
  158. package/dist/components/field/index.d.cts +12 -0
  159. package/dist/components/field/index.d.ts +12 -0
  160. package/dist/components/field/index.js +13 -0
  161. package/dist/components/field/use-field-context.cjs +16 -0
  162. package/dist/components/field/use-field-context.d.cts +6 -0
  163. package/dist/components/field/use-field-context.d.ts +6 -0
  164. package/dist/components/field/use-field-context.js +11 -0
  165. package/dist/components/field/use-field.cjs +109 -0
  166. package/dist/components/field/use-field.d.cts +100 -0
  167. package/dist/components/field/use-field.d.ts +100 -0
  168. package/dist/components/field/use-field.js +105 -0
  169. package/dist/components/file-upload/file-upload-hidden-input.cjs +3 -1
  170. package/dist/components/file-upload/file-upload-hidden-input.js +3 -1
  171. package/dist/components/file-upload/file-upload-root.cjs +1 -0
  172. package/dist/components/file-upload/file-upload-root.js +1 -0
  173. package/dist/components/file-upload/file-upload.anatomy.d.cts +1 -0
  174. package/dist/components/file-upload/file-upload.anatomy.d.ts +1 -0
  175. package/dist/components/file-upload/index.cjs +7 -2
  176. package/dist/components/file-upload/index.d.cts +1 -0
  177. package/dist/components/file-upload/index.d.ts +1 -0
  178. package/dist/components/file-upload/index.js +1 -0
  179. package/dist/components/file-upload/use-file-upload.cjs +8 -0
  180. package/dist/components/file-upload/use-file-upload.js +8 -0
  181. package/dist/components/hover-card/hover-card.anatomy.d.cts +1 -0
  182. package/dist/components/hover-card/hover-card.anatomy.d.ts +1 -0
  183. package/dist/components/hover-card/index.cjs +7 -2
  184. package/dist/components/hover-card/index.d.cts +1 -0
  185. package/dist/components/hover-card/index.d.ts +1 -0
  186. package/dist/components/hover-card/index.js +1 -0
  187. package/dist/components/index.cjs +233 -50
  188. package/dist/components/index.d.cts +1 -0
  189. package/dist/components/index.d.ts +1 -0
  190. package/dist/components/index.js +49 -0
  191. package/dist/components/menu/index.cjs +7 -2
  192. package/dist/components/menu/index.d.cts +1 -0
  193. package/dist/components/menu/index.d.ts +1 -0
  194. package/dist/components/menu/index.js +1 -0
  195. package/dist/components/menu/menu-checkbox-item.cjs +2 -2
  196. package/dist/components/menu/menu-checkbox-item.js +2 -2
  197. package/dist/components/menu/menu-radio-item.cjs +2 -2
  198. package/dist/components/menu/menu-radio-item.js +2 -2
  199. package/dist/components/menu/menu.anatomy.d.cts +1 -0
  200. package/dist/components/menu/menu.anatomy.d.ts +1 -0
  201. package/dist/components/number-input/index.cjs +9 -2
  202. package/dist/components/number-input/index.d.cts +10 -8
  203. package/dist/components/number-input/index.d.ts +10 -8
  204. package/dist/components/number-input/index.js +2 -0
  205. package/dist/components/number-input/number-input-input.cjs +3 -1
  206. package/dist/components/number-input/number-input-input.js +3 -1
  207. package/dist/components/number-input/number-input-root.cjs +1 -0
  208. package/dist/components/number-input/number-input-root.js +1 -0
  209. package/dist/components/number-input/number-input-value-text.cjs +22 -0
  210. package/dist/components/number-input/number-input-value-text.d.cts +8 -0
  211. package/dist/components/number-input/number-input-value-text.d.ts +8 -0
  212. package/dist/components/number-input/number-input-value-text.js +18 -0
  213. package/dist/components/number-input/number-input.anatomy.d.cts +1 -0
  214. package/dist/components/number-input/number-input.anatomy.d.ts +1 -0
  215. package/dist/components/number-input/number-input.cjs +2 -0
  216. package/dist/components/number-input/number-input.d.cts +9 -8
  217. package/dist/components/number-input/number-input.d.ts +9 -8
  218. package/dist/components/number-input/number-input.js +1 -0
  219. package/dist/components/number-input/use-number-input.cjs +10 -0
  220. package/dist/components/number-input/use-number-input.js +10 -0
  221. package/dist/components/pagination/index.cjs +7 -2
  222. package/dist/components/pagination/index.d.cts +1 -0
  223. package/dist/components/pagination/index.d.ts +1 -0
  224. package/dist/components/pagination/index.js +1 -0
  225. package/dist/components/pagination/pagination.anatomy.d.cts +1 -0
  226. package/dist/components/pagination/pagination.anatomy.d.ts +1 -0
  227. package/dist/components/pin-input/index.cjs +7 -2
  228. package/dist/components/pin-input/index.d.cts +1 -0
  229. package/dist/components/pin-input/index.d.ts +1 -0
  230. package/dist/components/pin-input/index.js +1 -0
  231. package/dist/components/pin-input/pin-input-hidden-input.cjs +3 -1
  232. package/dist/components/pin-input/pin-input-hidden-input.js +3 -1
  233. package/dist/components/pin-input/pin-input-root.cjs +2 -0
  234. package/dist/components/pin-input/pin-input-root.js +2 -0
  235. package/dist/components/pin-input/pin-input.anatomy.d.cts +1 -0
  236. package/dist/components/pin-input/pin-input.anatomy.d.ts +1 -0
  237. package/dist/components/pin-input/use-pin-input.cjs +10 -0
  238. package/dist/components/pin-input/use-pin-input.js +10 -0
  239. package/dist/components/popover/index.cjs +7 -2
  240. package/dist/components/popover/index.d.cts +1 -0
  241. package/dist/components/popover/index.d.ts +1 -0
  242. package/dist/components/popover/index.js +1 -0
  243. package/dist/components/popover/popover-description.d.cts +1 -1
  244. package/dist/components/popover/popover-description.d.ts +1 -1
  245. package/dist/components/popover/popover.anatomy.d.cts +1 -0
  246. package/dist/components/popover/popover.anatomy.d.ts +1 -0
  247. package/dist/components/portal/portal.cjs +8 -2
  248. package/dist/components/portal/portal.js +8 -2
  249. package/dist/components/progress/index.cjs +7 -2
  250. package/dist/components/progress/index.d.cts +1 -0
  251. package/dist/components/progress/index.d.ts +1 -0
  252. package/dist/components/progress/index.js +1 -0
  253. package/dist/components/progress/progress.anatomy.d.cts +1 -0
  254. package/dist/components/progress/progress.anatomy.d.ts +1 -0
  255. package/dist/components/qr-code/index.cjs +5 -0
  256. package/dist/components/qr-code/index.d.cts +1 -0
  257. package/dist/components/qr-code/index.d.ts +1 -0
  258. package/dist/components/qr-code/index.js +1 -0
  259. package/dist/components/qr-code/qr-code.anatomy.d.cts +1 -0
  260. package/dist/components/qr-code/qr-code.anatomy.d.ts +1 -0
  261. package/dist/components/radio-group/index.cjs +5 -0
  262. package/dist/components/radio-group/index.d.cts +1 -0
  263. package/dist/components/radio-group/index.d.ts +1 -0
  264. package/dist/components/radio-group/index.js +1 -0
  265. package/dist/components/radio-group/radio-group.anatomy.d.cts +1 -0
  266. package/dist/components/radio-group/radio-group.anatomy.d.ts +1 -0
  267. package/dist/components/rating-group/index.cjs +5 -0
  268. package/dist/components/rating-group/index.d.cts +1 -0
  269. package/dist/components/rating-group/index.d.ts +1 -0
  270. package/dist/components/rating-group/index.js +1 -0
  271. package/dist/components/rating-group/rating-group-hidden-input.cjs +3 -1
  272. package/dist/components/rating-group/rating-group-hidden-input.js +3 -1
  273. package/dist/components/rating-group/rating-group-root.cjs +1 -0
  274. package/dist/components/rating-group/rating-group-root.js +1 -0
  275. package/dist/components/rating-group/rating-group.anatomy.d.cts +1 -0
  276. package/dist/components/rating-group/rating-group.anatomy.d.ts +1 -0
  277. package/dist/components/rating-group/use-rating-group.cjs +9 -0
  278. package/dist/components/rating-group/use-rating-group.js +9 -0
  279. package/dist/components/segment-group/index.cjs +2 -0
  280. package/dist/components/segment-group/index.d.cts +1 -0
  281. package/dist/components/segment-group/index.d.ts +1 -0
  282. package/dist/components/segment-group/index.js +1 -0
  283. package/dist/components/segment-group/segment-group-indicator.cjs +2 -2
  284. package/dist/components/segment-group/segment-group-indicator.js +2 -2
  285. package/dist/components/segment-group/segment-group-item-control.cjs +2 -2
  286. package/dist/components/segment-group/segment-group-item-control.js +2 -2
  287. package/dist/components/segment-group/segment-group-item-text.cjs +2 -2
  288. package/dist/components/segment-group/segment-group-item-text.js +2 -2
  289. package/dist/components/segment-group/segment-group-item.cjs +2 -2
  290. package/dist/components/segment-group/segment-group-item.js +2 -2
  291. package/dist/components/segment-group/segment-group-label.cjs +2 -2
  292. package/dist/components/segment-group/segment-group-label.js +2 -2
  293. package/dist/components/segment-group/segment-group-root-provider.cjs +2 -2
  294. package/dist/components/segment-group/segment-group-root-provider.js +2 -2
  295. package/dist/components/segment-group/segment-group-root.cjs +2 -2
  296. package/dist/components/segment-group/segment-group-root.js +2 -2
  297. package/dist/components/segment-group/segment-group.anatomy.cjs +12 -0
  298. package/dist/components/segment-group/segment-group.anatomy.d.cts +3 -0
  299. package/dist/components/segment-group/segment-group.anatomy.d.ts +3 -0
  300. package/dist/components/segment-group/segment-group.anatomy.js +7 -0
  301. package/dist/components/select/index.cjs +7 -2
  302. package/dist/components/select/index.d.cts +1 -0
  303. package/dist/components/select/index.d.ts +1 -0
  304. package/dist/components/select/index.js +1 -0
  305. package/dist/components/select/select-hidden-select.cjs +4 -2
  306. package/dist/components/select/select-hidden-select.js +4 -2
  307. package/dist/components/select/select-root.cjs +1 -0
  308. package/dist/components/select/select-root.js +1 -0
  309. package/dist/components/select/select-value-text.cjs +4 -3
  310. package/dist/components/select/select-value-text.js +4 -3
  311. package/dist/components/select/select.anatomy.d.cts +1 -0
  312. package/dist/components/select/select.anatomy.d.ts +1 -0
  313. package/dist/components/select/use-select.cjs +10 -0
  314. package/dist/components/select/use-select.js +10 -0
  315. package/dist/components/signature-pad/index.cjs +9 -2
  316. package/dist/components/signature-pad/index.d.cts +2 -0
  317. package/dist/components/signature-pad/index.d.ts +2 -0
  318. package/dist/components/signature-pad/index.js +2 -0
  319. package/dist/components/signature-pad/signature-pad-hidden-input.cjs +25 -0
  320. package/dist/components/signature-pad/signature-pad-hidden-input.d.cts +10 -0
  321. package/dist/components/signature-pad/signature-pad-hidden-input.d.ts +10 -0
  322. package/dist/components/signature-pad/signature-pad-hidden-input.js +21 -0
  323. package/dist/components/signature-pad/signature-pad-root.cjs +4 -1
  324. package/dist/components/signature-pad/signature-pad-root.js +4 -1
  325. package/dist/components/signature-pad/signature-pad.anatomy.d.cts +1 -0
  326. package/dist/components/signature-pad/signature-pad.anatomy.d.ts +1 -0
  327. package/dist/components/signature-pad/signature-pad.cjs +2 -0
  328. package/dist/components/signature-pad/signature-pad.d.cts +1 -0
  329. package/dist/components/signature-pad/signature-pad.d.ts +1 -0
  330. package/dist/components/signature-pad/signature-pad.js +1 -0
  331. package/dist/components/signature-pad/use-signature-pad.cjs +9 -0
  332. package/dist/components/signature-pad/use-signature-pad.js +9 -0
  333. package/dist/components/slider/index.cjs +7 -2
  334. package/dist/components/slider/index.d.cts +1 -0
  335. package/dist/components/slider/index.d.ts +1 -0
  336. package/dist/components/slider/index.js +1 -0
  337. package/dist/components/slider/slider.anatomy.d.cts +1 -0
  338. package/dist/components/slider/slider.anatomy.d.ts +1 -0
  339. package/dist/components/splitter/index.cjs +7 -2
  340. package/dist/components/splitter/index.d.cts +1 -0
  341. package/dist/components/splitter/index.d.ts +1 -0
  342. package/dist/components/splitter/index.js +1 -0
  343. package/dist/components/splitter/splitter.anatomy.d.cts +1 -0
  344. package/dist/components/splitter/splitter.anatomy.d.ts +1 -0
  345. package/dist/components/switch/index.cjs +5 -0
  346. package/dist/components/switch/index.d.cts +1 -0
  347. package/dist/components/switch/index.d.ts +1 -0
  348. package/dist/components/switch/index.js +1 -0
  349. package/dist/components/switch/switch-hidden-input.cjs +3 -1
  350. package/dist/components/switch/switch-hidden-input.js +3 -1
  351. package/dist/components/switch/switch.anatomy.d.cts +1 -0
  352. package/dist/components/switch/switch.anatomy.d.ts +1 -0
  353. package/dist/components/switch/use-switch.cjs +10 -0
  354. package/dist/components/switch/use-switch.js +10 -0
  355. package/dist/components/tabs/index.cjs +7 -2
  356. package/dist/components/tabs/index.d.cts +1 -0
  357. package/dist/components/tabs/index.d.ts +1 -0
  358. package/dist/components/tabs/index.js +1 -0
  359. package/dist/components/tabs/tabs.anatomy.d.cts +1 -0
  360. package/dist/components/tabs/tabs.anatomy.d.ts +1 -0
  361. package/dist/components/tags-input/index.cjs +7 -2
  362. package/dist/components/tags-input/index.d.cts +1 -0
  363. package/dist/components/tags-input/index.d.ts +1 -0
  364. package/dist/components/tags-input/index.js +1 -0
  365. package/dist/components/tags-input/tags-input-hidden-input.cjs +3 -1
  366. package/dist/components/tags-input/tags-input-hidden-input.js +3 -1
  367. package/dist/components/tags-input/tags-input-root.cjs +1 -0
  368. package/dist/components/tags-input/tags-input-root.js +1 -0
  369. package/dist/components/tags-input/tags-input.anatomy.d.cts +1 -0
  370. package/dist/components/tags-input/tags-input.anatomy.d.ts +1 -0
  371. package/dist/components/tags-input/use-tags-input.cjs +10 -0
  372. package/dist/components/tags-input/use-tags-input.js +10 -0
  373. package/dist/components/toast/index.cjs +7 -2
  374. package/dist/components/toast/index.d.cts +1 -0
  375. package/dist/components/toast/index.d.ts +1 -0
  376. package/dist/components/toast/index.js +1 -0
  377. package/dist/components/toast/toast.anatomy.d.cts +1 -0
  378. package/dist/components/toast/toast.anatomy.d.ts +1 -0
  379. package/dist/components/toggle-group/index.cjs +7 -2
  380. package/dist/components/toggle-group/index.d.cts +1 -0
  381. package/dist/components/toggle-group/index.d.ts +1 -0
  382. package/dist/components/toggle-group/index.js +1 -0
  383. package/dist/components/toggle-group/toggle-group.anatomy.d.cts +1 -0
  384. package/dist/components/toggle-group/toggle-group.anatomy.d.ts +1 -0
  385. package/dist/components/tooltip/index.cjs +7 -2
  386. package/dist/components/tooltip/index.d.cts +1 -0
  387. package/dist/components/tooltip/index.d.ts +1 -0
  388. package/dist/components/tooltip/index.js +1 -0
  389. package/dist/components/tooltip/tooltip.anatomy.d.cts +1 -0
  390. package/dist/components/tooltip/tooltip.anatomy.d.ts +1 -0
  391. package/dist/components/tree-view/index.cjs +7 -2
  392. package/dist/components/tree-view/index.d.cts +1 -0
  393. package/dist/components/tree-view/index.d.ts +1 -0
  394. package/dist/components/tree-view/index.js +1 -0
  395. package/dist/components/tree-view/tree-view.anatomy.d.cts +1 -0
  396. package/dist/components/tree-view/tree-view.anatomy.d.ts +1 -0
  397. package/dist/index.cjs +233 -50
  398. package/dist/index.js +49 -0
  399. package/package.json +60 -49
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/core';
4
+ import { forwardRef } from 'react';
5
+ import { ark } from '../factory.js';
6
+ import { useFieldContext } from './use-field-context.js';
7
+
8
+ const FieldTextarea = forwardRef((props, ref) => {
9
+ const field = useFieldContext();
10
+ const mergedProps = mergeProps(field?.getTextareaProps(), props);
11
+ return /* @__PURE__ */ jsx(ark.textarea, { ...mergedProps, ref });
12
+ });
13
+ FieldTextarea.displayName = "FieldTextarea";
14
+
15
+ export { FieldTextarea };
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const anatomy = require('@zag-js/anatomy');
7
+
8
+ const fieldAnatomy = anatomy.createAnatomy("field").parts(
9
+ "root",
10
+ "errorText",
11
+ "helperText",
12
+ "input",
13
+ "label",
14
+ "select",
15
+ "textarea"
16
+ );
17
+ const parts = fieldAnatomy.build();
18
+
19
+ exports.fieldAnatomy = fieldAnatomy;
20
+ exports.parts = parts;
@@ -0,0 +1,3 @@
1
+ import { AnatomyInstance, AnatomyPart } from '@zag-js/anatomy';
2
+ export declare const fieldAnatomy: AnatomyInstance<"input" | "label" | "select" | "textarea" | "root" | "errorText" | "helperText">;
3
+ export declare const parts: Record<"input" | "label" | "select" | "textarea" | "root" | "errorText" | "helperText", AnatomyPart>;
@@ -0,0 +1,3 @@
1
+ import { AnatomyInstance, AnatomyPart } from '@zag-js/anatomy';
2
+ export declare const fieldAnatomy: AnatomyInstance<"input" | "label" | "select" | "textarea" | "root" | "errorText" | "helperText">;
3
+ export declare const parts: Record<"input" | "label" | "select" | "textarea" | "root" | "errorText" | "helperText", AnatomyPart>;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { createAnatomy } from '@zag-js/anatomy';
3
+
4
+ const fieldAnatomy = createAnatomy("field").parts(
5
+ "root",
6
+ "errorText",
7
+ "helperText",
8
+ "input",
9
+ "label",
10
+ "select",
11
+ "textarea"
12
+ );
13
+ const parts = fieldAnatomy.build();
14
+
15
+ export { fieldAnatomy, parts };
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const fieldRoot = require('./field-root.cjs');
6
+ const fieldRootProvider = require('./field-root-provider.cjs');
7
+ const fieldLabel = require('./field-label.cjs');
8
+ const fieldInput = require('./field-input.cjs');
9
+ const fieldTextarea = require('./field-textarea.cjs');
10
+ const fieldSelect = require('./field-select.cjs');
11
+ const fieldHelperText = require('./field-helper-text.cjs');
12
+ const fieldErrorText = require('./field-error-text.cjs');
13
+ const fieldContext = require('./field-context.cjs');
14
+
15
+
16
+
17
+ exports.Root = fieldRoot.FieldRoot;
18
+ exports.RootProvider = fieldRootProvider.FieldRootProvider;
19
+ exports.Label = fieldLabel.FieldLabel;
20
+ exports.Input = fieldInput.FieldInput;
21
+ exports.Textarea = fieldTextarea.FieldTextarea;
22
+ exports.Select = fieldSelect.FieldSelect;
23
+ exports.HelperText = fieldHelperText.FieldHelperText;
24
+ exports.ErrorText = fieldErrorText.FieldErrorText;
25
+ exports.Context = fieldContext.FieldContext;
@@ -0,0 +1,9 @@
1
+ export { FieldRoot as Root, type FieldRootProps as RootProps, type FieldRootBaseProps as RootBaseProps, } from './field-root';
2
+ export { FieldRootProvider as RootProvider, type FieldRootProviderProps as RootProviderProps, type FieldRootProviderBaseProps as RootProviderBaseProps, } from './field-root-provider';
3
+ export { FieldLabel as Label, type FieldLabelProps as LabelProps, type FieldLabelBaseProps as LabelBaseProps, } from './field-label';
4
+ export { FieldInput as Input, type FieldInputProps as InputProps, type FieldInputBaseProps as InputBaseProps, } from './field-input';
5
+ export { FieldTextarea as Textarea, type FieldTextareaProps as TextareaProps, type FieldTextareaBaseProps as TextareaBaseProps, } from './field-textarea';
6
+ export { FieldSelect as Select, type FieldSelectProps as SelectProps, type FieldSelectBaseProps as SelectBaseProps, } from './field-select';
7
+ export { FieldHelperText as HelperText, type FieldHelperTextProps as HelperTextProps, type FieldHelperTextBaseProps as HelperTextBaseProps, } from './field-helper-text';
8
+ export { FieldErrorText as ErrorText, type FieldErrorTextProps as ErrorTextProps, type FieldErrorTextBaseProps as ErrorTextBaseProps, } from './field-error-text';
9
+ export { FieldContext as Context, type FieldContextProps as ContextProps } from './field-context';
@@ -0,0 +1,9 @@
1
+ export { FieldRoot as Root, type FieldRootProps as RootProps, type FieldRootBaseProps as RootBaseProps, } from './field-root';
2
+ export { FieldRootProvider as RootProvider, type FieldRootProviderProps as RootProviderProps, type FieldRootProviderBaseProps as RootProviderBaseProps, } from './field-root-provider';
3
+ export { FieldLabel as Label, type FieldLabelProps as LabelProps, type FieldLabelBaseProps as LabelBaseProps, } from './field-label';
4
+ export { FieldInput as Input, type FieldInputProps as InputProps, type FieldInputBaseProps as InputBaseProps, } from './field-input';
5
+ export { FieldTextarea as Textarea, type FieldTextareaProps as TextareaProps, type FieldTextareaBaseProps as TextareaBaseProps, } from './field-textarea';
6
+ export { FieldSelect as Select, type FieldSelectProps as SelectProps, type FieldSelectBaseProps as SelectBaseProps, } from './field-select';
7
+ export { FieldHelperText as HelperText, type FieldHelperTextProps as HelperTextProps, type FieldHelperTextBaseProps as HelperTextBaseProps, } from './field-helper-text';
8
+ export { FieldErrorText as ErrorText, type FieldErrorTextProps as ErrorTextProps, type FieldErrorTextBaseProps as ErrorTextBaseProps, } from './field-error-text';
9
+ export { FieldContext as Context, type FieldContextProps as ContextProps } from './field-context';
@@ -0,0 +1,9 @@
1
+ export { FieldRoot as Root } from './field-root.js';
2
+ export { FieldRootProvider as RootProvider } from './field-root-provider.js';
3
+ export { FieldLabel as Label } from './field-label.js';
4
+ export { FieldInput as Input } from './field-input.js';
5
+ export { FieldTextarea as Textarea } from './field-textarea.js';
6
+ export { FieldSelect as Select } from './field-select.js';
7
+ export { FieldHelperText as HelperText } from './field-helper-text.js';
8
+ export { FieldErrorText as ErrorText } from './field-error-text.js';
9
+ export { FieldContext as Context } from './field-context.js';
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const fieldContext = require('./field-context.cjs');
6
+ const fieldErrorText = require('./field-error-text.cjs');
7
+ const fieldHelperText = require('./field-helper-text.cjs');
8
+ const fieldInput = require('./field-input.cjs');
9
+ const fieldLabel = require('./field-label.cjs');
10
+ const fieldSelect = require('./field-select.cjs');
11
+ const fieldRoot = require('./field-root.cjs');
12
+ const fieldRootProvider = require('./field-root-provider.cjs');
13
+ const fieldTextarea = require('./field-textarea.cjs');
14
+ const useFieldContext = require('./use-field-context.cjs');
15
+ const field_anatomy = require('./field.anatomy.cjs');
16
+ const field = require('./field.cjs');
17
+
18
+
19
+
20
+ exports.FieldContext = fieldContext.FieldContext;
21
+ exports.FieldErrorText = fieldErrorText.FieldErrorText;
22
+ exports.FieldHelperText = fieldHelperText.FieldHelperText;
23
+ exports.FieldInput = fieldInput.FieldInput;
24
+ exports.FieldLabel = fieldLabel.FieldLabel;
25
+ exports.FieldSelect = fieldSelect.FieldSelect;
26
+ exports.FieldRoot = fieldRoot.FieldRoot;
27
+ exports.FieldRootProvider = fieldRootProvider.FieldRootProvider;
28
+ exports.FieldTextarea = fieldTextarea.FieldTextarea;
29
+ exports.useFieldContext = useFieldContext.useFieldContext;
30
+ exports.fieldAnatomy = field_anatomy.fieldAnatomy;
31
+ exports.Field = field;
@@ -0,0 +1,12 @@
1
+ export { FieldContext, type FieldContextProps } from './field-context';
2
+ export { FieldErrorText, type FieldErrorTextBaseProps, type FieldErrorTextProps, } from './field-error-text';
3
+ export { FieldHelperText, type FieldHelperTextBaseProps, type FieldHelperTextProps, } from './field-helper-text';
4
+ export { FieldInput, type FieldInputBaseProps, type FieldInputProps } from './field-input';
5
+ export { FieldLabel, type FieldLabelBaseProps, type FieldLabelProps } from './field-label';
6
+ export { FieldSelect, type FieldSelectBaseProps, type FieldSelectProps } from './field-select';
7
+ export { FieldRoot, type FieldRootBaseProps, type FieldRootProps } from './field-root';
8
+ export { FieldRootProvider, type FieldRootProviderBaseProps, type FieldRootProviderProps, } from './field-root-provider';
9
+ export { FieldTextarea, type FieldTextareaBaseProps, type FieldTextareaProps, } from './field-textarea';
10
+ export { useFieldContext, type UseFieldContext } from './use-field-context';
11
+ export { fieldAnatomy } from './field.anatomy';
12
+ export * as Field from './field';
@@ -0,0 +1,12 @@
1
+ export { FieldContext, type FieldContextProps } from './field-context';
2
+ export { FieldErrorText, type FieldErrorTextBaseProps, type FieldErrorTextProps, } from './field-error-text';
3
+ export { FieldHelperText, type FieldHelperTextBaseProps, type FieldHelperTextProps, } from './field-helper-text';
4
+ export { FieldInput, type FieldInputBaseProps, type FieldInputProps } from './field-input';
5
+ export { FieldLabel, type FieldLabelBaseProps, type FieldLabelProps } from './field-label';
6
+ export { FieldSelect, type FieldSelectBaseProps, type FieldSelectProps } from './field-select';
7
+ export { FieldRoot, type FieldRootBaseProps, type FieldRootProps } from './field-root';
8
+ export { FieldRootProvider, type FieldRootProviderBaseProps, type FieldRootProviderProps, } from './field-root-provider';
9
+ export { FieldTextarea, type FieldTextareaBaseProps, type FieldTextareaProps, } from './field-textarea';
10
+ export { useFieldContext, type UseFieldContext } from './use-field-context';
11
+ export { fieldAnatomy } from './field.anatomy';
12
+ export * as Field from './field';
@@ -0,0 +1,13 @@
1
+ export { FieldContext } from './field-context.js';
2
+ export { FieldErrorText } from './field-error-text.js';
3
+ export { FieldHelperText } from './field-helper-text.js';
4
+ export { FieldInput } from './field-input.js';
5
+ export { FieldLabel } from './field-label.js';
6
+ export { FieldSelect } from './field-select.js';
7
+ export { FieldRoot } from './field-root.js';
8
+ export { FieldRootProvider } from './field-root-provider.js';
9
+ export { FieldTextarea } from './field-textarea.js';
10
+ export { useFieldContext } from './use-field-context.js';
11
+ export { fieldAnatomy } from './field.anatomy.js';
12
+ import * as field from './field.js';
13
+ export { field as Field };
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const createContext = require('../../utils/create-context.cjs');
7
+
8
+ const [FieldProvider, useFieldContext] = createContext.createContext({
9
+ name: "FieldContext",
10
+ hookName: "useFieldContext",
11
+ providerName: "<FieldProvider />",
12
+ strict: false
13
+ });
14
+
15
+ exports.FieldProvider = FieldProvider;
16
+ exports.useFieldContext = useFieldContext;
@@ -0,0 +1,6 @@
1
+ import { UseFieldReturn } from './use-field';
2
+ import { Provider } from 'react';
3
+
4
+ export interface UseFieldContext extends UseFieldReturn {
5
+ }
6
+ export declare const FieldProvider: Provider<UseFieldContext>, useFieldContext: () => UseFieldContext;
@@ -0,0 +1,6 @@
1
+ import { UseFieldReturn } from './use-field';
2
+ import { Provider } from 'react';
3
+
4
+ export interface UseFieldContext extends UseFieldReturn {
5
+ }
6
+ export declare const FieldProvider: Provider<UseFieldContext>, useFieldContext: () => UseFieldContext;
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ import { createContext } from '../../utils/create-context.js';
3
+
4
+ const [FieldProvider, useFieldContext] = createContext({
5
+ name: "FieldContext",
6
+ hookName: "useFieldContext",
7
+ providerName: "<FieldProvider />",
8
+ strict: false
9
+ });
10
+
11
+ export { FieldProvider, useFieldContext };
@@ -0,0 +1,109 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const domQuery = require('@zag-js/dom-query');
7
+ const react = require('react');
8
+ const field_anatomy = require('./field.anatomy.cjs');
9
+
10
+ const useField = (props) => {
11
+ const { required = false, disabled = false, invalid = false, readOnly = false } = props;
12
+ const [hasErrorText, setHasErrorText] = react.useState(false);
13
+ const [hasHelperText, setHasHelperText] = react.useState(false);
14
+ const id = props.id ?? react.useId();
15
+ const rootRef = react.useRef(null);
16
+ const errorTextId = `field::${id}::error-text`;
17
+ const helperTextId = `field::${id}::helper-text`;
18
+ const labelId = `field::${id}::label`;
19
+ react.useLayoutEffect(() => {
20
+ const rootNode = rootRef.current;
21
+ if (!rootNode) return;
22
+ const win = domQuery.getWindow(rootNode);
23
+ const doc = win.document;
24
+ const checkTextElements = () => {
25
+ setHasErrorText(!!doc.getElementById(errorTextId));
26
+ setHasHelperText(!!doc.getElementById(helperTextId));
27
+ };
28
+ checkTextElements();
29
+ const observer = new win.MutationObserver(checkTextElements);
30
+ observer.observe(rootNode, { childList: true, subtree: true });
31
+ return () => observer.disconnect();
32
+ }, [errorTextId, helperTextId]);
33
+ const getRootProps = () => ({
34
+ ...field_anatomy.parts.root.attrs,
35
+ role: "group",
36
+ "data-disabled": dataAttr(disabled),
37
+ "data-invalid": dataAttr(invalid),
38
+ "data-readonly": dataAttr(readOnly)
39
+ });
40
+ const getLabelProps = () => ({
41
+ ...field_anatomy.parts.label.attrs,
42
+ id: labelId,
43
+ "data-disabled": dataAttr(disabled),
44
+ "data-invalid": dataAttr(invalid),
45
+ "data-readonly": dataAttr(readOnly),
46
+ htmlFor: id
47
+ });
48
+ const labelIds = [];
49
+ if (hasErrorText && invalid) labelIds.push(errorTextId);
50
+ if (hasHelperText) labelIds.push(helperTextId);
51
+ const getControlProps = () => ({
52
+ "aria-describedby": labelIds.join(" ") || void 0,
53
+ "aria-invalid": ariaAttr(invalid),
54
+ "aria-required": ariaAttr(required),
55
+ "aria-readonly": ariaAttr(readOnly),
56
+ id,
57
+ required,
58
+ disabled,
59
+ readOnly
60
+ });
61
+ const getInputProps = () => ({
62
+ ...getControlProps(),
63
+ ...field_anatomy.parts.input.attrs
64
+ });
65
+ const getTextareaProps = () => ({
66
+ ...getControlProps(),
67
+ ...field_anatomy.parts.textarea.attrs
68
+ });
69
+ const getSelectProps = () => ({
70
+ ...getControlProps(),
71
+ ...field_anatomy.parts.select.attrs
72
+ });
73
+ const getHelperTextProps = () => ({
74
+ id: helperTextId,
75
+ ...field_anatomy.parts.helperText.attrs
76
+ });
77
+ const getErrorTextProps = () => ({
78
+ id: errorTextId,
79
+ ...field_anatomy.parts.errorText.attrs,
80
+ "aria-live": "polite"
81
+ });
82
+ return {
83
+ ariaDescribedby: labelIds.join(" "),
84
+ ids: {
85
+ control: id,
86
+ label: labelId,
87
+ errorText: errorTextId,
88
+ helperText: helperTextId
89
+ },
90
+ refs: {
91
+ rootRef
92
+ },
93
+ disabled,
94
+ invalid,
95
+ readOnly,
96
+ required,
97
+ getLabelProps,
98
+ getRootProps,
99
+ getInputProps,
100
+ getTextareaProps,
101
+ getSelectProps,
102
+ getHelperTextProps,
103
+ getErrorTextProps
104
+ };
105
+ };
106
+ const dataAttr = (condition) => condition ? "" : void 0;
107
+ const ariaAttr = (condition) => condition ? true : void 0;
108
+
109
+ exports.useField = useField;
@@ -0,0 +1,100 @@
1
+ import { HTMLProps } from '../factory';
2
+ import { RefObject } from 'react';
3
+
4
+ export interface UseFieldProps {
5
+ id?: string;
6
+ /**
7
+ * Indicates whether the field is required.
8
+ */
9
+ required?: boolean;
10
+ /**
11
+ * Indicates whether the field is disabled.
12
+ */
13
+ disabled?: boolean;
14
+ /**
15
+ * Indicates whether the field is invalid.
16
+ */
17
+ invalid?: boolean;
18
+ /**
19
+ * Indicates whether the field is read-only.
20
+ */
21
+ readOnly?: boolean;
22
+ }
23
+ export type UseFieldReturn = ReturnType<typeof useField>;
24
+ export declare const useField: (props: UseFieldProps) => {
25
+ ariaDescribedby: string;
26
+ ids: {
27
+ control: string;
28
+ label: string;
29
+ errorText: string;
30
+ helperText: string;
31
+ };
32
+ refs: {
33
+ rootRef: RefObject<HTMLDivElement>;
34
+ };
35
+ disabled: boolean;
36
+ invalid: boolean;
37
+ readOnly: boolean;
38
+ required: boolean;
39
+ getLabelProps: () => {
40
+ id: string;
41
+ 'data-disabled': Booleanish;
42
+ 'data-invalid': Booleanish;
43
+ 'data-readonly': Booleanish;
44
+ htmlFor: string;
45
+ "data-scope": string;
46
+ "data-part": string;
47
+ };
48
+ getRootProps: () => {
49
+ role: string;
50
+ 'data-disabled': Booleanish;
51
+ 'data-invalid': Booleanish;
52
+ 'data-readonly': Booleanish;
53
+ "data-scope": string;
54
+ "data-part": string;
55
+ };
56
+ getInputProps: () => {
57
+ "data-scope": string;
58
+ "data-part": string;
59
+ 'aria-describedby': string | undefined;
60
+ 'aria-invalid': boolean | undefined;
61
+ 'aria-required': boolean | undefined;
62
+ 'aria-readonly': boolean | undefined;
63
+ id: string;
64
+ required: boolean;
65
+ disabled: boolean;
66
+ readOnly: boolean;
67
+ };
68
+ getTextareaProps: () => {
69
+ "data-scope": string;
70
+ "data-part": string;
71
+ 'aria-describedby': string | undefined;
72
+ 'aria-invalid': boolean | undefined;
73
+ 'aria-required': boolean | undefined;
74
+ 'aria-readonly': boolean | undefined;
75
+ id: string;
76
+ required: boolean;
77
+ disabled: boolean;
78
+ readOnly: boolean;
79
+ };
80
+ getSelectProps: () => {
81
+ "data-scope": string;
82
+ "data-part": string;
83
+ 'aria-describedby': string | undefined;
84
+ 'aria-invalid': boolean | undefined;
85
+ 'aria-required': boolean | undefined;
86
+ 'aria-readonly': boolean | undefined;
87
+ id: string;
88
+ required: boolean;
89
+ disabled: boolean;
90
+ readOnly: boolean;
91
+ };
92
+ getHelperTextProps: () => {
93
+ "data-scope": string;
94
+ "data-part": string;
95
+ id: string;
96
+ };
97
+ getErrorTextProps: () => HTMLProps<"span">;
98
+ };
99
+ type Booleanish = boolean | 'true' | 'false';
100
+ export {};
@@ -0,0 +1,100 @@
1
+ import { HTMLProps } from '../factory';
2
+ import { RefObject } from 'react';
3
+
4
+ export interface UseFieldProps {
5
+ id?: string;
6
+ /**
7
+ * Indicates whether the field is required.
8
+ */
9
+ required?: boolean;
10
+ /**
11
+ * Indicates whether the field is disabled.
12
+ */
13
+ disabled?: boolean;
14
+ /**
15
+ * Indicates whether the field is invalid.
16
+ */
17
+ invalid?: boolean;
18
+ /**
19
+ * Indicates whether the field is read-only.
20
+ */
21
+ readOnly?: boolean;
22
+ }
23
+ export type UseFieldReturn = ReturnType<typeof useField>;
24
+ export declare const useField: (props: UseFieldProps) => {
25
+ ariaDescribedby: string;
26
+ ids: {
27
+ control: string;
28
+ label: string;
29
+ errorText: string;
30
+ helperText: string;
31
+ };
32
+ refs: {
33
+ rootRef: RefObject<HTMLDivElement>;
34
+ };
35
+ disabled: boolean;
36
+ invalid: boolean;
37
+ readOnly: boolean;
38
+ required: boolean;
39
+ getLabelProps: () => {
40
+ id: string;
41
+ 'data-disabled': Booleanish;
42
+ 'data-invalid': Booleanish;
43
+ 'data-readonly': Booleanish;
44
+ htmlFor: string;
45
+ "data-scope": string;
46
+ "data-part": string;
47
+ };
48
+ getRootProps: () => {
49
+ role: string;
50
+ 'data-disabled': Booleanish;
51
+ 'data-invalid': Booleanish;
52
+ 'data-readonly': Booleanish;
53
+ "data-scope": string;
54
+ "data-part": string;
55
+ };
56
+ getInputProps: () => {
57
+ "data-scope": string;
58
+ "data-part": string;
59
+ 'aria-describedby': string | undefined;
60
+ 'aria-invalid': boolean | undefined;
61
+ 'aria-required': boolean | undefined;
62
+ 'aria-readonly': boolean | undefined;
63
+ id: string;
64
+ required: boolean;
65
+ disabled: boolean;
66
+ readOnly: boolean;
67
+ };
68
+ getTextareaProps: () => {
69
+ "data-scope": string;
70
+ "data-part": string;
71
+ 'aria-describedby': string | undefined;
72
+ 'aria-invalid': boolean | undefined;
73
+ 'aria-required': boolean | undefined;
74
+ 'aria-readonly': boolean | undefined;
75
+ id: string;
76
+ required: boolean;
77
+ disabled: boolean;
78
+ readOnly: boolean;
79
+ };
80
+ getSelectProps: () => {
81
+ "data-scope": string;
82
+ "data-part": string;
83
+ 'aria-describedby': string | undefined;
84
+ 'aria-invalid': boolean | undefined;
85
+ 'aria-required': boolean | undefined;
86
+ 'aria-readonly': boolean | undefined;
87
+ id: string;
88
+ required: boolean;
89
+ disabled: boolean;
90
+ readOnly: boolean;
91
+ };
92
+ getHelperTextProps: () => {
93
+ "data-scope": string;
94
+ "data-part": string;
95
+ id: string;
96
+ };
97
+ getErrorTextProps: () => HTMLProps<"span">;
98
+ };
99
+ type Booleanish = boolean | 'true' | 'false';
100
+ export {};
@@ -0,0 +1,105 @@
1
+ 'use client';
2
+ import { getWindow } from '@zag-js/dom-query';
3
+ import { useState, useId, useRef, useLayoutEffect } from 'react';
4
+ import { parts } from './field.anatomy.js';
5
+
6
+ const useField = (props) => {
7
+ const { required = false, disabled = false, invalid = false, readOnly = false } = props;
8
+ const [hasErrorText, setHasErrorText] = useState(false);
9
+ const [hasHelperText, setHasHelperText] = useState(false);
10
+ const id = props.id ?? useId();
11
+ const rootRef = useRef(null);
12
+ const errorTextId = `field::${id}::error-text`;
13
+ const helperTextId = `field::${id}::helper-text`;
14
+ const labelId = `field::${id}::label`;
15
+ useLayoutEffect(() => {
16
+ const rootNode = rootRef.current;
17
+ if (!rootNode) return;
18
+ const win = getWindow(rootNode);
19
+ const doc = win.document;
20
+ const checkTextElements = () => {
21
+ setHasErrorText(!!doc.getElementById(errorTextId));
22
+ setHasHelperText(!!doc.getElementById(helperTextId));
23
+ };
24
+ checkTextElements();
25
+ const observer = new win.MutationObserver(checkTextElements);
26
+ observer.observe(rootNode, { childList: true, subtree: true });
27
+ return () => observer.disconnect();
28
+ }, [errorTextId, helperTextId]);
29
+ const getRootProps = () => ({
30
+ ...parts.root.attrs,
31
+ role: "group",
32
+ "data-disabled": dataAttr(disabled),
33
+ "data-invalid": dataAttr(invalid),
34
+ "data-readonly": dataAttr(readOnly)
35
+ });
36
+ const getLabelProps = () => ({
37
+ ...parts.label.attrs,
38
+ id: labelId,
39
+ "data-disabled": dataAttr(disabled),
40
+ "data-invalid": dataAttr(invalid),
41
+ "data-readonly": dataAttr(readOnly),
42
+ htmlFor: id
43
+ });
44
+ const labelIds = [];
45
+ if (hasErrorText && invalid) labelIds.push(errorTextId);
46
+ if (hasHelperText) labelIds.push(helperTextId);
47
+ const getControlProps = () => ({
48
+ "aria-describedby": labelIds.join(" ") || void 0,
49
+ "aria-invalid": ariaAttr(invalid),
50
+ "aria-required": ariaAttr(required),
51
+ "aria-readonly": ariaAttr(readOnly),
52
+ id,
53
+ required,
54
+ disabled,
55
+ readOnly
56
+ });
57
+ const getInputProps = () => ({
58
+ ...getControlProps(),
59
+ ...parts.input.attrs
60
+ });
61
+ const getTextareaProps = () => ({
62
+ ...getControlProps(),
63
+ ...parts.textarea.attrs
64
+ });
65
+ const getSelectProps = () => ({
66
+ ...getControlProps(),
67
+ ...parts.select.attrs
68
+ });
69
+ const getHelperTextProps = () => ({
70
+ id: helperTextId,
71
+ ...parts.helperText.attrs
72
+ });
73
+ const getErrorTextProps = () => ({
74
+ id: errorTextId,
75
+ ...parts.errorText.attrs,
76
+ "aria-live": "polite"
77
+ });
78
+ return {
79
+ ariaDescribedby: labelIds.join(" "),
80
+ ids: {
81
+ control: id,
82
+ label: labelId,
83
+ errorText: errorTextId,
84
+ helperText: helperTextId
85
+ },
86
+ refs: {
87
+ rootRef
88
+ },
89
+ disabled,
90
+ invalid,
91
+ readOnly,
92
+ required,
93
+ getLabelProps,
94
+ getRootProps,
95
+ getInputProps,
96
+ getTextareaProps,
97
+ getSelectProps,
98
+ getHelperTextProps,
99
+ getErrorTextProps
100
+ };
101
+ };
102
+ const dataAttr = (condition) => condition ? "" : void 0;
103
+ const ariaAttr = (condition) => condition ? true : void 0;
104
+
105
+ export { useField };