@etus/ui 0.4.0-beta.18 → 0.4.0-beta.19

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 (563) hide show
  1. package/dist/{chunk-U2CXFKRK.js → chunk-2SUZS6GZ.js} +4 -4
  2. package/dist/{chunk-U2CXFKRK.js.map → chunk-2SUZS6GZ.js.map} +1 -1
  3. package/dist/{chunk-UPYT2XM5.js → chunk-2XNMKALT.js} +3 -3
  4. package/dist/{chunk-UPYT2XM5.js.map → chunk-2XNMKALT.js.map} +1 -1
  5. package/dist/{chunk-SM4AZOEP.js → chunk-3MOBFZJM.js} +4 -4
  6. package/dist/{chunk-SM4AZOEP.js.map → chunk-3MOBFZJM.js.map} +1 -1
  7. package/dist/{chunk-TA4HCLP3.js → chunk-3R6MY3YJ.js} +4 -4
  8. package/dist/{chunk-TA4HCLP3.js.map → chunk-3R6MY3YJ.js.map} +1 -1
  9. package/dist/{chunk-EVUHEBWX.js → chunk-447INBQP.js} +3 -3
  10. package/dist/{chunk-EVUHEBWX.js.map → chunk-447INBQP.js.map} +1 -1
  11. package/dist/{chunk-F7XARQUW.js → chunk-4LZ53BAG.js} +3 -3
  12. package/dist/{chunk-F7XARQUW.js.map → chunk-4LZ53BAG.js.map} +1 -1
  13. package/dist/{chunk-CYIFWQ5Y.js → chunk-4OWRNWHW.js} +3 -3
  14. package/dist/{chunk-CYIFWQ5Y.js.map → chunk-4OWRNWHW.js.map} +1 -1
  15. package/dist/{chunk-OQCGQG47.js → chunk-4RNPI3LU.js} +3 -3
  16. package/dist/{chunk-OQCGQG47.js.map → chunk-4RNPI3LU.js.map} +1 -1
  17. package/dist/{chunk-3NHH7VPI.js → chunk-4SFBDK4E.js} +4 -4
  18. package/dist/{chunk-3NHH7VPI.js.map → chunk-4SFBDK4E.js.map} +1 -1
  19. package/dist/{chunk-B7ZLPQSO.js → chunk-4XXAIWQ4.js} +3 -3
  20. package/dist/{chunk-B7ZLPQSO.js.map → chunk-4XXAIWQ4.js.map} +1 -1
  21. package/dist/{chunk-D2V2HKLX.js → chunk-5ETVWWA5.js} +3 -3
  22. package/dist/{chunk-D2V2HKLX.js.map → chunk-5ETVWWA5.js.map} +1 -1
  23. package/dist/{chunk-U4H3XHSI.js → chunk-5GV4LDX7.js} +4 -4
  24. package/dist/{chunk-U4H3XHSI.js.map → chunk-5GV4LDX7.js.map} +1 -1
  25. package/dist/{chunk-BFBGESUI.js → chunk-5MJQ5XSR.js} +4 -4
  26. package/dist/{chunk-BFBGESUI.js.map → chunk-5MJQ5XSR.js.map} +1 -1
  27. package/dist/{chunk-GKMR5SVC.js → chunk-5QDKJMUA.js} +3 -3
  28. package/dist/{chunk-GKMR5SVC.js.map → chunk-5QDKJMUA.js.map} +1 -1
  29. package/dist/{chunk-3NFQXZHO.js → chunk-5T7EKOJ5.js} +3 -3
  30. package/dist/{chunk-3NFQXZHO.js.map → chunk-5T7EKOJ5.js.map} +1 -1
  31. package/dist/{chunk-WBE6VQOO.js → chunk-5W3T767A.js} +3 -3
  32. package/dist/{chunk-WBE6VQOO.js.map → chunk-5W3T767A.js.map} +1 -1
  33. package/dist/{chunk-F5X2BBGU.js → chunk-5YUUE5JJ.js} +3 -3
  34. package/dist/{chunk-F5X2BBGU.js.map → chunk-5YUUE5JJ.js.map} +1 -1
  35. package/dist/{chunk-IQKKPOI7.js → chunk-627ZZ6HO.js} +4 -4
  36. package/dist/{chunk-IQKKPOI7.js.map → chunk-627ZZ6HO.js.map} +1 -1
  37. package/dist/{chunk-WCMRVCIM.js → chunk-6G5QK3SU.js} +3 -3
  38. package/dist/{chunk-WCMRVCIM.js.map → chunk-6G5QK3SU.js.map} +1 -1
  39. package/dist/{chunk-SMVH56FQ.js → chunk-6QVXMYKH.js} +3 -3
  40. package/dist/{chunk-SMVH56FQ.js.map → chunk-6QVXMYKH.js.map} +1 -1
  41. package/dist/{chunk-NWVYQYKK.js → chunk-6VEQLD2P.js} +3 -3
  42. package/dist/{chunk-NWVYQYKK.js.map → chunk-6VEQLD2P.js.map} +1 -1
  43. package/dist/{chunk-S6ORCWM2.js → chunk-73DDLKBG.js} +3 -3
  44. package/dist/{chunk-S6ORCWM2.js.map → chunk-73DDLKBG.js.map} +1 -1
  45. package/dist/{chunk-E27SQ54A.js → chunk-7AR5QRRX.js} +3 -3
  46. package/dist/{chunk-E27SQ54A.js.map → chunk-7AR5QRRX.js.map} +1 -1
  47. package/dist/{chunk-3MJNJKAF.js → chunk-7IKX4AFY.js} +4 -4
  48. package/dist/{chunk-3MJNJKAF.js.map → chunk-7IKX4AFY.js.map} +1 -1
  49. package/dist/{chunk-A7YNTSVU.js → chunk-7PX3WBR3.js} +3 -3
  50. package/dist/{chunk-A7YNTSVU.js.map → chunk-7PX3WBR3.js.map} +1 -1
  51. package/dist/{chunk-LR56MGWT.js → chunk-7QEFKWUR.js} +7 -7
  52. package/dist/{chunk-LR56MGWT.js.map → chunk-7QEFKWUR.js.map} +1 -1
  53. package/dist/{chunk-JRVUEOKT.js → chunk-7TX5X4EP.js} +3 -3
  54. package/dist/{chunk-JRVUEOKT.js.map → chunk-7TX5X4EP.js.map} +1 -1
  55. package/dist/{chunk-BQMQULAC.js → chunk-7XJQYAGY.js} +4 -4
  56. package/dist/{chunk-BQMQULAC.js.map → chunk-7XJQYAGY.js.map} +1 -1
  57. package/dist/{chunk-KA7747GR.js → chunk-7Y325TBV.js} +3 -3
  58. package/dist/{chunk-KA7747GR.js.map → chunk-7Y325TBV.js.map} +1 -1
  59. package/dist/{chunk-6KMRMXR6.js → chunk-7YZ7HNXX.js} +3 -3
  60. package/dist/{chunk-6KMRMXR6.js.map → chunk-7YZ7HNXX.js.map} +1 -1
  61. package/dist/{chunk-YACIRNVP.js → chunk-AD4RW2JV.js} +3 -3
  62. package/dist/{chunk-YACIRNVP.js.map → chunk-AD4RW2JV.js.map} +1 -1
  63. package/dist/{chunk-YMYXWHDU.js → chunk-ADX6C3V7.js} +3 -3
  64. package/dist/{chunk-YMYXWHDU.js.map → chunk-ADX6C3V7.js.map} +1 -1
  65. package/dist/{chunk-WVFQKBDB.js → chunk-AJUOTABG.js} +3 -3
  66. package/dist/{chunk-WVFQKBDB.js.map → chunk-AJUOTABG.js.map} +1 -1
  67. package/dist/{chunk-G5TWK7L3.js → chunk-AP4ZM3DV.js} +3 -3
  68. package/dist/{chunk-G5TWK7L3.js.map → chunk-AP4ZM3DV.js.map} +1 -1
  69. package/dist/{chunk-2X35C55E.js → chunk-ARJAIH7Q.js} +3 -3
  70. package/dist/{chunk-2X35C55E.js.map → chunk-ARJAIH7Q.js.map} +1 -1
  71. package/dist/{chunk-YCZ6M6EF.js → chunk-BBKDABQK.js} +3 -3
  72. package/dist/{chunk-YCZ6M6EF.js.map → chunk-BBKDABQK.js.map} +1 -1
  73. package/dist/{chunk-GPW57XOW.js → chunk-BSTUCHL4.js} +4 -4
  74. package/dist/{chunk-GPW57XOW.js.map → chunk-BSTUCHL4.js.map} +1 -1
  75. package/dist/{chunk-ARYBNQNS.js → chunk-BUCXPZYE.js} +4 -4
  76. package/dist/{chunk-ARYBNQNS.js.map → chunk-BUCXPZYE.js.map} +1 -1
  77. package/dist/{chunk-ESLSPRYA.js → chunk-C2MAX4YK.js} +3 -3
  78. package/dist/{chunk-ESLSPRYA.js.map → chunk-C2MAX4YK.js.map} +1 -1
  79. package/dist/{chunk-2FJJOHHH.js → chunk-C34UNXMN.js} +3 -3
  80. package/dist/{chunk-2FJJOHHH.js.map → chunk-C34UNXMN.js.map} +1 -1
  81. package/dist/{chunk-AEHYYTFW.js → chunk-CV77MF4G.js} +3 -3
  82. package/dist/{chunk-AEHYYTFW.js.map → chunk-CV77MF4G.js.map} +1 -1
  83. package/dist/{chunk-MQ2446N7.js → chunk-DGOW65KM.js} +3 -3
  84. package/dist/{chunk-MQ2446N7.js.map → chunk-DGOW65KM.js.map} +1 -1
  85. package/dist/{chunk-NULX3RRN.js → chunk-DJHDCDU6.js} +4 -4
  86. package/dist/{chunk-NULX3RRN.js.map → chunk-DJHDCDU6.js.map} +1 -1
  87. package/dist/{chunk-USPITOG4.js → chunk-DQGBTZRX.js} +4 -4
  88. package/dist/{chunk-USPITOG4.js.map → chunk-DQGBTZRX.js.map} +1 -1
  89. package/dist/{chunk-2IFYXJ3H.js → chunk-DRIEZH7R.js} +3 -3
  90. package/dist/{chunk-2IFYXJ3H.js.map → chunk-DRIEZH7R.js.map} +1 -1
  91. package/dist/{chunk-VWW3DJKI.js → chunk-E6SAO2CY.js} +3 -3
  92. package/dist/{chunk-VWW3DJKI.js.map → chunk-E6SAO2CY.js.map} +1 -1
  93. package/dist/{chunk-5ACHKT35.js → chunk-EDSIOUUR.js} +4 -4
  94. package/dist/{chunk-5ACHKT35.js.map → chunk-EDSIOUUR.js.map} +1 -1
  95. package/dist/{chunk-G2CMEHW6.js → chunk-ELRIFGMN.js} +4 -4
  96. package/dist/{chunk-G2CMEHW6.js.map → chunk-ELRIFGMN.js.map} +1 -1
  97. package/dist/{chunk-IMUBWKZC.js → chunk-EO4NGM5W.js} +4 -4
  98. package/dist/{chunk-IMUBWKZC.js.map → chunk-EO4NGM5W.js.map} +1 -1
  99. package/dist/{chunk-AFCSDND5.js → chunk-EQ4YAADN.js} +3 -3
  100. package/dist/{chunk-AFCSDND5.js.map → chunk-EQ4YAADN.js.map} +1 -1
  101. package/dist/{chunk-AP3T3KMY.js → chunk-EZYXD2YI.js} +4 -4
  102. package/dist/{chunk-AP3T3KMY.js.map → chunk-EZYXD2YI.js.map} +1 -1
  103. package/dist/{chunk-HJ4E6YPW.js → chunk-F3ETIDS7.js} +4 -4
  104. package/dist/{chunk-HJ4E6YPW.js.map → chunk-F3ETIDS7.js.map} +1 -1
  105. package/dist/{chunk-LNY2EXOV.js → chunk-F3WDMYZ4.js} +3 -3
  106. package/dist/{chunk-LNY2EXOV.js.map → chunk-F3WDMYZ4.js.map} +1 -1
  107. package/dist/{chunk-FPCRGFNY.js → chunk-FRKB4Z2P.js} +3 -3
  108. package/dist/{chunk-FPCRGFNY.js.map → chunk-FRKB4Z2P.js.map} +1 -1
  109. package/dist/{chunk-YGLD22TU.js → chunk-FVRSXJKS.js} +3 -3
  110. package/dist/{chunk-YGLD22TU.js.map → chunk-FVRSXJKS.js.map} +1 -1
  111. package/dist/{chunk-AR7K7Y4L.js → chunk-FXFVFSG5.js} +5 -5
  112. package/dist/{chunk-AR7K7Y4L.js.map → chunk-FXFVFSG5.js.map} +1 -1
  113. package/dist/{chunk-WQI2USN7.js → chunk-GDZECJFS.js} +3 -3
  114. package/dist/{chunk-WQI2USN7.js.map → chunk-GDZECJFS.js.map} +1 -1
  115. package/dist/{chunk-7CMOCWFX.js → chunk-GLHKHYJY.js} +8 -8
  116. package/dist/{chunk-7CMOCWFX.js.map → chunk-GLHKHYJY.js.map} +1 -1
  117. package/dist/{chunk-IA24GUNV.js → chunk-GRODCJS4.js} +8 -8
  118. package/dist/{chunk-IA24GUNV.js.map → chunk-GRODCJS4.js.map} +1 -1
  119. package/dist/{chunk-JDG5A44W.js → chunk-GVNG5ME6.js} +22 -11
  120. package/dist/chunk-GVNG5ME6.js.map +1 -0
  121. package/dist/{chunk-5J5OL4IV.js → chunk-GWSM2XNV.js} +3 -3
  122. package/dist/{chunk-5J5OL4IV.js.map → chunk-GWSM2XNV.js.map} +1 -1
  123. package/dist/{chunk-2NY6DDLO.js → chunk-H32A6UPL.js} +3 -3
  124. package/dist/{chunk-2NY6DDLO.js.map → chunk-H32A6UPL.js.map} +1 -1
  125. package/dist/{chunk-HV2ZZXFN.js → chunk-HHWUROMA.js} +6 -6
  126. package/dist/{chunk-HV2ZZXFN.js.map → chunk-HHWUROMA.js.map} +1 -1
  127. package/dist/{chunk-CNRV2IGH.js → chunk-HM6TEHA6.js} +3 -3
  128. package/dist/{chunk-CNRV2IGH.js.map → chunk-HM6TEHA6.js.map} +1 -1
  129. package/dist/{chunk-6ABGMOE2.js → chunk-HNQX6ZG7.js} +4 -4
  130. package/dist/{chunk-6ABGMOE2.js.map → chunk-HNQX6ZG7.js.map} +1 -1
  131. package/dist/{chunk-HAEZLC7V.js → chunk-I5RDX6O3.js} +3 -3
  132. package/dist/{chunk-HAEZLC7V.js.map → chunk-I5RDX6O3.js.map} +1 -1
  133. package/dist/{chunk-B2OCNHUW.js → chunk-IKLFWGFS.js} +70 -52
  134. package/dist/chunk-IKLFWGFS.js.map +1 -0
  135. package/dist/{chunk-DL7D5F7B.js → chunk-IPCT4YZT.js} +3 -3
  136. package/dist/{chunk-DL7D5F7B.js.map → chunk-IPCT4YZT.js.map} +1 -1
  137. package/dist/{chunk-BIUVOZQG.js → chunk-IPDAFW4F.js} +3 -3
  138. package/dist/{chunk-BIUVOZQG.js.map → chunk-IPDAFW4F.js.map} +1 -1
  139. package/dist/{chunk-G2MAGZHQ.js → chunk-IXZBH33I.js} +3 -3
  140. package/dist/{chunk-G2MAGZHQ.js.map → chunk-IXZBH33I.js.map} +1 -1
  141. package/dist/{chunk-ZHUW6UYD.js → chunk-JDETM3FL.js} +3 -3
  142. package/dist/{chunk-ZHUW6UYD.js.map → chunk-JDETM3FL.js.map} +1 -1
  143. package/dist/{chunk-HZ47LQFJ.js → chunk-JE46MFMN.js} +6 -6
  144. package/dist/{chunk-HZ47LQFJ.js.map → chunk-JE46MFMN.js.map} +1 -1
  145. package/dist/{chunk-3JCV72FO.js → chunk-JFV7CNBP.js} +4 -4
  146. package/dist/{chunk-3JCV72FO.js.map → chunk-JFV7CNBP.js.map} +1 -1
  147. package/dist/{chunk-7RTHGI6E.js → chunk-JPRHMMY6.js} +3 -3
  148. package/dist/{chunk-7RTHGI6E.js.map → chunk-JPRHMMY6.js.map} +1 -1
  149. package/dist/{chunk-G2V7D7VC.js → chunk-JUSPLVWO.js} +5 -5
  150. package/dist/{chunk-G2V7D7VC.js.map → chunk-JUSPLVWO.js.map} +1 -1
  151. package/dist/{chunk-FRDYXDAE.js → chunk-JUZ4JQWH.js} +3 -3
  152. package/dist/{chunk-FRDYXDAE.js.map → chunk-JUZ4JQWH.js.map} +1 -1
  153. package/dist/{chunk-6SHOL6WR.js → chunk-JVTB3NTP.js} +3 -3
  154. package/dist/{chunk-6SHOL6WR.js.map → chunk-JVTB3NTP.js.map} +1 -1
  155. package/dist/{chunk-XETKCF73.js → chunk-JXEIRIU4.js} +3 -3
  156. package/dist/{chunk-XETKCF73.js.map → chunk-JXEIRIU4.js.map} +1 -1
  157. package/dist/{chunk-XKO6G5H2.js → chunk-JYYB6F5O.js} +3 -3
  158. package/dist/{chunk-XKO6G5H2.js.map → chunk-JYYB6F5O.js.map} +1 -1
  159. package/dist/{chunk-V7WEN4SD.js → chunk-JZA45LEV.js} +3 -3
  160. package/dist/{chunk-V7WEN4SD.js.map → chunk-JZA45LEV.js.map} +1 -1
  161. package/dist/{chunk-FCSYPOHF.js → chunk-K44K3EHW.js} +3 -3
  162. package/dist/{chunk-FCSYPOHF.js.map → chunk-K44K3EHW.js.map} +1 -1
  163. package/dist/{chunk-ZMUUEXVD.js → chunk-K4UCALQQ.js} +3 -3
  164. package/dist/{chunk-ZMUUEXVD.js.map → chunk-K4UCALQQ.js.map} +1 -1
  165. package/dist/{chunk-KYURFRCH.js → chunk-KBU4KJKC.js} +7 -7
  166. package/dist/{chunk-KYURFRCH.js.map → chunk-KBU4KJKC.js.map} +1 -1
  167. package/dist/{chunk-JRWQHBJC.js → chunk-KDNTSZF5.js} +4 -4
  168. package/dist/{chunk-JRWQHBJC.js.map → chunk-KDNTSZF5.js.map} +1 -1
  169. package/dist/{chunk-WZ2J4ALB.js → chunk-KHCHATTD.js} +5 -5
  170. package/dist/{chunk-WZ2J4ALB.js.map → chunk-KHCHATTD.js.map} +1 -1
  171. package/dist/{chunk-57KTYE5H.js → chunk-KHJIUHHM.js} +3 -3
  172. package/dist/{chunk-57KTYE5H.js.map → chunk-KHJIUHHM.js.map} +1 -1
  173. package/dist/{chunk-H7JHFBFD.js → chunk-KLFYTLF3.js} +4 -4
  174. package/dist/{chunk-H7JHFBFD.js.map → chunk-KLFYTLF3.js.map} +1 -1
  175. package/dist/{chunk-W3QUVCRK.js → chunk-KXJ3SEW7.js} +3 -3
  176. package/dist/{chunk-W3QUVCRK.js.map → chunk-KXJ3SEW7.js.map} +1 -1
  177. package/dist/{chunk-X5XP5QVO.js → chunk-L4OQ6BJ5.js} +6 -6
  178. package/dist/{chunk-X5XP5QVO.js.map → chunk-L4OQ6BJ5.js.map} +1 -1
  179. package/dist/{chunk-MAM6VUKD.js → chunk-LCBB3N5H.js} +3 -3
  180. package/dist/{chunk-MAM6VUKD.js.map → chunk-LCBB3N5H.js.map} +1 -1
  181. package/dist/{chunk-FLERVSKG.js → chunk-LDK6ADKM.js} +6 -6
  182. package/dist/{chunk-FLERVSKG.js.map → chunk-LDK6ADKM.js.map} +1 -1
  183. package/dist/{chunk-K4MYVFWQ.js → chunk-LP6JYJQN.js} +4 -4
  184. package/dist/{chunk-K4MYVFWQ.js.map → chunk-LP6JYJQN.js.map} +1 -1
  185. package/dist/{chunk-7VGF6ZVE.js → chunk-LRE3LJMW.js} +5 -5
  186. package/dist/{chunk-7VGF6ZVE.js.map → chunk-LRE3LJMW.js.map} +1 -1
  187. package/dist/{chunk-LQVQ7SHG.js → chunk-LSRKDZW4.js} +4 -4
  188. package/dist/{chunk-LQVQ7SHG.js.map → chunk-LSRKDZW4.js.map} +1 -1
  189. package/dist/{chunk-WBERMEN7.js → chunk-MGIGDALC.js} +3 -3
  190. package/dist/{chunk-WBERMEN7.js.map → chunk-MGIGDALC.js.map} +1 -1
  191. package/dist/{chunk-IRFAIJLV.js → chunk-MNYU5MHO.js} +7 -7
  192. package/dist/{chunk-IRFAIJLV.js.map → chunk-MNYU5MHO.js.map} +1 -1
  193. package/dist/{chunk-6GWO7JNP.js → chunk-MXBDOYQL.js} +4 -4
  194. package/dist/{chunk-6GWO7JNP.js.map → chunk-MXBDOYQL.js.map} +1 -1
  195. package/dist/{chunk-37KLBMFQ.js → chunk-N2DAVD4Y.js} +3 -3
  196. package/dist/{chunk-37KLBMFQ.js.map → chunk-N2DAVD4Y.js.map} +1 -1
  197. package/dist/{chunk-EC5YEK3C.js → chunk-N5YGAESZ.js} +5 -5
  198. package/dist/{chunk-EC5YEK3C.js.map → chunk-N5YGAESZ.js.map} +1 -1
  199. package/dist/{chunk-DSCLJ3GK.js → chunk-N7VMQWM3.js} +15 -10
  200. package/dist/chunk-N7VMQWM3.js.map +1 -0
  201. package/dist/{chunk-5KTMPLDK.js → chunk-NAI3TX52.js} +3 -3
  202. package/dist/{chunk-5KTMPLDK.js.map → chunk-NAI3TX52.js.map} +1 -1
  203. package/dist/{chunk-QHKOBGLW.js → chunk-NGX3ITG4.js} +3 -3
  204. package/dist/{chunk-QHKOBGLW.js.map → chunk-NGX3ITG4.js.map} +1 -1
  205. package/dist/{chunk-5SUD32RK.js → chunk-NHUUSXBL.js} +3 -3
  206. package/dist/{chunk-5SUD32RK.js.map → chunk-NHUUSXBL.js.map} +1 -1
  207. package/dist/{chunk-IOWHM7ZY.js → chunk-NIRTZLZL.js} +4 -4
  208. package/dist/{chunk-IOWHM7ZY.js.map → chunk-NIRTZLZL.js.map} +1 -1
  209. package/dist/{chunk-5E44I7PB.js → chunk-NLPVF34P.js} +4 -4
  210. package/dist/{chunk-5E44I7PB.js.map → chunk-NLPVF34P.js.map} +1 -1
  211. package/dist/{chunk-ZPAWUKJI.js → chunk-NNWMBVCB.js} +4 -4
  212. package/dist/{chunk-ZPAWUKJI.js.map → chunk-NNWMBVCB.js.map} +1 -1
  213. package/dist/{chunk-H4ANCFZG.js → chunk-NUA54ABI.js} +4 -4
  214. package/dist/{chunk-H4ANCFZG.js.map → chunk-NUA54ABI.js.map} +1 -1
  215. package/dist/{chunk-ZPCELVWJ.js → chunk-NY2WZ4P2.js} +4 -4
  216. package/dist/{chunk-ZPCELVWJ.js.map → chunk-NY2WZ4P2.js.map} +1 -1
  217. package/dist/{chunk-BECPEVUL.js → chunk-O6LFU3KB.js} +3 -3
  218. package/dist/{chunk-BECPEVUL.js.map → chunk-O6LFU3KB.js.map} +1 -1
  219. package/dist/{chunk-HXHB2CK5.js → chunk-OAES72MK.js} +3 -3
  220. package/dist/{chunk-HXHB2CK5.js.map → chunk-OAES72MK.js.map} +1 -1
  221. package/dist/{chunk-NGR4HFVA.js → chunk-OCH7GGZF.js} +3 -3
  222. package/dist/{chunk-NGR4HFVA.js.map → chunk-OCH7GGZF.js.map} +1 -1
  223. package/dist/{chunk-HA5YVDHW.js → chunk-ONN5XVYC.js} +3 -3
  224. package/dist/{chunk-HA5YVDHW.js.map → chunk-ONN5XVYC.js.map} +1 -1
  225. package/dist/{chunk-OG3M4CMJ.js → chunk-OWZ3MZ5C.js} +3 -3
  226. package/dist/{chunk-OG3M4CMJ.js.map → chunk-OWZ3MZ5C.js.map} +1 -1
  227. package/dist/{chunk-MK6ID2HI.js → chunk-OXO6SKJO.js} +3 -3
  228. package/dist/{chunk-MK6ID2HI.js.map → chunk-OXO6SKJO.js.map} +1 -1
  229. package/dist/{chunk-5K2SOCOX.js → chunk-P4WMDGAQ.js} +4 -4
  230. package/dist/{chunk-5K2SOCOX.js.map → chunk-P4WMDGAQ.js.map} +1 -1
  231. package/dist/{chunk-K43MPWTO.js → chunk-PBZI5XNV.js} +3 -3
  232. package/dist/{chunk-K43MPWTO.js.map → chunk-PBZI5XNV.js.map} +1 -1
  233. package/dist/{chunk-HI3T55XK.js → chunk-PEX7FCZC.js} +3 -3
  234. package/dist/{chunk-HI3T55XK.js.map → chunk-PEX7FCZC.js.map} +1 -1
  235. package/dist/{chunk-WMG2MMJF.js → chunk-PI4WGIPG.js} +3 -3
  236. package/dist/{chunk-WMG2MMJF.js.map → chunk-PI4WGIPG.js.map} +1 -1
  237. package/dist/{chunk-V7O4X3AE.js → chunk-PTXC4KPQ.js} +4 -4
  238. package/dist/{chunk-V7O4X3AE.js.map → chunk-PTXC4KPQ.js.map} +1 -1
  239. package/dist/{chunk-34WNJNPL.js → chunk-PVIIIQJI.js} +6 -6
  240. package/dist/{chunk-34WNJNPL.js.map → chunk-PVIIIQJI.js.map} +1 -1
  241. package/dist/{chunk-A4O3USMA.js → chunk-PXR6CZIL.js} +4 -4
  242. package/dist/{chunk-A4O3USMA.js.map → chunk-PXR6CZIL.js.map} +1 -1
  243. package/dist/{chunk-KDJCZXLB.js → chunk-PZSKZFVO.js} +3 -3
  244. package/dist/{chunk-KDJCZXLB.js.map → chunk-PZSKZFVO.js.map} +1 -1
  245. package/dist/{chunk-DNAGXK2C.js → chunk-Q3JCNSPU.js} +4 -4
  246. package/dist/{chunk-DNAGXK2C.js.map → chunk-Q3JCNSPU.js.map} +1 -1
  247. package/dist/{chunk-JUTPDS4E.js → chunk-QD2ZS5DU.js} +4 -4
  248. package/dist/{chunk-JUTPDS4E.js.map → chunk-QD2ZS5DU.js.map} +1 -1
  249. package/dist/{chunk-DI3AISAZ.js → chunk-QJOWG2D4.js} +5 -5
  250. package/dist/{chunk-DI3AISAZ.js.map → chunk-QJOWG2D4.js.map} +1 -1
  251. package/dist/{chunk-6F5NWXZF.js → chunk-QLYH3GCV.js} +4 -4
  252. package/dist/{chunk-6F5NWXZF.js.map → chunk-QLYH3GCV.js.map} +1 -1
  253. package/dist/{chunk-F4EX3622.js → chunk-QO6TOE45.js} +3 -3
  254. package/dist/{chunk-F4EX3622.js.map → chunk-QO6TOE45.js.map} +1 -1
  255. package/dist/{chunk-46SUPGQV.js → chunk-QWWA4FZP.js} +3 -3
  256. package/dist/{chunk-46SUPGQV.js.map → chunk-QWWA4FZP.js.map} +1 -1
  257. package/dist/{chunk-VTDSGJ4R.js → chunk-QXET2TML.js} +4 -4
  258. package/dist/{chunk-VTDSGJ4R.js.map → chunk-QXET2TML.js.map} +1 -1
  259. package/dist/{chunk-2VHARFMD.js → chunk-QZ7SGO7L.js} +3 -3
  260. package/dist/{chunk-2VHARFMD.js.map → chunk-QZ7SGO7L.js.map} +1 -1
  261. package/dist/{chunk-XORDGKZI.js → chunk-R42LSLJL.js} +6 -6
  262. package/dist/{chunk-XORDGKZI.js.map → chunk-R42LSLJL.js.map} +1 -1
  263. package/dist/{chunk-EVZ2GZU4.js → chunk-RMJVCJ6U.js} +3 -3
  264. package/dist/{chunk-EVZ2GZU4.js.map → chunk-RMJVCJ6U.js.map} +1 -1
  265. package/dist/{chunk-UYPYAOET.js → chunk-ROPW65RD.js} +3 -3
  266. package/dist/{chunk-UYPYAOET.js.map → chunk-ROPW65RD.js.map} +1 -1
  267. package/dist/{chunk-M6VBDPNQ.js → chunk-RQBYBBMP.js} +3 -3
  268. package/dist/{chunk-M6VBDPNQ.js.map → chunk-RQBYBBMP.js.map} +1 -1
  269. package/dist/chunk-RVAYDRMA.js +31 -0
  270. package/dist/chunk-RVAYDRMA.js.map +1 -0
  271. package/dist/{chunk-ARNVOHVW.js → chunk-S4P7JIQ2.js} +3 -3
  272. package/dist/{chunk-ARNVOHVW.js.map → chunk-S4P7JIQ2.js.map} +1 -1
  273. package/dist/{chunk-AKRVZ2YW.js → chunk-S6BREP2G.js} +4 -4
  274. package/dist/{chunk-AKRVZ2YW.js.map → chunk-S6BREP2G.js.map} +1 -1
  275. package/dist/{chunk-Y5GO2F6P.js → chunk-SA3IQI3Y.js} +3 -3
  276. package/dist/{chunk-Y5GO2F6P.js.map → chunk-SA3IQI3Y.js.map} +1 -1
  277. package/dist/{chunk-56TC4CPT.js → chunk-SKI25Q7O.js} +6 -6
  278. package/dist/{chunk-56TC4CPT.js.map → chunk-SKI25Q7O.js.map} +1 -1
  279. package/dist/{chunk-MLSIZ6JU.js → chunk-SSKSWSVO.js} +5 -5
  280. package/dist/{chunk-MLSIZ6JU.js.map → chunk-SSKSWSVO.js.map} +1 -1
  281. package/dist/{chunk-VV6QE3M2.js → chunk-STADVFL2.js} +5 -5
  282. package/dist/{chunk-VV6QE3M2.js.map → chunk-STADVFL2.js.map} +1 -1
  283. package/dist/{chunk-UA3OQAHJ.js → chunk-SX63UD5X.js} +3 -3
  284. package/dist/{chunk-UA3OQAHJ.js.map → chunk-SX63UD5X.js.map} +1 -1
  285. package/dist/{chunk-YZY35OHQ.js → chunk-SXSR2VRG.js} +4 -4
  286. package/dist/{chunk-YZY35OHQ.js.map → chunk-SXSR2VRG.js.map} +1 -1
  287. package/dist/{chunk-AR3OXNPL.js → chunk-TDANAN5A.js} +3 -3
  288. package/dist/{chunk-AR3OXNPL.js.map → chunk-TDANAN5A.js.map} +1 -1
  289. package/dist/{chunk-7ZJ32KRQ.js → chunk-TEVGCTUN.js} +3 -3
  290. package/dist/{chunk-7ZJ32KRQ.js.map → chunk-TEVGCTUN.js.map} +1 -1
  291. package/dist/{chunk-GAMOVEZD.js → chunk-TIPKU427.js} +3 -3
  292. package/dist/{chunk-GAMOVEZD.js.map → chunk-TIPKU427.js.map} +1 -1
  293. package/dist/{chunk-2Q4I4VDB.js → chunk-TK5WS675.js} +3 -3
  294. package/dist/{chunk-2Q4I4VDB.js.map → chunk-TK5WS675.js.map} +1 -1
  295. package/dist/{chunk-EDSDAX56.js → chunk-TNSMTINE.js} +4 -4
  296. package/dist/{chunk-EDSDAX56.js.map → chunk-TNSMTINE.js.map} +1 -1
  297. package/dist/{chunk-5TABQJDW.js → chunk-TRTVYFOF.js} +3 -3
  298. package/dist/{chunk-5TABQJDW.js.map → chunk-TRTVYFOF.js.map} +1 -1
  299. package/dist/{chunk-QBLU7J34.js → chunk-TSE3PKWQ.js} +3 -3
  300. package/dist/{chunk-QBLU7J34.js.map → chunk-TSE3PKWQ.js.map} +1 -1
  301. package/dist/{chunk-3BBOSSDG.js → chunk-U7TPJMGY.js} +4 -4
  302. package/dist/{chunk-3BBOSSDG.js.map → chunk-U7TPJMGY.js.map} +1 -1
  303. package/dist/{chunk-PGRMKSVA.js → chunk-UC5J6GWG.js} +4 -4
  304. package/dist/{chunk-PGRMKSVA.js.map → chunk-UC5J6GWG.js.map} +1 -1
  305. package/dist/{chunk-HP7LEQJR.js → chunk-UNHPLKMR.js} +3 -3
  306. package/dist/{chunk-HP7LEQJR.js.map → chunk-UNHPLKMR.js.map} +1 -1
  307. package/dist/{chunk-I7ZLEC7Y.js → chunk-UZEJ3ZVR.js} +3 -3
  308. package/dist/{chunk-I7ZLEC7Y.js.map → chunk-UZEJ3ZVR.js.map} +1 -1
  309. package/dist/{chunk-J62NPPDO.js → chunk-UZZCEQH4.js} +4 -4
  310. package/dist/{chunk-J62NPPDO.js.map → chunk-UZZCEQH4.js.map} +1 -1
  311. package/dist/{chunk-AEE5GDNA.js → chunk-V4NSLSCA.js} +4 -4
  312. package/dist/{chunk-AEE5GDNA.js.map → chunk-V4NSLSCA.js.map} +1 -1
  313. package/dist/{chunk-IZC5YFGO.js → chunk-V57DERRV.js} +14 -7
  314. package/dist/chunk-V57DERRV.js.map +1 -0
  315. package/dist/{chunk-PM344VOQ.js → chunk-VHJ6ALIE.js} +4 -4
  316. package/dist/{chunk-PM344VOQ.js.map → chunk-VHJ6ALIE.js.map} +1 -1
  317. package/dist/{chunk-N3I6GA4I.js → chunk-WG34IXUV.js} +3 -3
  318. package/dist/{chunk-N3I6GA4I.js.map → chunk-WG34IXUV.js.map} +1 -1
  319. package/dist/{chunk-45YJLE4R.js → chunk-WGKOYZRI.js} +3 -3
  320. package/dist/{chunk-45YJLE4R.js.map → chunk-WGKOYZRI.js.map} +1 -1
  321. package/dist/{chunk-6DN2UAIR.js → chunk-WGSVSZ7V.js} +3 -3
  322. package/dist/{chunk-6DN2UAIR.js.map → chunk-WGSVSZ7V.js.map} +1 -1
  323. package/dist/{chunk-X4YUWX7H.js → chunk-WK324C6D.js} +4 -4
  324. package/dist/{chunk-X4YUWX7H.js.map → chunk-WK324C6D.js.map} +1 -1
  325. package/dist/{chunk-N2WITPE2.js → chunk-WOP5OWLG.js} +3 -3
  326. package/dist/{chunk-N2WITPE2.js.map → chunk-WOP5OWLG.js.map} +1 -1
  327. package/dist/{chunk-MAM5PTRV.js → chunk-WSDWJX4Y.js} +4 -4
  328. package/dist/{chunk-MAM5PTRV.js.map → chunk-WSDWJX4Y.js.map} +1 -1
  329. package/dist/{chunk-2XJWE2XR.js → chunk-WUS45IZW.js} +4 -4
  330. package/dist/{chunk-2XJWE2XR.js.map → chunk-WUS45IZW.js.map} +1 -1
  331. package/dist/{chunk-B3BDIM4H.js → chunk-WVOZYDH3.js} +3 -3
  332. package/dist/{chunk-B3BDIM4H.js.map → chunk-WVOZYDH3.js.map} +1 -1
  333. package/dist/{chunk-HVFACGNK.js → chunk-WWK7UIKK.js} +3 -3
  334. package/dist/{chunk-HVFACGNK.js.map → chunk-WWK7UIKK.js.map} +1 -1
  335. package/dist/{chunk-NCLOPI6U.js → chunk-X2EMALTZ.js} +3 -3
  336. package/dist/{chunk-NCLOPI6U.js.map → chunk-X2EMALTZ.js.map} +1 -1
  337. package/dist/{chunk-PK5O62XD.js → chunk-X4CJFD6D.js} +3 -3
  338. package/dist/{chunk-PK5O62XD.js.map → chunk-X4CJFD6D.js.map} +1 -1
  339. package/dist/{chunk-JWXK4TMX.js → chunk-XEQGATVF.js} +3 -3
  340. package/dist/{chunk-JWXK4TMX.js.map → chunk-XEQGATVF.js.map} +1 -1
  341. package/dist/{chunk-B6KQKQ4S.js → chunk-XMUD3LG7.js} +3 -3
  342. package/dist/{chunk-B6KQKQ4S.js.map → chunk-XMUD3LG7.js.map} +1 -1
  343. package/dist/{chunk-5ZEYTBTU.js → chunk-XWBVIBN4.js} +3 -3
  344. package/dist/{chunk-5ZEYTBTU.js.map → chunk-XWBVIBN4.js.map} +1 -1
  345. package/dist/{chunk-7I6KK6QE.js → chunk-XXWCMY2G.js} +3 -3
  346. package/dist/{chunk-7I6KK6QE.js.map → chunk-XXWCMY2G.js.map} +1 -1
  347. package/dist/{chunk-LFN7UHDT.js → chunk-Y4FEW7SR.js} +3 -3
  348. package/dist/{chunk-LFN7UHDT.js.map → chunk-Y4FEW7SR.js.map} +1 -1
  349. package/dist/{chunk-PFVT27B5.js → chunk-YC5VVIZO.js} +3 -3
  350. package/dist/{chunk-PFVT27B5.js.map → chunk-YC5VVIZO.js.map} +1 -1
  351. package/dist/{chunk-OR3NPCY2.js → chunk-YMCKML6D.js} +7 -7
  352. package/dist/{chunk-OR3NPCY2.js.map → chunk-YMCKML6D.js.map} +1 -1
  353. package/dist/{chunk-TGLALXPU.js → chunk-YMQDTTO7.js} +6 -6
  354. package/dist/{chunk-TGLALXPU.js.map → chunk-YMQDTTO7.js.map} +1 -1
  355. package/dist/{chunk-ZARZYMBM.js → chunk-YNTS4GRT.js} +3 -3
  356. package/dist/{chunk-ZARZYMBM.js.map → chunk-YNTS4GRT.js.map} +1 -1
  357. package/dist/{chunk-6SZRWNPT.js → chunk-ZOHLZ4YL.js} +3 -3
  358. package/dist/{chunk-6SZRWNPT.js.map → chunk-ZOHLZ4YL.js.map} +1 -1
  359. package/dist/{chunk-VUHJTTPV.js → chunk-ZVSMLMMS.js} +3 -3
  360. package/dist/{chunk-VUHJTTPV.js.map → chunk-ZVSMLMMS.js.map} +1 -1
  361. package/dist/{chunk-VKDN66VL.js → chunk-ZXWT4KWJ.js} +3 -3
  362. package/dist/{chunk-VKDN66VL.js.map → chunk-ZXWT4KWJ.js.map} +1 -1
  363. package/dist/components/advanced/AssetManager/index.js +2 -2
  364. package/dist/components/advanced/Calendar/index.js +7 -7
  365. package/dist/components/advanced/Command/index.js +3 -3
  366. package/dist/components/advanced/DragAndDrop/index.js +2 -2
  367. package/dist/components/advanced/ErrorBoundary/index.js +2 -2
  368. package/dist/components/advanced/EventCalendar/index.js +7 -7
  369. package/dist/components/advanced/FileDropzone/index.js +2 -2
  370. package/dist/components/advanced/FilePreview/index.js +2 -2
  371. package/dist/components/advanced/FileUpload/index.js +2 -2
  372. package/dist/components/advanced/FilterBuilder/index.js +9 -9
  373. package/dist/components/advanced/MarkdownEditor/index.js +6 -6
  374. package/dist/components/advanced/ReportBuilder/index.js +7 -7
  375. package/dist/components/advanced/RichTextEditor/index.js +4 -4
  376. package/dist/components/advanced/Search/index.js +2 -2
  377. package/dist/components/advanced/SortableList/index.js +2 -2
  378. package/dist/components/advanced/VersionControl/index.js +2 -2
  379. package/dist/components/advanced/index.js +30 -30
  380. package/dist/components/data-display/Accordion/index.js +2 -2
  381. package/dist/components/data-display/AreaChart/index.js +3 -3
  382. package/dist/components/data-display/Banner/index.js +2 -2
  383. package/dist/components/data-display/BarChart/index.js +3 -3
  384. package/dist/components/data-display/BarList/index.js +2 -2
  385. package/dist/components/data-display/Callout/index.js +2 -2
  386. package/dist/components/data-display/Carousel/index.js +7 -7
  387. package/dist/components/data-display/CategoryBar/index.js +3 -3
  388. package/dist/components/data-display/Chart/index.js +2 -2
  389. package/dist/components/data-display/ChartCard/index.js +5 -5
  390. package/dist/components/data-display/ChartLegend/index.js +2 -2
  391. package/dist/components/data-display/ComboChart/index.js +3 -3
  392. package/dist/components/data-display/DashboardCard/index.js +3 -3
  393. package/dist/components/data-display/DataTable/FilterBuilder/index.js +9 -9
  394. package/dist/components/data-display/DataTable/index.js +16 -16
  395. package/dist/components/data-display/DeltaBar/index.js +3 -3
  396. package/dist/components/data-display/EmptyState/index.js +2 -2
  397. package/dist/components/data-display/FeatureItem/index.js +3 -3
  398. package/dist/components/data-display/Feed/index.js +2 -2
  399. package/dist/components/data-display/FunnelChart/index.js +3 -3
  400. package/dist/components/data-display/GaugeChart/index.js +2 -2
  401. package/dist/components/data-display/Heatmap/index.js +3 -3
  402. package/dist/components/data-display/HoverCard/index.js +2 -2
  403. package/dist/components/data-display/ImageGallery/index.js +9 -9
  404. package/dist/components/data-display/Item/index.js +3 -3
  405. package/dist/components/data-display/KPICard/index.js +8 -8
  406. package/dist/components/data-display/Lightbox/index.js +2 -2
  407. package/dist/components/data-display/LineChart/index.js +3 -3
  408. package/dist/components/data-display/List/index.js +6 -6
  409. package/dist/components/data-display/MarkerBar/index.js +3 -3
  410. package/dist/components/data-display/PieChart/index.js +3 -3
  411. package/dist/components/data-display/RadarChart/index.js +3 -3
  412. package/dist/components/data-display/RadialChart/index.js +3 -3
  413. package/dist/components/data-display/ScatterChart/index.js +3 -3
  414. package/dist/components/data-display/SingleStat/index.js +3 -3
  415. package/dist/components/data-display/Sparkline/index.js +2 -2
  416. package/dist/components/data-display/Table/index.js +2 -2
  417. package/dist/components/data-display/Timeline/index.js +2 -2
  418. package/dist/components/data-display/Tracker/index.js +3 -3
  419. package/dist/components/data-display/VirtualTable/index.js +5 -5
  420. package/dist/components/data-display/index.js +56 -56
  421. package/dist/components/feedback/Alert/index.js +2 -2
  422. package/dist/components/feedback/AlertDialog/index.js +7 -7
  423. package/dist/components/feedback/ConfirmModal/index.js +8 -8
  424. package/dist/components/feedback/Dialog/index.js +2 -2
  425. package/dist/components/feedback/ErrorPage/index.js +2 -2
  426. package/dist/components/feedback/FocusTrap/index.js +2 -2
  427. package/dist/components/feedback/Message/index.js +2 -2
  428. package/dist/components/feedback/Modal/index.js +2 -2
  429. package/dist/components/feedback/Notification/index.js +4 -4
  430. package/dist/components/feedback/Popover/index.js +2 -2
  431. package/dist/components/feedback/Tooltip/index.js +2 -2
  432. package/dist/components/feedback/UpdatesWidget/index.js +2 -2
  433. package/dist/components/feedback/index.js +18 -18
  434. package/dist/components/forms/Autocomplete/index.js +2 -2
  435. package/dist/components/forms/Checkbox/index.js +2 -2
  436. package/dist/components/forms/CheckboxGroup/index.js +3 -3
  437. package/dist/components/forms/ColorPicker/index.js +3 -3
  438. package/dist/components/forms/Combobox/index.js +2 -2
  439. package/dist/components/forms/DatePicker/index.js +10 -10
  440. package/dist/components/forms/DateRangePicker/index.js +10 -10
  441. package/dist/components/forms/EmailInput/index.js +3 -3
  442. package/dist/components/forms/ErrorMessage/index.js +2 -2
  443. package/dist/components/forms/Field/index.js +4 -4
  444. package/dist/components/forms/FloatLabel/index.js +2 -2
  445. package/dist/components/forms/Form/index.js +3 -3
  446. package/dist/components/forms/FormValidation/index.js +2 -2
  447. package/dist/components/forms/HelpText/index.js +2 -2
  448. package/dist/components/forms/IftaLabel/index.js +2 -2
  449. package/dist/components/forms/InputGroup/index.js +9 -9
  450. package/dist/components/forms/InputOTP/index.js +2 -2
  451. package/dist/components/forms/InputOTPField/index.js +6 -6
  452. package/dist/components/forms/MultiSelect/index.js +3 -3
  453. package/dist/components/forms/NativeSelect/index.js +2 -2
  454. package/dist/components/forms/NumberInput/index.js +2 -2
  455. package/dist/components/forms/PasswordInput/index.js +3 -3
  456. package/dist/components/forms/PaymentInput/index.js +2 -2
  457. package/dist/components/forms/PhoneInput/index.js +2 -2
  458. package/dist/components/forms/RadioButton/index.js +2 -2
  459. package/dist/components/forms/RadioCardGroup/index.js +2 -2
  460. package/dist/components/forms/RadioGroup/index.js +2 -2
  461. package/dist/components/forms/Rating/index.js +2 -2
  462. package/dist/components/forms/SearchInput/index.js +3 -3
  463. package/dist/components/forms/Select/index.js +2 -2
  464. package/dist/components/forms/Slider/index.js +2 -2
  465. package/dist/components/forms/SuccessMessage/index.js +2 -2
  466. package/dist/components/forms/Switch/index.js +2 -2
  467. package/dist/components/forms/TagsInput/index.js +4 -4
  468. package/dist/components/forms/TextInput/index.js +2 -2
  469. package/dist/components/forms/Textarea/index.js +2 -2
  470. package/dist/components/forms/TextareaField/index.js +6 -6
  471. package/dist/components/forms/TimePicker/index.js +4 -4
  472. package/dist/components/forms/URLInput/index.js +3 -3
  473. package/dist/components/forms/index.js +50 -50
  474. package/dist/components/index.js +183 -183
  475. package/dist/components/layout/Card/index.js +2 -2
  476. package/dist/components/layout/Collapsible/index.js +2 -2
  477. package/dist/components/layout/Container/index.js +2 -2
  478. package/dist/components/layout/Flex/index.js +2 -2
  479. package/dist/components/layout/Grid/index.js +2 -2
  480. package/dist/components/layout/Panel/index.js +3 -3
  481. package/dist/components/layout/ResizablePanels/index.js +2 -2
  482. package/dist/components/layout/ResponsiveContainer/index.js +2 -2
  483. package/dist/components/layout/ScrollArea/index.js +2 -2
  484. package/dist/components/layout/Section/index.js +2 -2
  485. package/dist/components/layout/Sheet/index.js +2 -2
  486. package/dist/components/layout/Stack/index.js +2 -2
  487. package/dist/components/layout/index.js +13 -13
  488. package/dist/components/navigation/AccountSwitch/index.js +6 -6
  489. package/dist/components/navigation/Breadcrumb/index.js +2 -2
  490. package/dist/components/navigation/ContextMenu/index.js +2 -2
  491. package/dist/components/navigation/Drawer/index.js +2 -2
  492. package/dist/components/navigation/DropdownMenu/index.js +2 -2
  493. package/dist/components/navigation/FileTree/index.js +2 -2
  494. package/dist/components/navigation/Header/index.js +2 -2
  495. package/dist/components/navigation/LogoConta/index.js +2 -2
  496. package/dist/components/navigation/Menu/index.js +3 -3
  497. package/dist/components/navigation/Menubar/index.js +2 -2
  498. package/dist/components/navigation/Navbar/index.js +2 -2
  499. package/dist/components/navigation/NavigationMenu/index.js +2 -2
  500. package/dist/components/navigation/Pagination/index.js +7 -7
  501. package/dist/components/navigation/Sidebar/index.js +11 -11
  502. package/dist/components/navigation/SkipLinks/index.js +2 -2
  503. package/dist/components/navigation/SpeedDial/index.js +3 -3
  504. package/dist/components/navigation/TabNavigation/index.js +2 -2
  505. package/dist/components/navigation/TabPanel/index.js +2 -2
  506. package/dist/components/navigation/Tabs/index.js +2 -2
  507. package/dist/components/navigation/Toolbar/index.js +2 -2
  508. package/dist/components/navigation/Topbar/index.js +2 -2
  509. package/dist/components/navigation/index.js +32 -32
  510. package/dist/components/primitives/ArrowAnimated/index.js +2 -2
  511. package/dist/components/primitives/Avatar/index.js +3 -3
  512. package/dist/components/primitives/Badge/index.js +3 -3
  513. package/dist/components/primitives/Button/index.js +6 -6
  514. package/dist/components/primitives/ButtonGroup/index.js +3 -3
  515. package/dist/components/primitives/ConfirmButton/index.js +8 -8
  516. package/dist/components/primitives/Divider/index.js +2 -2
  517. package/dist/components/primitives/FeaturedIcon/index.js +2 -2
  518. package/dist/components/primitives/FolderStack/index.js +2 -2
  519. package/dist/components/primitives/Heading/index.js +2 -2
  520. package/dist/components/primitives/Icon/index.js +2 -2
  521. package/dist/components/primitives/Image/index.js +2 -2
  522. package/dist/components/primitives/Kbd/index.js +2 -2
  523. package/dist/components/primitives/Label/index.js +2 -2
  524. package/dist/components/primitives/Link/index.js +2 -2
  525. package/dist/components/primitives/Paragraph/index.js +2 -2
  526. package/dist/components/primitives/PaymentMethodIcon/index.js +2 -2
  527. package/dist/components/primitives/ProgressBar/index.js +3 -3
  528. package/dist/components/primitives/ProgressCircle/index.js +3 -3
  529. package/dist/components/primitives/SkeletonLoader/index.js +2 -2
  530. package/dist/components/primitives/Spacer/index.js +2 -2
  531. package/dist/components/primitives/Spinner/index.js +2 -2
  532. package/dist/components/primitives/SplitButton/index.js +3 -3
  533. package/dist/components/primitives/StatusIndicator/index.js +2 -2
  534. package/dist/components/primitives/Tag/index.js +2 -2
  535. package/dist/components/primitives/Text/index.js +2 -2
  536. package/dist/components/primitives/Thumbnail/index.js +3 -3
  537. package/dist/components/primitives/Toggle/index.js +2 -2
  538. package/dist/components/primitives/index.js +32 -32
  539. package/dist/components/workflow/ApprovalFlow/index.js +8 -8
  540. package/dist/components/workflow/ApprovalStatus/index.js +2 -2
  541. package/dist/components/workflow/CommentSystem/index.js +9 -9
  542. package/dist/components/workflow/Dashboard/index.js +7 -7
  543. package/dist/components/workflow/DashboardBuilder/index.js +9 -9
  544. package/dist/components/workflow/KanbanBoard/index.js +9 -9
  545. package/dist/components/workflow/ProgressSteps/index.js +2 -2
  546. package/dist/components/workflow/ReportGenerator/index.js +9 -9
  547. package/dist/components/workflow/Stepper/index.js +2 -2
  548. package/dist/components/workflow/TaskCard/index.js +2 -2
  549. package/dist/components/workflow/TaskList/index.js +2 -2
  550. package/dist/components/workflow/TaskStatus/index.js +3 -3
  551. package/dist/components/workflow/Wizard/index.js +8 -8
  552. package/dist/components/workflow/index.js +26 -26
  553. package/dist/index.d.ts +55 -14
  554. package/dist/index.js +183 -183
  555. package/dist/lib/utils.d.ts +2 -1
  556. package/dist/lib/utils.js +1 -1
  557. package/package.json +1 -1
  558. package/dist/chunk-B2OCNHUW.js.map +0 -1
  559. package/dist/chunk-DSCLJ3GK.js.map +0 -1
  560. package/dist/chunk-HRNDJU7D.js +0 -11
  561. package/dist/chunk-HRNDJU7D.js.map +0 -1
  562. package/dist/chunk-IZC5YFGO.js.map +0 -1
  563. package/dist/chunk-JDG5A44W.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/Rating/Rating.variants.ts","../src/components/forms/Rating/Rating.tsx"],"names":[],"mappings":"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","file":"chunk-EVZ2GZU4.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nexport const ratingVariants = cva(\n \"inline-flex items-center gap-[var(--rating-item-gap)]\",\n {\n variants: {\n size: {\n sm: \"[&_svg]:size-[var(--rating-icon-size-sm)]\",\n md: \"[&_svg]:size-[var(--rating-icon-size-md)]\",\n lg: \"[&_svg]:size-[var(--rating-icon-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const ratingItemVariants = cva(\n [\n \"inline-flex items-center justify-center transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--rating-focus-ring-color)] focus-visible:ring-offset-1 rounded-sm\",\n ],\n {\n variants: {\n filled: {\n empty: \"text-[color:var(--rating-icon-color-empty)]\",\n half: \"text-[color:var(--rating-icon-color-filled)]\",\n full: \"text-[color:var(--rating-icon-color-filled)]\",\n },\n disabled: {\n true: \"cursor-not-allowed opacity-50\",\n false: \"\",\n },\n readOnly: {\n true: \"cursor-default\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n disabled: false,\n readOnly: false,\n className: \"cursor-pointer hover:scale-110 hover:text-[color:var(--rating-icon-color-filled)]\",\n },\n ],\n defaultVariants: {\n filled: \"empty\",\n disabled: false,\n readOnly: false,\n },\n }\n)\n\nexport type RatingVariantProps = VariantProps<typeof ratingVariants>\nexport type RatingItemVariantProps = VariantProps<typeof ratingItemVariants>\n","\"use client\"\n\nimport type { RatingItemProps, RatingProps } from \"./Rating.types\"\n\nimport { Star, StarHalf } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { ratingItemVariants, ratingVariants } from \"./Rating.variants\"\n\nfunction RatingItem({\n index,\n filled,\n size: _size,\n disabled,\n readOnly,\n emptyIcon,\n filledIcon,\n halfIcon,\n onClick,\n onHover,\n onLeave,\n onKeyDown,\n isActive,\n tabIndex,\n label,\n}: RatingItemProps & { label: string }) {\n const isInteractive = !disabled && !readOnly\n\n const renderIcon = () => {\n if (filled === \"full\") {\n return filledIcon ?? <Star className=\"fill-current\" />\n }\n if (filled === \"half\") {\n return halfIcon ?? (\n <span className=\"relative inline-flex\">\n <Star className=\"fill-[var(--rating-icon-color-empty)] stroke-[var(--rating-icon-color-empty)]\" />\n <StarHalf className=\"absolute inset-0 fill-[var(--rating-icon-color-half)]\" />\n </span>\n )\n }\n return emptyIcon ?? <Star />\n }\n\n return (\n <span\n className={cn(\n ratingItemVariants({\n filled,\n disabled,\n readOnly,\n })\n )}\n aria-checked={filled !== \"empty\"}\n aria-label={label}\n data-active={isActive}\n data-filled={filled}\n data-index={index}\n data-slot=\"rating-item\"\n role=\"radio\"\n tabIndex={tabIndex}\n onClick={isInteractive ? onClick : undefined}\n onKeyDown={isInteractive ? onKeyDown : undefined}\n onMouseEnter={isInteractive ? onHover : undefined}\n onMouseLeave={isInteractive ? onLeave : undefined}\n >\n {renderIcon()}\n </span>\n )\n}\n\nfunction Rating({\n className,\n value: controlledValue,\n defaultValue = 0,\n max = 5,\n size = \"md\",\n allowHalf = false,\n readOnly = false,\n disabled = false,\n emptyIcon,\n filledIcon,\n halfIcon,\n onChange,\n onHover,\n name,\n ...props\n}: RatingProps) {\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const [hoverValue, setHoverValue] = React.useState<null | number>(null)\n const [focusedIndex, setFocusedIndex] = React.useState<null | number>(null)\n\n const isControlled = controlledValue !== undefined\n const currentValue = isControlled ? controlledValue : internalValue\n const displayValue = hoverValue ?? currentValue\n\n const isInteractive = !disabled && !readOnly\n\n const handleClick = (index: number) => {\n if (!isInteractive) return\n\n const newValue = allowHalf ? index + 0.5 : index + 1\n // If clicking the same value, toggle to 0\n const finalValue = newValue === currentValue ? 0 : newValue\n\n if (!isControlled) {\n setInternalValue(finalValue)\n }\n onChange?.(finalValue)\n }\n\n const handleFullClick = (index: number) => {\n if (!isInteractive) return\n\n const newValue = index + 1\n const finalValue = newValue === currentValue ? 0 : newValue\n\n if (!isControlled) {\n setInternalValue(finalValue)\n }\n onChange?.(finalValue)\n }\n\n const handleHover = (index: number) => {\n if (!isInteractive) return\n\n const hoverVal = allowHalf ? index + 0.5 : index + 1\n setHoverValue(hoverVal)\n onHover?.(hoverVal)\n }\n\n const handleLeave = () => {\n if (!isInteractive) return\n\n setHoverValue(null)\n onHover?.(null)\n }\n\n // Helper to focus an item by index (avoids effect anti-pattern)\n const focusItemByIndex = (index: number) => {\n const item = document.querySelector<HTMLElement>(\n `[data-slot=\"rating-item\"][data-index=\"${String(index)}\"]`\n )\n item?.focus()\n setFocusedIndex(index)\n }\n\n const handleKeyDown = (event: React.KeyboardEvent, _index: number) => {\n if (!isInteractive) return\n\n const step = allowHalf ? 0.5 : 1\n\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowUp\": {\n event.preventDefault()\n const newValue = Math.min(currentValue + step, max)\n if (!isControlled) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n // Move focus to the new index directly (avoids effect anti-pattern)\n const newIndex = Math.ceil(newValue) - 1\n focusItemByIndex(Math.min(newIndex, max - 1))\n break\n }\n case \"ArrowLeft\":\n case \"ArrowDown\": {\n event.preventDefault()\n const newValue = Math.max(currentValue - step, 0)\n if (!isControlled) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n // Move focus to the new index directly (avoids effect anti-pattern)\n const newIndex = Math.max(Math.ceil(newValue) - 1, 0)\n focusItemByIndex(newIndex)\n break\n }\n case \"Home\": {\n event.preventDefault()\n if (!isControlled) {\n setInternalValue(0)\n }\n onChange?.(0)\n focusItemByIndex(0)\n break\n }\n case \"End\": {\n event.preventDefault()\n if (!isControlled) {\n setInternalValue(max)\n }\n onChange?.(max)\n focusItemByIndex(max - 1)\n break\n }\n }\n }\n\n const getFilledState = (index: number): \"empty\" | \"full\" | \"half\" => {\n const itemValue = index + 1\n if (displayValue >= itemValue) {\n return \"full\"\n }\n if (allowHalf && displayValue >= index + 0.5) {\n return \"half\"\n }\n return \"empty\"\n }\n\n const items = Array.from({ length: max }, (_, index) => {\n const filled = getFilledState(index)\n const isActive = focusedIndex === index\n\n return (\n <RatingItem\n key={index}\n disabled={disabled}\n emptyIcon={emptyIcon}\n filled={filled}\n filledIcon={filledIcon}\n halfIcon={halfIcon}\n index={index}\n isActive={isActive}\n label={`${String(index + 1)} star${index + 1 === 1 ? \"\" : \"s\"}`}\n readOnly={readOnly}\n size={size}\n tabIndex={isInteractive && index === Math.max(Math.ceil(currentValue) - 1, 0) ? 0 : -1}\n onClick={() => { if (allowHalf) { handleFullClick(index); } else { handleClick(index); } }}\n onHover={() => { handleHover(index); }}\n onKeyDown={(e) => { handleKeyDown(e, index); }}\n onLeave={handleLeave}\n />\n )\n })\n\n return (\n <div\n aria-disabled={disabled}\n aria-label={props[\"aria-label\"] ?? \"Rating\"}\n aria-readonly={readOnly}\n className={cn(ratingVariants({ size }), className)}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n data-slot=\"rating\"\n role=\"radiogroup\"\n {...props}\n >\n {name && (\n <input name={name} type=\"hidden\" value={currentValue} />\n )}\n {items}\n </div>\n )\n}\n\nexport { Rating }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/Rating/Rating.variants.ts","../src/components/forms/Rating/Rating.tsx"],"names":[],"mappings":"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","file":"chunk-RMJVCJ6U.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nexport const ratingVariants = cva(\n \"inline-flex items-center gap-[var(--rating-item-gap)]\",\n {\n variants: {\n size: {\n sm: \"[&_svg]:size-[var(--rating-icon-size-sm)]\",\n md: \"[&_svg]:size-[var(--rating-icon-size-md)]\",\n lg: \"[&_svg]:size-[var(--rating-icon-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const ratingItemVariants = cva(\n [\n \"inline-flex items-center justify-center transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--rating-focus-ring-color)] focus-visible:ring-offset-1 rounded-sm\",\n ],\n {\n variants: {\n filled: {\n empty: \"text-[color:var(--rating-icon-color-empty)]\",\n half: \"text-[color:var(--rating-icon-color-filled)]\",\n full: \"text-[color:var(--rating-icon-color-filled)]\",\n },\n disabled: {\n true: \"cursor-not-allowed opacity-50\",\n false: \"\",\n },\n readOnly: {\n true: \"cursor-default\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n disabled: false,\n readOnly: false,\n className: \"cursor-pointer hover:scale-110 hover:text-[color:var(--rating-icon-color-filled)]\",\n },\n ],\n defaultVariants: {\n filled: \"empty\",\n disabled: false,\n readOnly: false,\n },\n }\n)\n\nexport type RatingVariantProps = VariantProps<typeof ratingVariants>\nexport type RatingItemVariantProps = VariantProps<typeof ratingItemVariants>\n","\"use client\"\n\nimport type { RatingItemProps, RatingProps } from \"./Rating.types\"\n\nimport { Star, StarHalf } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { ratingItemVariants, ratingVariants } from \"./Rating.variants\"\n\nfunction RatingItem({\n index,\n filled,\n size: _size,\n disabled,\n readOnly,\n emptyIcon,\n filledIcon,\n halfIcon,\n onClick,\n onHover,\n onLeave,\n onKeyDown,\n isActive,\n tabIndex,\n label,\n}: RatingItemProps & { label: string }) {\n const isInteractive = !disabled && !readOnly\n\n const renderIcon = () => {\n if (filled === \"full\") {\n return filledIcon ?? <Star className=\"fill-current\" />\n }\n if (filled === \"half\") {\n return halfIcon ?? (\n <span className=\"relative inline-flex\">\n <Star className=\"fill-[var(--rating-icon-color-empty)] stroke-[var(--rating-icon-color-empty)]\" />\n <StarHalf className=\"absolute inset-0 fill-[var(--rating-icon-color-half)]\" />\n </span>\n )\n }\n return emptyIcon ?? <Star />\n }\n\n return (\n <span\n className={cn(\n ratingItemVariants({\n filled,\n disabled,\n readOnly,\n })\n )}\n aria-checked={filled !== \"empty\"}\n aria-label={label}\n data-active={isActive}\n data-filled={filled}\n data-index={index}\n data-slot=\"rating-item\"\n role=\"radio\"\n tabIndex={tabIndex}\n onClick={isInteractive ? onClick : undefined}\n onKeyDown={isInteractive ? onKeyDown : undefined}\n onMouseEnter={isInteractive ? onHover : undefined}\n onMouseLeave={isInteractive ? onLeave : undefined}\n >\n {renderIcon()}\n </span>\n )\n}\n\nfunction Rating({\n className,\n value: controlledValue,\n defaultValue = 0,\n max = 5,\n size = \"md\",\n allowHalf = false,\n readOnly = false,\n disabled = false,\n emptyIcon,\n filledIcon,\n halfIcon,\n onChange,\n onHover,\n name,\n ...props\n}: RatingProps) {\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const [hoverValue, setHoverValue] = React.useState<null | number>(null)\n const [focusedIndex, setFocusedIndex] = React.useState<null | number>(null)\n\n const isControlled = controlledValue !== undefined\n const currentValue = isControlled ? controlledValue : internalValue\n const displayValue = hoverValue ?? currentValue\n\n const isInteractive = !disabled && !readOnly\n\n const handleClick = (index: number) => {\n if (!isInteractive) return\n\n const newValue = allowHalf ? index + 0.5 : index + 1\n // If clicking the same value, toggle to 0\n const finalValue = newValue === currentValue ? 0 : newValue\n\n if (!isControlled) {\n setInternalValue(finalValue)\n }\n onChange?.(finalValue)\n }\n\n const handleFullClick = (index: number) => {\n if (!isInteractive) return\n\n const newValue = index + 1\n const finalValue = newValue === currentValue ? 0 : newValue\n\n if (!isControlled) {\n setInternalValue(finalValue)\n }\n onChange?.(finalValue)\n }\n\n const handleHover = (index: number) => {\n if (!isInteractive) return\n\n const hoverVal = allowHalf ? index + 0.5 : index + 1\n setHoverValue(hoverVal)\n onHover?.(hoverVal)\n }\n\n const handleLeave = () => {\n if (!isInteractive) return\n\n setHoverValue(null)\n onHover?.(null)\n }\n\n // Helper to focus an item by index (avoids effect anti-pattern)\n const focusItemByIndex = (index: number) => {\n const item = document.querySelector<HTMLElement>(\n `[data-slot=\"rating-item\"][data-index=\"${String(index)}\"]`\n )\n item?.focus()\n setFocusedIndex(index)\n }\n\n const handleKeyDown = (event: React.KeyboardEvent, _index: number) => {\n if (!isInteractive) return\n\n const step = allowHalf ? 0.5 : 1\n\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowUp\": {\n event.preventDefault()\n const newValue = Math.min(currentValue + step, max)\n if (!isControlled) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n // Move focus to the new index directly (avoids effect anti-pattern)\n const newIndex = Math.ceil(newValue) - 1\n focusItemByIndex(Math.min(newIndex, max - 1))\n break\n }\n case \"ArrowLeft\":\n case \"ArrowDown\": {\n event.preventDefault()\n const newValue = Math.max(currentValue - step, 0)\n if (!isControlled) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n // Move focus to the new index directly (avoids effect anti-pattern)\n const newIndex = Math.max(Math.ceil(newValue) - 1, 0)\n focusItemByIndex(newIndex)\n break\n }\n case \"Home\": {\n event.preventDefault()\n if (!isControlled) {\n setInternalValue(0)\n }\n onChange?.(0)\n focusItemByIndex(0)\n break\n }\n case \"End\": {\n event.preventDefault()\n if (!isControlled) {\n setInternalValue(max)\n }\n onChange?.(max)\n focusItemByIndex(max - 1)\n break\n }\n }\n }\n\n const getFilledState = (index: number): \"empty\" | \"full\" | \"half\" => {\n const itemValue = index + 1\n if (displayValue >= itemValue) {\n return \"full\"\n }\n if (allowHalf && displayValue >= index + 0.5) {\n return \"half\"\n }\n return \"empty\"\n }\n\n const items = Array.from({ length: max }, (_, index) => {\n const filled = getFilledState(index)\n const isActive = focusedIndex === index\n\n return (\n <RatingItem\n key={index}\n disabled={disabled}\n emptyIcon={emptyIcon}\n filled={filled}\n filledIcon={filledIcon}\n halfIcon={halfIcon}\n index={index}\n isActive={isActive}\n label={`${String(index + 1)} star${index + 1 === 1 ? \"\" : \"s\"}`}\n readOnly={readOnly}\n size={size}\n tabIndex={isInteractive && index === Math.max(Math.ceil(currentValue) - 1, 0) ? 0 : -1}\n onClick={() => { if (allowHalf) { handleFullClick(index); } else { handleClick(index); } }}\n onHover={() => { handleHover(index); }}\n onKeyDown={(e) => { handleKeyDown(e, index); }}\n onLeave={handleLeave}\n />\n )\n })\n\n return (\n <div\n aria-disabled={disabled}\n aria-label={props[\"aria-label\"] ?? \"Rating\"}\n aria-readonly={readOnly}\n className={cn(ratingVariants({ size }), className)}\n data-disabled={disabled || undefined}\n data-readonly={readOnly || undefined}\n data-slot=\"rating\"\n role=\"radiogroup\"\n {...props}\n >\n {name && (\n <input name={name} type=\"hidden\" value={currentValue} />\n )}\n {items}\n </div>\n )\n}\n\nexport { Rating }\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import { FileText, Lightbulb, CircleCheck, CircleX, TriangleAlert, Info } from 'lucide-react';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -89,5 +89,5 @@ function Callout({
