@customafk/lunas-ui 0.2.83 → 0.2.85

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 (262) hide show
  1. package/dist/LoginPage-DGgThT3s.mjs +2 -0
  2. package/dist/LoginPage-DGgThT3s.mjs.map +1 -0
  3. package/dist/LoginPage-DPUdRD0r.cjs +2 -0
  4. package/dist/LoginPage-DPUdRD0r.cjs.map +1 -0
  5. package/dist/action-submit-B2qFdfi6.cjs +2 -0
  6. package/dist/{action-submit-B9vHpLoN.cjs.map → action-submit-B2qFdfi6.cjs.map} +1 -1
  7. package/dist/action-submit-DyNvI-F2.mjs +2 -0
  8. package/dist/{action-submit-BQdkz4mS.mjs.map → action-submit-DyNvI-F2.mjs.map} +1 -1
  9. package/dist/actions-form-CB0lZlE6.mjs +2 -0
  10. package/dist/{actions-form-D4n1W3-X.mjs.map → actions-form-CB0lZlE6.mjs.map} +1 -1
  11. package/dist/actions-form-DnlpVrgF.cjs +2 -0
  12. package/dist/{actions-form-DF2eYxGQ.cjs.map → actions-form-DnlpVrgF.cjs.map} +1 -1
  13. package/dist/checkbox-field-CFPHAcwN.cjs +2 -0
  14. package/dist/{checkbox-field-ldZRSCca.cjs.map → checkbox-field-CFPHAcwN.cjs.map} +1 -1
  15. package/dist/checkbox-field-DodKeFS_.mjs +2 -0
  16. package/dist/{checkbox-field-BRGTLOjq.mjs.map → checkbox-field-DodKeFS_.mjs.map} +1 -1
  17. package/dist/{cms-layout-BGsf1E4E.cjs → cms-layout-DYEmSqzx.cjs} +2 -2
  18. package/dist/{cms-layout-BGsf1E4E.cjs.map → cms-layout-DYEmSqzx.cjs.map} +1 -1
  19. package/dist/combobox-field-D7cZ8fhZ.cjs +2 -0
  20. package/dist/{combobox-field-ZYr7636s.cjs.map → combobox-field-D7cZ8fhZ.cjs.map} +1 -1
  21. package/dist/combobox-field-ebIvbhJn.mjs +2 -0
  22. package/dist/{combobox-field-CvkdZkQE.mjs.map → combobox-field-ebIvbhJn.mjs.map} +1 -1
  23. package/dist/data-display/country.cjs +1 -1
  24. package/dist/date-field-CNkxebta.mjs +2 -0
  25. package/dist/{date-field-DGMTG_hu.mjs.map → date-field-CNkxebta.mjs.map} +1 -1
  26. package/dist/date-field-Dm367ro9.cjs +2 -0
  27. package/dist/{date-field-1Hmcv8Zp.cjs.map → date-field-Dm367ro9.cjs.map} +1 -1
  28. package/dist/dialog-form-D9Bifsx6.cjs +2 -0
  29. package/dist/{dialog-form-C1qpltYx.cjs.map → dialog-form-D9Bifsx6.cjs.map} +1 -1
  30. package/dist/dialog-form-zK6Gk9Gk.mjs +2 -0
  31. package/dist/{dialog-form-BRSZpRTC.mjs.map → dialog-form-zK6Gk9Gk.mjs.map} +1 -1
  32. package/dist/{dist-DzA--RwW.cjs → dist-CIdWHwhj.cjs} +2 -2
  33. package/dist/{dist-DzA--RwW.cjs.map → dist-CIdWHwhj.cjs.map} +1 -1
  34. package/dist/email-field-BVl7u9pR.mjs +2 -0
  35. package/dist/{email-field-C2Lvl_rQ.mjs.map → email-field-BVl7u9pR.mjs.map} +1 -1
  36. package/dist/email-field-CqXXRG3w.cjs +2 -0
  37. package/dist/{email-field-D3nSkHj2.cjs.map → email-field-CqXXRG3w.cjs.map} +1 -1
  38. package/dist/features/tables/index.d.cts +1 -1
  39. package/dist/features/tables/index.d.mts +1 -1
  40. package/dist/features/tanstack-form/index.cjs +1 -1
  41. package/dist/features/tanstack-form/index.d.cts +1 -1
  42. package/dist/features/tanstack-form/index.d.mts +1 -1
  43. package/dist/features/tanstack-form/index.mjs +1 -1
  44. package/dist/features/text-editor/index.cjs +1 -1
  45. package/dist/features/text-editor/index.d.cts +1 -1
  46. package/dist/features/text-editor/index.d.mts +1 -1
  47. package/dist/features/text-editor/index.mjs +1 -1
  48. package/dist/{flex-C63_IqSY.d.cts → flex-D6RCsrv1.d.cts} +2 -2
  49. package/dist/{flex-C63_IqSY.d.mts → flex-D6RCsrv1.d.mts} +2 -2
  50. package/dist/group-field-8nINgAeO.mjs +2 -0
  51. package/dist/{group-field-gejvx_Td.mjs.map → group-field-8nINgAeO.mjs.map} +1 -1
  52. package/dist/group-field-DfGPDLyp.cjs +2 -0
  53. package/dist/{group-field-sVykO2JZ.cjs.map → group-field-DfGPDLyp.cjs.map} +1 -1
  54. package/dist/{index-DvC1inRy.d.cts → index-0HuXxgjQ.d.cts} +13 -10
  55. package/dist/index-6_zytlWu.d.cts +70 -0
  56. package/dist/index-6_zytlWu.d.mts +70 -0
  57. package/dist/{index-CrkOhm--.d.mts → index-BCBEYTyA.d.mts} +5 -5
  58. package/dist/{index--wNkNzCB.d.cts → index-CQPyC0Q2.d.cts} +5 -5
  59. package/dist/{index-DvC1inRy.d.mts → index-CZ_2KVir.d.mts} +13 -10
  60. package/dist/{index-DRAyYm8g.d.mts → index-CvFEJoon.d.cts} +12 -3
  61. package/dist/{index-DRAyYm8g.d.cts → index-CvFEJoon.d.mts} +12 -3
  62. package/dist/index.cjs +1 -1
  63. package/dist/index.d.cts +6 -6
  64. package/dist/index.d.mts +6 -6
  65. package/dist/index.mjs +1 -1
  66. package/dist/layouts/cms-layout/index.cjs +1 -1
  67. package/dist/layouts/flex.d.cts +1 -1
  68. package/dist/layouts/flex.d.mts +1 -1
  69. package/dist/layouts/payment-layout/index.cjs +1 -1
  70. package/dist/number-field-BjGl_IiN.cjs +2 -0
  71. package/dist/{number-field-CWDYA3La.cjs.map → number-field-BjGl_IiN.cjs.map} +1 -1
  72. package/dist/number-field-CVemIwIg.mjs +2 -0
  73. package/dist/{number-field-CR5PLX6H.mjs.map → number-field-CVemIwIg.mjs.map} +1 -1
  74. package/dist/pages/LoginPage/index.cjs +1 -0
  75. package/dist/pages/LoginPage/index.d.cts +2 -0
  76. package/dist/pages/LoginPage/index.d.mts +2 -0
  77. package/dist/pages/LoginPage/index.mjs +1 -0
  78. package/dist/password-field-Be0Ltlxh.cjs +2 -0
  79. package/dist/{password-field-BHRhVyZ0.cjs.map → password-field-Be0Ltlxh.cjs.map} +1 -1
  80. package/dist/password-field-BxYaT8lO.mjs +2 -0
  81. package/dist/{password-field-B2_kzss6.mjs.map → password-field-BxYaT8lO.mjs.map} +1 -1
  82. package/dist/{payment-layout-BZtIcu-3.cjs → payment-layout-C38xIc2X.cjs} +2 -2
  83. package/dist/{payment-layout-BZtIcu-3.cjs.map → payment-layout-C38xIc2X.cjs.map} +1 -1
  84. package/dist/popover-form-Ba_Nw79b.cjs +2 -0
  85. package/dist/{popover-form-Ch_iMMSm.cjs.map → popover-form-Ba_Nw79b.cjs.map} +1 -1
  86. package/dist/popover-form-C9mNInr2.mjs +2 -0
  87. package/dist/{popover-form-CeRVpy1B.mjs.map → popover-form-C9mNInr2.mjs.map} +1 -1
  88. package/dist/radio-group-field-BCJWamjd.cjs +2 -0
  89. package/dist/{radio-group-field-BFhBfzoT.cjs.map → radio-group-field-BCJWamjd.cjs.map} +1 -1
  90. package/dist/radio-group-field-DYqU_6hW.mjs +2 -0
  91. package/dist/{radio-group-field-Iwo2Q2Ig.mjs.map → radio-group-field-DYqU_6hW.mjs.map} +1 -1
  92. package/dist/{resizable-CNqPu4Ck.d.cts → resizable-DTnfCua-.d.cts} +2 -2
  93. package/dist/{resizable-CNqPu4Ck.d.mts → resizable-DTnfCua-.d.mts} +2 -2
  94. package/dist/rolldown-runtime-DWNI8pZO.cjs +1 -0
  95. package/dist/select-field-D7Ny2Qne.mjs +2 -0
  96. package/dist/{select-field-NJgDDCO2.mjs.map → select-field-D7Ny2Qne.mjs.map} +1 -1
  97. package/dist/select-field-UWnBMAzL.cjs +2 -0
  98. package/dist/{select-field-CvDBZQTl.cjs.map → select-field-UWnBMAzL.cjs.map} +1 -1
  99. package/dist/simple-array-field-BSMxRilE.cjs +2 -0
  100. package/dist/{simple-array-field-aGXkDZXD.cjs.map → simple-array-field-BSMxRilE.cjs.map} +1 -1
  101. package/dist/simple-array-field-DJXa_vST.mjs +2 -0
  102. package/dist/{simple-array-field-BwNCeUnn.mjs.map → simple-array-field-DJXa_vST.mjs.map} +1 -1
  103. package/dist/simple-boolean-field-CVNT8NBk.mjs +2 -0
  104. package/dist/{simple-boolean-field-t_XDXqYs.mjs.map → simple-boolean-field-CVNT8NBk.mjs.map} +1 -1
  105. package/dist/simple-boolean-field-CxAyVQ1w.cjs +2 -0
  106. package/dist/{simple-boolean-field-BeVkn3c4.cjs.map → simple-boolean-field-CxAyVQ1w.cjs.map} +1 -1
  107. package/dist/simple-combobox-field-BP4IeDkA.cjs +2 -0
  108. package/dist/{simple-combobox-field-U0ZAl7VQ.cjs.map → simple-combobox-field-BP4IeDkA.cjs.map} +1 -1
  109. package/dist/simple-combobox-field-BnAUDfQU.mjs +2 -0
  110. package/dist/{simple-combobox-field-HCB4A33-.mjs.map → simple-combobox-field-BnAUDfQU.mjs.map} +1 -1
  111. package/dist/simple-date-field-DIa6UBF2.mjs +2 -0
  112. package/dist/{simple-date-field-Dj4bJoji.mjs.map → simple-date-field-DIa6UBF2.mjs.map} +1 -1
  113. package/dist/simple-date-field-NSawlSff.cjs +2 -0
  114. package/dist/{simple-date-field-DtxEpEZj.cjs.map → simple-date-field-NSawlSff.cjs.map} +1 -1
  115. package/dist/simple-email-field-2Abh3qZw.cjs +2 -0
  116. package/dist/{simple-email-field-DK9I_Tc_.cjs.map → simple-email-field-2Abh3qZw.cjs.map} +1 -1
  117. package/dist/simple-email-field-CKDQgzh5.mjs +2 -0
  118. package/dist/{simple-email-field-BDyhkmHV.mjs.map → simple-email-field-CKDQgzh5.mjs.map} +1 -1
  119. package/dist/simple-number-field-BjEYE54F.cjs +2 -0
  120. package/dist/{simple-number-field-BspqWU-3.cjs.map → simple-number-field-BjEYE54F.cjs.map} +1 -1
  121. package/dist/simple-number-field-SDbxL6L7.mjs +2 -0
  122. package/dist/{simple-number-field-hneXMhfJ.mjs.map → simple-number-field-SDbxL6L7.mjs.map} +1 -1
  123. package/dist/simple-password-field-Cjp6yzWd.cjs +2 -0
  124. package/dist/{simple-password-field-BEEcleom.cjs.map → simple-password-field-Cjp6yzWd.cjs.map} +1 -1
  125. package/dist/simple-password-field-Cnj-hf5g.mjs +2 -0
  126. package/dist/{simple-password-field-vsLRHDk4.mjs.map → simple-password-field-Cnj-hf5g.mjs.map} +1 -1
  127. package/dist/simple-radio-group-field-4-eWSXY7.mjs +2 -0
  128. package/dist/{simple-radio-group-field-BURm_BSA.mjs.map → simple-radio-group-field-4-eWSXY7.mjs.map} +1 -1
  129. package/dist/simple-radio-group-field-CuA0Q-XI.cjs +2 -0
  130. package/dist/{simple-radio-group-field-Wm8xB0fN.cjs.map → simple-radio-group-field-CuA0Q-XI.cjs.map} +1 -1
  131. package/dist/simple-select-field-C0ecQx68.mjs +2 -0
  132. package/dist/{simple-select-field-8cY51U4d.mjs.map → simple-select-field-C0ecQx68.mjs.map} +1 -1
  133. package/dist/simple-select-field-CXYJcRY2.cjs +2 -0
  134. package/dist/{simple-select-field-QQ65caBf.cjs.map → simple-select-field-CXYJcRY2.cjs.map} +1 -1
  135. package/dist/simple-text-field-DJl5SIGn.mjs +2 -0
  136. package/dist/{simple-text-field-DK72_OA_.mjs.map → simple-text-field-DJl5SIGn.mjs.map} +1 -1
  137. package/dist/simple-text-field-DPXqNCXh.cjs +2 -0
  138. package/dist/{simple-text-field-BHkCPiE5.cjs.map → simple-text-field-DPXqNCXh.cjs.map} +1 -1
  139. package/dist/simple-textarea-field-BcHdUMTK.mjs +2 -0
  140. package/dist/{simple-textarea-field-B72nNQHv.mjs.map → simple-textarea-field-BcHdUMTK.mjs.map} +1 -1
  141. package/dist/simple-textarea-field-ZpXPwYz-.cjs +2 -0
  142. package/dist/{simple-textarea-field-Bu5h7sfH.cjs.map → simple-textarea-field-ZpXPwYz-.cjs.map} +1 -1
  143. package/dist/switch-field-CCDuDdpf.cjs +2 -0
  144. package/dist/{switch-field-eLVlQZSI.cjs.map → switch-field-CCDuDdpf.cjs.map} +1 -1
  145. package/dist/switch-field-DBGFsmEZ.mjs +2 -0
  146. package/dist/{switch-field-DoPUWb9d.mjs.map → switch-field-DBGFsmEZ.mjs.map} +1 -1
  147. package/dist/tanstack-form-BhKAn9I0.mjs +2 -0
  148. package/dist/tanstack-form-BhKAn9I0.mjs.map +1 -0
  149. package/dist/tanstack-form-DCB2addt.cjs +2 -0
  150. package/dist/tanstack-form-DCB2addt.cjs.map +1 -0
  151. package/dist/text-editor-DWZf3yrW.cjs +2 -0
  152. package/dist/text-editor-DWZf3yrW.cjs.map +1 -0
  153. package/dist/text-editor-XBOAwJk-.mjs +2 -0
  154. package/dist/text-editor-XBOAwJk-.mjs.map +1 -0
  155. package/dist/text-field-Bx_vnc4O.mjs +2 -0
  156. package/dist/{text-field-Bm-k6Jr7.mjs.map → text-field-Bx_vnc4O.mjs.map} +1 -1
  157. package/dist/text-field-DMZZ6CND.cjs +2 -0
  158. package/dist/{text-field-DT50dOVI.cjs.map → text-field-DMZZ6CND.cjs.map} +1 -1
  159. package/dist/textarea-field-BmImMdg-.cjs +2 -0
  160. package/dist/{textarea-field-BhqX29CS.cjs.map → textarea-field-BmImMdg-.cjs.map} +1 -1
  161. package/dist/textarea-field-Cim3l0y8.mjs +2 -0
  162. package/dist/{textarea-field-DNLyrRH7.mjs.map → textarea-field-Cim3l0y8.mjs.map} +1 -1
  163. package/dist/title-field-2dABwspv.mjs +2 -0
  164. package/dist/{title-field-oAqHRw59.mjs.map → title-field-2dABwspv.mjs.map} +1 -1
  165. package/dist/title-field-CFnSgTGH.cjs +2 -0
  166. package/dist/{title-field-B2hM3S_S.cjs.map → title-field-CFnSgTGH.cjs.map} +1 -1
  167. package/dist/ui/breadcrumb.cjs +1 -1
  168. package/dist/ui/button-group.cjs +1 -1
  169. package/dist/ui/button.cjs +1 -1
  170. package/dist/ui/carousel.cjs +1 -1
  171. package/dist/ui/dropdown-menu.cjs +1 -1
  172. package/dist/ui/dropdown-menu.cjs.map +1 -1
  173. package/dist/ui/dropdown-menu.mjs +1 -1
  174. package/dist/ui/dropdown-menu.mjs.map +1 -1
  175. package/dist/ui/file-uploader.cjs +1 -1
  176. package/dist/ui/item.cjs +1 -1
  177. package/dist/ui/resizable.cjs +1 -1
  178. package/dist/ui/resizable.d.cts +1 -1
  179. package/dist/ui/resizable.d.mts +1 -1
  180. package/package.json +9 -4
  181. package/styles/text-editor.css +205 -38
  182. package/dist/LoginPage-DDljzV6A.d.cts +0 -43
  183. package/dist/LoginPage-DDljzV6A.d.mts +0 -43
  184. package/dist/action-submit-B9vHpLoN.cjs +0 -2
  185. package/dist/action-submit-BQdkz4mS.mjs +0 -2
  186. package/dist/actions-form-D4n1W3-X.mjs +0 -2
  187. package/dist/actions-form-DF2eYxGQ.cjs +0 -2
  188. package/dist/checkbox-field-BRGTLOjq.mjs +0 -2
  189. package/dist/checkbox-field-ldZRSCca.cjs +0 -2
  190. package/dist/combobox-field-CvkdZkQE.mjs +0 -2
  191. package/dist/combobox-field-ZYr7636s.cjs +0 -2
  192. package/dist/date-field-1Hmcv8Zp.cjs +0 -2
  193. package/dist/date-field-DGMTG_hu.mjs +0 -2
  194. package/dist/dialog-form-BRSZpRTC.mjs +0 -2
  195. package/dist/dialog-form-C1qpltYx.cjs +0 -2
  196. package/dist/email-field-C2Lvl_rQ.mjs +0 -2
  197. package/dist/email-field-D3nSkHj2.cjs +0 -2
  198. package/dist/field-BSLi-P0Q.cjs +0 -2
  199. package/dist/field-BSLi-P0Q.cjs.map +0 -1
  200. package/dist/field-V2DoD8qL.mjs +0 -2
  201. package/dist/field-V2DoD8qL.mjs.map +0 -1
  202. package/dist/group-field-gejvx_Td.mjs +0 -2
  203. package/dist/group-field-sVykO2JZ.cjs +0 -2
  204. package/dist/number-field-CR5PLX6H.mjs +0 -2
  205. package/dist/number-field-CWDYA3La.cjs +0 -2
  206. package/dist/pages/LoginPage.cjs +0 -2
  207. package/dist/pages/LoginPage.cjs.map +0 -1
  208. package/dist/pages/LoginPage.d.cts +0 -2
  209. package/dist/pages/LoginPage.d.mts +0 -2
  210. package/dist/pages/LoginPage.mjs +0 -2
  211. package/dist/pages/LoginPage.mjs.map +0 -1
  212. package/dist/password-field-B2_kzss6.mjs +0 -2
  213. package/dist/password-field-BHRhVyZ0.cjs +0 -2
  214. package/dist/popover-form-CeRVpy1B.mjs +0 -2
  215. package/dist/popover-form-Ch_iMMSm.cjs +0 -2
  216. package/dist/radio-group-field-BFhBfzoT.cjs +0 -2
  217. package/dist/radio-group-field-Iwo2Q2Ig.mjs +0 -2
  218. package/dist/rolldown-runtime-CMqjfN_6.cjs +0 -1
  219. package/dist/select-field-CvDBZQTl.cjs +0 -2
  220. package/dist/select-field-NJgDDCO2.mjs +0 -2
  221. package/dist/simple-array-field-BwNCeUnn.mjs +0 -2
  222. package/dist/simple-array-field-aGXkDZXD.cjs +0 -2
  223. package/dist/simple-boolean-field-BeVkn3c4.cjs +0 -2
  224. package/dist/simple-boolean-field-t_XDXqYs.mjs +0 -2
  225. package/dist/simple-combobox-field-HCB4A33-.mjs +0 -2
  226. package/dist/simple-combobox-field-U0ZAl7VQ.cjs +0 -2
  227. package/dist/simple-date-field-Dj4bJoji.mjs +0 -2
  228. package/dist/simple-date-field-DtxEpEZj.cjs +0 -2
  229. package/dist/simple-email-field-BDyhkmHV.mjs +0 -2
  230. package/dist/simple-email-field-DK9I_Tc_.cjs +0 -2
  231. package/dist/simple-number-field-BspqWU-3.cjs +0 -2
  232. package/dist/simple-number-field-hneXMhfJ.mjs +0 -2
  233. package/dist/simple-password-field-BEEcleom.cjs +0 -2
  234. package/dist/simple-password-field-vsLRHDk4.mjs +0 -2
  235. package/dist/simple-radio-group-field-BURm_BSA.mjs +0 -2
  236. package/dist/simple-radio-group-field-Wm8xB0fN.cjs +0 -2
  237. package/dist/simple-select-field-8cY51U4d.mjs +0 -2
  238. package/dist/simple-select-field-QQ65caBf.cjs +0 -2
  239. package/dist/simple-text-field-BHkCPiE5.cjs +0 -2
  240. package/dist/simple-text-field-DK72_OA_.mjs +0 -2
  241. package/dist/simple-textarea-field-B72nNQHv.mjs +0 -2
  242. package/dist/simple-textarea-field-Bu5h7sfH.cjs +0 -2
  243. package/dist/switch-field-DoPUWb9d.mjs +0 -2
  244. package/dist/switch-field-eLVlQZSI.cjs +0 -2
  245. package/dist/tanstack-form-C0ab8EEl.cjs +0 -2
  246. package/dist/tanstack-form-C0ab8EEl.cjs.map +0 -1
  247. package/dist/tanstack-form-fkaBh9RO.mjs +0 -2
  248. package/dist/tanstack-form-fkaBh9RO.mjs.map +0 -1
  249. package/dist/text-editor-BtfyZSgR.cjs +0 -2
  250. package/dist/text-editor-BtfyZSgR.cjs.map +0 -1
  251. package/dist/text-editor-CtR27_PR.mjs +0 -2
  252. package/dist/text-editor-CtR27_PR.mjs.map +0 -1
  253. package/dist/text-editor-field-B6HEsAHt.mjs +0 -2
  254. package/dist/text-editor-field-B6HEsAHt.mjs.map +0 -1
  255. package/dist/text-editor-field-DcEUC0iH.cjs +0 -2
  256. package/dist/text-editor-field-DcEUC0iH.cjs.map +0 -1
  257. package/dist/text-field-Bm-k6Jr7.mjs +0 -2
  258. package/dist/text-field-DT50dOVI.cjs +0 -2
  259. package/dist/textarea-field-BhqX29CS.cjs +0 -2
  260. package/dist/textarea-field-DNLyrRH7.mjs +0 -2
  261. package/dist/title-field-B2hM3S_S.cjs +0 -2
  262. package/dist/title-field-oAqHRw59.mjs +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-form-C1qpltYx.cjs","names":["useTanStackFormContext","Dialog","DialogPortal","DialogOverlay","DialogContent","DialogTitle","Separator","CancelButton","SubmitButton"],"sources":["../packages/components/features/tanstack-form/components/forms/dialog-form.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog, DialogContent, DialogOverlay, DialogPortal, DialogTitle } from '@/components/ui/dialog';\nimport { Separator } from '@/components/ui/separator';\n\nimport { useTanStackFormContext } from '../form-context';\nimport { CancelButton } from '../ui/cancel-button';\nimport { SubmitButton } from '../ui/submit-button';\n\n/**\n * Renders a modal dialog that wraps a TanStack Form with a title, scrollable content area, and built-in submit/cancel actions.\n *\n * @example\n * import { TanStackDialogForm } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackDialogForm\n * title=\"Create User\"\n * submitText=\"Create\"\n * className=\"max-w-lg\"\n * open={isOpen}\n * onOpenChange={setIsOpen}\n * >\n * <NameField />\n * <EmailField />\n * </TanStackDialogForm>\n */\nexport const TanStackDialogForm: React.FC<\n React.PropsWithChildren<{\n /** Heading text displayed in the dialog title bar. */\n title: string;\n /** Custom label for the submit button. Defaults to the `SubmitButton` component's built-in label when omitted. */\n submitText?: string;\n /** Optional fixed width for the dialog content area, as a pixel number (e.g. `600`) or any CSS string (e.g. `'50%'`, `'40rem'`). Omit to let the dialog size itself based on content. */\n width?: number | string;\n /** Optional fixed max-width for the dialog content area, as a pixel number (e.g. `600`) or any CSS string (e.g. `'50%'`, `'40rem'`). Omit to let the dialog size itself based on content and viewport. */\n maxWidth?: number | string;\n /** Optional additional class name(s) to apply to the dialog content container. */\n className?: string;\n /** Controlled open state of the dialog. */\n open?: boolean;\n /** Callback fired when the dialog open state changes; the form is reset on close. */\n onOpenChange?: (open: boolean) => void;\n }>\n> = ({ title, submitText, width, maxWidth, className, open, onOpenChange, children }) => {\n const form = useTanStackFormContext();\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!open) form.reset();\n onOpenChange?.(open);\n },\n [form.reset, onOpenChange]\n );\n\n return (\n <Dialog open={open} onOpenChange={handleOpenChange}>\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogContent\n style={\n {\n '--width': width,\n '--max-width': maxWidth,\n } as React.CSSProperties\n }\n className={cn(\n 'flex size-full max-h-dvh max-w-dvw flex-col gap-0 overflow-y-auto rounded-none p-0 shadow-dialog sm:h-auto sm:max-h-[85dvh] sm:max-w-5xl sm:rounded-md',\n width && `sm:w-(--width)`,\n maxWidth && `sm:max-w-(--max-width)`,\n className\n )}\n onOpenAutoFocus={event => {\n // Prevents focus from shifting to the content when the dialog opens, which can cause layout shift if the content includes autofocusable elements.\n event.preventDefault();\n }}\n onInteractOutside={event => {\n // Prevents the dialog from closing when clicking outside, since the form may have unsaved changes.\n event.preventDefault();\n }}\n >\n <div data-slot=\"dialog-header\" className=\"flex items-center justify-center gap-2 px-6 py-5 text-center sm:text-left\">\n <DialogTitle data-slot=\"dialog-title\" className=\"font-semibold text-lg tracking-tight\">\n {title}\n </DialogTitle>\n </div>\n <Separator />\n <div data-slot=\"dialog-content\" className=\"relative flex flex-col overflow-y-auto p-0 pt-4 max-sm:flex-1 sm:p-4\">\n {children}\n </div>\n <Separator />\n <div data-slot=\"dialog-footer\" className=\"flex flex-col-reverse items-center justify-end gap-2 px-6 py-4 sm:flex-row max-sm:[&>button]:w-full\">\n <form.Subscribe\n selector={state => ({ disabled: state.isSubmitting })}\n children={({ disabled }) => (\n <CancelButton\n disabled={disabled}\n onClick={() => {\n form.reset();\n handleOpenChange(false);\n }}\n />\n )}\n />\n <form.Subscribe\n selector={state => ({\n isSubmitting: state.isSubmitting,\n disabled: state.isPristine || !state.isValid || state.isValidating || state.isSubmitting || !state.canSubmit,\n })}\n children={({ isSubmitting, disabled }) => (\n <SubmitButton isSubmitting={isSubmitting} disabled={disabled} submitText={submitText} onClick={() => form.handleSubmit()} />\n )}\n />\n </div>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n );\n};\n"],"mappings":"yPA8BA,MAAa,GAiBR,CAAE,QAAO,aAAY,QAAO,WAAU,YAAW,OAAM,eAAc,cAAe,CACvF,IAAM,EAAOA,EAAAA,EAAuB,EAE9B,GAAA,EAAA,EAAA,YAAA,CACH,GAAkB,CACZ,GAAM,EAAK,MAAM,EACtB,IAAe,CAAI,CACrB,EACA,CAAC,EAAK,MAAO,CAAY,CAC3B,EAEA,OACE,EAAA,EAAA,IAAA,CAACC,EAAAA,OAAD,CAAc,OAAM,aAAc,EAChC,UAAA,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CAAc,YAAU,gBAAxB,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAgB,CAAA,GAChB,EAAA,EAAA,KAAA,CAACC,EAAAA,cAAD,CACE,MACE,CACE,UAAW,EACX,cAAe,CACjB,EAEF,WAAA,EAAA,EAAA,GAAA,CACE,yJACA,GAAS,iBACT,GAAY,yBACZ,CACF,EACA,gBAAiB,GAAS,CAExB,EAAM,eAAe,CACvB,EACA,kBAAmB,GAAS,CAE1B,EAAM,eAAe,CACvB,EApBF,SAAA,EAsBE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,YAAU,gBAAgB,UAAU,4EACvC,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAa,YAAU,eAAe,UAAU,uCAC7C,SAAA,CACU,CAAA,CACV,CAAA,GACL,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAY,CAAA,GACZ,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,YAAU,iBAAiB,UAAU,uEACvC,UACE,CAAA,GACL,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAD,CAAY,CAAA,GACZ,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,YAAU,gBAAgB,UAAU,sGAAzC,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAK,UAAN,CACE,SAAU,IAAU,CAAE,SAAU,EAAM,YAAa,GACnD,UAAW,CAAE,eACX,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CACY,WACV,YAAe,CACb,EAAK,MAAM,EACX,EAAiB,EAAK,CACxB,CACD,CAAA,CAEJ,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAK,UAAN,CACE,SAAU,IAAU,CAClB,aAAc,EAAM,aACpB,SAAU,EAAM,YAAc,CAAC,EAAM,SAAW,EAAM,cAAgB,EAAM,cAAgB,CAAC,EAAM,SACrG,GACA,UAAW,CAAE,eAAc,eACzB,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAA4B,eAAwB,WAAsB,aAAY,YAAe,EAAK,aAAa,CAAI,CAAA,CAE9H,CAAA,CACE,GACQ,CACH,CAAA,CAAA,GACR,CAAA,CAEZ"}
1
+ {"version":3,"file":"dialog-form-D9Bifsx6.cjs","names":["useTanStackFormContext","Dialog","DialogPortal","DialogOverlay","DialogContent","DialogTitle","Separator","CancelButton","SubmitButton"],"sources":["../packages/components/features/tanstack-form/components/forms/dialog-form.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog, DialogContent, DialogOverlay, DialogPortal, DialogTitle } from '@/components/ui/dialog';\nimport { Separator } from '@/components/ui/separator';\n\nimport { useTanStackFormContext } from '../form-context';\nimport { CancelButton } from '../ui/cancel-button';\nimport { SubmitButton } from '../ui/submit-button';\n\n/**\n * Renders a modal dialog that wraps a TanStack Form with a title, scrollable content area, and built-in submit/cancel actions.\n *\n * @example\n * import { TanStackDialogForm } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackDialogForm\n * title=\"Create User\"\n * submitText=\"Create\"\n * className=\"max-w-lg\"\n * open={isOpen}\n * onOpenChange={setIsOpen}\n * >\n * <NameField />\n * <EmailField />\n * </TanStackDialogForm>\n */\nexport const TanStackDialogForm: React.FC<\n React.PropsWithChildren<{\n /** Heading text displayed in the dialog title bar. */\n title: string;\n /** Custom label for the submit button. Defaults to the `SubmitButton` component's built-in label when omitted. */\n submitText?: string;\n /** Optional fixed width for the dialog content area, as a pixel number (e.g. `600`) or any CSS string (e.g. `'50%'`, `'40rem'`). Omit to let the dialog size itself based on content. */\n width?: number | string;\n /** Optional fixed max-width for the dialog content area, as a pixel number (e.g. `600`) or any CSS string (e.g. `'50%'`, `'40rem'`). Omit to let the dialog size itself based on content and viewport. */\n maxWidth?: number | string;\n /** Optional additional class name(s) to apply to the dialog content container. */\n className?: string;\n /** Controlled open state of the dialog. */\n open?: boolean;\n /** Callback fired when the dialog open state changes; the form is reset on close. */\n onOpenChange?: (open: boolean) => void;\n }>\n> = ({ title, submitText, width, maxWidth, className, open, onOpenChange, children }) => {\n const form = useTanStackFormContext();\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!open) form.reset();\n onOpenChange?.(open);\n },\n [form.reset, onOpenChange]\n );\n\n return (\n <Dialog open={open} onOpenChange={handleOpenChange}>\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogContent\n style={\n {\n '--width': width,\n '--max-width': maxWidth,\n } as React.CSSProperties\n }\n className={cn(\n 'flex size-full max-h-dvh max-w-dvw flex-col gap-0 overflow-y-auto rounded-none p-0 shadow-dialog sm:h-auto sm:max-h-[85dvh] sm:max-w-5xl sm:rounded-md',\n width && `sm:w-(--width)`,\n maxWidth && `sm:max-w-(--max-width)`,\n className\n )}\n onOpenAutoFocus={event => {\n // Prevents focus from shifting to the content when the dialog opens, which can cause layout shift if the content includes autofocusable elements.\n event.preventDefault();\n }}\n onInteractOutside={event => {\n // Prevents the dialog from closing when clicking outside, since the form may have unsaved changes.\n event.preventDefault();\n }}\n >\n <div data-slot=\"dialog-header\" className=\"flex items-center justify-center gap-2 px-6 py-5 text-center sm:text-left\">\n <DialogTitle data-slot=\"dialog-title\" className=\"font-semibold text-lg tracking-tight\">\n {title}\n </DialogTitle>\n </div>\n <Separator />\n <div data-slot=\"dialog-content\" className=\"relative flex flex-col overflow-y-auto p-0 pt-4 max-sm:flex-1 sm:p-4\">\n {children}\n </div>\n <Separator />\n <div data-slot=\"dialog-footer\" className=\"flex flex-col-reverse items-center justify-end gap-2 px-6 py-4 sm:flex-row max-sm:[&>button]:w-full\">\n <form.Subscribe\n selector={state => ({ disabled: state.isSubmitting })}\n children={({ disabled }) => (\n <CancelButton\n disabled={disabled}\n onClick={() => {\n form.reset();\n handleOpenChange(false);\n }}\n />\n )}\n />\n <form.Subscribe\n selector={state => ({\n isSubmitting: state.isSubmitting,\n disabled: state.isPristine || !state.isValid || state.isValidating || state.isSubmitting || !state.canSubmit,\n })}\n children={({ isSubmitting, disabled }) => (\n <SubmitButton isSubmitting={isSubmitting} disabled={disabled} submitText={submitText} onClick={() => form.handleSubmit()} />\n )}\n />\n </div>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n );\n};\n"],"mappings":"yPA8BA,MAAa,GAiBR,CAAE,QAAO,aAAY,QAAO,WAAU,YAAW,OAAM,eAAc,cAAe,CACvF,IAAM,EAAOA,EAAAA,GAAuB,EAE9B,GAAA,EAAA,EAAA,YAAA,CACH,GAAkB,CACZ,GAAM,EAAK,MAAM,EACtB,IAAe,CAAI,CACrB,EACA,CAAC,EAAK,MAAO,CAAY,CAC3B,EAEA,OACE,EAAA,EAAA,IAAA,CAACC,EAAAA,OAAD,CAAc,OAAM,aAAc,EAChC,UAAA,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CAAc,YAAU,gBAAxB,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAgB,CAAA,GAChB,EAAA,EAAA,KAAA,CAACC,EAAAA,cAAD,CACE,MACE,CACE,UAAW,EACX,cAAe,CACjB,EAEF,WAAA,EAAA,EAAA,GAAA,CACE,yJACA,GAAS,iBACT,GAAY,yBACZ,CACF,EACA,gBAAiB,GAAS,CAExB,EAAM,eAAe,CACvB,EACA,kBAAmB,GAAS,CAE1B,EAAM,eAAe,CACvB,EApBF,SAAA,EAsBE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,YAAU,gBAAgB,UAAU,4EACvC,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAa,YAAU,eAAe,UAAU,uCAC7C,SAAA,CACU,CAAA,CACV,CAAA,GACL,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAY,CAAA,GACZ,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,YAAU,iBAAiB,UAAU,uEACvC,UACE,CAAA,GACL,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAD,CAAY,CAAA,GACZ,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,YAAU,gBAAgB,UAAU,sGAAzC,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAK,UAAN,CACE,SAAU,IAAU,CAAE,SAAU,EAAM,YAAa,GACnD,UAAW,CAAE,eACX,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CACY,WACV,YAAe,CACb,EAAK,MAAM,EACX,EAAiB,EAAK,CACxB,CACD,CAAA,CAEJ,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAK,UAAN,CACE,SAAU,IAAU,CAClB,aAAc,EAAM,aACpB,SAAU,EAAM,YAAc,CAAC,EAAM,SAAW,EAAM,cAAgB,EAAM,cAAgB,CAAC,EAAM,SACrG,GACA,UAAW,CAAE,eAAc,eACzB,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAA4B,eAAwB,WAAsB,aAAY,YAAe,EAAK,aAAa,CAAI,CAAA,CAE9H,CAAA,CACE,GACQ,CACH,CAAA,CAAA,GACR,CAAA,CAEZ"}
@@ -0,0 +1,2 @@
1
+ import{it as e}from"./tanstack-form-BhKAn9I0.mjs";import{Dialog as t,DialogContent as n,DialogOverlay as r,DialogPortal as i,DialogTitle as a}from"./ui/dialog.mjs";import{Separator as o}from"./ui/separator.mjs";import{n as s,t as c}from"./submit-button-CGBaPzE9.mjs";import{useCallback as l}from"react";import{cn as u}from"@customafk/react-toolkit/utils";import{jsx as d,jsxs as f}from"react/jsx-runtime";const p=({title:p,submitText:m,width:h,maxWidth:g,className:_,open:v,onOpenChange:y,children:b})=>{let x=e(),S=l(e=>{e||x.reset(),y?.(e)},[x.reset,y]);return d(t,{open:v,onOpenChange:S,children:f(i,{"data-slot":`dialog-portal`,children:[d(r,{}),f(n,{style:{"--width":h,"--max-width":g},className:u(`flex size-full max-h-dvh max-w-dvw flex-col gap-0 overflow-y-auto rounded-none p-0 shadow-dialog sm:h-auto sm:max-h-[85dvh] sm:max-w-5xl sm:rounded-md`,h&&`sm:w-(--width)`,g&&`sm:max-w-(--max-width)`,_),onOpenAutoFocus:e=>{e.preventDefault()},onInteractOutside:e=>{e.preventDefault()},children:[d(`div`,{"data-slot":`dialog-header`,className:`flex items-center justify-center gap-2 px-6 py-5 text-center sm:text-left`,children:d(a,{"data-slot":`dialog-title`,className:`font-semibold text-lg tracking-tight`,children:p})}),d(o,{}),d(`div`,{"data-slot":`dialog-content`,className:`relative flex flex-col overflow-y-auto p-0 pt-4 max-sm:flex-1 sm:p-4`,children:b}),d(o,{}),f(`div`,{"data-slot":`dialog-footer`,className:`flex flex-col-reverse items-center justify-end gap-2 px-6 py-4 sm:flex-row max-sm:[&>button]:w-full`,children:[d(x.Subscribe,{selector:e=>({disabled:e.isSubmitting}),children:({disabled:e})=>d(s,{disabled:e,onClick:()=>{x.reset(),S(!1)}})}),d(x.Subscribe,{selector:e=>({isSubmitting:e.isSubmitting,disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit}),children:({isSubmitting:e,disabled:t})=>d(c,{isSubmitting:e,disabled:t,submitText:m,onClick:()=>x.handleSubmit()})})]})]})]})})};export{p as TanStackDialogForm};
2
+ //# sourceMappingURL=dialog-form-zK6Gk9Gk.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-form-BRSZpRTC.mjs","names":[],"sources":["../packages/components/features/tanstack-form/components/forms/dialog-form.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog, DialogContent, DialogOverlay, DialogPortal, DialogTitle } from '@/components/ui/dialog';\nimport { Separator } from '@/components/ui/separator';\n\nimport { useTanStackFormContext } from '../form-context';\nimport { CancelButton } from '../ui/cancel-button';\nimport { SubmitButton } from '../ui/submit-button';\n\n/**\n * Renders a modal dialog that wraps a TanStack Form with a title, scrollable content area, and built-in submit/cancel actions.\n *\n * @example\n * import { TanStackDialogForm } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackDialogForm\n * title=\"Create User\"\n * submitText=\"Create\"\n * className=\"max-w-lg\"\n * open={isOpen}\n * onOpenChange={setIsOpen}\n * >\n * <NameField />\n * <EmailField />\n * </TanStackDialogForm>\n */\nexport const TanStackDialogForm: React.FC<\n React.PropsWithChildren<{\n /** Heading text displayed in the dialog title bar. */\n title: string;\n /** Custom label for the submit button. Defaults to the `SubmitButton` component's built-in label when omitted. */\n submitText?: string;\n /** Optional fixed width for the dialog content area, as a pixel number (e.g. `600`) or any CSS string (e.g. `'50%'`, `'40rem'`). Omit to let the dialog size itself based on content. */\n width?: number | string;\n /** Optional fixed max-width for the dialog content area, as a pixel number (e.g. `600`) or any CSS string (e.g. `'50%'`, `'40rem'`). Omit to let the dialog size itself based on content and viewport. */\n maxWidth?: number | string;\n /** Optional additional class name(s) to apply to the dialog content container. */\n className?: string;\n /** Controlled open state of the dialog. */\n open?: boolean;\n /** Callback fired when the dialog open state changes; the form is reset on close. */\n onOpenChange?: (open: boolean) => void;\n }>\n> = ({ title, submitText, width, maxWidth, className, open, onOpenChange, children }) => {\n const form = useTanStackFormContext();\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!open) form.reset();\n onOpenChange?.(open);\n },\n [form.reset, onOpenChange]\n );\n\n return (\n <Dialog open={open} onOpenChange={handleOpenChange}>\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogContent\n style={\n {\n '--width': width,\n '--max-width': maxWidth,\n } as React.CSSProperties\n }\n className={cn(\n 'flex size-full max-h-dvh max-w-dvw flex-col gap-0 overflow-y-auto rounded-none p-0 shadow-dialog sm:h-auto sm:max-h-[85dvh] sm:max-w-5xl sm:rounded-md',\n width && `sm:w-(--width)`,\n maxWidth && `sm:max-w-(--max-width)`,\n className\n )}\n onOpenAutoFocus={event => {\n // Prevents focus from shifting to the content when the dialog opens, which can cause layout shift if the content includes autofocusable elements.\n event.preventDefault();\n }}\n onInteractOutside={event => {\n // Prevents the dialog from closing when clicking outside, since the form may have unsaved changes.\n event.preventDefault();\n }}\n >\n <div data-slot=\"dialog-header\" className=\"flex items-center justify-center gap-2 px-6 py-5 text-center sm:text-left\">\n <DialogTitle data-slot=\"dialog-title\" className=\"font-semibold text-lg tracking-tight\">\n {title}\n </DialogTitle>\n </div>\n <Separator />\n <div data-slot=\"dialog-content\" className=\"relative flex flex-col overflow-y-auto p-0 pt-4 max-sm:flex-1 sm:p-4\">\n {children}\n </div>\n <Separator />\n <div data-slot=\"dialog-footer\" className=\"flex flex-col-reverse items-center justify-end gap-2 px-6 py-4 sm:flex-row max-sm:[&>button]:w-full\">\n <form.Subscribe\n selector={state => ({ disabled: state.isSubmitting })}\n children={({ disabled }) => (\n <CancelButton\n disabled={disabled}\n onClick={() => {\n form.reset();\n handleOpenChange(false);\n }}\n />\n )}\n />\n <form.Subscribe\n selector={state => ({\n isSubmitting: state.isSubmitting,\n disabled: state.isPristine || !state.isValid || state.isValidating || state.isSubmitting || !state.canSubmit,\n })}\n children={({ isSubmitting, disabled }) => (\n <SubmitButton isSubmitting={isSubmitting} disabled={disabled} submitText={submitText} onClick={() => form.handleSubmit()} />\n )}\n />\n </div>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n );\n};\n"],"mappings":"oZA8BA,MAAa,GAiBR,CAAE,QAAO,aAAY,QAAO,WAAU,YAAW,OAAM,eAAc,cAAe,CACvF,IAAM,EAAO,EAAuB,EAE9B,EAAmB,EACtB,GAAkB,CACZ,GAAM,EAAK,MAAM,EACtB,IAAe,CAAI,CACrB,EACA,CAAC,EAAK,MAAO,CAAY,CAC3B,EAEA,OACE,EAAC,EAAD,CAAc,OAAM,aAAc,EAChC,SAAA,EAAC,EAAD,CAAc,YAAU,gBAAxB,SAAA,CACE,EAAC,EAAD,CAAgB,CAAA,EAChB,EAAC,EAAD,CACE,MACE,CACE,UAAW,EACX,cAAe,CACjB,EAEF,UAAW,EACT,yJACA,GAAS,iBACT,GAAY,yBACZ,CACF,EACA,gBAAiB,GAAS,CAExB,EAAM,eAAe,CACvB,EACA,kBAAmB,GAAS,CAE1B,EAAM,eAAe,CACvB,EApBF,SAAA,CAsBE,EAAC,MAAD,CAAK,YAAU,gBAAgB,UAAU,4EACvC,SAAA,EAAC,EAAD,CAAa,YAAU,eAAe,UAAU,uCAC7C,SAAA,CACU,CAAA,CACV,CAAA,EACL,EAAC,EAAD,CAAY,CAAA,EACZ,EAAC,MAAD,CAAK,YAAU,iBAAiB,UAAU,uEACvC,UACE,CAAA,EACL,EAAC,EAAD,CAAY,CAAA,EACZ,EAAC,MAAD,CAAK,YAAU,gBAAgB,UAAU,sGAAzC,SAAA,CACE,EAAC,EAAK,UAAN,CACE,SAAU,IAAU,CAAE,SAAU,EAAM,YAAa,GACnD,UAAW,CAAE,cACX,EAAC,EAAD,CACY,WACV,YAAe,CACb,EAAK,MAAM,EACX,EAAiB,EAAK,CACxB,CACD,CAAA,CAEJ,CAAA,EACD,EAAC,EAAK,UAAN,CACE,SAAU,IAAU,CAClB,aAAc,EAAM,aACpB,SAAU,EAAM,YAAc,CAAC,EAAM,SAAW,EAAM,cAAgB,EAAM,cAAgB,CAAC,EAAM,SACrG,GACA,UAAW,CAAE,eAAc,cACzB,EAAC,EAAD,CAA4B,eAAwB,WAAsB,aAAY,YAAe,EAAK,aAAa,CAAI,CAAA,CAE9H,CAAA,CACE,GACQ,CACH,CAAA,CAAA,GACR,CAAA,CAEZ"}
1
+ {"version":3,"file":"dialog-form-zK6Gk9Gk.mjs","names":[],"sources":["../packages/components/features/tanstack-form/components/forms/dialog-form.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog, DialogContent, DialogOverlay, DialogPortal, DialogTitle } from '@/components/ui/dialog';\nimport { Separator } from '@/components/ui/separator';\n\nimport { useTanStackFormContext } from '../form-context';\nimport { CancelButton } from '../ui/cancel-button';\nimport { SubmitButton } from '../ui/submit-button';\n\n/**\n * Renders a modal dialog that wraps a TanStack Form with a title, scrollable content area, and built-in submit/cancel actions.\n *\n * @example\n * import { TanStackDialogForm } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackDialogForm\n * title=\"Create User\"\n * submitText=\"Create\"\n * className=\"max-w-lg\"\n * open={isOpen}\n * onOpenChange={setIsOpen}\n * >\n * <NameField />\n * <EmailField />\n * </TanStackDialogForm>\n */\nexport const TanStackDialogForm: React.FC<\n React.PropsWithChildren<{\n /** Heading text displayed in the dialog title bar. */\n title: string;\n /** Custom label for the submit button. Defaults to the `SubmitButton` component's built-in label when omitted. */\n submitText?: string;\n /** Optional fixed width for the dialog content area, as a pixel number (e.g. `600`) or any CSS string (e.g. `'50%'`, `'40rem'`). Omit to let the dialog size itself based on content. */\n width?: number | string;\n /** Optional fixed max-width for the dialog content area, as a pixel number (e.g. `600`) or any CSS string (e.g. `'50%'`, `'40rem'`). Omit to let the dialog size itself based on content and viewport. */\n maxWidth?: number | string;\n /** Optional additional class name(s) to apply to the dialog content container. */\n className?: string;\n /** Controlled open state of the dialog. */\n open?: boolean;\n /** Callback fired when the dialog open state changes; the form is reset on close. */\n onOpenChange?: (open: boolean) => void;\n }>\n> = ({ title, submitText, width, maxWidth, className, open, onOpenChange, children }) => {\n const form = useTanStackFormContext();\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!open) form.reset();\n onOpenChange?.(open);\n },\n [form.reset, onOpenChange]\n );\n\n return (\n <Dialog open={open} onOpenChange={handleOpenChange}>\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogContent\n style={\n {\n '--width': width,\n '--max-width': maxWidth,\n } as React.CSSProperties\n }\n className={cn(\n 'flex size-full max-h-dvh max-w-dvw flex-col gap-0 overflow-y-auto rounded-none p-0 shadow-dialog sm:h-auto sm:max-h-[85dvh] sm:max-w-5xl sm:rounded-md',\n width && `sm:w-(--width)`,\n maxWidth && `sm:max-w-(--max-width)`,\n className\n )}\n onOpenAutoFocus={event => {\n // Prevents focus from shifting to the content when the dialog opens, which can cause layout shift if the content includes autofocusable elements.\n event.preventDefault();\n }}\n onInteractOutside={event => {\n // Prevents the dialog from closing when clicking outside, since the form may have unsaved changes.\n event.preventDefault();\n }}\n >\n <div data-slot=\"dialog-header\" className=\"flex items-center justify-center gap-2 px-6 py-5 text-center sm:text-left\">\n <DialogTitle data-slot=\"dialog-title\" className=\"font-semibold text-lg tracking-tight\">\n {title}\n </DialogTitle>\n </div>\n <Separator />\n <div data-slot=\"dialog-content\" className=\"relative flex flex-col overflow-y-auto p-0 pt-4 max-sm:flex-1 sm:p-4\">\n {children}\n </div>\n <Separator />\n <div data-slot=\"dialog-footer\" className=\"flex flex-col-reverse items-center justify-end gap-2 px-6 py-4 sm:flex-row max-sm:[&>button]:w-full\">\n <form.Subscribe\n selector={state => ({ disabled: state.isSubmitting })}\n children={({ disabled }) => (\n <CancelButton\n disabled={disabled}\n onClick={() => {\n form.reset();\n handleOpenChange(false);\n }}\n />\n )}\n />\n <form.Subscribe\n selector={state => ({\n isSubmitting: state.isSubmitting,\n disabled: state.isPristine || !state.isValid || state.isValidating || state.isSubmitting || !state.canSubmit,\n })}\n children={({ isSubmitting, disabled }) => (\n <SubmitButton isSubmitting={isSubmitting} disabled={disabled} submitText={submitText} onClick={() => form.handleSubmit()} />\n )}\n />\n </div>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n );\n};\n"],"mappings":"qZA8BA,MAAa,GAiBR,CAAE,QAAO,aAAY,QAAO,WAAU,YAAW,OAAM,eAAc,cAAe,CACvF,IAAM,EAAO,EAAuB,EAE9B,EAAmB,EACtB,GAAkB,CACZ,GAAM,EAAK,MAAM,EACtB,IAAe,CAAI,CACrB,EACA,CAAC,EAAK,MAAO,CAAY,CAC3B,EAEA,OACE,EAAC,EAAD,CAAc,OAAM,aAAc,EAChC,SAAA,EAAC,EAAD,CAAc,YAAU,gBAAxB,SAAA,CACE,EAAC,EAAD,CAAgB,CAAA,EAChB,EAAC,EAAD,CACE,MACE,CACE,UAAW,EACX,cAAe,CACjB,EAEF,UAAW,EACT,yJACA,GAAS,iBACT,GAAY,yBACZ,CACF,EACA,gBAAiB,GAAS,CAExB,EAAM,eAAe,CACvB,EACA,kBAAmB,GAAS,CAE1B,EAAM,eAAe,CACvB,EApBF,SAAA,CAsBE,EAAC,MAAD,CAAK,YAAU,gBAAgB,UAAU,4EACvC,SAAA,EAAC,EAAD,CAAa,YAAU,eAAe,UAAU,uCAC7C,SAAA,CACU,CAAA,CACV,CAAA,EACL,EAAC,EAAD,CAAY,CAAA,EACZ,EAAC,MAAD,CAAK,YAAU,iBAAiB,UAAU,uEACvC,UACE,CAAA,EACL,EAAC,EAAD,CAAY,CAAA,EACZ,EAAC,MAAD,CAAK,YAAU,gBAAgB,UAAU,sGAAzC,SAAA,CACE,EAAC,EAAK,UAAN,CACE,SAAU,IAAU,CAAE,SAAU,EAAM,YAAa,GACnD,UAAW,CAAE,cACX,EAAC,EAAD,CACY,WACV,YAAe,CACb,EAAK,MAAM,EACX,EAAiB,EAAK,CACxB,CACD,CAAA,CAEJ,CAAA,EACD,EAAC,EAAK,UAAN,CACE,SAAU,IAAU,CAClB,aAAc,EAAM,aACpB,SAAU,EAAM,YAAc,CAAC,EAAM,SAAW,EAAM,cAAgB,EAAM,cAAgB,CAAC,EAAM,SACrG,GACA,UAAW,CAAE,eAAc,cACzB,EAAC,EAAD,CAA4B,eAAwB,WAAsB,aAAY,YAAe,EAAK,aAAa,CAAI,CAAA,CAE9H,CAAA,CACE,GACQ,CACH,CAAA,CAAA,GACR,CAAA,CAEZ"}
@@ -1,2 +1,2 @@
1
- const e=require("./rolldown-runtime-CMqjfN_6.cjs");let t=require("react");t=e.t(t,1);function n(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function r(...e){return t=>{let r=!1,i=e.map(e=>{let i=n(e,t);return!r&&typeof i==`function`&&(r=!0),i});if(r)return()=>{for(let t=0;t<i.length;t++){let r=i[t];typeof r==`function`?r():n(e[t],null)}}}}function i(...e){return t.useCallback(r(...e),e)}function a(e){let n=t.forwardRef((n,r)=>{let{children:a,...o}=n,s=null,c=!1,l=[];h(a)&&typeof y==`function`&&(a=y(a._payload)),t.Children.forEach(a,e=>{if(p(e)){c=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;h(n)&&typeof y==`function`&&(n=y(n._payload)),s=u(t,n),l.push(s?.props?.children)}else l.push(e)}),s?s=t.cloneElement(s,void 0,l):!c&&t.Children.count(a)===1&&t.isValidElement(a)&&(s=a);let m=s?f(s):void 0,g=i(r,m);if(!s){if(a||a===0)throw Error(c?v(e):_(e));return a}let b=d(o,s.props??{});return s.type!==t.Fragment&&(b.ref=r?g:m),t.cloneElement(s,b)});return n.displayName=`${e}.Slot`,n}var o=a(`Slot`),s=Symbol.for(`radix.slottable`);function c(e){let t=e=>`child`in e?e.children(e.child):e.children;return t.displayName=`${e}.Slottable`,t.__radixId=s,t}var l=c(`Slottable`),u=(e,n)=>{if(`child`in e.props){let n=e.props.child;return t.isValidElement(n)?t.cloneElement(n,void 0,e.props.children(n.props.children)):null}return t.isValidElement(n)?n:null};function d(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function f(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function p(e){return t.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===s}var m=Symbol.for(`react.lazy`);function h(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===m&&`_payload`in e&&g(e._payload)}function g(e){return typeof e==`object`&&!!e&&`then`in e}var _=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,v=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,y=t.use;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
2
- //# sourceMappingURL=dist-DzA--RwW.cjs.map
1
+ const e=require("./rolldown-runtime-DWNI8pZO.cjs");let t=require("react");t=e.n(t,1);function n(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function r(...e){return t=>{let r=!1,i=e.map(e=>{let i=n(e,t);return!r&&typeof i==`function`&&(r=!0),i});if(r)return()=>{for(let t=0;t<i.length;t++){let r=i[t];typeof r==`function`?r():n(e[t],null)}}}}function i(...e){return t.useCallback(r(...e),e)}function a(e){let n=t.forwardRef((n,r)=>{let{children:a,...o}=n,s=null,c=!1,l=[];h(a)&&typeof y==`function`&&(a=y(a._payload)),t.Children.forEach(a,e=>{if(p(e)){c=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;h(n)&&typeof y==`function`&&(n=y(n._payload)),s=u(t,n),l.push(s?.props?.children)}else l.push(e)}),s?s=t.cloneElement(s,void 0,l):!c&&t.Children.count(a)===1&&t.isValidElement(a)&&(s=a);let m=s?f(s):void 0,g=i(r,m);if(!s){if(a||a===0)throw Error(c?v(e):_(e));return a}let b=d(o,s.props??{});return s.type!==t.Fragment&&(b.ref=r?g:m),t.cloneElement(s,b)});return n.displayName=`${e}.Slot`,n}var o=a(`Slot`),s=Symbol.for(`radix.slottable`);function c(e){let t=e=>`child`in e?e.children(e.child):e.children;return t.displayName=`${e}.Slottable`,t.__radixId=s,t}var l=c(`Slottable`),u=(e,n)=>{if(`child`in e.props){let n=e.props.child;return t.isValidElement(n)?t.cloneElement(n,void 0,e.props.children(n.props.children)):null}return t.isValidElement(n)?n:null};function d(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function f(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function p(e){return t.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===s}var m=Symbol.for(`react.lazy`);function h(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===m&&`_payload`in e&&g(e._payload)}function g(e){return typeof e==`object`&&!!e&&`then`in e}var _=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,v=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,y=t.use;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
2
+ //# sourceMappingURL=dist-CIdWHwhj.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dist-DzA--RwW.cjs","names":["React","React"],"sources":["../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-slot/dist/index.mjs"],"sourcesContent":["// src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n let slottableElement = null;\n let hasSlottable = false;\n const newChildren = [];\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n React.Children.forEach(children, (maybeSlottable) => {\n if (isSlottable(maybeSlottable)) {\n hasSlottable = true;\n const slottable = maybeSlottable;\n let child = \"child\" in slottable.props ? slottable.props.child : slottable.props.children;\n if (isLazyComponent(child) && typeof use === \"function\") {\n child = use(child._payload);\n }\n slottableElement = getSlottableElementFromSlottable(slottable, child);\n newChildren.push(slottableElement?.props?.children);\n } else {\n newChildren.push(maybeSlottable);\n }\n });\n if (slottableElement) {\n slottableElement = React.cloneElement(slottableElement, void 0, newChildren);\n } else if (\n // A `Slottable` was found but it didn't resolve to a single element (e.g.\n // it wrapped multiple elements, text, or a render-prop `child` that\n // wasn't an element). Don't fall back to treating the `Slottable` wrapper\n // itself as the slot target — throw a descriptive error below instead.\n !hasSlottable && React.Children.count(children) === 1 && React.isValidElement(children)\n ) {\n slottableElement = children;\n }\n const slottableElementRef = slottableElement ? getElementRef(slottableElement) : void 0;\n const composedRef = useComposedRefs(forwardedRef, slottableElementRef);\n if (!slottableElement) {\n if (children || children === 0) {\n throw new Error(\n hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName)\n );\n }\n return children;\n }\n const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});\n if (slottableElement.type !== React.Fragment) {\n mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;\n }\n return React.cloneElement(slottableElement, mergedProps);\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\nvar SLOTTABLE_IDENTIFIER = Symbol.for(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = (props) => \"child\" in props ? props.children(props.child) : props.children;\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nvar getSlottableElementFromSlottable = (slottable, child) => {\n if (\"child\" in slottable.props) {\n const child2 = slottable.props.child;\n if (!React.isValidElement(child2)) return null;\n return React.cloneElement(child2, void 0, slottable.props.children(child2.props.children));\n }\n return React.isValidElement(child) ? child : null;\n};\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\nvar createSlotError = (ownerName) => {\n return `${ownerName} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`;\n};\nvar createSlottableError = (ownerName) => {\n return `${ownerName} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`;\n};\nvar use = React[\" use \".trim().toString()];\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
1
+ {"version":3,"file":"dist-CIdWHwhj.cjs","names":["React","React"],"sources":["../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-slot/dist/index.mjs"],"sourcesContent":["// src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n let slottableElement = null;\n let hasSlottable = false;\n const newChildren = [];\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n React.Children.forEach(children, (maybeSlottable) => {\n if (isSlottable(maybeSlottable)) {\n hasSlottable = true;\n const slottable = maybeSlottable;\n let child = \"child\" in slottable.props ? slottable.props.child : slottable.props.children;\n if (isLazyComponent(child) && typeof use === \"function\") {\n child = use(child._payload);\n }\n slottableElement = getSlottableElementFromSlottable(slottable, child);\n newChildren.push(slottableElement?.props?.children);\n } else {\n newChildren.push(maybeSlottable);\n }\n });\n if (slottableElement) {\n slottableElement = React.cloneElement(slottableElement, void 0, newChildren);\n } else if (\n // A `Slottable` was found but it didn't resolve to a single element (e.g.\n // it wrapped multiple elements, text, or a render-prop `child` that\n // wasn't an element). Don't fall back to treating the `Slottable` wrapper\n // itself as the slot target — throw a descriptive error below instead.\n !hasSlottable && React.Children.count(children) === 1 && React.isValidElement(children)\n ) {\n slottableElement = children;\n }\n const slottableElementRef = slottableElement ? getElementRef(slottableElement) : void 0;\n const composedRef = useComposedRefs(forwardedRef, slottableElementRef);\n if (!slottableElement) {\n if (children || children === 0) {\n throw new Error(\n hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName)\n );\n }\n return children;\n }\n const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});\n if (slottableElement.type !== React.Fragment) {\n mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;\n }\n return React.cloneElement(slottableElement, mergedProps);\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\nvar SLOTTABLE_IDENTIFIER = Symbol.for(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = (props) => \"child\" in props ? props.children(props.child) : props.children;\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nvar getSlottableElementFromSlottable = (slottable, child) => {\n if (\"child\" in slottable.props) {\n const child2 = slottable.props.child;\n if (!React.isValidElement(child2)) return null;\n return React.cloneElement(child2, void 0, slottable.props.children(child2.props.children));\n }\n return React.isValidElement(child) ? child : null;\n};\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\nvar createSlotError = (ownerName) => {\n return `${ownerName} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`;\n};\nvar createSlottableError = (ownerName) => {\n return `${ownerName} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`;\n};\nvar use = React[\" use \".trim().toString()];\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{$ as e,G as t,J as n,K as r,X as i,Y as a,Z as o,et as s,nt as c,q as l,rt as u}from"./tanstack-form-BhKAn9I0.mjs";import{Input as d}from"./ui/input.mjs";import{AtSignIcon as f,XIcon as p}from"lucide-react";import{useCallback as m}from"react";import{cn as h}from"@customafk/react-toolkit/utils";import{jsx as g,jsxs as _}from"react/jsx-runtime";import{useStore as v}from"@tanstack/react-form";const y=({label:y,description:b,placeholder:x,tooltip:S,helperText:C,orientation:w=`responsive`,showErrorMessage:T=!0,required:E=!1,maxLength:D})=>{let{form:O,name:k,state:A,handleBlur:j,handleChange:M}=u(),N=v(O.store,({isSubmitting:e})=>e),P=A.meta.isDirty&&A.meta.isTouched&&!A.meta.isValid,F=E&&A.value===null,I=!N&&!!A.value,L=m(({target:{value:e}})=>{N||D&&e.length>D||M(e||null)},[N,D,M]),R=m(()=>{N||M(null)},[N,M]);return _(i,{className:`gap-y-4 px-4`,children:[_(t,{"data-invalid":P,orientation:w,children:[_(r,{children:[_(o,{htmlFor:k,"aria-required":F,children:[y,S&&g(c,{tooltip:S})]}),g(n,{children:b})]}),_(l,{children:[g(d,{id:k,name:k,value:A.value===null?``:A.value,"aria-invalid":P,autoComplete:`email`,placeholder:x,className:h(`pl-9`,I&&`pr-9`,N&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:j,onChange:L}),g(`div`,{className:`absolute top-0 left-0 flex size-9 items-center justify-center text-muted`,children:g(f,{size:14})}),I&&g(`button`,{type:`button`,"aria-label":`Xóa`,className:`absolute inset-e-0 inset-y-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-strong`,onClick:R,children:g(p,{size:14,"aria-hidden":`true`})}),g(`div`,{className:`mt-1 flex w-full items-start justify-start`,children:T&&A.meta.isDirty&&g(a,{errors:A.meta.errors})}),g(e,{isShow:!!C,children:C})]})]}),g(s,{})]})};export{y as EmailField};
2
+ //# sourceMappingURL=email-field-BVl7u9pR.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"email-field-C2Lvl_rQ.mjs","names":[],"sources":["../packages/components/features/tanstack-form/components/fields/email-field.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { useStore } from '@tanstack/react-form';\n\nimport { AtSignIcon, XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Input } from '@/components/ui/input';\nimport {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n FieldTooltip,\n} from '../ui/field';\nimport { useTanStackFieldContext } from '../form-context';\n\nimport type { EmailFieldProps as Props } from '../../types';\n\n/**\n * A TanStack Form-connected email input field with an at-sign prefix icon,\n * optional clear button, and inline validation error display.\n *\n * @example\n * import { EmailField } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <form.Field name=\"email\">\n * {() => (\n * <EmailField\n * label=\"Email address\"\n * placeholder=\"you@example.com\"\n * required\n * />\n * )}\n * </form.Field>\n */\nexport const EmailField: React.FC<Props> = ({\n label,\n description,\n placeholder,\n tooltip,\n helperText,\n orientation = 'responsive',\n showErrorMessage = true,\n required = false,\n maxLength,\n}) => {\n const { form, name, state, handleBlur, handleChange } = useTanStackFieldContext<string | null>();\n\n const isSubmitting = useStore(form.store, ({ isSubmitting }) => isSubmitting);\n\n const _invalid = state.meta.isDirty && state.meta.isTouched && !state.meta.isValid;\n const _isEmpty = required && state.value === null;\n const _showClear = !isSubmitting && !!state.value;\n\n const onChange = useCallback<React.ChangeEventHandler<HTMLInputElement>>(\n ({ target: { value } }) => {\n if (isSubmitting) return;\n if (maxLength && value.length > maxLength) return;\n handleChange(value || null);\n },\n [isSubmitting, maxLength, handleChange]\n );\n\n const onClear = useCallback(() => {\n if (isSubmitting) return;\n handleChange(null);\n }, [isSubmitting, handleChange]);\n\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field data-invalid={_invalid} orientation={orientation}>\n <FieldContent>\n <FieldLabel htmlFor={name} aria-required={_isEmpty}>\n {label}\n {tooltip && <FieldTooltip tooltip={tooltip} />}\n </FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n <Input\n id={name}\n name={name}\n value={state.value === null ? '' : state.value}\n aria-invalid={_invalid}\n autoComplete=\"email\"\n placeholder={placeholder}\n className={cn('pl-9', _showClear && 'pr-9', isSubmitting && 'pointer-events-none bg-muted-muted opacity-60')}\n onBlur={handleBlur}\n onChange={onChange}\n />\n <div className=\"absolute top-0 left-0 flex size-9 items-center justify-center text-muted\">\n <AtSignIcon size={14} />\n </div>\n\n {_showClear && (\n <button\n type=\"button\"\n aria-label=\"Xóa\"\n className=\"absolute inset-e-0 inset-y-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-strong\"\n onClick={onClear}\n >\n <XIcon size={14} aria-hidden=\"true\" />\n </button>\n )}\n\n <div className=\"mt-1 flex w-full items-start justify-start\">\n {showErrorMessage && state.meta.isDirty && <FieldError errors={state.meta.errors} />}\n </div>\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"uhBA4CA,MAAa,GAA+B,CAC1C,QACA,cACA,cACA,UACA,aACA,cAAc,aACd,mBAAmB,GACnB,WAAW,GACX,eACI,CACJ,GAAM,CAAE,OAAM,OAAM,QAAO,aAAY,gBAAiB,EAAuC,EAEzF,EAAe,EAAS,EAAK,OAAQ,CAAE,kBAAmB,CAAY,EAEtE,EAAW,EAAM,KAAK,SAAW,EAAM,KAAK,WAAa,CAAC,EAAM,KAAK,QACrE,EAAW,GAAY,EAAM,QAAU,KACvC,EAAa,CAAC,GAAgB,CAAC,CAAC,EAAM,MAEtC,EAAW,GACd,CAAE,OAAQ,CAAE,YAAc,CACrB,GACA,GAAa,EAAM,OAAS,GAChC,EAAa,GAAS,IAAI,CAC5B,EACA,CAAC,EAAc,EAAW,CAAY,CACxC,EAEM,EAAU,MAAkB,CAC5B,GACJ,EAAa,IAAI,CACnB,EAAG,CAAC,EAAc,CAAY,CAAC,EAE/B,OACE,EAAC,EAAD,CAAY,UAAU,eAAtB,SAAA,CACE,EAAC,EAAD,CAAO,eAAc,EAAuB,cAA5C,SAAA,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAY,QAAS,EAAM,gBAAe,EAA1C,SAAA,CACG,EACA,GAAW,EAAC,EAAD,CAAuB,SAAU,CAAA,CACnC,CACZ,CAAA,EAAA,EAAC,EAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,EACd,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CACE,GAAI,EACE,OACN,MAAO,EAAM,QAAU,KAAO,GAAK,EAAM,MACzC,eAAc,EACd,aAAa,QACA,cACb,UAAW,EAAG,OAAQ,GAAc,OAAQ,GAAgB,+CAA+C,EAC3G,OAAQ,EACE,UACX,CAAA,EACD,EAAC,MAAD,CAAK,UAAU,2EACb,SAAA,EAAC,EAAD,CAAY,KAAM,EAAK,CAAA,CACpB,CAAA,EAEJ,GACC,EAAC,SAAD,CACE,KAAK,SACL,aAAW,MACX,UAAU,wOACV,QAAS,EAET,SAAA,EAAC,EAAD,CAAO,KAAM,GAAI,cAAY,MAAQ,CAAA,CAC/B,CAAA,EAGV,EAAC,MAAD,CAAK,UAAU,6CACZ,SAAA,GAAoB,EAAM,KAAK,SAAW,EAAC,EAAD,CAAY,OAAQ,EAAM,KAAK,MAAS,CAAA,CAChF,CAAA,EACL,EAAC,EAAD,CAAW,OAAQ,CAAC,CAAC,EAAa,SAAA,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,CACP,CAAA,EAAA,EAAC,EAAD,CAAiB,CAAA,CACP,GAEhB"}
1
+ {"version":3,"file":"email-field-BVl7u9pR.mjs","names":[],"sources":["../packages/components/features/tanstack-form/components/fields/email-field.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { useStore } from '@tanstack/react-form';\n\nimport { AtSignIcon, XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Input } from '@/components/ui/input';\nimport {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n FieldTooltip,\n} from '../ui/field';\nimport { useTanStackFieldContext } from '../form-context';\n\nimport type { EmailFieldProps as Props } from '../../types';\n\n/**\n * A TanStack Form-connected email input field with an at-sign prefix icon,\n * optional clear button, and inline validation error display.\n *\n * @example\n * import { EmailField } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <form.Field name=\"email\">\n * {() => (\n * <EmailField\n * label=\"Email address\"\n * placeholder=\"you@example.com\"\n * required\n * />\n * )}\n * </form.Field>\n */\nexport const EmailField: React.FC<Props> = ({\n label,\n description,\n placeholder,\n tooltip,\n helperText,\n orientation = 'responsive',\n showErrorMessage = true,\n required = false,\n maxLength,\n}) => {\n const { form, name, state, handleBlur, handleChange } = useTanStackFieldContext<string | null>();\n\n const isSubmitting = useStore(form.store, ({ isSubmitting }) => isSubmitting);\n\n const _invalid = state.meta.isDirty && state.meta.isTouched && !state.meta.isValid;\n const _isEmpty = required && state.value === null;\n const _showClear = !isSubmitting && !!state.value;\n\n const onChange = useCallback<React.ChangeEventHandler<HTMLInputElement>>(\n ({ target: { value } }) => {\n if (isSubmitting) return;\n if (maxLength && value.length > maxLength) return;\n handleChange(value || null);\n },\n [isSubmitting, maxLength, handleChange]\n );\n\n const onClear = useCallback(() => {\n if (isSubmitting) return;\n handleChange(null);\n }, [isSubmitting, handleChange]);\n\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field data-invalid={_invalid} orientation={orientation}>\n <FieldContent>\n <FieldLabel htmlFor={name} aria-required={_isEmpty}>\n {label}\n {tooltip && <FieldTooltip tooltip={tooltip} />}\n </FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n <Input\n id={name}\n name={name}\n value={state.value === null ? '' : state.value}\n aria-invalid={_invalid}\n autoComplete=\"email\"\n placeholder={placeholder}\n className={cn('pl-9', _showClear && 'pr-9', isSubmitting && 'pointer-events-none bg-muted-muted opacity-60')}\n onBlur={handleBlur}\n onChange={onChange}\n />\n <div className=\"absolute top-0 left-0 flex size-9 items-center justify-center text-muted\">\n <AtSignIcon size={14} />\n </div>\n\n {_showClear && (\n <button\n type=\"button\"\n aria-label=\"Xóa\"\n className=\"absolute inset-e-0 inset-y-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-strong\"\n onClick={onClear}\n >\n <XIcon size={14} aria-hidden=\"true\" />\n </button>\n )}\n\n <div className=\"mt-1 flex w-full items-start justify-start\">\n {showErrorMessage && state.meta.isDirty && <FieldError errors={state.meta.errors} />}\n </div>\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"gZA4CA,MAAa,GAA+B,CAC1C,QACA,cACA,cACA,UACA,aACA,cAAc,aACd,mBAAmB,GACnB,WAAW,GACX,eACI,CACJ,GAAM,CAAE,OAAM,OAAM,QAAO,aAAY,gBAAiB,EAAuC,EAEzF,EAAe,EAAS,EAAK,OAAQ,CAAE,kBAAmB,CAAY,EAEtE,EAAW,EAAM,KAAK,SAAW,EAAM,KAAK,WAAa,CAAC,EAAM,KAAK,QACrE,EAAW,GAAY,EAAM,QAAU,KACvC,EAAa,CAAC,GAAgB,CAAC,CAAC,EAAM,MAEtC,EAAW,GACd,CAAE,OAAQ,CAAE,YAAc,CACrB,GACA,GAAa,EAAM,OAAS,GAChC,EAAa,GAAS,IAAI,CAC5B,EACA,CAAC,EAAc,EAAW,CAAY,CACxC,EAEM,EAAU,MAAkB,CAC5B,GACJ,EAAa,IAAI,CACnB,EAAG,CAAC,EAAc,CAAY,CAAC,EAE/B,OACE,EAAC,EAAD,CAAY,UAAU,eAAtB,SAAA,CACE,EAAC,EAAD,CAAO,eAAc,EAAuB,cAA5C,SAAA,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAY,QAAS,EAAM,gBAAe,EAA1C,SAAA,CACG,EACA,GAAW,EAAC,EAAD,CAAuB,SAAU,CAAA,CACnC,CACZ,CAAA,EAAA,EAAC,EAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,EACd,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CACE,GAAI,EACE,OACN,MAAO,EAAM,QAAU,KAAO,GAAK,EAAM,MACzC,eAAc,EACd,aAAa,QACA,cACb,UAAW,EAAG,OAAQ,GAAc,OAAQ,GAAgB,+CAA+C,EAC3G,OAAQ,EACE,UACX,CAAA,EACD,EAAC,MAAD,CAAK,UAAU,2EACb,SAAA,EAAC,EAAD,CAAY,KAAM,EAAK,CAAA,CACpB,CAAA,EAEJ,GACC,EAAC,SAAD,CACE,KAAK,SACL,aAAW,MACX,UAAU,wOACV,QAAS,EAET,SAAA,EAAC,EAAD,CAAO,KAAM,GAAI,cAAY,MAAQ,CAAA,CAC/B,CAAA,EAGV,EAAC,MAAD,CAAK,UAAU,6CACZ,SAAA,GAAoB,EAAM,KAAK,SAAW,EAAC,EAAD,CAAY,OAAQ,EAAM,KAAK,MAAS,CAAA,CAChF,CAAA,EACL,EAAC,EAAD,CAAW,OAAQ,CAAC,CAAC,EAAa,SAAA,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,CACP,CAAA,EAAA,EAAC,EAAD,CAAiB,CAAA,CACP,GAEhB"}
@@ -0,0 +1,2 @@
1
+ const e=require("./ui/input.cjs"),t=require("./tanstack-form-DCB2addt.cjs");let n=require("lucide-react"),r=require("react"),i=require("@customafk/react-toolkit/utils"),a=require("react/jsx-runtime"),o=require("@tanstack/react-form");const s=({label:s,description:c,placeholder:l,tooltip:u,helperText:d,orientation:f=`responsive`,showErrorMessage:p=!0,required:m=!1,maxLength:h})=>{let{form:g,name:_,state:v,handleBlur:y,handleChange:b}=t.rt(),x=(0,o.useStore)(g.store,({isSubmitting:e})=>e),S=v.meta.isDirty&&v.meta.isTouched&&!v.meta.isValid,C=m&&v.value===null,w=!x&&!!v.value,T=(0,r.useCallback)(({target:{value:e}})=>{x||h&&e.length>h||b(e||null)},[x,h,b]),E=(0,r.useCallback)(()=>{x||b(null)},[x,b]);return(0,a.jsxs)(t.X,{className:`gap-y-4 px-4`,children:[(0,a.jsxs)(t.G,{"data-invalid":S,orientation:f,children:[(0,a.jsxs)(t.K,{children:[(0,a.jsxs)(t.Z,{htmlFor:_,"aria-required":C,children:[s,u&&(0,a.jsx)(t.nt,{tooltip:u})]}),(0,a.jsx)(t.J,{children:c})]}),(0,a.jsxs)(t.q,{children:[(0,a.jsx)(e.Input,{id:_,name:_,value:v.value===null?``:v.value,"aria-invalid":S,autoComplete:`email`,placeholder:l,className:(0,i.cn)(`pl-9`,w&&`pr-9`,x&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:y,onChange:T}),(0,a.jsx)(`div`,{className:`absolute top-0 left-0 flex size-9 items-center justify-center text-muted`,children:(0,a.jsx)(n.AtSignIcon,{size:14})}),w&&(0,a.jsx)(`button`,{type:`button`,"aria-label":`Xóa`,className:`absolute inset-e-0 inset-y-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-strong`,onClick:E,children:(0,a.jsx)(n.XIcon,{size:14,"aria-hidden":`true`})}),(0,a.jsx)(`div`,{className:`mt-1 flex w-full items-start justify-start`,children:p&&v.meta.isDirty&&(0,a.jsx)(t.Y,{errors:v.meta.errors})}),(0,a.jsx)(t.$,{isShow:!!d,children:d})]})]}),(0,a.jsx)(t.et,{})]})};exports.EmailField=s;
2
+ //# sourceMappingURL=email-field-CqXXRG3w.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"email-field-D3nSkHj2.cjs","names":["useTanStackFieldContext","FieldGroup","Field","FieldContent","FieldLabel","FieldTooltip","FieldDescription","FieldContentMain","Input","AtSignIcon","XIcon","FieldError","FieldNote","FieldSeparator"],"sources":["../packages/components/features/tanstack-form/components/fields/email-field.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { useStore } from '@tanstack/react-form';\n\nimport { AtSignIcon, XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Input } from '@/components/ui/input';\nimport {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n FieldTooltip,\n} from '../ui/field';\nimport { useTanStackFieldContext } from '../form-context';\n\nimport type { EmailFieldProps as Props } from '../../types';\n\n/**\n * A TanStack Form-connected email input field with an at-sign prefix icon,\n * optional clear button, and inline validation error display.\n *\n * @example\n * import { EmailField } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <form.Field name=\"email\">\n * {() => (\n * <EmailField\n * label=\"Email address\"\n * placeholder=\"you@example.com\"\n * required\n * />\n * )}\n * </form.Field>\n */\nexport const EmailField: React.FC<Props> = ({\n label,\n description,\n placeholder,\n tooltip,\n helperText,\n orientation = 'responsive',\n showErrorMessage = true,\n required = false,\n maxLength,\n}) => {\n const { form, name, state, handleBlur, handleChange } = useTanStackFieldContext<string | null>();\n\n const isSubmitting = useStore(form.store, ({ isSubmitting }) => isSubmitting);\n\n const _invalid = state.meta.isDirty && state.meta.isTouched && !state.meta.isValid;\n const _isEmpty = required && state.value === null;\n const _showClear = !isSubmitting && !!state.value;\n\n const onChange = useCallback<React.ChangeEventHandler<HTMLInputElement>>(\n ({ target: { value } }) => {\n if (isSubmitting) return;\n if (maxLength && value.length > maxLength) return;\n handleChange(value || null);\n },\n [isSubmitting, maxLength, handleChange]\n );\n\n const onClear = useCallback(() => {\n if (isSubmitting) return;\n handleChange(null);\n }, [isSubmitting, handleChange]);\n\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field data-invalid={_invalid} orientation={orientation}>\n <FieldContent>\n <FieldLabel htmlFor={name} aria-required={_isEmpty}>\n {label}\n {tooltip && <FieldTooltip tooltip={tooltip} />}\n </FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n <Input\n id={name}\n name={name}\n value={state.value === null ? '' : state.value}\n aria-invalid={_invalid}\n autoComplete=\"email\"\n placeholder={placeholder}\n className={cn('pl-9', _showClear && 'pr-9', isSubmitting && 'pointer-events-none bg-muted-muted opacity-60')}\n onBlur={handleBlur}\n onChange={onChange}\n />\n <div className=\"absolute top-0 left-0 flex size-9 items-center justify-center text-muted\">\n <AtSignIcon size={14} />\n </div>\n\n {_showClear && (\n <button\n type=\"button\"\n aria-label=\"Xóa\"\n className=\"absolute inset-e-0 inset-y-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-strong\"\n onClick={onClear}\n >\n <XIcon size={14} aria-hidden=\"true\" />\n </button>\n )}\n\n <div className=\"mt-1 flex w-full items-start justify-start\">\n {showErrorMessage && state.meta.isDirty && <FieldError errors={state.meta.errors} />}\n </div>\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"4QA4CA,MAAa,GAA+B,CAC1C,QACA,cACA,cACA,UACA,aACA,cAAc,aACd,mBAAmB,GACnB,WAAW,GACX,eACI,CACJ,GAAM,CAAE,OAAM,OAAM,QAAO,aAAY,gBAAiBA,EAAAA,EAAuC,EAEzF,GAAA,EAAA,EAAA,SAAA,CAAwB,EAAK,OAAQ,CAAE,kBAAmB,CAAY,EAEtE,EAAW,EAAM,KAAK,SAAW,EAAM,KAAK,WAAa,CAAC,EAAM,KAAK,QACrE,EAAW,GAAY,EAAM,QAAU,KACvC,EAAa,CAAC,GAAgB,CAAC,CAAC,EAAM,MAEtC,GAAA,EAAA,EAAA,YAAA,EACH,CAAE,OAAQ,CAAE,YAAc,CACrB,GACA,GAAa,EAAM,OAAS,GAChC,EAAa,GAAS,IAAI,CAC5B,EACA,CAAC,EAAc,EAAW,CAAY,CACxC,EAEM,GAAA,EAAA,EAAA,YAAA,KAA4B,CAC5B,GACJ,EAAa,IAAI,CACnB,EAAG,CAAC,EAAc,CAAY,CAAC,EAE/B,OACE,EAAA,EAAA,KAAA,CAACC,EAAAA,WAAD,CAAY,UAAU,eAAtB,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,MAAD,CAAO,eAAc,EAAuB,cAA5C,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,WAAD,CAAY,QAAS,EAAM,gBAAe,EAA1C,SAAA,CACG,EACA,IAAW,EAAA,EAAA,IAAA,CAACC,EAAAA,aAAD,CAAuB,SAAU,CAAA,CACnC,CACZ,CAAA,GAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,iBAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,GACd,EAAA,EAAA,KAAA,CAACC,EAAAA,iBAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CACE,GAAI,EACE,OACN,MAAO,EAAM,QAAU,KAAO,GAAK,EAAM,MACzC,eAAc,EACd,aAAa,QACA,cACb,WAAA,EAAA,EAAA,GAAA,CAAc,OAAQ,GAAc,OAAQ,GAAgB,+CAA+C,EAC3G,OAAQ,EACE,UACX,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,2EACb,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAY,KAAM,EAAK,CAAA,CACpB,CAAA,EAEJ,IACC,EAAA,EAAA,IAAA,CAAC,SAAD,CACE,KAAK,SACL,aAAW,MACX,UAAU,wOACV,QAAS,EAET,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAO,KAAM,GAAI,cAAY,MAAQ,CAAA,CAC/B,CAAA,GAGV,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,6CACZ,SAAA,GAAoB,EAAM,KAAK,UAAW,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAY,OAAQ,EAAM,KAAK,MAAS,CAAA,CAChF,CAAA,GACL,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,OAAQ,CAAC,CAAC,EAAa,SAAA,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,CACP,CAAA,GAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAiB,CAAA,CACP,GAEhB"}
1
+ {"version":3,"file":"email-field-CqXXRG3w.cjs","names":["useTanStackFieldContext","FieldGroup","Field","FieldContent","FieldLabel","FieldTooltip","FieldDescription","FieldContentMain","Input","AtSignIcon","XIcon","FieldError","FieldNote","FieldSeparator"],"sources":["../packages/components/features/tanstack-form/components/fields/email-field.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { useStore } from '@tanstack/react-form';\n\nimport { AtSignIcon, XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Input } from '@/components/ui/input';\nimport {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n FieldTooltip,\n} from '../ui/field';\nimport { useTanStackFieldContext } from '../form-context';\n\nimport type { EmailFieldProps as Props } from '../../types';\n\n/**\n * A TanStack Form-connected email input field with an at-sign prefix icon,\n * optional clear button, and inline validation error display.\n *\n * @example\n * import { EmailField } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <form.Field name=\"email\">\n * {() => (\n * <EmailField\n * label=\"Email address\"\n * placeholder=\"you@example.com\"\n * required\n * />\n * )}\n * </form.Field>\n */\nexport const EmailField: React.FC<Props> = ({\n label,\n description,\n placeholder,\n tooltip,\n helperText,\n orientation = 'responsive',\n showErrorMessage = true,\n required = false,\n maxLength,\n}) => {\n const { form, name, state, handleBlur, handleChange } = useTanStackFieldContext<string | null>();\n\n const isSubmitting = useStore(form.store, ({ isSubmitting }) => isSubmitting);\n\n const _invalid = state.meta.isDirty && state.meta.isTouched && !state.meta.isValid;\n const _isEmpty = required && state.value === null;\n const _showClear = !isSubmitting && !!state.value;\n\n const onChange = useCallback<React.ChangeEventHandler<HTMLInputElement>>(\n ({ target: { value } }) => {\n if (isSubmitting) return;\n if (maxLength && value.length > maxLength) return;\n handleChange(value || null);\n },\n [isSubmitting, maxLength, handleChange]\n );\n\n const onClear = useCallback(() => {\n if (isSubmitting) return;\n handleChange(null);\n }, [isSubmitting, handleChange]);\n\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field data-invalid={_invalid} orientation={orientation}>\n <FieldContent>\n <FieldLabel htmlFor={name} aria-required={_isEmpty}>\n {label}\n {tooltip && <FieldTooltip tooltip={tooltip} />}\n </FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n <Input\n id={name}\n name={name}\n value={state.value === null ? '' : state.value}\n aria-invalid={_invalid}\n autoComplete=\"email\"\n placeholder={placeholder}\n className={cn('pl-9', _showClear && 'pr-9', isSubmitting && 'pointer-events-none bg-muted-muted opacity-60')}\n onBlur={handleBlur}\n onChange={onChange}\n />\n <div className=\"absolute top-0 left-0 flex size-9 items-center justify-center text-muted\">\n <AtSignIcon size={14} />\n </div>\n\n {_showClear && (\n <button\n type=\"button\"\n aria-label=\"Xóa\"\n className=\"absolute inset-e-0 inset-y-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-strong\"\n onClick={onClear}\n >\n <XIcon size={14} aria-hidden=\"true\" />\n </button>\n )}\n\n <div className=\"mt-1 flex w-full items-start justify-start\">\n {showErrorMessage && state.meta.isDirty && <FieldError errors={state.meta.errors} />}\n </div>\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"0OA4CA,MAAa,GAA+B,CAC1C,QACA,cACA,cACA,UACA,aACA,cAAc,aACd,mBAAmB,GACnB,WAAW,GACX,eACI,CACJ,GAAM,CAAE,OAAM,OAAM,QAAO,aAAY,gBAAiBA,EAAAA,GAAuC,EAEzF,GAAA,EAAA,EAAA,SAAA,CAAwB,EAAK,OAAQ,CAAE,kBAAmB,CAAY,EAEtE,EAAW,EAAM,KAAK,SAAW,EAAM,KAAK,WAAa,CAAC,EAAM,KAAK,QACrE,EAAW,GAAY,EAAM,QAAU,KACvC,EAAa,CAAC,GAAgB,CAAC,CAAC,EAAM,MAEtC,GAAA,EAAA,EAAA,YAAA,EACH,CAAE,OAAQ,CAAE,YAAc,CACrB,GACA,GAAa,EAAM,OAAS,GAChC,EAAa,GAAS,IAAI,CAC5B,EACA,CAAC,EAAc,EAAW,CAAY,CACxC,EAEM,GAAA,EAAA,EAAA,YAAA,KAA4B,CAC5B,GACJ,EAAa,IAAI,CACnB,EAAG,CAAC,EAAc,CAAY,CAAC,EAE/B,OACE,EAAA,EAAA,KAAA,CAACC,EAAAA,EAAD,CAAY,UAAU,eAAtB,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,EAAD,CAAO,eAAc,EAAuB,cAA5C,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,EAAD,CAAY,QAAS,EAAM,gBAAe,EAA1C,SAAA,CACG,EACA,IAAW,EAAA,EAAA,IAAA,CAACC,EAAAA,GAAD,CAAuB,SAAU,CAAA,CACnC,CACZ,CAAA,GAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,GACd,EAAA,EAAA,KAAA,CAACC,EAAAA,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CACE,GAAI,EACE,OACN,MAAO,EAAM,QAAU,KAAO,GAAK,EAAM,MACzC,eAAc,EACd,aAAa,QACA,cACb,WAAA,EAAA,EAAA,GAAA,CAAc,OAAQ,GAAc,OAAQ,GAAgB,+CAA+C,EAC3G,OAAQ,EACE,UACX,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,2EACb,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAY,KAAM,EAAK,CAAA,CACpB,CAAA,EAEJ,IACC,EAAA,EAAA,IAAA,CAAC,SAAD,CACE,KAAK,SACL,aAAW,MACX,UAAU,wOACV,QAAS,EAET,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAO,KAAM,GAAI,cAAY,MAAQ,CAAA,CAC/B,CAAA,GAGV,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,6CACZ,SAAA,GAAoB,EAAM,KAAK,UAAW,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAY,OAAQ,EAAM,KAAK,MAAS,CAAA,CAChF,CAAA,GACL,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAW,OAAQ,CAAC,CAAC,EAAa,SAAA,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,CACP,CAAA,GAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,GAAD,CAAiB,CAAA,CACP,GAEhB"}
@@ -1,2 +1,2 @@
1
- import { $ as FilterType, A as UITableLoadMore, At as TUITableWrapper, B as UITableEmptyDisplay, C as UITableTooltipActions, Ct as TUITableHeadCellOption, D as UITableContainer, Dt as TUITableInnerWrapper, E as UITableProvider, Et as TUITableInnerTable, F as UITableHeadCellOption, G as ActiveFilter, H as UITableCellActions, I as UITableHeadCell, J as ColumnAggregationType, K as BooleanFilterValue, L as UITableHead, M as UITableInnerTable, Mt as TagFilterValue, N as UITableHeadRow, Nt as TextFilterValue, O as UITableWrapper, Ot as TUITableLoadMore, P as UITableHeadCellSelect, Pt as UITableEmpty, Q as FilterOption, R as UITableFooterRow, S as UITableTooltip, St as TUITableHeadCell, T as UITableUserDataDisplay, Tt as TUITableHeadRow, U as UITableCell, V as UITableCellSelect, W as UITableBody, X as DateRangeFilterValue, Y as CsvCell, Z as FilterDefinition, _ as UITableRemoveButton, _t as TUITableCellSelect, a as UITableCurrencyDisplay, at as TTableAnalysisContext, b as UITableSummaryBar, bt as TUITableFooter, c as UITableEditButton, ct as TTableFilterContext, d as UITableListDisplay, dt as TTableInnerWrapperContext, et as FilterValue, f as UITableMoreButton, ft as TTableRowContext, g as UITableProgressDisplay, gt as TUITableCellActions, h as UITablePhoneNumberDisplay, ht as TUITableCell, i as UITableBooleanDisplay, it as SummaryItem, j as UITableInnerWrapper, jt as TableProviderProps, k as UITableRow, kt as TUITableRow, l as UITableEmailDisplay, lt as TTableHeadRowContext, m as UITablePermalink, mt as TUITableBody, n as UITableAvatarNameDisplay, nt as RowData, o as UITableDateDisplay, ot as TTableBodyContext, p as UITableNameDisplay, pt as TTableSummaryContext, q as ColumnAggregation, r as UITableBadgeDisplay, rt as SingleTagFilterValue, s as UITableDescriptionDisplay, st as TTableContext, t as UITableAnalysisPanel, tt as NumberFilterValue, u as UITableFilter, ut as TTableInnerTableContext, v as UITableStatisticDisplay, vt as TUITableColumn, w as UITableTooltipFilter, wt as TUITableHeadCellSelect, x as UITableToggleButton, xt as TUITableHead, y as UITableStatusDisplay, yt as TUITableEmptyDisplay, z as UITableFooter } from "../../index--wNkNzCB.cjs";
1
+ import { $ as FilterType, A as UITableLoadMore, At as TUITableWrapper, B as UITableEmptyDisplay, C as UITableTooltipActions, Ct as TUITableHeadCellOption, D as UITableContainer, Dt as TUITableInnerWrapper, E as UITableProvider, Et as TUITableInnerTable, F as UITableHeadCellOption, G as ActiveFilter, H as UITableCellActions, I as UITableHeadCell, J as ColumnAggregationType, K as BooleanFilterValue, L as UITableHead, M as UITableInnerTable, Mt as TagFilterValue, N as UITableHeadRow, Nt as TextFilterValue, O as UITableWrapper, Ot as TUITableLoadMore, P as UITableHeadCellSelect, Pt as UITableEmpty, Q as FilterOption, R as UITableFooterRow, S as UITableTooltip, St as TUITableHeadCell, T as UITableUserDataDisplay, Tt as TUITableHeadRow, U as UITableCell, V as UITableCellSelect, W as UITableBody, X as DateRangeFilterValue, Y as CsvCell, Z as FilterDefinition, _ as UITableRemoveButton, _t as TUITableCellSelect, a as UITableCurrencyDisplay, at as TTableAnalysisContext, b as UITableSummaryBar, bt as TUITableFooter, c as UITableEditButton, ct as TTableFilterContext, d as UITableListDisplay, dt as TTableInnerWrapperContext, et as FilterValue, f as UITableMoreButton, ft as TTableRowContext, g as UITableProgressDisplay, gt as TUITableCellActions, h as UITablePhoneNumberDisplay, ht as TUITableCell, i as UITableBooleanDisplay, it as SummaryItem, j as UITableInnerWrapper, jt as TableProviderProps, k as UITableRow, kt as TUITableRow, l as UITableEmailDisplay, lt as TTableHeadRowContext, m as UITablePermalink, mt as TUITableBody, n as UITableAvatarNameDisplay, nt as RowData, o as UITableDateDisplay, ot as TTableBodyContext, p as UITableNameDisplay, pt as TTableSummaryContext, q as ColumnAggregation, r as UITableBadgeDisplay, rt as SingleTagFilterValue, s as UITableDescriptionDisplay, st as TTableContext, t as UITableAnalysisPanel, tt as NumberFilterValue, u as UITableFilter, ut as TTableInnerTableContext, v as UITableStatisticDisplay, vt as TUITableColumn, w as UITableTooltipFilter, wt as TUITableHeadCellSelect, x as UITableToggleButton, xt as TUITableHead, y as UITableStatusDisplay, yt as TUITableEmptyDisplay, z as UITableFooter } from "../../index-CQPyC0Q2.cjs";
2
2
  export { ActiveFilter, BooleanFilterValue, ColumnAggregation, ColumnAggregationType, CsvCell, DateRangeFilterValue, FilterDefinition, FilterOption, FilterType, FilterValue, NumberFilterValue, RowData, SingleTagFilterValue, SummaryItem, TTableAnalysisContext, TTableBodyContext, TTableContext, TTableFilterContext, TTableHeadRowContext, TTableInnerTableContext, TTableInnerWrapperContext, TTableRowContext, TTableSummaryContext, TUITableBody, TUITableCell, TUITableCellActions, TUITableCellSelect, TUITableColumn, TUITableEmptyDisplay, TUITableFooter, TUITableHead, TUITableHeadCell, TUITableHeadCellOption, TUITableHeadCellSelect, TUITableHeadRow, TUITableInnerTable, TUITableInnerWrapper, TUITableLoadMore, TUITableRow, TUITableWrapper, TableProviderProps, TagFilterValue, TextFilterValue, UITableAnalysisPanel, UITableAvatarNameDisplay, UITableBadgeDisplay, UITableBody, UITableBooleanDisplay, UITableCell, UITableCellActions, UITableCellSelect, UITableContainer, UITableCurrencyDisplay, UITableDateDisplay, UITableDescriptionDisplay, UITableEditButton, UITableEmailDisplay, UITableEmpty, UITableEmptyDisplay, UITableFilter, UITableFooter, UITableFooterRow, UITableHead, UITableHeadCell, UITableHeadCellOption, UITableHeadCellSelect, UITableHeadRow, UITableInnerTable, UITableInnerWrapper, UITableListDisplay, UITableLoadMore, UITableMoreButton, UITableNameDisplay, UITablePermalink, UITablePhoneNumberDisplay, UITableProgressDisplay, UITableProvider, UITableRemoveButton, UITableRow, UITableStatisticDisplay, UITableStatusDisplay, UITableSummaryBar, UITableToggleButton, UITableTooltip, UITableTooltipActions, UITableTooltipFilter, UITableUserDataDisplay, UITableWrapper };
@@ -1,2 +1,2 @@
1
- import { $ as FilterType, A as UITableLoadMore, At as TUITableWrapper, B as UITableEmptyDisplay, C as UITableTooltipActions, Ct as TUITableHeadCellOption, D as UITableContainer, Dt as TUITableInnerWrapper, E as UITableProvider, Et as TUITableInnerTable, F as UITableHeadCellOption, G as ActiveFilter, H as UITableCellActions, I as UITableHeadCell, J as ColumnAggregationType, K as BooleanFilterValue, L as UITableHead, M as UITableInnerTable, Mt as TagFilterValue, N as UITableHeadRow, Nt as TextFilterValue, O as UITableWrapper, Ot as TUITableLoadMore, P as UITableHeadCellSelect, Pt as UITableEmpty, Q as FilterOption, R as UITableFooterRow, S as UITableTooltip, St as TUITableHeadCell, T as UITableUserDataDisplay, Tt as TUITableHeadRow, U as UITableCell, V as UITableCellSelect, W as UITableBody, X as DateRangeFilterValue, Y as CsvCell, Z as FilterDefinition, _ as UITableRemoveButton, _t as TUITableCellSelect, a as UITableCurrencyDisplay, at as TTableAnalysisContext, b as UITableSummaryBar, bt as TUITableFooter, c as UITableEditButton, ct as TTableFilterContext, d as UITableListDisplay, dt as TTableInnerWrapperContext, et as FilterValue, f as UITableMoreButton, ft as TTableRowContext, g as UITableProgressDisplay, gt as TUITableCellActions, h as UITablePhoneNumberDisplay, ht as TUITableCell, i as UITableBooleanDisplay, it as SummaryItem, j as UITableInnerWrapper, jt as TableProviderProps, k as UITableRow, kt as TUITableRow, l as UITableEmailDisplay, lt as TTableHeadRowContext, m as UITablePermalink, mt as TUITableBody, n as UITableAvatarNameDisplay, nt as RowData, o as UITableDateDisplay, ot as TTableBodyContext, p as UITableNameDisplay, pt as TTableSummaryContext, q as ColumnAggregation, r as UITableBadgeDisplay, rt as SingleTagFilterValue, s as UITableDescriptionDisplay, st as TTableContext, t as UITableAnalysisPanel, tt as NumberFilterValue, u as UITableFilter, ut as TTableInnerTableContext, v as UITableStatisticDisplay, vt as TUITableColumn, w as UITableTooltipFilter, wt as TUITableHeadCellSelect, x as UITableToggleButton, xt as TUITableHead, y as UITableStatusDisplay, yt as TUITableEmptyDisplay, z as UITableFooter } from "../../index-CrkOhm--.mjs";
1
+ import { $ as FilterType, A as UITableLoadMore, At as TUITableWrapper, B as UITableEmptyDisplay, C as UITableTooltipActions, Ct as TUITableHeadCellOption, D as UITableContainer, Dt as TUITableInnerWrapper, E as UITableProvider, Et as TUITableInnerTable, F as UITableHeadCellOption, G as ActiveFilter, H as UITableCellActions, I as UITableHeadCell, J as ColumnAggregationType, K as BooleanFilterValue, L as UITableHead, M as UITableInnerTable, Mt as TagFilterValue, N as UITableHeadRow, Nt as TextFilterValue, O as UITableWrapper, Ot as TUITableLoadMore, P as UITableHeadCellSelect, Pt as UITableEmpty, Q as FilterOption, R as UITableFooterRow, S as UITableTooltip, St as TUITableHeadCell, T as UITableUserDataDisplay, Tt as TUITableHeadRow, U as UITableCell, V as UITableCellSelect, W as UITableBody, X as DateRangeFilterValue, Y as CsvCell, Z as FilterDefinition, _ as UITableRemoveButton, _t as TUITableCellSelect, a as UITableCurrencyDisplay, at as TTableAnalysisContext, b as UITableSummaryBar, bt as TUITableFooter, c as UITableEditButton, ct as TTableFilterContext, d as UITableListDisplay, dt as TTableInnerWrapperContext, et as FilterValue, f as UITableMoreButton, ft as TTableRowContext, g as UITableProgressDisplay, gt as TUITableCellActions, h as UITablePhoneNumberDisplay, ht as TUITableCell, i as UITableBooleanDisplay, it as SummaryItem, j as UITableInnerWrapper, jt as TableProviderProps, k as UITableRow, kt as TUITableRow, l as UITableEmailDisplay, lt as TTableHeadRowContext, m as UITablePermalink, mt as TUITableBody, n as UITableAvatarNameDisplay, nt as RowData, o as UITableDateDisplay, ot as TTableBodyContext, p as UITableNameDisplay, pt as TTableSummaryContext, q as ColumnAggregation, r as UITableBadgeDisplay, rt as SingleTagFilterValue, s as UITableDescriptionDisplay, st as TTableContext, t as UITableAnalysisPanel, tt as NumberFilterValue, u as UITableFilter, ut as TTableInnerTableContext, v as UITableStatisticDisplay, vt as TUITableColumn, w as UITableTooltipFilter, wt as TUITableHeadCellSelect, x as UITableToggleButton, xt as TUITableHead, y as UITableStatusDisplay, yt as TUITableEmptyDisplay, z as UITableFooter } from "../../index-BCBEYTyA.mjs";
2
2
  export { ActiveFilter, BooleanFilterValue, ColumnAggregation, ColumnAggregationType, CsvCell, DateRangeFilterValue, FilterDefinition, FilterOption, FilterType, FilterValue, NumberFilterValue, RowData, SingleTagFilterValue, SummaryItem, TTableAnalysisContext, TTableBodyContext, TTableContext, TTableFilterContext, TTableHeadRowContext, TTableInnerTableContext, TTableInnerWrapperContext, TTableRowContext, TTableSummaryContext, TUITableBody, TUITableCell, TUITableCellActions, TUITableCellSelect, TUITableColumn, TUITableEmptyDisplay, TUITableFooter, TUITableHead, TUITableHeadCell, TUITableHeadCellOption, TUITableHeadCellSelect, TUITableHeadRow, TUITableInnerTable, TUITableInnerWrapper, TUITableLoadMore, TUITableRow, TUITableWrapper, TableProviderProps, TagFilterValue, TextFilterValue, UITableAnalysisPanel, UITableAvatarNameDisplay, UITableBadgeDisplay, UITableBody, UITableBooleanDisplay, UITableCell, UITableCellActions, UITableCellSelect, UITableContainer, UITableCurrencyDisplay, UITableDateDisplay, UITableDescriptionDisplay, UITableEditButton, UITableEmailDisplay, UITableEmpty, UITableEmptyDisplay, UITableFilter, UITableFooter, UITableFooterRow, UITableHead, UITableHeadCell, UITableHeadCellOption, UITableHeadCellSelect, UITableHeadRow, UITableInnerTable, UITableInnerWrapper, UITableListDisplay, UITableLoadMore, UITableMoreButton, UITableNameDisplay, UITablePermalink, UITablePhoneNumberDisplay, UITableProgressDisplay, UITableProvider, UITableRemoveButton, UITableRow, UITableStatisticDisplay, UITableStatusDisplay, UITableSummaryBar, UITableToggleButton, UITableTooltip, UITableTooltipActions, UITableTooltipFilter, UITableUserDataDisplay, UITableWrapper };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tanstack-form-C0ab8EEl.cjs");exports.ArrayCol=e.t,exports.ArrayHeaderRow=e.n,exports.CheckboxField=e.r,exports.ComboboxField=e.i,exports.DateField=e.a,exports.EmailField=e.o,exports.Field=e.s,exports.FieldContent=e.c,exports.FieldContentMain=e.l,exports.FieldError=e.u,exports.FieldGroup=e.d,exports.FieldLabel=e.f,exports.FieldSeparator=e.p,exports.NumberField=e.m,exports.PasswordField=e.h,exports.RadioGroupField=e.g,exports.SelectField=e._,exports.SimpleArrayField=e.v,exports.SimpleBooleanField=e.y,exports.SimpleComboboxField=e.b,exports.SimpleDateField=e.x,exports.SimpleEmailField=e.S,exports.SimpleNumberField=e.C,exports.SimplePasswordField=e.w,exports.SimpleRadioGroupField=e.T,exports.SimpleSelectField=e.E,exports.SimpleTextField=e.D,exports.SimpleTextareaField=e.O,exports.SwitchField=e.k,exports.TanStackActionSubmit=e.A,exports.TanStackActionsForm=e.j,exports.TanStackCardForm=e.M,exports.TanStackContainerForm=e.N,exports.TanStackDialogForm=e.P,exports.TanStackFieldGroup=e.F,exports.TanStackPopoverForm=e.I,exports.TanStackSectionForm=e.L,exports.TanStackTitleField=e.R,exports.TextEditorField=e.z,exports.TextField=e.B,exports.TextareaField=e.V,exports.useTanStackFieldContext=e.G,exports.useTanStackForm=e.H,exports.useTanStackFormContext=e.K,exports.withTanStackFieldGroup=e.U,exports.withTanStackForm=e.W;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tanstack-form-DCB2addt.cjs");exports.ArrayCol=e.t,exports.ArrayHeaderRow=e.n,exports.CheckboxField=e.r,exports.ComboboxField=e.i,exports.DateField=e.a,exports.EmailField=e.o,exports.Field=e.s,exports.FieldContent=e.c,exports.FieldContentMain=e.l,exports.FieldError=e.u,exports.FieldGroup=e.d,exports.FieldLabel=e.f,exports.FieldSeparator=e.p,exports.NumberField=e.m,exports.PasswordField=e.h,exports.RadioGroupField=e.g,exports.SelectField=e._,exports.SimpleArrayField=e.v,exports.SimpleBooleanField=e.y,exports.SimpleComboboxField=e.b,exports.SimpleDateField=e.x,exports.SimpleEmailField=e.S,exports.SimpleNumberField=e.C,exports.SimplePasswordField=e.w,exports.SimpleRadioGroupField=e.T,exports.SimpleSelectField=e.E,exports.SimpleTextField=e.D,exports.SimpleTextareaField=e.O,exports.SwitchField=e.k,exports.TanStackActionSubmit=e.A,exports.TanStackActionsForm=e.j,exports.TanStackCardForm=e.M,exports.TanStackContainerForm=e.N,exports.TanStackDialogForm=e.P,exports.TanStackFieldGroup=e.F,exports.TanStackPopoverForm=e.I,exports.TanStackSectionForm=e.L,exports.TanStackTitleField=e.R,exports.TextEditorField=e.W,exports.TextField=e.z,exports.TextareaField=e.B,exports.useTanStackFieldContext=e.rt,exports.useTanStackForm=e.V,exports.useTanStackFormContext=e.it,exports.withTanStackFieldGroup=e.H,exports.withTanStackForm=e.U;
@@ -1,2 +1,2 @@
1
- import { $ as EmailFieldProps, A as TanStackActionSubmit, B as TextField, C as SimpleNumberField, D as SimpleTextField, E as SimpleSelectField, F as TanStackFieldGroup, G as useTanStackFieldContext, H as useTanStackForm, I as TanStackPopoverForm, J as BooleanFieldValue, K as useTanStackFormContext, L as TanStackSectionForm, M as TanStackCardForm, N as TanStackContainerForm, O as SimpleTextareaField, P as TanStackDialogForm, Q as DateFieldValue, R as TanStackTitleField, S as SimpleEmailField, T as SimpleRadioGroupField, U as withTanStackFieldGroup, V as TextareaField, W as withTanStackForm, X as ComboboxFieldProps, Y as CheckboxFieldProps, Z as DateFieldProps, _ as SelectField, a as DateField, at as NumberFieldValue, b as SimpleComboboxField, c as FieldContent, ct as RadioOption, d as FieldGroup, dt as SimpleTextFieldProps, et as FieldOrientation, f as FieldLabel, ft as SwitchFieldProps, g as RadioGroupField, gt as TextareaFieldProps, h as PasswordField, ht as TextFieldValue, i as ComboboxField, it as NumberFieldProps, j as TanStackActionsForm, k as SwitchField, l as FieldContentMain, lt as SelectFieldProps, m as NumberField, mt as TextFieldProps, n as ArrayHeaderRow, nt as FieldType, o as EmailField, ot as PasswordFieldProps, p as FieldSeparator, pt as TextEditorFieldProps, q as AnyFieldProps, r as CheckboxField, rt as MultiSelectFieldValue, s as Field, st as RadioGroupFieldProps, t as ArrayCol, tt as FieldRounding, u as FieldError, ut as SelectOption, v as SimpleArrayField, w as SimplePasswordField, x as SimpleDateField, y as SimpleBooleanField, z as TextEditorField } from "../../index-DvC1inRy.cjs";
1
+ import { $ as EmailFieldProps, A as TanStackActionSubmit, B as TextareaField, C as SimpleNumberField, D as SimpleTextField, E as SimpleSelectField, F as TanStackFieldGroup, G as useTanStackFormContext, H as withTanStackFieldGroup, I as TanStackPopoverForm, J as BooleanFieldValue, K as TextEditorField, L as TanStackSectionForm, M as TanStackCardForm, N as TanStackContainerForm, O as SimpleTextareaField, P as TanStackDialogForm, Q as DateFieldValue, R as TanStackTitleField, S as SimpleEmailField, T as SimpleRadioGroupField, U as withTanStackForm, V as useTanStackForm, W as useTanStackFieldContext, X as ComboboxFieldProps, Y as CheckboxFieldProps, Z as DateFieldProps, _ as SelectField, a as DateField, at as NumberFieldValue, b as SimpleComboboxField, c as FieldContent, ct as RadioOption, d as FieldGroup, dt as SimpleTextFieldProps, et as FieldOrientation, f as FieldLabel, ft as SwitchFieldProps, g as RadioGroupField, gt as TextareaFieldProps, h as PasswordField, ht as TextFieldValue, i as ComboboxField, it as NumberFieldProps, j as TanStackActionsForm, k as SwitchField, l as FieldContentMain, lt as SelectFieldProps, m as NumberField, mt as TextFieldProps, n as ArrayHeaderRow, nt as FieldType, o as EmailField, ot as PasswordFieldProps, p as FieldSeparator, pt as TextEditorFieldProps, q as AnyFieldProps, r as CheckboxField, rt as MultiSelectFieldValue, s as Field, st as RadioGroupFieldProps, t as ArrayCol, tt as FieldRounding, u as FieldError, ut as SelectOption, v as SimpleArrayField, w as SimplePasswordField, x as SimpleDateField, y as SimpleBooleanField, z as TextField } from "../../index-0HuXxgjQ.cjs";
2
2
  export { AnyFieldProps, ArrayCol, ArrayHeaderRow, BooleanFieldValue, CheckboxField, CheckboxFieldProps, ComboboxField, ComboboxFieldProps, DateField, DateFieldProps, DateFieldValue, EmailField, EmailFieldProps, Field, FieldContent, FieldContentMain, FieldError, FieldGroup, FieldLabel, FieldOrientation, FieldRounding, FieldSeparator, FieldType, MultiSelectFieldValue, NumberField, NumberFieldProps, NumberFieldValue, PasswordField, PasswordFieldProps, RadioGroupField, RadioGroupFieldProps, RadioOption, SelectField, SelectFieldProps, SelectOption, SimpleArrayField, SimpleBooleanField, SimpleComboboxField, SimpleDateField, SimpleEmailField, SimpleNumberField, SimplePasswordField, SimpleRadioGroupField, SimpleSelectField, SimpleTextField, SimpleTextFieldProps, SimpleTextareaField, SwitchField, SwitchFieldProps, TanStackActionSubmit, TanStackActionsForm, TanStackCardForm, TanStackContainerForm, TanStackDialogForm, TanStackFieldGroup, TanStackPopoverForm, TanStackSectionForm, TanStackTitleField, TextEditorField, TextEditorFieldProps, TextField, TextFieldProps, TextFieldValue, TextareaField, TextareaFieldProps, useTanStackFieldContext, useTanStackForm, useTanStackFormContext, withTanStackFieldGroup, withTanStackForm };
@@ -1,2 +1,2 @@
1
- import { $ as EmailFieldProps, A as TanStackActionSubmit, B as TextField, C as SimpleNumberField, D as SimpleTextField, E as SimpleSelectField, F as TanStackFieldGroup, G as useTanStackFieldContext, H as useTanStackForm, I as TanStackPopoverForm, J as BooleanFieldValue, K as useTanStackFormContext, L as TanStackSectionForm, M as TanStackCardForm, N as TanStackContainerForm, O as SimpleTextareaField, P as TanStackDialogForm, Q as DateFieldValue, R as TanStackTitleField, S as SimpleEmailField, T as SimpleRadioGroupField, U as withTanStackFieldGroup, V as TextareaField, W as withTanStackForm, X as ComboboxFieldProps, Y as CheckboxFieldProps, Z as DateFieldProps, _ as SelectField, a as DateField, at as NumberFieldValue, b as SimpleComboboxField, c as FieldContent, ct as RadioOption, d as FieldGroup, dt as SimpleTextFieldProps, et as FieldOrientation, f as FieldLabel, ft as SwitchFieldProps, g as RadioGroupField, gt as TextareaFieldProps, h as PasswordField, ht as TextFieldValue, i as ComboboxField, it as NumberFieldProps, j as TanStackActionsForm, k as SwitchField, l as FieldContentMain, lt as SelectFieldProps, m as NumberField, mt as TextFieldProps, n as ArrayHeaderRow, nt as FieldType, o as EmailField, ot as PasswordFieldProps, p as FieldSeparator, pt as TextEditorFieldProps, q as AnyFieldProps, r as CheckboxField, rt as MultiSelectFieldValue, s as Field, st as RadioGroupFieldProps, t as ArrayCol, tt as FieldRounding, u as FieldError, ut as SelectOption, v as SimpleArrayField, w as SimplePasswordField, x as SimpleDateField, y as SimpleBooleanField, z as TextEditorField } from "../../index-DvC1inRy.mjs";
1
+ import { $ as EmailFieldProps, A as TanStackActionSubmit, B as TextareaField, C as SimpleNumberField, D as SimpleTextField, E as SimpleSelectField, F as TanStackFieldGroup, G as useTanStackFormContext, H as withTanStackFieldGroup, I as TanStackPopoverForm, J as BooleanFieldValue, K as TextEditorField, L as TanStackSectionForm, M as TanStackCardForm, N as TanStackContainerForm, O as SimpleTextareaField, P as TanStackDialogForm, Q as DateFieldValue, R as TanStackTitleField, S as SimpleEmailField, T as SimpleRadioGroupField, U as withTanStackForm, V as useTanStackForm, W as useTanStackFieldContext, X as ComboboxFieldProps, Y as CheckboxFieldProps, Z as DateFieldProps, _ as SelectField, a as DateField, at as NumberFieldValue, b as SimpleComboboxField, c as FieldContent, ct as RadioOption, d as FieldGroup, dt as SimpleTextFieldProps, et as FieldOrientation, f as FieldLabel, ft as SwitchFieldProps, g as RadioGroupField, gt as TextareaFieldProps, h as PasswordField, ht as TextFieldValue, i as ComboboxField, it as NumberFieldProps, j as TanStackActionsForm, k as SwitchField, l as FieldContentMain, lt as SelectFieldProps, m as NumberField, mt as TextFieldProps, n as ArrayHeaderRow, nt as FieldType, o as EmailField, ot as PasswordFieldProps, p as FieldSeparator, pt as TextEditorFieldProps, q as AnyFieldProps, r as CheckboxField, rt as MultiSelectFieldValue, s as Field, st as RadioGroupFieldProps, t as ArrayCol, tt as FieldRounding, u as FieldError, ut as SelectOption, v as SimpleArrayField, w as SimplePasswordField, x as SimpleDateField, y as SimpleBooleanField, z as TextField } from "../../index-CZ_2KVir.mjs";
2
2
  export { AnyFieldProps, ArrayCol, ArrayHeaderRow, BooleanFieldValue, CheckboxField, CheckboxFieldProps, ComboboxField, ComboboxFieldProps, DateField, DateFieldProps, DateFieldValue, EmailField, EmailFieldProps, Field, FieldContent, FieldContentMain, FieldError, FieldGroup, FieldLabel, FieldOrientation, FieldRounding, FieldSeparator, FieldType, MultiSelectFieldValue, NumberField, NumberFieldProps, NumberFieldValue, PasswordField, PasswordFieldProps, RadioGroupField, RadioGroupFieldProps, RadioOption, SelectField, SelectFieldProps, SelectOption, SimpleArrayField, SimpleBooleanField, SimpleComboboxField, SimpleDateField, SimpleEmailField, SimpleNumberField, SimplePasswordField, SimpleRadioGroupField, SimpleSelectField, SimpleTextField, SimpleTextFieldProps, SimpleTextareaField, SwitchField, SwitchFieldProps, TanStackActionSubmit, TanStackActionsForm, TanStackCardForm, TanStackContainerForm, TanStackDialogForm, TanStackFieldGroup, TanStackPopoverForm, TanStackSectionForm, TanStackTitleField, TextEditorField, TextEditorFieldProps, TextField, TextFieldProps, TextFieldValue, TextareaField, TextareaFieldProps, useTanStackFieldContext, useTanStackForm, useTanStackFormContext, withTanStackFieldGroup, withTanStackForm };
@@ -1 +1 @@
1
- import{A as e,B as t,C as n,D as r,E as i,F as a,G as o,H as s,I as c,K as l,L as u,M as d,N as f,O as p,P as m,R as h,S as g,T as _,U as v,V as y,W as b,_ as x,a as S,b as C,c as w,d as T,f as E,g as D,h as O,i as k,j as A,k as j,l as M,m as N,n as P,o as F,p as I,r as L,s as R,t as z,u as B,v as V,w as H,x as U,y as W,z as G}from"../../tanstack-form-fkaBh9RO.mjs";export{z as ArrayCol,P as ArrayHeaderRow,L as CheckboxField,k as ComboboxField,S as DateField,F as EmailField,R as Field,w as FieldContent,M as FieldContentMain,B as FieldError,T as FieldGroup,E as FieldLabel,I as FieldSeparator,N as NumberField,O as PasswordField,D as RadioGroupField,x as SelectField,V as SimpleArrayField,W as SimpleBooleanField,C as SimpleComboboxField,U as SimpleDateField,g as SimpleEmailField,n as SimpleNumberField,H as SimplePasswordField,_ as SimpleRadioGroupField,i as SimpleSelectField,r as SimpleTextField,p as SimpleTextareaField,j as SwitchField,e as TanStackActionSubmit,A as TanStackActionsForm,d as TanStackCardForm,f as TanStackContainerForm,m as TanStackDialogForm,a as TanStackFieldGroup,c as TanStackPopoverForm,u as TanStackSectionForm,h as TanStackTitleField,G as TextEditorField,t as TextField,y as TextareaField,o as useTanStackFieldContext,s as useTanStackForm,l as useTanStackFormContext,v as withTanStackFieldGroup,b as withTanStackForm};
1
+ import{A as e,B as t,C as n,D as r,E as i,F as a,H as o,I as s,L as c,M as l,N as u,O as d,P as f,R as p,S as m,T as h,U as g,V as _,W as v,_ as y,a as b,b as x,c as S,d as C,f as w,g as T,h as E,i as D,it as O,j as k,k as A,l as j,m as M,n as N,o as P,p as F,r as I,rt as L,s as R,t as z,u as B,v as V,w as H,x as U,y as W,z as G}from"../../tanstack-form-BhKAn9I0.mjs";export{z as ArrayCol,N as ArrayHeaderRow,I as CheckboxField,D as ComboboxField,b as DateField,P as EmailField,R as Field,S as FieldContent,j as FieldContentMain,B as FieldError,C as FieldGroup,w as FieldLabel,F as FieldSeparator,M as NumberField,E as PasswordField,T as RadioGroupField,y as SelectField,V as SimpleArrayField,W as SimpleBooleanField,x as SimpleComboboxField,U as SimpleDateField,m as SimpleEmailField,n as SimpleNumberField,H as SimplePasswordField,h as SimpleRadioGroupField,i as SimpleSelectField,r as SimpleTextField,d as SimpleTextareaField,A as SwitchField,e as TanStackActionSubmit,k as TanStackActionsForm,l as TanStackCardForm,u as TanStackContainerForm,f as TanStackDialogForm,a as TanStackFieldGroup,s as TanStackPopoverForm,c as TanStackSectionForm,p as TanStackTitleField,v as TextEditorField,G as TextField,t as TextareaField,L as useTanStackFieldContext,_ as useTanStackForm,O as useTanStackFormContext,o as withTanStackFieldGroup,g as withTanStackForm};
@@ -1 +1 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../text-editor-BtfyZSgR.cjs");exports.LinkDialog=e.r,exports.TextEditor=e.t,exports.TextEditorToolbar=e.n;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../text-editor-DWZf3yrW.cjs");exports.LinkDialog=e.r,exports.TextEditor=e.t,exports.TextEditorToolbar=e.n;
@@ -1,2 +1,2 @@
1
- import { a as LinkDialog, i as TextEditorProps, n as TextEditorToolbarProps, o as LinkDialogProps, r as TextEditor, t as TextEditorToolbar } from "../../index-DRAyYm8g.cjs";
1
+ import { a as LinkDialog, i as TextEditorProps, n as TextEditorToolbarProps, o as LinkDialogProps, r as TextEditor, t as TextEditorToolbar } from "../../index-CvFEJoon.cjs";
2
2
  export { LinkDialog, type LinkDialogProps, TextEditor, type TextEditorProps, TextEditorToolbar, type TextEditorToolbarProps };
@@ -1,2 +1,2 @@
1
- import { a as LinkDialog, i as TextEditorProps, n as TextEditorToolbarProps, o as LinkDialogProps, r as TextEditor, t as TextEditorToolbar } from "../../index-DRAyYm8g.mjs";
1
+ import { a as LinkDialog, i as TextEditorProps, n as TextEditorToolbarProps, o as LinkDialogProps, r as TextEditor, t as TextEditorToolbar } from "../../index-CvFEJoon.mjs";
2
2
  export { LinkDialog, type LinkDialogProps, TextEditor, type TextEditorProps, TextEditorToolbar, type TextEditorToolbarProps };
@@ -1 +1 @@
1
- "use client";import{n as e,r as t,t as n}from"../../text-editor-CtR27_PR.mjs";export{t as LinkDialog,n as TextEditor,e as TextEditorToolbar};
1
+ "use client";import{n as e,r as t,t as n}from"../../text-editor-XBOAwJk-.mjs";export{t as LinkDialog,n as TextEditor,e as TextEditorToolbar};
@@ -2,7 +2,7 @@ import { VariantProps } from "class-variance-authority";
2
2
  //#region packages/components/layouts/flex.d.ts
3
3
  declare const flexVariants: (props?: ({
4
4
  vertical?: boolean | null | undefined;
5
- width?: "auto" | "max" | "min" | "full" | "fit" | "screen" | "null" | null | undefined;
5
+ width?: "max" | "min" | "auto" | "full" | "fit" | "screen" | "null" | null | undefined;
6
6
  wrap?: boolean | null | undefined;
7
7
  margin?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
8
8
  padding?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
@@ -102,4 +102,4 @@ type Props = {
102
102
  declare const Flex: import("react").MemoExoticComponent<({ vertical, wrap, width, margin, padding, gap, justify, align, className, children, ...rest }: React.PropsWithChildren<Props>) => import("react").JSX.Element>;
103
103
  //#endregion
104
104
  export { Flex as t };
105
- //# sourceMappingURL=flex-C63_IqSY.d.cts.map
105
+ //# sourceMappingURL=flex-D6RCsrv1.d.cts.map
@@ -2,7 +2,7 @@ import { VariantProps } from "class-variance-authority";
2
2
  //#region packages/components/layouts/flex.d.ts
3
3
  declare const flexVariants: (props?: ({
4
4
  vertical?: boolean | null | undefined;
5
- width?: "auto" | "max" | "min" | "full" | "fit" | "screen" | "null" | null | undefined;
5
+ width?: "max" | "min" | "auto" | "full" | "fit" | "screen" | "null" | null | undefined;
6
6
  wrap?: boolean | null | undefined;
7
7
  margin?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
8
8
  padding?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
@@ -102,4 +102,4 @@ type Props = {
102
102
  declare const Flex: import("react").MemoExoticComponent<({ vertical, wrap, width, margin, padding, gap, justify, align, className, children, ...rest }: React.PropsWithChildren<Props>) => import("react").JSX.Element>;
103
103
  //#endregion
104
104
  export { Flex as t };
105
- //# sourceMappingURL=flex-C63_IqSY.d.mts.map
105
+ //# sourceMappingURL=flex-D6RCsrv1.d.mts.map
@@ -0,0 +1,2 @@
1
+ import{$ as e,G as t,J as n,K as r,X as i,Z as a,et as o,q as s}from"./tanstack-form-BhKAn9I0.mjs";import{jsx as c,jsxs as l}from"react/jsx-runtime";const u=({label:u,description:d,helperText:f,orientation:p=`responsive`,children:m})=>l(i,{className:`gap-y-4 px-4`,children:[l(t,{orientation:p,children:[l(r,{children:[c(a,{children:u}),c(n,{children:d})]}),l(s,{children:[m,c(e,{isShow:!!f,children:f})]})]}),c(o,{})]});export{u as TanStackFieldGroup};
2
+ //# sourceMappingURL=group-field-8nINgAeO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-field-gejvx_Td.mjs","names":[],"sources":["../packages/components/features/tanstack-form/components/forms/group-field.tsx"],"sourcesContent":["import {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n} from '@/components/features/tanstack-form/components/ui/field';\n\n/**\n * Renders a labeled field group with an optional description, helper text, and a bottom separator.\n *\n * @example\n * import { TanStackFieldGroup } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackFieldGroup\n * label=\"Contact Details\"\n * description=\"Enter your contact information.\"\n * helperText=\"All fields are required.\"\n * orientation=\"horizontal\"\n * >\n * <EmailField />\n * </TanStackFieldGroup>\n */\nexport const TanStackFieldGroup: React.FC<\n React.PropsWithChildren<{\n /** Primary label displayed above the field content. */\n label: string;\n /** Secondary descriptive text shown beneath the label. */\n description?: string;\n /** Supplementary helper note rendered below the field content. */\n helperText?: string;\n /** Layout orientation of the label-to-content axis. Defaults to `'responsive'`. */\n orientation?: 'horizontal' | 'vertical' | 'responsive';\n }>\n> = ({\n label,\n description,\n helperText,\n\n orientation = 'responsive',\n children,\n}) => {\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field orientation={orientation}>\n <FieldContent>\n <FieldLabel>{label}</FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n {children}\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"gOA0BA,MAAa,GAWR,CACH,QACA,cACA,aAEA,cAAc,aACd,cAGE,EAAC,EAAD,CAAY,UAAU,eAAtB,SAAA,CACE,EAAC,EAAD,CAAoB,cAApB,SAAA,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAa,CAAkB,CAAA,EAC/B,EAAC,EAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,EACd,EAAC,EAAD,CAAA,SAAA,CACG,EACD,EAAC,EAAD,CAAW,OAAQ,CAAC,CAAC,EAAa,SAAA,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,CACP,CAAA,EAAA,EAAC,EAAD,CAAiB,CAAA,CACP"}
1
+ {"version":3,"file":"group-field-8nINgAeO.mjs","names":[],"sources":["../packages/components/features/tanstack-form/components/forms/group-field.tsx"],"sourcesContent":["import {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n} from '@/components/features/tanstack-form/components/ui/field';\n\n/**\n * Renders a labeled field group with an optional description, helper text, and a bottom separator.\n *\n * @example\n * import { TanStackFieldGroup } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackFieldGroup\n * label=\"Contact Details\"\n * description=\"Enter your contact information.\"\n * helperText=\"All fields are required.\"\n * orientation=\"horizontal\"\n * >\n * <EmailField />\n * </TanStackFieldGroup>\n */\nexport const TanStackFieldGroup: React.FC<\n React.PropsWithChildren<{\n /** Primary label displayed above the field content. */\n label: string;\n /** Secondary descriptive text shown beneath the label. */\n description?: string;\n /** Supplementary helper note rendered below the field content. */\n helperText?: string;\n /** Layout orientation of the label-to-content axis. Defaults to `'responsive'`. */\n orientation?: 'horizontal' | 'vertical' | 'responsive';\n }>\n> = ({\n label,\n description,\n helperText,\n\n orientation = 'responsive',\n children,\n}) => {\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field orientation={orientation}>\n <FieldContent>\n <FieldLabel>{label}</FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n {children}\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"qJA0BA,MAAa,GAWR,CACH,QACA,cACA,aAEA,cAAc,aACd,cAGE,EAAC,EAAD,CAAY,UAAU,eAAtB,SAAA,CACE,EAAC,EAAD,CAAoB,cAApB,SAAA,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAa,CAAkB,CAAA,EAC/B,EAAC,EAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,EACd,EAAC,EAAD,CAAA,SAAA,CACG,EACD,EAAC,EAAD,CAAW,OAAQ,CAAC,CAAC,EAAa,SAAA,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,CACP,CAAA,EAAA,EAAC,EAAD,CAAiB,CAAA,CACP"}
@@ -0,0 +1,2 @@
1
+ const e=require("./tanstack-form-DCB2addt.cjs");let t=require("react/jsx-runtime");const n=({label:n,description:r,helperText:i,orientation:a=`responsive`,children:o})=>(0,t.jsxs)(e.X,{className:`gap-y-4 px-4`,children:[(0,t.jsxs)(e.G,{orientation:a,children:[(0,t.jsxs)(e.K,{children:[(0,t.jsx)(e.Z,{children:n}),(0,t.jsx)(e.J,{children:r})]}),(0,t.jsxs)(e.q,{children:[o,(0,t.jsx)(e.$,{isShow:!!i,children:i})]})]}),(0,t.jsx)(e.et,{})]});exports.TanStackFieldGroup=n;
2
+ //# sourceMappingURL=group-field-DfGPDLyp.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-field-sVykO2JZ.cjs","names":["FieldGroup","Field","FieldContent","FieldLabel","FieldDescription","FieldContentMain","FieldNote","FieldSeparator"],"sources":["../packages/components/features/tanstack-form/components/forms/group-field.tsx"],"sourcesContent":["import {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n} from '@/components/features/tanstack-form/components/ui/field';\n\n/**\n * Renders a labeled field group with an optional description, helper text, and a bottom separator.\n *\n * @example\n * import { TanStackFieldGroup } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackFieldGroup\n * label=\"Contact Details\"\n * description=\"Enter your contact information.\"\n * helperText=\"All fields are required.\"\n * orientation=\"horizontal\"\n * >\n * <EmailField />\n * </TanStackFieldGroup>\n */\nexport const TanStackFieldGroup: React.FC<\n React.PropsWithChildren<{\n /** Primary label displayed above the field content. */\n label: string;\n /** Secondary descriptive text shown beneath the label. */\n description?: string;\n /** Supplementary helper note rendered below the field content. */\n helperText?: string;\n /** Layout orientation of the label-to-content axis. Defaults to `'responsive'`. */\n orientation?: 'horizontal' | 'vertical' | 'responsive';\n }>\n> = ({\n label,\n description,\n helperText,\n\n orientation = 'responsive',\n children,\n}) => {\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field orientation={orientation}>\n <FieldContent>\n <FieldLabel>{label}</FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n {children}\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"2EA0BA,MAAa,GAWR,CACH,QACA,cACA,aAEA,cAAc,aACd,eAGE,EAAA,EAAA,KAAA,CAACA,EAAAA,WAAD,CAAY,UAAU,eAAtB,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,MAAD,CAAoB,cAApB,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAA,SAAa,CAAkB,CAAA,GAC/B,EAAA,EAAA,IAAA,CAACC,EAAAA,iBAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,GACd,EAAA,EAAA,KAAA,CAACC,EAAAA,iBAAD,CAAA,SAAA,CACG,GACD,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,OAAQ,CAAC,CAAC,EAAa,SAAA,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,CACP,CAAA,GAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAiB,CAAA,CACP"}
1
+ {"version":3,"file":"group-field-DfGPDLyp.cjs","names":["FieldGroup","Field","FieldContent","FieldLabel","FieldDescription","FieldContentMain","FieldNote","FieldSeparator"],"sources":["../packages/components/features/tanstack-form/components/forms/group-field.tsx"],"sourcesContent":["import {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n} from '@/components/features/tanstack-form/components/ui/field';\n\n/**\n * Renders a labeled field group with an optional description, helper text, and a bottom separator.\n *\n * @example\n * import { TanStackFieldGroup } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackFieldGroup\n * label=\"Contact Details\"\n * description=\"Enter your contact information.\"\n * helperText=\"All fields are required.\"\n * orientation=\"horizontal\"\n * >\n * <EmailField />\n * </TanStackFieldGroup>\n */\nexport const TanStackFieldGroup: React.FC<\n React.PropsWithChildren<{\n /** Primary label displayed above the field content. */\n label: string;\n /** Secondary descriptive text shown beneath the label. */\n description?: string;\n /** Supplementary helper note rendered below the field content. */\n helperText?: string;\n /** Layout orientation of the label-to-content axis. Defaults to `'responsive'`. */\n orientation?: 'horizontal' | 'vertical' | 'responsive';\n }>\n> = ({\n label,\n description,\n helperText,\n\n orientation = 'responsive',\n children,\n}) => {\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field orientation={orientation}>\n <FieldContent>\n <FieldLabel>{label}</FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n {children}\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"mFA0BA,MAAa,GAWR,CACH,QACA,cACA,aAEA,cAAc,aACd,eAGE,EAAA,EAAA,KAAA,CAACA,EAAAA,EAAD,CAAY,UAAU,eAAtB,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,EAAD,CAAoB,cAApB,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAA,SAAa,CAAkB,CAAA,GAC/B,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,GACd,EAAA,EAAA,KAAA,CAACC,EAAAA,EAAD,CAAA,SAAA,CACG,GACD,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAW,OAAQ,CAAC,CAAC,EAAa,SAAA,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,CACP,CAAA,GAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,GAAD,CAAiB,CAAA,CACP"}
@@ -1,3 +1,4 @@
1
+ import { i as TextEditorProps } from "./index-CvFEJoon.cjs";
1
2
  import * as React$1 from "react";
2
3
  import { ComponentType } from "react";
3
4
  //#region packages/components/features/tanstack-form/types.d.ts
@@ -97,7 +98,7 @@ type TextareaFieldProps = {
97
98
  disabled?: boolean;
98
99
  };
99
100
  /** Props for {@link TextEditorField} — a rich-text (WYSIWYG) editor field. */
100
- type TextEditorFieldProps = {
101
+ type TextEditorFieldProps = Pick<TextEditorProps, 'maxLength' | 'showCharacterCount' | 'enableLink' | 'enableBubbleMenu' | 'enableTaskList' | 'enableHighlight' | 'enableColor' | 'enableImage' | 'enableTable' | 'enableSlashCommand' | 'onImageUpload' | 'variant' | 'size'> & {
101
102
  /** Field label displayed above the editor. */
102
103
  label: string;
103
104
  /** Secondary text rendered below the label. */
@@ -2144,6 +2145,9 @@ type SimpleArrayFieldProps<T> = {
2144
2145
  className?: string;
2145
2146
  };
2146
2147
  //#endregion
2148
+ //#region packages/components/features/tanstack-form/components/fields/text-editor-field.d.ts
2149
+ declare const TextEditorField: React.FC<TextEditorFieldProps>;
2150
+ //#endregion
2147
2151
  //#region packages/components/features/tanstack-form/components/form-context.d.ts
2148
2152
  /**
2149
2153
  * Shared field/form contexts, split out from `tanstack-form.tsx` so that field and form
@@ -2155,7 +2159,6 @@ declare const fieldContext: import("react").Context<AnyFieldApi>, formContext: i
2155
2159
  //#region packages/components/features/tanstack-form/tanstack-form.d.ts
2156
2160
  declare const TextField: ComponentType<TextFieldProps>;
2157
2161
  declare const TextareaField: ComponentType<TextareaFieldProps>;
2158
- declare const TextEditorField: ComponentType<TextEditorFieldProps>;
2159
2162
  declare const NumberField: ComponentType<NumberFieldProps>;
2160
2163
  declare const EmailField: ComponentType<EmailFieldProps>;
2161
2164
  declare const PasswordField: ComponentType<PasswordFieldProps>;
@@ -2384,7 +2387,7 @@ declare const FieldError: ComponentType<import("react").ClassAttributes<HTMLDivE
2384
2387
  declare const useTanStackForm: <TFormData, TOnMount extends FormValidateOrFn<TFormData> | undefined, TOnChange extends FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends FormAsyncValidateOrFn<TFormData> | undefined, TOnDynamic extends FormValidateOrFn<TFormData> | undefined, TOnDynamicAsync extends FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta>(props: FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>) => import("@tanstack/react-form").AppFieldExtendedReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, {
2385
2388
  readonly TextField: ComponentType<TextFieldProps>;
2386
2389
  readonly TextareaField: ComponentType<TextareaFieldProps>;
2387
- readonly TextEditorField: ComponentType<TextEditorFieldProps>;
2390
+ readonly TextEditorField: import("react").FC<TextEditorFieldProps>;
2388
2391
  readonly NumberField: ComponentType<NumberFieldProps>;
2389
2392
  readonly EmailField: ComponentType<EmailFieldProps>;
2390
2393
  readonly PasswordField: ComponentType<PasswordFieldProps>;
@@ -2558,7 +2561,7 @@ declare const useTanStackForm: <TFormData, TOnMount extends FormValidateOrFn<TFo
2558
2561
  }>, withTanStackForm: <TFormData, TOnMount extends FormValidateOrFn<TFormData> | undefined, TOnChange extends FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends FormAsyncValidateOrFn<TFormData> | undefined, TOnDynamic extends FormValidateOrFn<TFormData> | undefined, TOnDynamicAsync extends FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta, TRenderProps extends object = {}>({ render, props }: import("@tanstack/react-form").WithFormProps<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, {
2559
2562
  readonly TextField: ComponentType<TextFieldProps>;
2560
2563
  readonly TextareaField: ComponentType<TextareaFieldProps>;
2561
- readonly TextEditorField: ComponentType<TextEditorFieldProps>;
2564
+ readonly TextEditorField: import("react").FC<TextEditorFieldProps>;
2562
2565
  readonly NumberField: ComponentType<NumberFieldProps>;
2563
2566
  readonly EmailField: ComponentType<EmailFieldProps>;
2564
2567
  readonly PasswordField: ComponentType<PasswordFieldProps>;
@@ -2733,7 +2736,7 @@ declare const useTanStackForm: <TFormData, TOnMount extends FormValidateOrFn<TFo
2733
2736
  form: import("@tanstack/react-form").AppFieldExtendedReactFormApi<[unknown] extends [TFormData] ? any : TFormData, [FormValidateOrFn<TFormData> | undefined] extends [TOnMount] ? [TOnMount] extends [TOnMount & (FormValidateOrFn<TFormData> | undefined)] ? any : TOnMount : TOnMount, [FormValidateOrFn<TFormData> | undefined] extends [TOnChange] ? [TOnChange] extends [TOnChange & (FormValidateOrFn<TFormData> | undefined)] ? any : TOnChange : TOnChange, [FormValidateOrFn<TFormData> | undefined] extends [TOnChangeAsync] ? [TOnChangeAsync] extends [TOnChangeAsync & (FormValidateOrFn<TFormData> | undefined)] ? any : TOnChangeAsync : TOnChangeAsync, [FormValidateOrFn<TFormData> | undefined] extends [TOnBlur] ? [TOnBlur] extends [TOnBlur & (FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlur : TOnBlur, [FormValidateOrFn<TFormData> | undefined] extends [TOnBlurAsync] ? [TOnBlurAsync] extends [TOnBlurAsync & (FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlurAsync : TOnBlurAsync, [FormValidateOrFn<TFormData> | undefined] extends [TOnSubmit] ? [TOnSubmit] extends [TOnSubmit & (FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmit : TOnSubmit, [FormValidateOrFn<TFormData> | undefined] extends [TOnSubmitAsync] ? [TOnSubmitAsync] extends [TOnSubmitAsync & (FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmitAsync : TOnSubmitAsync, [FormValidateOrFn<TFormData> | undefined] extends [TOnDynamic] ? [TOnDynamic] extends [TOnDynamic & (FormValidateOrFn<TFormData> | undefined)] ? any : TOnDynamic : TOnDynamic, [FormValidateOrFn<TFormData> | undefined] extends [TOnDynamicAsync] ? [TOnDynamicAsync] extends [TOnDynamicAsync & (FormValidateOrFn<TFormData> | undefined)] ? any : TOnDynamicAsync : TOnDynamicAsync, [FormValidateOrFn<TFormData> | undefined] extends [TOnServer] ? [TOnServer] extends [TOnServer & (FormValidateOrFn<TFormData> | undefined)] ? any : TOnServer : TOnServer, [unknown] extends [TSubmitMeta] ? any : TSubmitMeta, {
2734
2737
  readonly TextField: ComponentType<TextFieldProps>;
2735
2738
  readonly TextareaField: ComponentType<TextareaFieldProps>;
2736
- readonly TextEditorField: ComponentType<TextEditorFieldProps>;
2739
+ readonly TextEditorField: import("react").FC<TextEditorFieldProps>;
2737
2740
  readonly NumberField: ComponentType<NumberFieldProps>;
2738
2741
  readonly EmailField: ComponentType<EmailFieldProps>;
2739
2742
  readonly PasswordField: ComponentType<PasswordFieldProps>;
@@ -2908,7 +2911,7 @@ declare const useTanStackForm: <TFormData, TOnMount extends FormValidateOrFn<TFo
2908
2911
  }>>, withTanStackFieldGroup: <TFieldGroupData, TSubmitMeta, TRenderProps extends object = {}>({ render, props, defaultValues }: import("@tanstack/react-form").WithFieldGroupProps<TFieldGroupData, {
2909
2912
  readonly TextField: ComponentType<TextFieldProps>;
2910
2913
  readonly TextareaField: ComponentType<TextareaFieldProps>;
2911
- readonly TextEditorField: ComponentType<TextEditorFieldProps>;
2914
+ readonly TextEditorField: import("react").FC<TextEditorFieldProps>;
2912
2915
  readonly NumberField: ComponentType<NumberFieldProps>;
2913
2916
  readonly EmailField: ComponentType<EmailFieldProps>;
2914
2917
  readonly PasswordField: ComponentType<PasswordFieldProps>;
@@ -3083,7 +3086,7 @@ declare const useTanStackForm: <TFormData, TOnMount extends FormValidateOrFn<TFo
3083
3086
  form: import("@tanstack/react-form").AppFieldExtendedReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, unknown extends TSubmitMeta ? TFormSubmitMeta : TSubmitMeta, {
3084
3087
  readonly TextField: ComponentType<TextFieldProps>;
3085
3088
  readonly TextareaField: ComponentType<TextareaFieldProps>;
3086
- readonly TextEditorField: ComponentType<TextEditorFieldProps>;
3089
+ readonly TextEditorField: import("react").FC<TextEditorFieldProps>;
3087
3090
  readonly NumberField: ComponentType<NumberFieldProps>;
3088
3091
  readonly EmailField: ComponentType<EmailFieldProps>;
3089
3092
  readonly PasswordField: ComponentType<PasswordFieldProps>;
@@ -3257,7 +3260,7 @@ declare const useTanStackForm: <TFormData, TOnMount extends FormValidateOrFn<TFo
3257
3260
  }> | import("@tanstack/react-form").AppFieldExtendedReactFieldGroupApi<unknown, TFormData, string | FieldsMap<unknown, TFormData>, any, any, any, any, any, any, any, any, any, any, unknown extends TSubmitMeta ? TFormSubmitMeta : TSubmitMeta, {
3258
3261
  readonly TextField: ComponentType<TextFieldProps>;
3259
3262
  readonly TextareaField: ComponentType<TextareaFieldProps>;
3260
- readonly TextEditorField: ComponentType<TextEditorFieldProps>;
3263
+ readonly TextEditorField: import("react").FC<TextEditorFieldProps>;
3261
3264
  readonly NumberField: ComponentType<NumberFieldProps>;
3262
3265
  readonly EmailField: ComponentType<EmailFieldProps>;
3263
3266
  readonly PasswordField: ComponentType<PasswordFieldProps>;
@@ -3432,5 +3435,5 @@ declare const useTanStackForm: <TFormData, TOnMount extends FormValidateOrFn<TFo
3432
3435
  fields: TFields;
3433
3436
  }>) => ReturnType<import("react").FunctionComponent>;
3434
3437
  //#endregion
3435
- export { EmailFieldProps as $, TanStackActionSubmit as A, TextField as B, SimpleNumberField as C, SimpleTextField as D, SimpleSelectField as E, TanStackFieldGroup as F, useTanStackFieldContext as G, useTanStackForm as H, TanStackPopoverForm as I, BooleanFieldValue as J, useTanStackFormContext as K, TanStackSectionForm as L, TanStackCardForm as M, TanStackContainerForm as N, SimpleTextareaField as O, TanStackDialogForm as P, DateFieldValue as Q, TanStackTitleField as R, SimpleEmailField as S, SimpleRadioGroupField as T, withTanStackFieldGroup as U, TextareaField as V, withTanStackForm as W, ComboboxFieldProps as X, CheckboxFieldProps as Y, DateFieldProps as Z, SelectField as _, DateField as a, NumberFieldValue as at, SimpleComboboxField as b, FieldContent as c, RadioOption as ct, FieldGroup as d, SimpleTextFieldProps as dt, FieldOrientation as et, FieldLabel as f, SwitchFieldProps as ft, RadioGroupField as g, TextareaFieldProps as gt, PasswordField as h, TextFieldValue as ht, ComboboxField as i, NumberFieldProps as it, TanStackActionsForm as j, SwitchField as k, FieldContentMain as l, SelectFieldProps as lt, NumberField as m, TextFieldProps as mt, ArrayHeaderRow as n, FieldType as nt, EmailField as o, PasswordFieldProps as ot, FieldSeparator as p, TextEditorFieldProps as pt, AnyFieldProps as q, CheckboxField as r, MultiSelectFieldValue as rt, Field as s, RadioGroupFieldProps as st, ArrayCol as t, FieldRounding as tt, FieldError as u, SelectOption as ut, SimpleArrayField as v, SimplePasswordField as w, SimpleDateField as x, SimpleBooleanField as y, TextEditorField as z };
3436
- //# sourceMappingURL=index-DvC1inRy.d.cts.map
3438
+ export { EmailFieldProps as $, TanStackActionSubmit as A, TextareaField as B, SimpleNumberField as C, SimpleTextField as D, SimpleSelectField as E, TanStackFieldGroup as F, useTanStackFormContext as G, withTanStackFieldGroup as H, TanStackPopoverForm as I, BooleanFieldValue as J, TextEditorField as K, TanStackSectionForm as L, TanStackCardForm as M, TanStackContainerForm as N, SimpleTextareaField as O, TanStackDialogForm as P, DateFieldValue as Q, TanStackTitleField as R, SimpleEmailField as S, SimpleRadioGroupField as T, withTanStackForm as U, useTanStackForm as V, useTanStackFieldContext as W, ComboboxFieldProps as X, CheckboxFieldProps as Y, DateFieldProps as Z, SelectField as _, DateField as a, NumberFieldValue as at, SimpleComboboxField as b, FieldContent as c, RadioOption as ct, FieldGroup as d, SimpleTextFieldProps as dt, FieldOrientation as et, FieldLabel as f, SwitchFieldProps as ft, RadioGroupField as g, TextareaFieldProps as gt, PasswordField as h, TextFieldValue as ht, ComboboxField as i, NumberFieldProps as it, TanStackActionsForm as j, SwitchField as k, FieldContentMain as l, SelectFieldProps as lt, NumberField as m, TextFieldProps as mt, ArrayHeaderRow as n, FieldType as nt, EmailField as o, PasswordFieldProps as ot, FieldSeparator as p, TextEditorFieldProps as pt, AnyFieldProps as q, CheckboxField as r, MultiSelectFieldValue as rt, Field as s, RadioGroupFieldProps as st, ArrayCol as t, FieldRounding as tt, FieldError as u, SelectOption as ut, SimpleArrayField as v, SimplePasswordField as w, SimpleDateField as x, SimpleBooleanField as y, TextField as z };
3439
+ //# sourceMappingURL=index-0HuXxgjQ.d.cts.map