@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/Combobox/Combobox.variants.ts","../src/components/forms/Combobox/Combobox.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-6KMRMXR6.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * ComboboxTrigger variant styles using CVA\n */\nexport const comboboxTriggerVariants = cva(\n // Base styles\n [\n \"flex w-fit items-center justify-between gap-[var(--combobox-trigger-gap)] rounded-[var(--combobox-trigger-radius)] border bg-transparent\",\n \"text-[length:var(--combobox-trigger-text)] whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none\",\n \"data-[placeholder]:text-muted-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"focus-visible:border-[color:var(--combobox-trigger-border-focus)] focus-visible:ring-[color:var(--combobox-trigger-ring-primary)]/50 focus-visible:ring-[length:var(--combobox-trigger-ring-width)]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"dark:bg-input/30 dark:hover:bg-input/50\",\n \"disabled:cursor-not-allowed disabled:bg-[color:var(--combobox-trigger-disabled-bg)] disabled:text-[color:var(--combobox-trigger-disabled-fg)] disabled:border-[color:var(--combobox-trigger-disabled-border)]\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--combobox-trigger-height-sm)] px-[var(--combobox-trigger-padding-x-sm)] py-[var(--combobox-trigger-padding-y-sm)] text-[length:var(--combobox-trigger-text-sm)]\",\n md: \"h-[var(--combobox-trigger-height-md)] px-[var(--combobox-trigger-padding-x-md)] py-[var(--combobox-trigger-padding-y-md)] text-[length:var(--combobox-trigger-text-md)]\",\n lg: \"h-[var(--combobox-trigger-height-lg)] px-[var(--combobox-trigger-padding-x-lg)] py-[var(--combobox-trigger-padding-y-lg)] text-[length:var(--combobox-trigger-text-lg)]\",\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 shadow-none\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * ComboboxContent variant styles using CVA\n */\nexport const comboboxContentVariants = cva(\n // Base styles\n [\n \"bg-[color:var(--combobox-content-bg)] text-[color:var(--combobox-content-fg)]\",\n \"z-50 w-[var(--combobox-content-min-width)] overflow-hidden rounded-[var(--combobox-content-radius)] border border-[color:var(--combobox-content-border)] shadow-[var(--combobox-content-shadow)] p-0\",\n // Animation classes\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * ComboboxInput variant styles using CVA\n */\nexport const comboboxInputVariants = cva(\n [\n \"flex h-9 w-full rounded-md bg-transparent py-3 text-sm outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * ComboboxItem variant styles using CVA\n */\nexport const comboboxItemVariants = cva(\n [\n \"relative flex cursor-default items-center gap-2 rounded-[var(--combobox-item-radius)] px-[var(--combobox-item-padding-x)] py-[var(--combobox-item-padding-y)] text-[length:var(--combobox-item-text)]\",\n \"outline-none select-none\",\n \"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n \"data-[selected=true]:bg-[color:var(--combobox-item-focus-bg)] data-[selected=true]:text-[color:var(--combobox-item-focus-fg)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * ComboboxEmpty variant styles using CVA\n */\nexport const comboboxEmptyVariants = cva(\n [\"py-6 text-center text-sm text-muted-foreground\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport type ComboboxTriggerVariantProps = VariantProps<typeof comboboxTriggerVariants>\nexport type ComboboxContentVariantProps = VariantProps<typeof comboboxContentVariants>\nexport type ComboboxInputVariantProps = VariantProps<typeof comboboxInputVariants>\nexport type ComboboxItemVariantProps = VariantProps<typeof comboboxItemVariants>\nexport type ComboboxEmptyVariantProps = VariantProps<typeof comboboxEmptyVariants>\n","import type { ComboboxProps } from \"./Combobox.types\"\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { CheckIcon, ChevronDownIcon, SearchIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n comboboxContentVariants,\n comboboxEmptyVariants,\n comboboxInputVariants,\n comboboxItemVariants,\n comboboxTriggerVariants,\n} from \"./Combobox.variants\"\n\n/**\n * Combobox - A searchable select component with keyboard navigation\n *\n * Uses Radix Popover for the dropdown container and cmdk (Command) for\n * search/filter functionality with full keyboard accessibility.\n *\n * @example\n * ```tsx\n * <Combobox\n * options={[\n * { value: \"apple\", label: \"Apple\" },\n * { value: \"banana\", label: \"Banana\" },\n * ]}\n * placeholder=\"Select a fruit...\"\n * onChange={(value) => console.log(value)}\n * />\n * ```\n */\nfunction Combobox({\n options,\n value: controlledValue,\n defaultValue,\n placeholder = \"Select an option...\",\n searchPlaceholder = \"Search...\",\n emptyMessage = \"No results found.\",\n disabled = false,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n onChange,\n onSearch,\n size = \"md\",\n variant = \"default\",\n kbdHint,\n className,\n ...props\n}: ComboboxProps) {\n // Handle controlled vs uncontrolled value\n const [internalValue, setInternalValue] = React.useState<string | undefined>(defaultValue)\n const value = controlledValue ?? internalValue\n\n // Handle controlled vs uncontrolled open state\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen)\n const open = controlledOpen ?? internalOpen\n\n // Search query state\n const [searchQuery, setSearchQuery] = React.useState(\"\")\n\n // Get the label for the currently selected value\n const selectedLabel = React.useMemo(() => {\n if (!value) return null\n const option = options.find((opt) => opt.value === value)\n return option?.label ?? null\n }, [value, options])\n\n // Handle open state changes\n const handleOpenChange = React.useCallback(\n (newOpen: boolean) => {\n if (controlledOpen === undefined) {\n setInternalOpen(newOpen)\n }\n onOpenChange?.(newOpen)\n\n // Clear search when closing\n if (!newOpen) {\n setSearchQuery(\"\")\n }\n },\n [controlledOpen, onOpenChange]\n )\n\n // Handle value selection\n const handleSelect = React.useCallback(\n (selectedValue: string) => {\n if (controlledValue === undefined) {\n setInternalValue(selectedValue)\n }\n onChange?.(selectedValue)\n handleOpenChange(false)\n },\n [controlledValue, onChange, handleOpenChange]\n )\n\n // Handle search input changes\n const handleSearchChange = React.useCallback(\n (query: string) => {\n setSearchQuery(query)\n onSearch?.(query)\n },\n [onSearch]\n )\n\n return (\n <PopoverPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger asChild>\n <button\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n className={cn(comboboxTriggerVariants({ size, variant }), className)}\n data-size={size}\n data-slot=\"combobox\"\n data-variant={variant}\n disabled={disabled}\n role=\"combobox\"\n type=\"button\"\n {...props}\n >\n <span\n className=\"truncate\"\n data-placeholder={!selectedLabel || undefined}\n data-slot=\"combobox-trigger\"\n >\n {selectedLabel ?? placeholder}\n </span>\n <ChevronDownIcon className=\"size-4 shrink-0 opacity-50\" />\n </button>\n </PopoverPrimitive.Trigger>\n\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n align=\"start\"\n className={cn(comboboxContentVariants())}\n data-slot=\"combobox-content\"\n sideOffset={4}\n >\n <CommandPrimitive\n className=\"flex h-full w-full flex-col overflow-hidden\"\n shouldFilter={!onSearch}\n >\n <div className=\"flex items-center border-b px-3\">\n <SearchIcon className=\"mr-2 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n aria-autocomplete=\"list\"\n className={cn(comboboxInputVariants())}\n data-slot=\"combobox-input\"\n placeholder={searchPlaceholder}\n value={searchQuery}\n onValueChange={handleSearchChange}\n />\n {kbdHint && (\n <kbd\n aria-hidden=\"true\"\n className=\"ml-2 inline-flex h-5 shrink-0 items-center rounded border bg-muted px-1.5 text-[length:var(--combobox-kbd-hint-font-size)] font-semibold text-muted-foreground\"\n data-slot=\"combobox-kbd\"\n >\n {kbdHint}\n </kbd>\n )}\n </div>\n\n <CommandPrimitive.List\n className=\"max-h-72 overflow-y-auto overflow-x-hidden p-1\"\n data-slot=\"combobox-list\"\n >\n <CommandPrimitive.Empty\n className={cn(comboboxEmptyVariants())}\n data-slot=\"combobox-empty\"\n >\n {emptyMessage}\n </CommandPrimitive.Empty>\n\n {options.map((option) => (\n <CommandPrimitive.Item\n key={option.value}\n className={cn(comboboxItemVariants())}\n data-disabled={option.disabled ?? undefined}\n data-selected={value === option.value || undefined}\n data-slot=\"combobox-item\"\n disabled={option.disabled ?? false}\n value={option.label}\n onSelect={() => {\n if (!option.disabled) {\n handleSelect(option.value)\n }\n }}\n >\n <CheckIcon\n className={cn(\n \"size-4\",\n value === option.value ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n {option.label}\n </CommandPrimitive.Item>\n ))}\n </CommandPrimitive.List>\n </CommandPrimitive>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n )\n}\n\nexport { Combobox }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/Combobox/Combobox.variants.ts","../src/components/forms/Combobox/Combobox.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-7YZ7HNXX.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * ComboboxTrigger variant styles using CVA\n */\nexport const comboboxTriggerVariants = cva(\n // Base styles\n [\n \"flex w-fit items-center justify-between gap-[var(--combobox-trigger-gap)] rounded-[var(--combobox-trigger-radius)] border bg-transparent\",\n \"text-[length:var(--combobox-trigger-text)] whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none\",\n \"data-[placeholder]:text-muted-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"focus-visible:border-[color:var(--combobox-trigger-border-focus)] focus-visible:ring-[color:var(--combobox-trigger-ring-primary)]/50 focus-visible:ring-[length:var(--combobox-trigger-ring-width)]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"dark:bg-input/30 dark:hover:bg-input/50\",\n \"disabled:cursor-not-allowed disabled:bg-[color:var(--combobox-trigger-disabled-bg)] disabled:text-[color:var(--combobox-trigger-disabled-fg)] disabled:border-[color:var(--combobox-trigger-disabled-border)]\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--combobox-trigger-height-sm)] px-[var(--combobox-trigger-padding-x-sm)] py-[var(--combobox-trigger-padding-y-sm)] text-[length:var(--combobox-trigger-text-sm)]\",\n md: \"h-[var(--combobox-trigger-height-md)] px-[var(--combobox-trigger-padding-x-md)] py-[var(--combobox-trigger-padding-y-md)] text-[length:var(--combobox-trigger-text-md)]\",\n lg: \"h-[var(--combobox-trigger-height-lg)] px-[var(--combobox-trigger-padding-x-lg)] py-[var(--combobox-trigger-padding-y-lg)] text-[length:var(--combobox-trigger-text-lg)]\",\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 shadow-none\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * ComboboxContent variant styles using CVA\n */\nexport const comboboxContentVariants = cva(\n // Base styles\n [\n \"bg-[color:var(--combobox-content-bg)] text-[color:var(--combobox-content-fg)]\",\n \"z-50 w-[var(--combobox-content-min-width)] overflow-hidden rounded-[var(--combobox-content-radius)] border border-[color:var(--combobox-content-border)] shadow-[var(--combobox-content-shadow)] p-0\",\n // Animation classes\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * ComboboxInput variant styles using CVA\n */\nexport const comboboxInputVariants = cva(\n [\n \"flex h-9 w-full rounded-md bg-transparent py-3 text-sm outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * ComboboxItem variant styles using CVA\n */\nexport const comboboxItemVariants = cva(\n [\n \"relative flex cursor-default items-center gap-2 rounded-[var(--combobox-item-radius)] px-[var(--combobox-item-padding-x)] py-[var(--combobox-item-padding-y)] text-[length:var(--combobox-item-text)]\",\n \"outline-none select-none\",\n \"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n \"data-[selected=true]:bg-[color:var(--combobox-item-focus-bg)] data-[selected=true]:text-[color:var(--combobox-item-focus-fg)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * ComboboxEmpty variant styles using CVA\n */\nexport const comboboxEmptyVariants = cva(\n [\"py-6 text-center text-sm text-muted-foreground\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport type ComboboxTriggerVariantProps = VariantProps<typeof comboboxTriggerVariants>\nexport type ComboboxContentVariantProps = VariantProps<typeof comboboxContentVariants>\nexport type ComboboxInputVariantProps = VariantProps<typeof comboboxInputVariants>\nexport type ComboboxItemVariantProps = VariantProps<typeof comboboxItemVariants>\nexport type ComboboxEmptyVariantProps = VariantProps<typeof comboboxEmptyVariants>\n","import type { ComboboxProps } from \"./Combobox.types\"\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { CheckIcon, ChevronDownIcon, SearchIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n comboboxContentVariants,\n comboboxEmptyVariants,\n comboboxInputVariants,\n comboboxItemVariants,\n comboboxTriggerVariants,\n} from \"./Combobox.variants\"\n\n/**\n * Combobox - A searchable select component with keyboard navigation\n *\n * Uses Radix Popover for the dropdown container and cmdk (Command) for\n * search/filter functionality with full keyboard accessibility.\n *\n * @example\n * ```tsx\n * <Combobox\n * options={[\n * { value: \"apple\", label: \"Apple\" },\n * { value: \"banana\", label: \"Banana\" },\n * ]}\n * placeholder=\"Select a fruit...\"\n * onChange={(value) => console.log(value)}\n * />\n * ```\n */\nfunction Combobox({\n options,\n value: controlledValue,\n defaultValue,\n placeholder = \"Select an option...\",\n searchPlaceholder = \"Search...\",\n emptyMessage = \"No results found.\",\n disabled = false,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n onChange,\n onSearch,\n size = \"md\",\n variant = \"default\",\n kbdHint,\n className,\n ...props\n}: ComboboxProps) {\n // Handle controlled vs uncontrolled value\n const [internalValue, setInternalValue] = React.useState<string | undefined>(defaultValue)\n const value = controlledValue ?? internalValue\n\n // Handle controlled vs uncontrolled open state\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen)\n const open = controlledOpen ?? internalOpen\n\n // Search query state\n const [searchQuery, setSearchQuery] = React.useState(\"\")\n\n // Get the label for the currently selected value\n const selectedLabel = React.useMemo(() => {\n if (!value) return null\n const option = options.find((opt) => opt.value === value)\n return option?.label ?? null\n }, [value, options])\n\n // Handle open state changes\n const handleOpenChange = React.useCallback(\n (newOpen: boolean) => {\n if (controlledOpen === undefined) {\n setInternalOpen(newOpen)\n }\n onOpenChange?.(newOpen)\n\n // Clear search when closing\n if (!newOpen) {\n setSearchQuery(\"\")\n }\n },\n [controlledOpen, onOpenChange]\n )\n\n // Handle value selection\n const handleSelect = React.useCallback(\n (selectedValue: string) => {\n if (controlledValue === undefined) {\n setInternalValue(selectedValue)\n }\n onChange?.(selectedValue)\n handleOpenChange(false)\n },\n [controlledValue, onChange, handleOpenChange]\n )\n\n // Handle search input changes\n const handleSearchChange = React.useCallback(\n (query: string) => {\n setSearchQuery(query)\n onSearch?.(query)\n },\n [onSearch]\n )\n\n return (\n <PopoverPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger asChild>\n <button\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n className={cn(comboboxTriggerVariants({ size, variant }), className)}\n data-size={size}\n data-slot=\"combobox\"\n data-variant={variant}\n disabled={disabled}\n role=\"combobox\"\n type=\"button\"\n {...props}\n >\n <span\n className=\"truncate\"\n data-placeholder={!selectedLabel || undefined}\n data-slot=\"combobox-trigger\"\n >\n {selectedLabel ?? placeholder}\n </span>\n <ChevronDownIcon className=\"size-4 shrink-0 opacity-50\" />\n </button>\n </PopoverPrimitive.Trigger>\n\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n align=\"start\"\n className={cn(comboboxContentVariants())}\n data-slot=\"combobox-content\"\n sideOffset={4}\n >\n <CommandPrimitive\n className=\"flex h-full w-full flex-col overflow-hidden\"\n shouldFilter={!onSearch}\n >\n <div className=\"flex items-center border-b px-3\">\n <SearchIcon className=\"mr-2 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n aria-autocomplete=\"list\"\n className={cn(comboboxInputVariants())}\n data-slot=\"combobox-input\"\n placeholder={searchPlaceholder}\n value={searchQuery}\n onValueChange={handleSearchChange}\n />\n {kbdHint && (\n <kbd\n aria-hidden=\"true\"\n className=\"ml-2 inline-flex h-5 shrink-0 items-center rounded border bg-muted px-1.5 text-[length:var(--combobox-kbd-hint-font-size)] font-semibold text-muted-foreground\"\n data-slot=\"combobox-kbd\"\n >\n {kbdHint}\n </kbd>\n )}\n </div>\n\n <CommandPrimitive.List\n className=\"max-h-72 overflow-y-auto overflow-x-hidden p-1\"\n data-slot=\"combobox-list\"\n >\n <CommandPrimitive.Empty\n className={cn(comboboxEmptyVariants())}\n data-slot=\"combobox-empty\"\n >\n {emptyMessage}\n </CommandPrimitive.Empty>\n\n {options.map((option) => (\n <CommandPrimitive.Item\n key={option.value}\n className={cn(comboboxItemVariants())}\n data-disabled={option.disabled ?? undefined}\n data-selected={value === option.value || undefined}\n data-slot=\"combobox-item\"\n disabled={option.disabled ?? false}\n value={option.label}\n onSelect={() => {\n if (!option.disabled) {\n handleSelect(option.value)\n }\n }}\n >\n <CheckIcon\n className={cn(\n \"size-4\",\n value === option.value ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n {option.label}\n </CommandPrimitive.Item>\n ))}\n </CommandPrimitive.List>\n </CommandPrimitive>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n )\n}\n\nexport { Combobox }\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 { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
@@ -66,5 +66,5 @@ function IftaLabel({
66
66
  }
67
67
 
68
68
  export { IftaLabel };
69
- //# sourceMappingURL=chunk-YACIRNVP.js.map
70
- //# sourceMappingURL=chunk-YACIRNVP.js.map
69
+ //# sourceMappingURL=chunk-AD4RW2JV.js.map
70
+ //# sourceMappingURL=chunk-AD4RW2JV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/IftaLabel/IftaLabel.tsx"],"names":[],"mappings":";;;;AAmBA,SAAS,SAAA,CAAU;AAAA,EACjB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAU,KAAA,CAAA,QAAA,EAA6B;AACjE,EAAA,MAAM,cAAoB,KAAA,CAAA,KAAA,EAAM;AAChC,EAAA,MAAM,UAAA,GAAmB,aAAuB,IAAI,CAAA;AASpD,EAAM,gBAAU,MAAM;AACpB,IAAA,IAAI,WAAW,OAAA,EAAS;AACtB,MAAA,MAAM,KAAA,GAAQ,WAAW,OAAA,CAAQ,aAAA;AAAA,QAC/B;AAAA,OACF;AACA,MAAA,IAAI,KAAA,EAAO;AAIT,QAAA,KAAA,CAAM,YAAA,CAAa,mBAAmB,EAAE,CAAA;AACxC,QAAA,MAAM,UAAA,GAAa,KAAA,CAAM,YAAA,CAAa,IAAI,CAAA;AAC1C,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,UAAA,CAAW,UAAU,CAAA;AAAA,QACvB,CAAA,MAAO;AACL,UAAA,MAAM,QAAQ,CAAA,iBAAA,EAAoB,WAAA,CAAY,UAAA,CAAW,GAAA,EAAK,EAAE,CAAC,CAAA,CAAA;AACjE,UAAA,KAAA,CAAM,YAAA,CAAa,MAAM,KAAK,CAAA;AAC9B,UAAA,UAAA,CAAW,KAAK,CAAA;AAAA,QAClB;AACA,QAAA,IAAI,MAAM,OAAA,KAAY,OAAA,IAAW,CAAC,KAAA,CAAM,YAAA,CAAa,aAAa,CAAA,EAAG;AACnE,UAAA,KAAA,CAAM,YAAA,CAAa,eAAe,GAAG,CAAA;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA,EAAG,CAAC,WAAA,EAAa,QAAQ,CAAC,CAAA;AAG1B,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,UAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,4KAAA;AAAA;AAAA;AAAA;AAAA,QAIA,sOAAA;AAAA,QACA,iKAAA;AAAA,QACA,kFAAA;AAAA,QACA,0GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,WAAA,EAAU,YAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,8bAAA;AAAA,YACV,WAAA,EAAU,iBAAA;AAAA,YACV,OAAA,EAAS,OAAA;AAAA,YAER,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ","file":"chunk-YACIRNVP.js","sourcesContent":["import type { IftaLabelProps } from \"./IftaLabel.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\n/**\n * IftaLabel - A wrapper component with an always-visible label inside the input\n *\n * IFTA = \"In Field Top Aligned\" - the label is always visible at the top\n * of the input container, unlike FloatLabel which animates on focus.\n *\n * @example\n * ```tsx\n * <IftaLabel label=\"Email\">\n * <TextInput value={email} onChange={(e) => setEmail(e.target.value)} />\n * </IftaLabel>\n * ```\n */\nfunction IftaLabel({\n children,\n label,\n className,\n ...props\n}: IftaLabelProps) {\n const [inputId, setInputId] = React.useState<string | undefined>()\n const generatedId = React.useId()\n const wrapperRef = React.useRef<HTMLDivElement>(null)\n\n // Find the wrapped form control and get its id.\n // Covers native inputs/select/textarea AND button-based field shells\n // (Select / DatePicker via the `*-trigger` data-slot, Combobox via its\n // `combobox` data-slot), which have no descendant <input> to target.\n // The button precedes its inner `*-trigger` span in document order, so\n // querySelector returns the focusable button, not the span.\n /* eslint-disable react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- DOM discovery for label-input association */\n React.useEffect(() => {\n if (wrapperRef.current) {\n const input = wrapperRef.current.querySelector(\n \"input, select, textarea, [data-slot$='-trigger'], [data-slot='combobox']\"\n )\n if (input) {\n // Mark the discovered control so the label-space reservation below\n // can target it regardless of element type (the [&_input] selector\n // alone misses non-native controls like Select's trigger button).\n input.setAttribute(\"data-ifta-field\", \"\")\n const existingId = input.getAttribute(\"id\")\n if (existingId) {\n setInputId(existingId)\n } else {\n const newId = `ifta-label-input-${generatedId.replaceAll(':', \"\")}`\n input.setAttribute(\"id\", newId)\n setInputId(newId)\n }\n if (input.tagName === \"INPUT\" && !input.hasAttribute(\"placeholder\")) {\n input.setAttribute(\"placeholder\", \" \")\n }\n }\n }\n }, [generatedId, children])\n /* eslint-enable react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n return (\n <div\n ref={wrapperRef}\n className={cn(\n \"relative group [&_input]:pt-[var(--ifta-label-wrapper-padding-top)] [&_input]:pb-[var(--ifta-label-wrapper-padding-bottom)] [&_input]:h-[var(--ifta-label-wrapper-height)]\",\n // Reserve label space on non-native controls (e.g. Select/Combobox\n // button triggers) that have no descendant <input>. Uses min-height so\n // the control's own height variant is respected, just floored to fit.\n \"[&_[data-ifta-field]:not(input)]:pt-[var(--ifta-label-wrapper-padding-top)] [&_[data-ifta-field]:not(input)]:pb-[var(--ifta-label-wrapper-padding-bottom)] [&_[data-ifta-field]:not(input)]:min-h-[var(--ifta-label-wrapper-height)]\",\n \"has-[input:disabled]:opacity-[var(--ifta-label-wrapper-disabled-opacity)] has-[[data-ifta-field]:disabled]:opacity-[var(--ifta-label-wrapper-disabled-opacity)]\",\n \"has-[input:disabled]:pointer-events-none has-[input:disabled]:cursor-not-allowed\",\n \"has-[[data-ifta-field]:disabled]:pointer-events-none has-[[data-ifta-field]:disabled]:cursor-not-allowed\",\n className\n )}\n data-slot=\"ifta-label\"\n {...props}\n >\n <label\n className=\"pointer-events-none absolute left-3 top-1.5 text-xs font-normal text-[color:var(--ifta-label-label-color-muted)] group-focus-within:text-[color:var(--ifta-label-label-color-foreground)] group-has-[input:not(:placeholder-shown)]:text-[color:var(--ifta-label-label-color-foreground)] group-has-[[aria-invalid=true]]:text-[color:var(--ifta-label-label-color-destructive)] group-has-[input:disabled]:text-[color:var(--ifta-label-label-color-muted)]\"\n data-slot=\"ifta-label-text\"\n htmlFor={inputId}\n >\n {label}\n </label>\n {children}\n </div>\n )\n}\n\nexport { IftaLabel }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/IftaLabel/IftaLabel.tsx"],"names":[],"mappings":";;;;AAmBA,SAAS,SAAA,CAAU;AAAA,EACjB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAU,KAAA,CAAA,QAAA,EAA6B;AACjE,EAAA,MAAM,cAAoB,KAAA,CAAA,KAAA,EAAM;AAChC,EAAA,MAAM,UAAA,GAAmB,aAAuB,IAAI,CAAA;AASpD,EAAM,gBAAU,MAAM;AACpB,IAAA,IAAI,WAAW,OAAA,EAAS;AACtB,MAAA,MAAM,KAAA,GAAQ,WAAW,OAAA,CAAQ,aAAA;AAAA,QAC/B;AAAA,OACF;AACA,MAAA,IAAI,KAAA,EAAO;AAIT,QAAA,KAAA,CAAM,YAAA,CAAa,mBAAmB,EAAE,CAAA;AACxC,QAAA,MAAM,UAAA,GAAa,KAAA,CAAM,YAAA,CAAa,IAAI,CAAA;AAC1C,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,UAAA,CAAW,UAAU,CAAA;AAAA,QACvB,CAAA,MAAO;AACL,UAAA,MAAM,QAAQ,CAAA,iBAAA,EAAoB,WAAA,CAAY,UAAA,CAAW,GAAA,EAAK,EAAE,CAAC,CAAA,CAAA;AACjE,UAAA,KAAA,CAAM,YAAA,CAAa,MAAM,KAAK,CAAA;AAC9B,UAAA,UAAA,CAAW,KAAK,CAAA;AAAA,QAClB;AACA,QAAA,IAAI,MAAM,OAAA,KAAY,OAAA,IAAW,CAAC,KAAA,CAAM,YAAA,CAAa,aAAa,CAAA,EAAG;AACnE,UAAA,KAAA,CAAM,YAAA,CAAa,eAAe,GAAG,CAAA;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA,EAAG,CAAC,WAAA,EAAa,QAAQ,CAAC,CAAA;AAG1B,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,UAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,4KAAA;AAAA;AAAA;AAAA;AAAA,QAIA,sOAAA;AAAA,QACA,iKAAA;AAAA,QACA,kFAAA;AAAA,QACA,0GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,WAAA,EAAU,YAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,8bAAA;AAAA,YACV,WAAA,EAAU,iBAAA;AAAA,YACV,OAAA,EAAS,OAAA;AAAA,YAER,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ","file":"chunk-AD4RW2JV.js","sourcesContent":["import type { IftaLabelProps } from \"./IftaLabel.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\n/**\n * IftaLabel - A wrapper component with an always-visible label inside the input\n *\n * IFTA = \"In Field Top Aligned\" - the label is always visible at the top\n * of the input container, unlike FloatLabel which animates on focus.\n *\n * @example\n * ```tsx\n * <IftaLabel label=\"Email\">\n * <TextInput value={email} onChange={(e) => setEmail(e.target.value)} />\n * </IftaLabel>\n * ```\n */\nfunction IftaLabel({\n children,\n label,\n className,\n ...props\n}: IftaLabelProps) {\n const [inputId, setInputId] = React.useState<string | undefined>()\n const generatedId = React.useId()\n const wrapperRef = React.useRef<HTMLDivElement>(null)\n\n // Find the wrapped form control and get its id.\n // Covers native inputs/select/textarea AND button-based field shells\n // (Select / DatePicker via the `*-trigger` data-slot, Combobox via its\n // `combobox` data-slot), which have no descendant <input> to target.\n // The button precedes its inner `*-trigger` span in document order, so\n // querySelector returns the focusable button, not the span.\n /* eslint-disable react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- DOM discovery for label-input association */\n React.useEffect(() => {\n if (wrapperRef.current) {\n const input = wrapperRef.current.querySelector(\n \"input, select, textarea, [data-slot$='-trigger'], [data-slot='combobox']\"\n )\n if (input) {\n // Mark the discovered control so the label-space reservation below\n // can target it regardless of element type (the [&_input] selector\n // alone misses non-native controls like Select's trigger button).\n input.setAttribute(\"data-ifta-field\", \"\")\n const existingId = input.getAttribute(\"id\")\n if (existingId) {\n setInputId(existingId)\n } else {\n const newId = `ifta-label-input-${generatedId.replaceAll(':', \"\")}`\n input.setAttribute(\"id\", newId)\n setInputId(newId)\n }\n if (input.tagName === \"INPUT\" && !input.hasAttribute(\"placeholder\")) {\n input.setAttribute(\"placeholder\", \" \")\n }\n }\n }\n }, [generatedId, children])\n /* eslint-enable react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n return (\n <div\n ref={wrapperRef}\n className={cn(\n \"relative group [&_input]:pt-[var(--ifta-label-wrapper-padding-top)] [&_input]:pb-[var(--ifta-label-wrapper-padding-bottom)] [&_input]:h-[var(--ifta-label-wrapper-height)]\",\n // Reserve label space on non-native controls (e.g. Select/Combobox\n // button triggers) that have no descendant <input>. Uses min-height so\n // the control's own height variant is respected, just floored to fit.\n \"[&_[data-ifta-field]:not(input)]:pt-[var(--ifta-label-wrapper-padding-top)] [&_[data-ifta-field]:not(input)]:pb-[var(--ifta-label-wrapper-padding-bottom)] [&_[data-ifta-field]:not(input)]:min-h-[var(--ifta-label-wrapper-height)]\",\n \"has-[input:disabled]:opacity-[var(--ifta-label-wrapper-disabled-opacity)] has-[[data-ifta-field]:disabled]:opacity-[var(--ifta-label-wrapper-disabled-opacity)]\",\n \"has-[input:disabled]:pointer-events-none has-[input:disabled]:cursor-not-allowed\",\n \"has-[[data-ifta-field]:disabled]:pointer-events-none has-[[data-ifta-field]:disabled]:cursor-not-allowed\",\n className\n )}\n data-slot=\"ifta-label\"\n {...props}\n >\n <label\n className=\"pointer-events-none absolute left-3 top-1.5 text-xs font-normal text-[color:var(--ifta-label-label-color-muted)] group-focus-within:text-[color:var(--ifta-label-label-color-foreground)] group-has-[input:not(:placeholder-shown)]:text-[color:var(--ifta-label-label-color-foreground)] group-has-[[aria-invalid=true]]:text-[color:var(--ifta-label-label-color-destructive)] group-has-[input:disabled]:text-[color:var(--ifta-label-label-color-muted)]\"\n data-slot=\"ifta-label-text\"\n htmlFor={inputId}\n >\n {label}\n </label>\n {children}\n </div>\n )\n}\n\nexport { IftaLabel }\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 { XCircleIcon, AlertTriangleIcon, CheckCircleIcon, InfoIcon } from 'lucide-react';
4
4
  import { cva } from 'class-variance-authority';
@@ -92,5 +92,5 @@ function HelpText({
92
92
  }
93
93
 
94
94
  export { HelpText, helpTextIconVariants, helpTextVariants };
95
- //# sourceMappingURL=chunk-YMYXWHDU.js.map
96
- //# sourceMappingURL=chunk-YMYXWHDU.js.map
95
+ //# sourceMappingURL=chunk-ADX6C3V7.js.map
96
+ //# sourceMappingURL=chunk-ADX6C3V7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/HelpText/HelpText.variants.ts","../src/components/forms/HelpText/HelpText.tsx"],"names":[],"mappings":";;;;;;AAKO,IAAM,gBAAA,GAAmB,GAAA;AAAA,EAC9B,yDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,iBAAA;AAAA,QACT,KAAA,EAAO,uBAAA;AAAA,QACP,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS,cAAA;AAAA,QACT,OAAA,EAAS,cAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,uBAAA;AAAA,QACJ,OAAA,EAAS,wBAAA;AAAA,QACT,EAAA,EAAI;AAAA,OACN;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,SAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,OAAA;AAAA,MACT,IAAA,EAAM,SAAA;AAAA,MACN,MAAA,EAAQ;AAAA;AACV;AAEJ;AAKO,IAAM,oBAAA,GAAuB,IAAI,UAAA,EAAY;AAAA,EAClD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,QAAA;AAAA,MACJ,OAAA,EAAS,QAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC;AC7BD,IAAM,YAAA,GAAe;AAAA,EACnB,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO,IAAA;AAAA,EACP,IAAA,EAAM,QAAA;AAAA,EACN,OAAA,EAAS,eAAA;AAAA,EACT,OAAA,EAAS,iBAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAsCA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,OAAA,GAAU,OAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,OAAA,GAAU,KAAA;AAAA,EACV,MAAA,GAAS,KAAA;AAAA,EACT,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyD;AAEvD,EAAA,MAAM,WAAA,GAAc,QAAA,GAAW,YAAA,CAAa,OAAO,CAAA,GAAI,IAAA;AACvD,EAAA,MAAM,WAAA,GAAc,IAAA,KAAS,WAAA,mBAAc,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAW,EAAA,CAAG,oBAAA,CAAqB,EAAE,IAAA,EAAM,CAAC,GAAG,CAAA,GAAK,IAAA,CAAA;AAG5G,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,gBAAA,CAAiB,EAAE,SAAS,IAAA,EAAM,MAAA,EAAQ,CAAA,EAAG,SAAS,CAAA;AAAA,QACpE,WAAA,EAAU,WAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAGA,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,gBAAA,CAAiB,EAAE,SAAS,IAAA,EAAM,MAAA,EAAQ,CAAA,EAAG,SAAS,CAAA;AAAA,MACpE,WAAA,EAAU,WAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,WAAA,wBACE,MAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,WAAA,EAAU,kBAChC,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,QAED;AAAA;AAAA;AAAA,GACH;AAEJ","file":"chunk-YMYXWHDU.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * HelpText variant styles using CVA\n */\nexport const helpTextVariants = cva(\n \"flex items-center gap-1.5 font-normal transition-colors\",\n {\n variants: {\n variant: {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n info: \"text-info\",\n success: \"text-success\",\n warning: \"text-warning\",\n error: \"text-destructive\",\n },\n size: {\n sm: \"text-xs leading-tight\",\n default: \"text-sm leading-normal\",\n lg: \"text-base leading-relaxed\",\n },\n srOnly: {\n true: \"sr-only\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"muted\",\n size: \"default\",\n srOnly: false,\n },\n }\n)\n\n/**\n * HelpText icon variant styles\n */\nexport const helpTextIconVariants = cva(\"shrink-0\", {\n variants: {\n size: {\n sm: \"size-3\",\n default: \"size-4\",\n lg: \"size-5\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\n// Export variant prop types\nexport type HelpTextVariantProps = VariantProps<typeof helpTextVariants>\nexport type HelpTextIconVariantProps = VariantProps<typeof helpTextIconVariants>\n","import type { HelpTextProps } from \"./HelpText.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport {\n AlertTriangleIcon,\n CheckCircleIcon,\n InfoIcon,\n XCircleIcon,\n} from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n helpTextIconVariants,\n type HelpTextVariantProps,\n helpTextVariants,\n} from \"./HelpText.variants\"\n\n/**\n * Default icons for each variant\n */\nconst variantIcons = {\n default: null,\n muted: null,\n info: InfoIcon,\n success: CheckCircleIcon,\n warning: AlertTriangleIcon,\n error: XCircleIcon,\n}\n\n/**\n * HelpText displays contextual help or hint text for form fields.\n *\n * @example\n * ```tsx\n * <HelpText>Enter your email address</HelpText>\n * ```\n *\n * @example\n * ```tsx\n * // With icon\n * <HelpText icon={<InfoIcon />}>Password must be at least 8 characters</HelpText>\n * ```\n *\n * @example\n * ```tsx\n * // Different variants with showIcon\n * <HelpText variant=\"success\" showIcon>Email is available</HelpText>\n * <HelpText variant=\"warning\" showIcon>This action cannot be undone</HelpText>\n * <HelpText variant=\"error\" showIcon>Invalid format</HelpText>\n * ```\n *\n * @example\n * ```tsx\n * // With asChild\n * <HelpText asChild variant=\"info\">\n * <span className=\"custom-class\">Custom element</span>\n * </HelpText>\n * ```\n *\n * @example\n * ```tsx\n * // Screen reader only\n * <HelpText srOnly>This is only visible to screen readers</HelpText>\n * ```\n */\nfunction HelpText({\n className,\n variant = \"muted\",\n size = \"default\",\n icon,\n showIcon = false,\n asChild = false,\n srOnly = false,\n children,\n ...props\n}: HelpTextProps & Omit<HelpTextVariantProps, \"srOnly\">) {\n // Determine icon to display\n const DefaultIcon = showIcon ? variantIcons[variant] : null\n const displayIcon = icon ?? (DefaultIcon ? <DefaultIcon className={cn(helpTextIconVariants({ size }))} /> : null)\n\n // When asChild is true, pass only children to Slot (single child required)\n if (asChild) {\n return (\n <Slot\n className={cn(helpTextVariants({ variant, size, srOnly }), className)}\n data-slot=\"help-text\"\n {...props}\n >\n {children}\n </Slot>\n )\n }\n\n // Standard rendering with optional icon\n return (\n <span\n className={cn(helpTextVariants({ variant, size, srOnly }), className)}\n data-slot=\"help-text\"\n {...props}\n >\n {displayIcon && (\n <span aria-hidden=\"true\" data-slot=\"help-text-icon\">\n {displayIcon}\n </span>\n )}\n {children}\n </span>\n )\n}\n\nexport { HelpText }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/HelpText/HelpText.variants.ts","../src/components/forms/HelpText/HelpText.tsx"],"names":[],"mappings":";;;;;;AAKO,IAAM,gBAAA,GAAmB,GAAA;AAAA,EAC9B,yDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,iBAAA;AAAA,QACT,KAAA,EAAO,uBAAA;AAAA,QACP,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS,cAAA;AAAA,QACT,OAAA,EAAS,cAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,uBAAA;AAAA,QACJ,OAAA,EAAS,wBAAA;AAAA,QACT,EAAA,EAAI;AAAA,OACN;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,SAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,OAAA;AAAA,MACT,IAAA,EAAM,SAAA;AAAA,MACN,MAAA,EAAQ;AAAA;AACV;AAEJ;AAKO,IAAM,oBAAA,GAAuB,IAAI,UAAA,EAAY;AAAA,EAClD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,QAAA;AAAA,MACJ,OAAA,EAAS,QAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC;AC7BD,IAAM,YAAA,GAAe;AAAA,EACnB,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO,IAAA;AAAA,EACP,IAAA,EAAM,QAAA;AAAA,EACN,OAAA,EAAS,eAAA;AAAA,EACT,OAAA,EAAS,iBAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAsCA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,OAAA,GAAU,OAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,OAAA,GAAU,KAAA;AAAA,EACV,MAAA,GAAS,KAAA;AAAA,EACT,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyD;AAEvD,EAAA,MAAM,WAAA,GAAc,QAAA,GAAW,YAAA,CAAa,OAAO,CAAA,GAAI,IAAA;AACvD,EAAA,MAAM,WAAA,GAAc,IAAA,KAAS,WAAA,mBAAc,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAW,EAAA,CAAG,oBAAA,CAAqB,EAAE,IAAA,EAAM,CAAC,GAAG,CAAA,GAAK,IAAA,CAAA;AAG5G,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,gBAAA,CAAiB,EAAE,SAAS,IAAA,EAAM,MAAA,EAAQ,CAAA,EAAG,SAAS,CAAA;AAAA,QACpE,WAAA,EAAU,WAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAGA,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,gBAAA,CAAiB,EAAE,SAAS,IAAA,EAAM,MAAA,EAAQ,CAAA,EAAG,SAAS,CAAA;AAAA,MACpE,WAAA,EAAU,WAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,WAAA,wBACE,MAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,WAAA,EAAU,kBAChC,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,QAED;AAAA;AAAA;AAAA,GACH;AAEJ","file":"chunk-ADX6C3V7.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * HelpText variant styles using CVA\n */\nexport const helpTextVariants = cva(\n \"flex items-center gap-1.5 font-normal transition-colors\",\n {\n variants: {\n variant: {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n info: \"text-info\",\n success: \"text-success\",\n warning: \"text-warning\",\n error: \"text-destructive\",\n },\n size: {\n sm: \"text-xs leading-tight\",\n default: \"text-sm leading-normal\",\n lg: \"text-base leading-relaxed\",\n },\n srOnly: {\n true: \"sr-only\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"muted\",\n size: \"default\",\n srOnly: false,\n },\n }\n)\n\n/**\n * HelpText icon variant styles\n */\nexport const helpTextIconVariants = cva(\"shrink-0\", {\n variants: {\n size: {\n sm: \"size-3\",\n default: \"size-4\",\n lg: \"size-5\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\n// Export variant prop types\nexport type HelpTextVariantProps = VariantProps<typeof helpTextVariants>\nexport type HelpTextIconVariantProps = VariantProps<typeof helpTextIconVariants>\n","import type { HelpTextProps } from \"./HelpText.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport {\n AlertTriangleIcon,\n CheckCircleIcon,\n InfoIcon,\n XCircleIcon,\n} from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n helpTextIconVariants,\n type HelpTextVariantProps,\n helpTextVariants,\n} from \"./HelpText.variants\"\n\n/**\n * Default icons for each variant\n */\nconst variantIcons = {\n default: null,\n muted: null,\n info: InfoIcon,\n success: CheckCircleIcon,\n warning: AlertTriangleIcon,\n error: XCircleIcon,\n}\n\n/**\n * HelpText displays contextual help or hint text for form fields.\n *\n * @example\n * ```tsx\n * <HelpText>Enter your email address</HelpText>\n * ```\n *\n * @example\n * ```tsx\n * // With icon\n * <HelpText icon={<InfoIcon />}>Password must be at least 8 characters</HelpText>\n * ```\n *\n * @example\n * ```tsx\n * // Different variants with showIcon\n * <HelpText variant=\"success\" showIcon>Email is available</HelpText>\n * <HelpText variant=\"warning\" showIcon>This action cannot be undone</HelpText>\n * <HelpText variant=\"error\" showIcon>Invalid format</HelpText>\n * ```\n *\n * @example\n * ```tsx\n * // With asChild\n * <HelpText asChild variant=\"info\">\n * <span className=\"custom-class\">Custom element</span>\n * </HelpText>\n * ```\n *\n * @example\n * ```tsx\n * // Screen reader only\n * <HelpText srOnly>This is only visible to screen readers</HelpText>\n * ```\n */\nfunction HelpText({\n className,\n variant = \"muted\",\n size = \"default\",\n icon,\n showIcon = false,\n asChild = false,\n srOnly = false,\n children,\n ...props\n}: HelpTextProps & Omit<HelpTextVariantProps, \"srOnly\">) {\n // Determine icon to display\n const DefaultIcon = showIcon ? variantIcons[variant] : null\n const displayIcon = icon ?? (DefaultIcon ? <DefaultIcon className={cn(helpTextIconVariants({ size }))} /> : null)\n\n // When asChild is true, pass only children to Slot (single child required)\n if (asChild) {\n return (\n <Slot\n className={cn(helpTextVariants({ variant, size, srOnly }), className)}\n data-slot=\"help-text\"\n {...props}\n >\n {children}\n </Slot>\n )\n }\n\n // Standard rendering with optional icon\n return (\n <span\n className={cn(helpTextVariants({ variant, size, srOnly }), className)}\n data-slot=\"help-text\"\n {...props}\n >\n {displayIcon && (\n <span aria-hidden=\"true\" data-slot=\"help-text-icon\">\n {displayIcon}\n </span>\n )}\n {children}\n </span>\n )\n}\n\nexport { HelpText }\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 } from 'react/jsx-runtime';
@@ -134,5 +134,5 @@ function FolderStack({
134
134
  FolderStack.displayName = "FolderStack";
135
135
 
136
136
  export { FolderStack, folderStackVariants };
137
- //# sourceMappingURL=chunk-WVFQKBDB.js.map
138
- //# sourceMappingURL=chunk-WVFQKBDB.js.map
137
+ //# sourceMappingURL=chunk-AJUOTABG.js.map
138
+ //# sourceMappingURL=chunk-AJUOTABG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/primitives/FolderStack/FolderStack.variants.ts","../src/components/primitives/FolderStack/FolderStack.tsx"],"names":[],"mappings":"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","file":"chunk-WVFQKBDB.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const folderStackVariants = cva(\n \"relative flex-shrink-0 [&_[data-slot='folder-stack-tile']]:absolute [&_[data-slot='folder-stack-tile']]:bg-[color:var(--tint,theme(colors.neutral.200))] [&_[data-slot='folder-stack-tile']]:transition-colors\",\n {\n variants: {\n size: {\n xs: \"w-[var(--folder-stack-size-xs-width)] h-[var(--folder-stack-size-xs-height)] [&_[data-slot='folder-stack-tile']]:w-[var(--folder-stack-size-xs-tile-width)] [&_[data-slot='folder-stack-tile']]:h-[var(--folder-stack-size-xs-tile-height)] [&_[data-slot='folder-stack-tile']]:rounded-[var(--folder-stack-size-xs-tile-radius)] [&_[data-slot='folder-stack-tile']]:outline-[length:var(--folder-stack-size-xs-outline-width)]\",\n sm: \"w-[var(--folder-stack-size-sm-width)] h-[var(--folder-stack-size-sm-height)] [&_[data-slot='folder-stack-tile']]:w-[var(--folder-stack-size-sm-tile-width)] [&_[data-slot='folder-stack-tile']]:h-[var(--folder-stack-size-sm-tile-height)] [&_[data-slot='folder-stack-tile']]:rounded-[var(--folder-stack-size-sm-tile-radius)] [&_[data-slot='folder-stack-tile']]:outline-[length:var(--folder-stack-size-sm-outline-width)]\",\n default:\n \"w-[var(--folder-stack-size-default-width)] h-[var(--folder-stack-size-default-height)] [&_[data-slot='folder-stack-tile']]:w-[var(--folder-stack-size-default-tile-width)] [&_[data-slot='folder-stack-tile']]:h-[var(--folder-stack-size-default-tile-height)] [&_[data-slot='folder-stack-tile']]:rounded-[var(--folder-stack-size-default-tile-radius)] [&_[data-slot='folder-stack-tile']]:outline-[length:var(--folder-stack-size-default-outline-width)]\",\n lg: \"w-[var(--folder-stack-size-lg-width)] h-[var(--folder-stack-size-lg-height)] [&_[data-slot='folder-stack-tile']]:w-[var(--folder-stack-size-lg-tile-width)] [&_[data-slot='folder-stack-tile']]:h-[var(--folder-stack-size-lg-tile-height)] [&_[data-slot='folder-stack-tile']]:rounded-[var(--folder-stack-size-lg-tile-radius)] [&_[data-slot='folder-stack-tile']]:outline-[length:var(--folder-stack-size-lg-outline-width)]\",\n xl: \"w-[var(--folder-stack-size-xl-width)] h-[var(--folder-stack-size-xl-height)] [&_[data-slot='folder-stack-tile']]:w-[var(--folder-stack-size-xl-tile-width)] [&_[data-slot='folder-stack-tile']]:h-[var(--folder-stack-size-xl-tile-height)] [&_[data-slot='folder-stack-tile']]:rounded-[var(--folder-stack-size-xl-tile-radius)] [&_[data-slot='folder-stack-tile']]:outline-[length:var(--folder-stack-size-xl-outline-width)]\",\n },\n interactive: {\n true: \"cursor-pointer transition-transform hover:scale-[1.02] focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-[color:var(--ring)] motion-reduce:transition-none motion-reduce:hover:scale-100\",\n false: \"\",\n },\n active: {\n true: \"ring-[length:var(--folder-stack-interactive-active-ring-width)] ring-[color:var(--folder-stack-interactive-active-ring-color,var(--primary))] ring-offset-2 ring-offset-[color:var(--background)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n interactive: false,\n active: false,\n },\n },\n)\n\n/** Tile positions per size — top-left, top-right, bottom-left, bottom-right.\n * Returned as inline styles so each tile can be positioned absolutely without\n * exploding the className surface. Values derived from prototype `dam.css`. */\nexport const folderStackTilePositions: Record<\n \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\",\n { left: string; top: string }[]\n> = {\n xs: [\n { left: \"1px\", top: \"0\" },\n { left: \"11px\", top: \"0\" },\n { left: \"1px\", top: \"10px\" },\n { left: \"11px\", top: \"10px\" },\n ],\n sm: [\n { left: \"1px\", top: \"0\" },\n { left: \"15px\", top: \"0\" },\n { left: \"1px\", top: \"13px\" },\n { left: \"15px\", top: \"13px\" },\n ],\n default: [\n { left: \"0\", top: \"0\" },\n { left: \"18px\", top: \"0\" },\n { left: \"0\", top: \"22px\" },\n { left: \"18px\", top: \"22px\" },\n ],\n lg: [\n { left: \"0\", top: \"0\" },\n { left: \"28px\", top: \"0\" },\n { left: \"0\", top: \"30px\" },\n { left: \"28px\", top: \"30px\" },\n ],\n xl: [\n { left: \"0\", top: \"0\" },\n { left: \"36px\", top: \"0\" },\n { left: \"0\", top: \"38px\" },\n { left: \"36px\", top: \"38px\" },\n ],\n}\n","import type { FolderStackProps } from \"./FolderStack.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { folderStackTilePositions, folderStackVariants } from \"./FolderStack.variants\"\n\n/**\n * FolderStack — 2×2 tile preview of folder contents.\n *\n * Renders 4 absolute-positioned tiles tinted with the colors passed in `tints`.\n * Excess tints are ignored; missing slots get a neutral empty fill. Used as\n * leading slot in file-tree rows, inside FolderCards, and as the visual for\n * ShortcutCard/Item nav targets.\n *\n * @example\n * <FolderStack tints={[\"#f97316\", \"#19e699\", \"#a78bfa\", \"#3b82f6\"]} aria-label=\"Folder with 12 files\" />\n *\n * @example\n * <FolderStack tints={collectTints(folder)} size=\"default\" interactive onClick={navigate} aria-label={folder.name} />\n */\nfunction FolderStack({\n tints,\n size = \"default\",\n interactive = false,\n active = false,\n className,\n \"aria-label\": ariaLabel,\n onClick,\n ...props\n}: FolderStackProps) {\n const sizeKey = (size ?? \"default\")\n const positions = folderStackTilePositions[sizeKey]\n\n // Pad to exactly 4 entries — extra tints discarded, missing slots stay empty.\n const slots = Array.from({ length: 4 }, (_, i) => tints[i] ?? null)\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (!interactive) return\n onClick?.(event, { tints, timestamp: Date.now() })\n },\n [interactive, onClick, tints],\n )\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!interactive) return\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault()\n onClick?.(\n event as unknown as React.MouseEvent<HTMLDivElement>,\n { tints, timestamp: Date.now() },\n )\n }\n },\n [interactive, onClick, tints],\n )\n\n return (\n <div\n className={cn(\n folderStackVariants({ size, interactive, active }),\n className,\n )}\n aria-label={ariaLabel}\n aria-pressed={interactive && active ? true : undefined}\n data-active={active || undefined}\n data-empty={slots.every((s) => s === null) || undefined}\n data-size={size}\n data-slot=\"folder-stack\"\n role={interactive ? \"button\" : \"img\"}\n tabIndex={interactive ? 0 : undefined}\n onClick={interactive ? handleClick : undefined}\n onKeyDown={interactive ? handleKeyDown : undefined}\n {...props}\n >\n {slots.map((tint, i) => (\n <span\n key={`folder-stack-tile-${String(i)}`}\n style={\n {\n ...positions[i],\n \"--tint\": tint ?? \"var(--folder-stack-empty-bg, var(--muted))\",\n } as React.CSSProperties\n }\n aria-hidden=\"true\"\n className=\"outline outline-[color:var(--folder-stack-outline-color,var(--background))]\"\n data-empty={tint === null || undefined}\n data-position={i}\n data-slot=\"folder-stack-tile\"\n />\n ))}\n </div>\n )\n}\n\nFolderStack.displayName = \"FolderStack\"\n\nexport { FolderStack, folderStackVariants }\n"]}
1
+ {"version":3,"sources":["../src/components/primitives/FolderStack/FolderStack.variants.ts","../src/components/primitives/FolderStack/FolderStack.tsx"],"names":[],"mappings":";;;;;AAEO,IAAM,mBAAA,GAAsB,GAAA;AAAA,EACjC,gNAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,kaAAA;AAAA,QACJ,EAAA,EAAI,kaAAA;AAAA,QACJ,OAAA,EACE,gcAAA;AAAA,QACF,EAAA,EAAI,kaAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAA,EAAM,2MAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,mMAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,SAAA;AAAA,MACN,WAAA,EAAa,KAAA;AAAA,MACb,MAAA,EAAQ;AAAA;AACV;AAEJ;AAKO,IAAM,wBAAA,GAGT;AAAA,EACF,EAAA,EAAI;AAAA,IACF,EAAE,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,GAAA,EAAI;AAAA,IACxB,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,GAAA,EAAI;AAAA,IACzB,EAAE,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,MAAA,EAAO;AAAA,IAC3B,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,MAAA;AAAO,GAC9B;AAAA,EACA,EAAA,EAAI;AAAA,IACF,EAAE,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,GAAA,EAAI;AAAA,IACxB,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,GAAA,EAAI;AAAA,IACzB,EAAE,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,MAAA,EAAO;AAAA,IAC3B,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,MAAA;AAAO,GAC9B;AAAA,EACA,OAAA,EAAS;AAAA,IACP,EAAE,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK,GAAA,EAAI;AAAA,IACtB,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,GAAA,EAAI;AAAA,IACzB,EAAE,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK,MAAA,EAAO;AAAA,IACzB,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,MAAA;AAAO,GAC9B;AAAA,EACA,EAAA,EAAI;AAAA,IACF,EAAE,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK,GAAA,EAAI;AAAA,IACtB,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,GAAA,EAAI;AAAA,IACzB,EAAE,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK,MAAA,EAAO;AAAA,IACzB,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,MAAA;AAAO,GAC9B;AAAA,EACA,EAAA,EAAI;AAAA,IACF,EAAE,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK,GAAA,EAAI;AAAA,IACtB,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,GAAA,EAAI;AAAA,IACzB,EAAE,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK,MAAA,EAAO;AAAA,IACzB,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,MAAA;AAAO;AAEhC,CAAA;AC/CA,SAAS,WAAA,CAAY;AAAA,EACnB,KAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP,WAAA,GAAc,KAAA;AAAA,EACd,MAAA,GAAS,KAAA;AAAA,EACT,SAAA;AAAA,EACA,YAAA,EAAc,SAAA;AAAA,EACd,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,UAAW,IAAA,IAAQ,SAAA;AACzB,EAAA,MAAM,SAAA,GAAY,yBAAyB,OAAO,CAAA;AAGlD,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,CAAA,EAAE,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,KAAA,CAAM,CAAC,KAAK,IAAI,CAAA;AAElE,EAAA,MAAM,WAAA,GAAoB,KAAA,CAAA,WAAA;AAAA,IACxB,CAAC,KAAA,KAA4C;AAC3C,MAAA,IAAI,CAAC,WAAA,EAAa;AAClB,MAAA,OAAA,GAAU,OAAO,EAAE,KAAA,EAAO,WAAW,IAAA,CAAK,GAAA,IAAO,CAAA;AAAA,IACnD,CAAA;AAAA,IACA,CAAC,WAAA,EAAa,OAAA,EAAS,KAAK;AAAA,GAC9B;AAEA,EAAA,MAAM,aAAA,GAAsB,KAAA,CAAA,WAAA;AAAA,IAC1B,CAAC,KAAA,KAA+C;AAC9C,MAAA,IAAI,CAAC,WAAA,EAAa;AAClB,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,OAAA,IAAW,KAAA,CAAM,QAAQ,GAAA,EAAK;AAC9C,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,OAAA;AAAA,UACE,KAAA;AAAA,UACA,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,CAAK,KAAI;AAAE,SACjC;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,CAAC,WAAA,EAAa,OAAA,EAAS,KAAK;AAAA,GAC9B;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,mBAAA,CAAoB,EAAE,IAAA,EAAM,WAAA,EAAa,QAAQ,CAAA;AAAA,QACjD;AAAA,OACF;AAAA,MACA,YAAA,EAAY,SAAA;AAAA,MACZ,cAAA,EAAc,WAAA,IAAe,MAAA,GAAS,IAAA,GAAO,MAAA;AAAA,MAC7C,eAAa,MAAA,IAAU,MAAA;AAAA,MACvB,cAAY,KAAA,CAAM,KAAA,CAAM,CAAC,CAAA,KAAM,CAAA,KAAM,IAAI,CAAA,IAAK,MAAA;AAAA,MAC9C,WAAA,EAAW,IAAA;AAAA,MACX,WAAA,EAAU,cAAA;AAAA,MACV,IAAA,EAAM,cAAc,QAAA,GAAW,KAAA;AAAA,MAC/B,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,MAC5B,OAAA,EAAS,cAAc,WAAA,GAAc,MAAA;AAAA,MACrC,SAAA,EAAW,cAAc,aAAA,GAAgB,MAAA;AAAA,MACxC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBAChB,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UAEC,KAAA,EACE;AAAA,YACE,GAAG,UAAU,CAAC,CAAA;AAAA,YACd,UAAU,IAAA,IAAQ;AAAA,WACpB;AAAA,UAEF,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAU,6EAAA;AAAA,UACV,YAAA,EAAY,SAAS,IAAA,IAAQ,MAAA;AAAA,UAC7B,eAAA,EAAe,CAAA;AAAA,UACf,WAAA,EAAU;AAAA,SAAA;AAAA,QAXL,CAAA,kBAAA,EAAqB,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,OAatC;AAAA;AAAA,GACH;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-AJUOTABG.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const folderStackVariants = cva(\n \"relative flex-shrink-0 [&_[data-slot='folder-stack-tile']]:absolute [&_[data-slot='folder-stack-tile']]:bg-[color:var(--tint,theme(colors.neutral.200))] [&_[data-slot='folder-stack-tile']]:transition-colors\",\n {\n variants: {\n size: {\n xs: \"w-[var(--folder-stack-size-xs-width)] h-[var(--folder-stack-size-xs-height)] [&_[data-slot='folder-stack-tile']]:w-[var(--folder-stack-size-xs-tile-width)] [&_[data-slot='folder-stack-tile']]:h-[var(--folder-stack-size-xs-tile-height)] [&_[data-slot='folder-stack-tile']]:rounded-[var(--folder-stack-size-xs-tile-radius)] [&_[data-slot='folder-stack-tile']]:outline-[length:var(--folder-stack-size-xs-outline-width)]\",\n sm: \"w-[var(--folder-stack-size-sm-width)] h-[var(--folder-stack-size-sm-height)] [&_[data-slot='folder-stack-tile']]:w-[var(--folder-stack-size-sm-tile-width)] [&_[data-slot='folder-stack-tile']]:h-[var(--folder-stack-size-sm-tile-height)] [&_[data-slot='folder-stack-tile']]:rounded-[var(--folder-stack-size-sm-tile-radius)] [&_[data-slot='folder-stack-tile']]:outline-[length:var(--folder-stack-size-sm-outline-width)]\",\n default:\n \"w-[var(--folder-stack-size-default-width)] h-[var(--folder-stack-size-default-height)] [&_[data-slot='folder-stack-tile']]:w-[var(--folder-stack-size-default-tile-width)] [&_[data-slot='folder-stack-tile']]:h-[var(--folder-stack-size-default-tile-height)] [&_[data-slot='folder-stack-tile']]:rounded-[var(--folder-stack-size-default-tile-radius)] [&_[data-slot='folder-stack-tile']]:outline-[length:var(--folder-stack-size-default-outline-width)]\",\n lg: \"w-[var(--folder-stack-size-lg-width)] h-[var(--folder-stack-size-lg-height)] [&_[data-slot='folder-stack-tile']]:w-[var(--folder-stack-size-lg-tile-width)] [&_[data-slot='folder-stack-tile']]:h-[var(--folder-stack-size-lg-tile-height)] [&_[data-slot='folder-stack-tile']]:rounded-[var(--folder-stack-size-lg-tile-radius)] [&_[data-slot='folder-stack-tile']]:outline-[length:var(--folder-stack-size-lg-outline-width)]\",\n xl: \"w-[var(--folder-stack-size-xl-width)] h-[var(--folder-stack-size-xl-height)] [&_[data-slot='folder-stack-tile']]:w-[var(--folder-stack-size-xl-tile-width)] [&_[data-slot='folder-stack-tile']]:h-[var(--folder-stack-size-xl-tile-height)] [&_[data-slot='folder-stack-tile']]:rounded-[var(--folder-stack-size-xl-tile-radius)] [&_[data-slot='folder-stack-tile']]:outline-[length:var(--folder-stack-size-xl-outline-width)]\",\n },\n interactive: {\n true: \"cursor-pointer transition-transform hover:scale-[1.02] focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-[color:var(--ring)] motion-reduce:transition-none motion-reduce:hover:scale-100\",\n false: \"\",\n },\n active: {\n true: \"ring-[length:var(--folder-stack-interactive-active-ring-width)] ring-[color:var(--folder-stack-interactive-active-ring-color,var(--primary))] ring-offset-2 ring-offset-[color:var(--background)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n interactive: false,\n active: false,\n },\n },\n)\n\n/** Tile positions per size — top-left, top-right, bottom-left, bottom-right.\n * Returned as inline styles so each tile can be positioned absolutely without\n * exploding the className surface. Values derived from prototype `dam.css`. */\nexport const folderStackTilePositions: Record<\n \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\",\n { left: string; top: string }[]\n> = {\n xs: [\n { left: \"1px\", top: \"0\" },\n { left: \"11px\", top: \"0\" },\n { left: \"1px\", top: \"10px\" },\n { left: \"11px\", top: \"10px\" },\n ],\n sm: [\n { left: \"1px\", top: \"0\" },\n { left: \"15px\", top: \"0\" },\n { left: \"1px\", top: \"13px\" },\n { left: \"15px\", top: \"13px\" },\n ],\n default: [\n { left: \"0\", top: \"0\" },\n { left: \"18px\", top: \"0\" },\n { left: \"0\", top: \"22px\" },\n { left: \"18px\", top: \"22px\" },\n ],\n lg: [\n { left: \"0\", top: \"0\" },\n { left: \"28px\", top: \"0\" },\n { left: \"0\", top: \"30px\" },\n { left: \"28px\", top: \"30px\" },\n ],\n xl: [\n { left: \"0\", top: \"0\" },\n { left: \"36px\", top: \"0\" },\n { left: \"0\", top: \"38px\" },\n { left: \"36px\", top: \"38px\" },\n ],\n}\n","import type { FolderStackProps } from \"./FolderStack.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { folderStackTilePositions, folderStackVariants } from \"./FolderStack.variants\"\n\n/**\n * FolderStack — 2×2 tile preview of folder contents.\n *\n * Renders 4 absolute-positioned tiles tinted with the colors passed in `tints`.\n * Excess tints are ignored; missing slots get a neutral empty fill. Used as\n * leading slot in file-tree rows, inside FolderCards, and as the visual for\n * ShortcutCard/Item nav targets.\n *\n * @example\n * <FolderStack tints={[\"#f97316\", \"#19e699\", \"#a78bfa\", \"#3b82f6\"]} aria-label=\"Folder with 12 files\" />\n *\n * @example\n * <FolderStack tints={collectTints(folder)} size=\"default\" interactive onClick={navigate} aria-label={folder.name} />\n */\nfunction FolderStack({\n tints,\n size = \"default\",\n interactive = false,\n active = false,\n className,\n \"aria-label\": ariaLabel,\n onClick,\n ...props\n}: FolderStackProps) {\n const sizeKey = (size ?? \"default\")\n const positions = folderStackTilePositions[sizeKey]\n\n // Pad to exactly 4 entries — extra tints discarded, missing slots stay empty.\n const slots = Array.from({ length: 4 }, (_, i) => tints[i] ?? null)\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (!interactive) return\n onClick?.(event, { tints, timestamp: Date.now() })\n },\n [interactive, onClick, tints],\n )\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!interactive) return\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault()\n onClick?.(\n event as unknown as React.MouseEvent<HTMLDivElement>,\n { tints, timestamp: Date.now() },\n )\n }\n },\n [interactive, onClick, tints],\n )\n\n return (\n <div\n className={cn(\n folderStackVariants({ size, interactive, active }),\n className,\n )}\n aria-label={ariaLabel}\n aria-pressed={interactive && active ? true : undefined}\n data-active={active || undefined}\n data-empty={slots.every((s) => s === null) || undefined}\n data-size={size}\n data-slot=\"folder-stack\"\n role={interactive ? \"button\" : \"img\"}\n tabIndex={interactive ? 0 : undefined}\n onClick={interactive ? handleClick : undefined}\n onKeyDown={interactive ? handleKeyDown : undefined}\n {...props}\n >\n {slots.map((tint, i) => (\n <span\n key={`folder-stack-tile-${String(i)}`}\n style={\n {\n ...positions[i],\n \"--tint\": tint ?? \"var(--folder-stack-empty-bg, var(--muted))\",\n } as React.CSSProperties\n }\n aria-hidden=\"true\"\n className=\"outline outline-[color:var(--folder-stack-outline-color,var(--background))]\"\n data-empty={tint === null || undefined}\n data-position={i}\n data-slot=\"folder-stack-tile\"\n />\n ))}\n </div>\n )\n}\n\nFolderStack.displayName = \"FolderStack\"\n\nexport { FolderStack, folderStackVariants }\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import { XIcon, Loader2Icon, ChevronDownIcon, CheckIcon } from 'lucide-react';
3
3
  import * as React from 'react';
4
4
  import { cva } from 'class-variance-authority';
@@ -663,5 +663,5 @@ function Autocomplete({
663
663
  }
664
664
 
665
665
  export { Autocomplete };
666
- //# sourceMappingURL=chunk-G5TWK7L3.js.map
667
- //# sourceMappingURL=chunk-G5TWK7L3.js.map
666
+ //# sourceMappingURL=chunk-AP4ZM3DV.js.map
667
+ //# sourceMappingURL=chunk-AP4ZM3DV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/Autocomplete/Autocomplete.variants.ts","../src/components/forms/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"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","file":"chunk-G5TWK7L3.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * AutocompleteWrapper variant styles using CVA\n */\nexport const autocompleteWrapperVariants = cva(\n // Base styles\n [\"relative w-52\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteInput variant styles using CVA\n */\nexport const autocompleteInputVariants = cva(\n // Base styles\n [\n \"flex w-full items-center gap-2 rounded-[var(--autocomplete-input-radius)] border bg-transparent\",\n \"text-[length:var(--autocomplete-input-text-base)] whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none\",\n \"placeholder:text-muted-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"dark:bg-input/30 dark:hover:bg-input/50\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--autocomplete-input-height-sm)] px-[var(--autocomplete-input-padding-x-sm)] py-[var(--autocomplete-input-padding-y-sm)] text-[length:var(--autocomplete-input-text-sm)]\",\n md: \"h-[var(--autocomplete-input-height-md)] px-[var(--autocomplete-input-padding-x-md)] py-[var(--autocomplete-input-padding-y-md)] text-[length:var(--autocomplete-input-text-md)]\",\n lg: \"h-[var(--autocomplete-input-height-lg)] px-[var(--autocomplete-input-padding-x-lg)] py-[var(--autocomplete-input-padding-y-lg)] text-[length:var(--autocomplete-input-text-lg)]\",\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 shadow-none\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * AutocompleteContent variant styles using CVA\n */\nexport const autocompleteContentVariants = cva(\n // Base styles\n [\n \"bg-[color:var(--autocomplete-content-bg)] text-[color:var(--autocomplete-content-fg)]\",\n \"absolute top-full left-0 right-0 z-50 mt-[var(--autocomplete-content-margin-top)] overflow-hidden rounded-[var(--autocomplete-content-radius)] border border-[color:var(--autocomplete-content-border)] shadow-[var(--autocomplete-content-shadow)] p-0\",\n // Animation classes\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteList variant styles using CVA\n */\nexport const autocompleteListVariants = cva(\n [\"max-h-72 overflow-y-auto overflow-x-hidden p-1\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteItem variant styles using CVA\n */\nexport const autocompleteItemVariants = cva(\n [\n \"relative flex cursor-default items-center gap-2 rounded-[var(--autocomplete-item-radius)] px-[var(--autocomplete-item-padding-x)] py-[var(--autocomplete-item-padding-y)] text-[length:var(--autocomplete-item-text)]\",\n \"outline-none select-none\",\n \"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n \"data-[selected=true]:bg-[color:var(--autocomplete-item-highlighted-bg)] data-[selected=true]:text-[color:var(--autocomplete-item-highlighted-fg)]\",\n \"data-[highlighted=true]:bg-[color:var(--autocomplete-item-highlighted-bg)] data-[highlighted=true]:text-[color:var(--autocomplete-item-highlighted-fg)]\",\n \"hover:bg-[color:var(--autocomplete-item-highlighted-bg)] hover:text-[color:var(--autocomplete-item-highlighted-fg)]\",\n \"cursor-pointer\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteEmpty variant styles using CVA\n */\nexport const autocompleteEmptyVariants = cva(\n [\"py-[var(--autocomplete-empty-padding)] text-center text-[length:var(--autocomplete-empty-text)] text-[color:var(--autocomplete-empty-fg)]\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteLoading variant styles using CVA\n */\nexport const autocompleteLoadingVariants = cva(\n [\"flex items-center justify-center gap-2 py-[var(--autocomplete-loading-padding)] text-center text-[length:var(--autocomplete-loading-text)] text-[color:var(--autocomplete-loading-fg)]\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteClear button variant styles using CVA\n */\nexport const autocompleteClearVariants = cva(\n [\n \"inline-flex items-center justify-center rounded-sm\",\n \"text-muted-foreground hover:text-foreground\",\n \"transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"[&_svg]:size-3.5\",\n md: \"[&_svg]:size-4\",\n lg: \"[&_svg]:size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type AutocompleteWrapperVariantProps = VariantProps<typeof autocompleteWrapperVariants>\nexport type AutocompleteInputVariantProps = VariantProps<typeof autocompleteInputVariants>\nexport type AutocompleteContentVariantProps = VariantProps<typeof autocompleteContentVariants>\nexport type AutocompleteListVariantProps = VariantProps<typeof autocompleteListVariants>\nexport type AutocompleteItemVariantProps = VariantProps<typeof autocompleteItemVariants>\nexport type AutocompleteEmptyVariantProps = VariantProps<typeof autocompleteEmptyVariants>\nexport type AutocompleteLoadingVariantProps = VariantProps<typeof autocompleteLoadingVariants>\nexport type AutocompleteClearVariantProps = VariantProps<typeof autocompleteClearVariants>\n","import type { AutocompleteProps } from \"./Autocomplete.types\"\n\nimport { CheckIcon, ChevronDownIcon, Loader2Icon, XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n autocompleteClearVariants,\n autocompleteContentVariants,\n autocompleteEmptyVariants,\n autocompleteInputVariants,\n autocompleteItemVariants,\n autocompleteListVariants,\n autocompleteLoadingVariants,\n autocompleteWrapperVariants,\n} from \"./Autocomplete.variants\"\n\n/**\n * Autocomplete - A searchable input with async loading and debounced search\n *\n * Extends the Combobox pattern with support for async data loading,\n * loading states, and debounced search input.\n *\n * @example\n * ```tsx\n * <Autocomplete\n * options={options}\n * loading={isLoading}\n * onInputChange={(value) => fetchResults(value)}\n * onChange={(value) => setSelected(value)}\n * placeholder=\"Search users...\"\n * debounceMs={300}\n * minChars={2}\n * />\n * ```\n */\n/* eslint-disable sonarjs/cognitive-complexity -- Complex component with many features */\nfunction Autocomplete({\n options = [],\n value: controlledValue,\n defaultValue,\n placeholder = \"Search...\",\n loading = false,\n disabled = false,\n dropdown = false,\n dropdownMode = \"blank\",\n emptyMessage = \"No results found.\",\n error = false,\n errorMessage,\n icon,\n loadingMessage = \"Loading...\",\n autoHighlight = false,\n completeOnFocus = false,\n forceSelection = false,\n multiple = false,\n onChange,\n onClear,\n onInputChange,\n debounceMs = 300,\n minChars = 1,\n showClear = false,\n size = \"md\",\n variant = \"default\",\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n className,\n ...props\n}: AutocompleteProps) {\n // Normalize value to correct type based on multiple mode\n const normalizeDefaultValue = (): string | string[] | undefined => {\n if (multiple) {\n if (Array.isArray(defaultValue)) return defaultValue\n if (defaultValue) return [defaultValue]\n return []\n }\n if (Array.isArray(defaultValue)) return defaultValue[0]\n return defaultValue\n }\n\n // Handle controlled vs uncontrolled value\n const [internalValue, setInternalValue] = React.useState<string | string[] | undefined>(\n normalizeDefaultValue\n )\n const value = controlledValue ?? internalValue\n\n // Normalize value for comparisons (always array for multiple, string for single)\n const selectedValues: string[] = React.useMemo(() => {\n if (multiple) {\n if (Array.isArray(value)) return value\n if (value) return [value]\n return []\n }\n return []\n }, [multiple, value])\n\n // For single mode, get the single value\n const singleValue = multiple ? undefined : (Array.isArray(value) ? value[0] : value)\n\n // Input text state (separate from selected value)\n // In multiple mode, input is always empty after selection\n const [inputValue, setInputValue] = React.useState(() => {\n if (multiple) return \"\"\n const initialValue = controlledValue ?? defaultValue\n if (initialValue && !Array.isArray(initialValue)) {\n const option = options.find((opt) => opt.value === initialValue)\n return option?.label ?? \"\"\n }\n return \"\"\n })\n\n // Handle controlled vs uncontrolled open state\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen)\n const open = controlledOpen ?? internalOpen\n\n // Track highlighted index for keyboard navigation\n const [highlightedIndex, setHighlightedIndex] = React.useState(-1)\n\n // Refs for debounce and click-outside handling\n const debounceRef = React.useRef<null | ReturnType<typeof setTimeout>>(null)\n const wrapperRef = React.useRef<HTMLDivElement>(null)\n const inputRef = React.useRef<HTMLInputElement>(null)\n const listRef = React.useRef<HTMLDivElement>(null)\n\n // Track if dropdown was opened via completeOnFocus\n const openedViaCompleteOnFocusRef = React.useRef(false)\n\n // Track if dropdown was opened via dropdown button\n const openedViaDropdownButtonRef = React.useRef(false)\n\n // Track if user is clicking on dropdown (to prevent blur validation)\n const isSelectingFromDropdownRef = React.useRef(false)\n\n // Filtered options (show when minChars is met OR when opened via completeOnFocus OR dropdown button)\n /* eslint-disable react-hooks/refs -- Intentional ref read during render: openedViaCompleteOnFocusRef and openedViaDropdownButtonRef track triggered open state */\n const shouldShowSuggestions = inputValue.length >= minChars || (completeOnFocus && open && openedViaCompleteOnFocusRef.current) || (dropdown && open && openedViaDropdownButtonRef.current)\n const filteredOptions = React.useMemo(() => {\n if (!shouldShowSuggestions) return []\n return options\n }, [options, shouldShowSuggestions])\n /* eslint-enable react-hooks/refs */\n\n // Sync controlled value to input text when it changes.\n /* eslint-disable react-you-might-not-need-an-effect/no-pass-data-to-parent, react-you-might-not-need-an-effect/no-derived-state, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- Controlled value sync */\n React.useEffect(() => {\n if (controlledValue === undefined) return\n const option = options.find((opt) => opt.value === controlledValue)\n if (option) {\n setInputValue((prev) => (prev === option.label ? prev : option.label))\n }\n }, [controlledValue, options])\n /* eslint-enable react-you-might-not-need-an-effect/no-pass-data-to-parent, react-you-might-not-need-an-effect/no-derived-state, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n // Track previous open state for auto-highlight effect\n const prevOpenRef = React.useRef(open)\n\n // Handle open state changes\n const handleOpenChange = React.useCallback(\n (newOpen: boolean) => {\n if (controlledOpen === undefined) {\n setInternalOpen(newOpen)\n }\n onOpenChange?.(newOpen)\n\n // Reset highlighted index and open-via flags when closing\n if (!newOpen) {\n setHighlightedIndex(-1)\n openedViaCompleteOnFocusRef.current = false\n openedViaDropdownButtonRef.current = false\n }\n },\n [controlledOpen, onOpenChange]\n )\n\n // Auto-highlight first enabled option when dropdown opens\n /* eslint-disable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-event-handler, react-you-might-not-need-an-effect/no-pass-live-state-to-parent, react-you-might-not-need-an-effect/no-pass-ref-to-parent, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- Auto-highlight on open transition */\n React.useEffect(() => {\n if (open && !prevOpenRef.current && autoHighlight && filteredOptions.length > 0) {\n const firstEnabledIndex = filteredOptions.findIndex((opt) => !opt.disabled)\n setHighlightedIndex(firstEnabledIndex >= 0 ? firstEnabledIndex : -1)\n }\n prevOpenRef.current = open\n }, [open, autoHighlight, filteredOptions])\n /* eslint-enable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-event-handler, react-you-might-not-need-an-effect/no-pass-live-state-to-parent, react-you-might-not-need-an-effect/no-pass-ref-to-parent, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n // Handle value selection\n const handleSelect = React.useCallback(\n (selectedValue: string) => {\n const selectedOption = options.find((opt) => opt.value === selectedValue)\n if (selectedOption && !selectedOption.disabled) {\n if (multiple) {\n // Multiple mode: toggle selection\n const isSelected = selectedValues.includes(selectedValue)\n const newValues = isSelected\n ? selectedValues.filter((v) => v !== selectedValue)\n : [...selectedValues, selectedValue]\n\n if (controlledValue === undefined) {\n setInternalValue(newValues)\n }\n // Clear input after selection in multiple mode\n setInputValue(\"\")\n onChange?.(newValues)\n // Don't close dropdown in multiple mode\n } else {\n // Single mode: select and close\n if (controlledValue === undefined) {\n setInternalValue(selectedValue)\n }\n setInputValue(selectedOption.label)\n onChange?.(selectedValue)\n handleOpenChange(false)\n }\n }\n },\n [controlledValue, onChange, handleOpenChange, options, multiple, selectedValues]\n )\n\n // Debounced input change handler\n const handleInputChange = React.useCallback(\n (newValue: string) => {\n setInputValue(newValue)\n\n // Clear previous debounce timeout\n if (debounceRef.current) {\n clearTimeout(debounceRef.current)\n }\n\n // Open dropdown if minChars is met\n if (newValue.length >= minChars) {\n handleOpenChange(true)\n } else {\n handleOpenChange(false)\n }\n\n // Debounce the onInputChange callback\n debounceRef.current = setTimeout(() => {\n onInputChange?.(newValue)\n }, debounceMs)\n },\n [minChars, debounceMs, onInputChange, handleOpenChange]\n )\n\n // Cleanup debounce on unmount\n React.useEffect(() => {\n return () => {\n if (debounceRef.current) {\n clearTimeout(debounceRef.current)\n }\n }\n }, [])\n\n // Handle click outside to close dropdown\n React.useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (wrapperRef.current && !wrapperRef.current.contains(event.target as Node)) {\n handleOpenChange(false)\n }\n }\n\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n }\n }, [handleOpenChange])\n\n // Handle removing a single tag in multiple mode\n const handleRemoveTag = React.useCallback(\n (valueToRemove: string) => {\n const newValues = selectedValues.filter((v) => v !== valueToRemove)\n if (controlledValue === undefined) {\n setInternalValue(newValues)\n }\n onChange?.(newValues)\n inputRef.current?.focus()\n },\n [selectedValues, controlledValue, onChange]\n )\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n // Alt+ArrowDown opens dropdown (when dropdown button is enabled)\n if (!open && dropdown && event.altKey && event.key === \"ArrowDown\") {\n event.preventDefault()\n openedViaDropdownButtonRef.current = true\n if (dropdownMode === \"blank\") {\n setInputValue(\"\")\n }\n handleOpenChange(true)\n return\n }\n\n if (!open && (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") && inputValue.length >= minChars) {\n handleOpenChange(true)\n return\n }\n\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault()\n setHighlightedIndex((prev) => {\n const enabledOptions = filteredOptions.filter((opt) => !opt.disabled)\n const currentEnabled = enabledOptions.findIndex(\n (opt) => opt.value === filteredOptions[prev]?.value\n )\n const nextEnabled = currentEnabled + 1\n if (nextEnabled >= enabledOptions.length) {\n return filteredOptions.findIndex((opt) => opt.value === enabledOptions[0]?.value)\n }\n return filteredOptions.findIndex((opt) => opt.value === enabledOptions[nextEnabled]?.value)\n })\n break\n case \"ArrowUp\":\n event.preventDefault()\n setHighlightedIndex((prev) => {\n const enabledOptions = filteredOptions.filter((opt) => !opt.disabled)\n const currentEnabled = enabledOptions.findIndex(\n (opt) => opt.value === filteredOptions[prev]?.value\n )\n const prevEnabled = currentEnabled - 1\n if (prevEnabled < 0) {\n return filteredOptions.findIndex(\n (opt) => opt.value === enabledOptions[enabledOptions.length - 1]?.value\n )\n }\n return filteredOptions.findIndex((opt) => opt.value === enabledOptions[prevEnabled]?.value)\n })\n break\n case \"Enter\":\n event.preventDefault()\n if (highlightedIndex >= 0 && highlightedIndex < filteredOptions.length) {\n const option = filteredOptions[highlightedIndex]\n if (option && !option.disabled) {\n handleSelect(option.value)\n }\n }\n break\n case \"Escape\":\n event.preventDefault()\n handleOpenChange(false)\n inputRef.current?.blur()\n break\n case \"Tab\":\n handleOpenChange(false)\n break\n case \"Backspace\":\n // In multiple mode, remove last tag when input is empty\n if (multiple && inputValue.length === 0 && selectedValues.length > 0) {\n event.preventDefault()\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- We've verified selectedValues.length > 0 above\n handleRemoveTag(selectedValues[selectedValues.length - 1]!)\n }\n break\n }\n },\n [open, highlightedIndex, filteredOptions, handleSelect, handleOpenChange, inputValue.length, minChars, multiple, selectedValues, handleRemoveTag, dropdown, dropdownMode]\n )\n\n // Scroll highlighted item into view when keyboard navigating\n /* eslint-disable react-you-might-not-need-an-effect/no-event-handler -- Scroll sync is a visual side effect, not event handling */\n React.useEffect(() => {\n if (highlightedIndex >= 0 && listRef.current) {\n const highlightedElement = listRef.current.querySelector(\n `[data-index=\"${String(highlightedIndex)}\"]`\n )\n highlightedElement?.scrollIntoView({ block: \"nearest\" })\n }\n }, [highlightedIndex])\n /* eslint-enable react-you-might-not-need-an-effect/no-event-handler */\n\n // Handle input focus\n const handleFocus = React.useCallback(() => {\n if (completeOnFocus) {\n openedViaCompleteOnFocusRef.current = true\n handleOpenChange(true)\n // Trigger onInputChange with current value (which might be empty)\n onInputChange?.(inputValue)\n } else if (inputValue.length >= minChars) {\n handleOpenChange(true)\n }\n }, [inputValue, minChars, handleOpenChange, completeOnFocus, onInputChange])\n\n // Find option by label (case-insensitive)\n const findOptionByLabel = React.useCallback(\n (label: string) => {\n const normalizedLabel = label.toLowerCase().trim()\n return options.find((opt) => opt.label.toLowerCase() === normalizedLabel)\n },\n [options]\n )\n\n // Check if current input text matches an option (for forceSelection validation)\n const inputMatchesOption = React.useMemo(() => {\n if (!forceSelection || inputValue.length === 0) return true\n return findOptionByLabel(inputValue) !== undefined\n }, [forceSelection, inputValue, findOptionByLabel])\n\n // Handle blur for forceSelection validation\n const handleBlur = React.useCallback(() => {\n // Skip validation if user is clicking on dropdown\n if (isSelectingFromDropdownRef.current) {\n isSelectingFromDropdownRef.current = false\n return\n }\n\n if (!forceSelection) return\n\n const matchingOption = findOptionByLabel(inputValue)\n\n if (matchingOption) {\n // Input matches an option - select it\n if (controlledValue === undefined) {\n setInternalValue(matchingOption.value)\n }\n setInputValue(matchingOption.label)\n onChange?.(matchingOption.value)\n } else if (inputValue.length > 0) {\n // Input doesn't match - revert to last valid selection or clear\n if (value) {\n // Revert to last valid selection\n const lastValidOption = options.find((opt) => opt.value === value)\n if (lastValidOption) {\n setInputValue(lastValidOption.label)\n }\n } else {\n // No prior selection - clear input\n if (controlledValue === undefined) {\n setInternalValue(undefined)\n }\n setInputValue(\"\")\n // eslint-disable-next-line unicorn/no-useless-undefined -- undefined is intentional: signals cleared state to parent\n onChange?.(undefined)\n }\n }\n }, [forceSelection, inputValue, value, options, controlledValue, onChange, findOptionByLabel])\n\n // Handle clear button click\n const handleClear = React.useCallback(() => {\n // Reset internal value\n if (controlledValue === undefined) {\n setInternalValue(multiple ? [] : undefined)\n }\n setInputValue(\"\")\n \n onChange?.(multiple ? [] : undefined)\n onClear?.()\n // Focus the input after clearing\n inputRef.current?.focus()\n }, [controlledValue, onChange, onClear, multiple])\n\n // Handle dropdown button click\n const handleDropdownClick = React.useCallback(() => {\n if (!open) {\n // Dropdown is closed - open it\n openedViaDropdownButtonRef.current = true\n if (dropdownMode === \"blank\") {\n setInputValue(\"\")\n }\n handleOpenChange(true)\n inputRef.current?.focus()\n } else if (openedViaDropdownButtonRef.current) {\n // Dropdown was opened via button click - toggle it closed\n handleOpenChange(false)\n } else {\n // Dropdown was opened via typing - handle based on mode\n if (dropdownMode === \"blank\") {\n // Clear input to show all options\n setInputValue(\"\")\n openedViaDropdownButtonRef.current = true\n }\n // In current mode, do nothing (keep dropdown open with current filter)\n inputRef.current?.focus()\n }\n }, [open, handleOpenChange, dropdownMode])\n\n // Determine if clear button should be shown\n // In multiple mode, show when there are selected values OR input text\n const shouldShowClear =\n showClear &&\n !disabled &&\n !loading &&\n (multiple ? selectedValues.length > 0 || inputValue.length > 0 : inputValue.length > 0)\n\n // Generate unique ID for error message association\n const errorId = React.useId()\n\n return (\n <div\n ref={wrapperRef}\n className={cn(autocompleteWrapperVariants(), className)}\n data-disabled={disabled || undefined}\n data-error={error || undefined}\n data-loading={loading || undefined}\n data-size={size}\n data-slot=\"autocomplete\"\n data-variant={variant}\n {...props}\n >\n <div className=\"relative\">\n {icon && (\n <span\n className=\"absolute left-2 top-1/2 -translate-y-1/2 flex items-center pointer-events-none text-muted-foreground [&_svg]:size-4 [&_svg]:shrink-0\"\n data-slot=\"autocomplete-icon\"\n >\n {icon}\n </span>\n )}\n {multiple && selectedValues.length > 0 && (\n <div\n className={cn(\n \"absolute top-1/2 -translate-y-1/2 flex flex-wrap gap-1 max-w-[var(--autocomplete-tags-max-width)] z-10\",\n icon ? \"left-8\" : \"left-2\"\n )}\n data-slot=\"autocomplete-tags\"\n >\n {selectedValues.map((val) => {\n const opt = options.find((o) => o.value === val)\n return (\n <span\n key={val}\n className=\"inline-flex items-center gap-1 rounded bg-muted px-2 py-0.5 text-xs font-medium text-muted-foreground\"\n data-slot=\"autocomplete-tag\"\n >\n {opt?.label ?? val}\n <button\n aria-label={`Remove ${opt?.label ?? val}`}\n className=\"hover:text-foreground\"\n data-slot=\"autocomplete-tag-remove\"\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n handleRemoveTag(val)\n }}\n >\n <XIcon aria-hidden=\"true\" className=\"size-3\" />\n </button>\n </span>\n )\n })}\n </div>\n )}\n <input\n ref={inputRef}\n aria-activedescendant={\n highlightedIndex >= 0 ? `autocomplete-option-${String(highlightedIndex)}` : undefined\n }\n className={cn(\n autocompleteInputVariants({ size, variant }),\n // Left padding: icon = pl-8\n icon && \"pl-8\",\n // Right padding: both dropdown and (loading or clear) = pr-14, only one = pr-8\n dropdown && (loading || shouldShowClear) && \"pr-14\",\n !dropdown && (loading || shouldShowClear) && \"pr-8\",\n dropdown && !loading && !shouldShowClear && \"pr-8\",\n multiple && selectedValues.length > 0 && (icon ? \"pl-[calc(70%+2rem)]\" : \"pl-[calc(70%+0.5rem)]\")\n )}\n aria-autocomplete=\"list\"\n aria-controls={open ? \"autocomplete-listbox\" : undefined}\n aria-describedby={error && errorMessage ? errorId : undefined}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-invalid={error || (forceSelection && !inputMatchesOption) ? true : undefined}\n data-slot=\"autocomplete-input\"\n disabled={disabled}\n placeholder={multiple && selectedValues.length > 0 ? \"\" : placeholder}\n role=\"combobox\"\n type=\"text\"\n value={inputValue}\n onBlur={handleBlur}\n onChange={(e) => { handleInputChange(e.target.value) }}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n />\n {loading && (\n <div className=\"absolute right-2 top-1/2 -translate-y-1/2\">\n <Loader2Icon\n aria-hidden=\"true\"\n className=\"size-4 animate-spin text-muted-foreground\"\n data-slot=\"autocomplete-spinner\"\n />\n </div>\n )}\n {shouldShowClear && (\n <button\n className={cn(\n \"absolute top-1/2 -translate-y-1/2\",\n dropdown ? \"right-8\" : \"right-2\",\n autocompleteClearVariants({ size })\n )}\n aria-label=\"Clear\"\n data-slot=\"autocomplete-clear\"\n type=\"button\"\n onClick={handleClear}\n >\n <XIcon aria-hidden=\"true\" />\n </button>\n )}\n {dropdown && (\n <button\n aria-label=\"Toggle dropdown\"\n className=\"absolute right-2 top-1/2 -translate-y-1/2 rounded p-0.5 text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\"\n data-slot=\"autocomplete-dropdown\"\n disabled={disabled}\n type=\"button\"\n onClick={handleDropdownClick}\n >\n <ChevronDownIcon aria-hidden=\"true\" className=\"size-4\" />\n </button>\n )}\n </div>\n\n {/* eslint-disable-next-line react-hooks/refs -- shouldShowSuggestions uses refs for tracking open state */}\n {open && shouldShowSuggestions && (\n <div\n className={cn(autocompleteContentVariants())}\n data-slot=\"autocomplete-content\"\n data-state=\"open\"\n >\n <div\n ref={listRef}\n className={cn(autocompleteListVariants())}\n data-slot=\"autocomplete-list\"\n id=\"autocomplete-listbox\"\n role=\"listbox\"\n >\n {loading ? (\n <div className={cn(autocompleteLoadingVariants())}>\n <Loader2Icon aria-hidden=\"true\" className=\"size-4 animate-spin\" />\n {loadingMessage}\n </div>\n ) : filteredOptions.length === 0 ? (\n <div className={cn(autocompleteEmptyVariants())}>{emptyMessage}</div>\n ) : (\n filteredOptions.map((option, index) => {\n const isSelected = multiple\n ? selectedValues.includes(option.value)\n : singleValue === option.value\n return (\n <div\n key={option.value}\n aria-disabled={option.disabled}\n aria-selected={isSelected}\n className={cn(autocompleteItemVariants())}\n data-disabled={option.disabled ?? undefined}\n data-highlighted={highlightedIndex === index || undefined}\n data-index={index}\n data-selected={isSelected || undefined}\n data-slot=\"autocomplete-item\"\n id={`autocomplete-option-${String(index)}`}\n role=\"option\"\n onClick={() => {\n if (!option.disabled) {\n handleSelect(option.value)\n }\n }}\n onMouseDown={() => {\n // Prevent blur validation when clicking on dropdown item\n isSelectingFromDropdownRef.current = true\n }}\n onMouseEnter={() => {\n if (!option.disabled) {\n setHighlightedIndex(index)\n }\n }}\n >\n <CheckIcon\n className={cn(\n \"size-4\",\n isSelected ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n {option.label}\n </div>\n )\n })\n )}\n </div>\n </div>\n )}\n\n {error && errorMessage && (\n <p\n className=\"mt-1.5 text-sm text-destructive\"\n data-slot=\"autocomplete-error\"\n id={errorId}\n role=\"alert\"\n >\n {errorMessage}\n </p>\n )}\n </div>\n )\n}\n\nexport { Autocomplete }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/Autocomplete/Autocomplete.variants.ts","../src/components/forms/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"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","file":"chunk-AP4ZM3DV.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * AutocompleteWrapper variant styles using CVA\n */\nexport const autocompleteWrapperVariants = cva(\n // Base styles\n [\"relative w-52\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteInput variant styles using CVA\n */\nexport const autocompleteInputVariants = cva(\n // Base styles\n [\n \"flex w-full items-center gap-2 rounded-[var(--autocomplete-input-radius)] border bg-transparent\",\n \"text-[length:var(--autocomplete-input-text-base)] whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none\",\n \"placeholder:text-muted-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"dark:bg-input/30 dark:hover:bg-input/50\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--autocomplete-input-height-sm)] px-[var(--autocomplete-input-padding-x-sm)] py-[var(--autocomplete-input-padding-y-sm)] text-[length:var(--autocomplete-input-text-sm)]\",\n md: \"h-[var(--autocomplete-input-height-md)] px-[var(--autocomplete-input-padding-x-md)] py-[var(--autocomplete-input-padding-y-md)] text-[length:var(--autocomplete-input-text-md)]\",\n lg: \"h-[var(--autocomplete-input-height-lg)] px-[var(--autocomplete-input-padding-x-lg)] py-[var(--autocomplete-input-padding-y-lg)] text-[length:var(--autocomplete-input-text-lg)]\",\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 shadow-none\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * AutocompleteContent variant styles using CVA\n */\nexport const autocompleteContentVariants = cva(\n // Base styles\n [\n \"bg-[color:var(--autocomplete-content-bg)] text-[color:var(--autocomplete-content-fg)]\",\n \"absolute top-full left-0 right-0 z-50 mt-[var(--autocomplete-content-margin-top)] overflow-hidden rounded-[var(--autocomplete-content-radius)] border border-[color:var(--autocomplete-content-border)] shadow-[var(--autocomplete-content-shadow)] p-0\",\n // Animation classes\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteList variant styles using CVA\n */\nexport const autocompleteListVariants = cva(\n [\"max-h-72 overflow-y-auto overflow-x-hidden p-1\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteItem variant styles using CVA\n */\nexport const autocompleteItemVariants = cva(\n [\n \"relative flex cursor-default items-center gap-2 rounded-[var(--autocomplete-item-radius)] px-[var(--autocomplete-item-padding-x)] py-[var(--autocomplete-item-padding-y)] text-[length:var(--autocomplete-item-text)]\",\n \"outline-none select-none\",\n \"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n \"data-[selected=true]:bg-[color:var(--autocomplete-item-highlighted-bg)] data-[selected=true]:text-[color:var(--autocomplete-item-highlighted-fg)]\",\n \"data-[highlighted=true]:bg-[color:var(--autocomplete-item-highlighted-bg)] data-[highlighted=true]:text-[color:var(--autocomplete-item-highlighted-fg)]\",\n \"hover:bg-[color:var(--autocomplete-item-highlighted-bg)] hover:text-[color:var(--autocomplete-item-highlighted-fg)]\",\n \"cursor-pointer\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteEmpty variant styles using CVA\n */\nexport const autocompleteEmptyVariants = cva(\n [\"py-[var(--autocomplete-empty-padding)] text-center text-[length:var(--autocomplete-empty-text)] text-[color:var(--autocomplete-empty-fg)]\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteLoading variant styles using CVA\n */\nexport const autocompleteLoadingVariants = cva(\n [\"flex items-center justify-center gap-2 py-[var(--autocomplete-loading-padding)] text-center text-[length:var(--autocomplete-loading-text)] text-[color:var(--autocomplete-loading-fg)]\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * AutocompleteClear button variant styles using CVA\n */\nexport const autocompleteClearVariants = cva(\n [\n \"inline-flex items-center justify-center rounded-sm\",\n \"text-muted-foreground hover:text-foreground\",\n \"transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"[&_svg]:size-3.5\",\n md: \"[&_svg]:size-4\",\n lg: \"[&_svg]:size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type AutocompleteWrapperVariantProps = VariantProps<typeof autocompleteWrapperVariants>\nexport type AutocompleteInputVariantProps = VariantProps<typeof autocompleteInputVariants>\nexport type AutocompleteContentVariantProps = VariantProps<typeof autocompleteContentVariants>\nexport type AutocompleteListVariantProps = VariantProps<typeof autocompleteListVariants>\nexport type AutocompleteItemVariantProps = VariantProps<typeof autocompleteItemVariants>\nexport type AutocompleteEmptyVariantProps = VariantProps<typeof autocompleteEmptyVariants>\nexport type AutocompleteLoadingVariantProps = VariantProps<typeof autocompleteLoadingVariants>\nexport type AutocompleteClearVariantProps = VariantProps<typeof autocompleteClearVariants>\n","import type { AutocompleteProps } from \"./Autocomplete.types\"\n\nimport { CheckIcon, ChevronDownIcon, Loader2Icon, XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n autocompleteClearVariants,\n autocompleteContentVariants,\n autocompleteEmptyVariants,\n autocompleteInputVariants,\n autocompleteItemVariants,\n autocompleteListVariants,\n autocompleteLoadingVariants,\n autocompleteWrapperVariants,\n} from \"./Autocomplete.variants\"\n\n/**\n * Autocomplete - A searchable input with async loading and debounced search\n *\n * Extends the Combobox pattern with support for async data loading,\n * loading states, and debounced search input.\n *\n * @example\n * ```tsx\n * <Autocomplete\n * options={options}\n * loading={isLoading}\n * onInputChange={(value) => fetchResults(value)}\n * onChange={(value) => setSelected(value)}\n * placeholder=\"Search users...\"\n * debounceMs={300}\n * minChars={2}\n * />\n * ```\n */\n/* eslint-disable sonarjs/cognitive-complexity -- Complex component with many features */\nfunction Autocomplete({\n options = [],\n value: controlledValue,\n defaultValue,\n placeholder = \"Search...\",\n loading = false,\n disabled = false,\n dropdown = false,\n dropdownMode = \"blank\",\n emptyMessage = \"No results found.\",\n error = false,\n errorMessage,\n icon,\n loadingMessage = \"Loading...\",\n autoHighlight = false,\n completeOnFocus = false,\n forceSelection = false,\n multiple = false,\n onChange,\n onClear,\n onInputChange,\n debounceMs = 300,\n minChars = 1,\n showClear = false,\n size = \"md\",\n variant = \"default\",\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n className,\n ...props\n}: AutocompleteProps) {\n // Normalize value to correct type based on multiple mode\n const normalizeDefaultValue = (): string | string[] | undefined => {\n if (multiple) {\n if (Array.isArray(defaultValue)) return defaultValue\n if (defaultValue) return [defaultValue]\n return []\n }\n if (Array.isArray(defaultValue)) return defaultValue[0]\n return defaultValue\n }\n\n // Handle controlled vs uncontrolled value\n const [internalValue, setInternalValue] = React.useState<string | string[] | undefined>(\n normalizeDefaultValue\n )\n const value = controlledValue ?? internalValue\n\n // Normalize value for comparisons (always array for multiple, string for single)\n const selectedValues: string[] = React.useMemo(() => {\n if (multiple) {\n if (Array.isArray(value)) return value\n if (value) return [value]\n return []\n }\n return []\n }, [multiple, value])\n\n // For single mode, get the single value\n const singleValue = multiple ? undefined : (Array.isArray(value) ? value[0] : value)\n\n // Input text state (separate from selected value)\n // In multiple mode, input is always empty after selection\n const [inputValue, setInputValue] = React.useState(() => {\n if (multiple) return \"\"\n const initialValue = controlledValue ?? defaultValue\n if (initialValue && !Array.isArray(initialValue)) {\n const option = options.find((opt) => opt.value === initialValue)\n return option?.label ?? \"\"\n }\n return \"\"\n })\n\n // Handle controlled vs uncontrolled open state\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen)\n const open = controlledOpen ?? internalOpen\n\n // Track highlighted index for keyboard navigation\n const [highlightedIndex, setHighlightedIndex] = React.useState(-1)\n\n // Refs for debounce and click-outside handling\n const debounceRef = React.useRef<null | ReturnType<typeof setTimeout>>(null)\n const wrapperRef = React.useRef<HTMLDivElement>(null)\n const inputRef = React.useRef<HTMLInputElement>(null)\n const listRef = React.useRef<HTMLDivElement>(null)\n\n // Track if dropdown was opened via completeOnFocus\n const openedViaCompleteOnFocusRef = React.useRef(false)\n\n // Track if dropdown was opened via dropdown button\n const openedViaDropdownButtonRef = React.useRef(false)\n\n // Track if user is clicking on dropdown (to prevent blur validation)\n const isSelectingFromDropdownRef = React.useRef(false)\n\n // Filtered options (show when minChars is met OR when opened via completeOnFocus OR dropdown button)\n /* eslint-disable react-hooks/refs -- Intentional ref read during render: openedViaCompleteOnFocusRef and openedViaDropdownButtonRef track triggered open state */\n const shouldShowSuggestions = inputValue.length >= minChars || (completeOnFocus && open && openedViaCompleteOnFocusRef.current) || (dropdown && open && openedViaDropdownButtonRef.current)\n const filteredOptions = React.useMemo(() => {\n if (!shouldShowSuggestions) return []\n return options\n }, [options, shouldShowSuggestions])\n /* eslint-enable react-hooks/refs */\n\n // Sync controlled value to input text when it changes.\n /* eslint-disable react-you-might-not-need-an-effect/no-pass-data-to-parent, react-you-might-not-need-an-effect/no-derived-state, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- Controlled value sync */\n React.useEffect(() => {\n if (controlledValue === undefined) return\n const option = options.find((opt) => opt.value === controlledValue)\n if (option) {\n setInputValue((prev) => (prev === option.label ? prev : option.label))\n }\n }, [controlledValue, options])\n /* eslint-enable react-you-might-not-need-an-effect/no-pass-data-to-parent, react-you-might-not-need-an-effect/no-derived-state, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n // Track previous open state for auto-highlight effect\n const prevOpenRef = React.useRef(open)\n\n // Handle open state changes\n const handleOpenChange = React.useCallback(\n (newOpen: boolean) => {\n if (controlledOpen === undefined) {\n setInternalOpen(newOpen)\n }\n onOpenChange?.(newOpen)\n\n // Reset highlighted index and open-via flags when closing\n if (!newOpen) {\n setHighlightedIndex(-1)\n openedViaCompleteOnFocusRef.current = false\n openedViaDropdownButtonRef.current = false\n }\n },\n [controlledOpen, onOpenChange]\n )\n\n // Auto-highlight first enabled option when dropdown opens\n /* eslint-disable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-event-handler, react-you-might-not-need-an-effect/no-pass-live-state-to-parent, react-you-might-not-need-an-effect/no-pass-ref-to-parent, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- Auto-highlight on open transition */\n React.useEffect(() => {\n if (open && !prevOpenRef.current && autoHighlight && filteredOptions.length > 0) {\n const firstEnabledIndex = filteredOptions.findIndex((opt) => !opt.disabled)\n setHighlightedIndex(firstEnabledIndex >= 0 ? firstEnabledIndex : -1)\n }\n prevOpenRef.current = open\n }, [open, autoHighlight, filteredOptions])\n /* eslint-enable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-event-handler, react-you-might-not-need-an-effect/no-pass-live-state-to-parent, react-you-might-not-need-an-effect/no-pass-ref-to-parent, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n // Handle value selection\n const handleSelect = React.useCallback(\n (selectedValue: string) => {\n const selectedOption = options.find((opt) => opt.value === selectedValue)\n if (selectedOption && !selectedOption.disabled) {\n if (multiple) {\n // Multiple mode: toggle selection\n const isSelected = selectedValues.includes(selectedValue)\n const newValues = isSelected\n ? selectedValues.filter((v) => v !== selectedValue)\n : [...selectedValues, selectedValue]\n\n if (controlledValue === undefined) {\n setInternalValue(newValues)\n }\n // Clear input after selection in multiple mode\n setInputValue(\"\")\n onChange?.(newValues)\n // Don't close dropdown in multiple mode\n } else {\n // Single mode: select and close\n if (controlledValue === undefined) {\n setInternalValue(selectedValue)\n }\n setInputValue(selectedOption.label)\n onChange?.(selectedValue)\n handleOpenChange(false)\n }\n }\n },\n [controlledValue, onChange, handleOpenChange, options, multiple, selectedValues]\n )\n\n // Debounced input change handler\n const handleInputChange = React.useCallback(\n (newValue: string) => {\n setInputValue(newValue)\n\n // Clear previous debounce timeout\n if (debounceRef.current) {\n clearTimeout(debounceRef.current)\n }\n\n // Open dropdown if minChars is met\n if (newValue.length >= minChars) {\n handleOpenChange(true)\n } else {\n handleOpenChange(false)\n }\n\n // Debounce the onInputChange callback\n debounceRef.current = setTimeout(() => {\n onInputChange?.(newValue)\n }, debounceMs)\n },\n [minChars, debounceMs, onInputChange, handleOpenChange]\n )\n\n // Cleanup debounce on unmount\n React.useEffect(() => {\n return () => {\n if (debounceRef.current) {\n clearTimeout(debounceRef.current)\n }\n }\n }, [])\n\n // Handle click outside to close dropdown\n React.useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (wrapperRef.current && !wrapperRef.current.contains(event.target as Node)) {\n handleOpenChange(false)\n }\n }\n\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n }\n }, [handleOpenChange])\n\n // Handle removing a single tag in multiple mode\n const handleRemoveTag = React.useCallback(\n (valueToRemove: string) => {\n const newValues = selectedValues.filter((v) => v !== valueToRemove)\n if (controlledValue === undefined) {\n setInternalValue(newValues)\n }\n onChange?.(newValues)\n inputRef.current?.focus()\n },\n [selectedValues, controlledValue, onChange]\n )\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n // Alt+ArrowDown opens dropdown (when dropdown button is enabled)\n if (!open && dropdown && event.altKey && event.key === \"ArrowDown\") {\n event.preventDefault()\n openedViaDropdownButtonRef.current = true\n if (dropdownMode === \"blank\") {\n setInputValue(\"\")\n }\n handleOpenChange(true)\n return\n }\n\n if (!open && (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") && inputValue.length >= minChars) {\n handleOpenChange(true)\n return\n }\n\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault()\n setHighlightedIndex((prev) => {\n const enabledOptions = filteredOptions.filter((opt) => !opt.disabled)\n const currentEnabled = enabledOptions.findIndex(\n (opt) => opt.value === filteredOptions[prev]?.value\n )\n const nextEnabled = currentEnabled + 1\n if (nextEnabled >= enabledOptions.length) {\n return filteredOptions.findIndex((opt) => opt.value === enabledOptions[0]?.value)\n }\n return filteredOptions.findIndex((opt) => opt.value === enabledOptions[nextEnabled]?.value)\n })\n break\n case \"ArrowUp\":\n event.preventDefault()\n setHighlightedIndex((prev) => {\n const enabledOptions = filteredOptions.filter((opt) => !opt.disabled)\n const currentEnabled = enabledOptions.findIndex(\n (opt) => opt.value === filteredOptions[prev]?.value\n )\n const prevEnabled = currentEnabled - 1\n if (prevEnabled < 0) {\n return filteredOptions.findIndex(\n (opt) => opt.value === enabledOptions[enabledOptions.length - 1]?.value\n )\n }\n return filteredOptions.findIndex((opt) => opt.value === enabledOptions[prevEnabled]?.value)\n })\n break\n case \"Enter\":\n event.preventDefault()\n if (highlightedIndex >= 0 && highlightedIndex < filteredOptions.length) {\n const option = filteredOptions[highlightedIndex]\n if (option && !option.disabled) {\n handleSelect(option.value)\n }\n }\n break\n case \"Escape\":\n event.preventDefault()\n handleOpenChange(false)\n inputRef.current?.blur()\n break\n case \"Tab\":\n handleOpenChange(false)\n break\n case \"Backspace\":\n // In multiple mode, remove last tag when input is empty\n if (multiple && inputValue.length === 0 && selectedValues.length > 0) {\n event.preventDefault()\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- We've verified selectedValues.length > 0 above\n handleRemoveTag(selectedValues[selectedValues.length - 1]!)\n }\n break\n }\n },\n [open, highlightedIndex, filteredOptions, handleSelect, handleOpenChange, inputValue.length, minChars, multiple, selectedValues, handleRemoveTag, dropdown, dropdownMode]\n )\n\n // Scroll highlighted item into view when keyboard navigating\n /* eslint-disable react-you-might-not-need-an-effect/no-event-handler -- Scroll sync is a visual side effect, not event handling */\n React.useEffect(() => {\n if (highlightedIndex >= 0 && listRef.current) {\n const highlightedElement = listRef.current.querySelector(\n `[data-index=\"${String(highlightedIndex)}\"]`\n )\n highlightedElement?.scrollIntoView({ block: \"nearest\" })\n }\n }, [highlightedIndex])\n /* eslint-enable react-you-might-not-need-an-effect/no-event-handler */\n\n // Handle input focus\n const handleFocus = React.useCallback(() => {\n if (completeOnFocus) {\n openedViaCompleteOnFocusRef.current = true\n handleOpenChange(true)\n // Trigger onInputChange with current value (which might be empty)\n onInputChange?.(inputValue)\n } else if (inputValue.length >= minChars) {\n handleOpenChange(true)\n }\n }, [inputValue, minChars, handleOpenChange, completeOnFocus, onInputChange])\n\n // Find option by label (case-insensitive)\n const findOptionByLabel = React.useCallback(\n (label: string) => {\n const normalizedLabel = label.toLowerCase().trim()\n return options.find((opt) => opt.label.toLowerCase() === normalizedLabel)\n },\n [options]\n )\n\n // Check if current input text matches an option (for forceSelection validation)\n const inputMatchesOption = React.useMemo(() => {\n if (!forceSelection || inputValue.length === 0) return true\n return findOptionByLabel(inputValue) !== undefined\n }, [forceSelection, inputValue, findOptionByLabel])\n\n // Handle blur for forceSelection validation\n const handleBlur = React.useCallback(() => {\n // Skip validation if user is clicking on dropdown\n if (isSelectingFromDropdownRef.current) {\n isSelectingFromDropdownRef.current = false\n return\n }\n\n if (!forceSelection) return\n\n const matchingOption = findOptionByLabel(inputValue)\n\n if (matchingOption) {\n // Input matches an option - select it\n if (controlledValue === undefined) {\n setInternalValue(matchingOption.value)\n }\n setInputValue(matchingOption.label)\n onChange?.(matchingOption.value)\n } else if (inputValue.length > 0) {\n // Input doesn't match - revert to last valid selection or clear\n if (value) {\n // Revert to last valid selection\n const lastValidOption = options.find((opt) => opt.value === value)\n if (lastValidOption) {\n setInputValue(lastValidOption.label)\n }\n } else {\n // No prior selection - clear input\n if (controlledValue === undefined) {\n setInternalValue(undefined)\n }\n setInputValue(\"\")\n // eslint-disable-next-line unicorn/no-useless-undefined -- undefined is intentional: signals cleared state to parent\n onChange?.(undefined)\n }\n }\n }, [forceSelection, inputValue, value, options, controlledValue, onChange, findOptionByLabel])\n\n // Handle clear button click\n const handleClear = React.useCallback(() => {\n // Reset internal value\n if (controlledValue === undefined) {\n setInternalValue(multiple ? [] : undefined)\n }\n setInputValue(\"\")\n \n onChange?.(multiple ? [] : undefined)\n onClear?.()\n // Focus the input after clearing\n inputRef.current?.focus()\n }, [controlledValue, onChange, onClear, multiple])\n\n // Handle dropdown button click\n const handleDropdownClick = React.useCallback(() => {\n if (!open) {\n // Dropdown is closed - open it\n openedViaDropdownButtonRef.current = true\n if (dropdownMode === \"blank\") {\n setInputValue(\"\")\n }\n handleOpenChange(true)\n inputRef.current?.focus()\n } else if (openedViaDropdownButtonRef.current) {\n // Dropdown was opened via button click - toggle it closed\n handleOpenChange(false)\n } else {\n // Dropdown was opened via typing - handle based on mode\n if (dropdownMode === \"blank\") {\n // Clear input to show all options\n setInputValue(\"\")\n openedViaDropdownButtonRef.current = true\n }\n // In current mode, do nothing (keep dropdown open with current filter)\n inputRef.current?.focus()\n }\n }, [open, handleOpenChange, dropdownMode])\n\n // Determine if clear button should be shown\n // In multiple mode, show when there are selected values OR input text\n const shouldShowClear =\n showClear &&\n !disabled &&\n !loading &&\n (multiple ? selectedValues.length > 0 || inputValue.length > 0 : inputValue.length > 0)\n\n // Generate unique ID for error message association\n const errorId = React.useId()\n\n return (\n <div\n ref={wrapperRef}\n className={cn(autocompleteWrapperVariants(), className)}\n data-disabled={disabled || undefined}\n data-error={error || undefined}\n data-loading={loading || undefined}\n data-size={size}\n data-slot=\"autocomplete\"\n data-variant={variant}\n {...props}\n >\n <div className=\"relative\">\n {icon && (\n <span\n className=\"absolute left-2 top-1/2 -translate-y-1/2 flex items-center pointer-events-none text-muted-foreground [&_svg]:size-4 [&_svg]:shrink-0\"\n data-slot=\"autocomplete-icon\"\n >\n {icon}\n </span>\n )}\n {multiple && selectedValues.length > 0 && (\n <div\n className={cn(\n \"absolute top-1/2 -translate-y-1/2 flex flex-wrap gap-1 max-w-[var(--autocomplete-tags-max-width)] z-10\",\n icon ? \"left-8\" : \"left-2\"\n )}\n data-slot=\"autocomplete-tags\"\n >\n {selectedValues.map((val) => {\n const opt = options.find((o) => o.value === val)\n return (\n <span\n key={val}\n className=\"inline-flex items-center gap-1 rounded bg-muted px-2 py-0.5 text-xs font-medium text-muted-foreground\"\n data-slot=\"autocomplete-tag\"\n >\n {opt?.label ?? val}\n <button\n aria-label={`Remove ${opt?.label ?? val}`}\n className=\"hover:text-foreground\"\n data-slot=\"autocomplete-tag-remove\"\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n handleRemoveTag(val)\n }}\n >\n <XIcon aria-hidden=\"true\" className=\"size-3\" />\n </button>\n </span>\n )\n })}\n </div>\n )}\n <input\n ref={inputRef}\n aria-activedescendant={\n highlightedIndex >= 0 ? `autocomplete-option-${String(highlightedIndex)}` : undefined\n }\n className={cn(\n autocompleteInputVariants({ size, variant }),\n // Left padding: icon = pl-8\n icon && \"pl-8\",\n // Right padding: both dropdown and (loading or clear) = pr-14, only one = pr-8\n dropdown && (loading || shouldShowClear) && \"pr-14\",\n !dropdown && (loading || shouldShowClear) && \"pr-8\",\n dropdown && !loading && !shouldShowClear && \"pr-8\",\n multiple && selectedValues.length > 0 && (icon ? \"pl-[calc(70%+2rem)]\" : \"pl-[calc(70%+0.5rem)]\")\n )}\n aria-autocomplete=\"list\"\n aria-controls={open ? \"autocomplete-listbox\" : undefined}\n aria-describedby={error && errorMessage ? errorId : undefined}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-invalid={error || (forceSelection && !inputMatchesOption) ? true : undefined}\n data-slot=\"autocomplete-input\"\n disabled={disabled}\n placeholder={multiple && selectedValues.length > 0 ? \"\" : placeholder}\n role=\"combobox\"\n type=\"text\"\n value={inputValue}\n onBlur={handleBlur}\n onChange={(e) => { handleInputChange(e.target.value) }}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n />\n {loading && (\n <div className=\"absolute right-2 top-1/2 -translate-y-1/2\">\n <Loader2Icon\n aria-hidden=\"true\"\n className=\"size-4 animate-spin text-muted-foreground\"\n data-slot=\"autocomplete-spinner\"\n />\n </div>\n )}\n {shouldShowClear && (\n <button\n className={cn(\n \"absolute top-1/2 -translate-y-1/2\",\n dropdown ? \"right-8\" : \"right-2\",\n autocompleteClearVariants({ size })\n )}\n aria-label=\"Clear\"\n data-slot=\"autocomplete-clear\"\n type=\"button\"\n onClick={handleClear}\n >\n <XIcon aria-hidden=\"true\" />\n </button>\n )}\n {dropdown && (\n <button\n aria-label=\"Toggle dropdown\"\n className=\"absolute right-2 top-1/2 -translate-y-1/2 rounded p-0.5 text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\"\n data-slot=\"autocomplete-dropdown\"\n disabled={disabled}\n type=\"button\"\n onClick={handleDropdownClick}\n >\n <ChevronDownIcon aria-hidden=\"true\" className=\"size-4\" />\n </button>\n )}\n </div>\n\n {/* eslint-disable-next-line react-hooks/refs -- shouldShowSuggestions uses refs for tracking open state */}\n {open && shouldShowSuggestions && (\n <div\n className={cn(autocompleteContentVariants())}\n data-slot=\"autocomplete-content\"\n data-state=\"open\"\n >\n <div\n ref={listRef}\n className={cn(autocompleteListVariants())}\n data-slot=\"autocomplete-list\"\n id=\"autocomplete-listbox\"\n role=\"listbox\"\n >\n {loading ? (\n <div className={cn(autocompleteLoadingVariants())}>\n <Loader2Icon aria-hidden=\"true\" className=\"size-4 animate-spin\" />\n {loadingMessage}\n </div>\n ) : filteredOptions.length === 0 ? (\n <div className={cn(autocompleteEmptyVariants())}>{emptyMessage}</div>\n ) : (\n filteredOptions.map((option, index) => {\n const isSelected = multiple\n ? selectedValues.includes(option.value)\n : singleValue === option.value\n return (\n <div\n key={option.value}\n aria-disabled={option.disabled}\n aria-selected={isSelected}\n className={cn(autocompleteItemVariants())}\n data-disabled={option.disabled ?? undefined}\n data-highlighted={highlightedIndex === index || undefined}\n data-index={index}\n data-selected={isSelected || undefined}\n data-slot=\"autocomplete-item\"\n id={`autocomplete-option-${String(index)}`}\n role=\"option\"\n onClick={() => {\n if (!option.disabled) {\n handleSelect(option.value)\n }\n }}\n onMouseDown={() => {\n // Prevent blur validation when clicking on dropdown item\n isSelectingFromDropdownRef.current = true\n }}\n onMouseEnter={() => {\n if (!option.disabled) {\n setHighlightedIndex(index)\n }\n }}\n >\n <CheckIcon\n className={cn(\n \"size-4\",\n isSelected ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n {option.label}\n </div>\n )\n })\n )}\n </div>\n </div>\n )}\n\n {error && errorMessage && (\n <p\n className=\"mt-1.5 text-sm text-destructive\"\n data-slot=\"autocomplete-error\"\n id={errorId}\n role=\"alert\"\n >\n {errorMessage}\n </p>\n )}\n </div>\n )\n}\n\nexport { Autocomplete }\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import 'react';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -63,5 +63,5 @@ function Textarea({
63
63
  }
64
64
 
65
65
  export { Textarea, textareaVariants };
66
- //# sourceMappingURL=chunk-2X35C55E.js.map
67
- //# sourceMappingURL=chunk-2X35C55E.js.map
66
+ //# sourceMappingURL=chunk-ARJAIH7Q.js.map
67
+ //# sourceMappingURL=chunk-ARJAIH7Q.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/Textarea/Textarea.variants.ts","../src/components/forms/Textarea/Textarea.tsx"],"names":[],"mappings":";;;;;AAKO,IAAM,gBAAA,GAAmB,GAAA;AAAA;AAAA,EAE9B;AAAA,IACE,2DAAA;AAAA,IACA,+EAAA;AAAA,IACA,6HAAA;AAAA,IACA,yDAAA;AAAA,IACA,wDAAA;AAAA,IACA,eAAA;AAAA,IACA,oNAAA;AAAA,IACA,oDAAA;AAAA,IACA,6KAAA;AAAA,IACA,mLAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,kJAAA;AAAA,QACJ,EAAA,EAAI,kJAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,iCAAA;AAAA,QACT,MAAA,EAAQ,yDAAA;AAAA,QACR,OAAA,EAAS,yFAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,aAAA;AAAA,QACN,QAAA,EAAU,UAAA;AAAA,QACV,UAAA,EAAY,UAAA;AAAA,QACZ,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EAAS,SAAA;AAAA,MACT,MAAA,EAAQ;AAAA;AACV;AAEJ;ACvCA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACE,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,gBAAA,CAAiB,EAAE,MAAM,OAAA,EAAS,MAAA,EAAQ,CAAA,EAAG,SAAS,CAAA;AAAA,MACpE,WAAA,EAAU,UAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-2X35C55E.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Textarea variant styles using CVA\n */\nexport const textareaVariants = cva(\n // Base styles\n [\n \"w-full min-w-0 transition-[color,box-shadow] outline-none\",\n \"rounded-[var(--textarea-radius)] border-[length:var(--textarea-border-width)]\",\n \"bg-[color:var(--textarea-bg-default)] text-[color:var(--textarea-fg-default)] border-[color:var(--textarea-border-default)]\",\n \"placeholder:text-[color:var(--textarea-fg-placeholder)]\",\n \"selection:bg-primary selection:text-primary-foreground\",\n \"dark:bg-input\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-[color:var(--textarea-bg-disabled)] disabled:text-[color:var(--textarea-fg-disabled)] disabled:border-[color:var(--textarea-border-disabled)]\",\n \"hover:border-[color:var(--border-semantic-strong)]\",\n \"focus-visible:border-[color:var(--textarea-border-focus)] focus-visible:ring-[color:var(--textarea-border-focus)]/20 focus-visible:ring-[length:var(--textarea-ring-width)]\",\n \"aria-invalid:ring-[color:var(--textarea-border-error)]/20 dark:aria-invalid:ring-[color:var(--textarea-border-error)]/40 aria-invalid:border-[color:var(--textarea-border-error)]\",\n \"field-sizing-content\",\n ],\n {\n variants: {\n size: {\n sm: \"min-h-[var(--textarea-size-sm-min-h)] px-[var(--textarea-size-sm-px)] py-[var(--textarea-size-sm-py)] text-[length:var(--textarea-size-sm-text)]\",\n md: \"min-h-[var(--textarea-size-md-min-h)] px-[var(--textarea-size-md-px)] py-[var(--textarea-size-md-py)] text-[length:var(--textarea-size-md-text)]\",\n lg: \"min-h-[var(--textarea-size-lg-min-h)] px-[var(--textarea-size-lg-px)] py-[var(--textarea-size-lg-py)] text-[length:var(--textarea-size-lg-text)]\",\n },\n variant: {\n default: \"shadow-[var(--textarea-shadow)]\",\n filled: \"border-transparent bg-[color:var(--textarea-bg-filled)]\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-[color:var(--textarea-border-default)] px-0\",\n unstyled: \"border-0 bg-transparent p-0 shadow-none focus-visible:ring-0\",\n },\n resize: {\n none: \"resize-none\",\n vertical: \"resize-y\",\n horizontal: \"resize-x\",\n both: \"resize\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n resize: \"vertical\",\n },\n }\n)\n\nexport type TextareaVariantProps = VariantProps<typeof textareaVariants>\n","import type { TextareaProps } from \"./Textarea.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { textareaVariants } from \"./Textarea.variants\"\n\nfunction Textarea({\n className,\n size,\n variant,\n resize,\n ...props\n}: TextareaProps) {\n return (\n <textarea\n className={cn(textareaVariants({ size, variant, resize }), className)}\n data-slot=\"textarea\"\n {...props}\n />\n )\n}\n\nexport { Textarea }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/Textarea/Textarea.variants.ts","../src/components/forms/Textarea/Textarea.tsx"],"names":[],"mappings":";;;;;AAKO,IAAM,gBAAA,GAAmB,GAAA;AAAA;AAAA,EAE9B;AAAA,IACE,2DAAA;AAAA,IACA,+EAAA;AAAA,IACA,6HAAA;AAAA,IACA,yDAAA;AAAA,IACA,wDAAA;AAAA,IACA,eAAA;AAAA,IACA,oNAAA;AAAA,IACA,oDAAA;AAAA,IACA,6KAAA;AAAA,IACA,mLAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,kJAAA;AAAA,QACJ,EAAA,EAAI,kJAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,iCAAA;AAAA,QACT,MAAA,EAAQ,yDAAA;AAAA,QACR,OAAA,EAAS,yFAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,aAAA;AAAA,QACN,QAAA,EAAU,UAAA;AAAA,QACV,UAAA,EAAY,UAAA;AAAA,QACZ,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EAAS,SAAA;AAAA,MACT,MAAA,EAAQ;AAAA;AACV;AAEJ;ACvCA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACE,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,gBAAA,CAAiB,EAAE,MAAM,OAAA,EAAS,MAAA,EAAQ,CAAA,EAAG,SAAS,CAAA;AAAA,MACpE,WAAA,EAAU,UAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-ARJAIH7Q.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Textarea variant styles using CVA\n */\nexport const textareaVariants = cva(\n // Base styles\n [\n \"w-full min-w-0 transition-[color,box-shadow] outline-none\",\n \"rounded-[var(--textarea-radius)] border-[length:var(--textarea-border-width)]\",\n \"bg-[color:var(--textarea-bg-default)] text-[color:var(--textarea-fg-default)] border-[color:var(--textarea-border-default)]\",\n \"placeholder:text-[color:var(--textarea-fg-placeholder)]\",\n \"selection:bg-primary selection:text-primary-foreground\",\n \"dark:bg-input\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-[color:var(--textarea-bg-disabled)] disabled:text-[color:var(--textarea-fg-disabled)] disabled:border-[color:var(--textarea-border-disabled)]\",\n \"hover:border-[color:var(--border-semantic-strong)]\",\n \"focus-visible:border-[color:var(--textarea-border-focus)] focus-visible:ring-[color:var(--textarea-border-focus)]/20 focus-visible:ring-[length:var(--textarea-ring-width)]\",\n \"aria-invalid:ring-[color:var(--textarea-border-error)]/20 dark:aria-invalid:ring-[color:var(--textarea-border-error)]/40 aria-invalid:border-[color:var(--textarea-border-error)]\",\n \"field-sizing-content\",\n ],\n {\n variants: {\n size: {\n sm: \"min-h-[var(--textarea-size-sm-min-h)] px-[var(--textarea-size-sm-px)] py-[var(--textarea-size-sm-py)] text-[length:var(--textarea-size-sm-text)]\",\n md: \"min-h-[var(--textarea-size-md-min-h)] px-[var(--textarea-size-md-px)] py-[var(--textarea-size-md-py)] text-[length:var(--textarea-size-md-text)]\",\n lg: \"min-h-[var(--textarea-size-lg-min-h)] px-[var(--textarea-size-lg-px)] py-[var(--textarea-size-lg-py)] text-[length:var(--textarea-size-lg-text)]\",\n },\n variant: {\n default: \"shadow-[var(--textarea-shadow)]\",\n filled: \"border-transparent bg-[color:var(--textarea-bg-filled)]\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-[color:var(--textarea-border-default)] px-0\",\n unstyled: \"border-0 bg-transparent p-0 shadow-none focus-visible:ring-0\",\n },\n resize: {\n none: \"resize-none\",\n vertical: \"resize-y\",\n horizontal: \"resize-x\",\n both: \"resize\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n resize: \"vertical\",\n },\n }\n)\n\nexport type TextareaVariantProps = VariantProps<typeof textareaVariants>\n","import type { TextareaProps } from \"./Textarea.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { textareaVariants } from \"./Textarea.variants\"\n\nfunction Textarea({\n className,\n size,\n variant,\n resize,\n ...props\n}: TextareaProps) {\n return (\n <textarea\n className={cn(textareaVariants({ size, variant, resize }), className)}\n data-slot=\"textarea\"\n {...props}\n />\n )\n}\n\nexport { Textarea }\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import { Loader2Icon, SearchIcon, XIcon, ChevronDownIcon, Trash2Icon, GridIcon, LayoutListIcon, UploadCloudIcon, FolderOpenIcon, FileImageIcon, FileVideoIcon, FileTextIcon, FileIcon } from 'lucide-react';
3
3
  import * as React from 'react';
4
4
  import { cva } from 'class-variance-authority';
@@ -908,5 +908,5 @@ AssetManagerUploader.displayName = "AssetManagerUploader";
908
908
  AssetManagerEmpty.displayName = "AssetManagerEmpty";
909
909
 
910
910
  export { AssetManager, AssetManagerEmpty, AssetManagerGrid, AssetManagerItem, AssetManagerList, AssetManagerSidebar, AssetManagerToolbar, AssetManagerUploader, assetManagerContentVariants, assetManagerEmptyVariants, assetManagerGridVariants, assetManagerItemInfoVariants, assetManagerItemVariants, assetManagerLoadingVariants, assetManagerSidebarVariants, assetManagerThumbnailVariants, assetManagerToolbarVariants, assetManagerUploaderVariants, assetManagerVariants };
911
- //# sourceMappingURL=chunk-YCZ6M6EF.js.map
912
- //# sourceMappingURL=chunk-YCZ6M6EF.js.map
911
+ //# sourceMappingURL=chunk-BBKDABQK.js.map
912
+ //# sourceMappingURL=chunk-BBKDABQK.js.map