@etus/ui 0.4.0-beta.17 → 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 (589) 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-ZP4HYVDG.js → chunk-3R6MY3YJ.js} +4 -4
  8. package/dist/{chunk-ZP4HYVDG.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-N4UTBJRY.js → chunk-4SFBDK4E.js} +4 -4
  18. package/dist/{chunk-N4UTBJRY.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-XYYOV5GW.js → chunk-5YUUE5JJ.js} +5 -5
  34. package/dist/{chunk-XYYOV5GW.js.map → chunk-5YUUE5JJ.js.map} +1 -1
  35. package/dist/{chunk-D6TH3EGA.js → chunk-627ZZ6HO.js} +6 -6
  36. package/dist/{chunk-D6TH3EGA.js.map → chunk-627ZZ6HO.js.map} +1 -1
  37. package/dist/{chunk-OXDWUKGP.js → chunk-6G5QK3SU.js} +5 -5
  38. package/dist/chunk-6G5QK3SU.js.map +1 -0
  39. package/dist/{chunk-U74PNG4S.js → chunk-6QVXMYKH.js} +4 -4
  40. package/dist/{chunk-U74PNG4S.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-EYSTEGV5.js → chunk-7QEFKWUR.js} +10 -10
  52. package/dist/{chunk-EYSTEGV5.js.map → chunk-7QEFKWUR.js.map} +1 -1
  53. package/dist/{chunk-Z4KW5VW6.js → chunk-7TX5X4EP.js} +6 -6
  54. package/dist/{chunk-Z4KW5VW6.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-2ROFZG3A.js → chunk-7Y325TBV.js} +4 -4
  58. package/dist/{chunk-2ROFZG3A.js.map → chunk-7Y325TBV.js.map} +1 -1
  59. package/dist/{chunk-4RSHPKHB.js → chunk-7YZ7HNXX.js} +4 -4
  60. package/dist/{chunk-4RSHPKHB.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-CKD4UBV6.js → chunk-AJUOTABG.js} +4 -4
  66. package/dist/{chunk-CKD4UBV6.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-U6EOAIPK.js → chunk-ARJAIH7Q.js} +4 -4
  70. package/dist/chunk-ARJAIH7Q.js.map +1 -0
  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-WKWLKGNI.js → chunk-BUCXPZYE.js} +6 -6
  76. package/dist/chunk-BUCXPZYE.js.map +1 -0
  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-U2R47SPY.js → chunk-DJHDCDU6.js} +4 -4
  86. package/dist/{chunk-U2R47SPY.js.map → chunk-DJHDCDU6.js.map} +1 -1
  87. package/dist/{chunk-5GE3BQA7.js → chunk-DQGBTZRX.js} +7 -7
  88. package/dist/chunk-DQGBTZRX.js.map +1 -0
  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-NCT5WXKG.js → chunk-EDSIOUUR.js} +4 -4
  94. package/dist/{chunk-NCT5WXKG.js.map → chunk-EDSIOUUR.js.map} +1 -1
  95. package/dist/{chunk-TAZPML2P.js → chunk-ELRIFGMN.js} +4 -4
  96. package/dist/{chunk-TAZPML2P.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-VBJ26PZJ.js → chunk-EZYXD2YI.js} +4 -4
  102. package/dist/{chunk-VBJ26PZJ.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-VAVE4ZJF.js → chunk-FVRSXJKS.js} +4 -4
  110. package/dist/chunk-FVRSXJKS.js.map +1 -0
  111. package/dist/{chunk-X3AXEE3S.js → chunk-FXFVFSG5.js} +5 -5
  112. package/dist/{chunk-X3AXEE3S.js.map → chunk-FXFVFSG5.js.map} +1 -1
  113. package/dist/{chunk-IFHF4UES.js → chunk-GDZECJFS.js} +12 -12
  114. package/dist/chunk-GDZECJFS.js.map +1 -0
  115. package/dist/{chunk-7J5OM4ZD.js → chunk-GLHKHYJY.js} +8 -8
  116. package/dist/{chunk-7J5OM4ZD.js.map → chunk-GLHKHYJY.js.map} +1 -1
  117. package/dist/{chunk-4KOJTZVU.js → chunk-GRODCJS4.js} +29 -29
  118. package/dist/chunk-GRODCJS4.js.map +1 -0
  119. package/dist/{chunk-TNDW52VZ.js → chunk-GVNG5ME6.js} +36 -18
  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-W7S7GPU5.js → chunk-HHWUROMA.js} +6 -6
  126. package/dist/{chunk-W7S7GPU5.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-4GVOOXYD.js → chunk-HNQX6ZG7.js} +7 -7
  130. package/dist/chunk-HNQX6ZG7.js.map +1 -0
  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-P27ERD6W.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-XOGMDABS.js → chunk-JDETM3FL.js} +9 -9
  142. package/dist/chunk-JDETM3FL.js.map +1 -0
  143. package/dist/{chunk-R3HUGCGR.js → chunk-JE46MFMN.js} +6 -6
  144. package/dist/{chunk-R3HUGCGR.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-7Y2UQMX6.js → chunk-JYYB6F5O.js} +37 -37
  158. package/dist/chunk-JYYB6F5O.js.map +1 -0
  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-PWCMCMDN.js → chunk-K4UCALQQ.js} +4 -4
  164. package/dist/{chunk-PWCMCMDN.js.map → chunk-K4UCALQQ.js.map} +1 -1
  165. package/dist/{chunk-OBRJXVWO.js → chunk-KBU4KJKC.js} +7 -7
  166. package/dist/{chunk-OBRJXVWO.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-3NSIUZGP.js → chunk-KHCHATTD.js} +5 -5
  170. package/dist/{chunk-3NSIUZGP.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-TQBUBD3E.js → chunk-KLFYTLF3.js} +4 -4
  174. package/dist/{chunk-TQBUBD3E.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-7TF5PVEU.js → chunk-L4OQ6BJ5.js} +7 -7
  178. package/dist/chunk-L4OQ6BJ5.js.map +1 -0
  179. package/dist/{chunk-3L5G7VI2.js → chunk-LCBB3N5H.js} +4 -4
  180. package/dist/chunk-LCBB3N5H.js.map +1 -0
  181. package/dist/{chunk-BS5XDYOE.js → chunk-LDK6ADKM.js} +6 -6
  182. package/dist/{chunk-BS5XDYOE.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-G7PBPX3K.js → chunk-LRE3LJMW.js} +5 -5
  186. package/dist/{chunk-G7PBPX3K.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-H5N3VPBG.js → chunk-MGIGDALC.js} +4 -4
  190. package/dist/{chunk-H5N3VPBG.js.map → chunk-MGIGDALC.js.map} +1 -1
  191. package/dist/{chunk-WXBC3D2N.js → chunk-MNYU5MHO.js} +7 -7
  192. package/dist/{chunk-WXBC3D2N.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-3KOLK3OB.js → chunk-N5YGAESZ.js} +5 -5
  198. package/dist/{chunk-3KOLK3OB.js.map → chunk-N5YGAESZ.js.map} +1 -1
  199. package/dist/{chunk-W3JVNX35.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-GGUWEAYD.js → chunk-NLPVF34P.js} +4 -4
  210. package/dist/{chunk-GGUWEAYD.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-Y4RKKQMB.js → chunk-ONN5XVYC.js} +4 -4
  224. package/dist/chunk-ONN5XVYC.js.map +1 -0
  225. package/dist/{chunk-GL56KIFL.js → chunk-OWZ3MZ5C.js} +4 -4
  226. package/dist/{chunk-GL56KIFL.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-T6XRYT6Q.js → chunk-P4WMDGAQ.js} +4 -4
  230. package/dist/{chunk-T6XRYT6Q.js.map → chunk-P4WMDGAQ.js.map} +1 -1
  231. package/dist/{chunk-NXQ25PKF.js → chunk-PBZI5XNV.js} +8 -8
  232. package/dist/chunk-PBZI5XNV.js.map +1 -0
  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-P7D6S6GX.js → chunk-PTXC4KPQ.js} +39 -5
  238. package/dist/chunk-PTXC4KPQ.js.map +1 -0
  239. package/dist/{chunk-UYC7M3FM.js → chunk-PVIIIQJI.js} +6 -6
  240. package/dist/{chunk-UYC7M3FM.js.map → chunk-PVIIIQJI.js.map} +1 -1
  241. package/dist/{chunk-E2TI5V67.js → chunk-PXR6CZIL.js} +4 -4
  242. package/dist/{chunk-E2TI5V67.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-3NLWCX2F.js → chunk-QJOWG2D4.js} +5 -5
  250. package/dist/{chunk-3NLWCX2F.js.map → chunk-QJOWG2D4.js.map} +1 -1
  251. package/dist/{chunk-Q43KJP5A.js → chunk-QLYH3GCV.js} +8 -8
  252. package/dist/{chunk-Q43KJP5A.js.map → chunk-QLYH3GCV.js.map} +1 -1
  253. package/dist/{chunk-IRIIK3BU.js → chunk-QO6TOE45.js} +11 -11
  254. package/dist/chunk-QO6TOE45.js.map +1 -0
  255. package/dist/{chunk-66TBTTZO.js → chunk-QWWA4FZP.js} +15 -15
  256. package/dist/chunk-QWWA4FZP.js.map +1 -0
  257. package/dist/{chunk-2YSZPUQZ.js → chunk-QXET2TML.js} +4 -4
  258. package/dist/{chunk-2YSZPUQZ.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-SUU3HNOX.js → chunk-R42LSLJL.js} +6 -6
  262. package/dist/{chunk-SUU3HNOX.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-XLTSCY22.js → chunk-ROPW65RD.js} +5 -5
  266. package/dist/chunk-ROPW65RD.js.map +1 -0
  267. package/dist/{chunk-6ZAMTPGN.js → chunk-RQBYBBMP.js} +4 -4
  268. package/dist/{chunk-6ZAMTPGN.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-UPK5B2FL.js → chunk-S6BREP2G.js} +7 -7
  274. package/dist/chunk-S6BREP2G.js.map +1 -0
  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-3W7FXRO5.js → chunk-SKI25Q7O.js} +6 -6
  278. package/dist/{chunk-3W7FXRO5.js.map → chunk-SKI25Q7O.js.map} +1 -1
  279. package/dist/{chunk-LLI3JFJL.js → chunk-SSKSWSVO.js} +5 -5
  280. package/dist/{chunk-LLI3JFJL.js.map → chunk-SSKSWSVO.js.map} +1 -1
  281. package/dist/{chunk-VLDAHAG6.js → chunk-STADVFL2.js} +5 -5
  282. package/dist/{chunk-VLDAHAG6.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-DYDXGWH2.js → chunk-T3LWBCVR.js} +4 -4
  288. package/dist/chunk-T3LWBCVR.js.map +1 -0
  289. package/dist/{chunk-AR3OXNPL.js → chunk-TDANAN5A.js} +3 -3
  290. package/dist/{chunk-AR3OXNPL.js.map → chunk-TDANAN5A.js.map} +1 -1
  291. package/dist/{chunk-7ZJ32KRQ.js → chunk-TEVGCTUN.js} +3 -3
  292. package/dist/{chunk-7ZJ32KRQ.js.map → chunk-TEVGCTUN.js.map} +1 -1
  293. package/dist/{chunk-GAMOVEZD.js → chunk-TIPKU427.js} +3 -3
  294. package/dist/{chunk-GAMOVEZD.js.map → chunk-TIPKU427.js.map} +1 -1
  295. package/dist/{chunk-2Q4I4VDB.js → chunk-TK5WS675.js} +3 -3
  296. package/dist/{chunk-2Q4I4VDB.js.map → chunk-TK5WS675.js.map} +1 -1
  297. package/dist/{chunk-YUHPTV2A.js → chunk-TNSMTINE.js} +4 -4
  298. package/dist/{chunk-YUHPTV2A.js.map → chunk-TNSMTINE.js.map} +1 -1
  299. package/dist/{chunk-VT4IMHGE.js → chunk-TRTVYFOF.js} +5 -5
  300. package/dist/chunk-TRTVYFOF.js.map +1 -0
  301. package/dist/{chunk-46ESMCEQ.js → chunk-TSE3PKWQ.js} +6 -6
  302. package/dist/chunk-TSE3PKWQ.js.map +1 -0
  303. package/dist/{chunk-3BBOSSDG.js → chunk-U7TPJMGY.js} +4 -4
  304. package/dist/{chunk-3BBOSSDG.js.map → chunk-U7TPJMGY.js.map} +1 -1
  305. package/dist/{chunk-5I7AXWJU.js → chunk-UC5J6GWG.js} +5 -5
  306. package/dist/{chunk-5I7AXWJU.js.map → chunk-UC5J6GWG.js.map} +1 -1
  307. package/dist/{chunk-ZKK7L7H7.js → chunk-UNHPLKMR.js} +3 -3
  308. package/dist/{chunk-ZKK7L7H7.js.map → chunk-UNHPLKMR.js.map} +1 -1
  309. package/dist/{chunk-I7ZLEC7Y.js → chunk-UZEJ3ZVR.js} +3 -3
  310. package/dist/{chunk-I7ZLEC7Y.js.map → chunk-UZEJ3ZVR.js.map} +1 -1
  311. package/dist/{chunk-SXPBKGLT.js → chunk-UZZCEQH4.js} +4 -4
  312. package/dist/{chunk-SXPBKGLT.js.map → chunk-UZZCEQH4.js.map} +1 -1
  313. package/dist/{chunk-AEE5GDNA.js → chunk-V4NSLSCA.js} +4 -4
  314. package/dist/{chunk-AEE5GDNA.js.map → chunk-V4NSLSCA.js.map} +1 -1
  315. package/dist/{chunk-IZC5YFGO.js → chunk-V57DERRV.js} +14 -7
  316. package/dist/chunk-V57DERRV.js.map +1 -0
  317. package/dist/{chunk-VZZ3HP7G.js → chunk-VHJ6ALIE.js} +4 -4
  318. package/dist/{chunk-VZZ3HP7G.js.map → chunk-VHJ6ALIE.js.map} +1 -1
  319. package/dist/{chunk-N3I6GA4I.js → chunk-WG34IXUV.js} +3 -3
  320. package/dist/{chunk-N3I6GA4I.js.map → chunk-WG34IXUV.js.map} +1 -1
  321. package/dist/{chunk-OEXQ2MOY.js → chunk-WGKOYZRI.js} +4 -4
  322. package/dist/{chunk-OEXQ2MOY.js.map → chunk-WGKOYZRI.js.map} +1 -1
  323. package/dist/{chunk-6DN2UAIR.js → chunk-WGSVSZ7V.js} +3 -3
  324. package/dist/{chunk-6DN2UAIR.js.map → chunk-WGSVSZ7V.js.map} +1 -1
  325. package/dist/{chunk-X4YUWX7H.js → chunk-WK324C6D.js} +4 -4
  326. package/dist/{chunk-X4YUWX7H.js.map → chunk-WK324C6D.js.map} +1 -1
  327. package/dist/{chunk-N2WITPE2.js → chunk-WOP5OWLG.js} +3 -3
  328. package/dist/{chunk-N2WITPE2.js.map → chunk-WOP5OWLG.js.map} +1 -1
  329. package/dist/{chunk-JPA2VQRW.js → chunk-WSDWJX4Y.js} +4 -4
  330. package/dist/{chunk-JPA2VQRW.js.map → chunk-WSDWJX4Y.js.map} +1 -1
  331. package/dist/{chunk-2XJWE2XR.js → chunk-WUS45IZW.js} +4 -4
  332. package/dist/{chunk-2XJWE2XR.js.map → chunk-WUS45IZW.js.map} +1 -1
  333. package/dist/{chunk-B3BDIM4H.js → chunk-WVOZYDH3.js} +3 -3
  334. package/dist/{chunk-B3BDIM4H.js.map → chunk-WVOZYDH3.js.map} +1 -1
  335. package/dist/{chunk-K45MMHLA.js → chunk-WWK7UIKK.js} +5 -5
  336. package/dist/{chunk-K45MMHLA.js.map → chunk-WWK7UIKK.js.map} +1 -1
  337. package/dist/{chunk-NCLOPI6U.js → chunk-X2EMALTZ.js} +3 -3
  338. package/dist/{chunk-NCLOPI6U.js.map → chunk-X2EMALTZ.js.map} +1 -1
  339. package/dist/{chunk-PK5O62XD.js → chunk-X4CJFD6D.js} +3 -3
  340. package/dist/{chunk-PK5O62XD.js.map → chunk-X4CJFD6D.js.map} +1 -1
  341. package/dist/{chunk-JWXK4TMX.js → chunk-XEQGATVF.js} +3 -3
  342. package/dist/{chunk-JWXK4TMX.js.map → chunk-XEQGATVF.js.map} +1 -1
  343. package/dist/{chunk-B6KQKQ4S.js → chunk-XMUD3LG7.js} +3 -3
  344. package/dist/{chunk-B6KQKQ4S.js.map → chunk-XMUD3LG7.js.map} +1 -1
  345. package/dist/{chunk-5ZEYTBTU.js → chunk-XWBVIBN4.js} +3 -3
  346. package/dist/{chunk-5ZEYTBTU.js.map → chunk-XWBVIBN4.js.map} +1 -1
  347. package/dist/{chunk-7I6KK6QE.js → chunk-XXWCMY2G.js} +3 -3
  348. package/dist/{chunk-7I6KK6QE.js.map → chunk-XXWCMY2G.js.map} +1 -1
  349. package/dist/{chunk-LFN7UHDT.js → chunk-Y4FEW7SR.js} +3 -3
  350. package/dist/{chunk-LFN7UHDT.js.map → chunk-Y4FEW7SR.js.map} +1 -1
  351. package/dist/{chunk-PFVT27B5.js → chunk-YC5VVIZO.js} +3 -3
  352. package/dist/{chunk-PFVT27B5.js.map → chunk-YC5VVIZO.js.map} +1 -1
  353. package/dist/{chunk-7EGN7IGY.js → chunk-YMCKML6D.js} +7 -7
  354. package/dist/{chunk-7EGN7IGY.js.map → chunk-YMCKML6D.js.map} +1 -1
  355. package/dist/{chunk-7HT32DZG.js → chunk-YMQDTTO7.js} +6 -6
  356. package/dist/{chunk-7HT32DZG.js.map → chunk-YMQDTTO7.js.map} +1 -1
  357. package/dist/{chunk-ZARZYMBM.js → chunk-YNTS4GRT.js} +3 -3
  358. package/dist/{chunk-ZARZYMBM.js.map → chunk-YNTS4GRT.js.map} +1 -1
  359. package/dist/{chunk-6SZRWNPT.js → chunk-ZOHLZ4YL.js} +3 -3
  360. package/dist/{chunk-6SZRWNPT.js.map → chunk-ZOHLZ4YL.js.map} +1 -1
  361. package/dist/{chunk-4Y72SPNL.js → chunk-ZVSMLMMS.js} +5 -5
  362. package/dist/chunk-ZVSMLMMS.js.map +1 -0
  363. package/dist/{chunk-VKDN66VL.js → chunk-ZXWT4KWJ.js} +3 -3
  364. package/dist/{chunk-VKDN66VL.js.map → chunk-ZXWT4KWJ.js.map} +1 -1
  365. package/dist/components/advanced/AssetManager/index.js +2 -2
  366. package/dist/components/advanced/Calendar/index.js +7 -7
  367. package/dist/components/advanced/Command/index.js +3 -3
  368. package/dist/components/advanced/DragAndDrop/index.js +2 -2
  369. package/dist/components/advanced/ErrorBoundary/index.js +2 -2
  370. package/dist/components/advanced/EventCalendar/index.js +7 -7
  371. package/dist/components/advanced/FileDropzone/index.js +2 -2
  372. package/dist/components/advanced/FilePreview/index.js +2 -2
  373. package/dist/components/advanced/FileUpload/index.js +2 -2
  374. package/dist/components/advanced/FilterBuilder/index.js +10 -10
  375. package/dist/components/advanced/MarkdownEditor/index.js +6 -6
  376. package/dist/components/advanced/ReportBuilder/index.js +8 -8
  377. package/dist/components/advanced/RichTextEditor/index.js +4 -4
  378. package/dist/components/advanced/Search/index.js +2 -2
  379. package/dist/components/advanced/SortableList/index.js +2 -2
  380. package/dist/components/advanced/VersionControl/index.js +2 -2
  381. package/dist/components/advanced/index.js +31 -31
  382. package/dist/components/data-display/Accordion/index.js +2 -2
  383. package/dist/components/data-display/AreaChart/index.js +3 -3
  384. package/dist/components/data-display/Banner/index.js +2 -2
  385. package/dist/components/data-display/BarChart/index.js +3 -3
  386. package/dist/components/data-display/BarList/index.js +2 -2
  387. package/dist/components/data-display/Callout/index.js +2 -2
  388. package/dist/components/data-display/Carousel/index.js +7 -7
  389. package/dist/components/data-display/CategoryBar/index.js +3 -3
  390. package/dist/components/data-display/Chart/index.js +2 -2
  391. package/dist/components/data-display/ChartCard/index.js +5 -5
  392. package/dist/components/data-display/ChartLegend/index.js +2 -2
  393. package/dist/components/data-display/ComboChart/index.js +3 -3
  394. package/dist/components/data-display/DashboardCard/index.js +3 -3
  395. package/dist/components/data-display/DataTable/FilterBuilder/index.js +10 -10
  396. package/dist/components/data-display/DataTable/index.js +17 -17
  397. package/dist/components/data-display/DeltaBar/index.js +3 -3
  398. package/dist/components/data-display/EmptyState/index.js +2 -2
  399. package/dist/components/data-display/FeatureItem/index.js +3 -3
  400. package/dist/components/data-display/Feed/index.js +2 -2
  401. package/dist/components/data-display/FunnelChart/index.js +3 -3
  402. package/dist/components/data-display/GaugeChart/index.js +2 -2
  403. package/dist/components/data-display/Heatmap/index.js +3 -3
  404. package/dist/components/data-display/HoverCard/index.js +2 -2
  405. package/dist/components/data-display/ImageGallery/index.js +9 -9
  406. package/dist/components/data-display/Item/index.js +3 -3
  407. package/dist/components/data-display/KPICard/index.js +8 -8
  408. package/dist/components/data-display/Lightbox/index.js +2 -2
  409. package/dist/components/data-display/LineChart/index.js +3 -3
  410. package/dist/components/data-display/List/index.js +6 -6
  411. package/dist/components/data-display/MarkerBar/index.js +3 -3
  412. package/dist/components/data-display/PieChart/index.js +3 -3
  413. package/dist/components/data-display/RadarChart/index.js +3 -3
  414. package/dist/components/data-display/RadialChart/index.js +3 -3
  415. package/dist/components/data-display/ScatterChart/index.js +3 -3
  416. package/dist/components/data-display/SingleStat/index.js +3 -3
  417. package/dist/components/data-display/Sparkline/index.js +2 -2
  418. package/dist/components/data-display/Table/index.js +2 -2
  419. package/dist/components/data-display/Timeline/index.js +2 -2
  420. package/dist/components/data-display/Tracker/index.js +3 -3
  421. package/dist/components/data-display/VirtualTable/index.js +5 -5
  422. package/dist/components/data-display/index.js +57 -57
  423. package/dist/components/feedback/Alert/index.js +2 -2
  424. package/dist/components/feedback/AlertDialog/index.js +7 -7
  425. package/dist/components/feedback/ConfirmModal/index.js +8 -8
  426. package/dist/components/feedback/Dialog/index.js +2 -2
  427. package/dist/components/feedback/ErrorPage/index.js +2 -2
  428. package/dist/components/feedback/FocusTrap/index.js +2 -2
  429. package/dist/components/feedback/Message/index.js +2 -2
  430. package/dist/components/feedback/Modal/index.js +2 -2
  431. package/dist/components/feedback/Notification/index.js +4 -4
  432. package/dist/components/feedback/Popover/index.js +2 -2
  433. package/dist/components/feedback/Tooltip/index.js +2 -2
  434. package/dist/components/feedback/UpdatesWidget/index.js +2 -2
  435. package/dist/components/feedback/index.js +18 -18
  436. package/dist/components/forms/Autocomplete/index.js +2 -2
  437. package/dist/components/forms/Checkbox/index.js +2 -2
  438. package/dist/components/forms/CheckboxGroup/index.js +3 -3
  439. package/dist/components/forms/ColorPicker/index.js +3 -3
  440. package/dist/components/forms/Combobox/index.js +2 -2
  441. package/dist/components/forms/DatePicker/index.js +10 -10
  442. package/dist/components/forms/DateRangePicker/index.js +10 -10
  443. package/dist/components/forms/EmailInput/index.js +4 -4
  444. package/dist/components/forms/ErrorMessage/index.js +2 -2
  445. package/dist/components/forms/Field/index.js +4 -4
  446. package/dist/components/forms/FloatLabel/index.js +2 -2
  447. package/dist/components/forms/Form/index.js +3 -3
  448. package/dist/components/forms/FormValidation/index.js +2 -2
  449. package/dist/components/forms/HelpText/index.js +2 -2
  450. package/dist/components/forms/IftaLabel/index.js +2 -2
  451. package/dist/components/forms/InputGroup/index.js +10 -10
  452. package/dist/components/forms/InputOTP/index.js +2 -2
  453. package/dist/components/forms/InputOTPField/index.js +6 -6
  454. package/dist/components/forms/MultiSelect/index.js +3 -3
  455. package/dist/components/forms/NativeSelect/index.js +2 -2
  456. package/dist/components/forms/NumberInput/index.js +3 -3
  457. package/dist/components/forms/PasswordInput/index.js +4 -4
  458. package/dist/components/forms/PaymentInput/index.js +2 -2
  459. package/dist/components/forms/PhoneInput/index.js +2 -2
  460. package/dist/components/forms/RadioButton/index.js +2 -2
  461. package/dist/components/forms/RadioCardGroup/index.js +2 -2
  462. package/dist/components/forms/RadioGroup/index.js +2 -2
  463. package/dist/components/forms/Rating/index.js +2 -2
  464. package/dist/components/forms/SearchInput/index.js +4 -4
  465. package/dist/components/forms/Select/index.js +2 -2
  466. package/dist/components/forms/Slider/index.js +2 -2
  467. package/dist/components/forms/SuccessMessage/index.js +2 -2
  468. package/dist/components/forms/Switch/index.js +2 -2
  469. package/dist/components/forms/TagsInput/index.js +4 -4
  470. package/dist/components/forms/TextInput/index.js +3 -3
  471. package/dist/components/forms/Textarea/index.js +2 -2
  472. package/dist/components/forms/TextareaField/index.js +6 -6
  473. package/dist/components/forms/TimePicker/index.js +4 -4
  474. package/dist/components/forms/URLInput/index.js +4 -4
  475. package/dist/components/forms/index.js +51 -51
  476. package/dist/components/index.js +186 -186
  477. package/dist/components/layout/Card/index.js +2 -2
  478. package/dist/components/layout/Collapsible/index.js +2 -2
  479. package/dist/components/layout/Container/index.js +2 -2
  480. package/dist/components/layout/Flex/index.js +2 -2
  481. package/dist/components/layout/Grid/index.js +2 -2
  482. package/dist/components/layout/Panel/index.js +3 -3
  483. package/dist/components/layout/ResizablePanels/index.js +2 -2
  484. package/dist/components/layout/ResponsiveContainer/index.js +2 -2
  485. package/dist/components/layout/ScrollArea/index.js +2 -2
  486. package/dist/components/layout/Section/index.js +2 -2
  487. package/dist/components/layout/Sheet/index.js +2 -2
  488. package/dist/components/layout/Stack/index.js +2 -2
  489. package/dist/components/layout/index.js +13 -13
  490. package/dist/components/navigation/AccountSwitch/index.js +6 -6
  491. package/dist/components/navigation/Breadcrumb/index.js +2 -2
  492. package/dist/components/navigation/ContextMenu/index.js +2 -2
  493. package/dist/components/navigation/Drawer/index.js +2 -2
  494. package/dist/components/navigation/DropdownMenu/index.js +2 -2
  495. package/dist/components/navigation/FileTree/index.js +2 -2
  496. package/dist/components/navigation/Header/index.js +2 -2
  497. package/dist/components/navigation/LogoConta/index.js +2 -2
  498. package/dist/components/navigation/Menu/index.js +3 -3
  499. package/dist/components/navigation/Menubar/index.js +2 -2
  500. package/dist/components/navigation/Navbar/index.js +2 -2
  501. package/dist/components/navigation/NavigationMenu/index.js +2 -2
  502. package/dist/components/navigation/Pagination/index.js +7 -7
  503. package/dist/components/navigation/Sidebar/index.js +12 -12
  504. package/dist/components/navigation/SkipLinks/index.js +2 -2
  505. package/dist/components/navigation/SpeedDial/index.js +3 -3
  506. package/dist/components/navigation/TabNavigation/index.js +2 -2
  507. package/dist/components/navigation/TabPanel/index.js +2 -2
  508. package/dist/components/navigation/Tabs/index.js +2 -2
  509. package/dist/components/navigation/Toolbar/index.js +2 -2
  510. package/dist/components/navigation/Topbar/index.js +2 -2
  511. package/dist/components/navigation/index.js +33 -33
  512. package/dist/components/primitives/ArrowAnimated/index.js +2 -2
  513. package/dist/components/primitives/Avatar/index.js +3 -3
  514. package/dist/components/primitives/Badge/index.js +3 -3
  515. package/dist/components/primitives/Button/index.js +6 -6
  516. package/dist/components/primitives/ButtonGroup/index.js +3 -3
  517. package/dist/components/primitives/ConfirmButton/index.js +8 -8
  518. package/dist/components/primitives/Divider/index.js +2 -2
  519. package/dist/components/primitives/FeaturedIcon/index.js +2 -2
  520. package/dist/components/primitives/FolderStack/index.js +2 -2
  521. package/dist/components/primitives/Heading/index.js +2 -2
  522. package/dist/components/primitives/Icon/index.js +2 -2
  523. package/dist/components/primitives/Image/index.js +2 -2
  524. package/dist/components/primitives/Kbd/index.js +2 -2
  525. package/dist/components/primitives/Label/index.js +2 -2
  526. package/dist/components/primitives/Link/index.js +2 -2
  527. package/dist/components/primitives/Paragraph/index.js +2 -2
  528. package/dist/components/primitives/PaymentMethodIcon/index.js +2 -2
  529. package/dist/components/primitives/ProgressBar/index.js +3 -3
  530. package/dist/components/primitives/ProgressCircle/index.js +3 -3
  531. package/dist/components/primitives/SkeletonLoader/index.js +2 -2
  532. package/dist/components/primitives/Spacer/index.js +2 -2
  533. package/dist/components/primitives/Spinner/index.js +2 -2
  534. package/dist/components/primitives/SplitButton/index.js +3 -3
  535. package/dist/components/primitives/StatusIndicator/index.js +2 -2
  536. package/dist/components/primitives/Tag/index.js +2 -2
  537. package/dist/components/primitives/Text/index.js +2 -2
  538. package/dist/components/primitives/Thumbnail/index.js +3 -3
  539. package/dist/components/primitives/Toggle/index.js +2 -2
  540. package/dist/components/primitives/index.js +32 -32
  541. package/dist/components/workflow/ApprovalFlow/index.js +8 -8
  542. package/dist/components/workflow/ApprovalStatus/index.js +2 -2
  543. package/dist/components/workflow/CommentSystem/index.js +9 -9
  544. package/dist/components/workflow/Dashboard/index.js +7 -7
  545. package/dist/components/workflow/DashboardBuilder/index.js +10 -10
  546. package/dist/components/workflow/KanbanBoard/index.js +9 -9
  547. package/dist/components/workflow/ProgressSteps/index.js +2 -2
  548. package/dist/components/workflow/ReportGenerator/index.js +9 -9
  549. package/dist/components/workflow/Stepper/index.js +2 -2
  550. package/dist/components/workflow/TaskCard/index.js +2 -2
  551. package/dist/components/workflow/TaskList/index.js +2 -2
  552. package/dist/components/workflow/TaskStatus/index.js +3 -3
  553. package/dist/components/workflow/Wizard/index.js +8 -8
  554. package/dist/components/workflow/index.js +27 -27
  555. package/dist/index.d.ts +62 -14
  556. package/dist/index.js +186 -186
  557. package/dist/lib/utils.d.ts +2 -1
  558. package/dist/lib/utils.js +1 -1
  559. package/dist/styles.css +27 -703
  560. package/package.json +2 -2
  561. package/dist/chunk-3L5G7VI2.js.map +0 -1
  562. package/dist/chunk-46ESMCEQ.js.map +0 -1
  563. package/dist/chunk-4GVOOXYD.js.map +0 -1
  564. package/dist/chunk-4KOJTZVU.js.map +0 -1
  565. package/dist/chunk-4Y72SPNL.js.map +0 -1
  566. package/dist/chunk-5GE3BQA7.js.map +0 -1
  567. package/dist/chunk-66TBTTZO.js.map +0 -1
  568. package/dist/chunk-7TF5PVEU.js.map +0 -1
  569. package/dist/chunk-7Y2UQMX6.js.map +0 -1
  570. package/dist/chunk-DYDXGWH2.js.map +0 -1
  571. package/dist/chunk-HRNDJU7D.js +0 -11
  572. package/dist/chunk-HRNDJU7D.js.map +0 -1
  573. package/dist/chunk-IFHF4UES.js.map +0 -1
  574. package/dist/chunk-IRIIK3BU.js.map +0 -1
  575. package/dist/chunk-IZC5YFGO.js.map +0 -1
  576. package/dist/chunk-NXQ25PKF.js.map +0 -1
  577. package/dist/chunk-OXDWUKGP.js.map +0 -1
  578. package/dist/chunk-P27ERD6W.js.map +0 -1
  579. package/dist/chunk-P7D6S6GX.js.map +0 -1
  580. package/dist/chunk-TNDW52VZ.js.map +0 -1
  581. package/dist/chunk-U6EOAIPK.js.map +0 -1
  582. package/dist/chunk-UPK5B2FL.js.map +0 -1
  583. package/dist/chunk-VAVE4ZJF.js.map +0 -1
  584. package/dist/chunk-VT4IMHGE.js.map +0 -1
  585. package/dist/chunk-W3JVNX35.js.map +0 -1
  586. package/dist/chunk-WKWLKGNI.js.map +0 -1
  587. package/dist/chunk-XLTSCY22.js.map +0 -1
  588. package/dist/chunk-XOGMDABS.js.map +0 -1
  589. package/dist/chunk-Y4RKKQMB.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/data-display/Feed/Feed.tsx"],"names":[],"mappings":"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","file":"chunk-B7ZLPQSO.js","sourcesContent":["import type { ReactNode } from \"react\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst feedVariants = cva(\"flex flex-col transition-colors duration-200\", {\n variants: {\n variant: {\n default: \"border-l border-border pl-4 gap-4\",\n compact: \"gap-2\",\n highlighted: \"gap-4\",\n },\n size: {\n sm: \"\",\n default: \"\",\n lg: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n})\n\nconst feedItemVariants = cva(\n \"relative flex gap-3 transition-colors duration-200\",\n {\n variants: {\n size: {\n sm: \"py-2 px-3\",\n default: \"py-4 px-4\",\n lg: \"py-6 px-6\",\n },\n isActive: {\n true: \"bg-muted\",\n false: \"\",\n },\n isHighlighted: {\n true: \"bg-muted/50\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n isActive: false,\n isHighlighted: false,\n },\n }\n)\n\n/**\n * Feed item data structure\n */\ninterface FeedItem {\n /** Optional action element */\n action?: ReactNode\n /** Optional description */\n description?: string\n /** Optional icon element */\n icon?: ReactNode\n /** Unique identifier for the item */\n id: string\n /** Optional metadata */\n metadata?: {\n author?: string\n avatar?: string\n }\n /** Timestamp of the event */\n timestamp: Date\n /** Title of the feed item */\n title: string\n}\n\ninterface FeedProps\n extends React.ComponentProps<\"div\">,\n VariantProps<typeof feedVariants> {\n /** Custom content (alternative to items prop) */\n children?: ReactNode\n /** Show divider between items @default true */\n divider?: boolean\n /** Array of feed items */\n items?: FeedItem[]\n /** Loading state @default false */\n loading?: boolean\n /** Reverse chronological order @default false */\n reverse?: boolean\n}\n\ninterface FeedItemProps\n extends React.ComponentProps<\"article\">,\n VariantProps<typeof feedItemVariants> {\n /** Whether the item is the last in the list */\n isLast?: boolean\n /** The feed item data */\n item?: FeedItem\n /** Show divider after item @default true */\n showDivider?: boolean\n}\n\n/**\n * Format a date to relative time (e.g., \"2 hours ago\")\n */\nfunction formatRelativeTime(date: Date): string {\n const now = new Date()\n const diffMs = now.getTime() - date.getTime()\n const diffSec = Math.floor(diffMs / 1000)\n const diffMin = Math.floor(diffSec / 60)\n const diffHour = Math.floor(diffMin / 60)\n const diffDay = Math.floor(diffHour / 24)\n\n if (diffSec < 60) return \"just now\"\n if (diffMin < 60) return `${String(diffMin)}m ago`\n if (diffHour < 24) return `${String(diffHour)}h ago`\n if (diffDay < 7) return `${String(diffDay)}d ago`\n\n return date.toLocaleDateString()\n}\n\n/**\n * FeedItem component renders a single feed entry\n */\nfunction FeedItemComponent({\n className,\n item,\n size,\n isActive,\n isHighlighted,\n isLast,\n showDivider = true,\n children,\n ...props\n}: FeedItemProps) {\n return (\n <article\n className={cn(\n feedItemVariants({ size, isActive, isHighlighted }),\n \"hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n !isLast && showDivider && \"border-b border-border\",\n className\n )}\n data-active={isActive ? \"\" : undefined}\n data-highlighted={isHighlighted ? \"\" : undefined}\n data-slot=\"feed-item\"\n role=\"article\"\n tabIndex={0}\n {...props}\n >\n {item ? (\n <>\n {item.icon && (\n <div\n className=\"mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-full bg-muted\"\n data-slot=\"feed-icon\"\n >\n {item.icon}\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0 flex-1\" data-slot=\"feed-content\">\n <p className=\"font-medium text-foreground\">{item.title}</p>\n {item.description && (\n <p className=\"mt-1 text-sm text-muted-foreground\">\n {item.description}\n </p>\n )}\n {item.metadata?.author && (\n <p className=\"mt-1 text-xs text-muted-foreground\">\n by {item.metadata.author}\n </p>\n )}\n </div>\n <div className=\"flex shrink-0 items-center gap-2\">\n <time\n className=\"text-xs text-muted-foreground\"\n data-slot=\"feed-timestamp\"\n dateTime={item.timestamp.toISOString()}\n >\n {formatRelativeTime(item.timestamp)}\n </time>\n {item.action && (\n <span data-slot=\"feed-action\">{item.action}</span>\n )}\n </div>\n </div>\n </div>\n </>\n ) : (\n children\n )}\n </article>\n )\n}\n\n/**\n * Feed loading skeleton component\n */\nfunction FeedSkeleton({ count = 3 }: { count?: number }) {\n return (\n <>\n {Array.from({ length: count }).map((_, index) => (\n <div\n key={`skeleton-${String(index)}`}\n className=\"flex animate-pulse gap-3 py-4 px-4\"\n data-slot=\"feed-skeleton\"\n >\n <div className=\"size-8 shrink-0 rounded-full bg-muted\" />\n <div className=\"min-w-0 flex-1 space-y-2\">\n <div className=\"h-4 w-3/4 rounded bg-muted\" />\n <div className=\"h-3 w-1/2 rounded bg-muted\" />\n </div>\n <div className=\"h-3 w-12 shrink-0 rounded bg-muted\" />\n </div>\n ))}\n </>\n )\n}\n\n/**\n * Feed component displays a series of events or activities in chronological order.\n *\n * @example\n * ```tsx\n * const items = [\n * { id: \"1\", timestamp: new Date(), title: \"New comment\", description: \"John commented on your post\" }\n * ]\n * <Feed items={items} />\n * ```\n */\nfunction Feed({\n className,\n variant,\n size,\n items,\n reverse = false,\n divider = true,\n loading = false,\n children,\n ...props\n}: FeedProps) {\n const sortedItems = items\n ? reverse\n ? [...items].reverse()\n : items\n : undefined\n\n // Determine if we have content (for ARIA role)\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Using || for truthy check, not null/undefined check\n const hasContent = loading || (sortedItems && sortedItems.length > 0) || children\n\n return (\n <div\n aria-busy={hasContent ? loading : undefined}\n aria-label={hasContent ? \"Activity feed\" : undefined}\n aria-live={hasContent ? \"polite\" : undefined}\n className={cn(feedVariants({ variant, size }), className)}\n data-loading={loading ? \"\" : undefined}\n data-slot=\"feed\"\n data-variant={variant ?? \"default\"}\n role={hasContent ? \"feed\" : undefined}\n {...props}\n >\n {loading ? (\n <FeedSkeleton />\n ) : sortedItems ? (\n sortedItems.map((item, index) => (\n <FeedItemComponent\n key={item.id}\n isLast={index === sortedItems.length - 1}\n item={item}\n showDivider={divider}\n size={size}\n />\n ))\n ) : (\n children\n )}\n </div>\n )\n}\n\nexport {\n Feed,\n FeedItemComponent as FeedItem,\n feedItemVariants,\n FeedSkeleton,\n feedVariants,\n}\nexport type { FeedItem as FeedItemData, FeedItemProps, FeedProps }\n"]}
