silver-ui 0.3.0 → 0.3.1

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 (608) hide show
  1. package/README.md +1 -1
  2. package/dist/{chunk-E7UOFIBW.cjs → chunk-23NN5WRP.cjs} +7 -6
  3. package/dist/chunk-23NN5WRP.cjs.map +1 -0
  4. package/dist/chunk-2PSZAWLC.js +8 -0
  5. package/dist/chunk-2PSZAWLC.js.map +1 -0
  6. package/dist/{chunk-5MDH6QZE.js → chunk-2XAA3CM5.js} +7 -10
  7. package/dist/chunk-2XAA3CM5.js.map +1 -0
  8. package/dist/{chunk-AGJ5SZCM.js → chunk-3DJ46WN4.js} +5 -5
  9. package/dist/{chunk-AGJ5SZCM.js.map → chunk-3DJ46WN4.js.map} +1 -1
  10. package/dist/{chunk-UYXQBM2B.cjs → chunk-3IBY374V.cjs} +9 -9
  11. package/dist/{chunk-UYXQBM2B.cjs.map → chunk-3IBY374V.cjs.map} +1 -1
  12. package/dist/{chunk-KIGRE6NA.js → chunk-3L6KAW7G.js} +5 -5
  13. package/dist/{chunk-KIGRE6NA.js.map → chunk-3L6KAW7G.js.map} +1 -1
  14. package/dist/{chunk-ZH3GKYUZ.js → chunk-3TXVDCF2.js} +3 -3
  15. package/dist/{chunk-ZH3GKYUZ.js.map → chunk-3TXVDCF2.js.map} +1 -1
  16. package/dist/{chunk-P4A7GWQY.cjs → chunk-3XDUR3IG.cjs} +7 -6
  17. package/dist/chunk-3XDUR3IG.cjs.map +1 -0
  18. package/dist/{chunk-Y5SXQR52.cjs → chunk-3ZFEBOXD.cjs} +28 -17
  19. package/dist/chunk-3ZFEBOXD.cjs.map +1 -0
  20. package/dist/{chunk-ZTQQ2O6O.cjs → chunk-4H35H54I.cjs} +35 -33
  21. package/dist/chunk-4H35H54I.cjs.map +1 -0
  22. package/dist/chunk-4MRORQNN.js +213 -0
  23. package/dist/chunk-4MRORQNN.js.map +1 -0
  24. package/dist/{chunk-XQU4ECJY.js → chunk-54J6FRPG.js} +16 -15
  25. package/dist/chunk-54J6FRPG.js.map +1 -0
  26. package/dist/chunk-5AYGQJOW.js +162 -0
  27. package/dist/chunk-5AYGQJOW.js.map +1 -0
  28. package/dist/{chunk-UR7RYJOU.cjs → chunk-5BCLEOFF.cjs} +19 -16
  29. package/dist/chunk-5BCLEOFF.cjs.map +1 -0
  30. package/dist/{chunk-2YC7SMVF.js → chunk-5D4LRSIV.js} +6 -5
  31. package/dist/chunk-5D4LRSIV.js.map +1 -0
  32. package/dist/{chunk-OJKZS6HG.cjs → chunk-5GNYP3PH.cjs} +256 -209
  33. package/dist/chunk-5GNYP3PH.cjs.map +1 -0
  34. package/dist/{chunk-I2X2Z7FA.cjs → chunk-5TT4PGZO.cjs} +5 -5
  35. package/dist/{chunk-I2X2Z7FA.cjs.map → chunk-5TT4PGZO.cjs.map} +1 -1
  36. package/dist/{chunk-TRK2ZZFB.cjs → chunk-65QAZWOG.cjs} +4 -3
  37. package/dist/chunk-65QAZWOG.cjs.map +1 -0
  38. package/dist/{chunk-C264Z2GQ.cjs → chunk-66LRFIYK.cjs} +8 -7
  39. package/dist/chunk-66LRFIYK.cjs.map +1 -0
  40. package/dist/{chunk-BDPE6ZKX.cjs → chunk-6MOJEGDU.cjs} +3 -3
  41. package/dist/{chunk-BDPE6ZKX.cjs.map → chunk-6MOJEGDU.cjs.map} +1 -1
  42. package/dist/{chunk-BA2VUDQS.js → chunk-6NTDPZWP.js} +3 -3
  43. package/dist/{chunk-BA2VUDQS.js.map → chunk-6NTDPZWP.js.map} +1 -1
  44. package/dist/{chunk-35MFOORC.js → chunk-6USJ4LJJ.js} +4 -4
  45. package/dist/{chunk-35MFOORC.js.map → chunk-6USJ4LJJ.js.map} +1 -1
  46. package/dist/{chunk-JAHKLROD.cjs → chunk-6W3L6IJB.cjs} +13 -12
  47. package/dist/chunk-6W3L6IJB.cjs.map +1 -0
  48. package/dist/{chunk-7P3VY5JZ.js → chunk-75CPTIET.js} +8 -7
  49. package/dist/chunk-75CPTIET.js.map +1 -0
  50. package/dist/{chunk-J2FCNWYM.js → chunk-76B2VLID.js} +82 -88
  51. package/dist/chunk-76B2VLID.js.map +1 -0
  52. package/dist/{chunk-E4KM3RQ2.js → chunk-7MN4JDP7.js} +31 -16
  53. package/dist/chunk-7MN4JDP7.js.map +1 -0
  54. package/dist/{chunk-ZNPTARIS.cjs → chunk-7PNLMDAR.cjs} +8 -8
  55. package/dist/{chunk-ZNPTARIS.cjs.map → chunk-7PNLMDAR.cjs.map} +1 -1
  56. package/dist/{chunk-4T62TLOD.cjs → chunk-7U7RP6N2.cjs} +8 -8
  57. package/dist/{chunk-4T62TLOD.cjs.map → chunk-7U7RP6N2.cjs.map} +1 -1
  58. package/dist/{chunk-XM3AZXOA.js → chunk-AJTJD5C6.js} +5 -5
  59. package/dist/{chunk-XM3AZXOA.js.map → chunk-AJTJD5C6.js.map} +1 -1
  60. package/dist/chunk-AMFFE5UJ.js +216 -0
  61. package/dist/chunk-AMFFE5UJ.js.map +1 -0
  62. package/dist/{chunk-K6CQ45C2.js → chunk-ASJ5CBCR.js} +7 -6
  63. package/dist/chunk-ASJ5CBCR.js.map +1 -0
  64. package/dist/{chunk-67VLK263.js → chunk-BA4A7C7U.js} +12 -9
  65. package/dist/chunk-BA4A7C7U.js.map +1 -0
  66. package/dist/{chunk-KFEXS6OK.cjs → chunk-BAPCHFNX.cjs} +10 -9
  67. package/dist/chunk-BAPCHFNX.cjs.map +1 -0
  68. package/dist/{chunk-YBPG5RPR.cjs → chunk-BRB52QFV.cjs} +14 -54
  69. package/dist/chunk-BRB52QFV.cjs.map +1 -0
  70. package/dist/chunk-BS55BG2U.cjs +164 -0
  71. package/dist/chunk-BS55BG2U.cjs.map +1 -0
  72. package/dist/{chunk-PLXUM7U6.cjs → chunk-CEU7BIL6.cjs} +11 -11
  73. package/dist/{chunk-PLXUM7U6.cjs.map → chunk-CEU7BIL6.cjs.map} +1 -1
  74. package/dist/{chunk-AADUJ6CN.js → chunk-CN2HJ7CP.js} +212 -183
  75. package/dist/chunk-CN2HJ7CP.js.map +1 -0
  76. package/dist/{chunk-PXVVTPRJ.js → chunk-CRQXHA7N.js} +9 -8
  77. package/dist/chunk-CRQXHA7N.js.map +1 -0
  78. package/dist/{chunk-5BLNJVIA.js → chunk-CZC2K5GJ.js} +10 -9
  79. package/dist/chunk-CZC2K5GJ.js.map +1 -0
  80. package/dist/{chunk-WA4VZ363.cjs → chunk-CZM5FAWL.cjs} +11 -10
  81. package/dist/chunk-CZM5FAWL.cjs.map +1 -0
  82. package/dist/{chunk-AH4AMQEO.js → chunk-D2DOHX4W.js} +253 -206
  83. package/dist/chunk-D2DOHX4W.js.map +1 -0
  84. package/dist/{chunk-WNGBWUWZ.cjs → chunk-D3SSMY73.cjs} +6 -6
  85. package/dist/{chunk-WNGBWUWZ.cjs.map → chunk-D3SSMY73.cjs.map} +1 -1
  86. package/dist/{chunk-GI5MVVIX.js → chunk-DIIE44GO.js} +14 -13
  87. package/dist/chunk-DIIE44GO.js.map +1 -0
  88. package/dist/{chunk-S54CKWKV.js → chunk-DSB4Q3AS.js} +3 -3
  89. package/dist/{chunk-S54CKWKV.js.map → chunk-DSB4Q3AS.js.map} +1 -1
  90. package/dist/{chunk-AMG3S252.js → chunk-EBQ3A4XO.js} +9 -8
  91. package/dist/chunk-EBQ3A4XO.js.map +1 -0
  92. package/dist/{chunk-PXTE3XRD.js → chunk-EC2ALHNJ.js} +73 -67
  93. package/dist/chunk-EC2ALHNJ.js.map +1 -0
  94. package/dist/{chunk-WWB4NSEY.cjs → chunk-EE2O457Z.cjs} +7 -7
  95. package/dist/{chunk-WWB4NSEY.cjs.map → chunk-EE2O457Z.cjs.map} +1 -1
  96. package/dist/{chunk-MQQ4GSUG.cjs → chunk-EVKFA5FA.cjs} +27 -26
  97. package/dist/chunk-EVKFA5FA.cjs.map +1 -0
  98. package/dist/{chunk-ZXPKFGRB.cjs → chunk-F3NATTQG.cjs} +81 -75
  99. package/dist/chunk-F3NATTQG.cjs.map +1 -0
  100. package/dist/{chunk-OJCJPYXE.js → chunk-F3ZNRO6W.js} +8 -7
  101. package/dist/chunk-F3ZNRO6W.js.map +1 -0
  102. package/dist/{chunk-OHKL4DOV.js → chunk-FZCBTFHY.js} +7 -6
  103. package/dist/chunk-FZCBTFHY.js.map +1 -0
  104. package/dist/{chunk-2D6SGEPH.cjs → chunk-GLJWAY4A.cjs} +15 -10
  105. package/dist/chunk-GLJWAY4A.cjs.map +1 -0
  106. package/dist/{chunk-6XESVFC3.js → chunk-GXRH5XQY.js} +89 -74
  107. package/dist/chunk-GXRH5XQY.js.map +1 -0
  108. package/dist/{chunk-VYFMYXU4.js → chunk-HNROO7CR.js} +230 -170
  109. package/dist/chunk-HNROO7CR.js.map +1 -0
  110. package/dist/{chunk-UJODHP7E.cjs → chunk-HPVXP3DG.cjs} +12 -11
  111. package/dist/chunk-HPVXP3DG.cjs.map +1 -0
  112. package/dist/chunk-HVUYVPQL.cjs +193 -0
  113. package/dist/chunk-HVUYVPQL.cjs.map +1 -0
  114. package/dist/{chunk-CFOGSQCG.cjs → chunk-I7KILUVL.cjs} +13 -12
  115. package/dist/chunk-I7KILUVL.cjs.map +1 -0
  116. package/dist/{chunk-UY3MYNI6.js → chunk-IHM2M74J.js} +5 -4
  117. package/dist/chunk-IHM2M74J.js.map +1 -0
  118. package/dist/{chunk-4M2KCZMO.js → chunk-IRSJHEYI.js} +5 -4
  119. package/dist/chunk-IRSJHEYI.js.map +1 -0
  120. package/dist/{chunk-BFWKL5MJ.cjs → chunk-JEIQ5GDK.cjs} +25 -24
  121. package/dist/chunk-JEIQ5GDK.cjs.map +1 -0
  122. package/dist/{chunk-YXYD5HKL.cjs → chunk-KFDHP4WP.cjs} +4 -4
  123. package/dist/{chunk-YXYD5HKL.cjs.map → chunk-KFDHP4WP.cjs.map} +1 -1
  124. package/dist/{chunk-6ADWXOZ2.cjs → chunk-KRZ57O2J.cjs} +3 -3
  125. package/dist/{chunk-6ADWXOZ2.cjs.map → chunk-KRZ57O2J.cjs.map} +1 -1
  126. package/dist/{chunk-W3QVSVL7.cjs → chunk-L5YTMHDI.cjs} +11 -10
  127. package/dist/chunk-L5YTMHDI.cjs.map +1 -0
  128. package/dist/{chunk-PNYF6NS4.cjs → chunk-L7BOLGF2.cjs} +8 -7
  129. package/dist/chunk-L7BOLGF2.cjs.map +1 -0
  130. package/dist/{chunk-WATCCAQU.js → chunk-LHP47U6H.js} +4 -3
  131. package/dist/chunk-LHP47U6H.js.map +1 -0
  132. package/dist/{chunk-YGYA4BYN.js → chunk-LUBVZVY3.js} +17 -16
  133. package/dist/chunk-LUBVZVY3.js.map +1 -0
  134. package/dist/{chunk-ATDW2VII.cjs → chunk-LX64ENLC.cjs} +66 -51
  135. package/dist/chunk-LX64ENLC.cjs.map +1 -0
  136. package/dist/{chunk-25FU5AVR.cjs → chunk-M3BF3BBJ.cjs} +13 -12
  137. package/dist/chunk-M3BF3BBJ.cjs.map +1 -0
  138. package/dist/chunk-M3IKL2VG.js +393 -0
  139. package/dist/chunk-M3IKL2VG.js.map +1 -0
  140. package/dist/{chunk-SFT5LCQP.cjs → chunk-M3RNFDA2.cjs} +14 -13
  141. package/dist/chunk-M3RNFDA2.cjs.map +1 -0
  142. package/dist/{chunk-CZNN2GOC.js → chunk-MGVEX3RS.js} +6 -6
  143. package/dist/{chunk-CZNN2GOC.js.map → chunk-MGVEX3RS.js.map} +1 -1
  144. package/dist/chunk-MSNRGNVY.cjs +216 -0
  145. package/dist/chunk-MSNRGNVY.cjs.map +1 -0
  146. package/dist/{chunk-IXJOPMJX.cjs → chunk-MUUPZEZ5.cjs} +7 -6
  147. package/dist/chunk-MUUPZEZ5.cjs.map +1 -0
  148. package/dist/{chunk-XVRQSTUF.js → chunk-N2TNBDQI.js} +4 -3
  149. package/dist/chunk-N2TNBDQI.js.map +1 -0
  150. package/dist/{chunk-3DW2N6UN.js → chunk-NH7KH7QP.js} +3 -3
  151. package/dist/{chunk-3DW2N6UN.js.map → chunk-NH7KH7QP.js.map} +1 -1
  152. package/dist/{chunk-76FHSISK.cjs → chunk-NHXJVSZZ.cjs} +7 -10
  153. package/dist/chunk-NHXJVSZZ.cjs.map +1 -0
  154. package/dist/{chunk-4I6VIR44.cjs → chunk-NYQPIBOD.cjs} +12 -11
  155. package/dist/chunk-NYQPIBOD.cjs.map +1 -0
  156. package/dist/{chunk-YJJOKZN2.js → chunk-O4RTJESR.js} +3 -3
  157. package/dist/{chunk-YJJOKZN2.js.map → chunk-O4RTJESR.js.map} +1 -1
  158. package/dist/{chunk-BERQEJYB.js → chunk-O5A47TA2.js} +5 -4
  159. package/dist/chunk-O5A47TA2.js.map +1 -0
  160. package/dist/{chunk-DSNJDFO3.cjs → chunk-OSBVDRVD.cjs} +17 -16
  161. package/dist/chunk-OSBVDRVD.cjs.map +1 -0
  162. package/dist/{chunk-32G54PL3.cjs → chunk-OULO3YDQ.cjs} +6 -5
  163. package/dist/chunk-OULO3YDQ.cjs.map +1 -0
  164. package/dist/{chunk-PXIWITSS.js → chunk-OWBNRALR.js} +5 -5
  165. package/dist/{chunk-PXIWITSS.js.map → chunk-OWBNRALR.js.map} +1 -1
  166. package/dist/{chunk-GEGYC7CE.js → chunk-P6RAOXJA.js} +5 -5
  167. package/dist/chunk-P6RAOXJA.js.map +1 -0
  168. package/dist/{chunk-3PDUOYAT.cjs → chunk-PJMV2HTO.cjs} +27 -29
  169. package/dist/chunk-PJMV2HTO.cjs.map +1 -0
  170. package/dist/{chunk-3WMLV4VP.cjs → chunk-PL6J55JB.cjs} +6 -6
  171. package/dist/chunk-PL6J55JB.cjs.map +1 -0
  172. package/dist/chunk-PQRIV5XU.js +242 -0
  173. package/dist/chunk-PQRIV5XU.js.map +1 -0
  174. package/dist/chunk-PZ63ZCEO.cjs +470 -0
  175. package/dist/chunk-PZ63ZCEO.cjs.map +1 -0
  176. package/dist/{chunk-EUN5TCB2.js → chunk-Q3OA23V5.js} +17 -19
  177. package/dist/chunk-Q3OA23V5.js.map +1 -0
  178. package/dist/chunk-QAO6QMNQ.cjs +10 -0
  179. package/dist/chunk-QAO6QMNQ.cjs.map +1 -0
  180. package/dist/{chunk-X5ZQRMEM.cjs → chunk-QCT4BPB6.cjs} +19 -19
  181. package/dist/{chunk-X5ZQRMEM.cjs.map → chunk-QCT4BPB6.cjs.map} +1 -1
  182. package/dist/{chunk-JMNH45Q3.cjs → chunk-QEFE4QBL.cjs} +81 -87
  183. package/dist/chunk-QEFE4QBL.cjs.map +1 -0
  184. package/dist/{chunk-AXT4VA5N.cjs → chunk-QEX7V7TI.cjs} +10 -9
  185. package/dist/chunk-QEX7V7TI.cjs.map +1 -0
  186. package/dist/chunk-QGHFUOUB.cjs +112 -0
  187. package/dist/chunk-QGHFUOUB.cjs.map +1 -0
  188. package/dist/{chunk-ITDQSF2O.cjs → chunk-QL3YSC3H.cjs} +16 -15
  189. package/dist/chunk-QL3YSC3H.cjs.map +1 -0
  190. package/dist/{chunk-PTJ5YZFY.cjs → chunk-QRKRVCA3.cjs} +238 -178
  191. package/dist/chunk-QRKRVCA3.cjs.map +1 -0
  192. package/dist/{chunk-S4GLMGFI.js → chunk-RINP34ZG.js} +5 -4
  193. package/dist/chunk-RINP34ZG.js.map +1 -0
  194. package/dist/{chunk-HLN3JQYD.js → chunk-RVENUWRD.js} +15 -55
  195. package/dist/chunk-RVENUWRD.js.map +1 -0
  196. package/dist/{chunk-GTPRZCNZ.js → chunk-S4B2D427.js} +3 -3
  197. package/dist/{chunk-GTPRZCNZ.js.map → chunk-S4B2D427.js.map} +1 -1
  198. package/dist/{chunk-5Q5TJUHI.js → chunk-S4LVSSJI.js} +11 -6
  199. package/dist/chunk-S4LVSSJI.js.map +1 -0
  200. package/dist/{chunk-L6JT244G.cjs → chunk-SSOAZZNR.cjs} +4 -3
  201. package/dist/chunk-SSOAZZNR.cjs.map +1 -0
  202. package/dist/{chunk-BYBVI7UN.js → chunk-TF7IWMV2.js} +9 -8
  203. package/dist/chunk-TF7IWMV2.js.map +1 -0
  204. package/dist/{chunk-FQSOUCZS.cjs → chunk-U2U4FMFM.cjs} +8 -8
  205. package/dist/{chunk-FQSOUCZS.cjs.map → chunk-U2U4FMFM.cjs.map} +1 -1
  206. package/dist/chunk-U5GTHA44.cjs +395 -0
  207. package/dist/chunk-U5GTHA44.cjs.map +1 -0
  208. package/dist/{chunk-OMHOVHPX.js → chunk-UKDGDMWN.js} +4 -4
  209. package/dist/{chunk-OMHOVHPX.js.map → chunk-UKDGDMWN.js.map} +1 -1
  210. package/dist/chunk-UN35QV25.js +110 -0
  211. package/dist/chunk-UN35QV25.js.map +1 -0
  212. package/dist/{chunk-RKMW3ZOK.js → chunk-UPQHFW47.js} +4 -4
  213. package/dist/{chunk-RKMW3ZOK.js.map → chunk-UPQHFW47.js.map} +1 -1
  214. package/dist/{chunk-ACQMLJ4I.cjs → chunk-UXDXE7Z6.cjs} +39 -38
  215. package/dist/chunk-UXDXE7Z6.cjs.map +1 -0
  216. package/dist/{chunk-IG4UJZ6B.js → chunk-UYBGXFYX.js} +20 -19
  217. package/dist/chunk-UYBGXFYX.js.map +1 -0
  218. package/dist/{chunk-ZW2ATXTL.js → chunk-VAK4JQYL.js} +7 -6
  219. package/dist/chunk-VAK4JQYL.js.map +1 -0
  220. package/dist/{chunk-7FY26X2V.js → chunk-VEUZ5DZR.js} +6 -5
  221. package/dist/chunk-VEUZ5DZR.js.map +1 -0
  222. package/dist/{chunk-JVLE7PCJ.cjs → chunk-VJBBMBRT.cjs} +7 -7
  223. package/dist/{chunk-JVLE7PCJ.cjs.map → chunk-VJBBMBRT.cjs.map} +1 -1
  224. package/dist/chunk-VVO7GIHG.cjs +220 -0
  225. package/dist/chunk-VVO7GIHG.cjs.map +1 -0
  226. package/dist/{chunk-MAL4D4LR.cjs → chunk-W3KMDQKP.cjs} +8 -7
  227. package/dist/chunk-W3KMDQKP.cjs.map +1 -0
  228. package/dist/{chunk-MACIT6C6.js → chunk-WO6FS4DV.js} +5 -4
  229. package/dist/chunk-WO6FS4DV.js.map +1 -0
  230. package/dist/chunk-WYE3VOFK.cjs +244 -0
  231. package/dist/chunk-WYE3VOFK.cjs.map +1 -0
  232. package/dist/{chunk-BJD32VBQ.cjs → chunk-X2GRBPCJ.cjs} +89 -74
  233. package/dist/chunk-X2GRBPCJ.cjs.map +1 -0
  234. package/dist/{chunk-4YQSKCVF.cjs → chunk-XADTIY7J.cjs} +4 -4
  235. package/dist/{chunk-4YQSKCVF.cjs.map → chunk-XADTIY7J.cjs.map} +1 -1
  236. package/dist/{chunk-H2SGYAUO.js → chunk-XUJZTD4E.js} +9 -8
  237. package/dist/chunk-XUJZTD4E.js.map +1 -0
  238. package/dist/{chunk-ZNZ67KFM.js → chunk-Y4FH67QZ.js} +8 -7
  239. package/dist/chunk-Y4FH67QZ.js.map +1 -0
  240. package/dist/{chunk-SEAVOF6B.js → chunk-YLGAJD6Q.js} +8 -6
  241. package/dist/chunk-YLGAJD6Q.js.map +1 -0
  242. package/dist/chunk-YNTPHZFJ.js +191 -0
  243. package/dist/chunk-YNTPHZFJ.js.map +1 -0
  244. package/dist/{chunk-4Z62KDKI.js → chunk-YSTESYUB.js} +23 -12
  245. package/dist/chunk-YSTESYUB.js.map +1 -0
  246. package/dist/{chunk-K77D7H4V.cjs → chunk-ZD3NPHZ7.cjs} +5 -4
  247. package/dist/chunk-ZD3NPHZ7.cjs.map +1 -0
  248. package/dist/{chunk-UMGW7WJI.cjs → chunk-ZLATP3P5.cjs} +10 -8
  249. package/dist/chunk-ZLATP3P5.cjs.map +1 -0
  250. package/dist/{chunk-VSEKSDTK.js → chunk-ZVH3BLYO.js} +8 -7
  251. package/dist/chunk-ZVH3BLYO.js.map +1 -0
  252. package/dist/{chunk-ISYUZ5FS.js → chunk-ZWULWVN3.js} +30 -28
  253. package/dist/chunk-ZWULWVN3.js.map +1 -0
  254. package/dist/components/Accordion/AccordionItem.recipe.d.ts +1 -1
  255. package/dist/components/Accordion/index.cjs +5 -5
  256. package/dist/components/Accordion/index.js +2 -2
  257. package/dist/components/Alert/Alert.d.ts.map +1 -1
  258. package/dist/components/Alert/Alert.recipe.d.ts +1 -1
  259. package/dist/components/Alert/index.cjs +8 -7
  260. package/dist/components/Alert/index.js +7 -6
  261. package/dist/components/AlertDialog/index.cjs +10 -9
  262. package/dist/components/AlertDialog/index.js +8 -7
  263. package/dist/components/AppShell/AppShell.d.ts.map +1 -1
  264. package/dist/components/AppShell/index.cjs +16 -15
  265. package/dist/components/AppShell/index.js +13 -12
  266. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts +6 -1
  267. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
  268. package/dist/components/AutocompleteInput/AutocompleteInput.recipe.d.ts +42 -0
  269. package/dist/components/AutocompleteInput/AutocompleteInput.recipe.d.ts.map +1 -0
  270. package/dist/components/AutocompleteInput/AutocompleteInputItem.d.ts +27 -4
  271. package/dist/components/AutocompleteInput/AutocompleteInputItem.d.ts.map +1 -1
  272. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts +22 -2
  273. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
  274. package/dist/components/AutocompleteInput/index.cjs +14 -13
  275. package/dist/components/AutocompleteInput/index.d.ts +1 -1
  276. package/dist/components/AutocompleteInput/index.d.ts.map +1 -1
  277. package/dist/components/AutocompleteInput/index.js +10 -9
  278. package/dist/components/AutocompleteInput/types.d.ts +39 -3
  279. package/dist/components/AutocompleteInput/types.d.ts.map +1 -1
  280. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  281. package/dist/components/Avatar/AvatarStatusDot.d.ts.map +1 -1
  282. package/dist/components/Avatar/index.cjs +6 -5
  283. package/dist/components/Avatar/index.js +3 -2
  284. package/dist/components/AvatarGroup/index.cjs +6 -5
  285. package/dist/components/AvatarGroup/index.js +4 -3
  286. package/dist/components/Blockquote/Blockquote.d.ts.map +1 -1
  287. package/dist/components/Blockquote/index.cjs +3 -2
  288. package/dist/components/Blockquote/index.js +2 -1
  289. package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  290. package/dist/components/Breadcrumbs/BreadcrumbItem.recipe.d.ts +22 -0
  291. package/dist/components/Breadcrumbs/BreadcrumbItem.recipe.d.ts.map +1 -0
  292. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  293. package/dist/components/Breadcrumbs/Breadcrumbs.recipe.d.ts +4 -0
  294. package/dist/components/Breadcrumbs/Breadcrumbs.recipe.d.ts.map +1 -0
  295. package/dist/components/Breadcrumbs/index.cjs +6 -4
  296. package/dist/components/Breadcrumbs/index.js +3 -1
  297. package/dist/components/Button/Button.d.ts.map +1 -1
  298. package/dist/components/Button/Button.recipe.d.ts +80 -62
  299. package/dist/components/Button/Button.recipe.d.ts.map +1 -1
  300. package/dist/components/Button/index.cjs +7 -6
  301. package/dist/components/Button/index.js +6 -5
  302. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  303. package/dist/components/Calendar/Calendar.recipe.d.ts +86 -0
  304. package/dist/components/Calendar/Calendar.recipe.d.ts.map +1 -0
  305. package/dist/components/Calendar/index.cjs +8 -7
  306. package/dist/components/Calendar/index.js +7 -6
  307. package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  308. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts +39 -0
  309. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts.map +1 -0
  310. package/dist/components/CheckboxInput/index.cjs +7 -6
  311. package/dist/components/CheckboxInput/index.js +6 -5
  312. package/dist/components/CodeBlock/index.cjs +9 -8
  313. package/dist/components/CodeBlock/index.js +8 -7
  314. package/dist/components/ContextMenu/index.cjs +13 -12
  315. package/dist/components/ContextMenu/index.js +11 -10
  316. package/dist/components/DateInput/DateInput.d.ts +5 -1
  317. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  318. package/dist/components/DateInput/index.cjs +11 -10
  319. package/dist/components/DateInput/index.js +10 -9
  320. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  321. package/dist/components/DateRangeInput/index.cjs +11 -10
  322. package/dist/components/DateRangeInput/index.js +10 -9
  323. package/dist/components/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  324. package/dist/components/DateTimeInput/index.cjs +13 -12
  325. package/dist/components/DateTimeInput/index.js +12 -11
  326. package/dist/components/Divider/Divider.d.ts.map +1 -1
  327. package/dist/components/Divider/index.cjs +3 -2
  328. package/dist/components/Divider/index.js +2 -1
  329. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  330. package/dist/components/DropdownMenu/index.cjs +14 -13
  331. package/dist/components/DropdownMenu/index.js +10 -9
  332. package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
  333. package/dist/components/EmptyState/EmptyState.recipe.d.ts +13 -4
  334. package/dist/components/EmptyState/EmptyState.recipe.d.ts.map +1 -1
  335. package/dist/components/EmptyState/index.cjs +5 -3
  336. package/dist/components/EmptyState/index.js +4 -2
  337. package/dist/components/Field/Field.d.ts.map +1 -1
  338. package/dist/components/Field/index.cjs +6 -5
  339. package/dist/components/Field/index.js +4 -3
  340. package/dist/components/FileInput/FileInput.d.ts.map +1 -1
  341. package/dist/components/FileInput/index.cjs +9 -8
  342. package/dist/components/FileInput/index.js +8 -7
  343. package/dist/components/InputGroup/InputGroup.d.ts.map +1 -1
  344. package/dist/components/InputGroup/index.cjs +9 -8
  345. package/dist/components/InputGroup/index.js +5 -4
  346. package/dist/components/Item/Item.d.ts.map +1 -1
  347. package/dist/components/Item/index.cjs +4 -3
  348. package/dist/components/Item/index.js +3 -2
  349. package/dist/components/Layout/Layout.d.ts.map +1 -1
  350. package/dist/components/Layout/LayoutFooter.d.ts.map +1 -1
  351. package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
  352. package/dist/components/Layout/index.cjs +12 -11
  353. package/dist/components/Layout/index.js +7 -6
  354. package/dist/components/Lightbox/Lightbox.d.ts.map +1 -1
  355. package/dist/components/Lightbox/index.cjs +9 -8
  356. package/dist/components/Lightbox/index.js +7 -6
  357. package/dist/components/Link/index.cjs +1 -0
  358. package/dist/components/Link/index.js +1 -0
  359. package/dist/components/List/List.d.ts.map +1 -1
  360. package/dist/components/List/List.recipe.d.ts +42 -0
  361. package/dist/components/List/List.recipe.d.ts.map +1 -0
  362. package/dist/components/List/ListItem.d.ts.map +1 -1
  363. package/dist/components/List/index.cjs +7 -5
  364. package/dist/components/List/index.js +5 -3
  365. package/dist/components/MetadataList/index.cjs +4 -4
  366. package/dist/components/MetadataList/index.js +2 -2
  367. package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
  368. package/dist/components/MultiSelect/index.cjs +11 -10
  369. package/dist/components/MultiSelect/index.js +10 -9
  370. package/dist/components/NumberInput/NumberInput.d.ts.map +1 -1
  371. package/dist/components/NumberInput/index.cjs +10 -9
  372. package/dist/components/NumberInput/index.js +9 -8
  373. package/dist/components/Pagination/index.cjs +8 -7
  374. package/dist/components/Pagination/index.js +7 -6
  375. package/dist/components/PasswordInput/index.cjs +11 -10
  376. package/dist/components/PasswordInput/index.js +10 -9
  377. package/dist/components/Popover/Popover.d.ts.map +1 -1
  378. package/dist/components/Popover/index.cjs +9 -8
  379. package/dist/components/Popover/index.js +7 -6
  380. package/dist/components/Progress/Progress.d.ts.map +1 -1
  381. package/dist/components/Progress/Progress.recipe.d.ts +34 -16
  382. package/dist/components/Progress/Progress.recipe.d.ts.map +1 -1
  383. package/dist/components/Progress/index.cjs +4 -2
  384. package/dist/components/Progress/index.js +3 -1
  385. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  386. package/dist/components/RadioGroup/RadioGroupItem.d.ts.map +1 -1
  387. package/dist/components/RadioGroup/index.cjs +8 -7
  388. package/dist/components/RadioGroup/index.js +6 -5
  389. package/dist/components/Rating/index.cjs +3 -3
  390. package/dist/components/Rating/index.js +2 -2
  391. package/dist/components/Schedule/index.cjs +22 -21
  392. package/dist/components/Schedule/index.js +11 -10
  393. package/dist/components/SearchFilterInput/SearchFilterInput.d.ts.map +1 -1
  394. package/dist/components/SearchFilterInput/index.cjs +30 -29
  395. package/dist/components/SearchFilterInput/index.js +22 -21
  396. package/dist/components/Select/Select.d.ts.map +1 -1
  397. package/dist/components/Select/Select.recipe.d.ts +25 -0
  398. package/dist/components/Select/Select.recipe.d.ts.map +1 -0
  399. package/dist/components/Select/SelectOption.d.ts.map +1 -1
  400. package/dist/components/Select/index.cjs +13 -12
  401. package/dist/components/Select/index.js +11 -10
  402. package/dist/components/SideNav/SideNav.d.ts.map +1 -1
  403. package/dist/components/SideNav/SideNavHeading.d.ts.map +1 -1
  404. package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
  405. package/dist/components/SideNav/SideNavSection.d.ts.map +1 -1
  406. package/dist/components/SideNav/index.cjs +15 -14
  407. package/dist/components/SideNav/index.js +9 -8
  408. package/dist/components/Slider/index.cjs +6 -5
  409. package/dist/components/Slider/index.js +5 -4
  410. package/dist/components/Spinner/index.cjs +3 -3
  411. package/dist/components/Spinner/index.js +2 -2
  412. package/dist/components/SplitButton/index.cjs +12 -11
  413. package/dist/components/SplitButton/index.js +11 -10
  414. package/dist/components/Stack/HStack.d.ts +1 -1
  415. package/dist/components/Stack/HStack.d.ts.map +1 -1
  416. package/dist/components/Stack/VStack.d.ts +1 -1
  417. package/dist/components/Stack/VStack.d.ts.map +1 -1
  418. package/dist/components/Stack/index.cjs +3 -3
  419. package/dist/components/Stack/index.d.ts +1 -1
  420. package/dist/components/Stack/index.d.ts.map +1 -1
  421. package/dist/components/Stack/index.js +1 -1
  422. package/dist/components/Stack/{Stack.d.ts → internal/Stack.d.ts} +13 -3
  423. package/dist/components/Stack/internal/Stack.d.ts.map +1 -0
  424. package/dist/components/Stack/{Stack.recipe.d.ts → internal/Stack.recipe.d.ts} +1 -1
  425. package/dist/components/Stack/internal/Stack.recipe.d.ts.map +1 -0
  426. package/dist/components/Stepper/Step.d.ts.map +1 -1
  427. package/dist/components/Stepper/index.cjs +6 -5
  428. package/dist/components/Stepper/index.js +3 -2
  429. package/dist/components/Switch/Switch.d.ts.map +1 -1
  430. package/dist/components/Switch/index.cjs +6 -5
  431. package/dist/components/Switch/index.js +5 -4
  432. package/dist/components/Table/BaseTable.d.ts.map +1 -1
  433. package/dist/components/Table/index.cjs +53 -52
  434. package/dist/components/Table/index.js +25 -24
  435. package/dist/components/Tabs/Tab.d.ts.map +1 -1
  436. package/dist/components/Tabs/index.cjs +13 -12
  437. package/dist/components/Tabs/index.js +8 -7
  438. package/dist/components/Tag/Tag.d.ts +2 -2
  439. package/dist/components/Tag/Tag.d.ts.map +1 -1
  440. package/dist/components/Tag/Tag.recipe.d.ts +103 -68
  441. package/dist/components/Tag/Tag.recipe.d.ts.map +1 -1
  442. package/dist/components/Tag/index.cjs +4 -2
  443. package/dist/components/Tag/index.js +3 -1
  444. package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
  445. package/dist/components/TagsInput/index.cjs +12 -11
  446. package/dist/components/TagsInput/index.js +11 -10
  447. package/dist/components/Text/Heading.d.ts.map +1 -1
  448. package/dist/components/Text/Text.d.ts.map +1 -1
  449. package/dist/components/Text/index.cjs +3 -3
  450. package/dist/components/Text/index.js +1 -1
  451. package/dist/components/TextArea/TextArea.d.ts.map +1 -1
  452. package/dist/components/TextArea/index.cjs +7 -6
  453. package/dist/components/TextArea/index.js +6 -5
  454. package/dist/components/TextInput/TextInput.d.ts.map +1 -1
  455. package/dist/components/TextInput/index.cjs +10 -9
  456. package/dist/components/TextInput/index.js +9 -8
  457. package/dist/components/Thumbnail/Thumbnail.recipe.d.ts +1 -1
  458. package/dist/components/Thumbnail/index.cjs +8 -7
  459. package/dist/components/Thumbnail/index.js +7 -6
  460. package/dist/components/TimeInput/TimeInput.d.ts +10 -2
  461. package/dist/components/TimeInput/TimeInput.d.ts.map +1 -1
  462. package/dist/components/TimeInput/index.cjs +9 -8
  463. package/dist/components/TimeInput/index.js +8 -7
  464. package/dist/components/Toast/Toast.d.ts.map +1 -1
  465. package/dist/components/Toast/Toast.recipe.d.ts +39 -0
  466. package/dist/components/Toast/Toast.recipe.d.ts.map +1 -0
  467. package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
  468. package/dist/components/Toast/index.cjs +10 -9
  469. package/dist/components/Toast/index.js +7 -6
  470. package/dist/components/ToggleButton/index.cjs +7 -7
  471. package/dist/components/ToggleButton/index.js +5 -5
  472. package/dist/components/TopNav/TopNav.d.ts.map +1 -1
  473. package/dist/components/TopNav/TopNavHeading.d.ts.map +1 -1
  474. package/dist/components/TopNav/index.cjs +15 -14
  475. package/dist/components/TopNav/index.js +9 -8
  476. package/dist/components/TreeView/TreeView.d.ts.map +1 -1
  477. package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
  478. package/dist/components/TreeView/index.cjs +3 -2
  479. package/dist/components/TreeView/index.js +2 -1
  480. package/dist/index.cjs +218 -217
  481. package/dist/index.cjs.map +1 -1
  482. package/dist/index.d.ts +1 -1
  483. package/dist/index.d.ts.map +1 -1
  484. package/dist/index.js +64 -63
  485. package/dist/index.js.map +1 -1
  486. package/dist/internal/MobileNav/MobileNav.d.ts.map +1 -1
  487. package/dist/internal/OverflowList.d.ts.map +1 -1
  488. package/dist/internal/index.d.ts +1 -0
  489. package/dist/internal/index.d.ts.map +1 -1
  490. package/dist/internal/isReactNode.d.ts +3 -0
  491. package/dist/internal/isReactNode.d.ts.map +1 -0
  492. package/dist/internal/useSelectListbox.d.ts +2 -2
  493. package/dist/internal/useSelectListbox.d.ts.map +1 -1
  494. package/dist/styles.css +1 -1
  495. package/package.json +1 -1
  496. package/dist/chunk-25FU5AVR.cjs.map +0 -1
  497. package/dist/chunk-2D6SGEPH.cjs.map +0 -1
  498. package/dist/chunk-2TGDDZG6.cjs +0 -441
  499. package/dist/chunk-2TGDDZG6.cjs.map +0 -1
  500. package/dist/chunk-2YC7SMVF.js.map +0 -1
  501. package/dist/chunk-32G54PL3.cjs.map +0 -1
  502. package/dist/chunk-3PDUOYAT.cjs.map +0 -1
  503. package/dist/chunk-3WMLV4VP.cjs.map +0 -1
  504. package/dist/chunk-4I6VIR44.cjs.map +0 -1
  505. package/dist/chunk-4M2KCZMO.js.map +0 -1
  506. package/dist/chunk-4YESF35X.cjs +0 -211
  507. package/dist/chunk-4YESF35X.cjs.map +0 -1
  508. package/dist/chunk-4Z62KDKI.js.map +0 -1
  509. package/dist/chunk-5BLNJVIA.js.map +0 -1
  510. package/dist/chunk-5MDH6QZE.js.map +0 -1
  511. package/dist/chunk-5Q5TJUHI.js.map +0 -1
  512. package/dist/chunk-67VLK263.js.map +0 -1
  513. package/dist/chunk-6D3FA247.js +0 -126
  514. package/dist/chunk-6D3FA247.js.map +0 -1
  515. package/dist/chunk-6XESVFC3.js.map +0 -1
  516. package/dist/chunk-76FHSISK.cjs.map +0 -1
  517. package/dist/chunk-77RGTGRM.cjs +0 -128
  518. package/dist/chunk-77RGTGRM.cjs.map +0 -1
  519. package/dist/chunk-7FY26X2V.js.map +0 -1
  520. package/dist/chunk-7P3VY5JZ.js.map +0 -1
  521. package/dist/chunk-AADUJ6CN.js.map +0 -1
  522. package/dist/chunk-ACQMLJ4I.cjs.map +0 -1
  523. package/dist/chunk-AH4AMQEO.js.map +0 -1
  524. package/dist/chunk-AMG3S252.js.map +0 -1
  525. package/dist/chunk-ATDW2VII.cjs.map +0 -1
  526. package/dist/chunk-AXT4VA5N.cjs.map +0 -1
  527. package/dist/chunk-BERQEJYB.js.map +0 -1
  528. package/dist/chunk-BFWKL5MJ.cjs.map +0 -1
  529. package/dist/chunk-BJD32VBQ.cjs.map +0 -1
  530. package/dist/chunk-BYBVI7UN.js.map +0 -1
  531. package/dist/chunk-C264Z2GQ.cjs.map +0 -1
  532. package/dist/chunk-CFOGSQCG.cjs.map +0 -1
  533. package/dist/chunk-DSNJDFO3.cjs.map +0 -1
  534. package/dist/chunk-E2JZGYKU.cjs +0 -181
  535. package/dist/chunk-E2JZGYKU.cjs.map +0 -1
  536. package/dist/chunk-E4KM3RQ2.js.map +0 -1
  537. package/dist/chunk-E7UOFIBW.cjs.map +0 -1
  538. package/dist/chunk-EFO5NDBJ.js +0 -191
  539. package/dist/chunk-EFO5NDBJ.js.map +0 -1
  540. package/dist/chunk-EUN5TCB2.js.map +0 -1
  541. package/dist/chunk-GEGYC7CE.js.map +0 -1
  542. package/dist/chunk-GI5MVVIX.js.map +0 -1
  543. package/dist/chunk-H2SGYAUO.js.map +0 -1
  544. package/dist/chunk-HLN3JQYD.js.map +0 -1
  545. package/dist/chunk-IG4UJZ6B.js.map +0 -1
  546. package/dist/chunk-ISYUZ5FS.js.map +0 -1
  547. package/dist/chunk-ITDQSF2O.cjs.map +0 -1
  548. package/dist/chunk-IXJOPMJX.cjs.map +0 -1
  549. package/dist/chunk-J2FCNWYM.js.map +0 -1
  550. package/dist/chunk-JAHKLROD.cjs.map +0 -1
  551. package/dist/chunk-JMNH45Q3.cjs.map +0 -1
  552. package/dist/chunk-K6CQ45C2.js.map +0 -1
  553. package/dist/chunk-K77D7H4V.cjs.map +0 -1
  554. package/dist/chunk-KFEXS6OK.cjs.map +0 -1
  555. package/dist/chunk-L6JT244G.cjs.map +0 -1
  556. package/dist/chunk-L6WUK7O4.js +0 -207
  557. package/dist/chunk-L6WUK7O4.js.map +0 -1
  558. package/dist/chunk-LJLCGQRV.js +0 -99
  559. package/dist/chunk-LJLCGQRV.js.map +0 -1
  560. package/dist/chunk-MACIT6C6.js.map +0 -1
  561. package/dist/chunk-MAL4D4LR.cjs.map +0 -1
  562. package/dist/chunk-MMST4VXH.cjs +0 -392
  563. package/dist/chunk-MMST4VXH.cjs.map +0 -1
  564. package/dist/chunk-MQQ4GSUG.cjs.map +0 -1
  565. package/dist/chunk-OHKL4DOV.js.map +0 -1
  566. package/dist/chunk-OJCJPYXE.js.map +0 -1
  567. package/dist/chunk-OJKZS6HG.cjs.map +0 -1
  568. package/dist/chunk-P4A7GWQY.cjs.map +0 -1
  569. package/dist/chunk-P4TOIB2A.cjs +0 -101
  570. package/dist/chunk-P4TOIB2A.cjs.map +0 -1
  571. package/dist/chunk-PJXJOI73.js +0 -232
  572. package/dist/chunk-PJXJOI73.js.map +0 -1
  573. package/dist/chunk-PNYF6NS4.cjs.map +0 -1
  574. package/dist/chunk-PTJ5YZFY.cjs.map +0 -1
  575. package/dist/chunk-PXTE3XRD.js.map +0 -1
  576. package/dist/chunk-PXVVTPRJ.js.map +0 -1
  577. package/dist/chunk-S4GLMGFI.js.map +0 -1
  578. package/dist/chunk-SEAVOF6B.js.map +0 -1
  579. package/dist/chunk-SFT5LCQP.cjs.map +0 -1
  580. package/dist/chunk-SSOHJEHS.js +0 -390
  581. package/dist/chunk-SSOHJEHS.js.map +0 -1
  582. package/dist/chunk-TO3ZPSYO.cjs +0 -234
  583. package/dist/chunk-TO3ZPSYO.cjs.map +0 -1
  584. package/dist/chunk-TRK2ZZFB.cjs.map +0 -1
  585. package/dist/chunk-UJODHP7E.cjs.map +0 -1
  586. package/dist/chunk-UMGW7WJI.cjs.map +0 -1
  587. package/dist/chunk-UR7RYJOU.cjs.map +0 -1
  588. package/dist/chunk-UX2Z7LRM.cjs +0 -194
  589. package/dist/chunk-UX2Z7LRM.cjs.map +0 -1
  590. package/dist/chunk-UY3MYNI6.js.map +0 -1
  591. package/dist/chunk-VSEKSDTK.js.map +0 -1
  592. package/dist/chunk-VYFMYXU4.js.map +0 -1
  593. package/dist/chunk-W3QVSVL7.cjs.map +0 -1
  594. package/dist/chunk-WA4VZ363.cjs.map +0 -1
  595. package/dist/chunk-WATCCAQU.js.map +0 -1
  596. package/dist/chunk-XQU4ECJY.js.map +0 -1
  597. package/dist/chunk-XVRQSTUF.js.map +0 -1
  598. package/dist/chunk-Y5SXQR52.cjs.map +0 -1
  599. package/dist/chunk-YBPG5RPR.cjs.map +0 -1
  600. package/dist/chunk-YGYA4BYN.js.map +0 -1
  601. package/dist/chunk-ZC6GLBEL.js +0 -179
  602. package/dist/chunk-ZC6GLBEL.js.map +0 -1
  603. package/dist/chunk-ZNZ67KFM.js.map +0 -1
  604. package/dist/chunk-ZTQQ2O6O.cjs.map +0 -1
  605. package/dist/chunk-ZW2ATXTL.js.map +0 -1
  606. package/dist/chunk-ZXPKFGRB.cjs.map +0 -1
  607. package/dist/components/Stack/Stack.d.ts.map +0 -1
  608. package/dist/components/Stack/Stack.recipe.d.ts.map +0 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  A complete, themeable React component library, built with [Panda CSS](https://panda-css.com/).
7
7
 
8
- [Storybook](https://silver-ui-eight.vercel.app/) — browse and interact with all components.
8
+ [Storybook](https://storybook.silver-ui.com/) — browse and interact with all components.
9
9
 
10
10
  ## Installation
11
11
 
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkJMNH45Q3_cjs = require('./chunk-JMNH45Q3.cjs');
3
+ var chunkQEFE4QBL_cjs = require('./chunk-QEFE4QBL.cjs');
4
+ var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
4
5
  var chunk4TIAKZ4Q_cjs = require('./chunk-4TIAKZ4Q.cjs');
5
6
  var chunkJRBQKFVO_cjs = require('./chunk-JRBQKFVO.cjs');
6
7
  var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
@@ -327,7 +328,7 @@ function Step({
327
328
  ),
328
329
  children: [
329
330
  /* @__PURE__ */ jsxRuntime.jsx(
330
- chunkJMNH45Q3_cjs.Text,
331
+ chunkQEFE4QBL_cjs.Text,
331
332
  {
332
333
  as: "span",
333
334
  className: stepLabelRecipe({ state, orientation }),
@@ -337,7 +338,7 @@ function Step({
337
338
  }
338
339
  ),
339
340
  description != null ? /* @__PURE__ */ jsxRuntime.jsx(
340
- chunkJMNH45Q3_cjs.Text,
341
+ chunkQEFE4QBL_cjs.Text,
341
342
  {
342
343
  as: "span",
343
344
  className: chunkSPDVNY2Z_cjs.cx(
@@ -369,7 +370,7 @@ function Step({
369
370
  ] }),
370
371
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.verticalContent, children: [
371
372
  labelNode,
372
- children != null ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.stepContent, children }) : null
373
+ chunkQAO6QMNQ_cjs.isReactNode(children) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.stepContent, children }) : null
373
374
  ] })
374
375
  ]
375
376
  }
@@ -449,5 +450,5 @@ Stepper.displayName = "Stepper";
449
450
  exports.Step = Step;
450
451
  exports.Stepper = Stepper;
451
452
  exports.useStepperContext = useStepperContext;
452
- //# sourceMappingURL=chunk-E7UOFIBW.cjs.map
453
- //# sourceMappingURL=chunk-E7UOFIBW.cjs.map
453
+ //# sourceMappingURL=chunk-23NN5WRP.cjs.map
454
+ //# sourceMappingURL=chunk-23NN5WRP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Stepper/Step.recipe.ts","../src/components/Stepper/StepperContext.ts","../src/components/Stepper/Step.tsx","../src/components/Stepper/Stepper.tsx"],"names":["cva","createContext","use","css","jsx","Icon","Check","TriangleAlert","cx","jsxs","Text","isReactNode","styles","useMemo"],"mappings":"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","file":"chunk-23NN5WRP.cjs","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\nimport type {StepState} from './Step';\n\nexport const stepIndicatorRecipe = cva({\n base: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '7',\n h: '7',\n borderRadius: 'full',\n fontFamily: 'body',\n fontSize: 'sm',\n fontWeight: 'semibold',\n lineHeight: 'none',\n transitionProperty: 'background-color, color, border-color, opacity',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n flexShrink: 0,\n userSelect: 'none',\n borderWidth: 'emphasized',\n borderStyle: 'solid',\n },\n variants: {\n state: {\n active: {\n bg: 'primary',\n borderColor: 'primary',\n color: 'fg.onPrimary',\n },\n completed: {\n bg: 'primary',\n borderColor: 'primary',\n color: 'fg.onPrimary',\n },\n upcoming: {\n bg: 'transparent',\n borderColor: 'border.emphasized',\n color: 'fg.muted',\n },\n disabled: {\n bg: 'transparent',\n borderColor: 'border',\n color: 'fg.disabled',\n },\n error: {\n bg: 'status.error.solid',\n borderColor: 'status.error.solid',\n color: 'status.error.solidFg',\n },\n } satisfies Record<StepState, object>,\n isClickable: {\n true: {\n cursor: 'pointer',\n _hover: {\n opacity: 0.85,\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n state: 'upcoming',\n isClickable: false,\n },\n});\n\nexport const stepLabelRecipe = cva({\n base: {\n textAlign: 'center',\n },\n variants: {\n state: {\n active: {\n color: 'fg',\n fontWeight: 'semibold',\n },\n completed: {\n color: 'fg',\n },\n upcoming: {\n color: 'fg.muted',\n },\n disabled: {\n color: 'fg.disabled',\n },\n error: {\n color: 'status.error.fg',\n },\n } satisfies Record<StepState, object>,\n orientation: {\n horizontal: {},\n vertical: {\n textAlign: 'start',\n },\n },\n },\n defaultVariants: {\n state: 'upcoming',\n orientation: 'horizontal',\n },\n});\n\nexport const stepConnectorRecipe = cva({\n base: {\n borderRadius: 'full',\n transitionProperty: 'background-color',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n },\n variants: {\n isCompleted: {\n true: {\n bg: 'primary',\n },\n false: {\n bg: 'track.emphasized',\n },\n },\n orientation: {\n horizontal: {\n h: '0.5',\n w: 'full',\n },\n vertical: {\n w: '0.5',\n h: 'full',\n },\n },\n },\n defaultVariants: {\n isCompleted: false,\n orientation: 'horizontal',\n },\n});\n\nexport type StepIndicatorVariants = RecipeVariantProps<\n typeof stepIndicatorRecipe\n>;\nexport type StepLabelVariants = RecipeVariantProps<typeof stepLabelRecipe>;\nexport type StepConnectorVariants = RecipeVariantProps<\n typeof stepConnectorRecipe\n>;\n","import {createContext, use} from 'react';\n\nexport type StepperOrientation = 'horizontal' | 'vertical';\n\nexport interface StepperContextValue {\n activeStep: number;\n isNonLinear: boolean;\n onStepClick: ((index: number) => void) | null;\n orientation: StepperOrientation;\n}\n\nexport const StepperContext = createContext<StepperContextValue | null>(null);\nStepperContext.displayName = 'StepperContext';\n\nexport function useStepperContext(): StepperContextValue {\n const context = use(StepperContext);\n\n if (context == null) {\n throw new Error('Step must be used within a Stepper.');\n }\n\n return context;\n}\n","import {Check, TriangleAlert} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {Icon} from '../Icon';\nimport {Text} from '../Text';\nimport {\n stepConnectorRecipe,\n stepIndicatorRecipe,\n stepLabelRecipe,\n} from './Step.recipe';\nimport {useStepperContext} from './StepperContext';\n\nexport type StepState =\n | 'active'\n | 'completed'\n | 'disabled'\n | 'error'\n | 'upcoming';\n\nexport interface StepProps {\n /**\n * Content rendered below the label and description in vertical steppers.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the step.\n */\n className?: string;\n /**\n * Test ID applied to the step.\n */\n 'data-testid'?: string;\n /**\n * Optional supporting text.\n */\n description?: string;\n /**\n * Whether the step has an error.\n * @default false\n */\n hasError?: boolean;\n /**\n * Custom indicator content replacing the number or check icon.\n */\n icon?: ReactNode;\n /**\n * Override the automatically computed completed state.\n */\n isCompleted?: boolean;\n /**\n * Whether the step is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Step label.\n */\n label: string;\n /**\n * Ref forwarded to the list item.\n */\n ref?: Ref<HTMLLIElement>;\n /**\n * Zero-based index of this step.\n */\n step: number;\n /**\n * Inline styles applied to the step.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n horizontalRoot: css({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n flex: 1,\n position: 'relative',\n _last: {\n flex: 'none',\n },\n '&:last-child [data-step-connector]': {\n display: 'none',\n },\n }),\n horizontalContent: css({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n position: 'relative',\n zIndex: 1,\n }),\n horizontalConnector: css({\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n px: '2',\n minW: '6',\n h: '7',\n }),\n verticalRoot: css({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'stretch',\n position: 'relative',\n minH: '12',\n '&:last-child [data-step-connector]': {\n display: 'none',\n },\n }),\n verticalIndicatorColumn: css({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n w: '7',\n flexShrink: 0,\n }),\n verticalConnector: css({\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n py: '1',\n }),\n verticalContent: css({\n display: 'flex',\n flexDirection: 'column',\n ps: '3',\n pb: '6',\n flex: 1,\n }),\n labelRow: css({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n pt: '1',\n maxW: '120px',\n }),\n labelRowVertical: css({\n alignItems: 'flex-start',\n maxW: 'none',\n pt: '0.5',\n }),\n description: css({\n textAlign: 'center',\n }),\n descriptionVertical: css({\n textAlign: 'start',\n }),\n descriptionError: css({\n color: 'status.error.fg',\n }),\n buttonReset: css({\n bg: 'none',\n borderWidth: 0,\n p: 0,\n m: 0,\n font: 'inherit',\n }),\n stepContent: css({\n pt: '3',\n }),\n} as const;\n\nfunction getStepState({\n hasError,\n isActive,\n isCompleted,\n isDisabled,\n}: {\n hasError: boolean;\n isActive: boolean;\n isCompleted: boolean;\n isDisabled: boolean;\n}): StepState {\n if (hasError) {\n return 'error';\n }\n if (isDisabled) {\n return 'disabled';\n }\n if (isActive) {\n return 'active';\n }\n if (isCompleted) {\n return 'completed';\n }\n return 'upcoming';\n}\n\n/**\n * Individual step within a `Stepper`.\n */\nexport function Step({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n hasError = false,\n icon,\n isCompleted: isCompletedFromProps,\n isDisabled = false,\n label,\n ref,\n step,\n style,\n}: StepProps): React.JSX.Element {\n const {activeStep, orientation, isNonLinear, onStepClick} =\n useStepperContext();\n const isActive = step === activeStep;\n const isCompleted = isCompletedFromProps ?? step < activeStep;\n const isVertical = orientation === 'vertical';\n const isClickable = isNonLinear && !isDisabled && (isCompleted || isActive);\n const state = getStepState({hasError, isActive, isCompleted, isDisabled});\n\n const connectorClassName = stepConnectorRecipe({\n isCompleted,\n orientation,\n });\n\n const defaultIndicatorContent = isCompleted ? (\n <Icon color=\"inherit\" icon={Check} size=\"sm\" />\n ) : (\n <span>{step + 1}</span>\n );\n const indicatorContent = hasError ? (\n <Icon color=\"inherit\" icon={TriangleAlert} size=\"sm\" />\n ) : (\n (icon ?? defaultIndicatorContent)\n );\n\n const handleClick = () => {\n if (isClickable) {\n onStepClick?.(step);\n }\n };\n\n const stepLabel = hasError\n ? `Go to step ${step + 1}: ${label} (error)`\n : `Go to step ${step + 1}: ${label}`;\n\n const indicator = isClickable ? (\n <button\n aria-label={stepLabel}\n className={cx(\n styles.buttonReset,\n stepIndicatorRecipe({state, isClickable: true}),\n )}\n onClick={handleClick}\n type=\"button\">\n {indicatorContent}\n </button>\n ) : (\n <div\n aria-hidden=\"true\"\n className={stepIndicatorRecipe({state, isClickable: false})}>\n {indicatorContent}\n </div>\n );\n\n const labelNode = (\n <div\n className={cx(\n styles.labelRow,\n isVertical ? styles.labelRowVertical : undefined,\n )}>\n <Text\n as=\"span\"\n className={stepLabelRecipe({state, orientation})}\n color=\"inherit\"\n type=\"label\">\n {label}\n </Text>\n {description != null ? (\n <Text\n as=\"span\"\n className={cx(\n styles.description,\n isVertical ? styles.descriptionVertical : undefined,\n state === 'error' ? styles.descriptionError : undefined,\n )}\n color=\"secondary\"\n type=\"supporting\">\n {description}\n </Text>\n ) : null}\n </div>\n );\n\n if (isVertical) {\n return (\n <li\n aria-current={isActive ? 'step' : undefined}\n className={cx(styles.verticalRoot, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <div className={styles.verticalIndicatorColumn}>\n {indicator}\n <div className={styles.verticalConnector} data-step-connector=\"\">\n <div className={connectorClassName} />\n </div>\n </div>\n <div className={styles.verticalContent}>\n {labelNode}\n {isReactNode(children) ? (\n <div className={styles.stepContent}>{children}</div>\n ) : null}\n </div>\n </li>\n );\n }\n\n return (\n <li\n aria-current={isActive ? 'step' : undefined}\n className={cx(styles.horizontalRoot, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <div className={styles.horizontalContent}>\n {indicator}\n {labelNode}\n </div>\n <div className={styles.horizontalConnector} data-step-connector=\"\">\n <div className={connectorClassName} />\n </div>\n </li>\n );\n}\n\nStep.displayName = 'Step';\n","import {useMemo, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {\n StepperContext,\n type StepperContextValue,\n type StepperOrientation,\n} from './StepperContext';\n\nexport type {StepperOrientation};\n\nexport interface StepperProps {\n /**\n * Zero-based index of the active step.\n */\n activeStep: number;\n /**\n * Step elements to render.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the ordered list.\n */\n className?: string;\n /**\n * Test ID applied to the ordered list.\n */\n 'data-testid'?: string;\n /**\n * Accessible label for the navigation landmark.\n * @default 'Progress'\n */\n label?: string;\n /**\n * Called when a completed or active step indicator is clicked.\n */\n onStepClick?: (index: number) => void;\n /**\n * Layout direction.\n * @default 'horizontal'\n */\n orientation?: StepperOrientation;\n /**\n * Ref forwarded to the navigation element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the ordered list.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n w: 'full',\n m: 0,\n p: 0,\n listStyleType: 'none',\n }),\n horizontal: css({\n flexDirection: 'row',\n alignItems: 'flex-start',\n }),\n vertical: css({\n flexDirection: 'column',\n }),\n} as const;\n\n/**\n * Displays progress through a sequence of logical steps.\n */\nexport function Stepper({\n activeStep,\n children,\n className,\n 'data-testid': dataTestId,\n label = 'Progress',\n onStepClick,\n orientation = 'horizontal',\n ref,\n style,\n}: StepperProps): React.JSX.Element {\n const contextValue = useMemo<StepperContextValue>(\n () => ({\n activeStep,\n isNonLinear: onStepClick != null,\n onStepClick: onStepClick ?? null,\n orientation,\n }),\n [activeStep, onStepClick, orientation],\n );\n\n return (\n <StepperContext value={contextValue}>\n <nav aria-label={label} ref={ref}>\n <ol\n className={cx(\n styles.root,\n orientation === 'horizontal' ? styles.horizontal : styles.vertical,\n className,\n )}\n data-testid={dataTestId}\n style={style}>\n {children}\n </ol>\n </nav>\n </StepperContext>\n );\n}\n\nStepper.displayName = 'Stepper';\n"]}
@@ -0,0 +1,8 @@
1
+ // src/internal/isReactNode.ts
2
+ function isReactNode(node) {
3
+ return node != null && typeof node !== "boolean";
4
+ }
5
+
6
+ export { isReactNode };
7
+ //# sourceMappingURL=chunk-2PSZAWLC.js.map
8
+ //# sourceMappingURL=chunk-2PSZAWLC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/isReactNode.ts"],"names":[],"mappings":";AAEe,SAAR,YAA6B,IAAA,EAA0B;AAC5D,EAAA,OAAO,IAAA,IAAQ,IAAA,IAAQ,OAAO,IAAA,KAAS,SAAA;AACzC","file":"chunk-2PSZAWLC.js","sourcesContent":["import type {ReactNode} from 'react';\n\nexport default function isReactNode(node: ReactNode): boolean {\n return node != null && typeof node !== 'boolean';\n}\n"]}
@@ -1,10 +1,9 @@
1
1
  import { toPixelSize } from './chunk-KLMODPEE.js';
2
2
  import { cva } from './chunk-FMEIPGUP.js';
3
3
  import { cx } from './chunk-PPNETWIP.js';
4
- import { createElement } from 'react';
5
4
  import { jsx } from 'react/jsx-runtime';
6
5
 
7
- // src/components/Stack/Stack.recipe.ts
6
+ // src/components/Stack/internal/Stack.recipe.ts
8
7
  var stackRecipe = cva({
9
8
  base: {
10
9
  display: "flex",
@@ -49,8 +48,6 @@ var stackRecipe = cva({
49
48
  wrap: "nowrap"
50
49
  }
51
50
  });
52
-
53
- // src/components/Stack/Stack.tsx
54
51
  var mainAlignValues = {
55
52
  start: "flex-start",
56
53
  center: "center",
@@ -94,16 +91,16 @@ function Stack({
94
91
  height: toPixelSize(height),
95
92
  ...style
96
93
  };
97
- return createElement(
94
+ return /* @__PURE__ */ jsx(
98
95
  Element,
99
96
  {
100
97
  ...htmlProps,
101
98
  className: cx(stackRecipe({ direction, gap, wrap }), className),
102
99
  "data-testid": dataTestId,
103
100
  ref,
104
- style: stackStyle
105
- },
106
- children
101
+ style: stackStyle,
102
+ children
103
+ }
107
104
  );
108
105
  }
109
106
  Stack.displayName = "Stack";
@@ -161,5 +158,5 @@ function VStack({
161
158
  VStack.displayName = "VStack";
162
159
 
163
160
  export { HStack, VStack };
164
- //# sourceMappingURL=chunk-5MDH6QZE.js.map
165
- //# sourceMappingURL=chunk-5MDH6QZE.js.map
161
+ //# sourceMappingURL=chunk-2XAA3CM5.js.map
162
+ //# sourceMappingURL=chunk-2XAA3CM5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Stack/internal/Stack.recipe.ts","../src/components/Stack/internal/Stack.tsx","../src/components/Stack/HStack.tsx","../src/components/Stack/VStack.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-2XAA3CM5.js","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const stackRecipe = cva({\n base: {\n display: 'flex',\n minW: 0,\n },\n variants: {\n direction: {\n horizontal: {\n flexDirection: 'row',\n },\n vertical: {\n flexDirection: 'column',\n },\n },\n gap: {\n 0: {gap: '0'},\n 0.5: {gap: '0.5'},\n 1: {gap: '1'},\n 1.5: {gap: '1.5'},\n 2: {gap: '2'},\n 3: {gap: '3'},\n 4: {gap: '4'},\n 5: {gap: '5'},\n 6: {gap: '6'},\n 8: {gap: '8'},\n 10: {gap: '10'},\n },\n wrap: {\n nowrap: {\n flexWrap: 'nowrap',\n },\n wrap: {\n flexWrap: 'wrap',\n },\n 'wrap-reverse': {\n flexWrap: 'wrap-reverse',\n },\n },\n },\n defaultVariants: {\n direction: 'vertical',\n wrap: 'nowrap',\n },\n});\n\nexport type StackVariants = RecipeVariantProps<typeof stackRecipe>;\n","import type {\n CSSProperties,\n ElementType,\n HTMLAttributes,\n ReactNode,\n Ref,\n} from 'react';\nimport {cx} from '../../../internal/cx';\nimport type {SpacingToken} from '../../../internal/spacingTokens';\nimport {toPixelSize, type SizeValue} from '../../../internal/toPixelSize';\nimport {stackRecipe} from './Stack.recipe';\n\nexport type {SizeValue};\nexport type StackDirection = 'horizontal' | 'vertical';\nexport type StackMainAlignment =\n | 'start'\n | 'center'\n | 'end'\n | 'between'\n | 'around'\n | 'evenly';\nexport type StackCrossAlignment = 'start' | 'center' | 'end' | 'stretch';\nexport type StackAlignment = StackMainAlignment | StackCrossAlignment;\nexport type StackWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\nexport type StackGap = SpacingToken;\n\n/**\n * @internal\n * Props for the base `Stack` component.\n */\nexport interface StackProps extends HTMLAttributes<HTMLElement> {\n /**\n * Cross-axis alignment.\n */\n align?: StackCrossAlignment;\n /**\n * HTML element type to render.\n */\n as?: ElementType;\n /**\n * Stack content.\n */\n children?: ReactNode;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Layout direction.\n */\n direction?: StackDirection;\n /**\n * Gap between children.\n */\n gap?: StackGap;\n /**\n * Horizontal alignment (overrides align/justify for horizontal axis).\n */\n hAlign?: StackAlignment;\n /**\n * Fixed height. Numbers are treated as pixels.\n */\n height?: SizeValue;\n /**\n * Main-axis alignment.\n */\n justify?: StackMainAlignment;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Vertical alignment (overrides align/justify for vertical axis).\n */\n vAlign?: StackAlignment;\n /**\n * Fixed width. Numbers are treated as pixels.\n */\n width?: SizeValue;\n /**\n * Flex wrap behavior.\n */\n wrap?: StackWrap;\n}\n\nconst mainAlignValues: Record<StackMainAlignment, string> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n};\n\nconst crossAlignValues: Record<StackCrossAlignment, string> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n};\n\n/**\n * @internal\n * Base flex stack layout primitive. Not exported to consumers — use\n * `HStack` or `VStack` instead, which provide direction-specific\n * type safety for alignment props.\n */\nexport function Stack({\n align,\n children,\n className,\n 'data-testid': dataTestId,\n direction = 'vertical',\n as: Element = 'div',\n gap,\n hAlign,\n height,\n justify,\n ref,\n style,\n vAlign,\n width,\n wrap = 'nowrap',\n ...htmlProps\n}: StackProps): React.JSX.Element {\n const resolvedHAlign =\n hAlign ?? (direction === 'horizontal' ? justify : align);\n const resolvedVAlign =\n vAlign ?? (direction === 'horizontal' ? align : justify);\n const mainAlign =\n direction === 'horizontal' ? resolvedHAlign : resolvedVAlign;\n const crossAlign =\n direction === 'horizontal' ? resolvedVAlign : resolvedHAlign;\n const stackStyle: CSSProperties = {\n justifyContent:\n mainAlign != null && mainAlign in mainAlignValues\n ? mainAlignValues[mainAlign as StackMainAlignment]\n : undefined,\n alignItems:\n crossAlign != null && crossAlign in crossAlignValues\n ? crossAlignValues[crossAlign as StackCrossAlignment]\n : undefined,\n width: toPixelSize(width),\n height: toPixelSize(height),\n ...style,\n };\n\n return (\n <Element\n {...htmlProps}\n className={cx(stackRecipe({direction, gap, wrap}), className)}\n data-testid={dataTestId}\n ref={ref}\n style={stackStyle}>\n {children}\n </Element>\n );\n}\n\nStack.displayName = 'Stack';\n","import type {Ref} from 'react';\nimport {\n Stack,\n type StackCrossAlignment,\n type StackMainAlignment,\n type StackProps,\n} from './internal/Stack';\n\nexport interface HStackProps extends Omit<\n StackProps,\n 'direction' | 'hAlign' | 'vAlign'\n> {\n align?: StackCrossAlignment;\n hAlign?: StackMainAlignment;\n justify?: StackMainAlignment;\n ref?: Ref<HTMLElement>;\n vAlign?: StackCrossAlignment;\n}\n\nexport function HStack({\n align,\n className,\n 'data-testid': dataTestId,\n hAlign,\n justify,\n ref,\n style,\n vAlign,\n ...props\n}: HStackProps): React.JSX.Element {\n return (\n <Stack\n {...props}\n className={className}\n data-testid={dataTestId}\n direction=\"horizontal\"\n hAlign={hAlign ?? justify}\n ref={ref}\n style={style}\n vAlign={vAlign ?? align}\n />\n );\n}\n\nHStack.displayName = 'HStack';\n","import type {Ref} from 'react';\nimport {\n Stack,\n type StackCrossAlignment,\n type StackMainAlignment,\n type StackProps,\n} from './internal/Stack';\n\nexport interface VStackProps extends Omit<\n StackProps,\n 'direction' | 'hAlign' | 'vAlign'\n> {\n align?: StackCrossAlignment;\n hAlign?: StackCrossAlignment;\n justify?: StackMainAlignment;\n ref?: Ref<HTMLElement>;\n vAlign?: StackMainAlignment;\n}\n\nexport function VStack({\n align,\n className,\n 'data-testid': dataTestId,\n hAlign,\n justify,\n ref,\n style,\n vAlign,\n ...props\n}: VStackProps): React.JSX.Element {\n return (\n <Stack\n {...props}\n className={className}\n data-testid={dataTestId}\n direction=\"vertical\"\n hAlign={hAlign ?? align}\n ref={ref}\n style={style}\n vAlign={vAlign ?? justify}\n />\n );\n}\n\nVStack.displayName = 'VStack';\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Dialog } from './chunk-P3SMNZCT.js';
2
- import { Layout, LayoutHeader, LayoutFooter, LayoutContent } from './chunk-GI5MVVIX.js';
3
- import { Button } from './chunk-HLN3JQYD.js';
4
- import { Text } from './chunk-J2FCNWYM.js';
2
+ import { Layout, LayoutHeader, LayoutFooter, LayoutContent } from './chunk-DIIE44GO.js';
3
+ import { Button } from './chunk-RVENUWRD.js';
4
+ import { Text } from './chunk-76B2VLID.js';
5
5
  import { useRef, useEffect, useCallback, useState } from 'react';
6
6
  import { jsx } from 'react/jsx-runtime';
7
7
 
@@ -101,5 +101,5 @@ function useAlertDialog() {
101
101
  }
102
102
 
103
103
  export { AlertDialog, useAlertDialog };
104
- //# sourceMappingURL=chunk-AGJ5SZCM.js.map
105
- //# sourceMappingURL=chunk-AGJ5SZCM.js.map
104
+ //# sourceMappingURL=chunk-3DJ46WN4.js.map
105
+ //# sourceMappingURL=chunk-3DJ46WN4.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/AlertDialog/AlertDialog.tsx","../src/components/AlertDialog/useAlertDialog.tsx"],"names":["useCallback","jsx"],"mappings":";;;;;;;AAgFO,SAAS,WAAA,CAAY;AAAA,EAC1B,WAAA;AAAA,EACA,aAAA,GAAgB,aAAA;AAAA,EAChB,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,WAAA;AAAA,EACA,eAAA,GAAkB,KAAA;AAAA,EAClB,MAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA,GAAQ;AACV,CAAA,EAA+C;AAO7C,EAAA,MAAM,cAAA,GAAiB,OAAO,KAAK,CAAA;AAEnC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,MAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AAAA,IAC3B;AAAA,EACF,CAAA,EAAG,CAAC,eAAe,CAAC,CAAA;AAEpB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AAAA,IAC3B;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,MAAM,YAAA,GAAe,YAAY,MAAM;AACrC,IAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,MAAA;AAAA,IACF;AACA,IAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,IAAA,QAAA,EAAS;AAAA,EACX,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,eAAA,EAAiB,KAAA;AAAA,MACjB,MAAA;AAAA,MACA,YAAA;AAAA,MACA,GAAA;AAAA,MACA,IAAA,EAAK,aAAA;AAAA,MACL,KAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,kBACE,GAAA,CAAC,aAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAG,GAAA,EAAI,KAAA,EAAM,WAAA,EAChB,QAAA,EAAA,WAAA,EACH,CAAA,EACF,CAAA;AAAA,UAEF,MAAA,kBACE,GAAA;AAAA,YAAC,YAAA;AAAA,YAAA;AAAA,cACC,aAAA,kBACE,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,eAAA;AAAA,kBACX,KAAA,EAAO,WAAA;AAAA,kBACP,OAAA,EAAS,YAAA;AAAA,kBACT,OAAA,EAAS;AAAA;AAAA,eACX;AAAA,cAEF,eAAA,kBACE,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAO,WAAA;AAAA,kBACP,OAAA,EAAS,MAAM,YAAA,CAAa,KAAK,CAAA;AAAA,kBACjC,OAAA,EAAQ;AAAA;AAAA;AACV;AAAA,WAEJ;AAAA,UAEF,WAAA,EAAW,IAAA;AAAA,UACX,MAAA,kBAAQ,GAAA,CAAC,YAAA,EAAA,EAAa,KAAA,EAAc;AAAA;AAAA;AACtC;AAAA,GACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AC9InB,SAAS,cAAA,GAAuC;AACrD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAoC,IAAI,CAAA;AAEtE,EAAA,MAAM,IAAA,GAAOA,WAAAA,CAAY,CAAC,WAAA,KAAoC;AAC5D,IAAA,UAAA,CAAW,WAAW,CAAA;AACtB,IAAA,SAAA,CAAU,IAAI,CAAA;AAAA,EAChB,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,MAAM,IAAA,GAAOA,YAAY,MAAM;AAC7B,IAAA,SAAA,CAAU,KAAK,CAAA;AACf,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,OAAA,GACJ,OAAA,IAAW,IAAA,GAAO,IAAA,mBAChBC,GAAAA,CAAC,WAAA,EAAA,EAAa,GAAG,OAAA,EAAS,MAAA,EAAgB,YAAA,EAAc,SAAA,EAAW,CAAA;AAGvE,EAAA,OAAO,EAAC,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAI;AACrC","file":"chunk-AGJ5SZCM.js","sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {Button} from '../Button';\nimport {Dialog} from '../Dialog';\nimport {Layout, LayoutContent, LayoutFooter, LayoutHeader} from '../Layout';\nimport {Text} from '../Text';\n\nexport type AlertDialogActionVariant = 'destructive' | 'primary';\n\nexport interface AlertDialogProps {\n /**\n * Action button label.\n */\n actionLabel: string;\n /**\n * Visual variant for the action button.\n * @default 'destructive'\n */\n actionVariant?: AlertDialogActionVariant;\n /**\n * Cancel button label.\n * @default 'Cancel'\n */\n cancelLabel?: string;\n /**\n * Additional CSS class names applied to the dialog.\n */\n className?: string;\n /**\n * Test ID applied to the dialog.\n */\n 'data-testid'?: string;\n /**\n * Consequence description.\n */\n description: string;\n /**\n * Whether the action button is loading.\n * @default false\n */\n isActionLoading?: boolean;\n /**\n * Whether the dialog is open.\n */\n isOpen: boolean;\n /**\n * Called when the primary action is clicked.\n */\n onAction: () => void;\n /**\n * Called when the dialog requests an open-state change.\n */\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Inline styles applied to the dialog.\n */\n style?: CSSProperties;\n /**\n * Dialog title.\n */\n title: string;\n /**\n * Dialog width. Numbers are treated as pixels.\n * @default 400\n */\n width?: number | string;\n}\n\n/**\n * A modal confirmation dialog for destructive or irreversible actions.\n */\nexport function AlertDialog({\n actionLabel,\n actionVariant = 'destructive',\n cancelLabel = 'Cancel',\n className,\n 'data-testid': dataTestId,\n description,\n isActionLoading = false,\n isOpen,\n onAction,\n onOpenChange,\n ref,\n style,\n title,\n width = 400,\n}: AlertDialogProps): React.JSX.Element | null {\n /**\n * Synchronous guard against rapid double-invocation of onAction.\n * The ref flips immediately on the first call — before React can\n * re-render with `isActionLoading=true` — so a second Enter/click\n * in the same event-loop tick is ignored.\n */\n const actionFiredRef = useRef(false);\n\n useEffect(() => {\n if (!isActionLoading) {\n actionFiredRef.current = false;\n }\n }, [isActionLoading]);\n\n useEffect(() => {\n if (!isOpen) {\n actionFiredRef.current = false;\n }\n }, [isOpen]);\n\n const handleAction = useCallback(() => {\n if (actionFiredRef.current) {\n return;\n }\n actionFiredRef.current = true;\n onAction();\n }, [onAction]);\n\n return (\n <Dialog\n className={className}\n data-testid={dataTestId}\n dismissBehavior={false}\n isOpen={isOpen}\n onOpenChange={onOpenChange}\n ref={ref}\n role=\"alertdialog\"\n style={style}\n width={width}>\n <Layout\n content={\n <LayoutContent>\n <Text as=\"p\" color=\"secondary\">\n {description}\n </Text>\n </LayoutContent>\n }\n footer={\n <LayoutFooter\n primaryButton={\n <Button\n isLoading={isActionLoading}\n label={actionLabel}\n onClick={handleAction}\n variant={actionVariant}\n />\n }\n secondaryButton={\n <Button\n label={cancelLabel}\n onClick={() => onOpenChange(false)}\n variant=\"ghost\"\n />\n }\n />\n }\n hasDividers\n header={<LayoutHeader title={title} />}\n />\n </Dialog>\n );\n}\n\nAlertDialog.displayName = 'AlertDialog';\n","import {useCallback, useState, type ReactNode} from 'react';\nimport {AlertDialog, type AlertDialogProps} from './AlertDialog';\n\nexport type AlertDialogOptions = Omit<\n AlertDialogProps,\n 'isOpen' | 'onOpenChange'\n>;\n\nexport interface UseAlertDialogReturn {\n /**\n * Render this element in your tree.\n */\n element: ReactNode;\n /**\n * Hide the current alert dialog.\n */\n hide: () => void;\n /**\n * Whether the alert dialog is open.\n */\n isOpen: boolean;\n /**\n * Show an alert dialog with the provided options.\n */\n show: (options: AlertDialogOptions) => void;\n}\n\nexport function useAlertDialog(): UseAlertDialogReturn {\n const [isOpen, setIsOpen] = useState(false);\n const [options, setOptions] = useState<AlertDialogOptions | null>(null);\n\n const show = useCallback((nextOptions: AlertDialogOptions) => {\n setOptions(nextOptions);\n setIsOpen(true);\n }, []);\n const hide = useCallback(() => {\n setIsOpen(false);\n setOptions(null);\n }, []);\n\n const element: ReactNode =\n options == null ? null : (\n <AlertDialog {...options} isOpen={isOpen} onOpenChange={setIsOpen} />\n );\n\n return {element, hide, isOpen, show};\n}\n"]}
1
+ {"version":3,"sources":["../src/components/AlertDialog/AlertDialog.tsx","../src/components/AlertDialog/useAlertDialog.tsx"],"names":["useCallback","jsx"],"mappings":"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","file":"chunk-3DJ46WN4.js","sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {Button} from '../Button';\nimport {Dialog} from '../Dialog';\nimport {Layout, LayoutContent, LayoutFooter, LayoutHeader} from '../Layout';\nimport {Text} from '../Text';\n\nexport type AlertDialogActionVariant = 'destructive' | 'primary';\n\nexport interface AlertDialogProps {\n /**\n * Action button label.\n */\n actionLabel: string;\n /**\n * Visual variant for the action button.\n * @default 'destructive'\n */\n actionVariant?: AlertDialogActionVariant;\n /**\n * Cancel button label.\n * @default 'Cancel'\n */\n cancelLabel?: string;\n /**\n * Additional CSS class names applied to the dialog.\n */\n className?: string;\n /**\n * Test ID applied to the dialog.\n */\n 'data-testid'?: string;\n /**\n * Consequence description.\n */\n description: string;\n /**\n * Whether the action button is loading.\n * @default false\n */\n isActionLoading?: boolean;\n /**\n * Whether the dialog is open.\n */\n isOpen: boolean;\n /**\n * Called when the primary action is clicked.\n */\n onAction: () => void;\n /**\n * Called when the dialog requests an open-state change.\n */\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Inline styles applied to the dialog.\n */\n style?: CSSProperties;\n /**\n * Dialog title.\n */\n title: string;\n /**\n * Dialog width. Numbers are treated as pixels.\n * @default 400\n */\n width?: number | string;\n}\n\n/**\n * A modal confirmation dialog for destructive or irreversible actions.\n */\nexport function AlertDialog({\n actionLabel,\n actionVariant = 'destructive',\n cancelLabel = 'Cancel',\n className,\n 'data-testid': dataTestId,\n description,\n isActionLoading = false,\n isOpen,\n onAction,\n onOpenChange,\n ref,\n style,\n title,\n width = 400,\n}: AlertDialogProps): React.JSX.Element | null {\n /**\n * Synchronous guard against rapid double-invocation of onAction.\n * The ref flips immediately on the first call — before React can\n * re-render with `isActionLoading=true` — so a second Enter/click\n * in the same event-loop tick is ignored.\n */\n const actionFiredRef = useRef(false);\n\n useEffect(() => {\n if (!isActionLoading) {\n actionFiredRef.current = false;\n }\n }, [isActionLoading]);\n\n useEffect(() => {\n if (!isOpen) {\n actionFiredRef.current = false;\n }\n }, [isOpen]);\n\n const handleAction = useCallback(() => {\n if (actionFiredRef.current) {\n return;\n }\n actionFiredRef.current = true;\n onAction();\n }, [onAction]);\n\n return (\n <Dialog\n className={className}\n data-testid={dataTestId}\n dismissBehavior={false}\n isOpen={isOpen}\n onOpenChange={onOpenChange}\n ref={ref}\n role=\"alertdialog\"\n style={style}\n width={width}>\n <Layout\n content={\n <LayoutContent>\n <Text as=\"p\" color=\"secondary\">\n {description}\n </Text>\n </LayoutContent>\n }\n footer={\n <LayoutFooter\n primaryButton={\n <Button\n isLoading={isActionLoading}\n label={actionLabel}\n onClick={handleAction}\n variant={actionVariant}\n />\n }\n secondaryButton={\n <Button\n label={cancelLabel}\n onClick={() => onOpenChange(false)}\n variant=\"ghost\"\n />\n }\n />\n }\n hasDividers\n header={<LayoutHeader title={title} />}\n />\n </Dialog>\n );\n}\n\nAlertDialog.displayName = 'AlertDialog';\n","import {useCallback, useState, type ReactNode} from 'react';\nimport {AlertDialog, type AlertDialogProps} from './AlertDialog';\n\nexport type AlertDialogOptions = Omit<\n AlertDialogProps,\n 'isOpen' | 'onOpenChange'\n>;\n\nexport interface UseAlertDialogReturn {\n /**\n * Render this element in your tree.\n */\n element: ReactNode;\n /**\n * Hide the current alert dialog.\n */\n hide: () => void;\n /**\n * Whether the alert dialog is open.\n */\n isOpen: boolean;\n /**\n * Show an alert dialog with the provided options.\n */\n show: (options: AlertDialogOptions) => void;\n}\n\nexport function useAlertDialog(): UseAlertDialogReturn {\n const [isOpen, setIsOpen] = useState(false);\n const [options, setOptions] = useState<AlertDialogOptions | null>(null);\n\n const show = useCallback((nextOptions: AlertDialogOptions) => {\n setOptions(nextOptions);\n setIsOpen(true);\n }, []);\n const hide = useCallback(() => {\n setIsOpen(false);\n setOptions(null);\n }, []);\n\n const element: ReactNode =\n options == null ? null : (\n <AlertDialog {...options} isOpen={isOpen} onOpenChange={setIsOpen} />\n );\n\n return {element, hide, isOpen, show};\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkYBPG5RPR_cjs = require('./chunk-YBPG5RPR.cjs');
4
- var chunkJMNH45Q3_cjs = require('./chunk-JMNH45Q3.cjs');
3
+ var chunkBRB52QFV_cjs = require('./chunk-BRB52QFV.cjs');
4
+ var chunkQEFE4QBL_cjs = require('./chunk-QEFE4QBL.cjs');
5
5
  var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
6
6
  var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
7
7
  var lucideReact = require('lucide-react');
@@ -142,7 +142,7 @@ function Pagination({
142
142
  }
143
143
  const isActive = item === page;
144
144
  return /* @__PURE__ */ jsxRuntime.jsx(
145
- chunkYBPG5RPR_cjs.Button,
145
+ chunkBRB52QFV_cjs.Button,
146
146
  {
147
147
  "aria-current": isActive ? "page" : void 0,
148
148
  "aria-label": isActive ? `Page ${item}, current page` : `Go to page ${item}`,
@@ -158,9 +158,9 @@ function Pagination({
158
158
  });
159
159
  }
160
160
  case "count":
161
- return totalItems == null ? null : /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-live": "polite", className: styles.infoText, children: /* @__PURE__ */ jsxRuntime.jsx(chunkJMNH45Q3_cjs.Text, { color: "primary", size: "sm", type: "body", children: `${rangeStart}-${rangeEnd} of ${totalItems}` }) });
161
+ return totalItems == null ? null : /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-live": "polite", className: styles.infoText, children: /* @__PURE__ */ jsxRuntime.jsx(chunkQEFE4QBL_cjs.Text, { color: "primary", size: "sm", type: "body", children: `${rangeStart}-${rangeEnd} of ${totalItems}` }) });
162
162
  case "compact":
163
- return computedTotalPages == null ? null : /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-live": "polite", className: styles.infoText, children: /* @__PURE__ */ jsxRuntime.jsx(chunkJMNH45Q3_cjs.Text, { color: "primary", size: "sm", type: "body", children: `Page ${page} of ${computedTotalPages}` }) });
163
+ return computedTotalPages == null ? null : /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-live": "polite", className: styles.infoText, children: /* @__PURE__ */ jsxRuntime.jsx(chunkQEFE4QBL_cjs.Text, { color: "primary", size: "sm", type: "body", children: `Page ${page} of ${computedTotalPages}` }) });
164
164
  case "none":
165
165
  default:
166
166
  return null;
@@ -176,7 +176,7 @@ function Pagination({
176
176
  style,
177
177
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.controls, children: [
178
178
  /* @__PURE__ */ jsxRuntime.jsx(
179
- chunkYBPG5RPR_cjs.Button,
179
+ chunkBRB52QFV_cjs.Button,
180
180
  {
181
181
  icon: lucideReact.ChevronLeft,
182
182
  isDisabled: isDisabled || !hasPrevious,
@@ -189,7 +189,7 @@ function Pagination({
189
189
  ),
190
190
  renderIndicator(),
191
191
  /* @__PURE__ */ jsxRuntime.jsx(
192
- chunkYBPG5RPR_cjs.Button,
192
+ chunkBRB52QFV_cjs.Button,
193
193
  {
194
194
  icon: lucideReact.ChevronRight,
195
195
  isDisabled: isDisabled || !hasNext,
@@ -207,5 +207,5 @@ function Pagination({
207
207
  Pagination.displayName = "Pagination";
208
208
 
209
209
  exports.Pagination = Pagination;
210
- //# sourceMappingURL=chunk-UYXQBM2B.cjs.map
211
- //# sourceMappingURL=chunk-UYXQBM2B.cjs.map
210
+ //# sourceMappingURL=chunk-3IBY374V.cjs.map
211
+ //# sourceMappingURL=chunk-3IBY374V.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":["css","useMemo","jsx","Button","Text","cx","jsxs","ChevronLeft","ChevronRight"],"mappings":";;;;;;;;;;AA+EA,IAAM,MAAA,GAAS;AAAA,EACb,MAAMA,qBAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,eAAA;AAAA,IAChB,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,UAAUA,qBAAA,CAAI;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,UAAUA,qBAAA,CAAI;AAAA,IACZ,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,KAAA,EAAO,UAAA;AAAA,IACP,UAAA,EAAY,MAAA;AAAA,IACZ,QAAA,EAAU,IAAA;AAAA,IACV,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,UAAUA,qBAAA,CAAI;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,YAAYA,qBAAA,CAAI;AAAA,IACd,EAAA,EAAI,UAAA;AAAA,IACJ,UAAA,EAAY;AAAA,GACb;AACH,CAAA;AAEA,SAAS,iBAAA,CACP,WAAA,EACA,UAAA,EACA,YAAA,EACoB;AACpB,EAAA,MAAM,UAAA,GAAa,IAAI,CAAA,GAAI,YAAA;AAE3B,EAAA,IAAI,cAAc,UAAA,EAAY;AAC5B,IAAA,OAAO,KAAA,CAAM,IAAA,CAAK,EAAC,MAAA,EAAQ,UAAA,IAAa,CAAC,CAAA,EAAG,KAAA,KAAU,KAAA,GAAQ,CAAC,CAAA;AAAA,EACjE;AAEA,EAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,GAAA,CAAI,WAAA,GAAc,cAAc,CAAC,CAAA;AAC/D,EAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,GAAA,CAAI,WAAA,GAAc,cAAc,UAAU,CAAA;AACzE,EAAA,MAAM,mBAAmB,gBAAA,GAAmB,CAAA;AAC5C,EAAA,MAAM,iBAAA,GAAoB,oBAAoB,UAAA,GAAa,CAAA;AAE3D,EAAA,IAAI,CAAC,oBAAoB,iBAAA,EAAmB;AAC1C,IAAA,MAAM,SAAA,GAAY,IAAI,CAAA,GAAI,YAAA;AAC1B,IAAA,OAAO;AAAA,MACL,GAAG,KAAA,CAAM,IAAA,CAAK,EAAC,MAAA,EAAQ,SAAA,EAAS,EAAG,CAAC,CAAA,EAAG,KAAA,KAAU,KAAA,GAAQ,CAAC,CAAA;AAAA,MAC1D,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAEA,EAAA,IAAI,gBAAA,IAAoB,CAAC,iBAAA,EAAmB;AAC1C,IAAA,MAAM,UAAA,GAAa,IAAI,CAAA,GAAI,YAAA;AAC3B,IAAA,OAAO;AAAA,MACL,CAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAG,KAAA,CAAM,IAAA;AAAA,QACP,EAAC,QAAQ,UAAA,EAAU;AAAA,QACnB,CAAC,CAAA,EAAG,KAAA,KAAU,UAAA,GAAa,aAAa,KAAA,GAAQ;AAAA;AAClD,KACF;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,CAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG,KAAA,CAAM,IAAA;AAAA,MACP,EAAC,MAAA,EAAQ,iBAAA,GAAoB,gBAAA,GAAmB,CAAA,EAAC;AAAA,MACjD,CAAC,CAAA,EAAG,KAAA,KAAU,gBAAA,GAAmB;AAAA,KACnC;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF;AACF;AAMO,SAAS,UAAA,CAAW;AAAA,EACzB,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,OAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,KAAA,GAAQ,YAAA;AAAA,EACR,QAAA;AAAA,EACA,IAAA,EAAM,aAAA;AAAA,EACN,UAAU,iBAAA,GAAoB,EAAA;AAAA,EAC9B,GAAA;AAAA,EACA,cAAc,qBAAA,GAAwB,CAAA;AAAA,EACtC,IAAA,GAAO,IAAA;AAAA,EACP,KAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA,EAAY,cAAA;AAAA,EACZ,OAAA,GAAU;AACZ,CAAA,EAA8C;AAC5C,EAAA,MAAM,YAAA,GAAe,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,qBAAqB,CAAA;AACtD,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,iBAAiB,CAAA;AAC9C,EAAA,MAAM,kBAAA,GACJ,mBACC,UAAA,IAAc,IAAA,GAAO,KAAK,IAAA,CAAK,UAAA,GAAa,QAAQ,CAAA,GAAI,MAAA,CAAA;AAC3D,EAAA,MAAM,OAAO,IAAA,CAAK,GAAA;AAAA,IAChB,CAAA;AAAA,IACA,sBAAsB,IAAA,GAClB,IAAA,CAAK,GAAA,CAAI,aAAA,EAAe,kBAAkB,CAAA,GAC1C;AAAA,GACN;AACA,EAAA,MAAM,cAAc,IAAA,GAAO,CAAA;AAC3B,EAAA,MAAM,OAAA,GACJ,kBAAA,IAAsB,IAAA,GAAO,IAAA,GAAO,qBAAsB,OAAA,IAAW,KAAA;AAEvE,EAAA,MAAM,SAAA,GAAYC,aAAA;AAAA,IAChB,MACE,sBAAsB,IAAA,GAClB,iBAAA,CAAkB,MAAM,kBAAA,EAAoB,YAAY,IACxD,EAAC;AAAA,IACP,CAAC,IAAA,EAAM,kBAAA,EAAoB,YAAY;AAAA,GACzC;AAEA,EAAA,IAAI,UAAA,IAAc,IAAA,IAAQ,UAAA,IAAc,CAAA,EAAG;AACzC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,kBAAA,IAAsB,IAAA,IAAQ,kBAAA,IAAsB,CAAA,EAAG;AACzD,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,OAAA,KAAoB;AAC5C,IAAA,IAAI,UAAA,EAAY;AACd,MAAA;AAAA,IACF;AAEA,IAAA,QAAA,CAAS,OAAO,CAAA;AAAA,EAClB,CAAA;AAEA,EAAA,MAAM,UAAA,GAAA,CAAc,IAAA,GAAO,CAAA,IAAK,QAAA,GAAW,CAAA;AAC3C,EAAA,MAAM,QAAA,GACJ,cAAc,IAAA,GACV,IAAA,GAAO,WACP,IAAA,CAAK,GAAA,CAAI,IAAA,GAAO,QAAA,EAAU,UAAU,CAAA;AAE1C,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,QAAQ,OAAA;AAAS,MACf,KAAK,OAAA,EAAS;AACZ,QAAA,IAAI,sBAAsB,IAAA,EAAM;AAC9B,UAAA,OAAO,IAAA;AAAA,QACT;AAEA,QAAA,OAAO,SAAA,CAAU,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AACpC,UAAA,IAAI,SAAS,KAAA,EAAO;AAClB,YAAA,uBACEC,cAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,aAAA,EAAY,MAAA;AAAA,gBACZ,WAAW,MAAA,CAAO,QAAA;AAAA,gBAC+C,QAAA,EAAA;AAAA,eAAA;AAAA,cAA5D,CAAA,SAAA,EAAY,UAAU,KAAA,GAAQ,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,KAAA,GAAQ,CAAC,CAAC,CAAA;AAAA,aAE/D;AAAA,UAEJ;AAEA,UAAA,MAAM,WAAW,IAAA,KAAS,IAAA;AAC1B,UAAA,uBACEA,cAAA;AAAA,YAACC,wBAAA;AAAA,YAAA;AAAA,cACC,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,cAClC,cACE,QAAA,GAAW,CAAA,KAAA,EAAQ,IAAI,CAAA,cAAA,CAAA,GAAmB,cAAc,IAAI,CAAA,CAAA;AAAA,cAE9D,SAAA,EAAW,QAAA,GAAW,MAAA,CAAO,UAAA,GAAa,MAAA;AAAA,cAC1C,UAAA;AAAA,cAEA,KAAA,EAAO,OAAO,IAAI,CAAA;AAAA,cAClB,OAAA,EAAS,QAAA,GAAW,MAAA,GAAY,MAAM,iBAAiB,IAAI,CAAA;AAAA,cAC3D,IAAA;AAAA,cACA,OAAA,EAAQ;AAAA,aAAA;AAAA,YAJH;AAAA,WAKP;AAAA,QAEJ,CAAC,CAAA;AAAA,MACH;AAAA,MAEA,KAAK,OAAA;AACH,QAAA,OAAO,UAAA,IAAc,IAAA,GAAO,IAAA,mBAC1BD,cAAA,CAAC,MAAA,EAAA,EAAK,aAAU,QAAA,EAAS,SAAA,EAAW,MAAA,CAAO,QAAA,EACzC,QAAA,kBAAAA,cAAA,CAACE,sBAAA,EAAA,EAAK,OAAM,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,IAAA,EAAK,MAAA,EAClC,QAAA,EAAA,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,QAAQ,CAAA,IAAA,EAAO,UAAU,CAAA,CAAA,EAC7C,CAAA,EACF,CAAA;AAAA,MAGJ,KAAK,SAAA;AACH,QAAA,OAAO,kBAAA,IAAsB,OAAO,IAAA,mBAClCF,cAAA,CAAC,UAAK,WAAA,EAAU,QAAA,EAAS,SAAA,EAAW,MAAA,CAAO,QAAA,EACzC,QAAA,kBAAAA,cAAA,CAACE,0BAAK,KAAA,EAAM,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,IAAA,EAAK,MAAA,EAClC,kBAAQ,IAAI,CAAA,IAAA,EAAO,kBAAkB,CAAA,CAAA,EACxC,CAAA,EACF,CAAA;AAAA,MAGJ,KAAK,MAAA;AAAA,MACL;AACE,QAAA,OAAO,IAAA;AAAA;AACX,EACF,CAAA;AAEA,EAAA,uBACEF,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAWG,oBAAA,CAAG,MAAA,CAAO,IAAA,EAAM,SAAS,CAAA;AAAA,MACpC,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA,kBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,QAAA,EACrB,QAAA,EAAA;AAAA,wBAAAJ,cAAA;AAAA,UAACC,wBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAMI,uBAAA;AAAA,YACN,UAAA,EAAY,cAAc,CAAC,WAAA;AAAA,YAC3B,UAAA,EAAU,IAAA;AAAA,YACV,KAAA,EAAM,qBAAA;AAAA,YACN,OAAA,EAAS,MAAM,gBAAA,CAAiB,IAAA,GAAO,CAAC,CAAA;AAAA,YACxC,IAAA;AAAA,YACA,OAAA,EAAQ;AAAA;AAAA,SACV;AAAA,QACC,eAAA,EAAgB;AAAA,wBACjBL,cAAA;AAAA,UAACC,wBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAMK,wBAAA;AAAA,YACN,UAAA,EAAY,cAAc,CAAC,OAAA;AAAA,YAC3B,UAAA,EAAU,IAAA;AAAA,YACV,KAAA,EAAM,iBAAA;AAAA,YACN,OAAA,EAAS,MAAM,gBAAA,CAAiB,IAAA,GAAO,CAAC,CAAA;AAAA,YACxC,IAAA;AAAA,YACA,OAAA,EAAQ;AAAA;AAAA;AACV,OAAA,EACF;AAAA;AAAA,GACF;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-UYXQBM2B.cjs","sourcesContent":["import {ChevronLeft, ChevronRight} from 'lucide-react';\nimport type {CSSProperties, Ref} from 'react';\nimport {useMemo} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport type {ButtonSize} from '../Button';\nimport {Button} from '../Button';\nimport {Text} from '../Text';\n\nexport type PaginationVariant = 'pages' | 'count' | 'compact' | 'none';\n\ninterface PaginationBaseProps {\n /**\n * Additional CSS class names applied to the navigation root.\n */\n className?: string;\n /**\n * Test ID applied to the navigation root.\n */\n 'data-testid'?: string;\n /**\n * Whether another page exists when the total page count is unknown.\n */\n hasMore?: boolean;\n /**\n * Whether the pagination controls are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Accessible label for the navigation landmark.\n * @default 'Pagination'\n */\n label?: string;\n /**\n * Called when the page changes.\n */\n onChange: (page: number) => void;\n /**\n * Current page number, starting at 1.\n */\n page: number;\n /**\n * Number of items per page.\n * @default 10\n */\n pageSize?: number;\n /**\n * Ref forwarded to the navigation root.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Number of page buttons to show on each side of the current page.\n * @default 1\n */\n siblingCount?: number;\n /**\n * Control size.\n * @default 'md'\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the navigation root.\n */\n style?: CSSProperties;\n /**\n * Display variant.\n * @default 'pages'\n */\n variant?: PaginationVariant;\n}\n\nexport type PaginationProps = PaginationBaseProps &\n (\n | {totalItems: number; totalPages?: never}\n | {totalItems?: never; totalPages: number}\n | {totalItems?: never; totalPages?: never}\n );\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '4',\n }),\n controls: css({\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n }),\n ellipsis: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n userSelect: 'none',\n }),\n infoText: css({\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n }),\n activePage: css({\n bg: 'bg.hover',\n fontWeight: 'medium',\n }),\n} as const;\n\nfunction generatePageRange(\n currentPage: number,\n totalPages: number,\n siblingCount: number,\n): (number | '...')[] {\n const totalSlots = 5 + 2 * siblingCount;\n\n if (totalPages <= totalSlots) {\n return Array.from({length: totalPages}, (_, index) => index + 1);\n }\n\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);\n const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages);\n const showLeftEllipsis = leftSiblingIndex > 2;\n const showRightEllipsis = rightSiblingIndex < totalPages - 1;\n\n if (!showLeftEllipsis && showRightEllipsis) {\n const leftRange = 3 + 2 * siblingCount;\n return [\n ...Array.from({length: leftRange}, (_, index) => index + 1),\n '...',\n totalPages,\n ];\n }\n\n if (showLeftEllipsis && !showRightEllipsis) {\n const rightRange = 3 + 2 * siblingCount;\n return [\n 1,\n '...',\n ...Array.from(\n {length: rightRange},\n (_, index) => totalPages - rightRange + index + 1,\n ),\n ];\n }\n\n return [\n 1,\n '...',\n ...Array.from(\n {length: rightSiblingIndex - leftSiblingIndex + 1},\n (_, index) => leftSiblingIndex + index,\n ),\n '...',\n totalPages,\n ];\n}\n\n/**\n * Page navigation controls with multiple display variants\n * (numbered pages, count summary, compact label, or none).\n */\nexport function Pagination({\n className,\n 'data-testid': dataTestId,\n hasMore,\n isDisabled = false,\n label = 'Pagination',\n onChange,\n page: pageFromProps,\n pageSize: pageSizeFromProps = 10,\n ref,\n siblingCount: siblingCountFromProps = 1,\n size = 'md',\n style,\n totalItems,\n totalPages: totalPagesProp,\n variant = 'pages',\n}: PaginationProps): React.JSX.Element | null {\n const siblingCount = Math.max(0, siblingCountFromProps);\n const pageSize = Math.max(1, pageSizeFromProps);\n const computedTotalPages =\n totalPagesProp ??\n (totalItems != null ? Math.ceil(totalItems / pageSize) : undefined);\n const page = Math.max(\n 1,\n computedTotalPages != null\n ? Math.min(pageFromProps, computedTotalPages)\n : pageFromProps,\n );\n const hasPrevious = page > 1;\n const hasNext =\n computedTotalPages != null ? page < computedTotalPages : (hasMore ?? false);\n\n const pageRange = useMemo(\n () =>\n computedTotalPages != null\n ? generatePageRange(page, computedTotalPages, siblingCount)\n : [],\n [page, computedTotalPages, siblingCount],\n );\n\n if (totalItems != null && totalItems <= 0) {\n return null;\n }\n\n if (computedTotalPages != null && computedTotalPages <= 0) {\n return null;\n }\n\n const handlePageChange = (newPage: number) => {\n if (isDisabled) {\n return;\n }\n\n onChange(newPage);\n };\n\n const rangeStart = (page - 1) * pageSize + 1;\n const rangeEnd =\n totalItems == null\n ? page * pageSize\n : Math.min(page * pageSize, totalItems);\n\n const renderIndicator = () => {\n switch (variant) {\n case 'pages': {\n if (computedTotalPages == null) {\n return null;\n }\n\n return pageRange.map((item, index) => {\n if (item === '...') {\n return (\n <span\n aria-hidden=\"true\"\n className={styles.ellipsis}\n key={`ellipsis-${pageRange[index - 1]}-${pageRange[index + 1]}`}>\n ...\n </span>\n );\n }\n\n const isActive = item === page;\n return (\n <Button\n aria-current={isActive ? 'page' : undefined}\n aria-label={\n isActive ? `Page ${item}, current page` : `Go to page ${item}`\n }\n className={isActive ? styles.activePage : undefined}\n isDisabled={isDisabled}\n key={item}\n label={String(item)}\n onClick={isActive ? undefined : () => handlePageChange(item)}\n size={size}\n variant=\"ghost\"\n />\n );\n });\n }\n\n case 'count':\n return totalItems == null ? null : (\n <span aria-live=\"polite\" className={styles.infoText}>\n <Text color=\"primary\" size=\"sm\" type=\"body\">\n {`${rangeStart}-${rangeEnd} of ${totalItems}`}\n </Text>\n </span>\n );\n\n case 'compact':\n return computedTotalPages == null ? null : (\n <span aria-live=\"polite\" className={styles.infoText}>\n <Text color=\"primary\" size=\"sm\" type=\"body\">\n {`Page ${page} of ${computedTotalPages}`}\n </Text>\n </span>\n );\n\n case 'none':\n default:\n return null;\n }\n };\n\n return (\n <nav\n aria-label={label}\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <div className={styles.controls}>\n <Button\n icon={ChevronLeft}\n isDisabled={isDisabled || !hasPrevious}\n isIconOnly\n label=\"Go to previous page\"\n onClick={() => handlePageChange(page - 1)}\n size={size}\n variant=\"ghost\"\n />\n {renderIndicator()}\n <Button\n icon={ChevronRight}\n isDisabled={isDisabled || !hasNext}\n isIconOnly\n label=\"Go to next page\"\n onClick={() => handlePageChange(page + 1)}\n size={size}\n variant=\"ghost\"\n />\n </div>\n </nav>\n );\n}\n\nPagination.displayName = 'Pagination';\n"]}
1
+ {"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":["css","useMemo","jsx","Button","Text","cx","jsxs","ChevronLeft","ChevronRight"],"mappings":"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","file":"chunk-3IBY374V.cjs","sourcesContent":["import {ChevronLeft, ChevronRight} from 'lucide-react';\nimport type {CSSProperties, Ref} from 'react';\nimport {useMemo} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport type {ButtonSize} from '../Button';\nimport {Button} from '../Button';\nimport {Text} from '../Text';\n\nexport type PaginationVariant = 'pages' | 'count' | 'compact' | 'none';\n\ninterface PaginationBaseProps {\n /**\n * Additional CSS class names applied to the navigation root.\n */\n className?: string;\n /**\n * Test ID applied to the navigation root.\n */\n 'data-testid'?: string;\n /**\n * Whether another page exists when the total page count is unknown.\n */\n hasMore?: boolean;\n /**\n * Whether the pagination controls are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Accessible label for the navigation landmark.\n * @default 'Pagination'\n */\n label?: string;\n /**\n * Called when the page changes.\n */\n onChange: (page: number) => void;\n /**\n * Current page number, starting at 1.\n */\n page: number;\n /**\n * Number of items per page.\n * @default 10\n */\n pageSize?: number;\n /**\n * Ref forwarded to the navigation root.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Number of page buttons to show on each side of the current page.\n * @default 1\n */\n siblingCount?: number;\n /**\n * Control size.\n * @default 'md'\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the navigation root.\n */\n style?: CSSProperties;\n /**\n * Display variant.\n * @default 'pages'\n */\n variant?: PaginationVariant;\n}\n\nexport type PaginationProps = PaginationBaseProps &\n (\n | {totalItems: number; totalPages?: never}\n | {totalItems?: never; totalPages: number}\n | {totalItems?: never; totalPages?: never}\n );\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '4',\n }),\n controls: css({\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n }),\n ellipsis: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n userSelect: 'none',\n }),\n infoText: css({\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n }),\n activePage: css({\n bg: 'bg.hover',\n fontWeight: 'medium',\n }),\n} as const;\n\nfunction generatePageRange(\n currentPage: number,\n totalPages: number,\n siblingCount: number,\n): (number | '...')[] {\n const totalSlots = 5 + 2 * siblingCount;\n\n if (totalPages <= totalSlots) {\n return Array.from({length: totalPages}, (_, index) => index + 1);\n }\n\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);\n const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages);\n const showLeftEllipsis = leftSiblingIndex > 2;\n const showRightEllipsis = rightSiblingIndex < totalPages - 1;\n\n if (!showLeftEllipsis && showRightEllipsis) {\n const leftRange = 3 + 2 * siblingCount;\n return [\n ...Array.from({length: leftRange}, (_, index) => index + 1),\n '...',\n totalPages,\n ];\n }\n\n if (showLeftEllipsis && !showRightEllipsis) {\n const rightRange = 3 + 2 * siblingCount;\n return [\n 1,\n '...',\n ...Array.from(\n {length: rightRange},\n (_, index) => totalPages - rightRange + index + 1,\n ),\n ];\n }\n\n return [\n 1,\n '...',\n ...Array.from(\n {length: rightSiblingIndex - leftSiblingIndex + 1},\n (_, index) => leftSiblingIndex + index,\n ),\n '...',\n totalPages,\n ];\n}\n\n/**\n * Page navigation controls with multiple display variants\n * (numbered pages, count summary, compact label, or none).\n */\nexport function Pagination({\n className,\n 'data-testid': dataTestId,\n hasMore,\n isDisabled = false,\n label = 'Pagination',\n onChange,\n page: pageFromProps,\n pageSize: pageSizeFromProps = 10,\n ref,\n siblingCount: siblingCountFromProps = 1,\n size = 'md',\n style,\n totalItems,\n totalPages: totalPagesProp,\n variant = 'pages',\n}: PaginationProps): React.JSX.Element | null {\n const siblingCount = Math.max(0, siblingCountFromProps);\n const pageSize = Math.max(1, pageSizeFromProps);\n const computedTotalPages =\n totalPagesProp ??\n (totalItems != null ? Math.ceil(totalItems / pageSize) : undefined);\n const page = Math.max(\n 1,\n computedTotalPages != null\n ? Math.min(pageFromProps, computedTotalPages)\n : pageFromProps,\n );\n const hasPrevious = page > 1;\n const hasNext =\n computedTotalPages != null ? page < computedTotalPages : (hasMore ?? false);\n\n const pageRange = useMemo(\n () =>\n computedTotalPages != null\n ? generatePageRange(page, computedTotalPages, siblingCount)\n : [],\n [page, computedTotalPages, siblingCount],\n );\n\n if (totalItems != null && totalItems <= 0) {\n return null;\n }\n\n if (computedTotalPages != null && computedTotalPages <= 0) {\n return null;\n }\n\n const handlePageChange = (newPage: number) => {\n if (isDisabled) {\n return;\n }\n\n onChange(newPage);\n };\n\n const rangeStart = (page - 1) * pageSize + 1;\n const rangeEnd =\n totalItems == null\n ? page * pageSize\n : Math.min(page * pageSize, totalItems);\n\n const renderIndicator = () => {\n switch (variant) {\n case 'pages': {\n if (computedTotalPages == null) {\n return null;\n }\n\n return pageRange.map((item, index) => {\n if (item === '...') {\n return (\n <span\n aria-hidden=\"true\"\n className={styles.ellipsis}\n key={`ellipsis-${pageRange[index - 1]}-${pageRange[index + 1]}`}>\n ...\n </span>\n );\n }\n\n const isActive = item === page;\n return (\n <Button\n aria-current={isActive ? 'page' : undefined}\n aria-label={\n isActive ? `Page ${item}, current page` : `Go to page ${item}`\n }\n className={isActive ? styles.activePage : undefined}\n isDisabled={isDisabled}\n key={item}\n label={String(item)}\n onClick={isActive ? undefined : () => handlePageChange(item)}\n size={size}\n variant=\"ghost\"\n />\n );\n });\n }\n\n case 'count':\n return totalItems == null ? null : (\n <span aria-live=\"polite\" className={styles.infoText}>\n <Text color=\"primary\" size=\"sm\" type=\"body\">\n {`${rangeStart}-${rangeEnd} of ${totalItems}`}\n </Text>\n </span>\n );\n\n case 'compact':\n return computedTotalPages == null ? null : (\n <span aria-live=\"polite\" className={styles.infoText}>\n <Text color=\"primary\" size=\"sm\" type=\"body\">\n {`Page ${page} of ${computedTotalPages}`}\n </Text>\n </span>\n );\n\n case 'none':\n default:\n return null;\n }\n };\n\n return (\n <nav\n aria-label={label}\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <div className={styles.controls}>\n <Button\n icon={ChevronLeft}\n isDisabled={isDisabled || !hasPrevious}\n isIconOnly\n label=\"Go to previous page\"\n onClick={() => handlePageChange(page - 1)}\n size={size}\n variant=\"ghost\"\n />\n {renderIndicator()}\n <Button\n icon={ChevronRight}\n isDisabled={isDisabled || !hasNext}\n isIconOnly\n label=\"Go to next page\"\n onClick={() => handlePageChange(page + 1)}\n size={size}\n variant=\"ghost\"\n />\n </div>\n </nav>\n );\n}\n\nPagination.displayName = 'Pagination';\n"]}
@@ -1,6 +1,6 @@
1
- import { TextInput } from './chunk-VSEKSDTK.js';
2
- import { getNecessity } from './chunk-K6CQ45C2.js';
3
- import { Button } from './chunk-HLN3JQYD.js';
1
+ import { TextInput } from './chunk-ZVH3BLYO.js';
2
+ import { getNecessity } from './chunk-ASJ5CBCR.js';
3
+ import { Button } from './chunk-RVENUWRD.js';
4
4
  import { EyeOff, Eye } from 'lucide-react';
5
5
  import { useState, useCallback } from 'react';
6
6
  import { jsx } from 'react/jsx-runtime';
@@ -46,5 +46,5 @@ function PasswordInput({
46
46
  PasswordInput.displayName = "PasswordInput";
47
47
 
48
48
  export { PasswordInput };
49
- //# sourceMappingURL=chunk-KIGRE6NA.js.map
50
- //# sourceMappingURL=chunk-KIGRE6NA.js.map
49
+ //# sourceMappingURL=chunk-3L6KAW7G.js.map
50
+ //# sourceMappingURL=chunk-3L6KAW7G.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/PasswordInput/PasswordInput.tsx"],"names":[],"mappings":";;;;;;;AAmBO,SAAS,aAAA,CAAc;AAAA,EAC5B,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA,GAAa,KAAA;AAAA,EACb,UAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0C;AACxC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,KAAK,CAAA;AAChD,EAAA,MAAM,gBAAA,GAAmB,YAAY,MAAM,YAAA,CAAa,OAAK,CAAC,CAAC,CAAA,EAAG,EAAE,CAAA;AAEpE,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACH,GAAG,YAAA,CAAa,UAAA,EAAY,UAAU,CAAA;AAAA,MACvC,SAAA;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,UAAA,kBACE,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,YAAY,MAAA,GAAS,GAAA;AAAA,UAC3B,UAAA;AAAA,UACA,UAAA,EAAU,IAAA;AAAA,UACV,KAAA,EAAO,YAAY,eAAA,GAAkB,eAAA;AAAA,UACrC,OAAA,EAAS,gBAAA;AAAA,UACT,IAAA,EAAK,IAAA;AAAA,UACL,OAAA,EAAQ;AAAA;AAAA,OACV;AAAA,MAEF,UAAA;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA,EAAM,YAAY,MAAA,GAAS;AAAA;AAAA,GAC7B;AAEJ;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA","file":"chunk-KIGRE6NA.js","sourcesContent":["import {Eye, EyeOff} from 'lucide-react';\nimport {useCallback, useState, type Ref} from 'react';\nimport {Button} from '../Button';\nimport {getNecessity} from '../Field';\nimport {TextInput, type TextInputProps} from '../TextInput';\n\nexport type PasswordInputProps = Omit<\n TextInputProps,\n 'endContent' | 'hasClear' | 'startIcon' | 'type'\n> & {\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n};\n\n/**\n * Password input with a toggle to show or hide the entered value.\n */\nexport function PasswordInput({\n className,\n 'data-testid': dataTestId,\n isDisabled = false,\n isOptional,\n isRequired,\n ref,\n style,\n ...props\n}: PasswordInputProps): React.JSX.Element {\n const [isVisible, setIsVisible] = useState(false);\n const toggleVisibility = useCallback(() => setIsVisible(v => !v), []);\n\n return (\n <TextInput\n {...props}\n {...getNecessity(isOptional, isRequired)}\n className={className}\n data-testid={dataTestId}\n endContent={\n <Button\n icon={isVisible ? EyeOff : Eye}\n isDisabled={isDisabled}\n isIconOnly\n label={isVisible ? 'Hide password' : 'Show password'}\n onClick={toggleVisibility}\n size=\"sm\"\n variant=\"ghost\"\n />\n }\n isDisabled={isDisabled}\n ref={ref}\n style={style}\n type={isVisible ? 'text' : 'password'}\n />\n );\n}\n\nPasswordInput.displayName = 'PasswordInput';\n"]}
1
+ {"version":3,"sources":["../src/components/PasswordInput/PasswordInput.tsx"],"names":[],"mappings":";;;;;;;AAmBO,SAAS,aAAA,CAAc;AAAA,EAC5B,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA,GAAa,KAAA;AAAA,EACb,UAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0C;AACxC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,KAAK,CAAA;AAChD,EAAA,MAAM,gBAAA,GAAmB,YAAY,MAAM,YAAA,CAAa,OAAK,CAAC,CAAC,CAAA,EAAG,EAAE,CAAA;AAEpE,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACH,GAAG,YAAA,CAAa,UAAA,EAAY,UAAU,CAAA;AAAA,MACvC,SAAA;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,UAAA,kBACE,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,YAAY,MAAA,GAAS,GAAA;AAAA,UAC3B,UAAA;AAAA,UACA,UAAA,EAAU,IAAA;AAAA,UACV,KAAA,EAAO,YAAY,eAAA,GAAkB,eAAA;AAAA,UACrC,OAAA,EAAS,gBAAA;AAAA,UACT,IAAA,EAAK,IAAA;AAAA,UACL,OAAA,EAAQ;AAAA;AAAA,OACV;AAAA,MAEF,UAAA;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA,EAAM,YAAY,MAAA,GAAS;AAAA;AAAA,GAC7B;AAEJ;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA","file":"chunk-3L6KAW7G.js","sourcesContent":["import {Eye, EyeOff} from 'lucide-react';\nimport {useCallback, useState, type Ref} from 'react';\nimport {Button} from '../Button';\nimport {getNecessity} from '../Field';\nimport {TextInput, type TextInputProps} from '../TextInput';\n\nexport type PasswordInputProps = Omit<\n TextInputProps,\n 'endContent' | 'hasClear' | 'startIcon' | 'type'\n> & {\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n};\n\n/**\n * Password input with a toggle to show or hide the entered value.\n */\nexport function PasswordInput({\n className,\n 'data-testid': dataTestId,\n isDisabled = false,\n isOptional,\n isRequired,\n ref,\n style,\n ...props\n}: PasswordInputProps): React.JSX.Element {\n const [isVisible, setIsVisible] = useState(false);\n const toggleVisibility = useCallback(() => setIsVisible(v => !v), []);\n\n return (\n <TextInput\n {...props}\n {...getNecessity(isOptional, isRequired)}\n className={className}\n data-testid={dataTestId}\n endContent={\n <Button\n icon={isVisible ? EyeOff : Eye}\n isDisabled={isDisabled}\n isIconOnly\n label={isVisible ? 'Hide password' : 'Show password'}\n onClick={toggleVisibility}\n size=\"sm\"\n variant=\"ghost\"\n />\n }\n isDisabled={isDisabled}\n ref={ref}\n style={style}\n type={isVisible ? 'text' : 'password'}\n />\n );\n}\n\nPasswordInput.displayName = 'PasswordInput';\n"]}
@@ -1,6 +1,6 @@
1
1
  import { VisuallyHidden } from './chunk-EXYBQVZT.js';
2
- import { sva } from './chunk-EHCAF6D3.js';
3
2
  import { Icon } from './chunk-7T3SWOY7.js';
3
+ import { sva } from './chunk-EHCAF6D3.js';
4
4
  import { cx } from './chunk-PPNETWIP.js';
5
5
  import { Star } from 'lucide-react';
6
6
  import { useId, useState } from 'react';
@@ -195,5 +195,5 @@ function Rating({
195
195
  Rating.displayName = "Rating";
196
196
 
197
197
  export { Rating };
198
- //# sourceMappingURL=chunk-ZH3GKYUZ.js.map
199
- //# sourceMappingURL=chunk-ZH3GKYUZ.js.map
198
+ //# sourceMappingURL=chunk-3TXVDCF2.js.map
199
+ //# sourceMappingURL=chunk-3TXVDCF2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Rating/Rating.recipe.ts","../src/components/Rating/Rating.tsx"],"names":[],"mappings":"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","file":"chunk-ZH3GKYUZ.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const ratingRecipe = sva({\n slots: ['root', 'star', 'input'],\n base: {\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5',\n },\n star: {\n display: 'inline-flex',\n alignItems: 'center',\n cursor: 'pointer',\n p: 0,\n m: 0,\n borderWidth: 0,\n bg: 'transparent',\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n borderRadius: 'sm',\n },\n },\n input: {\n position: 'absolute',\n w: '1px',\n h: '1px',\n p: 0,\n m: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n },\n },\n variants: {\n isDisabled: {\n true: {\n root: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n star: {\n cursor: 'not-allowed',\n },\n },\n },\n isReadOnly: {\n true: {\n star: {\n cursor: 'default',\n },\n },\n },\n },\n});\n\nexport type RatingVariants = RecipeVariantProps<typeof ratingRecipe>;\n","import {Star} from 'lucide-react';\nimport {\n useState,\n useId,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {VisuallyHidden} from '../../internal/VisuallyHidden';\nimport {cx} from '../../internal/cx';\nimport {Icon, type IconColor, type IconSize} from '../Icon';\nimport {ratingRecipe} from './Rating.recipe';\n\nexport interface RatingProps {\n /**\n * Additional CSS class names applied to the rating root.\n */\n className?: string;\n /**\n * Number of stars to display.\n * @default 5\n */\n count?: number;\n /**\n * Test ID applied to the rating root.\n */\n 'data-testid'?: string;\n /**\n * Color of unfilled stars.\n * @default 'disabled'\n */\n emptyColor?: IconColor;\n /**\n * Color of filled stars.\n * @default 'yellow'\n */\n filledColor?: IconColor;\n /**\n * Whether the rating is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the rating is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n /**\n * Accessible label for the rating group.\n * @default 'Rating'\n */\n label?: string;\n /**\n * Called when the selected rating changes.\n */\n onChange?: (value: number) => void;\n /**\n * Ref forwarded to the rating root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the star icons.\n * @default 'md'\n */\n size?: IconSize;\n /**\n * Inline styles applied to the rating root.\n */\n style?: CSSProperties;\n /**\n * Current rating value.\n */\n value: number;\n}\n\nfunction StarIcon({\n color,\n isFilled,\n size,\n}: {\n color: IconColor;\n isFilled: boolean;\n size: IconSize;\n}): ReactNode {\n return (\n <Icon\n color={color}\n fill={isFilled ? 'currentColor' : 'none'}\n icon={Star}\n size={size}\n />\n );\n}\n\n/**\n * Star-based rating control supporting read-only and interactive modes.\n */\nexport function Rating({\n value: valueFromProps,\n onChange,\n count = 5,\n emptyColor = 'disabled',\n filledColor = 'yellow',\n size = 'md',\n isReadOnly = false,\n isDisabled = false,\n label = 'Rating',\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: RatingProps): React.JSX.Element {\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(count) || count < 1) {\n throw new Error(\n `Rating: count must be a positive integer, received ${count}.`,\n );\n }\n\n if (\n valueFromProps < 0 ||\n valueFromProps > count ||\n !Number.isInteger(valueFromProps)\n ) {\n throw new Error(\n `Rating: value must be an integer in [0, ${count}], received ${valueFromProps}.`,\n );\n }\n }\n\n const value = Math.max(0, Math.min(count, Math.round(valueFromProps)));\n const groupId = useId();\n const [hoverValue, setHoverValue] = useState<number | null>(null);\n const isInteractive = !isReadOnly && !isDisabled && onChange != null;\n const displayValue = isInteractive ? (hoverValue ?? value) : value;\n const classes = ratingRecipe({\n isDisabled: isDisabled || undefined,\n isReadOnly: isReadOnly || undefined,\n });\n\n if (!isInteractive) {\n return (\n <div\n aria-label={`${label}: ${value} out of ${count}`}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={style}>\n {Array.from({length: count}, (_, i) => (\n <span className={classes.star} key={i}>\n <StarIcon\n color={i < value ? filledColor : emptyColor}\n isFilled={i < value}\n size={size}\n />\n </span>\n ))}\n </div>\n );\n }\n\n return (\n // eslint-disable-next-line jsx-a11y-x/interactive-supports-focus -- focus is managed by the radio inputs inside\n <div\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onMouseLeave={() => setHoverValue(null)}\n ref={ref}\n role=\"radiogroup\"\n style={style}>\n {Array.from({length: count}, (_, i) => {\n const starValue = i + 1;\n return (\n // eslint-disable-next-line jsx-a11y-x/no-noninteractive-element-interactions -- label wraps its radio input\n <label\n className={classes.star}\n key={i}\n onMouseEnter={() => setHoverValue(starValue)}>\n <input\n checked={value === starValue}\n className={classes.input}\n name={groupId}\n onChange={() => onChange(starValue)}\n type=\"radio\"\n value={starValue}\n />\n <VisuallyHidden>\n {starValue} {starValue === 1 ? 'star' : 'stars'}\n </VisuallyHidden>\n <StarIcon\n color={i < displayValue ? filledColor : emptyColor}\n isFilled={i < displayValue}\n size={size}\n />\n </label>\n );\n })}\n </div>\n );\n}\n\nRating.displayName = 'Rating';\n"]}
1
+ {"version":3,"sources":["../src/components/Rating/Rating.recipe.ts","../src/components/Rating/Rating.tsx"],"names":[],"mappings":"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","file":"chunk-3TXVDCF2.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const ratingRecipe = sva({\n slots: ['root', 'star', 'input'],\n base: {\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5',\n },\n star: {\n display: 'inline-flex',\n alignItems: 'center',\n cursor: 'pointer',\n p: 0,\n m: 0,\n borderWidth: 0,\n bg: 'transparent',\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n borderRadius: 'sm',\n },\n },\n input: {\n position: 'absolute',\n w: '1px',\n h: '1px',\n p: 0,\n m: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n },\n },\n variants: {\n isDisabled: {\n true: {\n root: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n star: {\n cursor: 'not-allowed',\n },\n },\n },\n isReadOnly: {\n true: {\n star: {\n cursor: 'default',\n },\n },\n },\n },\n});\n\nexport type RatingVariants = RecipeVariantProps<typeof ratingRecipe>;\n","import {Star} from 'lucide-react';\nimport {\n useState,\n useId,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {VisuallyHidden} from '../../internal/VisuallyHidden';\nimport {cx} from '../../internal/cx';\nimport {Icon, type IconColor, type IconSize} from '../Icon';\nimport {ratingRecipe} from './Rating.recipe';\n\nexport interface RatingProps {\n /**\n * Additional CSS class names applied to the rating root.\n */\n className?: string;\n /**\n * Number of stars to display.\n * @default 5\n */\n count?: number;\n /**\n * Test ID applied to the rating root.\n */\n 'data-testid'?: string;\n /**\n * Color of unfilled stars.\n * @default 'disabled'\n */\n emptyColor?: IconColor;\n /**\n * Color of filled stars.\n * @default 'yellow'\n */\n filledColor?: IconColor;\n /**\n * Whether the rating is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the rating is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n /**\n * Accessible label for the rating group.\n * @default 'Rating'\n */\n label?: string;\n /**\n * Called when the selected rating changes.\n */\n onChange?: (value: number) => void;\n /**\n * Ref forwarded to the rating root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the star icons.\n * @default 'md'\n */\n size?: IconSize;\n /**\n * Inline styles applied to the rating root.\n */\n style?: CSSProperties;\n /**\n * Current rating value.\n */\n value: number;\n}\n\nfunction StarIcon({\n color,\n isFilled,\n size,\n}: {\n color: IconColor;\n isFilled: boolean;\n size: IconSize;\n}): ReactNode {\n return (\n <Icon\n color={color}\n fill={isFilled ? 'currentColor' : 'none'}\n icon={Star}\n size={size}\n />\n );\n}\n\n/**\n * Star-based rating control supporting read-only and interactive modes.\n */\nexport function Rating({\n value: valueFromProps,\n onChange,\n count = 5,\n emptyColor = 'disabled',\n filledColor = 'yellow',\n size = 'md',\n isReadOnly = false,\n isDisabled = false,\n label = 'Rating',\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: RatingProps): React.JSX.Element {\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(count) || count < 1) {\n throw new Error(\n `Rating: count must be a positive integer, received ${count}.`,\n );\n }\n\n if (\n valueFromProps < 0 ||\n valueFromProps > count ||\n !Number.isInteger(valueFromProps)\n ) {\n throw new Error(\n `Rating: value must be an integer in [0, ${count}], received ${valueFromProps}.`,\n );\n }\n }\n\n const value = Math.max(0, Math.min(count, Math.round(valueFromProps)));\n const groupId = useId();\n const [hoverValue, setHoverValue] = useState<number | null>(null);\n const isInteractive = !isReadOnly && !isDisabled && onChange != null;\n const displayValue = isInteractive ? (hoverValue ?? value) : value;\n const classes = ratingRecipe({\n isDisabled: isDisabled || undefined,\n isReadOnly: isReadOnly || undefined,\n });\n\n if (!isInteractive) {\n return (\n <div\n aria-label={`${label}: ${value} out of ${count}`}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={style}>\n {Array.from({length: count}, (_, i) => (\n <span className={classes.star} key={i}>\n <StarIcon\n color={i < value ? filledColor : emptyColor}\n isFilled={i < value}\n size={size}\n />\n </span>\n ))}\n </div>\n );\n }\n\n return (\n // eslint-disable-next-line jsx-a11y-x/interactive-supports-focus -- focus is managed by the radio inputs inside\n <div\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onMouseLeave={() => setHoverValue(null)}\n ref={ref}\n role=\"radiogroup\"\n style={style}>\n {Array.from({length: count}, (_, i) => {\n const starValue = i + 1;\n return (\n // eslint-disable-next-line jsx-a11y-x/no-noninteractive-element-interactions -- label wraps its radio input\n <label\n className={classes.star}\n key={i}\n onMouseEnter={() => setHoverValue(starValue)}>\n <input\n checked={value === starValue}\n className={classes.input}\n name={groupId}\n onChange={() => onChange(starValue)}\n type=\"radio\"\n value={starValue}\n />\n <VisuallyHidden>\n {starValue} {starValue === 1 ? 'star' : 'stars'}\n </VisuallyHidden>\n <StarIcon\n color={i < displayValue ? filledColor : emptyColor}\n isFilled={i < displayValue}\n size={size}\n />\n </label>\n );\n })}\n </div>\n );\n}\n\nRating.displayName = 'Rating';\n"]}
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunk5QPM5LUS_cjs = require('./chunk-5QPM5LUS.cjs');
3
+ var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
4
4
  var chunk4TIAKZ4Q_cjs = require('./chunk-4TIAKZ4Q.cjs');
5
+ var chunk5QPM5LUS_cjs = require('./chunk-5QPM5LUS.cjs');
5
6
  var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
6
7
  var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
7
8
  var lucideReact = require('lucide-react');
@@ -177,7 +178,7 @@ function Avatar({
177
178
  },
178
179
  `${src}\0${fallbackSrc}`
179
180
  ) }),
180
- status != null ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.status, style: statusStyle, children: status }) : null
181
+ chunkQAO6QMNQ_cjs.isReactNode(status) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.status, style: statusStyle, children: status }) : null
181
182
  ]
182
183
  }
183
184
  ) });
@@ -272,9 +273,9 @@ function AvatarStatusDot({
272
273
  }) {
273
274
  const avatarSize = useAvatarSize();
274
275
  const { borderWidth, dotSize, iconSize } = resolveStatusDotSize(avatarSize);
275
- const hasVisibleIcon = icon != null && iconSize > 0;
276
+ const hasVisibleIcon = chunkQAO6QMNQ_cjs.isReactNode(icon) && iconSize > 0;
276
277
  if (process.env.NODE_ENV !== "production") {
277
- if (icon != null && iconSize === 0) {
278
+ if (chunkQAO6QMNQ_cjs.isReactNode(icon) && iconSize === 0) {
278
279
  console.warn(
279
280
  "AvatarStatusDot: `icon` is not visible at avatar sizes 36px or smaller. Use a larger avatar size or remove the `icon` prop."
280
281
  );
@@ -308,5 +309,5 @@ exports.AvatarGroupContext = AvatarGroupContext;
308
309
  exports.AvatarStatusDot = AvatarStatusDot;
309
310
  exports.resolveAvatarSize = resolveAvatarSize;
310
311
  exports.useAvatarGroup = useAvatarGroup;
311
- //# sourceMappingURL=chunk-P4A7GWQY.cjs.map
312
- //# sourceMappingURL=chunk-P4A7GWQY.cjs.map
312
+ //# sourceMappingURL=chunk-3XDUR3IG.cjs.map
313
+ //# sourceMappingURL=chunk-3XDUR3IG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/AvatarGroup/AvatarGroupContext.ts","../src/components/Avatar/Avatar.recipe.ts","../src/components/Avatar/AvatarSizeContext.ts","../src/components/Avatar/Avatar.tsx","../src/components/Avatar/AvatarStatusDot.tsx"],"names":["createContext","use","sva","useMemo","jsx","jsxs","cx","Icon","User","isReactNode","useState","css"],"mappings":"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","file":"chunk-3XDUR3IG.cjs","sourcesContent":["import {createContext, use} from 'react';\nimport type {AvatarSize} from '../Avatar';\n\nexport interface AvatarGroupContextValue {\n numericSize: number;\n overlap: number;\n size: AvatarSize;\n}\n\nexport const AvatarGroupContext = createContext<AvatarGroupContextValue | null>(\n null,\n);\nAvatarGroupContext.displayName = 'AvatarGroupContext';\n\nexport function useAvatarGroup(): AvatarGroupContextValue | null {\n return use(AvatarGroupContext);\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const avatarRecipe = sva({\n slots: ['root', 'content', 'image', 'fallback', 'status'],\n base: {\n root: {\n position: 'relative',\n display: 'inline-flex',\n flexShrink: 0,\n verticalAlign: 'middle',\n borderRadius: 'full',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n overflow: 'hidden',\n userSelect: 'none',\n bg: 'bg.subtle',\n color: 'fg.muted',\n },\n image: {\n w: '100%',\n h: '100%',\n objectFit: 'cover',\n },\n fallback: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '100%',\n h: '100%',\n bg: 'bg.subtle',\n color: 'fg.muted',\n fontFamily: 'body',\n fontWeight: 'medium',\n textTransform: 'uppercase',\n },\n status: {\n position: 'absolute',\n },\n },\n variants: {\n isGrouped: {\n true: {\n root: {\n borderRadius: 'full',\n borderWidth: 'emphasized',\n borderStyle: 'solid',\n borderColor: 'bg',\n bg: 'bg',\n boxSizing: 'content-box',\n '&:not(:first-child)': {\n marginInlineStart: 'var(--avatar-group-overlap)',\n },\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isGrouped: false,\n },\n});\n\nexport type AvatarVariants = RecipeVariantProps<typeof avatarRecipe>;\n","import {createContext, use} from 'react';\n\nconst DEFAULT_AVATAR_SIZE = 36;\n\nexport const AvatarSizeContext = createContext<number>(DEFAULT_AVATAR_SIZE);\nAvatarSizeContext.displayName = 'AvatarSizeContext';\n\nexport function useAvatarSize(): number {\n return use(AvatarSizeContext);\n}\n","import {User} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useMemo, useState} from 'react';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useAvatarGroup} from '../AvatarGroup/AvatarGroupContext';\nimport {Icon} from '../Icon';\nimport {avatarRecipe} from './Avatar.recipe';\nimport {AvatarSizeContext} from './AvatarSizeContext';\n\nconst CIRCLE_EDGE_OFFSET_RATIO = (1 - 1 / Math.SQRT2) / 2;\nconst INITIALS_FONT_SIZE_RATIO = 0.4;\n\nexport type AvatarNamedSize = 'tiny' | 'xsmall' | 'small' | 'medium' | 'large';\n\nexport type AvatarNumericSize =\n | 16\n | 20\n | 24\n | 32\n | 36\n | 40\n | 48\n | 60\n | 64\n | 72\n | 96\n | 128\n | 144\n | 180;\n\nexport type AvatarSize = AvatarNamedSize | AvatarNumericSize;\n\n/**\n * Resolve an Avatar size token to its pixel size.\n */\nexport function resolveAvatarSize(size: AvatarSize): number {\n if (typeof size === 'number') {\n return size;\n }\n\n switch (size) {\n case 'tiny':\n return 20;\n case 'xsmall':\n return 24;\n case 'small':\n return 36;\n case 'medium':\n return 48;\n case 'large':\n return 128;\n }\n}\n\n/**\n * Displays a user profile image, initials, or a fallback icon.\n */\nexport interface AvatarProps {\n /**\n * Accessible text for the avatar image. Defaults to `name`, then \"Avatar\".\n */\n alt?: string;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Image URL to use if `src` fails to load.\n */\n fallbackSrc?: string;\n /**\n * User name used as fallback accessible text and initials.\n */\n name?: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Avatar size. Named sizes map to the same pixel values as the XDS source.\n * Default is `small`.\n */\n size?: AvatarSize;\n /**\n * Primary image URL.\n */\n src?: string;\n /**\n * Corner content, usually an AvatarStatusDot.\n */\n status?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nfunction getInitials(name: string): string {\n const words = name.trim().split(/\\s+/).filter(Boolean);\n\n if (words.length === 0) {\n return '';\n }\n\n if (words.length === 1) {\n return words[0].charAt(0).toUpperCase();\n }\n\n return `${words[0].charAt(0)}${words[words.length - 1].charAt(\n 0,\n )}`.toUpperCase();\n}\n\nexport function Avatar({\n alt,\n className,\n 'data-testid': dataTestId,\n fallbackSrc,\n name,\n ref,\n size = 'small',\n src,\n style,\n status,\n}: AvatarProps): React.JSX.Element {\n const avatarGroup = useAvatarGroup();\n const resolvedSize = avatarGroup?.size ?? size;\n const numericSize = useMemo(\n () => resolveAvatarSize(resolvedSize),\n [resolvedSize],\n );\n const classes = avatarRecipe({isGrouped: avatarGroup != null});\n const initials = name != null ? getInitials(name) : '';\n const showInitials = initials !== '';\n const accessibleName = alt ?? (showInitials ? name : undefined) ?? 'Avatar';\n const contentStyle = {\n width: numericSize,\n height: numericSize,\n };\n const fallbackStyle = {\n fontSize: numericSize * INITIALS_FONT_SIZE_RATIO,\n };\n const statusStyle = {\n bottom: numericSize * CIRCLE_EDGE_OFFSET_RATIO,\n right: numericSize * CIRCLE_EDGE_OFFSET_RATIO,\n transform: 'translate(50%, 50%)',\n };\n\n return (\n <AvatarSizeContext value={numericSize}>\n <div\n aria-label={accessibleName}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={style}>\n <div className={classes.content} style={contentStyle}>\n <AvatarImage\n classes={classes}\n fallbackSrc={fallbackSrc}\n key={`${src}\\0${fallbackSrc}`}\n src={src}>\n {showInitials ? (\n <div className={classes.fallback} style={fallbackStyle}>\n {initials}\n </div>\n ) : (\n <div className={classes.fallback}>\n <Icon\n icon={User}\n size={\n numericSize < 48 ? 'sm' : numericSize < 96 ? 'md' : 'lg'\n }\n />\n </div>\n )}\n </AvatarImage>\n </div>\n {isReactNode(status) ? (\n <div className={classes.status} style={statusStyle}>\n {status}\n </div>\n ) : null}\n </div>\n </AvatarSizeContext>\n );\n}\n\nfunction AvatarImage({\n children,\n classes,\n fallbackSrc,\n src,\n}: {\n children: ReactNode;\n classes: {image?: string};\n fallbackSrc?: string;\n src?: string;\n}): React.JSX.Element {\n const [imageError, setImageError] = useState(false);\n const [fallbackError, setFallbackError] = useState(false);\n const showImage = src != null && src !== '' && !imageError;\n const showFallbackImage =\n !showImage && fallbackSrc != null && fallbackSrc !== '' && !fallbackError;\n\n if (showImage) {\n return (\n <img\n alt=\"\"\n className={classes.image}\n onError={() => setImageError(true)}\n src={src}\n />\n );\n }\n\n if (showFallbackImage) {\n return (\n <img\n alt=\"\"\n className={classes.image}\n onError={() => setFallbackError(true)}\n src={fallbackSrc}\n />\n );\n }\n\n return <>{children}</>;\n}\n\nAvatar.displayName = 'Avatar';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useAvatarSize} from './AvatarSizeContext';\n\nexport type AvatarStatusDotVariant = 'success' | 'neutral' | 'error';\n\n/**\n * Size-aware status indicator intended for Avatar's `status` prop.\n */\nexport interface AvatarStatusDotProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Optional icon rendered inside medium and large dots.\n */\n icon?: ReactNode;\n /**\n * Accessible label describing the status, such as \"Online\".\n */\n label: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Semantic dot color. Default is `success`.\n */\n variant?: AvatarStatusDotVariant;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n borderStyle: 'solid',\n borderColor: 'bg',\n }),\n success: css({\n bg: 'presence.success',\n }),\n neutral: css({\n bg: 'presence.neutral',\n }),\n error: css({\n bg: 'presence.error',\n }),\n icon: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'fg.onPrimary',\n lineHeight: 0,\n '& > svg': {\n w: '100%',\n h: '100%',\n },\n }),\n};\n\nconst variantClassName: Record<AvatarStatusDotVariant, string> = {\n success: styles.success,\n neutral: styles.neutral,\n error: styles.error,\n};\n\nfunction resolveStatusDotSize(avatarSize: number): {\n borderWidth: number;\n dotSize: number;\n iconSize: number;\n} {\n if (avatarSize <= 36) {\n return {borderWidth: 1, dotSize: 10, iconSize: 0};\n }\n\n if (avatarSize <= 72) {\n return {borderWidth: 2, dotSize: 20, iconSize: 12};\n }\n\n return {borderWidth: 4, dotSize: 32, iconSize: 18};\n}\n\n/**\n * Size-aware status indicator dot rendered in the corner of an Avatar.\n */\nexport function AvatarStatusDot({\n className,\n 'data-testid': dataTestId,\n icon,\n label,\n ref,\n style,\n variant = 'success',\n}: AvatarStatusDotProps): React.JSX.Element {\n const avatarSize = useAvatarSize();\n const {borderWidth, dotSize, iconSize} = resolveStatusDotSize(avatarSize);\n const hasVisibleIcon = isReactNode(icon) && iconSize > 0;\n\n if (process.env.NODE_ENV !== 'production') {\n if (isReactNode(icon) && iconSize === 0) {\n console.warn(\n 'AvatarStatusDot: `icon` is not visible at avatar sizes 36px or ' +\n 'smaller. Use a larger avatar size or remove the `icon` prop.',\n );\n }\n }\n\n return (\n <div\n aria-label={label}\n className={cx(styles.root, variantClassName[variant], className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={{width: dotSize, height: dotSize, borderWidth, ...style}}>\n {hasVisibleIcon ? (\n <span\n aria-hidden=\"true\"\n className={styles.icon}\n style={{width: iconSize, height: iconSize}}>\n {icon}\n </span>\n ) : null}\n </div>\n );\n}\n\nAvatarStatusDot.displayName = 'AvatarStatusDot';\n"]}