89
89
  }
90
90
 
91
91
  export { Callout, calloutVariants };
92
- //# sourceMappingURL=chunk-UYPYAOET.js.map
93
- //# sourceMappingURL=chunk-UYPYAOET.js.map
92
+ //# sourceMappingURL=chunk-ROPW65RD.js.map
93
+ //# sourceMappingURL=chunk-ROPW65RD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/data-display/Callout/Callout.variants.ts","../src/components/data-display/Callout/Callout.tsx"],"names":[],"mappings":"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","file":"chunk-UYPYAOET.js","sourcesContent":["// Callout/Callout.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Callout style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const calloutVariants = cva(\n // Base styles (always applied)\n \"rounded-[var(--callout-root-radius)] border-l-[length:var(--callout-root-border-width)]\",\n {\n variants: {\n variant: {\n default: \"bg-muted/50 border-l-muted-foreground\",\n info: \"bg-[color:var(--info-subtle)] border-l-info\",\n warning: \"bg-[color:var(--warning-subtle)] border-l-warning\",\n error: \"bg-[color:var(--destructive-subtle)] border-l-destructive\",\n success: \"bg-[color:var(--success-subtle)] border-l-success\",\n tip: \"bg-[color:var(--tip-bg)] border-l-tip\",\n transparent: \"bg-transparent border-l-muted-foreground\",\n },\n size: {\n sm: \"p-[var(--callout-root-padding-sm)] text-[length:var(--callout-text-sm)]\",\n md: \"px-[var(--callout-root-padding-md)] py-[var(--callout-root-padding-sm)] text-[length:var(--callout-text-md)]\",\n lg: \"p-[var(--callout-root-padding-lg)] text-[length:var(--callout-text-lg)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * Icon color mapping by variant\n */\nexport const iconColorVariants: Record<string, string> = {\n default: \"text-muted-foreground\",\n info: \"text-info\",\n warning: \"text-warning\",\n error: \"text-destructive\",\n success: \"text-success\",\n tip: \"text-tip\",\n transparent: \"text-muted-foreground\",\n}\n\n// Export variant prop types\nexport type CalloutVariantProps = VariantProps<typeof calloutVariants>\n","import type { VariantProps } from \"class-variance-authority\"\n\nimport {\n CircleCheck,\n CircleX,\n FileText,\n Info,\n Lightbulb,\n TriangleAlert,\n} from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { calloutVariants, iconColorVariants } from \"./Callout.variants\"\n\nconst variantIcons = {\n default: FileText,\n info: Info,\n warning: TriangleAlert,\n error: CircleX,\n success: CircleCheck,\n tip: Lightbulb,\n transparent: FileText,\n}\n\ninterface CalloutProps\n extends React.ComponentProps<\"div\">,\n VariantProps<typeof calloutVariants> {\n /** Custom icon to display (overrides variant icon) */\n icon?: React.ReactNode\n /** Title of the callout */\n title?: string\n}\n\nfunction Callout({\n children,\n className,\n icon,\n size,\n title,\n variant = \"default\",\n role,\n ...props\n}: CalloutProps) {\n const Icon = variantIcons[variant ?? \"default\"]\n const iconColor = iconColorVariants[variant ?? \"default\"]\n\n // Determine ARIA role based on variant\n const ariaRole =\n role ?? (variant === \"error\" || variant === \"warning\" ? \"alert\" : \"note\")\n\n return (\n <div\n aria-live={ariaRole === \"alert\" ? \"assertive\" : \"polite\"}\n className={cn(calloutVariants({ variant, size }), className)}\n data-size={size ?? \"md\"}\n data-slot=\"callout\"\n data-variant={variant ?? \"default\"}\n role={ariaRole}\n {...props}\n >\n <div className=\"flex gap-[var(--callout-icon-gap)]\">\n <span className={cn(\"shrink-0 mt-0.5\", iconColor)} data-slot=\"callout-icon\">\n {icon ?? <Icon className=\"size-[var(--callout-icon-size)]\" />}\n </span>\n <div className=\"space-y-1 min-w-0\">\n {title && (\n <h5\n className=\"font-medium leading-none tracking-tight\"\n data-slot=\"callout-title\"\n >\n {title}\n </h5>\n )}\n <div className=\"text-muted-foreground\" data-slot=\"callout-content\">\n {children}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport { Callout, calloutVariants }\nexport type { CalloutProps }\n"]}
1
+ {"version":3,"sources":["../src/components/data-display/Callout/Callout.variants.ts","../src/components/data-display/Callout/Callout.tsx"],"names":[],"mappings":"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","file":"chunk-ROPW65RD.js","sourcesContent":["// Callout/Callout.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Callout style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const calloutVariants = cva(\n // Base styles (always applied)\n \"rounded-[var(--callout-root-radius)] border-l-[length:var(--callout-root-border-width)]\",\n {\n variants: {\n variant: {\n default: \"bg-muted/50 border-l-muted-foreground\",\n info: \"bg-[color:var(--info-subtle)] border-l-info\",\n warning: \"bg-[color:var(--warning-subtle)] border-l-warning\",\n error: \"bg-[color:var(--destructive-subtle)] border-l-destructive\",\n success: \"bg-[color:var(--success-subtle)] border-l-success\",\n tip: \"bg-[color:var(--tip-bg)] border-l-tip\",\n transparent: \"bg-transparent border-l-muted-foreground\",\n },\n size: {\n sm: \"p-[var(--callout-root-padding-sm)] text-[length:var(--callout-text-sm)]\",\n md: \"px-[var(--callout-root-padding-md)] py-[var(--callout-root-padding-sm)] text-[length:var(--callout-text-md)]\",\n lg: \"p-[var(--callout-root-padding-lg)] text-[length:var(--callout-text-lg)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * Icon color mapping by variant\n */\nexport const iconColorVariants: Record<string, string> = {\n default: \"text-muted-foreground\",\n info: \"text-info\",\n warning: \"text-warning\",\n error: \"text-destructive\",\n success: \"text-success\",\n tip: \"text-tip\",\n transparent: \"text-muted-foreground\",\n}\n\n// Export variant prop types\nexport type CalloutVariantProps = VariantProps<typeof calloutVariants>\n","import type { VariantProps } from \"class-variance-authority\"\n\nimport {\n CircleCheck,\n CircleX,\n FileText,\n Info,\n Lightbulb,\n TriangleAlert,\n} from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { calloutVariants, iconColorVariants } from \"./Callout.variants\"\n\nconst variantIcons = {\n default: FileText,\n info: Info,\n warning: TriangleAlert,\n error: CircleX,\n success: CircleCheck,\n tip: Lightbulb,\n transparent: FileText,\n}\n\ninterface CalloutProps\n extends React.ComponentProps<\"div\">,\n VariantProps<typeof calloutVariants> {\n /** Custom icon to display (overrides variant icon) */\n icon?: React.ReactNode\n /** Title of the callout */\n title?: string\n}\n\nfunction Callout({\n children,\n className,\n icon,\n size,\n title,\n variant = \"default\",\n role,\n ...props\n}: CalloutProps) {\n const Icon = variantIcons[variant ?? \"default\"]\n const iconColor = iconColorVariants[variant ?? \"default\"]\n\n // Determine ARIA role based on variant\n const ariaRole =\n role ?? (variant === \"error\" || variant === \"warning\" ? \"alert\" : \"note\")\n\n return (\n <div\n aria-live={ariaRole === \"alert\" ? \"assertive\" : \"polite\"}\n className={cn(calloutVariants({ variant, size }), className)}\n data-size={size ?? \"md\"}\n data-slot=\"callout\"\n data-variant={variant ?? \"default\"}\n role={ariaRole}\n {...props}\n >\n <div className=\"flex gap-[var(--callout-icon-gap)]\">\n <span className={cn(\"shrink-0 mt-0.5\", iconColor)} data-slot=\"callout-icon\">\n {icon ?? <Icon className=\"size-[var(--callout-icon-size)]\" />}\n </span>\n <div className=\"space-y-1 min-w-0\">\n {title && (\n <h5\n className=\"font-medium leading-none tracking-tight\"\n data-slot=\"callout-title\"\n >\n {title}\n </h5>\n )}\n <div className=\"text-muted-foreground\" data-slot=\"callout-content\">\n {children}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport { Callout, calloutVariants }\nexport type { CalloutProps }\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import { CreditCard } from 'lucide-react';
3
3
  import { useRef, useState, useCallback } from 'react';
4
4
  import { cva } from 'class-variance-authority';
@@ -305,5 +305,5 @@ function PaymentInput({
305
305
  }
306
306
 
307
307
  export { PaymentInput, cardTypes, detectCardType, formatCardNumber, getCardBrandName, getCardConfig, getCardDigits, paymentInputIconVariants, paymentInputInputVariants, paymentInputVariants, validateCardNumber };
308
- //# sourceMappingURL=chunk-M6VBDPNQ.js.map
309
- //# sourceMappingURL=chunk-M6VBDPNQ.js.map
308
+ //# sourceMappingURL=chunk-RQBYBBMP.js.map
309
+ //# sourceMappingURL=chunk-RQBYBBMP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/PaymentInput/card-utils.ts","../src/components/forms/PaymentInput/PaymentInput.variants.ts","../src/components/forms/PaymentInput/PaymentInput.tsx"],"names":[],"mappings":"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","file":"chunk-M6VBDPNQ.js","sourcesContent":["/**\n * Supported card types\n */\nexport type CardType =\n | \"amex\"\n | \"diners\"\n | \"discover\"\n | \"elo\"\n | \"hipercard\"\n | \"jcb\"\n | \"mastercard\"\n | \"visa\"\n\n/**\n * Card type configuration\n */\nexport interface CardTypeConfig {\n /** CVV length */\n cvvLength: number\n /** Card number format (# = digit, space = separator) */\n format: string\n /** Card number length(s) */\n lengths: number[]\n name: string\n /** Regex patterns to match card number prefixes */\n patterns: RegExp[]\n type: CardType\n}\n\n/**\n * Standard 16-digit card format\n */\nconst STANDARD_CARD_FORMAT = \"#### #### #### ####\"\n\n/**\n * Card type configurations\n */\nexport const cardTypes: CardTypeConfig[] = [\n {\n type: \"visa\",\n name: \"Visa\",\n patterns: [/^4/],\n lengths: [13, 16, 19],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n {\n type: \"mastercard\",\n name: \"Mastercard\",\n patterns: [/^5[1-5]/, /^2[2-7]/],\n lengths: [16],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n {\n type: \"amex\",\n name: \"American Express\",\n patterns: [/^3[47]/],\n lengths: [15],\n cvvLength: 4,\n format: \"#### ###### #####\",\n },\n {\n type: \"discover\",\n name: \"Discover\",\n patterns: [/^6(?:011|5)/, /^64[4-9]/, /^622/],\n lengths: [16, 19],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n {\n type: \"diners\",\n name: \"Diners Club\",\n patterns: [/^3(?:0[0-5]|[68])/, /^36/],\n lengths: [14, 16, 19],\n cvvLength: 3,\n format: \"#### ###### ####\",\n },\n {\n type: \"jcb\",\n name: \"JCB\",\n patterns: [/^35(?:2[89]|[3-8])/, /^2131/, /^1800/],\n lengths: [16, 17, 18, 19],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n {\n type: \"elo\",\n name: \"Elo\",\n patterns: [\n /^4011(78|79)/,\n /^43(1274|8935)/,\n /^45(1416|7393|763(1|2))/,\n /^50(4175|6699|67[0-6][0-9]|677[0-8]|9[0-8][0-9]{2}|99[0-8][0-9]|999[0-9])/,\n /^627780/,\n /^636297/,\n /^636368/,\n /^65003[1-3]/,\n /^6500(3[5-9]|4[0-9]|5[0-1])/,\n /^6504(0[5-9]|[1-3][0-9])/,\n /^650(4[8-9][0-9]|5[0-2][0-9]|53[0-8])/,\n /^6505(4[1-9]|[5-8][0-9]|9[0-8])/,\n /^6507(0[0-9]|1[0-8])/,\n /^65072[0-7]/,\n /^6509(0[1-9]|1[0-9]|20)/,\n /^6516(5[2-9]|[6-7][0-9])/,\n /^6550([0-1][0-9]|2[1-9]|[3-4][0-9]|5[0-8])/,\n ],\n lengths: [16],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n {\n type: \"hipercard\",\n name: \"Hipercard\",\n patterns: [/^606282/, /^3841(0[0-9]|4[0-9]|80)/],\n lengths: [16, 19],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n]\n\n/**\n * Detect card type from card number\n */\nexport function detectCardType(cardNumber: string): CardType | null {\n const digits = cardNumber.replaceAll(/\\D/g, \"\")\n\n for (const card of cardTypes) {\n for (const pattern of card.patterns) {\n if (pattern.test(digits)) {\n return card.type\n }\n }\n }\n\n return null\n}\n\n/**\n * Get card type configuration\n */\nexport function getCardConfig(cardType: CardType): CardTypeConfig | undefined {\n return cardTypes.find((c) => c.type === cardType)\n}\n\n/**\n * Format card number with spaces\n */\nexport function formatCardNumber(value: string, cardType?: CardType | null): string {\n const digits = value.replaceAll(/\\D/g, \"\")\n const config = cardType ? getCardConfig(cardType) : null\n const format = config?.format ?? STANDARD_CARD_FORMAT\n\n let result = \"\"\n let digitIndex = 0\n\n for (const char of format) {\n if (digitIndex >= digits.length) break\n\n if (char === \"#\") {\n result += digits[digitIndex] ?? \"\"\n digitIndex++\n } else {\n result += char\n }\n }\n\n return result\n}\n\n/**\n * Get raw digits from formatted card number\n */\nexport function getCardDigits(value: string): string {\n return value.replaceAll(/\\D/g, \"\")\n}\n\n/**\n * Validate card number using Luhn algorithm\n */\nexport function validateCardNumber(cardNumber: string): boolean {\n const digits = cardNumber.replaceAll(/\\D/g, \"\")\n\n if (digits.length < 13 || digits.length > 19) {\n return false\n }\n\n let sum = 0\n let isEven = false\n\n for (let i = digits.length - 1; i >= 0; i--) {\n const char = digits[i]\n if (!char) continue\n\n let digit = Number.parseInt(char, 10)\n\n if (isEven) {\n digit *= 2\n if (digit > 9) {\n digit -= 9\n }\n }\n\n sum += digit\n isEven = !isEven\n }\n\n return sum % 10 === 0\n}\n\n/**\n * Get card brand display name\n */\nexport function getCardBrandName(cardType: CardType | null): string {\n if (!cardType) return \"\"\n const config = getCardConfig(cardType)\n return config?.name ?? \"\"\n}\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * PaymentInput container variant styles using CVA\n */\nexport const paymentInputVariants = cva(\n [\n \"flex items-center w-full min-w-0 rounded-md border bg-transparent transition-[color,box-shadow] outline-none\",\n \"dark:bg-input/30\",\n \"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]\",\n \"has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8 px-2.5 text-sm gap-2\",\n md: \"h-9 px-3 text-base md:text-sm gap-2.5\",\n lg: \"h-10 px-3.5 text-base gap-3\",\n },\n variant: {\n default: \"border-input shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * PaymentInput inner input styles\n */\nexport const paymentInputInputVariants = cva(\n [\n \"flex-1 min-w-0 bg-transparent outline-none font-mono\",\n \"placeholder:text-muted-foreground placeholder:font-sans\",\n \"disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n size: {\n sm: \"text-sm\",\n md: \"text-base md:text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * PaymentInput card icon styles\n */\nexport const paymentInputIconVariants = cva(\n \"shrink-0 text-[color:var(--payment-input-icon-color)] transition-opacity\",\n {\n variants: {\n size: {\n sm: \"size-5\",\n md: \"size-6\",\n lg: \"size-7\",\n },\n hasCard: {\n true: \"opacity-100\",\n false: \"opacity-40\",\n },\n },\n defaultVariants: {\n size: \"md\",\n hasCard: false,\n },\n }\n)\n\nexport type PaymentInputVariantProps = VariantProps<typeof paymentInputVariants>\n","\"use client\"\n\nimport type { PaymentInputProps } from \"./PaymentInput.types\"\n\nimport { CreditCard } from \"lucide-react\"\nimport * as React from \"react\"\nimport { useCallback, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n type CardType,\n detectCardType,\n formatCardNumber,\n getCardDigits,\n} from \"./card-utils\"\nimport {\n paymentInputIconVariants,\n paymentInputInputVariants,\n paymentInputVariants,\n} from \"./PaymentInput.variants\"\n\n/**\n * Card brand icons as simple SVG components\n */\nconst CardIcons: Record<\"unknown\" | CardType, React.FC<{ className?: string }>> = {\n visa: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M9.5 14.25h-1.5l.94-5.5h1.5l-.94 5.5zm6.75-5.37c-.3-.11-.77-.23-1.35-.23-1.5 0-2.55.75-2.56 1.83-.01.8.76 1.24 1.34 1.5.59.27.79.45.79.69-.01.37-.47.54-.91.54-.61 0-.93-.08-1.43-.29l-.2-.09-.21 1.24c.36.15 1.02.29 1.7.29 1.59 0 2.62-.74 2.63-1.9.01-.63-.4-1.12-1.29-1.52-.54-.26-.87-.43-.87-.69 0-.23.28-.48.88-.48.51-.01.87.1 1.15.21l.14.06.21-1.16zm3.97-.13h-1.17c-.36 0-.64.1-.79.46l-2.26 5.04h1.59l.32-.83h1.95l.18.83h1.4l-1.22-5.5zm-1.65 3.57l.8-2.02.46 2.02h-1.26zm-11.82-3.57l-1.49 3.75-.16-.75-.52-2.48c-.09-.34-.35-.47-.68-.48h-2.42l-.03.14c.56.14 1.06.33 1.49.55l1.27 4.77h1.61l2.39-5.5h-1.46z\" />\n </svg>\n ),\n mastercard: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M15.245 17.831c-1.458 1.093-3.256 1.744-5.207 1.744-4.786 0-8.669-3.855-8.669-8.613s3.883-8.613 8.669-8.613c1.951 0 3.749.651 5.207 1.744-2.06 1.655-3.383 4.177-3.383 7.019s1.323 5.364 3.383 7.019zm5.217-6.869c0-2.842-1.323-5.364-3.383-7.019-1.458 1.093-3.256 1.744-5.207 1.744-1.951 0-3.749-.651-5.207-1.744 2.06 1.655 3.383 4.177 3.383 7.019s-1.323 5.364-3.383 7.019c1.458-1.093 3.256-1.744 5.207-1.744 1.951 0 3.749.651 5.207 1.744-2.06-1.655-3.383-4.177-3.383-7.019z\" />\n </svg>\n ),\n amex: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10zm-10.65 2.5h1.3v-1.125h-1.3V12.5h1.3v-1h-2.35v4h2.35v-1h-1.3zm6.65-3h-3.85v4h1.05v-1.25h2.3v-1h-2.3v-.75h2.8v-1zm-9.25 0h-2.1l-1.4 1.65-1.4-1.65h-2.1v4h1.05v-2.8l1.45 1.75h.95l1.45-1.75v2.8h1.05v-4z\" />\n </svg>\n ),\n discover: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\" />\n </svg>\n ),\n diners: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9c1.45.55 2.48 1.94 2.48 3.55v1.9c0 1.61-1.03 3-2.48 3.55zm4 0v-9c1.45.55 2.48 1.94 2.48 3.55v1.9c0 1.61-1.03 3-2.48 3.55z\" />\n </svg>\n ),\n jcb: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M17.5 3h-11C4.57 3 3 4.57 3 6.5v11c0 1.93 1.57 3.5 3.5 3.5h11c1.93 0 3.5-1.57 3.5-3.5v-11C21 4.57 19.43 3 17.5 3zm-7 12c0 .55-.45 1-1 1s-1-.45-1-1V9c0-.55.45-1 1-1s1 .45 1 1v6zm4.5 1c-1.38 0-2.5-1.12-2.5-2.5V9h2v4.5c0 .28.22.5.5.5s.5-.22.5-.5V9h2v4.5c0 1.38-1.12 2.5-2.5 2.5z\" />\n </svg>\n ),\n elo: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 13l-4-4 1.41-1.41L10 12.17l6.59-6.59L18 7l-8 8z\" />\n </svg>\n ),\n hipercard: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2L4 7v10l8 5 8-5V7l-8-5zm0 2.5L18 8v8l-6 3.5L6 16V8l6-3.5z\" />\n </svg>\n ),\n unknown: CreditCard,\n}\n\n/**\n * PaymentInput - A credit card number input with auto-formatting and brand detection\n *\n * @example\n * ```tsx\n * // Basic usage\n * <PaymentInput placeholder=\"Card number\" />\n *\n * // Controlled\n * const [cardNumber, setCardNumber] = useState(\"\")\n * <PaymentInput\n * value={cardNumber}\n * onChange={(value, cardType) => {\n * setCardNumber(value)\n * console.log(`Card type: ${cardType}`)\n * }}\n * />\n * ```\n */\nfunction PaymentInput({\n value: controlledValue,\n defaultValue = \"\",\n onChange,\n onCardTypeChange,\n disabled,\n size = \"md\",\n variant,\n invalid,\n showCardIcon = true,\n placeholder = \"0000 0000 0000 0000\",\n className,\n ...props\n}: PaymentInputProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue)\n const [cardType, setCardType] = useState<CardType | null>(() =>\n detectCardType(defaultValue)\n )\n\n // Determine if controlled\n const isControlled = controlledValue !== undefined\n const cardValue = isControlled ? controlledValue : internalValue\n\n // Format the display value\n const displayValue = formatCardNumber(cardValue, cardType)\n\n // Track previous card type for change detection\n const prevCardTypeRef = useRef<CardType | null>(cardType)\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const rawValue = getCardDigits(e.target.value)\n\n // Limit to 19 digits (max card length)\n const limitedValue = rawValue.slice(0, 19)\n\n // Detect card type\n const detectedType = detectCardType(limitedValue)\n setCardType(detectedType)\n\n if (!isControlled) {\n setInternalValue(limitedValue)\n }\n\n onChange?.(limitedValue, detectedType)\n\n // Notify on card type changes directly in the event handler (avoids effect anti-pattern)\n if (prevCardTypeRef.current !== detectedType) {\n onCardTypeChange?.(detectedType)\n prevCardTypeRef.current = detectedType\n }\n },\n [isControlled, onChange, onCardTypeChange]\n )\n\n // Get the card icon component\n const CardIcon = cardType ? CardIcons[cardType] : CardIcons.unknown\n\n return (\n <div\n aria-invalid={invalid ?? undefined}\n className={cn(paymentInputVariants({ size, variant }), className)}\n data-slot=\"payment-input\"\n >\n {showCardIcon && (\n <CardIcon\n className={paymentInputIconVariants({ size, hasCard: !!cardType })}\n />\n )}\n <input\n ref={inputRef}\n aria-invalid={invalid ?? undefined}\n autoComplete=\"cc-number\"\n className={paymentInputInputVariants({ size })}\n data-slot=\"payment-input-field\"\n disabled={disabled}\n inputMode=\"numeric\"\n placeholder={placeholder}\n type=\"text\"\n value={displayValue}\n onChange={handleInputChange}\n {...props}\n />\n </div>\n )\n}\n\nexport { PaymentInput }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/PaymentInput/card-utils.ts","../src/components/forms/PaymentInput/PaymentInput.variants.ts","../src/components/forms/PaymentInput/PaymentInput.tsx"],"names":[],"mappings":"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","file":"chunk-RQBYBBMP.js","sourcesContent":["/**\n * Supported card types\n */\nexport type CardType =\n | \"amex\"\n | \"diners\"\n | \"discover\"\n | \"elo\"\n | \"hipercard\"\n | \"jcb\"\n | \"mastercard\"\n | \"visa\"\n\n/**\n * Card type configuration\n */\nexport interface CardTypeConfig {\n /** CVV length */\n cvvLength: number\n /** Card number format (# = digit, space = separator) */\n format: string\n /** Card number length(s) */\n lengths: number[]\n name: string\n /** Regex patterns to match card number prefixes */\n patterns: RegExp[]\n type: CardType\n}\n\n/**\n * Standard 16-digit card format\n */\nconst STANDARD_CARD_FORMAT = \"#### #### #### ####\"\n\n/**\n * Card type configurations\n */\nexport const cardTypes: CardTypeConfig[] = [\n {\n type: \"visa\",\n name: \"Visa\",\n patterns: [/^4/],\n lengths: [13, 16, 19],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n {\n type: \"mastercard\",\n name: \"Mastercard\",\n patterns: [/^5[1-5]/, /^2[2-7]/],\n lengths: [16],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n {\n type: \"amex\",\n name: \"American Express\",\n patterns: [/^3[47]/],\n lengths: [15],\n cvvLength: 4,\n format: \"#### ###### #####\",\n },\n {\n type: \"discover\",\n name: \"Discover\",\n patterns: [/^6(?:011|5)/, /^64[4-9]/, /^622/],\n lengths: [16, 19],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n {\n type: \"diners\",\n name: \"Diners Club\",\n patterns: [/^3(?:0[0-5]|[68])/, /^36/],\n lengths: [14, 16, 19],\n cvvLength: 3,\n format: \"#### ###### ####\",\n },\n {\n type: \"jcb\",\n name: \"JCB\",\n patterns: [/^35(?:2[89]|[3-8])/, /^2131/, /^1800/],\n lengths: [16, 17, 18, 19],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n {\n type: \"elo\",\n name: \"Elo\",\n patterns: [\n /^4011(78|79)/,\n /^43(1274|8935)/,\n /^45(1416|7393|763(1|2))/,\n /^50(4175|6699|67[0-6][0-9]|677[0-8]|9[0-8][0-9]{2}|99[0-8][0-9]|999[0-9])/,\n /^627780/,\n /^636297/,\n /^636368/,\n /^65003[1-3]/,\n /^6500(3[5-9]|4[0-9]|5[0-1])/,\n /^6504(0[5-9]|[1-3][0-9])/,\n /^650(4[8-9][0-9]|5[0-2][0-9]|53[0-8])/,\n /^6505(4[1-9]|[5-8][0-9]|9[0-8])/,\n /^6507(0[0-9]|1[0-8])/,\n /^65072[0-7]/,\n /^6509(0[1-9]|1[0-9]|20)/,\n /^6516(5[2-9]|[6-7][0-9])/,\n /^6550([0-1][0-9]|2[1-9]|[3-4][0-9]|5[0-8])/,\n ],\n lengths: [16],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n {\n type: \"hipercard\",\n name: \"Hipercard\",\n patterns: [/^606282/, /^3841(0[0-9]|4[0-9]|80)/],\n lengths: [16, 19],\n cvvLength: 3,\n format: STANDARD_CARD_FORMAT,\n },\n]\n\n/**\n * Detect card type from card number\n */\nexport function detectCardType(cardNumber: string): CardType | null {\n const digits = cardNumber.replaceAll(/\\D/g, \"\")\n\n for (const card of cardTypes) {\n for (const pattern of card.patterns) {\n if (pattern.test(digits)) {\n return card.type\n }\n }\n }\n\n return null\n}\n\n/**\n * Get card type configuration\n */\nexport function getCardConfig(cardType: CardType): CardTypeConfig | undefined {\n return cardTypes.find((c) => c.type === cardType)\n}\n\n/**\n * Format card number with spaces\n */\nexport function formatCardNumber(value: string, cardType?: CardType | null): string {\n const digits = value.replaceAll(/\\D/g, \"\")\n const config = cardType ? getCardConfig(cardType) : null\n const format = config?.format ?? STANDARD_CARD_FORMAT\n\n let result = \"\"\n let digitIndex = 0\n\n for (const char of format) {\n if (digitIndex >= digits.length) break\n\n if (char === \"#\") {\n result += digits[digitIndex] ?? \"\"\n digitIndex++\n } else {\n result += char\n }\n }\n\n return result\n}\n\n/**\n * Get raw digits from formatted card number\n */\nexport function getCardDigits(value: string): string {\n return value.replaceAll(/\\D/g, \"\")\n}\n\n/**\n * Validate card number using Luhn algorithm\n */\nexport function validateCardNumber(cardNumber: string): boolean {\n const digits = cardNumber.replaceAll(/\\D/g, \"\")\n\n if (digits.length < 13 || digits.length > 19) {\n return false\n }\n\n let sum = 0\n let isEven = false\n\n for (let i = digits.length - 1; i >= 0; i--) {\n const char = digits[i]\n if (!char) continue\n\n let digit = Number.parseInt(char, 10)\n\n if (isEven) {\n digit *= 2\n if (digit > 9) {\n digit -= 9\n }\n }\n\n sum += digit\n isEven = !isEven\n }\n\n return sum % 10 === 0\n}\n\n/**\n * Get card brand display name\n */\nexport function getCardBrandName(cardType: CardType | null): string {\n if (!cardType) return \"\"\n const config = getCardConfig(cardType)\n return config?.name ?? \"\"\n}\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * PaymentInput container variant styles using CVA\n */\nexport const paymentInputVariants = cva(\n [\n \"flex items-center w-full min-w-0 rounded-md border bg-transparent transition-[color,box-shadow] outline-none\",\n \"dark:bg-input/30\",\n \"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]\",\n \"has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8 px-2.5 text-sm gap-2\",\n md: \"h-9 px-3 text-base md:text-sm gap-2.5\",\n lg: \"h-10 px-3.5 text-base gap-3\",\n },\n variant: {\n default: \"border-input shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * PaymentInput inner input styles\n */\nexport const paymentInputInputVariants = cva(\n [\n \"flex-1 min-w-0 bg-transparent outline-none font-mono\",\n \"placeholder:text-muted-foreground placeholder:font-sans\",\n \"disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n size: {\n sm: \"text-sm\",\n md: \"text-base md:text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * PaymentInput card icon styles\n */\nexport const paymentInputIconVariants = cva(\n \"shrink-0 text-[color:var(--payment-input-icon-color)] transition-opacity\",\n {\n variants: {\n size: {\n sm: \"size-5\",\n md: \"size-6\",\n lg: \"size-7\",\n },\n hasCard: {\n true: \"opacity-100\",\n false: \"opacity-40\",\n },\n },\n defaultVariants: {\n size: \"md\",\n hasCard: false,\n },\n }\n)\n\nexport type PaymentInputVariantProps = VariantProps<typeof paymentInputVariants>\n","\"use client\"\n\nimport type { PaymentInputProps } from \"./PaymentInput.types\"\n\nimport { CreditCard } from \"lucide-react\"\nimport * as React from \"react\"\nimport { useCallback, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n type CardType,\n detectCardType,\n formatCardNumber,\n getCardDigits,\n} from \"./card-utils\"\nimport {\n paymentInputIconVariants,\n paymentInputInputVariants,\n paymentInputVariants,\n} from \"./PaymentInput.variants\"\n\n/**\n * Card brand icons as simple SVG components\n */\nconst CardIcons: Record<\"unknown\" | CardType, React.FC<{ className?: string }>> = {\n visa: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M9.5 14.25h-1.5l.94-5.5h1.5l-.94 5.5zm6.75-5.37c-.3-.11-.77-.23-1.35-.23-1.5 0-2.55.75-2.56 1.83-.01.8.76 1.24 1.34 1.5.59.27.79.45.79.69-.01.37-.47.54-.91.54-.61 0-.93-.08-1.43-.29l-.2-.09-.21 1.24c.36.15 1.02.29 1.7.29 1.59 0 2.62-.74 2.63-1.9.01-.63-.4-1.12-1.29-1.52-.54-.26-.87-.43-.87-.69 0-.23.28-.48.88-.48.51-.01.87.1 1.15.21l.14.06.21-1.16zm3.97-.13h-1.17c-.36 0-.64.1-.79.46l-2.26 5.04h1.59l.32-.83h1.95l.18.83h1.4l-1.22-5.5zm-1.65 3.57l.8-2.02.46 2.02h-1.26zm-11.82-3.57l-1.49 3.75-.16-.75-.52-2.48c-.09-.34-.35-.47-.68-.48h-2.42l-.03.14c.56.14 1.06.33 1.49.55l1.27 4.77h1.61l2.39-5.5h-1.46z\" />\n </svg>\n ),\n mastercard: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M15.245 17.831c-1.458 1.093-3.256 1.744-5.207 1.744-4.786 0-8.669-3.855-8.669-8.613s3.883-8.613 8.669-8.613c1.951 0 3.749.651 5.207 1.744-2.06 1.655-3.383 4.177-3.383 7.019s1.323 5.364 3.383 7.019zm5.217-6.869c0-2.842-1.323-5.364-3.383-7.019-1.458 1.093-3.256 1.744-5.207 1.744-1.951 0-3.749-.651-5.207-1.744 2.06 1.655 3.383 4.177 3.383 7.019s-1.323 5.364-3.383 7.019c1.458-1.093 3.256-1.744 5.207-1.744 1.951 0 3.749.651 5.207 1.744-2.06-1.655-3.383-4.177-3.383-7.019z\" />\n </svg>\n ),\n amex: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10zm-10.65 2.5h1.3v-1.125h-1.3V12.5h1.3v-1h-2.35v4h2.35v-1h-1.3zm6.65-3h-3.85v4h1.05v-1.25h2.3v-1h-2.3v-.75h2.8v-1zm-9.25 0h-2.1l-1.4 1.65-1.4-1.65h-2.1v4h1.05v-2.8l1.45 1.75h.95l1.45-1.75v2.8h1.05v-4z\" />\n </svg>\n ),\n discover: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\" />\n </svg>\n ),\n diners: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9c1.45.55 2.48 1.94 2.48 3.55v1.9c0 1.61-1.03 3-2.48 3.55zm4 0v-9c1.45.55 2.48 1.94 2.48 3.55v1.9c0 1.61-1.03 3-2.48 3.55z\" />\n </svg>\n ),\n jcb: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M17.5 3h-11C4.57 3 3 4.57 3 6.5v11c0 1.93 1.57 3.5 3.5 3.5h11c1.93 0 3.5-1.57 3.5-3.5v-11C21 4.57 19.43 3 17.5 3zm-7 12c0 .55-.45 1-1 1s-1-.45-1-1V9c0-.55.45-1 1-1s1 .45 1 1v6zm4.5 1c-1.38 0-2.5-1.12-2.5-2.5V9h2v4.5c0 .28.22.5.5.5s.5-.22.5-.5V9h2v4.5c0 1.38-1.12 2.5-2.5 2.5z\" />\n </svg>\n ),\n elo: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 13l-4-4 1.41-1.41L10 12.17l6.59-6.59L18 7l-8 8z\" />\n </svg>\n ),\n hipercard: ({ className }) => (\n <svg className={className} fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2L4 7v10l8 5 8-5V7l-8-5zm0 2.5L18 8v8l-6 3.5L6 16V8l6-3.5z\" />\n </svg>\n ),\n unknown: CreditCard,\n}\n\n/**\n * PaymentInput - A credit card number input with auto-formatting and brand detection\n *\n * @example\n * ```tsx\n * // Basic usage\n * <PaymentInput placeholder=\"Card number\" />\n *\n * // Controlled\n * const [cardNumber, setCardNumber] = useState(\"\")\n * <PaymentInput\n * value={cardNumber}\n * onChange={(value, cardType) => {\n * setCardNumber(value)\n * console.log(`Card type: ${cardType}`)\n * }}\n * />\n * ```\n */\nfunction PaymentInput({\n value: controlledValue,\n defaultValue = \"\",\n onChange,\n onCardTypeChange,\n disabled,\n size = \"md\",\n variant,\n invalid,\n showCardIcon = true,\n placeholder = \"0000 0000 0000 0000\",\n className,\n ...props\n}: PaymentInputProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue)\n const [cardType, setCardType] = useState<CardType | null>(() =>\n detectCardType(defaultValue)\n )\n\n // Determine if controlled\n const isControlled = controlledValue !== undefined\n const cardValue = isControlled ? controlledValue : internalValue\n\n // Format the display value\n const displayValue = formatCardNumber(cardValue, cardType)\n\n // Track previous card type for change detection\n const prevCardTypeRef = useRef<CardType | null>(cardType)\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const rawValue = getCardDigits(e.target.value)\n\n // Limit to 19 digits (max card length)\n const limitedValue = rawValue.slice(0, 19)\n\n // Detect card type\n const detectedType = detectCardType(limitedValue)\n setCardType(detectedType)\n\n if (!isControlled) {\n setInternalValue(limitedValue)\n }\n\n onChange?.(limitedValue, detectedType)\n\n // Notify on card type changes directly in the event handler (avoids effect anti-pattern)\n if (prevCardTypeRef.current !== detectedType) {\n onCardTypeChange?.(detectedType)\n prevCardTypeRef.current = detectedType\n }\n },\n [isControlled, onChange, onCardTypeChange]\n )\n\n // Get the card icon component\n const CardIcon = cardType ? CardIcons[cardType] : CardIcons.unknown\n\n return (\n <div\n aria-invalid={invalid ?? undefined}\n className={cn(paymentInputVariants({ size, variant }), className)}\n data-slot=\"payment-input\"\n >\n {showCardIcon && (\n <CardIcon\n className={paymentInputIconVariants({ size, hasCard: !!cardType })}\n />\n )}\n <input\n ref={inputRef}\n aria-invalid={invalid ?? undefined}\n autoComplete=\"cc-number\"\n className={paymentInputInputVariants({ size })}\n data-slot=\"payment-input-field\"\n disabled={disabled}\n inputMode=\"numeric\"\n placeholder={placeholder}\n type=\"text\"\n value={displayValue}\n onChange={handleInputChange}\n {...props}\n />\n </div>\n )\n}\n\nexport { PaymentInput }\n"]}
@@ -0,0 +1,31 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ // src/lib/utils.ts
5
+ function cn(...inputs) {
6
+ return twMerge(clsx(inputs));
7
+ }
8
+ var INTERACTIVE_TARGET_SELECTOR = [
9
+ "a[href]",
10
+ "button",
11
+ "input",
12
+ "select",
13
+ "textarea",
14
+ "[role='button']",
15
+ "[role='checkbox']",
16
+ "[role='menuitem']",
17
+ "[role='option']",
18
+ "[role='switch']",
19
+ "[contenteditable='true']",
20
+ "[data-region-click-exempt]"
21
+ ].join(", ");
22
+ function isInteractiveTarget(target, region) {
23
+ if (!(target instanceof Element) || !(region instanceof Element)) return false;
24
+ const hit = target.closest(INTERACTIVE_TARGET_SELECTOR);
25
+ if (!hit) return false;
26
+ return hit !== region && region.contains(hit);
27
+ }
28
+
29
+ export { cn, isInteractiveTarget };
30
+ //# sourceMappingURL=chunk-RVAYDRMA.js.map
31
+ //# sourceMappingURL=chunk-RVAYDRMA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;AAMA,IAAM,2BAAA,GAA8B;AAAA,EAClC,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,0BAAA;AAAA,EACA;AACF,CAAA,CAAE,KAAK,IAAI,CAAA;AAEJ,SAAS,mBAAA,CACd,QACA,MAAA,EACS;AACT,EAAA,IAAI,EAAE,MAAA,YAAkB,OAAA,CAAA,IAAY,EAAE,MAAA,YAAkB,UAAU,OAAO,KAAA;AACzE,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,OAAA,CAAQ,2BAA2B,CAAA;AACtD,EAAA,IAAI,CAAC,KAAK,OAAO,KAAA;AAIjB,EAAA,OAAO,GAAA,KAAQ,MAAA,IAAU,MAAA,CAAO,QAAA,CAAS,GAAG,CAAA;AAC9C","file":"chunk-RVAYDRMA.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\n// Interactive descendants of a clickable region (table row, card, gallery item)\n// must swallow the region's click: selecting a row via its checkbox cannot also\n// fire onRowClick. Region handlers call this guard before acting; consumers can\n// opt extra elements out of region clicks with data-region-click-exempt.\nconst INTERACTIVE_TARGET_SELECTOR = [\n \"a[href]\",\n \"button\",\n \"input\",\n \"select\",\n \"textarea\",\n \"[role='button']\",\n \"[role='checkbox']\",\n \"[role='menuitem']\",\n \"[role='option']\",\n \"[role='switch']\",\n \"[contenteditable='true']\",\n \"[data-region-click-exempt]\",\n].join(\", \")\n\nexport function isInteractiveTarget(\n target: EventTarget | null,\n region: EventTarget | null,\n): boolean {\n if (!(target instanceof Element) || !(region instanceof Element)) return false\n const hit = target.closest(INTERACTIVE_TARGET_SELECTOR)\n if (!hit) return false\n // The region itself may be interactive (a card with role=\"button\"); only a\n // match STRICTLY inside the region swallows its click — never the region\n // itself, never an ancestor outside it.\n return hit !== region && region.contains(hit)\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import { Slot } from '@radix-ui/react-slot';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -99,5 +99,5 @@ function Paragraph({
99
99
  }
100
100
 
101
101
  export { Paragraph, paragraphVariants };
102
- //# sourceMappingURL=chunk-ARNVOHVW.js.map
103
- //# sourceMappingURL=chunk-ARNVOHVW.js.map
102
+ //# sourceMappingURL=chunk-S4P7JIQ2.js.map
103
+ //# sourceMappingURL=chunk-S4P7JIQ2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/primitives/Paragraph/Paragraph.tsx"],"names":[],"mappings":";;;;;AAOA,IAAM,iBAAA,GAAoB,GAAA;AAAA,EACxB,sDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,iGAAA;AAAA,QACJ,EAAA,EAAI,iGAAA;AAAA,QACJ,IAAA,EAAM,qGAAA;AAAA,QACN,EAAA,EAAI,iGAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,MAAA,EAAQ,uCAAA;AAAA,QACR,MAAA,EAAQ,uCAAA;AAAA,QACR,QAAA,EAAU,yCAAA;AAAA,QACV,IAAA,EAAM;AAAA,OACR;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,6CAAA;AAAA,QACT,KAAA,EAAO,2CAAA;AAAA,QACP,OAAA,EAAS,6CAAA;AAAA,QACT,WAAA,EAAa,iDAAA;AAAA,QACb,OAAA,EAAS;AAAA,OACX;AAAA,MACA,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,WAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,KAAA,EAAO,YAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,MACA,OAAA,EAAS;AAAA,QACP,KAAA,EAAO,eAAA;AAAA,QACP,IAAA,EAAM,cAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,OAAA,EAAS,iBAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,oCAAA;AAAA,QACN,KAAA,EAAO,qCAAA;AAAA,QACP,MAAA,EAAQ,sCAAA;AAAA,QACR,OAAA,EAAS;AAAA,OACX;AAAA,MACA,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,MAAA;AAAA,MACN,MAAA,EAAQ,QAAA;AAAA,MACR,KAAA,EAAO,SAAA;AAAA,MACP,KAAA,EAAO,MAAA;AAAA,MACP,OAAA,EAAS,QAAA;AAAA,MACT,KAAA,EAAO;AAAA;AACT;AAEJ;AAiBA,SAAS,SAAA,CAAU;AAAA,EACjB,SAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,GAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,GAAA;AAE9B,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,iBAAA,CAAkB;AAAA,UAChB,IAAA;AAAA,UACA,MAAA;AAAA,UACA,KAAA;AAAA,UACA,KAAA;AAAA,UACA,OAAA;AAAA,UACA,OAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA,QACD;AAAA,OACF;AAAA,MACA,YAAA,EAAY,QAAQ,EAAA,GAAK,MAAA;AAAA,MACzB,WAAA,EAAU,WAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-ARNVOHVW.js","sourcesContent":["import type { ParagraphProps } from \"./Paragraph.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst paragraphVariants = cva(\n \"font-[family-name:var(--paragraph-base-font-family)]\",\n {\n variants: {\n size: {\n xs: \"text-[length:var(--paragraph-size-xs-font-size)] leading-[var(--paragraph-size-xs-line-height)]\",\n sm: \"text-[length:var(--paragraph-size-sm-font-size)] leading-[var(--paragraph-size-sm-line-height)]\",\n base: \"text-[length:var(--paragraph-size-base-font-size)] leading-[var(--paragraph-size-base-line-height)]\",\n lg: \"text-[length:var(--paragraph-size-lg-font-size)] leading-[var(--paragraph-size-lg-line-height)]\",\n xl: \"text-[length:var(--paragraph-size-xl-font-size)] leading-[var(--paragraph-size-xl-line-height)]\",\n },\n weight: {\n normal: \"font-[var(--paragraph-weight-normal)]\",\n medium: \"font-[var(--paragraph-weight-medium)]\",\n semibold: \"font-[var(--paragraph-weight-semibold)]\",\n bold: \"font-[var(--paragraph-weight-bold)]\",\n },\n color: {\n default: \"text-[color:var(--paragraph-color-default)]\",\n muted: \"text-[color:var(--paragraph-color-muted)]\",\n primary: \"text-[color:var(--paragraph-color-primary)]\",\n destructive: \"text-[color:var(--paragraph-color-destructive)]\",\n success: \"text-[color:var(--paragraph-color-success)]\",\n },\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n justify: \"text-justify\",\n },\n leading: {\n tight: \"leading-tight\",\n snug: \"leading-snug\",\n normal: \"leading-normal\",\n relaxed: \"leading-relaxed\",\n loose: \"leading-loose\",\n },\n spacing: {\n none: \"mb-[var(--paragraph-spacing-none)]\",\n tight: \"mb-[var(--paragraph-spacing-tight)]\",\n normal: \"mb-[var(--paragraph-spacing-normal)]\",\n relaxed: \"mb-[var(--paragraph-spacing-relaxed)]\",\n },\n prose: {\n true: \"max-w-prose\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"base\",\n weight: \"normal\",\n color: \"default\",\n align: \"left\",\n spacing: \"normal\",\n prose: false,\n },\n }\n)\n\n/**\n * Paragraph - Componente de paragrafo para blocos de texto.\n *\n * Suporta diferentes tamanhos, pesos, cores, alinhamentos e espacamentos.\n *\n * @example\n * // Paragrafo basico\n * <Paragraph>Texto do paragrafo</Paragraph>\n *\n * @example\n * // Paragrafo com estilo personalizado\n * <Paragraph size=\"lg\" weight=\"medium\" color=\"muted\">\n * Texto destacado\n * </Paragraph>\n */\nfunction Paragraph({\n className,\n size,\n weight,\n color,\n align,\n leading,\n spacing,\n prose,\n asChild = false,\n ref,\n ...props\n}: ParagraphProps) {\n const Comp = asChild ? Slot : \"p\"\n\n return (\n <Comp\n ref={ref}\n className={cn(\n paragraphVariants({\n size,\n weight,\n color,\n align,\n leading,\n spacing,\n prose,\n }),\n className\n )}\n data-prose={prose ? \"\" : undefined}\n data-slot=\"paragraph\"\n {...props}\n />\n )\n}\n\nexport { Paragraph, paragraphVariants }\n"]}
1
+ {"version":3,"sources":["../src/components/primitives/Paragraph/Paragraph.tsx"],"names":[],"mappings":";;;;;AAOA,IAAM,iBAAA,GAAoB,GAAA;AAAA,EACxB,sDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,iGAAA;AAAA,QACJ,EAAA,EAAI,iGAAA;AAAA,QACJ,IAAA,EAAM,qGAAA;AAAA,QACN,EAAA,EAAI,iGAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,MAAA,EAAQ,uCAAA;AAAA,QACR,MAAA,EAAQ,uCAAA;AAAA,QACR,QAAA,EAAU,yCAAA;AAAA,QACV,IAAA,EAAM;AAAA,OACR;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,6CAAA;AAAA,QACT,KAAA,EAAO,2CAAA;AAAA,QACP,OAAA,EAAS,6CAAA;AAAA,QACT,WAAA,EAAa,iDAAA;AAAA,QACb,OAAA,EAAS;AAAA,OACX;AAAA,MACA,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,WAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,KAAA,EAAO,YAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,MACA,OAAA,EAAS;AAAA,QACP,KAAA,EAAO,eAAA;AAAA,QACP,IAAA,EAAM,cAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,OAAA,EAAS,iBAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,oCAAA;AAAA,QACN,KAAA,EAAO,qCAAA;AAAA,QACP,MAAA,EAAQ,sCAAA;AAAA,QACR,OAAA,EAAS;AAAA,OACX;AAAA,MACA,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,MAAA;AAAA,MACN,MAAA,EAAQ,QAAA;AAAA,MACR,KAAA,EAAO,SAAA;AAAA,MACP,KAAA,EAAO,MAAA;AAAA,MACP,OAAA,EAAS,QAAA;AAAA,MACT,KAAA,EAAO;AAAA;AACT;AAEJ;AAiBA,SAAS,SAAA,CAAU;AAAA,EACjB,SAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,GAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,GAAA;AAE9B,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,iBAAA,CAAkB;AAAA,UAChB,IAAA;AAAA,UACA,MAAA;AAAA,UACA,KAAA;AAAA,UACA,KAAA;AAAA,UACA,OAAA;AAAA,UACA,OAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA,QACD;AAAA,OACF;AAAA,MACA,YAAA,EAAY,QAAQ,EAAA,GAAK,MAAA;AAAA,MACzB,WAAA,EAAU,WAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-S4P7JIQ2.js","sourcesContent":["import type { ParagraphProps } from \"./Paragraph.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst paragraphVariants = cva(\n \"font-[family-name:var(--paragraph-base-font-family)]\",\n {\n variants: {\n size: {\n xs: \"text-[length:var(--paragraph-size-xs-font-size)] leading-[var(--paragraph-size-xs-line-height)]\",\n sm: \"text-[length:var(--paragraph-size-sm-font-size)] leading-[var(--paragraph-size-sm-line-height)]\",\n base: \"text-[length:var(--paragraph-size-base-font-size)] leading-[var(--paragraph-size-base-line-height)]\",\n lg: \"text-[length:var(--paragraph-size-lg-font-size)] leading-[var(--paragraph-size-lg-line-height)]\",\n xl: \"text-[length:var(--paragraph-size-xl-font-size)] leading-[var(--paragraph-size-xl-line-height)]\",\n },\n weight: {\n normal: \"font-[var(--paragraph-weight-normal)]\",\n medium: \"font-[var(--paragraph-weight-medium)]\",\n semibold: \"font-[var(--paragraph-weight-semibold)]\",\n bold: \"font-[var(--paragraph-weight-bold)]\",\n },\n color: {\n default: \"text-[color:var(--paragraph-color-default)]\",\n muted: \"text-[color:var(--paragraph-color-muted)]\",\n primary: \"text-[color:var(--paragraph-color-primary)]\",\n destructive: \"text-[color:var(--paragraph-color-destructive)]\",\n success: \"text-[color:var(--paragraph-color-success)]\",\n },\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n justify: \"text-justify\",\n },\n leading: {\n tight: \"leading-tight\",\n snug: \"leading-snug\",\n normal: \"leading-normal\",\n relaxed: \"leading-relaxed\",\n loose: \"leading-loose\",\n },\n spacing: {\n none: \"mb-[var(--paragraph-spacing-none)]\",\n tight: \"mb-[var(--paragraph-spacing-tight)]\",\n normal: \"mb-[var(--paragraph-spacing-normal)]\",\n relaxed: \"mb-[var(--paragraph-spacing-relaxed)]\",\n },\n prose: {\n true: \"max-w-prose\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"base\",\n weight: \"normal\",\n color: \"default\",\n align: \"left\",\n spacing: \"normal\",\n prose: false,\n },\n }\n)\n\n/**\n * Paragraph - Componente de paragrafo para blocos de texto.\n *\n * Suporta diferentes tamanhos, pesos, cores, alinhamentos e espacamentos.\n *\n * @example\n * // Paragrafo basico\n * <Paragraph>Texto do paragrafo</Paragraph>\n *\n * @example\n * // Paragrafo com estilo personalizado\n * <Paragraph size=\"lg\" weight=\"medium\" color=\"muted\">\n * Texto destacado\n * </Paragraph>\n */\nfunction Paragraph({\n className,\n size,\n weight,\n color,\n align,\n leading,\n spacing,\n prose,\n asChild = false,\n ref,\n ...props\n}: ParagraphProps) {\n const Comp = asChild ? Slot : \"p\"\n\n return (\n <Comp\n ref={ref}\n className={cn(\n paragraphVariants({\n size,\n weight,\n color,\n align,\n leading,\n spacing,\n prose,\n }),\n className\n )}\n data-prose={prose ? \"\" : undefined}\n data-slot=\"paragraph\"\n {...props}\n />\n )\n}\n\nexport { Paragraph, paragraphVariants }\n"]}
@@ -1,5 +1,5 @@
1
- import { Badge } from './chunk-6ABGMOE2.js';
2
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { Badge } from './chunk-HNQX6ZG7.js';
2
+ import { cn } from './chunk-RVAYDRMA.js';
3
3
  import { useRef, useState, useId, useCallback } from 'react';
4
4
  import { cva } from 'class-variance-authority';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -195,5 +195,5 @@ function TagsInput({
195
195
  }
196
196
 
197
197
  export { TagsInput, tagsInputInputVariants, tagsInputVariants };
198
- //# sourceMappingURL=chunk-AKRVZ2YW.js.map
199
- //# sourceMappingURL=chunk-AKRVZ2YW.js.map
198
+ //# sourceMappingURL=chunk-S6BREP2G.js.map
199
+ //# sourceMappingURL=chunk-S6BREP2G.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/TagsInput/TagsInput.variants.ts","../src/components/forms/TagsInput/TagsInput.tsx"],"names":[],"mappings":"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","file":"chunk-AKRVZ2YW.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * TagsInput container variant styles using CVA\n */\nexport const tagsInputVariants = cva(\n [\n \"flex flex-wrap items-center gap-1.5 w-full min-w-0 rounded-[var(--tags-input-root-radius)] border bg-transparent transition-[color,box-shadow] outline-none\",\n \"dark:bg-input/30\",\n \"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]\",\n \"aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n ],\n {\n variants: {\n size: {\n sm: \"min-h-8 px-2 py-1 text-sm\",\n md: \"min-h-9 px-3 py-1.5 text-base md:text-sm\",\n lg: \"min-h-10 px-3.5 py-2 text-base\",\n },\n variant: {\n default: \"border-[color:var(--tags-input-root-border)] shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * TagsInput inner input variant styles\n */\nexport const tagsInputInputVariants = cva(\n [\n \"flex-1 min-w-24 bg-[color:var(--tags-input-input-background)] outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n size: {\n sm: \"text-sm h-5\",\n md: \"text-base md:text-sm h-5\",\n lg: \"text-base h-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type TagsInputVariantProps = VariantProps<typeof tagsInputVariants>\nexport type TagsInputInputVariantProps = VariantProps<typeof tagsInputInputVariants>\n","\"use client\"\n\nimport type { TagsInputProps } from \"./TagsInput.types\"\n\nimport * as React from \"react\"\nimport { useCallback, useId, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { tagsInputInputVariants, tagsInputVariants } from \"./TagsInput.variants\"\n\n/**\n * TagsInput - A multi-tag input component for entering and managing tags\n *\n * @example\n * ```tsx\n * // Uncontrolled\n * <TagsInput\n * defaultValue={[\"react\", \"typescript\"]}\n * placeholder=\"Add tags...\"\n * />\n *\n * // Controlled\n * const [tags, setTags] = useState([\"hello\"])\n * <TagsInput\n * value={tags}\n * onChange={setTags}\n * maxTags={5}\n * />\n * ```\n */\nfunction TagsInput({\n value: controlledValue,\n defaultValue = [],\n onChange,\n onTagAdd,\n onTagRemove,\n placeholder = \"Add tag...\",\n maxTags,\n allowDuplicates = false,\n disabled,\n size = \"md\",\n variant,\n invalid,\n delimiters = [\",\"],\n className,\n ...props\n}: TagsInputProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [inputValue, setInputValue] = useState(\"\")\n const [internalTags, setInternalTags] = useState<string[]>(defaultValue)\n const id = useId()\n\n // Determine if controlled or uncontrolled\n const isControlled = controlledValue !== undefined\n const tags = isControlled ? controlledValue : internalTags\n\n const updateTags = useCallback(\n (newTags: string[]) => {\n if (!isControlled) {\n setInternalTags(newTags)\n }\n onChange?.(newTags)\n },\n [isControlled, onChange]\n )\n\n const addTag = useCallback(\n (tag: string) => {\n const trimmedTag = tag.trim()\n if (!trimmedTag) return\n\n // Check for duplicates\n if (!allowDuplicates && tags.includes(trimmedTag)) {\n setInputValue(\"\")\n return\n }\n\n // Check max tags\n if (maxTags && tags.length >= maxTags) {\n setInputValue(\"\")\n return\n }\n\n const newTags = [...tags, trimmedTag]\n updateTags(newTags)\n onTagAdd?.(trimmedTag)\n setInputValue(\"\")\n },\n [tags, allowDuplicates, maxTags, updateTags, onTagAdd]\n )\n\n const removeTag = useCallback(\n (tagToRemove: string) => {\n const newTags = tags.filter((tag) => tag !== tagToRemove)\n updateTags(newTags)\n onTagRemove?.(tagToRemove)\n },\n [tags, updateTags, onTagRemove]\n )\n\n const removeLastTag = useCallback(() => {\n const lastTag = tags[tags.length - 1]\n if (lastTag) {\n removeTag(lastTag)\n }\n }, [tags, removeTag])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\" || delimiters.includes(e.key)) {\n e.preventDefault()\n addTag(inputValue)\n } else if (e.key === \"Backspace\" && inputValue === \"\" && tags.length > 0) {\n removeLastTag()\n }\n },\n [inputValue, tags.length, addTag, removeLastTag, delimiters]\n )\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n\n // Check if any delimiter is in the pasted/typed value\n for (const delimiter of delimiters) {\n if (value.includes(delimiter)) {\n const parts = value.split(delimiter)\n parts.forEach((part, index) => {\n if (index < parts.length - 1) {\n addTag(part)\n } else {\n setInputValue(part)\n }\n })\n return\n }\n }\n\n setInputValue(value)\n },\n [delimiters, addTag]\n )\n\n const handleContainerClick = useCallback(() => {\n inputRef.current?.focus()\n }, [])\n\n // Map size to Tag size\n const tagSize = size === \"lg\" ? \"default\" : \"sm\"\n\n return (\n <div\n aria-disabled={disabled ?? undefined}\n aria-invalid={invalid ?? undefined}\n className={cn(tagsInputVariants({ size, variant }), className)}\n data-slot=\"tags-input\"\n onClick={handleContainerClick}\n {...props}\n >\n {tags.map((tag, index) => (\n <Badge\n key={`${tag}-${String(index)}`}\n color=\"muted\"\n size={tagSize}\n type=\"pill-color\"\n onDismiss={disabled ? undefined : () => { removeTag(tag); }}\n >\n {tag}\n </Badge>\n ))}\n <input\n ref={inputRef}\n aria-label=\"Add tag\"\n className={tagsInputInputVariants({ size })}\n data-slot=\"tags-input-field\"\n disabled={disabled}\n id={id}\n placeholder={tags.length === 0 ? placeholder : undefined}\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n )\n}\n\nexport { TagsInput }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/TagsInput/TagsInput.variants.ts","../src/components/forms/TagsInput/TagsInput.tsx"],"names":[],"mappings":"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","file":"chunk-S6BREP2G.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * TagsInput container variant styles using CVA\n */\nexport const tagsInputVariants = cva(\n [\n \"flex flex-wrap items-center gap-1.5 w-full min-w-0 rounded-[var(--tags-input-root-radius)] border bg-transparent transition-[color,box-shadow] outline-none\",\n \"dark:bg-input/30\",\n \"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]\",\n \"aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n ],\n {\n variants: {\n size: {\n sm: \"min-h-8 px-2 py-1 text-sm\",\n md: \"min-h-9 px-3 py-1.5 text-base md:text-sm\",\n lg: \"min-h-10 px-3.5 py-2 text-base\",\n },\n variant: {\n default: \"border-[color:var(--tags-input-root-border)] shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * TagsInput inner input variant styles\n */\nexport const tagsInputInputVariants = cva(\n [\n \"flex-1 min-w-24 bg-[color:var(--tags-input-input-background)] outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n size: {\n sm: \"text-sm h-5\",\n md: \"text-base md:text-sm h-5\",\n lg: \"text-base h-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type TagsInputVariantProps = VariantProps<typeof tagsInputVariants>\nexport type TagsInputInputVariantProps = VariantProps<typeof tagsInputInputVariants>\n","\"use client\"\n\nimport type { TagsInputProps } from \"./TagsInput.types\"\n\nimport * as React from \"react\"\nimport { useCallback, useId, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { tagsInputInputVariants, tagsInputVariants } from \"./TagsInput.variants\"\n\n/**\n * TagsInput - A multi-tag input component for entering and managing tags\n *\n * @example\n * ```tsx\n * // Uncontrolled\n * <TagsInput\n * defaultValue={[\"react\", \"typescript\"]}\n * placeholder=\"Add tags...\"\n * />\n *\n * // Controlled\n * const [tags, setTags] = useState([\"hello\"])\n * <TagsInput\n * value={tags}\n * onChange={setTags}\n * maxTags={5}\n * />\n * ```\n */\nfunction TagsInput({\n value: controlledValue,\n defaultValue = [],\n onChange,\n onTagAdd,\n onTagRemove,\n placeholder = \"Add tag...\",\n maxTags,\n allowDuplicates = false,\n disabled,\n size = \"md\",\n variant,\n invalid,\n delimiters = [\",\"],\n className,\n ...props\n}: TagsInputProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [inputValue, setInputValue] = useState(\"\")\n const [internalTags, setInternalTags] = useState<string[]>(defaultValue)\n const id = useId()\n\n // Determine if controlled or uncontrolled\n const isControlled = controlledValue !== undefined\n const tags = isControlled ? controlledValue : internalTags\n\n const updateTags = useCallback(\n (newTags: string[]) => {\n if (!isControlled) {\n setInternalTags(newTags)\n }\n onChange?.(newTags)\n },\n [isControlled, onChange]\n )\n\n const addTag = useCallback(\n (tag: string) => {\n const trimmedTag = tag.trim()\n if (!trimmedTag) return\n\n // Check for duplicates\n if (!allowDuplicates && tags.includes(trimmedTag)) {\n setInputValue(\"\")\n return\n }\n\n // Check max tags\n if (maxTags && tags.length >= maxTags) {\n setInputValue(\"\")\n return\n }\n\n const newTags = [...tags, trimmedTag]\n updateTags(newTags)\n onTagAdd?.(trimmedTag)\n setInputValue(\"\")\n },\n [tags, allowDuplicates, maxTags, updateTags, onTagAdd]\n )\n\n const removeTag = useCallback(\n (tagToRemove: string) => {\n const newTags = tags.filter((tag) => tag !== tagToRemove)\n updateTags(newTags)\n onTagRemove?.(tagToRemove)\n },\n [tags, updateTags, onTagRemove]\n )\n\n const removeLastTag = useCallback(() => {\n const lastTag = tags[tags.length - 1]\n if (lastTag) {\n removeTag(lastTag)\n }\n }, [tags, removeTag])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\" || delimiters.includes(e.key)) {\n e.preventDefault()\n addTag(inputValue)\n } else if (e.key === \"Backspace\" && inputValue === \"\" && tags.length > 0) {\n removeLastTag()\n }\n },\n [inputValue, tags.length, addTag, removeLastTag, delimiters]\n )\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n\n // Check if any delimiter is in the pasted/typed value\n for (const delimiter of delimiters) {\n if (value.includes(delimiter)) {\n const parts = value.split(delimiter)\n parts.forEach((part, index) => {\n if (index < parts.length - 1) {\n addTag(part)\n } else {\n setInputValue(part)\n }\n })\n return\n }\n }\n\n setInputValue(value)\n },\n [delimiters, addTag]\n )\n\n const handleContainerClick = useCallback(() => {\n inputRef.current?.focus()\n }, [])\n\n // Map size to Tag size\n const tagSize = size === \"lg\" ? \"default\" : \"sm\"\n\n return (\n <div\n aria-disabled={disabled ?? undefined}\n aria-invalid={invalid ?? undefined}\n className={cn(tagsInputVariants({ size, variant }), className)}\n data-slot=\"tags-input\"\n onClick={handleContainerClick}\n {...props}\n >\n {tags.map((tag, index) => (\n <Badge\n key={`${tag}-${String(index)}`}\n color=\"muted\"\n size={tagSize}\n type=\"pill-color\"\n onDismiss={disabled ? undefined : () => { removeTag(tag); }}\n >\n {tag}\n </Badge>\n ))}\n <input\n ref={inputRef}\n aria-label=\"Add tag\"\n className={tagsInputInputVariants({ size })}\n data-slot=\"tags-input-field\"\n disabled={disabled}\n id={id}\n placeholder={tags.length === 0 ? placeholder : undefined}\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n )\n}\n\nexport { TagsInput }\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import * as React from 'react';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -184,5 +184,5 @@ TabNavigation.displayName = "TabNavigation";
184
184
  TabNavigationLink.displayName = "TabNavigationLink";
185
185
 
186
186
  export { TabNavigation, TabNavigationLink, tabNavigationLinkVariants, tabNavigationVariants };
187
- //# sourceMappingURL=chunk-Y5GO2F6P.js.map
188
- //# sourceMappingURL=chunk-Y5GO2F6P.js.map
187
+ //# sourceMappingURL=chunk-SA3IQI3Y.js.map
188
+ //# sourceMappingURL=chunk-SA3IQI3Y.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/navigation/TabNavigation/TabNavigation.variants.ts","../src/components/navigation/TabNavigation/TabNavigation.tsx"],"names":[],"mappings":"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","file":"chunk-Y5GO2F6P.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * TabNavigation container variants\n */\nexport const tabNavigationVariants = cva(\n [\n \"flex items-center gap-1\",\n \"overflow-x-auto scrollbar-none\",\n ],\n {\n defaultVariants: {\n variant: \"line\",\n },\n variants: {\n variant: {\n line: [\n \"border-b border-border\",\n ],\n solid: [\n \"rounded-lg bg-muted p-1\",\n ],\n },\n },\n }\n)\n\n/**\n * TabNavigationLink variants\n */\nexport const tabNavigationLinkVariants = cva(\n [\n \"inline-flex items-center justify-center gap-2\",\n \"whitespace-nowrap text-sm font-medium\",\n \"transition-all duration-200\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n ],\n {\n compoundVariants: [\n // Line variant - active state\n {\n active: true,\n variant: \"line\",\n class: [\n \"border-b-2 border-primary text-foreground\",\n ],\n },\n // Line variant - inactive state\n {\n active: false,\n variant: \"line\",\n class: [\n \"border-b-2 border-transparent text-muted-foreground\",\n \"hover:text-foreground hover:border-border\",\n ],\n },\n // Solid variant - active state\n {\n active: true,\n variant: \"solid\",\n class: [\n \"bg-background text-foreground shadow-sm\",\n ],\n },\n // Solid variant - inactive state\n {\n active: false,\n variant: \"solid\",\n class: [\n \"text-muted-foreground\",\n \"hover:text-foreground hover:bg-background/50\",\n ],\n },\n ],\n defaultVariants: {\n active: false,\n variant: \"line\",\n },\n variants: {\n active: {\n false: \"\",\n true: \"\",\n },\n variant: {\n line: [\n \"px-3 py-2 -mb-px\",\n ],\n solid: [\n \"px-3 py-1.5 rounded-md\",\n ],\n },\n },\n }\n)\n","\"use client\"\n\nimport type {\n TabNavigationLinkProps,\n TabNavigationProps,\n TabNavigationVariant,\n} from \"./TabNavigation.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n tabNavigationLinkVariants,\n tabNavigationVariants,\n} from \"./TabNavigation.variants\"\n\n/**\n * Context for TabNavigation\n */\ninterface TabNavigationContextValue {\n activeValue: string | undefined\n onValueChange: ((value: string) => void) | undefined\n variant: TabNavigationVariant\n}\n\nconst TabNavigationContext = React.createContext<TabNavigationContextValue>({\n activeValue: undefined,\n onValueChange: undefined,\n variant: \"line\",\n})\n\n/**\n * TabNavigation - Link-based tab navigation\n *\n * A horizontal navigation component styled like tabs but using links\n * for navigation. Unlike regular Tabs which manage content switching,\n * TabNavigation is meant for actual page/route navigation.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <TabNavigation defaultValue=\"dashboard\">\n * <TabNavigationLink value=\"dashboard\" href=\"/dashboard\">\n * Dashboard\n * </TabNavigationLink>\n * <TabNavigationLink value=\"reports\" href=\"/reports\">\n * Reports\n * </TabNavigationLink>\n * <TabNavigationLink value=\"settings\" href=\"/settings\">\n * Settings\n * </TabNavigationLink>\n * </TabNavigation>\n *\n * // Controlled with router\n * const pathname = usePathname()\n *\n * <TabNavigation value={pathname}>\n * <TabNavigationLink value=\"/dashboard\" href=\"/dashboard\">\n * Dashboard\n * </TabNavigationLink>\n * <TabNavigationLink value=\"/reports\" href=\"/reports\">\n * Reports\n * </TabNavigationLink>\n * </TabNavigation>\n *\n * // Solid variant\n * <TabNavigation variant=\"solid\" defaultValue=\"tab1\">\n * <TabNavigationLink value=\"tab1\" href=\"/tab1\">Tab 1</TabNavigationLink>\n * <TabNavigationLink value=\"tab2\" href=\"/tab2\">Tab 2</TabNavigationLink>\n * </TabNavigation>\n *\n * // With icons\n * <TabNavigation defaultValue=\"home\">\n * <TabNavigationLink value=\"home\" href=\"/\" icon={<HomeIcon />}>\n * Home\n * </TabNavigationLink>\n * <TabNavigationLink value=\"settings\" href=\"/settings\" icon={<SettingsIcon />}>\n * Settings\n * </TabNavigationLink>\n * </TabNavigation>\n * ```\n */\nfunction TabNavigation({\n children,\n className,\n defaultValue,\n onValueChange,\n value: controlledValue,\n variant = \"line\",\n ...props\n}: TabNavigationProps) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue)\n\n const isControlled = controlledValue !== undefined\n const activeValue = isControlled ? controlledValue : uncontrolledValue\n\n const handleValueChange = React.useCallback(\n (newValue: string) => {\n if (!isControlled) {\n setUncontrolledValue(newValue)\n }\n onValueChange?.(newValue)\n },\n [isControlled, onValueChange]\n )\n\n const contextValue = React.useMemo<TabNavigationContextValue>(\n () => ({\n activeValue,\n onValueChange: handleValueChange,\n variant,\n }),\n [activeValue, handleValueChange, variant]\n )\n\n return (\n <TabNavigationContext value={contextValue}>\n <nav\n aria-label=\"Tab navigation\"\n className={cn(tabNavigationVariants({ variant }), className)}\n data-slot=\"tab-navigation\"\n role=\"navigation\"\n {...props}\n >\n {children}\n </nav>\n </TabNavigationContext>\n )\n}\n\n/**\n * TabNavigationLink - Individual navigation link within TabNavigation\n *\n * Renders as an anchor tag for navigation. Can be used with or without href\n * for SPA frameworks that handle navigation differently.\n */\nfunction TabNavigationLink({\n active: activeProp,\n children,\n className,\n disabled = false,\n href,\n icon,\n onClick,\n value,\n ...props\n}: TabNavigationLinkProps) {\n const { activeValue, onValueChange, variant } = React.use(TabNavigationContext)\n\n // Determine if this link is active\n const isActive = activeProp ?? activeValue === value\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n e.preventDefault()\n return\n }\n\n // Update active value\n onValueChange?.(value)\n\n // Call custom onClick handler\n onClick?.(e)\n }\n\n return (\n <a\n className={cn(\n tabNavigationLinkVariants({ active: isActive, variant }),\n disabled && \"pointer-events-none opacity-50\",\n className\n )}\n aria-current={isActive ? \"page\" : undefined}\n aria-disabled={disabled}\n data-active={isActive}\n data-slot=\"tab-navigation-link\"\n href={disabled ? undefined : href}\n role=\"link\"\n tabIndex={disabled ? -1 : 0}\n onClick={handleClick}\n {...props}\n >\n {icon && (\n <span className=\"size-4 shrink-0\" data-slot=\"tab-navigation-icon\">\n {icon}\n </span>\n )}\n {children}\n </a>\n )\n}\n\nTabNavigation.displayName = \"TabNavigation\"\nTabNavigationLink.displayName = \"TabNavigationLink\"\n\nexport { TabNavigation, TabNavigationLink }\n"]}
1
+ {"version":3,"sources":["../src/components/navigation/TabNavigation/TabNavigation.variants.ts","../src/components/navigation/TabNavigation/TabNavigation.tsx"],"names":[],"mappings":";;;;;AAKO,IAAM,qBAAA,GAAwB,GAAA;AAAA,EACnC;AAAA,IACE,yBAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA,KACX;AAAA,IACA,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM;AAAA,UACJ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL;AAAA;AACF;AACF;AACF;AAEJ;AAKO,IAAM,yBAAA,GAA4B,GAAA;AAAA,EACvC;AAAA,IACE,+CAAA;AAAA,IACA,uCAAA;AAAA,IACA,6BAAA;AAAA,IACA,qGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,gBAAA,EAAkB;AAAA;AAAA,MAEhB;AAAA,QACE,MAAA,EAAQ,IAAA;AAAA,QACR,OAAA,EAAS,MAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL;AAAA;AACF,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,MAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,qDAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,IAAA;AAAA,QACR,OAAA,EAAS,OAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL;AAAA;AACF,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,OAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,uBAAA;AAAA,UACA;AAAA;AACF;AACF,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,MAAA,EAAQ,KAAA;AAAA,MACR,OAAA,EAAS;AAAA,KACX;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,QACN,KAAA,EAAO,EAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM;AAAA,UACJ;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL;AAAA;AACF;AACF;AACF;AAEJ;ACrEA,IAAM,uBAA6B,KAAA,CAAA,aAAA,CAAyC;AAAA,EAC1E,WAAA,EAAa,MAAA;AAAA,EACb,aAAA,EAAe,MAAA;AAAA,EACf,OAAA,EAAS;AACX,CAAC,CAAA;AAqDD,SAAS,aAAA,CAAc;AAAA,EACrB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,OAAA,GAAU,MAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAU,eAAS,YAAY,CAAA;AAE7E,EAAA,MAAM,eAAe,eAAA,KAAoB,MAAA;AACzC,EAAA,MAAM,WAAA,GAAc,eAAe,eAAA,GAAkB,iBAAA;AAErD,EAAA,MAAM,iBAAA,GAA0B,KAAA,CAAA,WAAA;AAAA,IAC9B,CAAC,QAAA,KAAqB;AACpB,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,oBAAA,CAAqB,QAAQ,CAAA;AAAA,MAC/B;AACA,MAAA,aAAA,GAAgB,QAAQ,CAAA;AAAA,IAC1B,CAAA;AAAA,IACA,CAAC,cAAc,aAAa;AAAA,GAC9B;AAEA,EAAA,MAAM,YAAA,GAAqB,KAAA,CAAA,OAAA;AAAA,IACzB,OAAO;AAAA,MACL,WAAA;AAAA,MACA,aAAA,EAAe,iBAAA;AAAA,MACf;AAAA,KACF,CAAA;AAAA,IACA,CAAC,WAAA,EAAa,iBAAA,EAAmB,OAAO;AAAA,GAC1C;AAEA,EAAA,uBACE,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAW,gBAAA;AAAA,MACX,WAAW,EAAA,CAAG,qBAAA,CAAsB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MAC3D,WAAA,EAAU,gBAAA;AAAA,MACV,IAAA,EAAK,YAAA;AAAA,MACJ,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAQA,SAAS,iBAAA,CAAkB;AAAA,EACzB,MAAA,EAAQ,UAAA;AAAA,EACR,QAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,IAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA2B;AACzB,EAAA,MAAM,EAAE,WAAA,EAAa,aAAA,EAAe,OAAA,EAAQ,GAAU,UAAI,oBAAoB,CAAA;AAG9E,EAAA,MAAM,QAAA,GAAW,cAAc,WAAA,KAAgB,KAAA;AAE/C,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA2C;AAC9D,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA;AAAA,IACF;AAGA,IAAA,aAAA,GAAgB,KAAK,CAAA;AAGrB,IAAA,OAAA,GAAU,CAAC,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,yBAAA,CAA0B,EAAE,MAAA,EAAQ,QAAA,EAAU,SAAS,CAAA;AAAA,QACvD,QAAA,IAAY,gCAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,MAClC,eAAA,EAAe,QAAA;AAAA,MACf,aAAA,EAAa,QAAA;AAAA,MACb,WAAA,EAAU,qBAAA;AAAA,MACV,IAAA,EAAM,WAAW,MAAA,GAAY,IAAA;AAAA,MAC7B,IAAA,EAAK,MAAA;AAAA,MACL,QAAA,EAAU,WAAW,EAAA,GAAK,CAAA;AAAA,MAC1B,OAAA,EAAS,WAAA;AAAA,MACR,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA,wBACE,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAkB,WAAA,EAAU,uBACzC,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,QAED;AAAA;AAAA;AAAA,GACH;AAEJ;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAC5B,iBAAA,CAAkB,WAAA,GAAc,mBAAA","file":"chunk-SA3IQI3Y.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * TabNavigation container variants\n */\nexport const tabNavigationVariants = cva(\n [\n \"flex items-center gap-1\",\n \"overflow-x-auto scrollbar-none\",\n ],\n {\n defaultVariants: {\n variant: \"line\",\n },\n variants: {\n variant: {\n line: [\n \"border-b border-border\",\n ],\n solid: [\n \"rounded-lg bg-muted p-1\",\n ],\n },\n },\n }\n)\n\n/**\n * TabNavigationLink variants\n */\nexport const tabNavigationLinkVariants = cva(\n [\n \"inline-flex items-center justify-center gap-2\",\n \"whitespace-nowrap text-sm font-medium\",\n \"transition-all duration-200\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n ],\n {\n compoundVariants: [\n // Line variant - active state\n {\n active: true,\n variant: \"line\",\n class: [\n \"border-b-2 border-primary text-foreground\",\n ],\n },\n // Line variant - inactive state\n {\n active: false,\n variant: \"line\",\n class: [\n \"border-b-2 border-transparent text-muted-foreground\",\n \"hover:text-foreground hover:border-border\",\n ],\n },\n // Solid variant - active state\n {\n active: true,\n variant: \"solid\",\n class: [\n \"bg-background text-foreground shadow-sm\",\n ],\n },\n // Solid variant - inactive state\n {\n active: false,\n variant: \"solid\",\n class: [\n \"text-muted-foreground\",\n \"hover:text-foreground hover:bg-background/50\",\n ],\n },\n ],\n defaultVariants: {\n active: false,\n variant: \"line\",\n },\n variants: {\n active: {\n false: \"\",\n true: \"\",\n },\n variant: {\n line: [\n \"px-3 py-2 -mb-px\",\n ],\n solid: [\n \"px-3 py-1.5 rounded-md\",\n ],\n },\n },\n }\n)\n","\"use client\"\n\nimport type {\n TabNavigationLinkProps,\n TabNavigationProps,\n TabNavigationVariant,\n} from \"./TabNavigation.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n tabNavigationLinkVariants,\n tabNavigationVariants,\n} from \"./TabNavigation.variants\"\n\n/**\n * Context for TabNavigation\n */\ninterface TabNavigationContextValue {\n activeValue: string | undefined\n onValueChange: ((value: string) => void) | undefined\n variant: TabNavigationVariant\n}\n\nconst TabNavigationContext = React.createContext<TabNavigationContextValue>({\n activeValue: undefined,\n onValueChange: undefined,\n variant: \"line\",\n})\n\n/**\n * TabNavigation - Link-based tab navigation\n *\n * A horizontal navigation component styled like tabs but using links\n * for navigation. Unlike regular Tabs which manage content switching,\n * TabNavigation is meant for actual page/route navigation.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <TabNavigation defaultValue=\"dashboard\">\n * <TabNavigationLink value=\"dashboard\" href=\"/dashboard\">\n * Dashboard\n * </TabNavigationLink>\n * <TabNavigationLink value=\"reports\" href=\"/reports\">\n * Reports\n * </TabNavigationLink>\n * <TabNavigationLink value=\"settings\" href=\"/settings\">\n * Settings\n * </TabNavigationLink>\n * </TabNavigation>\n *\n * // Controlled with router\n * const pathname = usePathname()\n *\n * <TabNavigation value={pathname}>\n * <TabNavigationLink value=\"/dashboard\" href=\"/dashboard\">\n * Dashboard\n * </TabNavigationLink>\n * <TabNavigationLink value=\"/reports\" href=\"/reports\">\n * Reports\n * </TabNavigationLink>\n * </TabNavigation>\n *\n * // Solid variant\n * <TabNavigation variant=\"solid\" defaultValue=\"tab1\">\n * <TabNavigationLink value=\"tab1\" href=\"/tab1\">Tab 1</TabNavigationLink>\n * <TabNavigationLink value=\"tab2\" href=\"/tab2\">Tab 2</TabNavigationLink>\n * </TabNavigation>\n *\n * // With icons\n * <TabNavigation defaultValue=\"home\">\n * <TabNavigationLink value=\"home\" href=\"/\" icon={<HomeIcon />}>\n * Home\n * </TabNavigationLink>\n * <TabNavigationLink value=\"settings\" href=\"/settings\" icon={<SettingsIcon />}>\n * Settings\n * </TabNavigationLink>\n * </TabNavigation>\n * ```\n */\nfunction TabNavigation({\n children,\n className,\n defaultValue,\n onValueChange,\n value: controlledValue,\n variant = \"line\",\n ...props\n}: TabNavigationProps) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue)\n\n const isControlled = controlledValue !== undefined\n const activeValue = isControlled ? controlledValue : uncontrolledValue\n\n const handleValueChange = React.useCallback(\n (newValue: string) => {\n if (!isControlled) {\n setUncontrolledValue(newValue)\n }\n onValueChange?.(newValue)\n },\n [isControlled, onValueChange]\n )\n\n const contextValue = React.useMemo<TabNavigationContextValue>(\n () => ({\n activeValue,\n onValueChange: handleValueChange,\n variant,\n }),\n [activeValue, handleValueChange, variant]\n )\n\n return (\n <TabNavigationContext value={contextValue}>\n <nav\n aria-label=\"Tab navigation\"\n className={cn(tabNavigationVariants({ variant }), className)}\n data-slot=\"tab-navigation\"\n role=\"navigation\"\n {...props}\n >\n {children}\n </nav>\n </TabNavigationContext>\n )\n}\n\n/**\n * TabNavigationLink - Individual navigation link within TabNavigation\n *\n * Renders as an anchor tag for navigation. Can be used with or without href\n * for SPA frameworks that handle navigation differently.\n */\nfunction TabNavigationLink({\n active: activeProp,\n children,\n className,\n disabled = false,\n href,\n icon,\n onClick,\n value,\n ...props\n}: TabNavigationLinkProps) {\n const { activeValue, onValueChange, variant } = React.use(TabNavigationContext)\n\n // Determine if this link is active\n const isActive = activeProp ?? activeValue === value\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n e.preventDefault()\n return\n }\n\n // Update active value\n onValueChange?.(value)\n\n // Call custom onClick handler\n onClick?.(e)\n }\n\n return (\n <a\n className={cn(\n tabNavigationLinkVariants({ active: isActive, variant }),\n disabled && \"pointer-events-none opacity-50\",\n className\n )}\n aria-current={isActive ? \"page\" : undefined}\n aria-disabled={disabled}\n data-active={isActive}\n data-slot=\"tab-navigation-link\"\n href={disabled ? undefined : href}\n role=\"link\"\n tabIndex={disabled ? -1 : 0}\n onClick={handleClick}\n {...props}\n >\n {icon && (\n <span className=\"size-4 shrink-0\" data-slot=\"tab-navigation-icon\">\n {icon}\n </span>\n )}\n {children}\n </a>\n )\n}\n\nTabNavigation.displayName = \"TabNavigation\"\nTabNavigationLink.displayName = \"TabNavigationLink\"\n\nexport { TabNavigation, TabNavigationLink }\n"]}
@@ -1,7 +1,7 @@
1
- import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-WBE6VQOO.js';
2
- import { TextInput } from './chunk-ZMUUEXVD.js';
3
- import { Button } from './chunk-X5XP5QVO.js';
4
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-5W3T767A.js';
2
+ import { TextInput } from './chunk-K4UCALQQ.js';
3
+ import { Button } from './chunk-L4OQ6BJ5.js';
4
+ import { cn } from './chunk-RVAYDRMA.js';
5
5
  import { X, PlusCircle, Trash2 } from 'lucide-react';
6
6
  import * as React from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -478,5 +478,5 @@ function FilterBuilder({
478
478
  FilterBuilder.displayName = "FilterBuilder";
479
479
 
480
480
  export { FilterBuilder, isFilterCondition, isFilterGroup };
481
- //# sourceMappingURL=chunk-56TC4CPT.js.map
482
- //# sourceMappingURL=chunk-56TC4CPT.js.map
481
+ //# sourceMappingURL=chunk-SKI25Q7O.js.map
482
+ //# sourceMappingURL=chunk-SKI25Q7O.js.map