1
+ {"version":3,"sources":["../src/components/data-display/Feed/Feed.tsx"],"names":[],"mappings":"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","file":"chunk-4XXAIWQ4.js","sourcesContent":["import type { ReactNode } from \"react\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst feedVariants = cva(\"flex flex-col transition-colors duration-200\", {\n variants: {\n variant: {\n default: \"border-l border-border pl-4 gap-4\",\n compact: \"gap-2\",\n highlighted: \"gap-4\",\n },\n size: {\n sm: \"\",\n default: \"\",\n lg: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n})\n\nconst feedItemVariants = cva(\n \"relative flex gap-3 transition-colors duration-200\",\n {\n variants: {\n size: {\n sm: \"py-2 px-3\",\n default: \"py-4 px-4\",\n lg: \"py-6 px-6\",\n },\n isActive: {\n true: \"bg-muted\",\n false: \"\",\n },\n isHighlighted: {\n true: \"bg-muted/50\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n isActive: false,\n isHighlighted: false,\n },\n }\n)\n\n/**\n * Feed item data structure\n */\ninterface FeedItem {\n /** Optional action element */\n action?: ReactNode\n /** Optional description */\n description?: string\n /** Optional icon element */\n icon?: ReactNode\n /** Unique identifier for the item */\n id: string\n /** Optional metadata */\n metadata?: {\n author?: string\n avatar?: string\n }\n /** Timestamp of the event */\n timestamp: Date\n /** Title of the feed item */\n title: string\n}\n\ninterface FeedProps\n extends React.ComponentProps<\"div\">,\n VariantProps<typeof feedVariants> {\n /** Custom content (alternative to items prop) */\n children?: ReactNode\n /** Show divider between items @default true */\n divider?: boolean\n /** Array of feed items */\n items?: FeedItem[]\n /** Loading state @default false */\n loading?: boolean\n /** Reverse chronological order @default false */\n reverse?: boolean\n}\n\ninterface FeedItemProps\n extends React.ComponentProps<\"article\">,\n VariantProps<typeof feedItemVariants> {\n /** Whether the item is the last in the list */\n isLast?: boolean\n /** The feed item data */\n item?: FeedItem\n /** Show divider after item @default true */\n showDivider?: boolean\n}\n\n/**\n * Format a date to relative time (e.g., \"2 hours ago\")\n */\nfunction formatRelativeTime(date: Date): string {\n const now = new Date()\n const diffMs = now.getTime() - date.getTime()\n const diffSec = Math.floor(diffMs / 1000)\n const diffMin = Math.floor(diffSec / 60)\n const diffHour = Math.floor(diffMin / 60)\n const diffDay = Math.floor(diffHour / 24)\n\n if (diffSec < 60) return \"just now\"\n if (diffMin < 60) return `${String(diffMin)}m ago`\n if (diffHour < 24) return `${String(diffHour)}h ago`\n if (diffDay < 7) return `${String(diffDay)}d ago`\n\n return date.toLocaleDateString()\n}\n\n/**\n * FeedItem component renders a single feed entry\n */\nfunction FeedItemComponent({\n className,\n item,\n size,\n isActive,\n isHighlighted,\n isLast,\n showDivider = true,\n children,\n ...props\n}: FeedItemProps) {\n return (\n <article\n className={cn(\n feedItemVariants({ size, isActive, isHighlighted }),\n \"hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n !isLast && showDivider && \"border-b border-border\",\n className\n )}\n data-active={isActive ? \"\" : undefined}\n data-highlighted={isHighlighted ? \"\" : undefined}\n data-slot=\"feed-item\"\n role=\"article\"\n tabIndex={0}\n {...props}\n >\n {item ? (\n <>\n {item.icon && (\n <div\n className=\"mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-full bg-muted\"\n data-slot=\"feed-icon\"\n >\n {item.icon}\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0 flex-1\" data-slot=\"feed-content\">\n <p className=\"font-medium text-foreground\">{item.title}</p>\n {item.description && (\n <p className=\"mt-1 text-sm text-muted-foreground\">\n {item.description}\n </p>\n )}\n {item.metadata?.author && (\n <p className=\"mt-1 text-xs text-muted-foreground\">\n by {item.metadata.author}\n </p>\n )}\n </div>\n <div className=\"flex shrink-0 items-center gap-2\">\n <time\n className=\"text-xs text-muted-foreground\"\n data-slot=\"feed-timestamp\"\n dateTime={item.timestamp.toISOString()}\n >\n {formatRelativeTime(item.timestamp)}\n </time>\n {item.action && (\n <span data-slot=\"feed-action\">{item.action}</span>\n )}\n </div>\n </div>\n </div>\n </>\n ) : (\n children\n )}\n </article>\n )\n}\n\n/**\n * Feed loading skeleton component\n */\nfunction FeedSkeleton({ count = 3 }: { count?: number }) {\n return (\n <>\n {Array.from({ length: count }).map((_, index) => (\n <div\n key={`skeleton-${String(index)}`}\n className=\"flex animate-pulse gap-3 py-4 px-4\"\n data-slot=\"feed-skeleton\"\n >\n <div className=\"size-8 shrink-0 rounded-full bg-muted\" />\n <div className=\"min-w-0 flex-1 space-y-2\">\n <div className=\"h-4 w-3/4 rounded bg-muted\" />\n <div className=\"h-3 w-1/2 rounded bg-muted\" />\n </div>\n <div className=\"h-3 w-12 shrink-0 rounded bg-muted\" />\n </div>\n ))}\n </>\n )\n}\n\n/**\n * Feed component displays a series of events or activities in chronological order.\n *\n * @example\n * ```tsx\n * const items = [\n * { id: \"1\", timestamp: new Date(), title: \"New comment\", description: \"John commented on your post\" }\n * ]\n * <Feed items={items} />\n * ```\n */\nfunction Feed({\n className,\n variant,\n size,\n items,\n reverse = false,\n divider = true,\n loading = false,\n children,\n ...props\n}: FeedProps) {\n const sortedItems = items\n ? reverse\n ? [...items].reverse()\n : items\n : undefined\n\n // Determine if we have content (for ARIA role)\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Using || for truthy check, not null/undefined check\n const hasContent = loading || (sortedItems && sortedItems.length > 0) || children\n\n return (\n <div\n aria-busy={hasContent ? loading : undefined}\n aria-label={hasContent ? \"Activity feed\" : undefined}\n aria-live={hasContent ? \"polite\" : undefined}\n className={cn(feedVariants({ variant, size }), className)}\n data-loading={loading ? \"\" : undefined}\n data-slot=\"feed\"\n data-variant={variant ?? \"default\"}\n role={hasContent ? \"feed\" : undefined}\n {...props}\n >\n {loading ? (\n <FeedSkeleton />\n ) : sortedItems ? (\n sortedItems.map((item, index) => (\n <FeedItemComponent\n key={item.id}\n isLast={index === sortedItems.length - 1}\n item={item}\n showDivider={divider}\n size={size}\n />\n ))\n ) : (\n children\n )}\n </div>\n )\n}\n\nexport {\n Feed,\n FeedItemComponent as FeedItem,\n feedItemVariants,\n FeedSkeleton,\n feedVariants,\n}\nexport type { FeedItem as FeedItemData, FeedItemProps, FeedProps }\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import { Component } from 'react';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
  import { cva } from 'class-variance-authority';
@@ -245,5 +245,5 @@ var errorBoundaryActionVariants = cva(
245
245
  );
246
246
 
247
247
  export { DefaultFallback, ErrorBoundary, errorBoundaryActionVariants, errorBoundaryCardVariants, errorBoundaryFallbackVariants, errorBoundaryIconVariants, errorBoundaryMessageVariants, errorBoundaryStackVariants, errorBoundaryTitleVariants };
248
- //# sourceMappingURL=chunk-D2V2HKLX.js.map
249
- //# sourceMappingURL=chunk-D2V2HKLX.js.map
248
+ //# sourceMappingURL=chunk-5ETVWWA5.js.map
249
+ //# sourceMappingURL=chunk-5ETVWWA5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/advanced/ErrorBoundary/ErrorBoundary.tsx","../src/components/advanced/ErrorBoundary/ErrorBoundary.variants.ts"],"names":[],"mappings":";;;;;AAaA,SAAS,eAAA,CAAgB,EAAE,KAAA,EAAO,kBAAA,EAAmB,EAAkB;AACrE,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT;AAAA,OACF;AAAA,MACA,WAAA,EAAU,WAAA;AAAA,MACV,WAAA,EAAU,yBAAA;AAAA,MACV,IAAA,EAAK,OAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kBAAA,EACb,QAAA,kBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAU,SAAA;AAAA,YACV,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,aAAA,EAAc,OAAA;AAAA,YACd,cAAA,EAAe,OAAA;AAAA,YACf,WAAA,EAAY,GAAA;AAAA,YACZ,OAAA,EAAQ,WAAA;AAAA,YACR,KAAA,EAAM,4BAAA;AAAA,YAEN,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,YAAO,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,GAAE,IAAA,EAAK,CAAA;AAAA,8BAC/B,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,CAAA;AAAA,8BACrC,GAAA,CAAC,UAAK,EAAA,EAAG,IAAA,EAAK,IAAG,OAAA,EAAQ,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA,SAC3C,EACF,CAAA;AAAA,wBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,wCAAA,EAAyC,QAAA,EAAA,sBAAA,EAEvD,CAAA;AAAA,8BACC,GAAA,EAAA,EAAE,SAAA,EAAU,+BAAA,EACV,QAAA,EAAA,KAAA,CAAM,WAAW,8BAAA,EACpB;AAAA,SAAA,EACF,CAAA;AAAA,wBACA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,qKAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,WAAA,EAAU,6BAAA;AAAA,YACV,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,kBAAA;AAAA,YACV,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,GACF;AAEJ;AAyBA,IAAM,aAAA,GAAN,cAA4B,SAAA,CAAkD;AAAA,EAC5E,YAAY,KAAA,EAA2B;AACrC,IAAA,KAAA,CAAM,KAAK,CAAA;AACX,IAAA,IAAA,CAAK,KAAA,GAAQ;AAAA,MACX,KAAA,EAAO,IAAA;AAAA,MACP,QAAA,EAAU;AAAA,KACZ;AAAA,EACF;AAAA,EAEA,OAAO,yBAAyB,KAAA,EAAkC;AAChE,IAAA,OAAO;AAAA,MACL,KAAA;AAAA,MACA,QAAA,EAAU;AAAA,KACZ;AAAA,EACF;AAAA,EAES,iBAAA,CAAkB,OAAc,SAAA,EAA4B;AACnE,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,IAAA,CAAK,KAAA;AACzB,IAAA,OAAA,GAAU,OAAO,SAAS,CAAA;AAAA,EAC5B;AAAA,EAES,mBAAmB,SAAA,EAAqC;AAC/D,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,IAAA,CAAK,KAAA;AAC3B,IAAA,MAAM,EAAE,QAAA,EAAS,GAAI,IAAA,CAAK,KAAA;AAE1B,IAAA,IAAI,QAAA,IAAY,SAAA,CAAU,SAAA,KAAc,SAAA,EAAW;AAEjD,MAAA,IAAI,SAAA,IAAa,UAAU,SAAA,EAAW;AACpC,QAAA,MAAM,gBAAgB,SAAA,CAAU,IAAA;AAAA,UAC9B,CAAC,GAAA,EAAK,KAAA,KAAU,SAAA,CAAU,SAAA,GAAY,KAAK,CAAA,KAAM;AAAA,SACnD;AACA,QAAA,IAAI,aAAA,EAAe;AACjB,UAAA,IAAA,CAAK,KAAA,EAAM;AAAA,QACb;AAAA,MACF,CAAA,MAAA,IAAW,SAAA,KAAc,SAAA,CAAU,SAAA,EAAW;AAC5C,QAAA,IAAA,CAAK,KAAA,EAAM;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAAA,EAEA,QAAQ,MAAY;AAClB,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,IAAA,CAAK,KAAA;AACzB,IAAA,OAAA,IAAU;AACV,IAAA,IAAA,CAAK,QAAA,CAAS;AAAA,MACZ,KAAA,EAAO,IAAA;AAAA,MACP,QAAA,EAAU;AAAA,KACX,CAAA;AAAA,EACH,CAAA;AAAA,EAES,MAAA,GAAoB;AAC3B,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,iBAAA,KAAsB,IAAA,CAAK,KAAA;AAClE,IAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAS,GAAI,IAAA,CAAK,KAAA;AAEjC,IAAA,IAAI,YAAY,KAAA,EAAO;AACrB,MAAA,MAAM,aAAA,GAA+B;AAAA,QACnC,KAAA;AAAA,QACA,oBAAoB,IAAA,CAAK;AAAA,OAC3B;AAGA,MAAA,IAAI,iBAAA,EAAmB;AACrB,QAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EAAsB,WAAA,EAAU,kBACnC,QAAA,kBAAA,GAAA,CAAC,iBAAA,EAAA,EAAmB,GAAG,aAAA,EAAe,CAAA,EACxC,CAAA;AAAA,MAEJ;AAEA,MAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,QAAA,MAAM,cAAA,GAAiB,QAAA;AACvB,QAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAsB,aAAU,gBAAA,EAClC,QAAA,EAAA,cAAA,CAAe,aAAa,CAAA,EAC/B,CAAA;AAAA,MAEJ;AAEA,MAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,QAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAsB,WAAA,EAAU,kBAClC,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,MAEJ;AAGA,MAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EAAsB,WAAA,EAAU,kBACnC,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EAAiB,GAAG,aAAA,EAAe,CAAA,EACtC,CAAA;AAAA,IAEJ;AAEA,IAAA,OAAO,QAAA;AAAA,EACT;AACF;AChLO,IAAM,6BAAA,GAAgC,GAAA;AAAA,EAC3C,uDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,WAAA;AAAA,QACT,QAAA,EAAU,WAAA;AAAA,QACV,MAAA,EAAQ,WAAA;AAAA,QACR,UAAA,EAAY;AAAA,OACd;AAAA,MACA,QAAA,EAAU;AAAA,QACR,KAAA,EAAO,kBAAA;AAAA,QACP,OAAA,EAAS,cAAA;AAAA,QACT,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,UAAA;AAAA,MACT,QAAA,EAAU;AAAA;AACZ;AAEJ;AAKO,IAAM,yBAAA,GAA4B,GAAA;AAAA,EACvC,qCAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,eAAA;AAAA,QACT,QAAA,EAAU,wCAAA;AAAA,QACV,MAAA,EAAQ,wCAAA;AAAA,QACR,UAAA,EAAY;AAAA;AACd,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAKO,IAAM,yBAAA,GAA4B,GAAA;AAAA,EACvC,UAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,QAAA,EAAU;AAAA,QACR,KAAA,EAAO,kBAAA;AAAA,QACP,OAAA,EAAS,cAAA;AAAA,QACT,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,QAAA,EAAU;AAAA;AACZ;AAEJ;AAKO,IAAM,0BAAA,GAA6B,GAAA;AAAA,EACxC,eAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAKO,IAAM,4BAAA,GAA+B,GAAA;AAAA,EAC1C,uBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAKO,IAAM,0BAAA,GAA6B,GAAA;AAAA,EACxC,gGAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,UAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW;AAAA;AACb;AAEJ;AAKO,IAAM,2BAAA,GAA8B,GAAA;AAAA,EACzC,gKAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,wDAAA;AAAA,QACT,OAAA,EAAS,gFAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ","file":"chunk-D2V2HKLX.js","sourcesContent":["import type {\n ErrorBoundaryProps,\n ErrorBoundaryState,\n FallbackProps,\n} from \"./ErrorBoundary.types\"\n\nimport { Component, type ErrorInfo, type ReactNode } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\n/**\n * Default fallback UI shown when an error occurs and no custom fallback is provided\n */\nfunction DefaultFallback({ error, resetErrorBoundary }: FallbackProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center gap-4 rounded-lg border border-destructive bg-destructive/10 p-6\"\n )}\n aria-live=\"assertive\"\n data-slot=\"error-boundary-fallback\"\n role=\"alert\"\n >\n <div className=\"text-destructive\">\n <svg\n aria-hidden=\"true\"\n className=\"size-12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\" />\n <line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\" />\n </svg>\n </div>\n <div className=\"space-y-2 text-center\">\n <h2 className=\"text-lg font-semibold text-destructive\">\n Something went wrong\n </h2>\n <p className=\"text-sm text-muted-foreground\">\n {error.message || \"An unexpected error occurred\"}\n </p>\n </div>\n <button\n className={cn(\n \"inline-flex h-9 items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n )}\n data-slot=\"error-boundary-reset-button\"\n type=\"button\"\n onClick={resetErrorBoundary}\n >\n Try again\n </button>\n </div>\n )\n}\n\n/**\n * ErrorBoundary catches JavaScript errors in child component trees,\n * logs them, and displays a fallback UI instead of crashing the whole app.\n *\n * @example\n * ```tsx\n * <ErrorBoundary fallback={<p>Something went wrong</p>}>\n * <MyComponent />\n * </ErrorBoundary>\n * ```\n *\n * @example\n * ```tsx\n * <ErrorBoundary\n * FallbackComponent={ErrorFallback}\n * onError={(error, info) => logError(error, info)}\n * onReset={() => resetAppState()}\n * resetKeys={[userId]}\n * >\n * <Dashboard />\n * </ErrorBoundary>\n * ```\n */\nclass ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = {\n error: null,\n hasError: false,\n }\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return {\n error,\n hasError: true,\n }\n }\n\n override componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n const { onError } = this.props\n onError?.(error, errorInfo)\n }\n\n override componentDidUpdate(prevProps: ErrorBoundaryProps): void {\n const { resetKeys } = this.props\n const { hasError } = this.state\n\n if (hasError && prevProps.resetKeys !== resetKeys) {\n // Check if any resetKey changed\n if (resetKeys && prevProps.resetKeys) {\n const hasKeyChanged = resetKeys.some(\n (key, index) => prevProps.resetKeys?.[index] !== key\n )\n if (hasKeyChanged) {\n this.reset()\n }\n } else if (resetKeys !== prevProps.resetKeys) {\n this.reset()\n }\n }\n }\n\n reset = (): void => {\n const { onReset } = this.props\n onReset?.()\n this.setState({\n error: null,\n hasError: false,\n })\n }\n\n override render(): ReactNode {\n const { children, className, fallback, FallbackComponent } = this.props\n const { error, hasError } = this.state\n\n if (hasError && error) {\n const fallbackProps: FallbackProps = {\n error,\n resetErrorBoundary: this.reset,\n }\n\n // Priority: FallbackComponent > fallback function > fallback node > DefaultFallback\n if (FallbackComponent) {\n return (\n <div className={className} data-slot=\"error-boundary\">\n <FallbackComponent {...fallbackProps} />\n </div>\n )\n }\n\n if (typeof fallback === \"function\") {\n const renderFallback = fallback\n return (\n <div className={className} data-slot=\"error-boundary\">\n {renderFallback(fallbackProps)}\n </div>\n )\n }\n\n if (fallback !== undefined) {\n return (\n <div className={className} data-slot=\"error-boundary\">\n {fallback}\n </div>\n )\n }\n\n // Default fallback\n return (\n <div className={className} data-slot=\"error-boundary\">\n <DefaultFallback {...fallbackProps} />\n </div>\n )\n }\n\n return children\n }\n}\n\nexport { DefaultFallback, ErrorBoundary }\n","import { cva } from \"class-variance-authority\"\n\n/**\n * ErrorBoundary fallback container variants\n */\nexport const errorBoundaryFallbackVariants = cva(\n \"flex flex-col items-center justify-center text-center\",\n {\n variants: {\n variant: {\n minimal: \"p-4 gap-2\",\n detailed: \"p-6 gap-4\",\n action: \"p-6 gap-4\",\n fullscreen: \"min-h-screen p-8 gap-6\",\n },\n severity: {\n error: \"text-destructive\",\n warning: \"text-warning\",\n info: \"text-muted-foreground\",\n },\n },\n defaultVariants: {\n variant: \"detailed\",\n severity: \"error\",\n },\n }\n)\n\n/**\n * ErrorBoundary fallback card variants\n */\nexport const errorBoundaryCardVariants = cva(\n \"rounded-lg border bg-background p-6\",\n {\n variants: {\n variant: {\n minimal: \"border-border\",\n detailed: \"border-destructive/50 bg-destructive/5\",\n action: \"border-destructive/50 bg-destructive/5\",\n fullscreen: \"border-destructive/50 bg-destructive/5 max-w-md w-full\",\n },\n },\n defaultVariants: {\n variant: \"detailed\",\n },\n }\n)\n\n/**\n * ErrorBoundary icon variants\n */\nexport const errorBoundaryIconVariants = cva(\n \"shrink-0\",\n {\n variants: {\n size: {\n sm: \"h-8 w-8\",\n md: \"h-12 w-12\",\n lg: \"h-16 w-16\",\n },\n severity: {\n error: \"text-destructive\",\n warning: \"text-warning\",\n info: \"text-muted-foreground\",\n },\n },\n defaultVariants: {\n size: \"md\",\n severity: \"error\",\n },\n }\n)\n\n/**\n * ErrorBoundary title variants\n */\nexport const errorBoundaryTitleVariants = cva(\n \"font-semibold\",\n {\n variants: {\n size: {\n sm: \"text-base\",\n md: \"text-lg\",\n lg: \"text-xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * ErrorBoundary message variants\n */\nexport const errorBoundaryMessageVariants = cva(\n \"text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * ErrorBoundary stack trace variants\n */\nexport const errorBoundaryStackVariants = cva(\n \"w-full overflow-auto rounded-md bg-muted p-4 text-left font-mono text-xs text-muted-foreground\",\n {\n variants: {\n collapsed: {\n true: \"max-h-24\",\n false: \"max-h-64\",\n },\n },\n defaultVariants: {\n collapsed: true,\n },\n }\n)\n\n/**\n * ErrorBoundary action button variants\n */\nexport const errorBoundaryActionVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n {\n variants: {\n variant: {\n primary: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n sm: \"h-8 px-3 text-sm\",\n md: \"h-9 px-4 text-sm\",\n lg: \"h-10 px-6 text-base\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n)\n"]}
1
+ {"version":3,"sources":["../src/components/advanced/ErrorBoundary/ErrorBoundary.tsx","../src/components/advanced/ErrorBoundary/ErrorBoundary.variants.ts"],"names":[],"mappings":"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","file":"chunk-5ETVWWA5.js","sourcesContent":["import type {\n ErrorBoundaryProps,\n ErrorBoundaryState,\n FallbackProps,\n} from \"./ErrorBoundary.types\"\n\nimport { Component, type ErrorInfo, type ReactNode } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\n/**\n * Default fallback UI shown when an error occurs and no custom fallback is provided\n */\nfunction DefaultFallback({ error, resetErrorBoundary }: FallbackProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center gap-4 rounded-lg border border-destructive bg-destructive/10 p-6\"\n )}\n aria-live=\"assertive\"\n data-slot=\"error-boundary-fallback\"\n role=\"alert\"\n >\n <div className=\"text-destructive\">\n <svg\n aria-hidden=\"true\"\n className=\"size-12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\" />\n <line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\" />\n </svg>\n </div>\n <div className=\"space-y-2 text-center\">\n <h2 className=\"text-lg font-semibold text-destructive\">\n Something went wrong\n </h2>\n <p className=\"text-sm text-muted-foreground\">\n {error.message || \"An unexpected error occurred\"}\n </p>\n </div>\n <button\n className={cn(\n \"inline-flex h-9 items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n )}\n data-slot=\"error-boundary-reset-button\"\n type=\"button\"\n onClick={resetErrorBoundary}\n >\n Try again\n </button>\n </div>\n )\n}\n\n/**\n * ErrorBoundary catches JavaScript errors in child component trees,\n * logs them, and displays a fallback UI instead of crashing the whole app.\n *\n * @example\n * ```tsx\n * <ErrorBoundary fallback={<p>Something went wrong</p>}>\n * <MyComponent />\n * </ErrorBoundary>\n * ```\n *\n * @example\n * ```tsx\n * <ErrorBoundary\n * FallbackComponent={ErrorFallback}\n * onError={(error, info) => logError(error, info)}\n * onReset={() => resetAppState()}\n * resetKeys={[userId]}\n * >\n * <Dashboard />\n * </ErrorBoundary>\n * ```\n */\nclass ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = {\n error: null,\n hasError: false,\n }\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return {\n error,\n hasError: true,\n }\n }\n\n override componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n const { onError } = this.props\n onError?.(error, errorInfo)\n }\n\n override componentDidUpdate(prevProps: ErrorBoundaryProps): void {\n const { resetKeys } = this.props\n const { hasError } = this.state\n\n if (hasError && prevProps.resetKeys !== resetKeys) {\n // Check if any resetKey changed\n if (resetKeys && prevProps.resetKeys) {\n const hasKeyChanged = resetKeys.some(\n (key, index) => prevProps.resetKeys?.[index] !== key\n )\n if (hasKeyChanged) {\n this.reset()\n }\n } else if (resetKeys !== prevProps.resetKeys) {\n this.reset()\n }\n }\n }\n\n reset = (): void => {\n const { onReset } = this.props\n onReset?.()\n this.setState({\n error: null,\n hasError: false,\n })\n }\n\n override render(): ReactNode {\n const { children, className, fallback, FallbackComponent } = this.props\n const { error, hasError } = this.state\n\n if (hasError && error) {\n const fallbackProps: FallbackProps = {\n error,\n resetErrorBoundary: this.reset,\n }\n\n // Priority: FallbackComponent > fallback function > fallback node > DefaultFallback\n if (FallbackComponent) {\n return (\n <div className={className} data-slot=\"error-boundary\">\n <FallbackComponent {...fallbackProps} />\n </div>\n )\n }\n\n if (typeof fallback === \"function\") {\n const renderFallback = fallback\n return (\n <div className={className} data-slot=\"error-boundary\">\n {renderFallback(fallbackProps)}\n </div>\n )\n }\n\n if (fallback !== undefined) {\n return (\n <div className={className} data-slot=\"error-boundary\">\n {fallback}\n </div>\n )\n }\n\n // Default fallback\n return (\n <div className={className} data-slot=\"error-boundary\">\n <DefaultFallback {...fallbackProps} />\n </div>\n )\n }\n\n return children\n }\n}\n\nexport { DefaultFallback, ErrorBoundary }\n","import { cva } from \"class-variance-authority\"\n\n/**\n * ErrorBoundary fallback container variants\n */\nexport const errorBoundaryFallbackVariants = cva(\n \"flex flex-col items-center justify-center text-center\",\n {\n variants: {\n variant: {\n minimal: \"p-4 gap-2\",\n detailed: \"p-6 gap-4\",\n action: \"p-6 gap-4\",\n fullscreen: \"min-h-screen p-8 gap-6\",\n },\n severity: {\n error: \"text-destructive\",\n warning: \"text-warning\",\n info: \"text-muted-foreground\",\n },\n },\n defaultVariants: {\n variant: \"detailed\",\n severity: \"error\",\n },\n }\n)\n\n/**\n * ErrorBoundary fallback card variants\n */\nexport const errorBoundaryCardVariants = cva(\n \"rounded-lg border bg-background p-6\",\n {\n variants: {\n variant: {\n minimal: \"border-border\",\n detailed: \"border-destructive/50 bg-destructive/5\",\n action: \"border-destructive/50 bg-destructive/5\",\n fullscreen: \"border-destructive/50 bg-destructive/5 max-w-md w-full\",\n },\n },\n defaultVariants: {\n variant: \"detailed\",\n },\n }\n)\n\n/**\n * ErrorBoundary icon variants\n */\nexport const errorBoundaryIconVariants = cva(\n \"shrink-0\",\n {\n variants: {\n size: {\n sm: \"h-8 w-8\",\n md: \"h-12 w-12\",\n lg: \"h-16 w-16\",\n },\n severity: {\n error: \"text-destructive\",\n warning: \"text-warning\",\n info: \"text-muted-foreground\",\n },\n },\n defaultVariants: {\n size: \"md\",\n severity: \"error\",\n },\n }\n)\n\n/**\n * ErrorBoundary title variants\n */\nexport const errorBoundaryTitleVariants = cva(\n \"font-semibold\",\n {\n variants: {\n size: {\n sm: \"text-base\",\n md: \"text-lg\",\n lg: \"text-xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * ErrorBoundary message variants\n */\nexport const errorBoundaryMessageVariants = cva(\n \"text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * ErrorBoundary stack trace variants\n */\nexport const errorBoundaryStackVariants = cva(\n \"w-full overflow-auto rounded-md bg-muted p-4 text-left font-mono text-xs text-muted-foreground\",\n {\n variants: {\n collapsed: {\n true: \"max-h-24\",\n false: \"max-h-64\",\n },\n },\n defaultVariants: {\n collapsed: true,\n },\n }\n)\n\n/**\n * ErrorBoundary action button variants\n */\nexport const errorBoundaryActionVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n {\n variants: {\n variant: {\n primary: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n sm: \"h-8 px-3 text-sm\",\n md: \"h-9 px-4 text-sm\",\n lg: \"h-10 px-6 text-base\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n)\n"]}
@@ -1,5 +1,5 @@
1
- import { Tooltip, TooltipTrigger, TooltipContent } from './chunk-7ZJ32KRQ.js';
2
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { Tooltip, TooltipTrigger, TooltipContent } from './chunk-TEVGCTUN.js';
2
+ import { cn } from './chunk-RVAYDRMA.js';
3
3
  import * as React from 'react';
4
4
  import { cva } from 'class-variance-authority';
5
5
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -301,5 +301,5 @@ function ProgressCircle({
301
301
  }
302
302
 
303
303
  export { PROGRESS_CIRCLE_SIZES, ProgressCircle, progressCircleContainerVariants, progressCircleIndicatorVariants, progressCircleLabelVariants, progressCircleTrackVariants, progressCircleValueVariants };
304
- //# sourceMappingURL=chunk-U4H3XHSI.js.map
305
- //# sourceMappingURL=chunk-U4H3XHSI.js.map
304
+ //# sourceMappingURL=chunk-5GV4LDX7.js.map
305
+ //# sourceMappingURL=chunk-5GV4LDX7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/primitives/ProgressCircle/ProgressCircle.variants.ts","../src/components/primitives/ProgressCircle/ProgressCircle.tsx"],"names":[],"mappings":"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","file":"chunk-U4H3XHSI.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Size configuration for ProgressCircle\n * Maps size variant to actual pixel dimensions and stroke widths.\n *\n * Values are synced with CSS variables from @etus/tokens:\n * - --progress-circle-size-{size}-diameter\n * - --progress-circle-size-{size}-stroke-width\n *\n * Numeric values are required here for SVG attribute calculations\n * (radius, circumference, path coordinates).\n */\nexport const PROGRESS_CIRCLE_SIZES = {\n xxs: { diameter: 64, strokeWidth: 4, fontSize: \"text-sm\", labelSize: \"text-xs\" },\n xs: { diameter: 160, strokeWidth: 8, fontSize: \"text-2xl\", labelSize: \"text-sm\" },\n sm: { diameter: 200, strokeWidth: 10, fontSize: \"text-3xl\", labelSize: \"text-sm\" },\n md: { diameter: 240, strokeWidth: 12, fontSize: \"text-4xl\", labelSize: \"text-base\" },\n lg: { diameter: 280, strokeWidth: 14, fontSize: \"text-5xl\", labelSize: \"text-base\" },\n} as const\n\n/**\n * Container variants for the progress circle\n * Uses CSS custom properties from @etus/tokens for sizing\n */\nexport const progressCircleContainerVariants = cva(\n \"relative inline-flex items-center justify-center\",\n {\n variants: {\n size: {\n xxs: \"w-[var(--progress-circle-size-xxs-diameter)] h-[var(--progress-circle-size-xxs-diameter)]\",\n xs: \"w-[var(--progress-circle-size-xs-diameter)] h-[var(--progress-circle-size-xs-diameter)]\",\n sm: \"w-[var(--progress-circle-size-sm-diameter)] h-[var(--progress-circle-size-sm-diameter)]\",\n md: \"w-[var(--progress-circle-size-md-diameter)] h-[var(--progress-circle-size-md-diameter)]\",\n lg: \"w-[var(--progress-circle-size-lg-diameter)] h-[var(--progress-circle-size-lg-diameter)]\",\n },\n shape: {\n circle: \"\",\n \"half-circle\": \"!h-auto\",\n },\n },\n defaultVariants: {\n size: \"md\",\n shape: \"circle\",\n },\n }\n)\n\n/**\n * Track (background circle) color variants\n */\nexport const progressCircleTrackVariants = cva(\n \"transition-colors\",\n {\n variants: {\n color: {\n default: \"stroke-[color:var(--progress-circle-track-color-default)]\",\n primary: \"stroke-[color:var(--progress-circle-track-color-primary)]\",\n success: \"stroke-[color:var(--progress-circle-track-color-success)]\",\n warning: \"stroke-[color:var(--progress-circle-track-color-warning)]\",\n error: \"stroke-[color:var(--progress-circle-track-color-error)]\",\n },\n },\n defaultVariants: {\n color: \"default\",\n },\n }\n)\n\n/**\n * Indicator (progress arc) color variants\n */\nexport const progressCircleIndicatorVariants = cva(\n \"transition-all duration-700 ease-out motion-reduce:transition-none\",\n {\n variants: {\n color: {\n default: \"stroke-[color:var(--progress-circle-indicator-color-default)]\",\n primary: \"stroke-[color:var(--progress-circle-indicator-color-primary)]\",\n success: \"stroke-[color:var(--progress-circle-indicator-color-success)]\",\n warning: \"stroke-[color:var(--progress-circle-indicator-color-warning)]\",\n error: \"stroke-[color:var(--progress-circle-indicator-color-error)]\",\n },\n indeterminate: {\n true: \"animate-spin origin-center\",\n false: \"\",\n },\n },\n defaultVariants: {\n color: \"default\",\n indeterminate: false,\n },\n }\n)\n\n/**\n * Value text variants (percentage in center)\n */\nexport const progressCircleValueVariants = cva(\n \"font-[var(--progress-circle-value-font-weight)] tabular-nums text-[color:var(--progress-circle-value-color)]\",\n {\n variants: {\n size: {\n xxs: \"text-sm\",\n xs: \"text-2xl\",\n sm: \"text-3xl\",\n md: \"text-4xl\",\n lg: \"text-5xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Label text variants (below percentage)\n */\nexport const progressCircleLabelVariants = cva(\n \"text-[color:var(--progress-circle-label-color)]\",\n {\n variants: {\n size: {\n xxs: \"text-xs\",\n xs: \"text-sm\",\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type ProgressCircleContainerVariants = VariantProps<typeof progressCircleContainerVariants>\nexport type ProgressCircleTrackVariants = VariantProps<typeof progressCircleTrackVariants>\nexport type ProgressCircleIndicatorVariants = VariantProps<typeof progressCircleIndicatorVariants>\n","\"use client\"\n\nimport type { ProgressCircleProps } from \"./ProgressCircle.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../../feedback/Tooltip\"\nimport {\n PROGRESS_CIRCLE_SIZES,\n progressCircleContainerVariants,\n progressCircleIndicatorVariants,\n progressCircleLabelVariants,\n progressCircleTrackVariants,\n progressCircleValueVariants,\n} from \"./ProgressCircle.variants\"\n\n/**\n * Default format function for progress value\n */\nconst defaultFormatValue = (value: number): string => `${String(value)}%`\n\n/**\n * ProgressCircle component for displaying circular progress indicators.\n *\n * Built with SVG for smooth rendering and full accessibility support.\n * Supports multiple sizes, shapes (full circle and half-circle),\n * color variants, and optional labels.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <ProgressCircle value={75} />\n *\n * // With label\n * <ProgressCircle value={60} label=\"Active users\" />\n *\n * // Half-circle variant\n * <ProgressCircle value={80} shape=\"half-circle\" />\n *\n * // Different sizes and colors\n * <ProgressCircle value={50} size=\"lg\" color=\"warning\" />\n * ```\n */\nfunction ProgressCircle({\n value = 0,\n max = 100,\n indeterminate = false,\n size = \"md\",\n shape = \"circle\",\n color = \"default\",\n label,\n formatValue = defaultFormatValue,\n showValue = true,\n radius: customRadius,\n strokeWidth: customStrokeWidth,\n className,\n animate = true,\n tooltip,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n}: ProgressCircleProps) {\n // Clamp the raw value between 0 and max first\n const clampedRawValue = Math.min(max, Math.max(0, value))\n\n // Calculate percentage based on clamped value and max\n const clampedValue = (clampedRawValue / max) * 100\n\n // Animation state - initialize based on animate and indeterminate props\n const [isVisible, setIsVisible] = React.useState(!animate || indeterminate)\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n // Use IntersectionObserver to trigger animation only when in viewport\n React.useEffect(() => {\n // Skip if not animating, indeterminate, or already visible\n if (!animate || indeterminate || isVisible) {\n return\n }\n\n const element = containerRef.current\n if (!element) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0]\n if (entry?.isIntersecting) {\n requestAnimationFrame(() => {\n setIsVisible(true)\n })\n observer.disconnect()\n }\n },\n { threshold: 0.1 }\n )\n\n observer.observe(element)\n\n return () => { observer.disconnect(); }\n }, [animate, indeterminate, isVisible])\n\n // Get size configuration\n const sizeConfig = PROGRESS_CIRCLE_SIZES[size]\n const strokeWidth = customStrokeWidth ?? sizeConfig.strokeWidth\n // Use custom radius if provided, otherwise use size preset\n const diameter = customRadius ? (customRadius * 2 + strokeWidth) : sizeConfig.diameter\n\n // Calculate SVG dimensions\n const radius = (diameter - strokeWidth) / 2\n const center = diameter / 2\n\n // Calculate circumference and progress\n const isHalfCircle = shape === \"half-circle\"\n const circumference = isHalfCircle ? Math.PI * radius : 2 * Math.PI * radius\n\n // For indeterminate, show ~25% of the arc; otherwise use the actual value\n // For animation, start at 0 and animate to the target value when visible\n const displayValue = indeterminate ? 25 : (isVisible ? clampedValue : 0)\n const progressOffset = circumference - (displayValue / 100) * circumference\n\n // SVG viewBox and path calculations\n const viewBoxHeight = isHalfCircle ? diameter / 2 + strokeWidth : diameter\n\n // For half-circle, we use an arc path instead of a circle\n const getPath = () => {\n if (isHalfCircle) {\n // Arc from left to right (180 degrees at top)\n const startX = strokeWidth / 2\n const startY = center\n const endX = diameter - strokeWidth / 2\n const endY = center\n return `M ${String(startX)} ${String(startY)} A ${String(radius)} ${String(radius)} 0 0 1 ${String(endX)} ${String(endY)}`\n }\n return\n }\n\n // Format the clamped value for display\n const formattedValue = formatValue(clampedRawValue)\n\n const progressCircleElement = (\n <div\n ref={containerRef}\n className={cn(\n progressCircleContainerVariants({ size, shape }),\n className\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-valuemax={max}\n aria-valuemin={0}\n aria-valuenow={indeterminate ? undefined : clampedRawValue}\n data-indeterminate={indeterminate || undefined}\n data-slot=\"progress-circle\"\n role=\"progressbar\"\n >\n <svg\n className={isHalfCircle ? \"rotate-0\" : \"\"}\n data-slot=\"progress-circle-svg\"\n height={viewBoxHeight}\n viewBox={`0 0 ${String(diameter)} ${String(viewBoxHeight)}`}\n width={diameter}\n >\n {isHalfCircle ? (\n <>\n {/* Half-circle track */}\n <path\n className={cn(progressCircleTrackVariants({ color }))}\n d={getPath()}\n data-slot=\"progress-circle-track\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n {/* Half-circle indicator */}\n <path\n className={cn(progressCircleIndicatorVariants({ color }))}\n d={getPath()}\n data-slot=\"progress-circle-indicator\"\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={progressOffset}\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n </>\n ) : (\n <>\n {/* Full circle track */}\n <circle\n className={cn(progressCircleTrackVariants({ color }))}\n cx={center}\n cy={center}\n data-slot=\"progress-circle-track\"\n fill=\"none\"\n r={radius}\n strokeWidth={strokeWidth}\n />\n {/* Full circle indicator */}\n <circle\n style={{\n transform: indeterminate ? undefined : \"rotate(-90deg)\",\n transformOrigin: \"center\",\n }}\n className={cn(progressCircleIndicatorVariants({ color, indeterminate }))}\n cx={center}\n cy={center}\n data-slot=\"progress-circle-indicator\"\n fill=\"none\"\n r={radius}\n strokeDasharray={circumference}\n strokeDashoffset={progressOffset}\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n </>\n )}\n </svg>\n\n {/* Center content (value and label) */}\n <div\n className={cn(\n \"absolute flex flex-col items-center justify-center\",\n isHalfCircle && \"bottom-0\"\n )}\n data-slot=\"progress-circle-content\"\n >\n {showValue && !indeterminate && (\n <span\n className={cn(progressCircleValueVariants({ size }))}\n data-slot=\"progress-circle-value\"\n >\n {formattedValue}\n </span>\n )}\n {label && (\n <span\n className={cn(progressCircleLabelVariants({ size }))}\n data-slot=\"progress-circle-label\"\n >\n {label}\n </span>\n )}\n </div>\n </div>\n )\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {progressCircleElement}\n </TooltipTrigger>\n <TooltipContent>\n {tooltip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return progressCircleElement\n}\n\nexport { ProgressCircle }\n"]}
1
+ {"version":3,"sources":["../src/components/primitives/ProgressCircle/ProgressCircle.variants.ts","../src/components/primitives/ProgressCircle/ProgressCircle.tsx"],"names":[],"mappings":"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","file":"chunk-5GV4LDX7.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Size configuration for ProgressCircle\n * Maps size variant to actual pixel dimensions and stroke widths.\n *\n * Values are synced with CSS variables from @etus/tokens:\n * - --progress-circle-size-{size}-diameter\n * - --progress-circle-size-{size}-stroke-width\n *\n * Numeric values are required here for SVG attribute calculations\n * (radius, circumference, path coordinates).\n */\nexport const PROGRESS_CIRCLE_SIZES = {\n xxs: { diameter: 64, strokeWidth: 4, fontSize: \"text-sm\", labelSize: \"text-xs\" },\n xs: { diameter: 160, strokeWidth: 8, fontSize: \"text-2xl\", labelSize: \"text-sm\" },\n sm: { diameter: 200, strokeWidth: 10, fontSize: \"text-3xl\", labelSize: \"text-sm\" },\n md: { diameter: 240, strokeWidth: 12, fontSize: \"text-4xl\", labelSize: \"text-base\" },\n lg: { diameter: 280, strokeWidth: 14, fontSize: \"text-5xl\", labelSize: \"text-base\" },\n} as const\n\n/**\n * Container variants for the progress circle\n * Uses CSS custom properties from @etus/tokens for sizing\n */\nexport const progressCircleContainerVariants = cva(\n \"relative inline-flex items-center justify-center\",\n {\n variants: {\n size: {\n xxs: \"w-[var(--progress-circle-size-xxs-diameter)] h-[var(--progress-circle-size-xxs-diameter)]\",\n xs: \"w-[var(--progress-circle-size-xs-diameter)] h-[var(--progress-circle-size-xs-diameter)]\",\n sm: \"w-[var(--progress-circle-size-sm-diameter)] h-[var(--progress-circle-size-sm-diameter)]\",\n md: \"w-[var(--progress-circle-size-md-diameter)] h-[var(--progress-circle-size-md-diameter)]\",\n lg: \"w-[var(--progress-circle-size-lg-diameter)] h-[var(--progress-circle-size-lg-diameter)]\",\n },\n shape: {\n circle: \"\",\n \"half-circle\": \"!h-auto\",\n },\n },\n defaultVariants: {\n size: \"md\",\n shape: \"circle\",\n },\n }\n)\n\n/**\n * Track (background circle) color variants\n */\nexport const progressCircleTrackVariants = cva(\n \"transition-colors\",\n {\n variants: {\n color: {\n default: \"stroke-[color:var(--progress-circle-track-color-default)]\",\n primary: \"stroke-[color:var(--progress-circle-track-color-primary)]\",\n success: \"stroke-[color:var(--progress-circle-track-color-success)]\",\n warning: \"stroke-[color:var(--progress-circle-track-color-warning)]\",\n error: \"stroke-[color:var(--progress-circle-track-color-error)]\",\n },\n },\n defaultVariants: {\n color: \"default\",\n },\n }\n)\n\n/**\n * Indicator (progress arc) color variants\n */\nexport const progressCircleIndicatorVariants = cva(\n \"transition-all duration-700 ease-out motion-reduce:transition-none\",\n {\n variants: {\n color: {\n default: \"stroke-[color:var(--progress-circle-indicator-color-default)]\",\n primary: \"stroke-[color:var(--progress-circle-indicator-color-primary)]\",\n success: \"stroke-[color:var(--progress-circle-indicator-color-success)]\",\n warning: \"stroke-[color:var(--progress-circle-indicator-color-warning)]\",\n error: \"stroke-[color:var(--progress-circle-indicator-color-error)]\",\n },\n indeterminate: {\n true: \"animate-spin origin-center\",\n false: \"\",\n },\n },\n defaultVariants: {\n color: \"default\",\n indeterminate: false,\n },\n }\n)\n\n/**\n * Value text variants (percentage in center)\n */\nexport const progressCircleValueVariants = cva(\n \"font-[var(--progress-circle-value-font-weight)] tabular-nums text-[color:var(--progress-circle-value-color)]\",\n {\n variants: {\n size: {\n xxs: \"text-sm\",\n xs: \"text-2xl\",\n sm: \"text-3xl\",\n md: \"text-4xl\",\n lg: \"text-5xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Label text variants (below percentage)\n */\nexport const progressCircleLabelVariants = cva(\n \"text-[color:var(--progress-circle-label-color)]\",\n {\n variants: {\n size: {\n xxs: \"text-xs\",\n xs: \"text-sm\",\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type ProgressCircleContainerVariants = VariantProps<typeof progressCircleContainerVariants>\nexport type ProgressCircleTrackVariants = VariantProps<typeof progressCircleTrackVariants>\nexport type ProgressCircleIndicatorVariants = VariantProps<typeof progressCircleIndicatorVariants>\n","\"use client\"\n\nimport type { ProgressCircleProps } from \"./ProgressCircle.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../../feedback/Tooltip\"\nimport {\n PROGRESS_CIRCLE_SIZES,\n progressCircleContainerVariants,\n progressCircleIndicatorVariants,\n progressCircleLabelVariants,\n progressCircleTrackVariants,\n progressCircleValueVariants,\n} from \"./ProgressCircle.variants\"\n\n/**\n * Default format function for progress value\n */\nconst defaultFormatValue = (value: number): string => `${String(value)}%`\n\n/**\n * ProgressCircle component for displaying circular progress indicators.\n *\n * Built with SVG for smooth rendering and full accessibility support.\n * Supports multiple sizes, shapes (full circle and half-circle),\n * color variants, and optional labels.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <ProgressCircle value={75} />\n *\n * // With label\n * <ProgressCircle value={60} label=\"Active users\" />\n *\n * // Half-circle variant\n * <ProgressCircle value={80} shape=\"half-circle\" />\n *\n * // Different sizes and colors\n * <ProgressCircle value={50} size=\"lg\" color=\"warning\" />\n * ```\n */\nfunction ProgressCircle({\n value = 0,\n max = 100,\n indeterminate = false,\n size = \"md\",\n shape = \"circle\",\n color = \"default\",\n label,\n formatValue = defaultFormatValue,\n showValue = true,\n radius: customRadius,\n strokeWidth: customStrokeWidth,\n className,\n animate = true,\n tooltip,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n}: ProgressCircleProps) {\n // Clamp the raw value between 0 and max first\n const clampedRawValue = Math.min(max, Math.max(0, value))\n\n // Calculate percentage based on clamped value and max\n const clampedValue = (clampedRawValue / max) * 100\n\n // Animation state - initialize based on animate and indeterminate props\n const [isVisible, setIsVisible] = React.useState(!animate || indeterminate)\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n // Use IntersectionObserver to trigger animation only when in viewport\n React.useEffect(() => {\n // Skip if not animating, indeterminate, or already visible\n if (!animate || indeterminate || isVisible) {\n return\n }\n\n const element = containerRef.current\n if (!element) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0]\n if (entry?.isIntersecting) {\n requestAnimationFrame(() => {\n setIsVisible(true)\n })\n observer.disconnect()\n }\n },\n { threshold: 0.1 }\n )\n\n observer.observe(element)\n\n return () => { observer.disconnect(); }\n }, [animate, indeterminate, isVisible])\n\n // Get size configuration\n const sizeConfig = PROGRESS_CIRCLE_SIZES[size]\n const strokeWidth = customStrokeWidth ?? sizeConfig.strokeWidth\n // Use custom radius if provided, otherwise use size preset\n const diameter = customRadius ? (customRadius * 2 + strokeWidth) : sizeConfig.diameter\n\n // Calculate SVG dimensions\n const radius = (diameter - strokeWidth) / 2\n const center = diameter / 2\n\n // Calculate circumference and progress\n const isHalfCircle = shape === \"half-circle\"\n const circumference = isHalfCircle ? Math.PI * radius : 2 * Math.PI * radius\n\n // For indeterminate, show ~25% of the arc; otherwise use the actual value\n // For animation, start at 0 and animate to the target value when visible\n const displayValue = indeterminate ? 25 : (isVisible ? clampedValue : 0)\n const progressOffset = circumference - (displayValue / 100) * circumference\n\n // SVG viewBox and path calculations\n const viewBoxHeight = isHalfCircle ? diameter / 2 + strokeWidth : diameter\n\n // For half-circle, we use an arc path instead of a circle\n const getPath = () => {\n if (isHalfCircle) {\n // Arc from left to right (180 degrees at top)\n const startX = strokeWidth / 2\n const startY = center\n const endX = diameter - strokeWidth / 2\n const endY = center\n return `M ${String(startX)} ${String(startY)} A ${String(radius)} ${String(radius)} 0 0 1 ${String(endX)} ${String(endY)}`\n }\n return\n }\n\n // Format the clamped value for display\n const formattedValue = formatValue(clampedRawValue)\n\n const progressCircleElement = (\n <div\n ref={containerRef}\n className={cn(\n progressCircleContainerVariants({ size, shape }),\n className\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-valuemax={max}\n aria-valuemin={0}\n aria-valuenow={indeterminate ? undefined : clampedRawValue}\n data-indeterminate={indeterminate || undefined}\n data-slot=\"progress-circle\"\n role=\"progressbar\"\n >\n <svg\n className={isHalfCircle ? \"rotate-0\" : \"\"}\n data-slot=\"progress-circle-svg\"\n height={viewBoxHeight}\n viewBox={`0 0 ${String(diameter)} ${String(viewBoxHeight)}`}\n width={diameter}\n >\n {isHalfCircle ? (\n <>\n {/* Half-circle track */}\n <path\n className={cn(progressCircleTrackVariants({ color }))}\n d={getPath()}\n data-slot=\"progress-circle-track\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n {/* Half-circle indicator */}\n <path\n className={cn(progressCircleIndicatorVariants({ color }))}\n d={getPath()}\n data-slot=\"progress-circle-indicator\"\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={progressOffset}\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n </>\n ) : (\n <>\n {/* Full circle track */}\n <circle\n className={cn(progressCircleTrackVariants({ color }))}\n cx={center}\n cy={center}\n data-slot=\"progress-circle-track\"\n fill=\"none\"\n r={radius}\n strokeWidth={strokeWidth}\n />\n {/* Full circle indicator */}\n <circle\n style={{\n transform: indeterminate ? undefined : \"rotate(-90deg)\",\n transformOrigin: \"center\",\n }}\n className={cn(progressCircleIndicatorVariants({ color, indeterminate }))}\n cx={center}\n cy={center}\n data-slot=\"progress-circle-indicator\"\n fill=\"none\"\n r={radius}\n strokeDasharray={circumference}\n strokeDashoffset={progressOffset}\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n </>\n )}\n </svg>\n\n {/* Center content (value and label) */}\n <div\n className={cn(\n \"absolute flex flex-col items-center justify-center\",\n isHalfCircle && \"bottom-0\"\n )}\n data-slot=\"progress-circle-content\"\n >\n {showValue && !indeterminate && (\n <span\n className={cn(progressCircleValueVariants({ size }))}\n data-slot=\"progress-circle-value\"\n >\n {formattedValue}\n </span>\n )}\n {label && (\n <span\n className={cn(progressCircleLabelVariants({ size }))}\n data-slot=\"progress-circle-label\"\n >\n {label}\n </span>\n )}\n </div>\n </div>\n )\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {progressCircleElement}\n </TooltipTrigger>\n <TooltipContent>\n {tooltip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return progressCircleElement\n}\n\nexport { ProgressCircle }\n"]}
@@ -1,5 +1,5 @@
1
- import { ChartTooltipContent, ChartContainer, ChartTooltip, ChartLegend, ChartLegendContent } from './chunk-7I6KK6QE.js';
2
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { ChartTooltipContent, ChartContainer, ChartTooltip, ChartLegend, ChartLegendContent } from './chunk-XXWCMY2G.js';
2
+ import { cn } from './chunk-RVAYDRMA.js';
3
3
  import * as React from 'react';
4
4
  import { PieChart as PieChart$1, Pie, Cell } from 'recharts';
5
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -213,5 +213,5 @@ function PieChart({
213
213
  PieChart.displayName = "PieChart";
214
214
 
215
215
  export { PieChart };
216
- //# sourceMappingURL=chunk-BFBGESUI.js.map
217
- //# sourceMappingURL=chunk-BFBGESUI.js.map
216
+ //# sourceMappingURL=chunk-5MJQ5XSR.js.map
217
+ //# sourceMappingURL=chunk-5MJQ5XSR.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/data-display/PieChart/PieChart.tsx"],"names":["props","RechartsPieChart"],"mappings":"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","file":"chunk-BFBGESUI.js","sourcesContent":["\"use client\"\n\nimport type {\n PieChartActiveShape,\n PieChartCenterLabel,\n PieChartDataItem,\n PieChartLabelConfig,\n PieChartProps,\n} from \"./PieChart.types\"\n\nimport * as React from \"react\"\nimport {\n Cell,\n Pie,\n PieChart as RechartsPieChart,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"../Chart\"\n\n/**\n * Get variant configuration for pie chart\n */\nfunction getVariantConfig(\n variant: PieChartProps[\"variant\"],\n innerRadius?: number,\n outerRadius?: number,\n startAngle?: number,\n endAngle?: number\n): { endAngle: number; innerRadius: number; outerRadius: number; startAngle: number } {\n const defaultOuterRadius = outerRadius ?? 80\n\n switch (variant) {\n case \"donut\":\n return {\n endAngle: endAngle ?? 360,\n innerRadius: innerRadius ?? Math.round(defaultOuterRadius * 0.6),\n outerRadius: defaultOuterRadius,\n startAngle: startAngle ?? 0,\n }\n case \"semi\":\n return {\n endAngle: endAngle ?? 0,\n innerRadius: innerRadius ?? Math.round(defaultOuterRadius * 0.6),\n outerRadius: defaultOuterRadius,\n startAngle: startAngle ?? 180,\n }\n default: // \"pie\"\n return {\n endAngle: endAngle ?? 360,\n innerRadius: innerRadius ?? 0,\n outerRadius: defaultOuterRadius,\n startAngle: startAngle ?? 0,\n }\n }\n}\n\n/**\n * Render center label for donut charts\n */\nfunction CenterLabel({\n centerLabel,\n cx,\n cy,\n}: {\n centerLabel: PieChartCenterLabel\n cx: string\n cy: string\n}) {\n return (\n <>\n {centerLabel.value && (\n <text\n className=\"fill-foreground text-3xl font-bold\"\n dominantBaseline=\"middle\"\n textAnchor=\"middle\"\n x={cx}\n y={centerLabel.label ? \"45%\" : cy}\n >\n {centerLabel.value}\n </text>\n )}\n {centerLabel.label && (\n <text\n className=\"fill-muted-foreground text-sm\"\n dominantBaseline=\"middle\"\n textAnchor=\"middle\"\n x={cx}\n y={centerLabel.value ? \"55%\" : cy}\n >\n {centerLabel.label}\n </text>\n )}\n </>\n )\n}\n\n/**\n * Create label render function from config\n */\nfunction createLabelRenderer(config: PieChartLabelConfig | true) {\n if (config === true) {\n return ({ name, percent }: { name?: string; percent?: number }) =>\n `${name ?? ''} ${((percent ?? 0) * 100).toFixed(0)}%`\n }\n\n const { formatter } = config\n if (formatter) {\n return (entry: { name?: string; percent?: number; value?: number }) =>\n formatter(entry as PieChartDataItem & { percent: number }, entry.percent ?? 0)\n }\n\n return ({ name, percent }: { name?: string; percent?: number }) =>\n `${name ?? ''} ${((percent ?? 0) * 100).toFixed(0)}%`\n}\n\n/**\n * PieChart - Data visualization component for proportional distribution\n *\n * Displays data as slices of a circle where each slice represents a proportion\n * of the whole. Supports pie, donut, and semi-circle variants.\n *\n * @example\n * ```tsx\n * const data = [\n * { name: \"Chrome\", value: 275, fill: \"var(--color-chrome)\" },\n * { name: \"Safari\", value: 200, fill: \"var(--color-safari)\" },\n * { name: \"Firefox\", value: 187, fill: \"var(--color-firefox)\" },\n * ]\n *\n * const config = {\n * chrome: { label: \"Chrome\", color: \"hsl(var(--chart-1))\" },\n * safari: { label: \"Safari\", color: \"hsl(var(--chart-2))\" },\n * firefox: { label: \"Firefox\", color: \"hsl(var(--chart-3))\" },\n * }\n *\n * <PieChart\n * data={data}\n * config={config}\n * />\n * ```\n */\nexport function PieChart({\n activeIndex,\n activeShape,\n animationDuration = 400,\n centerLabel,\n className,\n config,\n cornerRadius = 0,\n customTooltip,\n data,\n dataKey = \"value\",\n enableLegendSlider = false,\n endAngle: endAngleProp,\n innerRadius: innerRadiusProp,\n label = false,\n nameKey = \"name\",\n onClick,\n onMouseEnter,\n onMouseLeave,\n outerRadius: outerRadiusProp,\n paddingAngle = 0,\n showLegend = false,\n showTooltip = true,\n startAngle: startAngleProp,\n tooltipCallback,\n tooltipIndicator = \"dot\",\n variant = \"pie\",\n ...props\n}: PieChartProps) {\n const prevTooltipStateRef = React.useRef<boolean>(false)\n\n /* eslint-disable react-hooks/static-components, @eslint-react/no-nested-component-definitions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- Intentional: memoized render function with Recharts any-typed props */\n // Custom tooltip content wrapper for tooltipCallback\n const TooltipContentWithCallback = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const { active = false, payload } = props\n\n // Call tooltipCallback when state changes\n if (tooltipCallback && active !== prevTooltipStateRef.current) {\n prevTooltipStateRef.current = active\n tooltipCallback({\n active,\n name: payload?.[0]?.name,\n payload: payload?.map((p: { name: string; payload: PieChartDataItem; value: number; }) => ({\n name: p.name,\n value: p.value,\n payload: p.payload,\n })),\n })\n }\n\n return <ChartTooltipContent indicator={tooltipIndicator} nameKey={nameKey} {...props} />\n },\n [tooltipCallback, tooltipIndicator, nameKey]\n )\n const {\n endAngle,\n innerRadius,\n outerRadius,\n startAngle,\n } = getVariantConfig(\n variant,\n innerRadiusProp,\n outerRadiusProp,\n startAngleProp,\n endAngleProp\n )\n\n const showCenterLabel = centerLabel && innerRadius > 0\n\n // Build active shape config\n const activeShapeConfig: PieChartActiveShape | undefined = activeShape\n ? {\n outerRadius: activeShape.outerRadius ?? outerRadius + 10,\n stroke: activeShape.stroke ?? \"var(--primary)\",\n strokeWidth: activeShape.strokeWidth ?? 2,\n }\n : undefined\n\n // Handle label configuration\n const labelConfig = typeof label === \"boolean\"\n ? (label ? true : undefined)\n : label\n\n const labelRenderer = labelConfig\n ? createLabelRenderer(labelConfig)\n : undefined\n\n const showLabelLine = typeof label === \"object\" && label.line !== false\n\n // Event handlers\n const handleClick = onClick\n ? (_: unknown, index: number) => {\n const item = data[index]\n if (item) onClick(item, index)\n }\n : undefined\n\n const handleMouseEnter = onMouseEnter\n ? (_: unknown, index: number) => {\n const item = data[index]\n if (item) onMouseEnter(item, index)\n }\n : undefined\n\n return (\n <div data-slot=\"pie-chart\" {...props}>\n <ChartContainer\n className={cn(\n variant === \"semi\" && \"aspect-[2/1]\",\n className\n )}\n config={config}\n >\n <RechartsPieChart>\n {showTooltip && (\n <ChartTooltip\n content={\n customTooltip\n ?? (tooltipCallback\n ? <TooltipContentWithCallback />\n : <ChartTooltipContent indicator={tooltipIndicator} nameKey={nameKey} />)\n }\n />\n )}\n\n {showLegend && (\n <ChartLegend content={<ChartLegendContent enableSlider={enableLegendSlider} nameKey={nameKey} />} />\n )}\n\n { }\n { }\n <Pie\n {...({\n activeIndex,\n activeShape: activeShapeConfig,\n animationDuration,\n cornerRadius,\n cx: \"50%\",\n cy: variant === \"semi\" ? \"100%\" : \"50%\",\n data,\n dataKey,\n endAngle,\n innerRadius,\n label: labelRenderer,\n labelLine: showLabelLine,\n nameKey,\n onClick: handleClick,\n onMouseEnter: handleMouseEnter,\n onMouseLeave,\n outerRadius,\n paddingAngle,\n startAngle,\n } as Record<string, unknown>)}\n >\n {data.map((entry) => (\n <Cell\n key={entry.name}\n fill={entry.fill ?? `var(--color-${entry.name.toLowerCase().replaceAll(\" \", \"-\")})`}\n />\n ))}\n </Pie>\n\n {showCenterLabel && (\n <CenterLabel\n centerLabel={centerLabel}\n cx=\"50%\"\n cy={variant === \"semi\" ? \"100%\" : \"50%\"}\n />\n )}\n </RechartsPieChart>\n </ChartContainer>\n </div>\n )\n}\n\nPieChart.displayName = \"PieChart\"\n"]}
1
+ {"version":3,"sources":["../src/components/data-display/PieChart/PieChart.tsx"],"names":["props","RechartsPieChart"],"mappings":"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","file":"chunk-5MJQ5XSR.js","sourcesContent":["\"use client\"\n\nimport type {\n PieChartActiveShape,\n PieChartCenterLabel,\n PieChartDataItem,\n PieChartLabelConfig,\n PieChartProps,\n} from \"./PieChart.types\"\n\nimport * as React from \"react\"\nimport {\n Cell,\n Pie,\n PieChart as RechartsPieChart,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"../Chart\"\n\n/**\n * Get variant configuration for pie chart\n */\nfunction getVariantConfig(\n variant: PieChartProps[\"variant\"],\n innerRadius?: number,\n outerRadius?: number,\n startAngle?: number,\n endAngle?: number\n): { endAngle: number; innerRadius: number; outerRadius: number; startAngle: number } {\n const defaultOuterRadius = outerRadius ?? 80\n\n switch (variant) {\n case \"donut\":\n return {\n endAngle: endAngle ?? 360,\n innerRadius: innerRadius ?? Math.round(defaultOuterRadius * 0.6),\n outerRadius: defaultOuterRadius,\n startAngle: startAngle ?? 0,\n }\n case \"semi\":\n return {\n endAngle: endAngle ?? 0,\n innerRadius: innerRadius ?? Math.round(defaultOuterRadius * 0.6),\n outerRadius: defaultOuterRadius,\n startAngle: startAngle ?? 180,\n }\n default: // \"pie\"\n return {\n endAngle: endAngle ?? 360,\n innerRadius: innerRadius ?? 0,\n outerRadius: defaultOuterRadius,\n startAngle: startAngle ?? 0,\n }\n }\n}\n\n/**\n * Render center label for donut charts\n */\nfunction CenterLabel({\n centerLabel,\n cx,\n cy,\n}: {\n centerLabel: PieChartCenterLabel\n cx: string\n cy: string\n}) {\n return (\n <>\n {centerLabel.value && (\n <text\n className=\"fill-foreground text-3xl font-bold\"\n dominantBaseline=\"middle\"\n textAnchor=\"middle\"\n x={cx}\n y={centerLabel.label ? \"45%\" : cy}\n >\n {centerLabel.value}\n </text>\n )}\n {centerLabel.label && (\n <text\n className=\"fill-muted-foreground text-sm\"\n dominantBaseline=\"middle\"\n textAnchor=\"middle\"\n x={cx}\n y={centerLabel.value ? \"55%\" : cy}\n >\n {centerLabel.label}\n </text>\n )}\n </>\n )\n}\n\n/**\n * Create label render function from config\n */\nfunction createLabelRenderer(config: PieChartLabelConfig | true) {\n if (config === true) {\n return ({ name, percent }: { name?: string; percent?: number }) =>\n `${name ?? ''} ${((percent ?? 0) * 100).toFixed(0)}%`\n }\n\n const { formatter } = config\n if (formatter) {\n return (entry: { name?: string; percent?: number; value?: number }) =>\n formatter(entry as PieChartDataItem & { percent: number }, entry.percent ?? 0)\n }\n\n return ({ name, percent }: { name?: string; percent?: number }) =>\n `${name ?? ''} ${((percent ?? 0) * 100).toFixed(0)}%`\n}\n\n/**\n * PieChart - Data visualization component for proportional distribution\n *\n * Displays data as slices of a circle where each slice represents a proportion\n * of the whole. Supports pie, donut, and semi-circle variants.\n *\n * @example\n * ```tsx\n * const data = [\n * { name: \"Chrome\", value: 275, fill: \"var(--color-chrome)\" },\n * { name: \"Safari\", value: 200, fill: \"var(--color-safari)\" },\n * { name: \"Firefox\", value: 187, fill: \"var(--color-firefox)\" },\n * ]\n *\n * const config = {\n * chrome: { label: \"Chrome\", color: \"hsl(var(--chart-1))\" },\n * safari: { label: \"Safari\", color: \"hsl(var(--chart-2))\" },\n * firefox: { label: \"Firefox\", color: \"hsl(var(--chart-3))\" },\n * }\n *\n * <PieChart\n * data={data}\n * config={config}\n * />\n * ```\n */\nexport function PieChart({\n activeIndex,\n activeShape,\n animationDuration = 400,\n centerLabel,\n className,\n config,\n cornerRadius = 0,\n customTooltip,\n data,\n dataKey = \"value\",\n enableLegendSlider = false,\n endAngle: endAngleProp,\n innerRadius: innerRadiusProp,\n label = false,\n nameKey = \"name\",\n onClick,\n onMouseEnter,\n onMouseLeave,\n outerRadius: outerRadiusProp,\n paddingAngle = 0,\n showLegend = false,\n showTooltip = true,\n startAngle: startAngleProp,\n tooltipCallback,\n tooltipIndicator = \"dot\",\n variant = \"pie\",\n ...props\n}: PieChartProps) {\n const prevTooltipStateRef = React.useRef<boolean>(false)\n\n /* eslint-disable react-hooks/static-components, @eslint-react/no-nested-component-definitions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- Intentional: memoized render function with Recharts any-typed props */\n // Custom tooltip content wrapper for tooltipCallback\n const TooltipContentWithCallback = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const { active = false, payload } = props\n\n // Call tooltipCallback when state changes\n if (tooltipCallback && active !== prevTooltipStateRef.current) {\n prevTooltipStateRef.current = active\n tooltipCallback({\n active,\n name: payload?.[0]?.name,\n payload: payload?.map((p: { name: string; payload: PieChartDataItem; value: number; }) => ({\n name: p.name,\n value: p.value,\n payload: p.payload,\n })),\n })\n }\n\n return <ChartTooltipContent indicator={tooltipIndicator} nameKey={nameKey} {...props} />\n },\n [tooltipCallback, tooltipIndicator, nameKey]\n )\n const {\n endAngle,\n innerRadius,\n outerRadius,\n startAngle,\n } = getVariantConfig(\n variant,\n innerRadiusProp,\n outerRadiusProp,\n startAngleProp,\n endAngleProp\n )\n\n const showCenterLabel = centerLabel && innerRadius > 0\n\n // Build active shape config\n const activeShapeConfig: PieChartActiveShape | undefined = activeShape\n ? {\n outerRadius: activeShape.outerRadius ?? outerRadius + 10,\n stroke: activeShape.stroke ?? \"var(--primary)\",\n strokeWidth: activeShape.strokeWidth ?? 2,\n }\n : undefined\n\n // Handle label configuration\n const labelConfig = typeof label === \"boolean\"\n ? (label ? true : undefined)\n : label\n\n const labelRenderer = labelConfig\n ? createLabelRenderer(labelConfig)\n : undefined\n\n const showLabelLine = typeof label === \"object\" && label.line !== false\n\n // Event handlers\n const handleClick = onClick\n ? (_: unknown, index: number) => {\n const item = data[index]\n if (item) onClick(item, index)\n }\n : undefined\n\n const handleMouseEnter = onMouseEnter\n ? (_: unknown, index: number) => {\n const item = data[index]\n if (item) onMouseEnter(item, index)\n }\n : undefined\n\n return (\n <div data-slot=\"pie-chart\" {...props}>\n <ChartContainer\n className={cn(\n variant === \"semi\" && \"aspect-[2/1]\",\n className\n )}\n config={config}\n >\n <RechartsPieChart>\n {showTooltip && (\n <ChartTooltip\n content={\n customTooltip\n ?? (tooltipCallback\n ? <TooltipContentWithCallback />\n : <ChartTooltipContent indicator={tooltipIndicator} nameKey={nameKey} />)\n }\n />\n )}\n\n {showLegend && (\n <ChartLegend content={<ChartLegendContent enableSlider={enableLegendSlider} nameKey={nameKey} />} />\n )}\n\n { }\n { }\n <Pie\n {...({\n activeIndex,\n activeShape: activeShapeConfig,\n animationDuration,\n cornerRadius,\n cx: \"50%\",\n cy: variant === \"semi\" ? \"100%\" : \"50%\",\n data,\n dataKey,\n endAngle,\n innerRadius,\n label: labelRenderer,\n labelLine: showLabelLine,\n nameKey,\n onClick: handleClick,\n onMouseEnter: handleMouseEnter,\n onMouseLeave,\n outerRadius,\n paddingAngle,\n startAngle,\n } as Record<string, unknown>)}\n >\n {data.map((entry) => (\n <Cell\n key={entry.name}\n fill={entry.fill ?? `var(--color-${entry.name.toLowerCase().replaceAll(\" \", \"-\")})`}\n />\n ))}\n </Pie>\n\n {showCenterLabel && (\n <CenterLabel\n centerLabel={centerLabel}\n cx=\"50%\"\n cy={variant === \"semi\" ? \"100%\" : \"50%\"}\n />\n )}\n </RechartsPieChart>\n </ChartContainer>\n </div>\n )\n}\n\nPieChart.displayName = \"PieChart\"\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import * as TabsPrimitive from '@radix-ui/react-tabs';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -93,5 +93,5 @@ function TabPanel({
93
93
  }
94
94
 
95
95
  export { TabPanel, TabPanelList, TabPanelRoot, TabPanelTrigger, tabPanelListVariants, tabPanelRootVariants, tabPanelTriggerVariants, tabPanelVariants };
96
- //# sourceMappingURL=chunk-GKMR5SVC.js.map
97
- //# sourceMappingURL=chunk-GKMR5SVC.js.map
96
+ //# sourceMappingURL=chunk-5QDKJMUA.js.map
97
+ //# sourceMappingURL=chunk-5QDKJMUA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/navigation/TabPanel/TabPanel.variants.ts","../src/components/navigation/TabPanel/TabPanel.tsx"],"names":[],"mappings":";;;;;AAKO,IAAM,uBAAuB,GAAA,CAAI;AAAA,EACtC;AACF,CAAC;AAKM,IAAM,uBAAuB,GAAA,CAAI;AAAA,EACtC;AACF,CAAC;AAKM,IAAM,0BAA0B,GAAA,CAAI;AAAA;AAAA,EAEzC,2EAAA;AAAA,EACA,sFAAA;AAAA;AAAA,EAEA,4CAAA;AAAA,EACA,iEAAA;AAAA,EACA,qHAAA;AAAA;AAAA,EAEA,iFAAA;AAAA,EACA,kDAAA;AAAA;AAAA,EAEA,+BAAA;AAAA;AAAA,EAEA,kDAAA;AAAA;AAAA,EAEA;AACF,CAAC;AAKM,IAAM,gBAAA,GAAmB,GAAA;AAAA,EAC9B;AAAA;AAAA,IAEE,mBAAA;AAAA;AAAA,IAEA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,KAAA;AAAA,QACT,IAAA,EAAM,yCAAA;AAAA,QACN,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AC5BA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAsB;AAChE,EAAA,uBACE,GAAA;AAAA,IAAe,aAAA,CAAA,IAAA;AAAA,IAAd;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAqB,EAAG,SAAS,CAAA;AAAA,MAC/C,WAAA,EAAU,gBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAKA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAsB;AAChE,EAAA,uBACE,GAAA;AAAA,IAAe,aAAA,CAAA,IAAA;AAAA,IAAd;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAqB,EAAG,SAAS,CAAA;AAAA,MAC/C,WAAA,EAAU,gBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAKA,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAW,GAAG,OAAM,EAAyB;AACtE,EAAA,uBACE,GAAA;AAAA,IAAe,aAAA,CAAA,OAAA;AAAA,IAAd;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAwB,EAAG,SAAS,CAAA;AAAA,MAClD,WAAA,EAAU,mBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAcA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACE,GAAA;AAAA,IAAe,aAAA,CAAA,OAAA;AAAA,IAAd;AAAA,MACC,WAAW,EAAA,CAAG,gBAAA,CAAiB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MACtD,WAAA,EAAU,WAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-GKMR5SVC.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * TabPanelRoot variant styles\n */\nexport const tabPanelRootVariants = cva([\n \"flex flex-col gap-2\",\n])\n\n/**\n * TabPanelList variant styles\n */\nexport const tabPanelListVariants = cva([\n \"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1\",\n])\n\n/**\n * TabPanelTrigger variant styles\n */\nexport const tabPanelTriggerVariants = cva([\n // Base styles\n \"inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5\",\n \"rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap\",\n // Color states\n \"text-foreground dark:text-muted-foreground\",\n \"data-[state=active]:bg-background data-[state=active]:shadow-sm\",\n \"dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30\",\n // Focus styles\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring\",\n \"focus-visible:ring-[3px] focus-visible:outline-1\",\n // Transition\n \"transition-[color,box-shadow]\",\n // Disabled\n \"disabled:pointer-events-none disabled:opacity-50\",\n // SVG styles\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n])\n\n/**\n * TabPanel (content) variant styles\n */\nexport const tabPanelVariants = cva(\n [\n // Base styles\n \"mt-2 outline-none\",\n // Focus styles\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n ],\n {\n variants: {\n variant: {\n default: \"p-4\",\n card: \"rounded-lg border bg-card p-6 shadow-sm\",\n bordered: \"border-t pt-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n","\"use client\"\n\nimport type {\n TabPanelListProps,\n TabPanelProps,\n TabPanelRootProps,\n TabPanelTriggerProps,\n} from \"./TabPanel.types\"\n\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n tabPanelListVariants,\n tabPanelRootVariants,\n tabPanelTriggerVariants,\n tabPanelVariants,\n} from \"./TabPanel.variants\"\n\n/**\n * TabPanelRoot - Root container for the tab panel system.\n *\n * Wraps Radix UI Tabs primitive.\n *\n * @example\n * <TabPanelRoot defaultValue=\"tab1\">\n * <TabPanelList>\n * <TabPanelTrigger value=\"tab1\">Tab 1</TabPanelTrigger>\n * </TabPanelList>\n * <TabPanel value=\"tab1\">Content 1</TabPanel>\n * </TabPanelRoot>\n */\nfunction TabPanelRoot({ className, ...props }: TabPanelRootProps) {\n return (\n <TabsPrimitive.Root\n className={cn(tabPanelRootVariants(), className)}\n data-slot=\"tab-panel-root\"\n {...props}\n />\n )\n}\n\n/**\n * TabPanelList - Container for tab triggers.\n */\nfunction TabPanelList({ className, ...props }: TabPanelListProps) {\n return (\n <TabsPrimitive.List\n className={cn(tabPanelListVariants(), className)}\n data-slot=\"tab-panel-list\"\n {...props}\n />\n )\n}\n\n/**\n * TabPanelTrigger - Button that activates its associated tab panel.\n */\nfunction TabPanelTrigger({ className, ...props }: TabPanelTriggerProps) {\n return (\n <TabsPrimitive.Trigger\n className={cn(tabPanelTriggerVariants(), className)}\n data-slot=\"tab-panel-trigger\"\n {...props}\n />\n )\n}\n\n/**\n * TabPanel - Content panel associated with a tab.\n *\n * Displays content when its corresponding tab is active.\n * Supports visual variants for different styling needs.\n *\n * @example\n * <TabPanel value=\"tab1\" variant=\"card\">\n * <h3>Account Settings</h3>\n * <p>Manage your account here.</p>\n * </TabPanel>\n */\nfunction TabPanel({\n className,\n variant = \"default\",\n ...props\n}: TabPanelProps) {\n return (\n <TabsPrimitive.Content\n className={cn(tabPanelVariants({ variant }), className)}\n data-slot=\"tab-panel\"\n {...props}\n />\n )\n}\n\nexport { TabPanel, TabPanelList, TabPanelRoot, TabPanelTrigger }\n"]}
1
+ {"version":3,"sources":["../src/components/navigation/TabPanel/TabPanel.variants.ts","../src/components/navigation/TabPanel/TabPanel.tsx"],"names":[],"mappings":";;;;;AAKO,IAAM,uBAAuB,GAAA,CAAI;AAAA,EACtC;AACF,CAAC;AAKM,IAAM,uBAAuB,GAAA,CAAI;AAAA,EACtC;AACF,CAAC;AAKM,IAAM,0BAA0B,GAAA,CAAI;AAAA;AAAA,EAEzC,2EAAA;AAAA,EACA,sFAAA;AAAA;AAAA,EAEA,4CAAA;AAAA,EACA,iEAAA;AAAA,EACA,qHAAA;AAAA;AAAA,EAEA,iFAAA;AAAA,EACA,kDAAA;AAAA;AAAA,EAEA,+BAAA;AAAA;AAAA,EAEA,kDAAA;AAAA;AAAA,EAEA;AACF,CAAC;AAKM,IAAM,gBAAA,GAAmB,GAAA;AAAA,EAC9B;AAAA;AAAA,IAEE,mBAAA;AAAA;AAAA,IAEA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,KAAA;AAAA,QACT,IAAA,EAAM,yCAAA;AAAA,QACN,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AC5BA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAsB;AAChE,EAAA,uBACE,GAAA;AAAA,IAAe,aAAA,CAAA,IAAA;AAAA,IAAd;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAqB,EAAG,SAAS,CAAA;AAAA,MAC/C,WAAA,EAAU,gBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAKA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAsB;AAChE,EAAA,uBACE,GAAA;AAAA,IAAe,aAAA,CAAA,IAAA;AAAA,IAAd;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAqB,EAAG,SAAS,CAAA;AAAA,MAC/C,WAAA,EAAU,gBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAKA,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAW,GAAG,OAAM,EAAyB;AACtE,EAAA,uBACE,GAAA;AAAA,IAAe,aAAA,CAAA,OAAA;AAAA,IAAd;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAwB,EAAG,SAAS,CAAA;AAAA,MAClD,WAAA,EAAU,mBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAcA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACE,GAAA;AAAA,IAAe,aAAA,CAAA,OAAA;AAAA,IAAd;AAAA,MACC,WAAW,EAAA,CAAG,gBAAA,CAAiB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MACtD,WAAA,EAAU,WAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-5QDKJMUA.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * TabPanelRoot variant styles\n */\nexport const tabPanelRootVariants = cva([\n \"flex flex-col gap-2\",\n])\n\n/**\n * TabPanelList variant styles\n */\nexport const tabPanelListVariants = cva([\n \"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1\",\n])\n\n/**\n * TabPanelTrigger variant styles\n */\nexport const tabPanelTriggerVariants = cva([\n // Base styles\n \"inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5\",\n \"rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap\",\n // Color states\n \"text-foreground dark:text-muted-foreground\",\n \"data-[state=active]:bg-background data-[state=active]:shadow-sm\",\n \"dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30\",\n // Focus styles\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring\",\n \"focus-visible:ring-[3px] focus-visible:outline-1\",\n // Transition\n \"transition-[color,box-shadow]\",\n // Disabled\n \"disabled:pointer-events-none disabled:opacity-50\",\n // SVG styles\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n])\n\n/**\n * TabPanel (content) variant styles\n */\nexport const tabPanelVariants = cva(\n [\n // Base styles\n \"mt-2 outline-none\",\n // Focus styles\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n ],\n {\n variants: {\n variant: {\n default: \"p-4\",\n card: \"rounded-lg border bg-card p-6 shadow-sm\",\n bordered: \"border-t pt-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n","\"use client\"\n\nimport type {\n TabPanelListProps,\n TabPanelProps,\n TabPanelRootProps,\n TabPanelTriggerProps,\n} from \"./TabPanel.types\"\n\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n tabPanelListVariants,\n tabPanelRootVariants,\n tabPanelTriggerVariants,\n tabPanelVariants,\n} from \"./TabPanel.variants\"\n\n/**\n * TabPanelRoot - Root container for the tab panel system.\n *\n * Wraps Radix UI Tabs primitive.\n *\n * @example\n * <TabPanelRoot defaultValue=\"tab1\">\n * <TabPanelList>\n * <TabPanelTrigger value=\"tab1\">Tab 1</TabPanelTrigger>\n * </TabPanelList>\n * <TabPanel value=\"tab1\">Content 1</TabPanel>\n * </TabPanelRoot>\n */\nfunction TabPanelRoot({ className, ...props }: TabPanelRootProps) {\n return (\n <TabsPrimitive.Root\n className={cn(tabPanelRootVariants(), className)}\n data-slot=\"tab-panel-root\"\n {...props}\n />\n )\n}\n\n/**\n * TabPanelList - Container for tab triggers.\n */\nfunction TabPanelList({ className, ...props }: TabPanelListProps) {\n return (\n <TabsPrimitive.List\n className={cn(tabPanelListVariants(), className)}\n data-slot=\"tab-panel-list\"\n {...props}\n />\n )\n}\n\n/**\n * TabPanelTrigger - Button that activates its associated tab panel.\n */\nfunction TabPanelTrigger({ className, ...props }: TabPanelTriggerProps) {\n return (\n <TabsPrimitive.Trigger\n className={cn(tabPanelTriggerVariants(), className)}\n data-slot=\"tab-panel-trigger\"\n {...props}\n />\n )\n}\n\n/**\n * TabPanel - Content panel associated with a tab.\n *\n * Displays content when its corresponding tab is active.\n * Supports visual variants for different styling needs.\n *\n * @example\n * <TabPanel value=\"tab1\" variant=\"card\">\n * <h3>Account Settings</h3>\n * <p>Manage your account here.</p>\n * </TabPanel>\n */\nfunction TabPanel({\n className,\n variant = \"default\",\n ...props\n}: TabPanelProps) {\n return (\n <TabsPrimitive.Content\n className={cn(tabPanelVariants({ variant }), className)}\n data-slot=\"tab-panel\"\n {...props}\n />\n )\n}\n\nexport { TabPanel, TabPanelList, TabPanelRoot, TabPanelTrigger }\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import * as SheetPrimitive from '@radix-ui/react-dialog';
3
3
  import { XIcon } from 'lucide-react';
4
4
  import { cva } from 'class-variance-authority';
@@ -195,5 +195,5 @@ function SheetDescription({ className, ...props }) {
195
195
  }
196
196
 
197
197
  export { Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, sheetContentVariants, sheetOverlayVariants };
198
- //# sourceMappingURL=chunk-3NFQXZHO.js.map
199
- //# sourceMappingURL=chunk-3NFQXZHO.js.map
198
+ //# sourceMappingURL=chunk-5T7EKOJ5.js.map
199
+ //# sourceMappingURL=chunk-5T7EKOJ5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/layout/Sheet/Sheet.variants.ts","../src/components/layout/Sheet/Sheet.tsx"],"names":[],"mappings":";;;;;;AAMO,IAAM,oBAAA,GAAuB,GAAA;AAAA,EAClC,4IAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,4CAAA;AAAA,QACT,KAAA,EAAO,0CAAA;AAAA,QACP,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAMO,IAAM,oBAAA,GAAuB,GAAA;AAAA,EAClC,wUAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQR,IAAA,EAAM;AAAA,QACJ,GAAA,EAAK,mGAAA;AAAA,QACL,KAAA,EACE,gHAAA;AAAA,QACF,MAAA,EACE,4GAAA;AAAA,QACF,IAAA,EAAM;AAAA,OACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,OAAA,EAAS,EAAA;AAAA,QACT,EAAA,EAAI,EAAA;AAAA,QACJ,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,gBAAA,EAAkB;AAAA;AAAA,MAEhB,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,OAAO,gDAAA,EAAiD;AAAA,MACpF,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAW,OAAO,iEAAA,EAAkE;AAAA,MAC1G,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,OAAO,gDAAA,EAAiD;AAAA,MACpF,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,OAAO,QAAA,EAAS;AAAA,MAC9C,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,OAAO,gDAAA,EAAiD;AAAA,MACrF;AAAA,QACE,IAAA,EAAM,OAAA;AAAA,QACN,IAAA,EAAM,SAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,OAAO,gDAAA,EAAiD;AAAA,MACrF,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,QAAA,EAAS;AAAA;AAAA,MAE/C,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,OAAO,4CAAA,EAA6C;AAAA,MAC/E,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,OAAO,iDAAA,EAAkD;AAAA,MACzF,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,OAAO,4CAAA,EAA6C;AAAA,MAC/E,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,OAAO,QAAA,EAAS;AAAA,MAC7C,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,IAAA,EAAM,OAAO,4CAAA,EAA6C;AAAA,MAClF,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,SAAA,EAAW,OAAO,iDAAA,EAAkD;AAAA,MAC5F,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,IAAA,EAAM,OAAO,4CAAA,EAA6C;AAAA,MAClF,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,MAAA,EAAQ,OAAO,QAAA;AAAS,KAClD;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,OAAA;AAAA,MACN,IAAA,EAAM;AAAA;AACR;AAEJ;ACxEA,SAAS,KAAA,CAAM,EAAE,GAAG,KAAA,EAAM,EAAe;AACvC,EAAA,2BAAuB,cAAA,CAAA,IAAA,EAAf,EAAoB,WAAA,EAAU,OAAA,EAAS,GAAG,KAAA,EAAO,CAAA;AAC3D;AAEA,SAAS,YAAA,CAAa,EAAE,GAAG,KAAA,EAAM,EAAsB;AACrD,EAAA,2BAAuB,cAAA,CAAA,OAAA,EAAf,EAAuB,WAAA,EAAU,eAAA,EAAiB,GAAG,KAAA,EAAO,CAAA;AACtE;AAEA,SAAS,UAAA,CAAW,EAAE,GAAG,KAAA,EAAM,EAAoB;AACjD,EAAA,2BAAuB,cAAA,CAAA,KAAA,EAAf,EAAqB,WAAA,EAAU,aAAA,EAAe,GAAG,KAAA,EAAO,CAAA;AAClE;AAEA,SAAS,WAAA,CAAY,EAAE,GAAG,KAAA,EAAM,EAAqB;AACnD,EAAA,2BAAuB,cAAA,CAAA,MAAA,EAAf,EAAsB,WAAA,EAAU,cAAA,EAAgB,GAAG,KAAA,EAAO,CAAA;AACpE;AAEA,SAAS,aAAa,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,OAAM,EAAsB;AACzE,EAAA,uBACE,GAAA;AAAA,IAAgB,cAAA,CAAA,OAAA;AAAA,IAAf;AAAA,MACC,WAAW,EAAA,CAAG,oBAAA,CAAqB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MAC1D,WAAA,EAAU,eAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA,GAAO,OAAA;AAAA,EACP,IAAA,GAAO,SAAA;AAAA,EACP,eAAA,GAAkB,IAAA;AAAA,EAClB,cAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAsB;AACpB,EAAA,4BACG,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAS,cAAA,EAAgB,CAAA;AAAA,oBACvC,IAAA;AAAA,MAAgB,cAAA,CAAA,OAAA;AAAA,MAAf;AAAA,QACC,SAAA,EAAW,GAAG,oBAAA,CAAqB,EAAE,MAAM,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,QAC7D,WAAA,EAAU,eAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,eAAA,oBACC,IAAA;AAAA,YAAgB,cAAA,CAAA,KAAA;AAAA,YAAf;AAAA,cACC,SAAA,EAAU,uVAAA;AAAA,cACV,WAAA,EAAU,aAAA;AAAA,cAEV,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,KAAA,EAAA,EAAM,WAAU,QAAA,EAAS,CAAA;AAAA,gCAC1B,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA,OAAA,EAAK;AAAA;AAAA;AAAA;AACjC;AAAA;AAAA;AAEJ,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqB;AAC9D,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,2BAAA,EAA6B,SAAS,CAAA;AAAA,MACpD,WAAA,EAAU,cAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAA,CAAU,EAAE,SAAA,EAAW,GAAG,OAAM,EAAmB;AAC1D,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,2BAAA,EAA6B,SAAS,CAAA;AAAA,MACpD,WAAA,EAAU,YAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqB;AAC9D,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,iCAAA,EAAmC,SAAS,CAAA;AAAA,MAC1D,WAAA,EAAU,cAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAoB;AAC5D,EAAA,uBACE,GAAA;AAAA,IAAgB,cAAA,CAAA,KAAA;AAAA,IAAf;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACxD,WAAA,EAAU,aAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA0B;AACxE,EAAA,uBACE,GAAA;AAAA,IAAgB,cAAA,CAAA,WAAA;AAAA,IAAf;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACxD,WAAA,EAAU,mBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-3NFQXZHO.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Sheet overlay variant styles\n * Controls the background overlay appearance\n */\nexport const sheetOverlayVariants = cva(\n \"fixed inset-0 z-50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n {\n variants: {\n /**\n * Overlay background style\n * - default: Semi-transparent black (50% opacity)\n * - light: Semi-transparent white (50% opacity)\n * - blur: Light black with backdrop blur effect\n */\n variant: {\n default: \"bg-[color:var(--sheet-overlay-bg-default)]\",\n light: \"bg-[color:var(--sheet-overlay-bg-light)]\",\n blur: \"bg-[color:var(--sheet-overlay-bg-blur)] backdrop-blur-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * Sheet content variant styles\n * Controls the slide-out panel position and size\n */\nexport const sheetContentVariants = cva(\n \"bg-[color:var(--sheet-content-bg)] border-[color:var(--sheet-content-border)] shadow-[var(--sheet-content-shadow)] p-[var(--sheet-content-padding)] fixed z-50 flex flex-col gap-4 transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n /**\n * Side from which the sheet slides in\n * - top: Slides down from top edge\n * - right: Slides in from right edge (default)\n * - bottom: Slides up from bottom edge\n * - left: Slides in from left edge\n */\n side: {\n top: \"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 border-b\",\n right:\n \"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full border-l\",\n bottom:\n \"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 border-t\",\n left: \"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full border-r\",\n },\n /**\n * Size of the sheet\n * - sm: Compact size (w-64 or max-h-250px)\n * - default: Standard size (w-80/sm:max-w-sm or max-h-400px)\n * - lg: Large size (w-500px or max-h-600px)\n * - full: Full width/height\n */\n size: {\n sm: \"\",\n default: \"\",\n lg: \"\",\n full: \"\",\n },\n },\n compoundVariants: [\n // Horizontal sheets (left/right) - width sizing\n { side: \"left\", size: \"sm\", class: \"w-[var(--sheet-content-width-sm)] max-w-[80vw]\" },\n { side: \"left\", size: \"default\", class: \"w-[var(--sheet-content-width-default)] max-w-[80vw] sm:max-w-sm\" },\n { side: \"left\", size: \"lg\", class: \"w-[var(--sheet-content-width-lg)] max-w-[90vw]\" },\n { side: \"left\", size: \"full\", class: \"w-full\" },\n { side: \"right\", size: \"sm\", class: \"w-[var(--sheet-content-width-sm)] max-w-[80vw]\" },\n {\n side: \"right\",\n size: \"default\",\n class: \"w-[var(--sheet-content-width-default)] max-w-[80vw] sm:max-w-sm\",\n },\n { side: \"right\", size: \"lg\", class: \"w-[var(--sheet-content-width-lg)] max-w-[90vw]\" },\n { side: \"right\", size: \"full\", class: \"w-full\" },\n // Vertical sheets (top/bottom) - height sizing\n { side: \"top\", size: \"sm\", class: \"max-h-[var(--sheet-content-max-height-sm)]\" },\n { side: \"top\", size: \"default\", class: \"max-h-[var(--sheet-content-max-height-default)]\" },\n { side: \"top\", size: \"lg\", class: \"max-h-[var(--sheet-content-max-height-lg)]\" },\n { side: \"top\", size: \"full\", class: \"h-full\" },\n { side: \"bottom\", size: \"sm\", class: \"max-h-[var(--sheet-content-max-height-sm)]\" },\n { side: \"bottom\", size: \"default\", class: \"max-h-[var(--sheet-content-max-height-default)]\" },\n { side: \"bottom\", size: \"lg\", class: \"max-h-[var(--sheet-content-max-height-lg)]\" },\n { side: \"bottom\", size: \"full\", class: \"h-full\" },\n ],\n defaultVariants: {\n side: \"right\",\n size: \"default\",\n },\n }\n)\n\nexport type SheetOverlayVariantProps = VariantProps<typeof sheetOverlayVariants>\nexport type SheetContentVariantProps = VariantProps<typeof sheetContentVariants>\n","\"use client\"\n\nimport type {\n SheetBodyProps,\n SheetCloseProps,\n SheetContentProps,\n SheetDescriptionProps,\n SheetFooterProps,\n SheetHeaderProps,\n SheetOverlayProps,\n SheetPortalProps,\n SheetProps,\n SheetTitleProps,\n SheetTriggerProps,\n} from \"./Sheet.types\"\n\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { sheetContentVariants, sheetOverlayVariants } from \"./Sheet.variants\"\n\nfunction Sheet({ ...props }: SheetProps) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetTriggerProps) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetCloseProps) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPortalProps) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, variant, ...props }: SheetOverlayProps) {\n return (\n <SheetPrimitive.Overlay\n className={cn(sheetOverlayVariants({ variant }), className)}\n data-slot=\"sheet-overlay\"\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n size = \"default\",\n showCloseButton = true,\n overlayVariant,\n ...props\n}: SheetContentProps) {\n return (\n <SheetPortal>\n <SheetOverlay variant={overlayVariant} />\n <SheetPrimitive.Content\n className={cn(sheetContentVariants({ side, size }), className)}\n data-slot=\"sheet-content\"\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-[var(--sheet-close-top)] right-[var(--sheet-close-right)] rounded-[var(--sheet-close-radius)] opacity-[var(--sheet-close-opacity-default)] transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\"\n data-slot=\"sheet-close\"\n >\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: SheetHeaderProps) {\n return (\n <div\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n data-slot=\"sheet-header\"\n {...props}\n />\n )\n}\n\nfunction SheetBody({ className, ...props }: SheetBodyProps) {\n return (\n <div\n className={cn(\"flex-1 overflow-auto px-4\", className)}\n data-slot=\"sheet-body\"\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: SheetFooterProps) {\n return (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n data-slot=\"sheet-footer\"\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetTitleProps) {\n return (\n <SheetPrimitive.Title\n className={cn(\"text-foreground font-semibold\", className)}\n data-slot=\"sheet-title\"\n {...props}\n />\n )\n}\n\nfunction SheetDescription({ className, ...props }: SheetDescriptionProps) {\n return (\n <SheetPrimitive.Description\n className={cn(\"text-muted-foreground text-sm\", className)}\n data-slot=\"sheet-description\"\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetBody,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetOverlay,\n SheetPortal,\n SheetTitle,\n SheetTrigger,\n}\n"]}
1
+ {"version":3,"sources":["../src/components/layout/Sheet/Sheet.variants.ts","../src/components/layout/Sheet/Sheet.tsx"],"names":[],"mappings":"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","file":"chunk-5T7EKOJ5.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Sheet overlay variant styles\n * Controls the background overlay appearance\n */\nexport const sheetOverlayVariants = cva(\n \"fixed inset-0 z-50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n {\n variants: {\n /**\n * Overlay background style\n * - default: Semi-transparent black (50% opacity)\n * - light: Semi-transparent white (50% opacity)\n * - blur: Light black with backdrop blur effect\n */\n variant: {\n default: \"bg-[color:var(--sheet-overlay-bg-default)]\",\n light: \"bg-[color:var(--sheet-overlay-bg-light)]\",\n blur: \"bg-[color:var(--sheet-overlay-bg-blur)] backdrop-blur-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * Sheet content variant styles\n * Controls the slide-out panel position and size\n */\nexport const sheetContentVariants = cva(\n \"bg-[color:var(--sheet-content-bg)] border-[color:var(--sheet-content-border)] shadow-[var(--sheet-content-shadow)] p-[var(--sheet-content-padding)] fixed z-50 flex flex-col gap-4 transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n /**\n * Side from which the sheet slides in\n * - top: Slides down from top edge\n * - right: Slides in from right edge (default)\n * - bottom: Slides up from bottom edge\n * - left: Slides in from left edge\n */\n side: {\n top: \"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 border-b\",\n right:\n \"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full border-l\",\n bottom:\n \"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 border-t\",\n left: \"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full border-r\",\n },\n /**\n * Size of the sheet\n * - sm: Compact size (w-64 or max-h-250px)\n * - default: Standard size (w-80/sm:max-w-sm or max-h-400px)\n * - lg: Large size (w-500px or max-h-600px)\n * - full: Full width/height\n */\n size: {\n sm: \"\",\n default: \"\",\n lg: \"\",\n full: \"\",\n },\n },\n compoundVariants: [\n // Horizontal sheets (left/right) - width sizing\n { side: \"left\", size: \"sm\", class: \"w-[var(--sheet-content-width-sm)] max-w-[80vw]\" },\n { side: \"left\", size: \"default\", class: \"w-[var(--sheet-content-width-default)] max-w-[80vw] sm:max-w-sm\" },\n { side: \"left\", size: \"lg\", class: \"w-[var(--sheet-content-width-lg)] max-w-[90vw]\" },\n { side: \"left\", size: \"full\", class: \"w-full\" },\n { side: \"right\", size: \"sm\", class: \"w-[var(--sheet-content-width-sm)] max-w-[80vw]\" },\n {\n side: \"right\",\n size: \"default\",\n class: \"w-[var(--sheet-content-width-default)] max-w-[80vw] sm:max-w-sm\",\n },\n { side: \"right\", size: \"lg\", class: \"w-[var(--sheet-content-width-lg)] max-w-[90vw]\" },\n { side: \"right\", size: \"full\", class: \"w-full\" },\n // Vertical sheets (top/bottom) - height sizing\n { side: \"top\", size: \"sm\", class: \"max-h-[var(--sheet-content-max-height-sm)]\" },\n { side: \"top\", size: \"default\", class: \"max-h-[var(--sheet-content-max-height-default)]\" },\n { side: \"top\", size: \"lg\", class: \"max-h-[var(--sheet-content-max-height-lg)]\" },\n { side: \"top\", size: \"full\", class: \"h-full\" },\n { side: \"bottom\", size: \"sm\", class: \"max-h-[var(--sheet-content-max-height-sm)]\" },\n { side: \"bottom\", size: \"default\", class: \"max-h-[var(--sheet-content-max-height-default)]\" },\n { side: \"bottom\", size: \"lg\", class: \"max-h-[var(--sheet-content-max-height-lg)]\" },\n { side: \"bottom\", size: \"full\", class: \"h-full\" },\n ],\n defaultVariants: {\n side: \"right\",\n size: \"default\",\n },\n }\n)\n\nexport type SheetOverlayVariantProps = VariantProps<typeof sheetOverlayVariants>\nexport type SheetContentVariantProps = VariantProps<typeof sheetContentVariants>\n","\"use client\"\n\nimport type {\n SheetBodyProps,\n SheetCloseProps,\n SheetContentProps,\n SheetDescriptionProps,\n SheetFooterProps,\n SheetHeaderProps,\n SheetOverlayProps,\n SheetPortalProps,\n SheetProps,\n SheetTitleProps,\n SheetTriggerProps,\n} from \"./Sheet.types\"\n\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { sheetContentVariants, sheetOverlayVariants } from \"./Sheet.variants\"\n\nfunction Sheet({ ...props }: SheetProps) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetTriggerProps) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetCloseProps) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPortalProps) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, variant, ...props }: SheetOverlayProps) {\n return (\n <SheetPrimitive.Overlay\n className={cn(sheetOverlayVariants({ variant }), className)}\n data-slot=\"sheet-overlay\"\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n size = \"default\",\n showCloseButton = true,\n overlayVariant,\n ...props\n}: SheetContentProps) {\n return (\n <SheetPortal>\n <SheetOverlay variant={overlayVariant} />\n <SheetPrimitive.Content\n className={cn(sheetContentVariants({ side, size }), className)}\n data-slot=\"sheet-content\"\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-[var(--sheet-close-top)] right-[var(--sheet-close-right)] rounded-[var(--sheet-close-radius)] opacity-[var(--sheet-close-opacity-default)] transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\"\n data-slot=\"sheet-close\"\n >\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: SheetHeaderProps) {\n return (\n <div\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n data-slot=\"sheet-header\"\n {...props}\n />\n )\n}\n\nfunction SheetBody({ className, ...props }: SheetBodyProps) {\n return (\n <div\n className={cn(\"flex-1 overflow-auto px-4\", className)}\n data-slot=\"sheet-body\"\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: SheetFooterProps) {\n return (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n data-slot=\"sheet-footer\"\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetTitleProps) {\n return (\n <SheetPrimitive.Title\n className={cn(\"text-foreground font-semibold\", className)}\n data-slot=\"sheet-title\"\n {...props}\n />\n )\n}\n\nfunction SheetDescription({ className, ...props }: SheetDescriptionProps) {\n return (\n <SheetPrimitive.Description\n className={cn(\"text-muted-foreground text-sm\", className)}\n data-slot=\"sheet-description\"\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetBody,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetOverlay,\n SheetPortal,\n SheetTitle,\n SheetTrigger,\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-HRNDJU7D.js';
1
+ import { cn } from './chunk-RVAYDRMA.js';
2
2
  import * as SelectPrimitive from '@radix-ui/react-select';
3
3
  import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from 'lucide-react';
4
4
  import 'react';
@@ -231,5 +231,5 @@ function SelectScrollDownButton({ className, ...props }) {
231
231
  }
232
232
 
233
233
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, selectContentVariants, selectItemVariants, selectLabelVariants, selectScrollButtonVariants, selectSeparatorVariants, selectTriggerVariants };
234
- //# sourceMappingURL=chunk-WBE6VQOO.js.map
235
- //# sourceMappingURL=chunk-WBE6VQOO.js.map
234
+ //# sourceMappingURL=chunk-5W3T767A.js.map
235
+ //# sourceMappingURL=chunk-5W3T767A.js.map