silver-ui 0.5.0 → 0.6.0

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 (480) hide show
  1. package/README.md +1 -65
  2. package/dist/{chunk-FNRYGCO3.js → chunk-2SN3KVWF.js} +4 -4
  3. package/dist/{chunk-FNRYGCO3.js.map → chunk-2SN3KVWF.js.map} +1 -1
  4. package/dist/{chunk-BSPWX2OZ.cjs → chunk-3IDT3PZC.cjs} +10 -10
  5. package/dist/{chunk-BSPWX2OZ.cjs.map → chunk-3IDT3PZC.cjs.map} +1 -1
  6. package/dist/chunk-3PEK2Q54.cjs +31 -0
  7. package/dist/chunk-3PEK2Q54.cjs.map +1 -0
  8. package/dist/{chunk-4SUQFPWH.js → chunk-45OSUS5A.js} +6 -6
  9. package/dist/{chunk-4SUQFPWH.js.map → chunk-45OSUS5A.js.map} +1 -1
  10. package/dist/{chunk-L7XJZJCM.js → chunk-4EUUZQAM.js} +5 -5
  11. package/dist/{chunk-L7XJZJCM.js.map → chunk-4EUUZQAM.js.map} +1 -1
  12. package/dist/{chunk-Q3HMGFGI.js → chunk-4JJFQZVY.js} +98 -77
  13. package/dist/chunk-4JJFQZVY.js.map +1 -0
  14. package/dist/chunk-5FQKELP6.js +28 -0
  15. package/dist/chunk-5FQKELP6.js.map +1 -0
  16. package/dist/{chunk-TTDNCN5G.cjs → chunk-5JROXZBG.cjs} +13 -39
  17. package/dist/chunk-5JROXZBG.cjs.map +1 -0
  18. package/dist/{chunk-OUZX7STE.cjs → chunk-5K3C3INR.cjs} +25 -53
  19. package/dist/chunk-5K3C3INR.cjs.map +1 -0
  20. package/dist/{chunk-AEYJ6PWC.js → chunk-5RFHYDQY.js} +16 -11
  21. package/dist/chunk-5RFHYDQY.js.map +1 -0
  22. package/dist/{chunk-PGTOVMP7.cjs → chunk-6FC5YF2O.cjs} +10 -10
  23. package/dist/{chunk-PGTOVMP7.cjs.map → chunk-6FC5YF2O.cjs.map} +1 -1
  24. package/dist/{chunk-6EYLEVC6.js → chunk-6I5QWA6A.js} +13 -6
  25. package/dist/chunk-6I5QWA6A.js.map +1 -0
  26. package/dist/{chunk-F7BFO3SD.cjs → chunk-6ZV7HGZT.cjs} +24 -8
  27. package/dist/chunk-6ZV7HGZT.cjs.map +1 -0
  28. package/dist/{chunk-2WTHSGDP.cjs → chunk-7EE6DCRP.cjs} +14 -14
  29. package/dist/{chunk-2WTHSGDP.cjs.map → chunk-7EE6DCRP.cjs.map} +1 -1
  30. package/dist/{chunk-HIH6MS5D.js → chunk-7TJ2O56S.js} +4 -4
  31. package/dist/{chunk-HIH6MS5D.js.map → chunk-7TJ2O56S.js.map} +1 -1
  32. package/dist/chunk-A2AC6WL5.cjs +4 -0
  33. package/dist/chunk-A2AC6WL5.cjs.map +1 -0
  34. package/dist/{chunk-BIJ6YDWJ.cjs → chunk-AFJEAYR4.cjs} +15 -8
  35. package/dist/chunk-AFJEAYR4.cjs.map +1 -0
  36. package/dist/chunk-AFXU6XIS.js +3 -0
  37. package/dist/chunk-AFXU6XIS.js.map +1 -0
  38. package/dist/{chunk-L5PJCLV6.js → chunk-AKAXQ4RL.js} +16 -25
  39. package/dist/chunk-AKAXQ4RL.js.map +1 -0
  40. package/dist/{chunk-OTQAREYU.js → chunk-ATK3F3MC.js} +4 -4
  41. package/dist/{chunk-OTQAREYU.js.map → chunk-ATK3F3MC.js.map} +1 -1
  42. package/dist/{chunk-2VL66QBX.js → chunk-B5QX6KGJ.js} +3 -3
  43. package/dist/{chunk-2VL66QBX.js.map → chunk-B5QX6KGJ.js.map} +1 -1
  44. package/dist/{chunk-TOQ4MGM5.js → chunk-BDFNEQR3.js} +6 -6
  45. package/dist/{chunk-TOQ4MGM5.js.map → chunk-BDFNEQR3.js.map} +1 -1
  46. package/dist/{chunk-UARQIMPS.js → chunk-BGLT7XH6.js} +5 -5
  47. package/dist/{chunk-UARQIMPS.js.map → chunk-BGLT7XH6.js.map} +1 -1
  48. package/dist/{chunk-2AWSJF22.js → chunk-BNGYGCT2.js} +8 -8
  49. package/dist/chunk-BNGYGCT2.js.map +1 -0
  50. package/dist/{chunk-TH537HOM.js → chunk-C6EWA3H2.js} +6 -6
  51. package/dist/{chunk-TH537HOM.js.map → chunk-C6EWA3H2.js.map} +1 -1
  52. package/dist/{chunk-2F5TDBRT.cjs → chunk-CABYRYVA.cjs} +8 -8
  53. package/dist/{chunk-2F5TDBRT.cjs.map → chunk-CABYRYVA.cjs.map} +1 -1
  54. package/dist/{chunk-7CTHD4G6.cjs → chunk-CNDUYO7I.cjs} +5 -5
  55. package/dist/{chunk-7CTHD4G6.cjs.map → chunk-CNDUYO7I.cjs.map} +1 -1
  56. package/dist/{chunk-3VJIUZAY.cjs → chunk-CVT7JW6C.cjs} +16 -25
  57. package/dist/chunk-CVT7JW6C.cjs.map +1 -0
  58. package/dist/{chunk-GSTINE4X.js → chunk-CZUMVOPH.js} +1771 -575
  59. package/dist/chunk-CZUMVOPH.js.map +1 -0
  60. package/dist/{chunk-MGJLBHPJ.js → chunk-DAO4UXR4.js} +4 -4
  61. package/dist/{chunk-MGJLBHPJ.js.map → chunk-DAO4UXR4.js.map} +1 -1
  62. package/dist/{chunk-HWD4HDQ5.cjs → chunk-DFEAB7Z3.cjs} +10 -10
  63. package/dist/{chunk-HWD4HDQ5.cjs.map → chunk-DFEAB7Z3.cjs.map} +1 -1
  64. package/dist/{chunk-GY2ZZR4Z.cjs → chunk-DK6USFZP.cjs} +18 -18
  65. package/dist/{chunk-GY2ZZR4Z.cjs.map → chunk-DK6USFZP.cjs.map} +1 -1
  66. package/dist/{chunk-WPMWHKJX.js → chunk-DPSAPA6B.js} +5 -5
  67. package/dist/{chunk-WPMWHKJX.js.map → chunk-DPSAPA6B.js.map} +1 -1
  68. package/dist/{chunk-AV7D3SXF.js → chunk-DWZR2AGT.js} +4 -4
  69. package/dist/{chunk-AV7D3SXF.js.map → chunk-DWZR2AGT.js.map} +1 -1
  70. package/dist/{chunk-2RZNX26F.cjs → chunk-DXUFDJHA.cjs} +12 -13
  71. package/dist/chunk-DXUFDJHA.cjs.map +1 -0
  72. package/dist/{chunk-67UUGI3M.cjs → chunk-DYMZ4DLN.cjs} +8 -8
  73. package/dist/{chunk-67UUGI3M.cjs.map → chunk-DYMZ4DLN.cjs.map} +1 -1
  74. package/dist/{chunk-JM4Q7ZQH.cjs → chunk-EEOUWM2F.cjs} +8 -8
  75. package/dist/chunk-EEOUWM2F.cjs.map +1 -0
  76. package/dist/{chunk-KC4EKXGF.js → chunk-EIJSWHG7.js} +9 -10
  77. package/dist/chunk-EIJSWHG7.js.map +1 -0
  78. package/dist/{chunk-FCUUGJTM.cjs → chunk-ENVDR66N.cjs} +132 -160
  79. package/dist/chunk-ENVDR66N.cjs.map +1 -0
  80. package/dist/{chunk-J2YKUHQM.js → chunk-ERVWZILR.js} +14 -23
  81. package/dist/chunk-ERVWZILR.js.map +1 -0
  82. package/dist/{chunk-IX26TMZD.cjs → chunk-EVCQCZMM.cjs} +5 -5
  83. package/dist/{chunk-IX26TMZD.cjs.map → chunk-EVCQCZMM.cjs.map} +1 -1
  84. package/dist/{chunk-E42WOTIC.js → chunk-FIOCTAXT.js} +3 -3
  85. package/dist/{chunk-E42WOTIC.js.map → chunk-FIOCTAXT.js.map} +1 -1
  86. package/dist/{chunk-LW3DJOF4.cjs → chunk-FLDTPAG4.cjs} +6 -6
  87. package/dist/{chunk-LW3DJOF4.cjs.map → chunk-FLDTPAG4.cjs.map} +1 -1
  88. package/dist/{chunk-XHJRAEGW.js → chunk-FQN22DO5.js} +5 -5
  89. package/dist/{chunk-XHJRAEGW.js.map → chunk-FQN22DO5.js.map} +1 -1
  90. package/dist/{chunk-XPGIWOJO.cjs → chunk-FWBYCTUB.cjs} +18 -18
  91. package/dist/chunk-FWBYCTUB.cjs.map +1 -0
  92. package/dist/{chunk-UXGHFKLA.js → chunk-G5PU2EL2.js} +4 -4
  93. package/dist/{chunk-UXGHFKLA.js.map → chunk-G5PU2EL2.js.map} +1 -1
  94. package/dist/{chunk-UXQSSRBQ.cjs → chunk-GJKRSQEA.cjs} +1781 -581
  95. package/dist/chunk-GJKRSQEA.cjs.map +1 -0
  96. package/dist/{chunk-JSAYTQTJ.cjs → chunk-GJZAGTPV.cjs} +7 -7
  97. package/dist/chunk-GJZAGTPV.cjs.map +1 -0
  98. package/dist/{chunk-BSI4BQEX.cjs → chunk-GU65FGY6.cjs} +4 -4
  99. package/dist/{chunk-BSI4BQEX.cjs.map → chunk-GU65FGY6.cjs.map} +1 -1
  100. package/dist/{chunk-W5F7PYT2.js → chunk-GUUCIG7U.js} +6 -6
  101. package/dist/{chunk-W5F7PYT2.js.map → chunk-GUUCIG7U.js.map} +1 -1
  102. package/dist/{chunk-XZZI3JYK.cjs → chunk-H5VMHDRD.cjs} +6 -6
  103. package/dist/{chunk-XZZI3JYK.cjs.map → chunk-H5VMHDRD.cjs.map} +1 -1
  104. package/dist/{chunk-ZPJW3PP7.cjs → chunk-H7VK36SZ.cjs} +16 -9
  105. package/dist/chunk-H7VK36SZ.cjs.map +1 -0
  106. package/dist/{chunk-2Y7ULSEU.js → chunk-HKGFMJFK.js} +17 -17
  107. package/dist/{chunk-2Y7ULSEU.js.map → chunk-HKGFMJFK.js.map} +1 -1
  108. package/dist/{chunk-THTVYP5V.js → chunk-HMJINNXZ.js} +21 -32
  109. package/dist/chunk-HMJINNXZ.js.map +1 -0
  110. package/dist/{chunk-VV72PGKH.cjs → chunk-HPOURAKV.cjs} +27 -27
  111. package/dist/chunk-HPOURAKV.cjs.map +1 -0
  112. package/dist/{chunk-I2NG2P5K.cjs → chunk-INQ34SVW.cjs} +5 -5
  113. package/dist/{chunk-I2NG2P5K.cjs.map → chunk-INQ34SVW.cjs.map} +1 -1
  114. package/dist/{chunk-D5OX6II7.cjs → chunk-IREOTHD3.cjs} +8 -8
  115. package/dist/chunk-IREOTHD3.cjs.map +1 -0
  116. package/dist/{chunk-GW6P4FJ4.cjs → chunk-ISWZQUVA.cjs} +25 -40
  117. package/dist/chunk-ISWZQUVA.cjs.map +1 -0
  118. package/dist/{chunk-J3X465QT.cjs → chunk-J4LJXCXB.cjs} +9 -9
  119. package/dist/{chunk-J3X465QT.cjs.map → chunk-J4LJXCXB.cjs.map} +1 -1
  120. package/dist/{chunk-PBQMHXVO.js → chunk-JC66FRQX.js} +3 -3
  121. package/dist/{chunk-PBQMHXVO.js.map → chunk-JC66FRQX.js.map} +1 -1
  122. package/dist/{chunk-S5CMLG2E.js → chunk-JHMUMJF3.js} +9 -5
  123. package/dist/chunk-JHMUMJF3.js.map +1 -0
  124. package/dist/{chunk-CUHJDV6K.js → chunk-JR353MN5.js} +6 -6
  125. package/dist/{chunk-CUHJDV6K.js.map → chunk-JR353MN5.js.map} +1 -1
  126. package/dist/{chunk-JS6MRT6M.js → chunk-K2V3IOAX.js} +4 -4
  127. package/dist/{chunk-JS6MRT6M.js.map → chunk-K2V3IOAX.js.map} +1 -1
  128. package/dist/{chunk-VH3G4IUX.js → chunk-K2WT7A64.js} +12 -38
  129. package/dist/chunk-K2WT7A64.js.map +1 -0
  130. package/dist/{chunk-OERNLR2P.js → chunk-KCI4I42U.js} +8 -8
  131. package/dist/{chunk-OERNLR2P.js.map → chunk-KCI4I42U.js.map} +1 -1
  132. package/dist/{chunk-EBJPUXFQ.js → chunk-KEPCKSDE.js} +31 -11
  133. package/dist/chunk-KEPCKSDE.js.map +1 -0
  134. package/dist/{chunk-OF5NULAO.js → chunk-KG7RHDVX.js} +7 -7
  135. package/dist/{chunk-OF5NULAO.js.map → chunk-KG7RHDVX.js.map} +1 -1
  136. package/dist/{chunk-6PIVWNUR.js → chunk-KWZMXX4F.js} +5 -5
  137. package/dist/chunk-KWZMXX4F.js.map +1 -0
  138. package/dist/{chunk-DZZEJY3J.js → chunk-LDYUVGD4.js} +120 -148
  139. package/dist/chunk-LDYUVGD4.js.map +1 -0
  140. package/dist/{chunk-VD52FLHL.js → chunk-LF6I2B7G.js} +9 -9
  141. package/dist/{chunk-VD52FLHL.js.map → chunk-LF6I2B7G.js.map} +1 -1
  142. package/dist/{chunk-3IYM5MAC.js → chunk-LLSWAAFH.js} +4 -4
  143. package/dist/{chunk-3IYM5MAC.js.map → chunk-LLSWAAFH.js.map} +1 -1
  144. package/dist/{chunk-LBGC6EC5.js → chunk-M64WMYYV.js} +15 -15
  145. package/dist/chunk-M64WMYYV.js.map +1 -0
  146. package/dist/{chunk-3Z5PF75J.cjs → chunk-MHAXS4GO.cjs} +17 -19
  147. package/dist/chunk-MHAXS4GO.cjs.map +1 -0
  148. package/dist/{chunk-TKTCN4JE.cjs → chunk-MHEPDHL5.cjs} +9 -9
  149. package/dist/{chunk-TKTCN4JE.cjs.map → chunk-MHEPDHL5.cjs.map} +1 -1
  150. package/dist/{chunk-Z7OUMVR5.cjs → chunk-NFEL5GNX.cjs} +9 -9
  151. package/dist/{chunk-Z7OUMVR5.cjs.map → chunk-NFEL5GNX.cjs.map} +1 -1
  152. package/dist/{chunk-X4I5YARV.cjs → chunk-NG2H3PYA.cjs} +11 -11
  153. package/dist/{chunk-X4I5YARV.cjs.map → chunk-NG2H3PYA.cjs.map} +1 -1
  154. package/dist/{chunk-VO4FG3L2.cjs → chunk-NW36BN7N.cjs} +17 -17
  155. package/dist/{chunk-VO4FG3L2.cjs.map → chunk-NW36BN7N.cjs.map} +1 -1
  156. package/dist/{chunk-RJEZBOSH.js → chunk-NXTDP6AX.js} +12 -14
  157. package/dist/chunk-NXTDP6AX.js.map +1 -0
  158. package/dist/{chunk-N77K3NQY.cjs → chunk-P5LMEANN.cjs} +7 -7
  159. package/dist/{chunk-N77K3NQY.cjs.map → chunk-P5LMEANN.cjs.map} +1 -1
  160. package/dist/{chunk-4HXNBLCJ.js → chunk-P7TSM63O.js} +3 -3
  161. package/dist/{chunk-4HXNBLCJ.js.map → chunk-P7TSM63O.js.map} +1 -1
  162. package/dist/chunk-PG4CZRTU.js +77 -0
  163. package/dist/chunk-PG4CZRTU.js.map +1 -0
  164. package/dist/{chunk-SUT35RHA.cjs → chunk-PHFJBQXU.cjs} +8 -8
  165. package/dist/{chunk-SUT35RHA.cjs.map → chunk-PHFJBQXU.cjs.map} +1 -1
  166. package/dist/{chunk-YJEX32HZ.cjs → chunk-PNM7MPUX.cjs} +8 -8
  167. package/dist/{chunk-YJEX32HZ.cjs.map → chunk-PNM7MPUX.cjs.map} +1 -1
  168. package/dist/{chunk-MEXR5ONE.js → chunk-PU4PBI3H.js} +5 -5
  169. package/dist/{chunk-MEXR5ONE.js.map → chunk-PU4PBI3H.js.map} +1 -1
  170. package/dist/{chunk-2GMDMZKI.cjs → chunk-PYJX2SBC.cjs} +5 -5
  171. package/dist/{chunk-2GMDMZKI.cjs.map → chunk-PYJX2SBC.cjs.map} +1 -1
  172. package/dist/{chunk-U5M4JZBX.js → chunk-PYN75QAG.js} +6 -6
  173. package/dist/chunk-PYN75QAG.js.map +1 -0
  174. package/dist/{chunk-2VAUVJVG.js → chunk-QHXI2QDK.js} +3 -3
  175. package/dist/{chunk-2VAUVJVG.js.map → chunk-QHXI2QDK.js.map} +1 -1
  176. package/dist/{chunk-RRXOSNCX.cjs → chunk-QTOFQB26.cjs} +11 -11
  177. package/dist/{chunk-RRXOSNCX.cjs.map → chunk-QTOFQB26.cjs.map} +1 -1
  178. package/dist/{chunk-DV4K35UC.cjs → chunk-QYZXTIB2.cjs} +4 -4
  179. package/dist/{chunk-DV4K35UC.cjs.map → chunk-QYZXTIB2.cjs.map} +1 -1
  180. package/dist/{chunk-FFF57VHO.cjs → chunk-R3ZS6FU6.cjs} +8 -8
  181. package/dist/{chunk-FFF57VHO.cjs.map → chunk-R3ZS6FU6.cjs.map} +1 -1
  182. package/dist/{chunk-L5JS6P62.cjs → chunk-RAMDISDK.cjs} +14 -10
  183. package/dist/chunk-RAMDISDK.cjs.map +1 -0
  184. package/dist/{chunk-SUWRSJAN.cjs → chunk-RLIBY7XB.cjs} +16 -11
  185. package/dist/chunk-RLIBY7XB.cjs.map +1 -0
  186. package/dist/{chunk-I47WOF6E.js → chunk-RU7JPU7V.js} +3 -3
  187. package/dist/{chunk-I47WOF6E.js.map → chunk-RU7JPU7V.js.map} +1 -1
  188. package/dist/{chunk-HNDDNW52.js → chunk-RXKDRZF3.js} +3 -3
  189. package/dist/{chunk-HNDDNW52.js.map → chunk-RXKDRZF3.js.map} +1 -1
  190. package/dist/{chunk-EFBSEJBD.js → chunk-S4WWBV4N.js} +22 -47
  191. package/dist/chunk-S4WWBV4N.js.map +1 -0
  192. package/dist/{chunk-6J326CN6.js → chunk-SEDUAMDW.js} +4 -4
  193. package/dist/{chunk-6J326CN6.js.map → chunk-SEDUAMDW.js.map} +1 -1
  194. package/dist/{chunk-TSKFGLGQ.cjs → chunk-SKZNSOB7.cjs} +18 -27
  195. package/dist/chunk-SKZNSOB7.cjs.map +1 -0
  196. package/dist/{chunk-YDNEAHVK.cjs → chunk-TNYAYXKC.cjs} +37 -37
  197. package/dist/{chunk-YDNEAHVK.cjs.map → chunk-TNYAYXKC.cjs.map} +1 -1
  198. package/dist/{chunk-JJNXQ7EL.js → chunk-TQDJVPHP.js} +3 -3
  199. package/dist/{chunk-JJNXQ7EL.js.map → chunk-TQDJVPHP.js.map} +1 -1
  200. package/dist/{chunk-MEUELWGO.cjs → chunk-TVWU4XBL.cjs} +8 -8
  201. package/dist/{chunk-MEUELWGO.cjs.map → chunk-TVWU4XBL.cjs.map} +1 -1
  202. package/dist/{chunk-HWP2UGOC.cjs → chunk-U4L75VA4.cjs} +126 -105
  203. package/dist/chunk-U4L75VA4.cjs.map +1 -0
  204. package/dist/{chunk-6DAZ2ZOW.cjs → chunk-U5HW5P7Q.cjs} +11 -11
  205. package/dist/{chunk-6DAZ2ZOW.cjs.map → chunk-U5HW5P7Q.cjs.map} +1 -1
  206. package/dist/{chunk-R4DGCQTA.cjs → chunk-UMS46KF4.cjs} +7 -7
  207. package/dist/{chunk-R4DGCQTA.cjs.map → chunk-UMS46KF4.cjs.map} +1 -1
  208. package/dist/{chunk-75KSHZTV.js → chunk-UT45YVPI.js} +7 -7
  209. package/dist/{chunk-75KSHZTV.js.map → chunk-UT45YVPI.js.map} +1 -1
  210. package/dist/{chunk-LKGHYNLH.js → chunk-UYZQGHFI.js} +10 -10
  211. package/dist/chunk-UYZQGHFI.js.map +1 -0
  212. package/dist/{chunk-IGJEZLHP.cjs → chunk-UZGPFPIV.cjs} +17 -17
  213. package/dist/{chunk-IGJEZLHP.cjs.map → chunk-UZGPFPIV.cjs.map} +1 -1
  214. package/dist/{chunk-Q4HAXT5C.cjs → chunk-VK7DXUGH.cjs} +31 -11
  215. package/dist/chunk-VK7DXUGH.cjs.map +1 -0
  216. package/dist/chunk-VPWNRWNO.cjs +81 -0
  217. package/dist/chunk-VPWNRWNO.cjs.map +1 -0
  218. package/dist/{chunk-K4K4FU3D.cjs → chunk-VREW3BK6.cjs} +11 -11
  219. package/dist/{chunk-K4K4FU3D.cjs.map → chunk-VREW3BK6.cjs.map} +1 -1
  220. package/dist/{chunk-ANACERIO.cjs → chunk-VRQ66IBW.cjs} +6 -6
  221. package/dist/{chunk-ANACERIO.cjs.map → chunk-VRQ66IBW.cjs.map} +1 -1
  222. package/dist/{chunk-HXIU3SIQ.cjs → chunk-VW52NVGM.cjs} +5 -5
  223. package/dist/{chunk-HXIU3SIQ.cjs.map → chunk-VW52NVGM.cjs.map} +1 -1
  224. package/dist/{chunk-5XMWGK3O.cjs → chunk-VXOIOPGZ.cjs} +25 -36
  225. package/dist/chunk-VXOIOPGZ.cjs.map +1 -0
  226. package/dist/{chunk-4RDA4W4N.js → chunk-WAWHHXSR.js} +23 -7
  227. package/dist/chunk-WAWHHXSR.js.map +1 -0
  228. package/dist/{chunk-65MJZYO6.js → chunk-WEXTGWRE.js} +14 -29
  229. package/dist/chunk-WEXTGWRE.js.map +1 -0
  230. package/dist/{chunk-ECDYAZ2R.js → chunk-WHDDBOJN.js} +5 -5
  231. package/dist/{chunk-ECDYAZ2R.js.map → chunk-WHDDBOJN.js.map} +1 -1
  232. package/dist/{chunk-ESRDHDYN.cjs → chunk-WINDLDH3.cjs} +9 -9
  233. package/dist/{chunk-ESRDHDYN.cjs.map → chunk-WINDLDH3.cjs.map} +1 -1
  234. package/dist/{chunk-ADSG24VE.js → chunk-WM7NEOME.js} +6 -6
  235. package/dist/{chunk-ADSG24VE.js.map → chunk-WM7NEOME.js.map} +1 -1
  236. package/dist/{chunk-H4L456EW.js → chunk-XTLNUYCK.js} +12 -5
  237. package/dist/chunk-XTLNUYCK.js.map +1 -0
  238. package/dist/{chunk-QO5C7TIV.js → chunk-ZSB43DEI.js} +5 -5
  239. package/dist/{chunk-QO5C7TIV.js.map → chunk-ZSB43DEI.js.map} +1 -1
  240. package/dist/{chunk-V4ZH2H2P.cjs → chunk-ZUAWNT66.cjs} +14 -14
  241. package/dist/{chunk-V4ZH2H2P.cjs.map → chunk-ZUAWNT66.cjs.map} +1 -1
  242. package/dist/components/Alert/index.cjs +10 -8
  243. package/dist/components/Alert/index.js +9 -7
  244. package/dist/components/AlertDialog/index.cjs +12 -10
  245. package/dist/components/AlertDialog/index.js +10 -8
  246. package/dist/components/AppShell/index.cjs +18 -15
  247. package/dist/components/AppShell/index.js +15 -12
  248. package/dist/components/AutocompleteInput/index.cjs +17 -14
  249. package/dist/components/AutocompleteInput/index.js +13 -10
  250. package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  251. package/dist/components/Breadcrumbs/index.cjs +5 -10
  252. package/dist/components/Breadcrumbs/index.js +2 -7
  253. package/dist/components/Button/Button.d.ts +5 -3
  254. package/dist/components/Button/Button.d.ts.map +1 -1
  255. package/dist/components/Button/index.cjs +9 -7
  256. package/dist/components/Button/index.js +8 -6
  257. package/dist/components/Calendar/index.cjs +10 -8
  258. package/dist/components/Calendar/index.js +9 -7
  259. package/dist/components/CheckboxInput/index.cjs +9 -8
  260. package/dist/components/CheckboxInput/index.js +8 -7
  261. package/dist/components/CodeBlock/index.cjs +10 -8
  262. package/dist/components/CodeBlock/index.js +9 -7
  263. package/dist/components/ContextMenu/index.cjs +14 -12
  264. package/dist/components/ContextMenu/index.js +12 -10
  265. package/dist/components/DateInput/index.cjs +13 -11
  266. package/dist/components/DateInput/index.js +12 -10
  267. package/dist/components/DateRangeInput/index.cjs +13 -11
  268. package/dist/components/DateRangeInput/index.js +12 -10
  269. package/dist/components/DateTimeInput/index.cjs +15 -13
  270. package/dist/components/DateTimeInput/index.js +14 -12
  271. package/dist/components/DropdownMenu/index.cjs +15 -13
  272. package/dist/components/DropdownMenu/index.js +11 -9
  273. package/dist/components/EmptyState/index.cjs +5 -5
  274. package/dist/components/EmptyState/index.js +4 -4
  275. package/dist/components/Field/index.cjs +6 -6
  276. package/dist/components/Field/index.js +4 -4
  277. package/dist/components/FileInput/index.cjs +11 -9
  278. package/dist/components/FileInput/index.js +10 -8
  279. package/dist/components/HoverCard/HoverCard.d.ts +6 -6
  280. package/dist/components/HoverCard/HoverCard.d.ts.map +1 -1
  281. package/dist/components/HoverCard/index.cjs +4 -4
  282. package/dist/components/HoverCard/index.js +2 -2
  283. package/dist/components/InputGroup/index.cjs +9 -9
  284. package/dist/components/InputGroup/index.js +5 -5
  285. package/dist/components/Item/Item.d.ts.map +1 -1
  286. package/dist/components/Item/index.cjs +7 -8
  287. package/dist/components/Item/index.js +6 -7
  288. package/dist/components/Layout/Layout.recipe.d.ts +17 -0
  289. package/dist/components/Layout/Layout.recipe.d.ts.map +1 -1
  290. package/dist/components/Layout/LayoutHeader.d.ts +6 -1
  291. package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
  292. package/dist/components/Layout/index.cjs +14 -12
  293. package/dist/components/Layout/index.js +9 -7
  294. package/dist/components/Lightbox/index.cjs +11 -9
  295. package/dist/components/Lightbox/index.js +9 -7
  296. package/dist/components/Link/Link.d.ts +4 -5
  297. package/dist/components/Link/Link.d.ts.map +1 -1
  298. package/dist/components/Link/Link.recipe.d.ts.map +1 -1
  299. package/dist/components/Link/index.cjs +9 -6
  300. package/dist/components/Link/index.js +6 -3
  301. package/dist/components/List/index.cjs +9 -10
  302. package/dist/components/List/index.js +7 -8
  303. package/dist/components/MetadataList/MetadataList.recipe.d.ts +9 -1
  304. package/dist/components/MetadataList/MetadataList.recipe.d.ts.map +1 -1
  305. package/dist/components/MetadataList/MetadataListItem.d.ts +6 -1
  306. package/dist/components/MetadataList/MetadataListItem.d.ts.map +1 -1
  307. package/dist/components/MetadataList/index.cjs +9 -6
  308. package/dist/components/MetadataList/index.js +7 -4
  309. package/dist/components/MultiSelect/index.cjs +13 -11
  310. package/dist/components/MultiSelect/index.js +12 -10
  311. package/dist/components/NumberInput/index.cjs +12 -10
  312. package/dist/components/NumberInput/index.js +11 -9
  313. package/dist/components/Pagination/index.cjs +10 -8
  314. package/dist/components/Pagination/index.js +9 -7
  315. package/dist/components/PasswordInput/index.cjs +13 -11
  316. package/dist/components/PasswordInput/index.js +12 -10
  317. package/dist/components/Popover/Popover.d.ts +13 -1
  318. package/dist/components/Popover/Popover.d.ts.map +1 -1
  319. package/dist/components/Popover/index.cjs +11 -9
  320. package/dist/components/Popover/index.js +9 -7
  321. package/dist/components/RadioGroup/index.cjs +10 -9
  322. package/dist/components/RadioGroup/index.js +8 -7
  323. package/dist/components/Schedule/CalendarEvent.d.ts +18 -4
  324. package/dist/components/Schedule/CalendarEvent.d.ts.map +1 -1
  325. package/dist/components/Schedule/DayView.d.ts +7 -1
  326. package/dist/components/Schedule/DayView.d.ts.map +1 -1
  327. package/dist/components/Schedule/ListView.d.ts.map +1 -1
  328. package/dist/components/Schedule/ListView.recipe.d.ts +56 -0
  329. package/dist/components/Schedule/ListView.recipe.d.ts.map +1 -0
  330. package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
  331. package/dist/components/Schedule/MonthlyView.recipe.d.ts +47 -0
  332. package/dist/components/Schedule/MonthlyView.recipe.d.ts.map +1 -0
  333. package/dist/components/Schedule/ScheduleEvent.recipe.d.ts +17 -0
  334. package/dist/components/Schedule/ScheduleEvent.recipe.d.ts.map +1 -1
  335. package/dist/components/Schedule/TimeGridView.d.ts +7 -1
  336. package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
  337. package/dist/components/Schedule/TimeGridView.recipe.d.ts +43 -0
  338. package/dist/components/Schedule/TimeGridView.recipe.d.ts.map +1 -0
  339. package/dist/components/Schedule/WeeklyView.d.ts +7 -1
  340. package/dist/components/Schedule/WeeklyView.d.ts.map +1 -1
  341. package/dist/components/Schedule/index.cjs +44 -21
  342. package/dist/components/Schedule/index.d.ts +6 -2
  343. package/dist/components/Schedule/index.d.ts.map +1 -1
  344. package/dist/components/Schedule/index.js +17 -10
  345. package/dist/components/Schedule/plugins/EventMovePlugin.d.ts +23 -0
  346. package/dist/components/Schedule/plugins/EventMovePlugin.d.ts.map +1 -0
  347. package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts +31 -0
  348. package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts.map +1 -0
  349. package/dist/components/Schedule/plugins/EventResizePlugin.d.ts +24 -0
  350. package/dist/components/Schedule/plugins/EventResizePlugin.d.ts.map +1 -0
  351. package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts +39 -0
  352. package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts.map +1 -0
  353. package/dist/components/Schedule/plugins/index.d.ts +4 -0
  354. package/dist/components/Schedule/plugins/index.d.ts.map +1 -1
  355. package/dist/components/Schedule/shared.d.ts +58 -3
  356. package/dist/components/Schedule/shared.d.ts.map +1 -1
  357. package/dist/components/Schedule/types.d.ts +47 -1
  358. package/dist/components/Schedule/types.d.ts.map +1 -1
  359. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.d.ts.map +1 -1
  360. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts +4 -0
  361. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts.map +1 -0
  362. package/dist/components/SearchFilterInput/index.cjs +32 -29
  363. package/dist/components/SearchFilterInput/index.js +24 -21
  364. package/dist/components/Select/index.cjs +15 -13
  365. package/dist/components/Select/index.js +13 -11
  366. package/dist/components/SideNav/SideNav.d.ts.map +1 -1
  367. package/dist/components/SideNav/SideNav.recipe.d.ts +26 -7
  368. package/dist/components/SideNav/SideNav.recipe.d.ts.map +1 -1
  369. package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
  370. package/dist/components/SideNav/index.cjs +18 -15
  371. package/dist/components/SideNav/index.js +12 -9
  372. package/dist/components/Slider/index.cjs +6 -6
  373. package/dist/components/Slider/index.js +5 -5
  374. package/dist/components/Spinner/index.cjs +5 -5
  375. package/dist/components/Spinner/index.js +4 -4
  376. package/dist/components/SplitButton/index.cjs +13 -11
  377. package/dist/components/SplitButton/index.js +12 -10
  378. package/dist/components/Stepper/index.cjs +5 -5
  379. package/dist/components/Stepper/index.js +4 -4
  380. package/dist/components/Switch/index.cjs +6 -6
  381. package/dist/components/Switch/index.js +5 -5
  382. package/dist/components/Table/index.cjs +54 -51
  383. package/dist/components/Table/index.js +28 -25
  384. package/dist/components/Tabs/Tab.d.ts.map +1 -1
  385. package/dist/components/Tabs/index.cjs +15 -13
  386. package/dist/components/Tabs/index.js +10 -8
  387. package/dist/components/Tag/Tag.d.ts.map +1 -1
  388. package/dist/components/Tag/index.cjs +8 -5
  389. package/dist/components/Tag/index.js +7 -4
  390. package/dist/components/TagsInput/index.cjs +15 -12
  391. package/dist/components/TagsInput/index.js +14 -11
  392. package/dist/components/Text/Heading.d.ts +5 -5
  393. package/dist/components/Text/Heading.d.ts.map +1 -1
  394. package/dist/components/Text/Text.d.ts +5 -5
  395. package/dist/components/Text/Text.d.ts.map +1 -1
  396. package/dist/components/Text/index.cjs +5 -5
  397. package/dist/components/Text/index.js +3 -3
  398. package/dist/components/TextArea/index.cjs +7 -7
  399. package/dist/components/TextArea/index.js +6 -6
  400. package/dist/components/TextInput/index.cjs +12 -10
  401. package/dist/components/TextInput/index.js +11 -9
  402. package/dist/components/Thumbnail/index.cjs +10 -8
  403. package/dist/components/Thumbnail/index.js +9 -7
  404. package/dist/components/TimeInput/index.cjs +11 -9
  405. package/dist/components/TimeInput/index.js +10 -8
  406. package/dist/components/Toast/index.cjs +12 -10
  407. package/dist/components/Toast/index.js +9 -7
  408. package/dist/components/ToggleButton/ToggleButton.recipe.d.ts.map +1 -1
  409. package/dist/components/ToggleButton/index.cjs +7 -7
  410. package/dist/components/ToggleButton/index.js +5 -5
  411. package/dist/components/Tooltip/Tooltip.d.ts +6 -6
  412. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  413. package/dist/components/Tooltip/index.cjs +4 -4
  414. package/dist/components/Tooltip/index.js +2 -2
  415. package/dist/components/TopNav/TopNavItem.d.ts.map +1 -1
  416. package/dist/components/TopNav/index.cjs +16 -13
  417. package/dist/components/TopNav/index.js +11 -8
  418. package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
  419. package/dist/components/TreeView/index.cjs +3 -2
  420. package/dist/components/TreeView/index.js +2 -1
  421. package/dist/index.cjs +233 -214
  422. package/dist/index.cjs.map +1 -1
  423. package/dist/index.d.ts +1 -1
  424. package/dist/index.d.ts.map +1 -1
  425. package/dist/index.js +60 -57
  426. package/dist/index.js.map +1 -1
  427. package/dist/internal/ActionElement.d.ts +45 -0
  428. package/dist/internal/ActionElement.d.ts.map +1 -0
  429. package/dist/internal/HoverLayerTrigger.d.ts +3 -4
  430. package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
  431. package/dist/internal/useLayer.d.ts +12 -0
  432. package/dist/internal/useLayer.d.ts.map +1 -1
  433. package/dist/internal/useSelectListbox.d.ts +5 -5
  434. package/dist/internal/useSelectListbox.d.ts.map +1 -1
  435. package/dist/styles.css +1 -1
  436. package/package.json +1 -1
  437. package/dist/chunk-2AWSJF22.js.map +0 -1
  438. package/dist/chunk-2RZNX26F.cjs.map +0 -1
  439. package/dist/chunk-3VJIUZAY.cjs.map +0 -1
  440. package/dist/chunk-3Z5PF75J.cjs.map +0 -1
  441. package/dist/chunk-4RDA4W4N.js.map +0 -1
  442. package/dist/chunk-5XMWGK3O.cjs.map +0 -1
  443. package/dist/chunk-65MJZYO6.js.map +0 -1
  444. package/dist/chunk-6EYLEVC6.js.map +0 -1
  445. package/dist/chunk-6PIVWNUR.js.map +0 -1
  446. package/dist/chunk-AEYJ6PWC.js.map +0 -1
  447. package/dist/chunk-BIJ6YDWJ.cjs.map +0 -1
  448. package/dist/chunk-D5OX6II7.cjs.map +0 -1
  449. package/dist/chunk-DZZEJY3J.js.map +0 -1
  450. package/dist/chunk-EBJPUXFQ.js.map +0 -1
  451. package/dist/chunk-EFBSEJBD.js.map +0 -1
  452. package/dist/chunk-F7BFO3SD.cjs.map +0 -1
  453. package/dist/chunk-FCUUGJTM.cjs.map +0 -1
  454. package/dist/chunk-GSTINE4X.js.map +0 -1
  455. package/dist/chunk-GW6P4FJ4.cjs.map +0 -1
  456. package/dist/chunk-H4L456EW.js.map +0 -1
  457. package/dist/chunk-HWP2UGOC.cjs.map +0 -1
  458. package/dist/chunk-J2YKUHQM.js.map +0 -1
  459. package/dist/chunk-JM4Q7ZQH.cjs.map +0 -1
  460. package/dist/chunk-JSAYTQTJ.cjs.map +0 -1
  461. package/dist/chunk-KC4EKXGF.js.map +0 -1
  462. package/dist/chunk-L5JS6P62.cjs.map +0 -1
  463. package/dist/chunk-L5PJCLV6.js.map +0 -1
  464. package/dist/chunk-LBGC6EC5.js.map +0 -1
  465. package/dist/chunk-LKGHYNLH.js.map +0 -1
  466. package/dist/chunk-OUZX7STE.cjs.map +0 -1
  467. package/dist/chunk-Q3HMGFGI.js.map +0 -1
  468. package/dist/chunk-Q4HAXT5C.cjs.map +0 -1
  469. package/dist/chunk-RJEZBOSH.js.map +0 -1
  470. package/dist/chunk-S5CMLG2E.js.map +0 -1
  471. package/dist/chunk-SUWRSJAN.cjs.map +0 -1
  472. package/dist/chunk-THTVYP5V.js.map +0 -1
  473. package/dist/chunk-TSKFGLGQ.cjs.map +0 -1
  474. package/dist/chunk-TTDNCN5G.cjs.map +0 -1
  475. package/dist/chunk-U5M4JZBX.js.map +0 -1
  476. package/dist/chunk-UXQSSRBQ.cjs.map +0 -1
  477. package/dist/chunk-VH3G4IUX.js.map +0 -1
  478. package/dist/chunk-VV72PGKH.cjs.map +0 -1
  479. package/dist/chunk-XPGIWOJO.cjs.map +0 -1
  480. package/dist/chunk-ZPJW3PP7.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Toast/Toast.recipe.ts","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastContext.ts","../src/components/Toast/ToastViewport.tsx","../src/components/Toast/useToast.tsx"],"names":["useRef","useEffect","useCallback","jsxs","jsx"],"mappings":"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","file":"chunk-HIH6MS5D.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const toastRecipe = sva({\n slots: ['root', 'inner', 'content', 'end'],\n base: {\n root: {\n width: '25rem',\n maxW: 'calc(100vw - 32px)',\n p: '4',\n borderRadius: 'lg',\n boxShadow: 'xl',\n fontFamily: 'body',\n transitionProperty: 'opacity, transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@starting-style': {\n opacity: 0,\n transform: 'translateY(8px)',\n },\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01ms',\n },\n },\n inner: {\n display: 'flex',\n alignItems: 'center',\n gap: '3',\n },\n content: {\n flex: 1,\n minW: 0,\n },\n end: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flexShrink: 0,\n },\n },\n variants: {\n type: {\n info: {root: {bg: 'status.info.solid', color: 'status.info.solidFg'}},\n error: {root: {bg: 'status.error.solid', color: 'status.error.solidFg'}},\n success: {\n root: {bg: 'status.success.solid', color: 'status.success.solidFg'},\n },\n warning: {\n root: {bg: 'status.warning.solid', color: 'status.warning.solidFg'},\n },\n },\n isExiting: {\n true: {\n root: {\n opacity: 0,\n transform: 'translateY(-8px)',\n },\n },\n },\n },\n defaultVariants: {\n type: 'info',\n isExiting: false,\n },\n});\n\nexport type ToastVariants = RecipeVariantProps<typeof toastRecipe>;\n","/* eslint-disable jsx-a11y-x/no-static-element-interactions */\nimport {X} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {toastRecipe} from 'components/Toast/Toast.recipe';\nimport type {ToastDismissReason, ToastType} from 'components/Toast/types';\nimport {cx} from 'internal/cx';\nimport {nowMonotonicMilliseconds} from 'internal/time';\nimport useLatest from 'internal/useLatest';\n\nexport interface ToastProps {\n /**\n * Auto-dismiss duration in milliseconds.\n */\n autoHideDuration: number;\n /**\n * Toast message content.\n */\n body: ReactNode;\n /**\n * Additional CSS class names applied to the toast.\n */\n className?: string;\n /**\n * Test ID applied to the toast.\n */\n 'data-testid'?: string;\n /**\n * Content rendered before the dismiss button.\n */\n endContent?: ReactNode;\n /**\n * Whether the toast auto-dismisses.\n */\n isAutoHide: boolean;\n /**\n * Whether the toast is exiting.\n * @default false\n */\n isExiting?: boolean;\n /**\n * Called when the toast should be dismissed.\n */\n onDismiss: (reason: ToastDismissReason) => void;\n /**\n * Ref forwarded to the toast element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the toast.\n */\n style?: CSSProperties;\n /**\n * Toast tone.\n */\n type: ToastType;\n}\n\nconst assertiveTypes: Partial<Record<ToastType, true>> = {\n error: true,\n warning: true,\n};\n\n/**\n * An individual toast notification.\n */\nexport function Toast({\n autoHideDuration,\n body,\n className,\n 'data-testid': dataTestId,\n endContent,\n isAutoHide,\n isExiting = false,\n onDismiss: onDismissFromProps,\n ref,\n style,\n type,\n}: ToastProps): React.JSX.Element {\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const startedAtRef = useRef<number | null>(null);\n const remainingRef = useRef(autoHideDuration);\n const isPausedRef = useRef(false);\n const onDismissRef = useLatest(onDismissFromProps);\n\n const startTimer = useCallback(() => {\n if (!isAutoHide) {\n return;\n }\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n }\n startedAtRef.current = nowMonotonicMilliseconds();\n timerRef.current = setTimeout(\n () => onDismissRef.current('auto'),\n remainingRef.current,\n );\n }, [isAutoHide]);\n\n const pauseTimer = useCallback(() => {\n if (!isAutoHide || isPausedRef.current) {\n return;\n }\n isPausedRef.current = true;\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n if (startedAtRef.current != null) {\n remainingRef.current = Math.max(\n remainingRef.current -\n (nowMonotonicMilliseconds() - startedAtRef.current),\n 1000,\n );\n }\n }, [isAutoHide]);\n\n const resumeTimer = useCallback(() => {\n if (!isAutoHide || !isPausedRef.current) {\n return;\n }\n isPausedRef.current = false;\n startTimer();\n }, [isAutoHide, startTimer]);\n\n useEffect(() => {\n remainingRef.current = autoHideDuration;\n startTimer();\n return () => {\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n }\n };\n }, [autoHideDuration, startTimer]);\n\n const classes = toastRecipe({type, isExiting});\n\n return (\n <div\n aria-atomic=\"true\"\n aria-live={assertiveTypes[type] ? 'assertive' : 'polite'}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onBlurCapture={resumeTimer}\n onFocusCapture={pauseTimer}\n onMouseEnter={pauseTimer}\n onMouseLeave={resumeTimer}\n ref={ref}\n role={assertiveTypes[type] ? 'alert' : 'status'}\n style={style}>\n <div className={classes.inner}>\n <div className={classes.content}>{body}</div>\n <div className={classes.end}>\n {endContent}\n <Button\n icon={X}\n isIconOnly\n label=\"Dismiss notification\"\n onClick={() => onDismissRef.current('manual')}\n size=\"sm\"\n variant=\"onSolid\"\n />\n </div>\n </div>\n </div>\n );\n}\n\nToast.displayName = 'Toast';\n","import {createContext} from 'react';\nimport type {ToastDismissReason, ToastEntry} from 'components/Toast/types';\n\nexport interface ToastContextValue {\n addToast: (entry: ToastEntry) => void;\n findByUniqueID: (uniqueID: string) => ToastEntry | undefined;\n removeToast: (id: string, reason: ToastDismissReason) => void;\n}\n\nexport const ToastContext = createContext<ToastContextValue | null>(null);\n\nToastContext.displayName = 'ToastContext';\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Toast} from 'components/Toast/Toast';\nimport {\n ToastContext,\n type ToastContextValue,\n} from 'components/Toast/ToastContext';\nimport type {\n ToastDismissReason,\n ToastEntry,\n ToastPosition,\n} from 'components/Toast/types';\nimport {cx} from 'internal/cx';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {css} from 'styled-system/css';\n\nexport interface ToastViewportInset {\n bottom?: number;\n end?: number;\n start?: number;\n top?: number;\n}\n\nexport interface ToastViewportProps {\n /**\n * App content that should receive the toast context.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the viewport.\n */\n className?: string;\n /**\n * Test ID applied to the viewport.\n */\n 'data-testid'?: string;\n /**\n * Custom viewport inset.\n */\n inset?: Readonly<ToastViewportInset>;\n /**\n * Whether to promote the viewport to the CSS top layer using popover.\n * @default true\n */\n isTopLayer?: boolean;\n /**\n * Maximum visible toast count.\n * @default 5\n */\n maxVisible?: number;\n /**\n * Toast stack position.\n * @default 'bottomEnd'\n */\n position?: ToastPosition;\n /**\n * Ref forwarded to the viewport element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the viewport.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n viewport: css({\n position: 'fixed',\n zIndex: 500,\n display: 'flex',\n flexDirection: 'column',\n p: '4',\n pointerEvents: 'none',\n inset: 'unset',\n m: 0,\n borderWidth: 0,\n bg: 'transparent',\n overflow: 'visible',\n }),\n bottomEnd: css({bottom: 0, insetInlineEnd: 0, alignItems: 'flex-end'}),\n bottomStart: css({bottom: 0, insetInlineStart: 0, alignItems: 'flex-start'}),\n topEnd: css({\n top: 0,\n insetInlineEnd: 0,\n alignItems: 'flex-end',\n flexDirection: 'column-reverse',\n }),\n topStart: css({\n top: 0,\n insetInlineStart: 0,\n alignItems: 'flex-start',\n flexDirection: 'column-reverse',\n }),\n wrapper: css({\n pointerEvents: 'auto',\n display: 'grid',\n gridTemplateRows: '1fr',\n pb: '3',\n transitionProperty: 'grid-template-rows, padding',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01ms',\n },\n }),\n wrapperExiting: css({\n gridTemplateRows: '0fr',\n pb: 0,\n }),\n wrapperInner: css({\n overflow: 'hidden',\n }),\n position: {\n bottomEnd: '',\n bottomStart: '',\n topEnd: '',\n topStart: '',\n } satisfies Record<ToastPosition, string>,\n} as const;\n\nstyles.position.bottomEnd = styles.bottomEnd;\nstyles.position.bottomStart = styles.bottomStart;\nstyles.position.topEnd = styles.topEnd;\nstyles.position.topStart = styles.topStart;\n\n/**\n * Toast provider and viewport. Mount once near the app root to enable\n * toast notifications. Components below this provider can call `useToast()`\n * to show toasts.\n *\n * @example\n * ```tsx\n * function App() {\n * return (\n * <ToastViewport>\n * <MyRoutes />\n * </ToastViewport>\n * );\n * }\n * ```\n */\nexport function ToastViewport({\n children,\n className,\n 'data-testid': dataTestId,\n inset,\n isTopLayer = true,\n maxVisible = 5,\n position = 'bottomEnd',\n ref,\n style,\n}: ToastViewportProps): React.JSX.Element {\n const [toasts, setToasts] = useState<ToastEntry[]>([]);\n const [exitingIds, setExitingIds] = useState<Set<string>>(() => new Set());\n const toastsRef = useRef(toasts);\n const viewportRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n toastsRef.current = toasts;\n }, [toasts]);\n\n const addToast = useCallback((entry: ToastEntry) => {\n setToasts(previous => {\n const {uniqueID, collisionBehavior = 'overwrite'} = entry.options;\n if (uniqueID != null) {\n const existing = previous.find(\n toast => toast.options.uniqueID === uniqueID,\n );\n if (existing != null) {\n if (collisionBehavior === 'ignore') {\n return previous;\n }\n return previous.map(toast =>\n toast.options.uniqueID === uniqueID ? entry : toast,\n );\n }\n }\n return [...previous, entry];\n });\n }, []);\n\n const removeToast = useCallback((id: string, reason: ToastDismissReason) => {\n const entry = toastsRef.current.find(toast => toast.id === id);\n entry?.options.onHide?.(reason);\n setExitingIds(previous => new Set(previous).add(id));\n globalThis.setTimeout(() => {\n setExitingIds(previous => {\n const next = new Set(previous);\n next.delete(id);\n return next;\n });\n setToasts(previous => previous.filter(toast => toast.id !== id));\n }, 180);\n }, []);\n\n const findByUniqueID = useCallback((uniqueID: string) => {\n return toastsRef.current.find(toast => toast.options.uniqueID === uniqueID);\n }, []);\n\n const contextValue = useMemo<ToastContextValue>(\n () => ({addToast, findByUniqueID, removeToast}),\n [addToast, findByUniqueID, removeToast],\n );\n\n useEffect(() => {\n if (!isTopLayer) {\n return;\n }\n try {\n viewportRef.current?.showPopover();\n } catch {\n // Already showing.\n }\n }, [isTopLayer]);\n\n const insetStyle: CSSProperties = {\n ...(inset?.top != null ? {top: inset.top} : null),\n ...(inset?.bottom != null ? {bottom: inset.bottom} : null),\n ...(inset?.start != null ? {insetInlineStart: inset.start} : null),\n ...(inset?.end != null ? {insetInlineEnd: inset.end} : null),\n ...style,\n };\n const visibleToasts = toasts.slice(-maxVisible);\n\n return (\n <ToastContext value={contextValue}>\n {children}\n <div\n aria-label=\"Notifications\"\n className={cx(styles.viewport, styles.position[position], className)}\n data-testid={dataTestId}\n popover={isTopLayer ? 'manual' : undefined}\n ref={mergeRefs(viewportRef, ref)}\n role=\"region\"\n style={insetStyle}>\n {visibleToasts.map(entry => {\n const type = entry.options.type ?? 'info';\n const isAutoHide =\n entry.options.isAutoHide ?? (type === 'error' ? false : true);\n return (\n <div\n className={cx(\n styles.wrapper,\n exitingIds.has(entry.id) ? styles.wrapperExiting : undefined,\n )}\n key={entry.id}>\n <div className={styles.wrapperInner}>\n <Toast\n autoHideDuration={entry.options.autoHideDuration ?? 5000}\n body={entry.options.body}\n endContent={entry.options.endContent}\n isAutoHide={isAutoHide}\n isExiting={exitingIds.has(entry.id)}\n onDismiss={reason => removeToast(entry.id, reason)}\n type={type}\n />\n </div>\n </div>\n );\n })}\n </div>\n </ToastContext>\n );\n}\n\nToastViewport.displayName = 'ToastViewport';\n","import {use, useCallback} from 'react';\nimport {ToastContext} from 'components/Toast/ToastContext';\nimport type {\n ShowToastFn,\n ToastDismissFn,\n ToastEntry,\n ToastOptions,\n} from 'components/Toast/types';\nimport {nowEpochMilliseconds} from 'internal/time';\n\nlet toastIdCounter = 0;\n\nfunction generateToastId(): string {\n toastIdCounter += 1;\n return `silver-toast-${toastIdCounter}`;\n}\n\n/**\n * Returns a function that shows a toast notification.\n * Must be called within a `ToastViewport` provider.\n * The returned function accepts `ToastOptions` and returns a dismiss callback.\n */\nexport function useToast(): ShowToastFn {\n const context = use(ToastContext);\n\n if (context == null) {\n throw new Error(\n 'useToast must be used within a ToastViewport. Add <ToastViewport> near your app root to enable toast notifications.',\n );\n }\n\n return useCallback(\n (options: ToastOptions): ToastDismissFn => {\n const id = generateToastId();\n const entry: ToastEntry = {\n createdAt: nowEpochMilliseconds(),\n id,\n options,\n };\n context.addToast(entry);\n return () => context.removeToast(id, 'manual');\n },\n [context],\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/Toast/Toast.recipe.ts","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastContext.ts","../src/components/Toast/ToastViewport.tsx","../src/components/Toast/useToast.tsx"],"names":["useRef","useEffect","useCallback","jsxs","jsx"],"mappings":"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","file":"chunk-7TJ2O56S.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const toastRecipe = sva({\n slots: ['root', 'inner', 'content', 'end'],\n base: {\n root: {\n width: '25rem',\n maxW: 'calc(100vw - 32px)',\n p: '4',\n borderRadius: 'lg',\n boxShadow: 'xl',\n fontFamily: 'body',\n transitionProperty: 'opacity, transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@starting-style': {\n opacity: 0,\n transform: 'translateY(8px)',\n },\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01ms',\n },\n },\n inner: {\n display: 'flex',\n alignItems: 'center',\n gap: '3',\n },\n content: {\n flex: 1,\n minW: 0,\n },\n end: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flexShrink: 0,\n },\n },\n variants: {\n type: {\n info: {root: {bg: 'status.info.solid', color: 'status.info.solidFg'}},\n error: {root: {bg: 'status.error.solid', color: 'status.error.solidFg'}},\n success: {\n root: {bg: 'status.success.solid', color: 'status.success.solidFg'},\n },\n warning: {\n root: {bg: 'status.warning.solid', color: 'status.warning.solidFg'},\n },\n },\n isExiting: {\n true: {\n root: {\n opacity: 0,\n transform: 'translateY(-8px)',\n },\n },\n },\n },\n defaultVariants: {\n type: 'info',\n isExiting: false,\n },\n});\n\nexport type ToastVariants = RecipeVariantProps<typeof toastRecipe>;\n","/* eslint-disable jsx-a11y-x/no-static-element-interactions */\nimport {X} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {toastRecipe} from 'components/Toast/Toast.recipe';\nimport type {ToastDismissReason, ToastType} from 'components/Toast/types';\nimport {cx} from 'internal/cx';\nimport {nowMonotonicMilliseconds} from 'internal/time';\nimport useLatest from 'internal/useLatest';\n\nexport interface ToastProps {\n /**\n * Auto-dismiss duration in milliseconds.\n */\n autoHideDuration: number;\n /**\n * Toast message content.\n */\n body: ReactNode;\n /**\n * Additional CSS class names applied to the toast.\n */\n className?: string;\n /**\n * Test ID applied to the toast.\n */\n 'data-testid'?: string;\n /**\n * Content rendered before the dismiss button.\n */\n endContent?: ReactNode;\n /**\n * Whether the toast auto-dismisses.\n */\n isAutoHide: boolean;\n /**\n * Whether the toast is exiting.\n * @default false\n */\n isExiting?: boolean;\n /**\n * Called when the toast should be dismissed.\n */\n onDismiss: (reason: ToastDismissReason) => void;\n /**\n * Ref forwarded to the toast element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the toast.\n */\n style?: CSSProperties;\n /**\n * Toast tone.\n */\n type: ToastType;\n}\n\nconst assertiveTypes: Partial<Record<ToastType, true>> = {\n error: true,\n warning: true,\n};\n\n/**\n * An individual toast notification.\n */\nexport function Toast({\n autoHideDuration,\n body,\n className,\n 'data-testid': dataTestId,\n endContent,\n isAutoHide,\n isExiting = false,\n onDismiss: onDismissFromProps,\n ref,\n style,\n type,\n}: ToastProps): React.JSX.Element {\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const startedAtRef = useRef<number | null>(null);\n const remainingRef = useRef(autoHideDuration);\n const isPausedRef = useRef(false);\n const onDismissRef = useLatest(onDismissFromProps);\n\n const startTimer = useCallback(() => {\n if (!isAutoHide) {\n return;\n }\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n }\n startedAtRef.current = nowMonotonicMilliseconds();\n timerRef.current = setTimeout(\n () => onDismissRef.current('auto'),\n remainingRef.current,\n );\n }, [isAutoHide]);\n\n const pauseTimer = useCallback(() => {\n if (!isAutoHide || isPausedRef.current) {\n return;\n }\n isPausedRef.current = true;\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n if (startedAtRef.current != null) {\n remainingRef.current = Math.max(\n remainingRef.current -\n (nowMonotonicMilliseconds() - startedAtRef.current),\n 1000,\n );\n }\n }, [isAutoHide]);\n\n const resumeTimer = useCallback(() => {\n if (!isAutoHide || !isPausedRef.current) {\n return;\n }\n isPausedRef.current = false;\n startTimer();\n }, [isAutoHide, startTimer]);\n\n useEffect(() => {\n remainingRef.current = autoHideDuration;\n startTimer();\n return () => {\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n }\n };\n }, [autoHideDuration, startTimer]);\n\n const classes = toastRecipe({type, isExiting});\n\n return (\n <div\n aria-atomic=\"true\"\n aria-live={assertiveTypes[type] ? 'assertive' : 'polite'}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onBlurCapture={resumeTimer}\n onFocusCapture={pauseTimer}\n onMouseEnter={pauseTimer}\n onMouseLeave={resumeTimer}\n ref={ref}\n role={assertiveTypes[type] ? 'alert' : 'status'}\n style={style}>\n <div className={classes.inner}>\n <div className={classes.content}>{body}</div>\n <div className={classes.end}>\n {endContent}\n <Button\n icon={X}\n isIconOnly\n label=\"Dismiss notification\"\n onClick={() => onDismissRef.current('manual')}\n size=\"sm\"\n variant=\"onSolid\"\n />\n </div>\n </div>\n </div>\n );\n}\n\nToast.displayName = 'Toast';\n","import {createContext} from 'react';\nimport type {ToastDismissReason, ToastEntry} from 'components/Toast/types';\n\nexport interface ToastContextValue {\n addToast: (entry: ToastEntry) => void;\n findByUniqueID: (uniqueID: string) => ToastEntry | undefined;\n removeToast: (id: string, reason: ToastDismissReason) => void;\n}\n\nexport const ToastContext = createContext<ToastContextValue | null>(null);\n\nToastContext.displayName = 'ToastContext';\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Toast} from 'components/Toast/Toast';\nimport {\n ToastContext,\n type ToastContextValue,\n} from 'components/Toast/ToastContext';\nimport type {\n ToastDismissReason,\n ToastEntry,\n ToastPosition,\n} from 'components/Toast/types';\nimport {cx} from 'internal/cx';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {css} from 'styled-system/css';\n\nexport interface ToastViewportInset {\n bottom?: number;\n end?: number;\n start?: number;\n top?: number;\n}\n\nexport interface ToastViewportProps {\n /**\n * App content that should receive the toast context.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the viewport.\n */\n className?: string;\n /**\n * Test ID applied to the viewport.\n */\n 'data-testid'?: string;\n /**\n * Custom viewport inset.\n */\n inset?: Readonly<ToastViewportInset>;\n /**\n * Whether to promote the viewport to the CSS top layer using popover.\n * @default true\n */\n isTopLayer?: boolean;\n /**\n * Maximum visible toast count.\n * @default 5\n */\n maxVisible?: number;\n /**\n * Toast stack position.\n * @default 'bottomEnd'\n */\n position?: ToastPosition;\n /**\n * Ref forwarded to the viewport element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the viewport.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n viewport: css({\n position: 'fixed',\n zIndex: 500,\n display: 'flex',\n flexDirection: 'column',\n p: '4',\n pointerEvents: 'none',\n inset: 'unset',\n m: 0,\n borderWidth: 0,\n bg: 'transparent',\n overflow: 'visible',\n }),\n bottomEnd: css({bottom: 0, insetInlineEnd: 0, alignItems: 'flex-end'}),\n bottomStart: css({bottom: 0, insetInlineStart: 0, alignItems: 'flex-start'}),\n topEnd: css({\n top: 0,\n insetInlineEnd: 0,\n alignItems: 'flex-end',\n flexDirection: 'column-reverse',\n }),\n topStart: css({\n top: 0,\n insetInlineStart: 0,\n alignItems: 'flex-start',\n flexDirection: 'column-reverse',\n }),\n wrapper: css({\n pointerEvents: 'auto',\n display: 'grid',\n gridTemplateRows: '1fr',\n pb: '3',\n transitionProperty: 'grid-template-rows, padding',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01ms',\n },\n }),\n wrapperExiting: css({\n gridTemplateRows: '0fr',\n pb: 0,\n }),\n wrapperInner: css({\n overflow: 'hidden',\n }),\n position: {\n bottomEnd: '',\n bottomStart: '',\n topEnd: '',\n topStart: '',\n } satisfies Record<ToastPosition, string>,\n} as const;\n\nstyles.position.bottomEnd = styles.bottomEnd;\nstyles.position.bottomStart = styles.bottomStart;\nstyles.position.topEnd = styles.topEnd;\nstyles.position.topStart = styles.topStart;\n\n/**\n * Toast provider and viewport. Mount once near the app root to enable\n * toast notifications. Components below this provider can call `useToast()`\n * to show toasts.\n *\n * @example\n * ```tsx\n * function App() {\n * return (\n * <ToastViewport>\n * <MyRoutes />\n * </ToastViewport>\n * );\n * }\n * ```\n */\nexport function ToastViewport({\n children,\n className,\n 'data-testid': dataTestId,\n inset,\n isTopLayer = true,\n maxVisible = 5,\n position = 'bottomEnd',\n ref,\n style,\n}: ToastViewportProps): React.JSX.Element {\n const [toasts, setToasts] = useState<ToastEntry[]>([]);\n const [exitingIds, setExitingIds] = useState<Set<string>>(() => new Set());\n const toastsRef = useRef(toasts);\n const viewportRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n toastsRef.current = toasts;\n }, [toasts]);\n\n const addToast = useCallback((entry: ToastEntry) => {\n setToasts(previous => {\n const {uniqueID, collisionBehavior = 'overwrite'} = entry.options;\n if (uniqueID != null) {\n const existing = previous.find(\n toast => toast.options.uniqueID === uniqueID,\n );\n if (existing != null) {\n if (collisionBehavior === 'ignore') {\n return previous;\n }\n return previous.map(toast =>\n toast.options.uniqueID === uniqueID ? entry : toast,\n );\n }\n }\n return [...previous, entry];\n });\n }, []);\n\n const removeToast = useCallback((id: string, reason: ToastDismissReason) => {\n const entry = toastsRef.current.find(toast => toast.id === id);\n entry?.options.onHide?.(reason);\n setExitingIds(previous => new Set(previous).add(id));\n globalThis.setTimeout(() => {\n setExitingIds(previous => {\n const next = new Set(previous);\n next.delete(id);\n return next;\n });\n setToasts(previous => previous.filter(toast => toast.id !== id));\n }, 180);\n }, []);\n\n const findByUniqueID = useCallback((uniqueID: string) => {\n return toastsRef.current.find(toast => toast.options.uniqueID === uniqueID);\n }, []);\n\n const contextValue = useMemo<ToastContextValue>(\n () => ({addToast, findByUniqueID, removeToast}),\n [addToast, findByUniqueID, removeToast],\n );\n\n useEffect(() => {\n if (!isTopLayer) {\n return;\n }\n try {\n viewportRef.current?.showPopover();\n } catch {\n // Already showing.\n }\n }, [isTopLayer]);\n\n const insetStyle: CSSProperties = {\n ...(inset?.top != null ? {top: inset.top} : null),\n ...(inset?.bottom != null ? {bottom: inset.bottom} : null),\n ...(inset?.start != null ? {insetInlineStart: inset.start} : null),\n ...(inset?.end != null ? {insetInlineEnd: inset.end} : null),\n ...style,\n };\n const visibleToasts = toasts.slice(-maxVisible);\n\n return (\n <ToastContext value={contextValue}>\n {children}\n <div\n aria-label=\"Notifications\"\n className={cx(styles.viewport, styles.position[position], className)}\n data-testid={dataTestId}\n popover={isTopLayer ? 'manual' : undefined}\n ref={mergeRefs(viewportRef, ref)}\n role=\"region\"\n style={insetStyle}>\n {visibleToasts.map(entry => {\n const type = entry.options.type ?? 'info';\n const isAutoHide =\n entry.options.isAutoHide ?? (type === 'error' ? false : true);\n return (\n <div\n className={cx(\n styles.wrapper,\n exitingIds.has(entry.id) ? styles.wrapperExiting : undefined,\n )}\n key={entry.id}>\n <div className={styles.wrapperInner}>\n <Toast\n autoHideDuration={entry.options.autoHideDuration ?? 5000}\n body={entry.options.body}\n endContent={entry.options.endContent}\n isAutoHide={isAutoHide}\n isExiting={exitingIds.has(entry.id)}\n onDismiss={reason => removeToast(entry.id, reason)}\n type={type}\n />\n </div>\n </div>\n );\n })}\n </div>\n </ToastContext>\n );\n}\n\nToastViewport.displayName = 'ToastViewport';\n","import {use, useCallback} from 'react';\nimport {ToastContext} from 'components/Toast/ToastContext';\nimport type {\n ShowToastFn,\n ToastDismissFn,\n ToastEntry,\n ToastOptions,\n} from 'components/Toast/types';\nimport {nowEpochMilliseconds} from 'internal/time';\n\nlet toastIdCounter = 0;\n\nfunction generateToastId(): string {\n toastIdCounter += 1;\n return `silver-toast-${toastIdCounter}`;\n}\n\n/**\n * Returns a function that shows a toast notification.\n * Must be called within a `ToastViewport` provider.\n * The returned function accepts `ToastOptions` and returns a dismiss callback.\n */\nexport function useToast(): ShowToastFn {\n const context = use(ToastContext);\n\n if (context == null) {\n throw new Error(\n 'useToast must be used within a ToastViewport. Add <ToastViewport> near your app root to enable toast notifications.',\n );\n }\n\n return useCallback(\n (options: ToastOptions): ToastDismissFn => {\n const id = generateToastId();\n const entry: ToastEntry = {\n createdAt: nowEpochMilliseconds(),\n id,\n options,\n };\n context.addToast(entry);\n return () => context.removeToast(id, 'manual');\n },\n [context],\n );\n}\n"]}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=chunk-A2AC6WL5.cjs.map
4
+ //# sourceMappingURL=chunk-A2AC6WL5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-A2AC6WL5.cjs"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkMAYQGKKW_cjs = require('./chunk-MAYQGKKW.cjs');
4
- var chunkBSI4BQEX_cjs = require('./chunk-BSI4BQEX.cjs');
5
- var chunkJSAYTQTJ_cjs = require('./chunk-JSAYTQTJ.cjs');
4
+ var chunkGU65FGY6_cjs = require('./chunk-GU65FGY6.cjs');
5
+ var chunkGJZAGTPV_cjs = require('./chunk-GJZAGTPV.cjs');
6
6
  var chunkJ4PIYOWT_cjs = require('./chunk-J4PIYOWT.cjs');
7
7
  var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
8
8
  var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
@@ -35,7 +35,14 @@ var toggleButtonRecipe = chunkZ6RT3WPE_cjs.sva({
35
35
  label: {
36
36
  overflow: "hidden",
37
37
  textOverflow: "ellipsis",
38
- minW: 0
38
+ minW: 0,
39
+ // The label is a (blockified) flex item, so `overflow: hidden` clips it to
40
+ // its line box. With a tight line-height that crops descenders (e.g. the
41
+ // "g" in "Going"), so pad the clip box vertically and cancel the padding
42
+ // with a negative margin to keep layout unchanged.
43
+ py: "0.25em",
44
+ mt: "-0.35em",
45
+ mb: "-0.25em"
39
46
  },
40
47
  widthReservation: {
41
48
  display: "block",
@@ -212,17 +219,17 @@ function ToggleButton({
212
219
  style,
213
220
  type: "button",
214
221
  children: /* @__PURE__ */ jsxRuntime.jsxs("span", { "aria-hidden": isLoading || void 0, className: classes.content, children: [
215
- resolvedIcon != null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.icon, children: isIconOnly && isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkBSI4BQEX_cjs.Spinner, { size }) : /* @__PURE__ */ jsxRuntime.jsx(chunkJ4PIYOWT_cjs.Icon, { icon: resolvedIcon, size }) }) : null,
222
+ resolvedIcon != null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.icon, children: isIconOnly && isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGU65FGY6_cjs.Spinner, { size }) : /* @__PURE__ */ jsxRuntime.jsx(chunkJ4PIYOWT_cjs.Icon, { icon: resolvedIcon, size }) }) : null,
216
223
  !isIconOnly ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: classes.labelWrapper, children: [
217
224
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.label, children: label }),
218
225
  /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: classes.widthReservation, children: label })
219
226
  ] }) : null,
220
- !isIconOnly && isLoading ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: classes.spinner, children: /* @__PURE__ */ jsxRuntime.jsx(chunkBSI4BQEX_cjs.Spinner, { size }) }) : null
227
+ !isIconOnly && isLoading ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: classes.spinner, children: /* @__PURE__ */ jsxRuntime.jsx(chunkGU65FGY6_cjs.Spinner, { size }) }) : null
221
228
  ] })
222
229
  }
223
230
  );
224
231
  if (tooltip != null) {
225
- return /* @__PURE__ */ jsxRuntime.jsx(chunkJSAYTQTJ_cjs.Tooltip, { content: tooltip, children: button });
232
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkGJZAGTPV_cjs.Tooltip, { content: tooltip, children: button });
226
233
  }
227
234
  return button;
228
235
  }
@@ -230,5 +237,5 @@ ToggleButton.displayName = "ToggleButton";
230
237
 
231
238
  exports.ToggleButton = ToggleButton;
232
239
  exports.ToggleButtonGroup = ToggleButtonGroup;
233
- //# sourceMappingURL=chunk-BIJ6YDWJ.cjs.map
234
- //# sourceMappingURL=chunk-BIJ6YDWJ.cjs.map
240
+ //# sourceMappingURL=chunk-AFJEAYR4.cjs.map
241
+ //# sourceMappingURL=chunk-AFJEAYR4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ToggleButton/ToggleButton.recipe.ts","../src/components/ToggleButton/ToggleButtonGroup.tsx","../src/components/ToggleButton/ToggleButton.tsx"],"names":["sva","createContext","use","css","useMemo","useCallback","current","jsx","cx","buttonRecipe","Spinner","Icon","jsxs","Tooltip"],"mappings":";;;;;;;;;;;;;AAEO,IAAM,qBAAqBA,qBAAA,CAAI;AAAA,EACpC,KAAA,EAAO;AAAA,IACL,MAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA;AAAA,IACA,kBAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS;AAAA,MACP,OAAA,EAAS;AAAA,KACX;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,OAAA,EAAS,aAAA;AAAA,MACT,aAAA,EAAe,QAAA;AAAA,MACf,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,IAAA,EAAM;AAAA,KACR;AAAA,IACA,KAAA,EAAO;AAAA,MACL,QAAA,EAAU,QAAA;AAAA,MACV,YAAA,EAAc,UAAA;AAAA,MACd,IAAA,EAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAKN,EAAA,EAAI,QAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB,OAAA,EAAS,OAAA;AAAA,MACT,CAAA,EAAG,CAAA;AAAA,MACH,QAAA,EAAU,QAAA;AAAA,MACV,UAAA,EAAY,QAAA;AAAA,MACZ,aAAA,EAAe,MAAA;AAAA,MACf,UAAA,EAAY;AAAA,KACd;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,aAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,UAAA,EAAY;AAAA,KACd;AAAA,IACA,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,aAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,QAAA,EAAU;AAAA;AAAA;AAAA;AAAA,IAIR,UAAA,EAAY;AAAA,MACV,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM;AAAA,UACJ,EAAA,EAAI,WAAA;AAAA,UACJ,UAAA,EAAY,UAAA;AAAA,UACZ,MAAA,EAAQ,EAAC,EAAA,EAAI,WAAA,EAAW;AAAA,UACxB,OAAA,EAAS,EAAC,EAAA,EAAI,WAAA;AAAW;AAC3B,OACF;AAAA,MACA,OAAO;AAAC;AACV,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,UAAA,EAAY;AAAA;AAEhB,CAAC,CAAA;ACpDD,IAAM,wBAAA,GACJC,oBAAoD,IAAI,CAAA;AAE1D,wBAAA,CAAyB,WAAA,GAAc,0BAAA;AAEhC,SAAS,oBAAA,GAA6D;AAC3E,EAAA,OAAOC,UAAI,wBAAwB,CAAA;AACrC;AA+EA,IAAM,MAAA,GAAS;AAAA,EACb,OAAOC,qBAAA,CAAI;AAAA,IACT,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,UAAUA,qBAAA,CAAI;AAAA,IACZ,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY;AAAA,GACb;AACH,CAAA;AAKO,SAAS,iBAAA,CAAkB;AAAA,EAChC,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA,GAAa,KAAA;AAAA,EACb,KAAA;AAAA,EACA,WAAA,GAAc,YAAA;AAAA,EACd,GAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8C;AAC5C,EAAA,MAAM,UAAA,GAAa,MAAM,IAAA,KAAS,UAAA;AAClC,EAAA,MAAM,EAAC,QAAA,EAAU,KAAA,EAAK,GAAI,KAAA;AAE1B,EAAA,MAAM,cAAA,GAAiBC,cAAQ,MAAM;AACnC,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,OAAO,IAAI,IAAI,KAAiB,CAAA;AAAA,IAClC;AAEA,IAAA,OAAO,KAAA,IAAS,uBAAO,IAAI,GAAA,qBAAgB,IAAI,GAAA,CAAI,CAAC,KAAe,CAAC,CAAA;AAAA,EACtE,CAAA,EAAG,CAAC,UAAA,EAAY,KAAK,CAAC,CAAA;AAEtB,EAAA,MAAM,QAAA,GAAWC,iBAAA;AAAA,IACf,CAAC,SAAA,KAAsB;AACrB,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,MAAMC,QAAAA,GAAU,KAAA;AAChB,QAAC,QAAA;AAAA,UACCA,QAAAA,CAAQ,QAAA,CAAS,SAAS,CAAA,GACtBA,QAAAA,CAAQ,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,KAAM,SAAS,CAAA,GACnC,CAAC,GAAGA,UAAS,SAAS;AAAA,SAC5B;AACA,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,OAAA,GAAU,KAAA;AAChB,MAAC,QAAA;AAAA,QACC,OAAA,KAAY,YAAY,IAAA,GAAO;AAAA,OACjC;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAA,EAAY,KAAA,EAAO,QAAQ;AAAA,GAC9B;AAEA,EAAA,MAAM,YAAA,GAAeF,aAAA;AAAA,IACnB,OAAO,EAAC,UAAA,EAAY,QAAA,EAAU,gBAAgB,IAAA,EAAI,CAAA;AAAA,IAClD,CAAC,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,IAAI;AAAA,GAC7C;AAEA,EAAA,uBACEG,cAAA,CAAC,wBAAA,EAAA,EAAyB,KAAA,EAAO,YAAA,EAC/B,QAAA,kBAAAA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,iBAAe,UAAA,IAAc,MAAA;AAAA,MAC7B,YAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAWC,oBAAA;AAAA,QACT,MAAA,CAAO,KAAA;AAAA,QACP,WAAA,KAAgB,UAAA,GAAa,MAAA,CAAO,QAAA,GAAW,MAAA;AAAA,QAC/C;AAAA,OACF;AAAA,MACA,kBAAA,EAAkB,WAAA;AAAA,MAClB,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,KAAA;AAAA,MACC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AChHzB,SAAS,YAAA,CAAa;AAAA,EAC3B,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,IAAA;AAAA,EACA,YAAY,cAAA,GAAiB,KAAA;AAAA,EAC7B,UAAA,GAAa,KAAA;AAAA,EACb,SAAA,GAAY,KAAA;AAAA,EACZ,YAAY,cAAA,GAAiB,KAAA;AAAA,EAC7B,KAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA,EAAM,QAAA;AAAA,EACN,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAAyC;AACvC,EAAA,MAAM,QAAQ,oBAAA,EAAqB;AAEnC,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,IAAA,IAAI,KAAA,IAAS,IAAA,IAAQ,KAAA,IAAS,IAAA,EAAM;AAClC,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,UAAA,GACJ,SAAS,IAAA,IAAQ,KAAA,IAAS,OACtB,KAAA,CAAM,cAAA,CAAe,GAAA,CAAI,KAAK,CAAA,GAC9B,cAAA;AACN,EAAA,MAAM,IAAA,GAAO,QAAA,IAAY,KAAA,EAAO,IAAA,IAAQ,IAAA;AACxC,EAAA,MAAM,UAAA,GAAa,cAAA,IAAkB,KAAA,EAAO,UAAA,KAAe,IAAA;AAC3D,EAAA,MAAM,YAAA,GAAe,UAAA,IAAc,YAAA,IAAgB,IAAA,GAAO,YAAA,GAAe,IAAA;AACzE,EAAA,MAAM,OAAA,GAAU,kBAAA,CAAmB,EAAC,UAAA,EAAW,CAAA;AAE/C,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAyC;AAC5D,IAAA,IAAI,cAAc,SAAA,EAAW;AAC3B,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,KAAA,IAAS,IAAA,IAAQ,KAAA,IAAS,IAAA,EAAM;AAClC,MAAA,KAAA,CAAM,SAAS,KAAK,CAAA;AACpB,MAAA;AAAA,IACF;AAEA,IAAA,QAAA,GAAW,CAAC,UAAU,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM,yBACJD,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,aAAW,SAAA,IAAa,MAAA;AAAA,MACxB,YAAA,EAAY,UAAA,IAAc,SAAA,GAAY,KAAA,GAAQ,MAAA;AAAA,MAC9C,cAAA,EAAc,UAAA;AAAA,MACd,SAAA,EAAWC,oBAAA;AAAA,QACTC,8BAAA,CAAa,EAAC,OAAA,EAAS,OAAA,EAAS,MAAM,QAAA,EAAU,UAAA,EAAW,CAAA,CAAE,IAAA;AAAA,QAC7D,OAAA,CAAQ,IAAA;AAAA,QACR;AAAA,OACF;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,UAAU,UAAA,IAAc,SAAA;AAAA,MACxB,OAAA,EAAS,WAAA;AAAA,MACT,GAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,0CAAC,MAAA,EAAA,EAAK,aAAA,EAAa,aAAa,MAAA,EAAW,SAAA,EAAW,QAAQ,OAAA,EAC3D,QAAA,EAAA;AAAA,QAAA,YAAA,IAAgB,IAAA,mBACfF,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAW,OAAA,CAAQ,IAAA,EACtB,wBAAc,SAAA,mBACbA,eAACG,yBAAA,EAAA,EAAQ,IAAA,EAAY,oBAErBH,cAAAA,CAACI,0BAAK,IAAA,EAAM,YAAA,EAAc,IAAA,EAAY,CAAA,EAE1C,CAAA,GACE,IAAA;AAAA,QACH,CAAC,UAAA,mBACAC,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,QAAQ,YAAA,EACvB,QAAA,EAAA;AAAA,0BAAAL,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,OAAA,CAAQ,OAAQ,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BACvCA,eAAC,MAAA,EAAA,EAAK,aAAA,EAAY,QAAO,SAAA,EAAW,OAAA,CAAQ,kBACzC,QAAA,EAAA,KAAA,EACH;AAAA,SAAA,EACF,CAAA,GACE,IAAA;AAAA,QACH,CAAC,UAAA,IAAc,SAAA,mBACdA,cAAAA,CAAC,UAAK,aAAA,EAAY,MAAA,EAAO,SAAA,EAAW,OAAA,CAAQ,SAC1C,QAAA,kBAAAA,cAAAA,CAACG,yBAAA,EAAA,EAAQ,IAAA,EAAY,GACvB,CAAA,GACE;AAAA,OAAA,EACN;AAAA;AAAA,GACF;AAGF,EAAA,IAAI,WAAW,IAAA,EAAM;AACnB,IAAA,uBAAOH,cAAAA,CAACM,yBAAA,EAAA,EAAQ,OAAA,EAAS,SAAU,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,EAC5C;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA","file":"chunk-AFJEAYR4.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const toggleButtonRecipe = sva({\n slots: [\n 'root',\n 'content',\n 'labelWrapper',\n 'label',\n 'widthReservation',\n 'icon',\n 'spinner',\n ],\n base: {\n content: {\n display: 'contents',\n },\n labelWrapper: {\n display: 'inline-flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minW: 0,\n },\n label: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n minW: 0,\n // The label is a (blockified) flex item, so `overflow: hidden` clips it to\n // its line box. With a tight line-height that crops descenders (e.g. the\n // \"g\" in \"Going\"), so pad the clip box vertically and cancel the padding\n // with a negative margin to keep layout unchanged.\n py: '0.25em',\n mt: '-0.35em',\n mb: '-0.25em',\n },\n widthReservation: {\n display: 'block',\n h: 0,\n overflow: 'hidden',\n visibility: 'hidden',\n pointerEvents: 'none',\n fontWeight: 'semibold',\n },\n icon: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n },\n spinner: {\n display: 'inline-flex',\n alignItems: 'center',\n color: 'inherit',\n },\n },\n variants: {\n // The core button visuals (size/variant/iconOnly) come from the shared\n // `buttonRecipe`; this recipe only layers the selected-state override on the\n // root, which is composed with the button root via `cx`.\n isSelected: {\n true: {\n root: {\n bg: 'bg.subtle',\n fontWeight: 'semibold',\n _hover: {bg: 'bg.subtle'},\n _active: {bg: 'bg.subtle'},\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isSelected: false,\n },\n});\n\nexport type ToggleButtonVariants = RecipeVariantProps<\n typeof toggleButtonRecipe\n>;\n","import {\n createContext,\n use,\n useCallback,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport type {ButtonSize} from 'components/Button';\nimport {cx} from 'internal/cx';\nimport {css} from 'styled-system/css';\n\nexport type ToggleButtonGroupOrientation = 'horizontal' | 'vertical';\n\ninterface ToggleButtonGroupContextValue {\n isDisabled?: boolean;\n onToggle: (value: string) => void;\n selectedValues: Set<string>;\n size?: ButtonSize;\n}\n\nconst ToggleButtonGroupContext =\n createContext<ToggleButtonGroupContextValue | null>(null);\n\nToggleButtonGroupContext.displayName = 'ToggleButtonGroupContext';\n\nexport function useToggleButtonGroup(): ToggleButtonGroupContextValue | null {\n return use(ToggleButtonGroupContext);\n}\n\ninterface ToggleButtonGroupBaseProps {\n /**\n * Toggle button children.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the group root.\n */\n className?: string;\n /**\n * Test ID applied to the group root.\n */\n 'data-testid'?: string;\n /**\n * Whether all buttons in the group are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Accessible label for the group.\n */\n label: string;\n /**\n * Group orientation.\n * @default 'horizontal'\n */\n orientation?: ToggleButtonGroupOrientation;\n /**\n * Ref forwarded to the group root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Default size for buttons in the group.\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the group root.\n */\n style?: CSSProperties;\n}\n\nexport interface ToggleButtonGroupSingleProps extends ToggleButtonGroupBaseProps {\n /**\n * Called with the selected value when selection changes, or `null`\n * when the active button is deselected.\n */\n onChange: (value: string | null) => void;\n /**\n * Single-selection mode. Clicking the active button clears selection.\n * @default 'single'\n */\n type?: 'single';\n /**\n * Currently selected value, or `null` for no selection.\n */\n value: string | null;\n}\n\nexport interface ToggleButtonGroupMultipleProps extends ToggleButtonGroupBaseProps {\n /**\n * Called with the array of selected values when selection changes.\n */\n onChange: (value: string[]) => void;\n /**\n * Multiple-selection mode.\n */\n type: 'multiple';\n /**\n * Currently selected values.\n */\n value: string[];\n}\n\nexport type ToggleButtonGroupProps =\n | ToggleButtonGroupSingleProps\n | ToggleButtonGroupMultipleProps;\n\nconst styles = {\n group: css({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '1',\n }),\n vertical: css({\n flexDirection: 'column',\n alignItems: 'stretch',\n }),\n} as const;\n\n/**\n * Groups related ToggleButtons and manages shared selection state.\n */\nexport function ToggleButtonGroup({\n children,\n className,\n 'data-testid': dataTestId,\n isDisabled = false,\n label,\n orientation = 'horizontal',\n ref,\n size,\n style,\n ...props\n}: ToggleButtonGroupProps): React.JSX.Element {\n const isMultiple = props.type === 'multiple';\n const {onChange, value} = props;\n\n const selectedValues = useMemo(() => {\n if (isMultiple) {\n return new Set(value as string[]);\n }\n\n return value == null ? new Set<string>() : new Set([value as string]);\n }, [isMultiple, value]);\n\n const onToggle = useCallback(\n (itemValue: string) => {\n if (isMultiple) {\n const current = value as string[];\n (onChange as (v: string[]) => void)(\n current.includes(itemValue)\n ? current.filter(v => v !== itemValue)\n : [...current, itemValue],\n );\n return;\n }\n\n const current = value as string | null;\n (onChange as (v: string | null) => void)(\n current === itemValue ? null : itemValue,\n );\n },\n [isMultiple, value, onChange],\n );\n\n const contextValue = useMemo(\n () => ({isDisabled, onToggle, selectedValues, size}),\n [isDisabled, onToggle, selectedValues, size],\n );\n\n return (\n <ToggleButtonGroupContext value={contextValue}>\n <div\n aria-disabled={isDisabled || undefined}\n aria-label={label}\n className={cx(\n styles.group,\n orientation === 'vertical' ? styles.vertical : undefined,\n className,\n )}\n data-orientation={orientation}\n data-testid={dataTestId}\n ref={ref}\n role=\"group\"\n style={style}>\n {children}\n </div>\n </ToggleButtonGroupContext>\n );\n}\n\nToggleButtonGroup.displayName = 'ToggleButtonGroup';\n","import type {CSSProperties, MouseEvent, Ref} from 'react';\nimport type {ButtonSize} from 'components/Button';\nimport {buttonRecipe} from 'components/Button/Button.recipe';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Spinner} from 'components/Spinner';\nimport {toggleButtonRecipe} from 'components/ToggleButton/ToggleButton.recipe';\nimport {useToggleButtonGroup} from 'components/ToggleButton/ToggleButtonGroup';\nimport {Tooltip} from 'components/Tooltip';\nimport {cx} from 'internal/cx';\n\nexport interface ToggleButtonProps {\n /**\n * Additional CSS class names applied to the button root.\n */\n className?: string;\n /**\n * Test ID applied to the button root.\n */\n 'data-testid'?: string;\n /**\n * Icon element rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the button is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label and render a square icon button.\n * @default false\n */\n isIconOnly?: boolean;\n /**\n * Whether the button is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Whether the button is currently selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Accessible label for the button.\n */\n label: string;\n /**\n * Called when the selected state should change.\n */\n onChange?: (isSelected: boolean) => void;\n /**\n * Ref forwarded to the button root.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Icon element rendered when the button is selected.\n */\n selectedIcon?: IconComponent;\n /**\n * Visual size of the button.\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the button root.\n */\n style?: CSSProperties;\n /**\n * Tooltip text shown on hover.\n */\n tooltip?: string;\n /**\n * Value identifier when used inside `ToggleButtonGroup`.\n */\n value?: string;\n}\n\n/**\n * Button that toggles between selected and unselected states.\n */\nexport function ToggleButton({\n className,\n 'data-testid': dataTestId,\n icon,\n isDisabled: isDisabledProp = false,\n isIconOnly = false,\n isLoading = false,\n isSelected: isSelectedProp = false,\n label,\n onChange,\n selectedIcon,\n ref,\n size: sizeProp,\n style,\n tooltip,\n value,\n}: ToggleButtonProps): React.JSX.Element {\n const group = useToggleButtonGroup();\n\n if (process.env.NODE_ENV !== 'production') {\n if (group != null && value == null) {\n throw new Error(\n 'ToggleButton: `value` prop is required when used inside a ToggleButtonGroup.',\n );\n }\n }\n\n const isSelected =\n group != null && value != null\n ? group.selectedValues.has(value)\n : isSelectedProp;\n const size = sizeProp ?? group?.size ?? 'md';\n const isDisabled = isDisabledProp || group?.isDisabled === true;\n const resolvedIcon = isSelected && selectedIcon != null ? selectedIcon : icon;\n const classes = toggleButtonRecipe({isSelected});\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (isDisabled || isLoading) {\n event.preventDefault();\n return;\n }\n\n if (group != null && value != null) {\n group.onToggle(value);\n return;\n }\n\n onChange?.(!isSelected);\n };\n\n const button = (\n <button\n aria-busy={isLoading || undefined}\n aria-label={isIconOnly || isLoading ? label : undefined}\n aria-pressed={isSelected}\n className={cx(\n buttonRecipe({variant: 'ghost', size, iconOnly: isIconOnly}).root,\n classes.root,\n className,\n )}\n data-testid={dataTestId}\n disabled={isDisabled || isLoading}\n onClick={handleClick}\n ref={ref}\n style={style}\n type=\"button\">\n <span aria-hidden={isLoading || undefined} className={classes.content}>\n {resolvedIcon != null ? (\n <span className={classes.icon}>\n {isIconOnly && isLoading ? (\n <Spinner size={size} />\n ) : (\n <Icon icon={resolvedIcon} size={size} />\n )}\n </span>\n ) : null}\n {!isIconOnly ? (\n <span className={classes.labelWrapper}>\n <span className={classes.label}>{label}</span>\n <span aria-hidden=\"true\" className={classes.widthReservation}>\n {label}\n </span>\n </span>\n ) : null}\n {!isIconOnly && isLoading ? (\n <span aria-hidden=\"true\" className={classes.spinner}>\n <Spinner size={size} />\n </span>\n ) : null}\n </span>\n </button>\n );\n\n if (tooltip != null) {\n return <Tooltip content={tooltip}>{button}</Tooltip>;\n }\n\n return button;\n}\n\nToggleButton.displayName = 'ToggleButton';\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-AFXU6XIS.js.map
3
+ //# sourceMappingURL=chunk-AFXU6XIS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-AFXU6XIS.js"}
@@ -1,3 +1,4 @@
1
+ import { ActionElement } from './chunk-PG4CZRTU.js';
1
2
  import { isReactNode } from './chunk-2PSZAWLC.js';
2
3
  import { Icon } from './chunk-IUW777WZ.js';
3
4
  import { sva } from './chunk-IAVZKGZS.js';
@@ -348,15 +349,16 @@ function TreeViewItem({
348
349
  const handlePointerDown = useCallback(() => {
349
350
  onFocusItem(id, false);
350
351
  }, [id, onFocusItem]);
351
- const handleDisabledLinkClick = useCallback(
352
+ const handleActionClick = useCallback(
352
353
  (event) => {
353
- if (!isDisabled) {
354
+ if (isDisabled) {
355
+ event.preventDefault();
356
+ event.stopPropagation();
354
357
  return;
355
358
  }
356
- event.preventDefault();
357
- event.stopPropagation();
359
+ onClick?.(event);
358
360
  },
359
- [isDisabled]
361
+ [isDisabled, onClick]
360
362
  );
361
363
  const labelAndDescription = /* @__PURE__ */ jsxs(Fragment, { children: [
362
364
  /* @__PURE__ */ jsx("span", { className: styles3.label, id: labelId, children: label }),
@@ -377,31 +379,20 @@ function TreeViewItem({
377
379
  const content = /* @__PURE__ */ jsxs(Fragment, { children: [
378
380
  toggle,
379
381
  !isReactNode(startContent) ? null : /* @__PURE__ */ jsx("span", { className: styles3.startContent, children: startContent }),
380
- href != null ? /* @__PURE__ */ jsx(
381
- "a",
382
+ href != null || onClick != null ? /* @__PURE__ */ jsx(
383
+ ActionElement,
382
384
  {
383
385
  "aria-describedby": description == null ? void 0 : descriptionId,
384
- "aria-disabled": isDisabled || void 0,
386
+ "aria-disabled": href != null && isDisabled ? true : void 0,
385
387
  "aria-labelledby": labelId,
386
388
  className: styles3.invisibleAction,
387
389
  href,
388
- onClick: handleDisabledLinkClick,
389
- ref: actionRef,
390
- tabIndex: -1,
391
- target,
392
- children: labelAndDescription
393
- }
394
- ) : onClick != null ? /* @__PURE__ */ jsx(
395
- "button",
396
- {
397
- "aria-describedby": description == null ? void 0 : descriptionId,
398
- "aria-labelledby": labelId,
399
- className: styles3.invisibleAction,
400
- disabled: isDisabled,
401
- onClick,
390
+ isDisabled: href == null ? isDisabled : void 0,
391
+ isLink: href != null,
392
+ onClick: handleActionClick,
402
393
  ref: actionRef,
403
394
  tabIndex: -1,
404
- type: "button",
395
+ target: href != null ? target : void 0,
405
396
  children: labelAndDescription
406
397
  }
407
398
  ) : /* @__PURE__ */ jsx("span", { className: styles3.content, children: labelAndDescription }),
@@ -744,5 +735,5 @@ function TreeView({
744
735
  TreeView.displayName = "TreeView";
745
736
 
746
737
  export { TreeView };
747
- //# sourceMappingURL=chunk-L5PJCLV6.js.map
748
- //# sourceMappingURL=chunk-L5PJCLV6.js.map
738
+ //# sourceMappingURL=chunk-AKAXQ4RL.js.map
739
+ //# sourceMappingURL=chunk-AKAXQ4RL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/TreeView/TreeView.recipe.ts","../src/components/TreeView/TreeViewBranches.recipe.ts","../src/components/TreeView/TreeViewBranches.tsx","../src/components/TreeView/TreeViewItem.recipe.ts","../src/components/TreeView/TreeViewItem.tsx","../src/components/TreeView/TreeView.tsx"],"names":["styles","jsxs","Fragment","jsx","useId","useRef","useCallback"],"mappings":"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","file":"chunk-AKAXQ4RL.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const treeViewRecipe = sva({\n slots: ['root', 'header', 'list'],\n base: {\n root: {\n position: 'relative',\n },\n header: {\n mb: '2',\n },\n list: {\n m: 0,\n p: 0,\n listStyleType: 'none',\n },\n },\n});\n\nexport type TreeViewVariants = RecipeVariantProps<typeof treeViewRecipe>;\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const treeViewBranchesRecipe = sva({\n slots: ['container', 'line'],\n base: {\n container: {\n position: 'absolute',\n h: 'full',\n w: '5',\n },\n line: {\n position: 'absolute',\n insetInline: 0,\n m: 'auto',\n w: '1px',\n h: 'calc(100% + 1px)',\n borderRadius: 'xs',\n bg: 'border.emphasized',\n },\n },\n});\n\nexport type TreeViewBranchesVariants = RecipeVariantProps<\n typeof treeViewBranchesRecipe\n>;\n","/* eslint-disable silver-ui/require-component-props -- internal presentational connector */\n\nimport {treeViewBranchesRecipe} from 'components/TreeView/TreeViewBranches.recipe';\n\nconst styles = treeViewBranchesRecipe();\n\nconst branchOffset = '6px';\n\ninterface TreeViewBranchesProps {\n /**\n * Whether each ancestor at the corresponding level is the last sibling.\n */\n ancestorsIsLast: ReadonlyArray<boolean>;\n /**\n * Zero-based nesting depth used to draw vertical connector lines.\n */\n nestedLevel: number;\n}\n\n/**\n * Renders vertical connector lines for tree item indentation levels.\n */\nexport function TreeViewBranches({\n ancestorsIsLast,\n nestedLevel,\n}: TreeViewBranchesProps): React.JSX.Element {\n return (\n <>\n {ancestorsIsLast.map((ancestorIsLast, level) => {\n if (ancestorIsLast || level === nestedLevel - 1) {\n return null;\n }\n\n return (\n <div\n className={styles.container}\n // eslint-disable-next-line @eslint-react/no-array-index-key -- level is the stable connector coordinate\n key={level}\n style={{left: `calc(${branchOffset} + ${level} * 16px)`}}>\n <div className={styles.line} />\n </div>\n );\n })}\n {nestedLevel > 0 ? (\n <div\n className={styles.container}\n style={{left: `calc(${branchOffset} + ${nestedLevel - 1} * 16px)`}}>\n <div className={styles.line} />\n </div>\n ) : null}\n </>\n );\n}\n\nTreeViewBranches.displayName = 'TreeViewBranches';\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const treeViewItemRecipe = sva({\n slots: [\n 'wrapper',\n 'treeBranches',\n 'rowWrapper',\n 'contentWrapper',\n 'toggleButton',\n 'toggleSpacer',\n 'toggleIcon',\n 'startContent',\n 'content',\n 'invisibleAction',\n 'label',\n 'description',\n 'endContent',\n 'childGroup',\n ],\n base: {\n wrapper: {\n position: 'relative',\n m: 0,\n p: 0,\n w: 'full',\n listStyleType: 'none',\n outline: 'none',\n },\n treeBranches: {\n ps: '2',\n },\n rowWrapper: {\n position: 'relative',\n },\n contentWrapper: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n overflow: 'hidden',\n px: '2',\n borderRadius: 'md',\n outline: 'none',\n textAlign: 'start',\n },\n toggleButton: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n w: '4',\n h: '4',\n borderRadius: 'sm',\n color: 'fg.muted',\n cursor: 'pointer',\n },\n toggleSpacer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n w: '4',\n h: '4',\n color: 'fg.muted',\n },\n toggleIcon: {\n display: 'flex',\n transitionDuration: 'fast',\n transitionProperty: 'transform',\n transitionTimingFunction: 'default',\n },\n startContent: {\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n },\n content: {\n display: 'flex',\n flex: 1,\n minW: 0,\n flexDirection: 'column',\n textAlign: 'start',\n },\n invisibleAction: {\n display: 'flex',\n flex: 1,\n minW: 0,\n flexDirection: 'column',\n color: 'inherit',\n cursor: 'inherit',\n font: 'inherit',\n textAlign: 'start',\n textDecoration: 'none',\n outline: 'none',\n },\n label: {\n color: 'fg',\n },\n description: {\n color: 'fg.muted',\n fontSize: 'xs',\n lineHeight: 'normal',\n },\n endContent: {\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n ml: 'auto',\n },\n childGroup: {\n m: 0,\n p: 0,\n listStyleType: 'none',\n },\n },\n variants: {\n density: {\n balanced: {\n contentWrapper: {py: '2', fontSize: 'sm', lineHeight: 'normal'},\n },\n compact: {\n contentWrapper: {py: '1', fontSize: 'sm', lineHeight: 'normal'},\n },\n spacious: {\n contentWrapper: {py: '3', fontSize: 'sm', lineHeight: 'normal'},\n },\n },\n isInteractive: {\n true: {\n contentWrapper: {\n cursor: 'pointer',\n transitionDuration: 'fast',\n transitionProperty: 'background-color',\n transitionTimingFunction: 'default',\n _active: {\n bg: 'bg.hover',\n },\n _hover: {\n '@media (hover: hover)': {\n bg: 'bg.subtle',\n },\n },\n },\n },\n false: {},\n },\n isDisabled: {\n true: {\n contentWrapper: {\n cursor: 'not-allowed',\n opacity: 0.5,\n pointerEvents: 'none',\n },\n },\n false: {},\n },\n isSelected: {\n true: {\n contentWrapper: {bg: 'bg.selected'},\n },\n false: {},\n },\n isFocused: {\n true: {\n contentWrapper: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n false: {},\n },\n isExpanded: {\n true: {\n toggleIcon: {transform: 'rotate(90deg)'},\n },\n false: {},\n },\n },\n defaultVariants: {\n density: 'balanced',\n isInteractive: false,\n isDisabled: false,\n isSelected: false,\n isFocused: false,\n isExpanded: false,\n },\n});\n\nexport type TreeViewItemVariants = RecipeVariantProps<\n typeof treeViewItemRecipe\n>;\n","/* eslint-disable jsx-a11y-x/no-noninteractive-element-to-interactive-role, jsx-a11y-x/no-static-element-interactions, silver-ui/require-component-props -- internal recursive tree item */\n\nimport {ChevronRight} from 'lucide-react';\nimport {useCallback, useId, useRef, type ReactNode, type Ref} from 'react';\nimport {Icon} from 'components/Icon';\nimport {TreeViewBranches} from 'components/TreeView/TreeViewBranches';\nimport {treeViewItemRecipe} from 'components/TreeView/TreeViewItem.recipe';\nimport type {TreeViewDensity} from 'components/TreeView/types';\nimport {ActionElement} from 'internal/ActionElement';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\ninterface TreeViewItemProps {\n /**\n * Whether each ancestor at the corresponding level is the last sibling.\n */\n ancestorsIsLast: ReadonlyArray<boolean>;\n /**\n * Plain-text label used for generated control labels.\n */\n ariaLabel?: string;\n /**\n * Spacing density for the item.\n */\n density: TreeViewDensity;\n /**\n * Secondary description text shown below the label.\n */\n description?: string;\n /**\n * Content rendered at the end of the item row.\n */\n endContent?: React.ReactNode;\n /**\n * Whether this item has child items.\n */\n hasChildren: boolean;\n /**\n * Link destination. When provided, the item renders as a link.\n */\n href?: string;\n /**\n * Unique identifier for the item.\n */\n id: string;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the item's children are visible.\n */\n isExpanded: boolean;\n /**\n * Whether this item currently owns roving focus.\n */\n isFocused: boolean;\n /**\n * Whether the item is selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Primary label content.\n */\n label: React.ReactNode;\n /**\n * Zero-based nesting depth of this item.\n */\n nestedLevel: number;\n /**\n * Click handler for the item action.\n */\n onClick?: (event: React.MouseEvent) => void;\n /**\n * Called when the item receives focus.\n */\n onFocusItem: (id: string, isFocusVisible?: boolean) => void;\n /**\n * Called for tree keyboard navigation.\n */\n onItemKeyDown: (\n event: React.KeyboardEvent<HTMLLIElement>,\n id: string,\n ) => void;\n /**\n * Called when the expand/collapse toggle is activated.\n */\n onToggle?: (id: string) => void;\n /**\n * Ref forwarded to the treeitem element.\n */\n ref?: Ref<HTMLLIElement>;\n /**\n * Pre-rendered child items.\n */\n renderedChildren?: ReactNode;\n /**\n * Content rendered before the label.\n */\n startContent?: React.ReactNode;\n /**\n * Roving tab index for this treeitem.\n */\n tabIndex: 0 | -1;\n /**\n * Link target attribute (e.g. '_blank').\n */\n target?: string;\n}\n\n/**\n * Renders a single tree item with toggle, branch lines, and optional link or button action.\n */\nexport function TreeViewItem({\n ariaLabel,\n ancestorsIsLast,\n density,\n description,\n endContent,\n hasChildren,\n href,\n id,\n isDisabled = false,\n isExpanded,\n isFocused,\n isSelected = false,\n label,\n nestedLevel,\n onClick,\n onFocusItem,\n onItemKeyDown,\n onToggle,\n ref,\n renderedChildren,\n startContent,\n tabIndex,\n target,\n}: TreeViewItemProps): React.JSX.Element {\n const labelId = useId();\n const descriptionId = useId();\n const actionRef = useRef<HTMLElement>(null);\n const isInteractive = onClick != null || href != null;\n const togglesOnRow = hasChildren && onClick == null && onToggle != null;\n const styles = treeViewItemRecipe({\n density,\n isInteractive: isInteractive || togglesOnRow,\n isDisabled,\n isSelected,\n isFocused,\n isExpanded,\n });\n const textLabel =\n ariaLabel ??\n (typeof label === 'string' || typeof label === 'number'\n ? String(label)\n : id);\n\n const handleToggle = useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n onToggle?.(id);\n },\n [id, onToggle],\n );\n\n const handleRowClick = useCallback(() => {\n if (!togglesOnRow) {\n return;\n }\n\n if (isDisabled) {\n return;\n }\n onToggle(id);\n }, [id, isDisabled, onToggle, togglesOnRow]);\n\n const handleRowKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n event.stopPropagation();\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (togglesOnRow) {\n handleRowClick();\n return;\n }\n actionRef.current?.click();\n return;\n }\n onItemKeyDown(event, id);\n },\n [handleRowClick, id, onItemKeyDown, togglesOnRow],\n );\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLLIElement>) => {\n if (event.currentTarget !== event.target) {\n return;\n }\n onFocusItem(id, event.currentTarget.matches(':focus-visible'));\n },\n [id, onFocusItem],\n );\n\n const handlePointerDown = useCallback(() => {\n onFocusItem(id, false);\n }, [id, onFocusItem]);\n\n const handleActionClick = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (isDisabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n onClick?.(event);\n },\n [isDisabled, onClick],\n );\n\n const labelAndDescription = (\n <>\n <span className={styles.label} id={labelId}>\n {label}\n </span>\n {description == null ? null : (\n <span className={styles.description} id={descriptionId}>\n {description}\n </span>\n )}\n </>\n );\n\n const toggleIcon = (\n <span className={styles.toggleIcon}>\n <Icon icon={ChevronRight} size=\"sm\" />\n </span>\n );\n\n const toggle = hasChildren ? (\n onClick != null ? (\n <button\n aria-label={`Toggle ${textLabel} children`}\n className={styles.toggleButton}\n onClick={handleToggle}\n tabIndex={-1}\n type=\"button\">\n {toggleIcon}\n </button>\n ) : (\n <span className={styles.toggleSpacer}>{toggleIcon}</span>\n )\n ) : null;\n\n const content = (\n <>\n {toggle}\n {!isReactNode(startContent) ? null : (\n <span className={styles.startContent}>{startContent}</span>\n )}\n {href != null || onClick != null ? (\n <ActionElement\n aria-describedby={description == null ? undefined : descriptionId}\n aria-disabled={href != null && isDisabled ? true : undefined}\n aria-labelledby={labelId}\n className={styles.invisibleAction}\n href={href}\n isDisabled={href == null ? isDisabled : undefined}\n isLink={href != null}\n onClick={handleActionClick}\n ref={actionRef}\n tabIndex={-1}\n target={href != null ? target : undefined}>\n {labelAndDescription}\n </ActionElement>\n ) : (\n <span className={styles.content}>{labelAndDescription}</span>\n )}\n {!isReactNode(endContent) ? null : (\n <span className={styles.endContent}>{endContent}</span>\n )}\n </>\n );\n\n const marginLeft = hasChildren\n ? `calc(${nestedLevel} * 16px)`\n : `calc(${nestedLevel} * 16px + 24px)`;\n\n return (\n <li\n aria-describedby={description == null ? undefined : descriptionId}\n aria-disabled={isDisabled || undefined}\n aria-expanded={hasChildren ? isExpanded : undefined}\n aria-labelledby={labelId}\n aria-selected={isSelected || undefined}\n className={styles.wrapper}\n onFocus={handleFocus}\n onKeyDown={handleRowKeyDown}\n ref={ref}\n role=\"treeitem\"\n tabIndex={isDisabled ? -1 : tabIndex}>\n <div className={styles.treeBranches}>\n <TreeViewBranches\n ancestorsIsLast={ancestorsIsLast}\n nestedLevel={nestedLevel}\n />\n </div>\n <div className={styles.rowWrapper}>\n {/* eslint-disable-next-line jsx-a11y-x/click-events-have-key-events -- keyboard interaction is handled by the parent treeitem for roving focus. */}\n <div\n className={cx('silver-tree-view-item', styles.contentWrapper)}\n onClick={handleRowClick}\n onPointerDown={handlePointerDown}\n style={{marginLeft}}>\n {content}\n </div>\n </div>\n {isExpanded && isReactNode(renderedChildren) ? (\n <ul className={styles.childGroup} role=\"group\">\n {renderedChildren}\n </ul>\n ) : null}\n </li>\n );\n}\n\nTreeViewItem.displayName = 'TreeViewItem';\n","/* eslint-disable jsx-a11y-x/no-noninteractive-element-to-interactive-role -- tree semantics are applied to list markup */\n\nimport {\n useCallback,\n useId,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {treeViewRecipe} from 'components/TreeView/TreeView.recipe';\nimport {TreeViewItem} from 'components/TreeView/TreeViewItem';\nimport type {\n TreeViewDensity,\n TreeViewItemData,\n} from 'components/TreeView/types';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface TreeViewProps {\n /**\n * Additional CSS class names applied to the root.\n */\n className?: string;\n /**\n * Test ID applied to the root.\n */\n 'data-testid'?: string;\n /**\n * Spacing density for tree items.\n * @default 'balanced'\n */\n density?: TreeViewDensity;\n /**\n * Header content rendered above the tree and associated with `aria-labelledby`.\n */\n header?: ReactNode;\n /**\n * Recursive tree item data. Pass a stable reference, or memoize large inline\n * arrays, to avoid repeating recursive expansion scans on every render.\n */\n items: TreeViewItemData[];\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root.\n */\n style?: CSSProperties;\n}\n\nconst styles = treeViewRecipe();\n\ninterface VisibleTreeItem {\n hasChildren: boolean;\n id: string;\n isDisabled: boolean;\n isExpanded: boolean;\n label: string;\n parentId: string | null;\n}\n\nfunction collectExpandedKeys(items: TreeViewItemData[]): string[] {\n const keys: string[] = [];\n for (const item of items) {\n if (item.isExpanded && item.children != null && item.children.length > 0) {\n keys.push(item.id);\n }\n if (item.children != null) {\n keys.push(...collectExpandedKeys(item.children));\n }\n }\n return keys;\n}\n\nfunction getTextLabel(item: TreeViewItemData): string {\n if (item.ariaLabel != null) {\n return item.ariaLabel;\n }\n if (typeof item.label === 'string' || typeof item.label === 'number') {\n return String(item.label);\n }\n return item.id;\n}\n\nfunction getItemExpansion(\n id: string,\n expandedKeyOverrides: ReadonlyMap<string, boolean>,\n expandedKeysFromProps: ReadonlySet<string>,\n): boolean {\n return expandedKeyOverrides.has(id)\n ? (expandedKeyOverrides.get(id) ?? false)\n : expandedKeysFromProps.has(id);\n}\n\nfunction collectVisibleItems(\n items: TreeViewItemData[],\n expandedKeyOverrides: ReadonlyMap<string, boolean>,\n expandedKeysFromProps: ReadonlySet<string>,\n parentId: string | null = null,\n): VisibleTreeItem[] {\n const visibleItems: VisibleTreeItem[] = [];\n for (const item of items) {\n const hasChildren = item.children != null && item.children.length > 0;\n const isExpanded = getItemExpansion(\n item.id,\n expandedKeyOverrides,\n expandedKeysFromProps,\n );\n visibleItems.push({\n hasChildren,\n id: item.id,\n isDisabled: item.isDisabled === true,\n isExpanded,\n label: getTextLabel(item),\n parentId,\n });\n\n if (hasChildren && isExpanded) {\n visibleItems.push(\n ...collectVisibleItems(\n item.children ?? [],\n expandedKeyOverrides,\n expandedKeysFromProps,\n item.id,\n ),\n );\n }\n }\n return visibleItems;\n}\n\n/**\n * Renders a hierarchical tree of expandable and selectable items.\n */\nexport function TreeView({\n className,\n 'data-testid': dataTestId,\n density = 'balanced',\n header,\n items,\n ref,\n style,\n}: TreeViewProps): React.JSX.Element {\n const headerId = useId();\n const itemElementsRef = useRef(new Map<string, HTMLLIElement>());\n const inputModalityRef = useRef<'keyboard' | 'pointer'>('keyboard');\n const expandedKeysFromProps = useMemo(\n () => new Set(collectExpandedKeys(items)),\n [items],\n );\n const [expandedKeyOverrides, setExpandedKeyOverrides] = useState<\n Map<string, boolean>\n >(() => new Map());\n const [focusedId, setFocusedId] = useState<string | null>(null);\n const [hasFocusWithin, setHasFocusWithin] = useState(false);\n const [focusVisibleId, setFocusVisibleId] = useState<string | null>(null);\n\n const visibleItems = useMemo(\n () =>\n collectVisibleItems(items, expandedKeyOverrides, expandedKeysFromProps),\n [expandedKeyOverrides, expandedKeysFromProps, items],\n );\n const focusableItems = useMemo(\n () => visibleItems.filter(item => !item.isDisabled),\n [visibleItems],\n );\n const activeFocusedId =\n focusedId != null && focusableItems.some(item => item.id === focusedId)\n ? focusedId\n : (focusableItems[0]?.id ?? null);\n\n const handleToggle = useCallback(\n (id: string) => {\n setExpandedKeyOverrides(previous => {\n const next = new Map(previous);\n const defaultIsExpanded = expandedKeysFromProps.has(id);\n const isExpanded = previous.has(id)\n ? (previous.get(id) ?? false)\n : defaultIsExpanded;\n const nextIsExpanded = !isExpanded;\n if (nextIsExpanded === defaultIsExpanded) {\n next.delete(id);\n } else {\n next.set(id, nextIsExpanded);\n }\n return next;\n });\n },\n [expandedKeysFromProps],\n );\n\n const focusItem = useCallback((id: string) => {\n setFocusedId(id);\n itemElementsRef.current.get(id)?.focus();\n }, []);\n\n const handleItemFocus = useCallback((id: string, isFocusVisible = false) => {\n setFocusedId(id);\n setFocusVisibleId(\n isFocusVisible || inputModalityRef.current === 'keyboard' ? id : null,\n );\n }, []);\n\n const handleFocusCapture = useCallback(() => {\n setHasFocusWithin(true);\n }, []);\n\n const handleBlurCapture = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const nextFocusedElement = event.relatedTarget;\n if (\n nextFocusedElement instanceof Node &&\n event.currentTarget.contains(nextFocusedElement)\n ) {\n return;\n }\n\n setHasFocusWithin(false);\n setFocusVisibleId(null);\n }, []);\n\n const handleKeyDownCapture = useCallback(() => {\n inputModalityRef.current = 'keyboard';\n }, []);\n\n const handlePointerDownCapture = useCallback(() => {\n inputModalityRef.current = 'pointer';\n }, []);\n\n const handleItemKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>, id: string) => {\n const currentIndex = focusableItems.findIndex(item => item.id === id);\n if (currentIndex === -1) {\n return;\n }\n\n const currentItem = focusableItems[currentIndex];\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n const nextIndex = currentIndex + 1;\n if (nextIndex < focusableItems.length) {\n focusItem(focusableItems[nextIndex].id);\n }\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n const previousIndex = currentIndex - 1;\n if (previousIndex >= 0) {\n focusItem(focusableItems[previousIndex].id);\n }\n return;\n }\n\n if (event.key === 'Home') {\n event.preventDefault();\n if (focusableItems.length > 0) {\n focusItem(focusableItems[0].id);\n }\n return;\n }\n\n if (event.key === 'End') {\n event.preventDefault();\n if (focusableItems.length > 0) {\n focusItem(focusableItems[focusableItems.length - 1].id);\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n if (!currentItem.hasChildren) {\n return;\n }\n event.preventDefault();\n if (!currentItem.isExpanded) {\n handleToggle(currentItem.id);\n return;\n }\n\n const firstChild = focusableItems.find(\n item => item.parentId === currentItem.id,\n );\n if (firstChild != null) {\n focusItem(firstChild.id);\n }\n return;\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (currentItem.hasChildren && currentItem.isExpanded) {\n handleToggle(currentItem.id);\n return;\n }\n if (currentItem.parentId != null) {\n focusItem(currentItem.parentId);\n }\n return;\n }\n\n if (\n event.key.length === 1 &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey\n ) {\n const query = event.key.toLocaleLowerCase();\n const orderedItems = [\n ...focusableItems.slice(currentIndex + 1),\n ...focusableItems.slice(0, currentIndex + 1),\n ];\n const matchingItem = orderedItems.find(item =>\n item.label.toLocaleLowerCase().startsWith(query),\n );\n if (matchingItem != null) {\n event.preventDefault();\n focusItem(matchingItem.id);\n }\n }\n },\n [focusItem, focusableItems, handleToggle],\n );\n\n const renderItems = useCallback(\n (\n treeItems: TreeViewItemData[],\n nestedLevel: number,\n ancestorsIsLast: ReadonlyArray<boolean>,\n ): ReactNode =>\n treeItems.map((item, index) => {\n const isLast = index === treeItems.length - 1;\n const hasChildren = item.children != null && item.children.length > 0;\n const isExpanded = expandedKeyOverrides.has(item.id)\n ? (expandedKeyOverrides.get(item.id) ?? false)\n : expandedKeysFromProps.has(item.id);\n const childAncestorsIsLast = hasChildren\n ? [...ancestorsIsLast, isLast]\n : ancestorsIsLast;\n const renderedChildren =\n isExpanded && hasChildren\n ? renderItems(\n item.children ?? [],\n nestedLevel + 1,\n childAncestorsIsLast,\n )\n : undefined;\n\n return (\n <TreeViewItem\n ancestorsIsLast={ancestorsIsLast}\n ariaLabel={item.ariaLabel}\n density={density}\n description={item.description}\n endContent={item.endContent}\n hasChildren={hasChildren}\n href={item.href}\n id={item.id}\n isDisabled={item.isDisabled}\n isExpanded={isExpanded}\n isFocused={hasFocusWithin && focusVisibleId === item.id}\n isSelected={item.isSelected}\n key={item.id}\n label={item.label}\n nestedLevel={nestedLevel}\n onClick={item.onClick}\n onFocusItem={handleItemFocus}\n onItemKeyDown={handleItemKeyDown}\n onToggle={handleToggle}\n ref={(element: HTMLLIElement | null) => {\n if (element == null) {\n itemElementsRef.current.delete(item.id);\n } else {\n itemElementsRef.current.set(item.id, element);\n }\n }}\n renderedChildren={renderedChildren}\n startContent={item.startContent}\n tabIndex={activeFocusedId === item.id ? 0 : -1}\n target={item.target}\n />\n );\n }),\n [\n activeFocusedId,\n density,\n expandedKeyOverrides,\n expandedKeysFromProps,\n focusVisibleId,\n hasFocusWithin,\n handleItemFocus,\n handleItemKeyDown,\n handleToggle,\n ],\n );\n\n return (\n <div\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n onBlurCapture={handleBlurCapture}\n onFocusCapture={handleFocusCapture}\n onKeyDownCapture={handleKeyDownCapture}\n onPointerDownCapture={handlePointerDownCapture}\n ref={ref}\n style={style}>\n {!isReactNode(header) ? null : (\n <div className={styles.header} id={headerId}>\n {header}\n </div>\n )}\n <ul\n aria-labelledby={!isReactNode(header) ? undefined : headerId}\n className={styles.list}\n role=\"tree\">\n {renderItems(items, 0, [])}\n </ul>\n </div>\n );\n}\n\nTreeView.displayName = 'TreeView';\n"]}
@@ -1,5 +1,5 @@
1
- import { Item } from './chunk-J2YKUHQM.js';
2
- import { getNecessity, Field } from './chunk-6J326CN6.js';
1
+ import { Item } from './chunk-ERVWZILR.js';
2
+ import { getNecessity, Field } from './chunk-SEDUAMDW.js';
3
3
  import { getStatusMessageID, getDescribedBy } from './chunk-G6HS52US.js';
4
4
  import { isReactNode } from './chunk-2PSZAWLC.js';
5
5
  import { sva } from './chunk-IAVZKGZS.js';
@@ -253,5 +253,5 @@ function RadioGroupItem({
253
253
  RadioGroupItem.displayName = "RadioGroupItem";
254
254
 
255
255
  export { RadioGroup, RadioGroupItem };
256
- //# sourceMappingURL=chunk-OTQAREYU.js.map
257
- //# sourceMappingURL=chunk-OTQAREYU.js.map
256
+ //# sourceMappingURL=chunk-ATK3F3MC.js.map
257
+ //# sourceMappingURL=chunk-ATK3F3MC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/RadioGroup/RadioGroup.recipe.ts","../src/components/RadioGroup/RadioGroupContext.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/RadioGroup/RadioGroupItem.tsx"],"names":["useId","jsx"],"mappings":"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","file":"chunk-OTQAREYU.js","sourcesContent":["import {cva, sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Group container layout — single element with an orientation variant.\n */\nexport const radioGroupRecipe = cva({\n base: {\n display: 'flex',\n },\n variants: {\n orientation: {\n vertical: {\n flexDirection: 'column',\n gap: '0.5',\n },\n horizontal: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n columnGap: '4',\n rowGap: '0',\n },\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport type RadioGroupVariants = RecipeVariantProps<typeof radioGroupRecipe>;\n\n/**\n * Individual radio item — multi-slot recipe for the control, its visual\n * radio circle, the selection dot, and the clickable label.\n */\nexport const radioGroupItemRecipe = sva({\n slots: ['controlWrap', 'input', 'radio', 'dot', 'label'],\n base: {\n controlWrap: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n borderRadius: 'full',\n isolation: 'isolate',\n '&:has(input:focus-visible)': {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n input: {\n position: 'absolute',\n inset: 0,\n m: 0,\n p: 0,\n opacity: 0,\n cursor: 'pointer',\n zIndex: 1,\n _disabled: {\n cursor: 'not-allowed',\n },\n },\n radio: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border.emphasized',\n borderRadius: 'full',\n bg: 'bg',\n pointerEvents: 'none',\n },\n dot: {\n borderRadius: 'full',\n bg: 'fg.onPrimary',\n },\n label: {\n cursor: 'pointer',\n },\n },\n variants: {\n size: {\n sm: {\n controlWrap: {w: '5', h: '5'},\n radio: {w: '4.5', h: '4.5'},\n dot: {w: '2', h: '2'},\n },\n md: {\n controlWrap: {w: '6', h: '6'},\n radio: {w: '5.5', h: '5.5'},\n dot: {w: '2.5', h: '2.5'},\n },\n lg: {\n controlWrap: {w: '7', h: '7'},\n radio: {w: '6.5', h: '6.5'},\n dot: {w: '3', h: '3'},\n },\n },\n isChecked: {\n true: {\n radio: {bg: 'primary', borderColor: 'primary'},\n },\n },\n isDisabled: {\n true: {\n radio: {opacity: 0.55},\n label: {color: 'fg.disabled', cursor: 'not-allowed'},\n },\n },\n },\n defaultVariants: {\n size: 'md',\n isChecked: false,\n isDisabled: false,\n },\n});\n\nexport type RadioGroupItemVariants = RecipeVariantProps<\n typeof radioGroupItemRecipe\n>;\n","import {createContext} from 'react';\n\nexport type RadioGroupOrientation = 'horizontal' | 'vertical';\nexport type RadioGroupSize = 'sm' | 'md' | 'lg';\n\nexport interface RadioGroupContextValue {\n isDisabled: boolean;\n isRequired?: boolean;\n name: string;\n onChange: (value: string) => void;\n orientation: RadioGroupOrientation;\n size: RadioGroupSize;\n value: string;\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(\n null,\n);\n\nRadioGroupContext.displayName = 'RadioGroupContext';\n","import {\n useId,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputStatus,\n} from 'components/Field';\nimport {getDescribedBy, getStatusMessageID} from 'components/Field/inputUtils';\nimport {radioGroupRecipe} from 'components/RadioGroup/RadioGroup.recipe';\nimport {\n RadioGroupContext,\n type RadioGroupOrientation,\n type RadioGroupSize,\n} from 'components/RadioGroup/RadioGroupContext';\nimport isReactNode from 'internal/isReactNode';\n\nexport type {RadioGroupOrientation} from 'components/RadioGroup/RadioGroupContext';\n\nexport type RadioGroupProps = {\n /**\n * Radio list items to render.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the field root.\n */\n className?: string;\n /**\n * Test ID applied to the field root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether all radio items are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Label text for the radio group.\n */\n label: string;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Callback fired when the selected value changes.\n * Memoize with `useCallback` to avoid unnecessary re-renders of radio items.\n */\n onChange: (value: string) => void;\n /**\n * Layout direction of the radio items.\n * @default 'vertical'\n */\n orientation?: RadioGroupOrientation;\n /**\n * Ref forwarded to the field root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the radio controls.\n * @default 'md'\n */\n size?: RadioGroupSize;\n /**\n * Validation status displayed below the group.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the field root.\n */\n style?: CSSProperties;\n /**\n * The currently selected value.\n */\n value: string;\n} & FieldNecessity;\n\n/**\n * A controlled radio group for single-value selection.\n */\nexport function RadioGroup({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n isDisabled = false,\n isLabelHidden = false,\n isOptional,\n isRequired,\n label,\n labelTooltip,\n onChange,\n orientation = 'vertical',\n ref,\n size = 'md',\n status,\n style,\n value,\n}: RadioGroupProps): React.JSX.Element {\n const nameId = useId();\n const inputId = useId();\n const labelId = `${inputId}-label`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const contextValue = useMemo(\n () => ({\n isDisabled,\n isRequired,\n name: nameId,\n onChange,\n orientation,\n size,\n value,\n }),\n [isDisabled, isRequired, nameId, onChange, orientation, size, value],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n data-testid={dataTestId}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelAs=\"span\"\n labelId={labelId}\n labelTooltip={labelTooltip}\n ref={ref}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n statusVariant=\"detached\"\n style={style}>\n <div\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-labelledby={labelId}\n aria-orientation={orientation}\n aria-required={isRequired ?? undefined}\n className={radioGroupRecipe({orientation})}\n id={inputId}\n role=\"radiogroup\">\n <RadioGroupContext value={contextValue}>{children}</RadioGroupContext>\n </div>\n </Field>\n );\n}\n\nRadioGroup.displayName = 'RadioGroup';\n","import {use, useId, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {Item} from 'components/Item';\nimport {radioGroupItemRecipe} from 'components/RadioGroup/RadioGroup.recipe';\nimport {RadioGroupContext} from 'components/RadioGroup/RadioGroupContext';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface RadioGroupItemProps {\n /**\n * Additional CSS class names applied to the item root.\n */\n className?: string;\n /**\n * Test ID applied to the item root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the item label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the label and description.\n */\n endContent?: ReactNode;\n /**\n * Whether this radio item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Label text for the radio item.\n */\n label: string;\n /**\n * Ref forwarded to the item root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Content rendered after the radio control and before the label.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the item root.\n */\n style?: CSSProperties;\n /**\n * Value represented by this radio item.\n */\n value: string;\n}\n\n/**\n * An individual radio option within a `RadioGroup`.\n */\nexport function RadioGroupItem({\n className,\n 'data-testid': dataTestId,\n description,\n endContent,\n isDisabled: isItemDisabled = false,\n label,\n ref,\n startContent,\n style,\n value,\n}: RadioGroupItemProps): React.JSX.Element {\n const context = use(RadioGroupContext);\n if (context == null) {\n throw new Error('RadioGroupItem must be used within a RadioGroup');\n }\n\n const id = useId();\n const descriptionId = useId();\n const isDisabled = context.isDisabled || isItemDisabled;\n const isChecked = context.value === value;\n const size = context.size;\n const classes = radioGroupItemRecipe({size, isChecked, isDisabled});\n const control = (\n <span className={classes.controlWrap}>\n <input\n aria-describedby={isReactNode(description) ? descriptionId : undefined}\n checked={isChecked}\n className={classes.input}\n disabled={isDisabled}\n id={id}\n name={context.name}\n onChange={() => context.onChange(value)}\n required={context.isRequired}\n type=\"radio\"\n value={value}\n />\n <span aria-hidden=\"true\" className={classes.radio}>\n {isChecked ? <span className={classes.dot} /> : null}\n </span>\n </span>\n );\n\n return (\n <Item\n className={className}\n data-testid={dataTestId}\n description={\n isReactNode(description) ? (\n <span id={descriptionId}>{description}</span>\n ) : undefined\n }\n endContent={endContent}\n endContentPosition=\"inline\"\n isDisabled={isDisabled}\n label={\n <label className={classes.label} htmlFor={id}>\n {label}\n </label>\n }\n leadingContent={control}\n ref={ref}\n startContent={startContent}\n style={style}\n width={context.orientation === 'horizontal' ? 'auto' : 'full'}\n />\n );\n}\n\nRadioGroupItem.displayName = 'RadioGroupItem';\n"]}
1
+ {"version":3,"sources":["../src/components/RadioGroup/RadioGroup.recipe.ts","../src/components/RadioGroup/RadioGroupContext.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/RadioGroup/RadioGroupItem.tsx"],"names":["useId","jsx"],"mappings":"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","file":"chunk-ATK3F3MC.js","sourcesContent":["import {cva, sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Group container layout — single element with an orientation variant.\n */\nexport const radioGroupRecipe = cva({\n base: {\n display: 'flex',\n },\n variants: {\n orientation: {\n vertical: {\n flexDirection: 'column',\n gap: '0.5',\n },\n horizontal: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n columnGap: '4',\n rowGap: '0',\n },\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport type RadioGroupVariants = RecipeVariantProps<typeof radioGroupRecipe>;\n\n/**\n * Individual radio item — multi-slot recipe for the control, its visual\n * radio circle, the selection dot, and the clickable label.\n */\nexport const radioGroupItemRecipe = sva({\n slots: ['controlWrap', 'input', 'radio', 'dot', 'label'],\n base: {\n controlWrap: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n borderRadius: 'full',\n isolation: 'isolate',\n '&:has(input:focus-visible)': {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n input: {\n position: 'absolute',\n inset: 0,\n m: 0,\n p: 0,\n opacity: 0,\n cursor: 'pointer',\n zIndex: 1,\n _disabled: {\n cursor: 'not-allowed',\n },\n },\n radio: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border.emphasized',\n borderRadius: 'full',\n bg: 'bg',\n pointerEvents: 'none',\n },\n dot: {\n borderRadius: 'full',\n bg: 'fg.onPrimary',\n },\n label: {\n cursor: 'pointer',\n },\n },\n variants: {\n size: {\n sm: {\n controlWrap: {w: '5', h: '5'},\n radio: {w: '4.5', h: '4.5'},\n dot: {w: '2', h: '2'},\n },\n md: {\n controlWrap: {w: '6', h: '6'},\n radio: {w: '5.5', h: '5.5'},\n dot: {w: '2.5', h: '2.5'},\n },\n lg: {\n controlWrap: {w: '7', h: '7'},\n radio: {w: '6.5', h: '6.5'},\n dot: {w: '3', h: '3'},\n },\n },\n isChecked: {\n true: {\n radio: {bg: 'primary', borderColor: 'primary'},\n },\n },\n isDisabled: {\n true: {\n radio: {opacity: 0.55},\n label: {color: 'fg.disabled', cursor: 'not-allowed'},\n },\n },\n },\n defaultVariants: {\n size: 'md',\n isChecked: false,\n isDisabled: false,\n },\n});\n\nexport type RadioGroupItemVariants = RecipeVariantProps<\n typeof radioGroupItemRecipe\n>;\n","import {createContext} from 'react';\n\nexport type RadioGroupOrientation = 'horizontal' | 'vertical';\nexport type RadioGroupSize = 'sm' | 'md' | 'lg';\n\nexport interface RadioGroupContextValue {\n isDisabled: boolean;\n isRequired?: boolean;\n name: string;\n onChange: (value: string) => void;\n orientation: RadioGroupOrientation;\n size: RadioGroupSize;\n value: string;\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(\n null,\n);\n\nRadioGroupContext.displayName = 'RadioGroupContext';\n","import {\n useId,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputStatus,\n} from 'components/Field';\nimport {getDescribedBy, getStatusMessageID} from 'components/Field/inputUtils';\nimport {radioGroupRecipe} from 'components/RadioGroup/RadioGroup.recipe';\nimport {\n RadioGroupContext,\n type RadioGroupOrientation,\n type RadioGroupSize,\n} from 'components/RadioGroup/RadioGroupContext';\nimport isReactNode from 'internal/isReactNode';\n\nexport type {RadioGroupOrientation} from 'components/RadioGroup/RadioGroupContext';\n\nexport type RadioGroupProps = {\n /**\n * Radio list items to render.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the field root.\n */\n className?: string;\n /**\n * Test ID applied to the field root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether all radio items are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Label text for the radio group.\n */\n label: string;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Callback fired when the selected value changes.\n * Memoize with `useCallback` to avoid unnecessary re-renders of radio items.\n */\n onChange: (value: string) => void;\n /**\n * Layout direction of the radio items.\n * @default 'vertical'\n */\n orientation?: RadioGroupOrientation;\n /**\n * Ref forwarded to the field root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the radio controls.\n * @default 'md'\n */\n size?: RadioGroupSize;\n /**\n * Validation status displayed below the group.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the field root.\n */\n style?: CSSProperties;\n /**\n * The currently selected value.\n */\n value: string;\n} & FieldNecessity;\n\n/**\n * A controlled radio group for single-value selection.\n */\nexport function RadioGroup({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n isDisabled = false,\n isLabelHidden = false,\n isOptional,\n isRequired,\n label,\n labelTooltip,\n onChange,\n orientation = 'vertical',\n ref,\n size = 'md',\n status,\n style,\n value,\n}: RadioGroupProps): React.JSX.Element {\n const nameId = useId();\n const inputId = useId();\n const labelId = `${inputId}-label`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const contextValue = useMemo(\n () => ({\n isDisabled,\n isRequired,\n name: nameId,\n onChange,\n orientation,\n size,\n value,\n }),\n [isDisabled, isRequired, nameId, onChange, orientation, size, value],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n data-testid={dataTestId}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelAs=\"span\"\n labelId={labelId}\n labelTooltip={labelTooltip}\n ref={ref}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n statusVariant=\"detached\"\n style={style}>\n <div\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-labelledby={labelId}\n aria-orientation={orientation}\n aria-required={isRequired ?? undefined}\n className={radioGroupRecipe({orientation})}\n id={inputId}\n role=\"radiogroup\">\n <RadioGroupContext value={contextValue}>{children}</RadioGroupContext>\n </div>\n </Field>\n );\n}\n\nRadioGroup.displayName = 'RadioGroup';\n","import {use, useId, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {Item} from 'components/Item';\nimport {radioGroupItemRecipe} from 'components/RadioGroup/RadioGroup.recipe';\nimport {RadioGroupContext} from 'components/RadioGroup/RadioGroupContext';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface RadioGroupItemProps {\n /**\n * Additional CSS class names applied to the item root.\n */\n className?: string;\n /**\n * Test ID applied to the item root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the item label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the label and description.\n */\n endContent?: ReactNode;\n /**\n * Whether this radio item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Label text for the radio item.\n */\n label: string;\n /**\n * Ref forwarded to the item root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Content rendered after the radio control and before the label.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the item root.\n */\n style?: CSSProperties;\n /**\n * Value represented by this radio item.\n */\n value: string;\n}\n\n/**\n * An individual radio option within a `RadioGroup`.\n */\nexport function RadioGroupItem({\n className,\n 'data-testid': dataTestId,\n description,\n endContent,\n isDisabled: isItemDisabled = false,\n label,\n ref,\n startContent,\n style,\n value,\n}: RadioGroupItemProps): React.JSX.Element {\n const context = use(RadioGroupContext);\n if (context == null) {\n throw new Error('RadioGroupItem must be used within a RadioGroup');\n }\n\n const id = useId();\n const descriptionId = useId();\n const isDisabled = context.isDisabled || isItemDisabled;\n const isChecked = context.value === value;\n const size = context.size;\n const classes = radioGroupItemRecipe({size, isChecked, isDisabled});\n const control = (\n <span className={classes.controlWrap}>\n <input\n aria-describedby={isReactNode(description) ? descriptionId : undefined}\n checked={isChecked}\n className={classes.input}\n disabled={isDisabled}\n id={id}\n name={context.name}\n onChange={() => context.onChange(value)}\n required={context.isRequired}\n type=\"radio\"\n value={value}\n />\n <span aria-hidden=\"true\" className={classes.radio}>\n {isChecked ? <span className={classes.dot} /> : null}\n </span>\n </span>\n );\n\n return (\n <Item\n className={className}\n data-testid={dataTestId}\n description={\n isReactNode(description) ? (\n <span id={descriptionId}>{description}</span>\n ) : undefined\n }\n endContent={endContent}\n endContentPosition=\"inline\"\n isDisabled={isDisabled}\n label={\n <label className={classes.label} htmlFor={id}>\n {label}\n </label>\n }\n leadingContent={control}\n ref={ref}\n startContent={startContent}\n style={style}\n width={context.orientation === 'horizontal' ? 'auto' : 'full'}\n />\n );\n}\n\nRadioGroupItem.displayName = 'RadioGroupItem';\n"]}
@@ -1,6 +1,6 @@
1
1
  import { plainDateIsEqual, plainDateIsBefore, plainDateGetWeekNumber, plainDateFormat, DATE_FORMAT_MONTH_YEAR, plainDateIsInRange, DATE_FORMAT_WITH_WEEKDAY, getDaysInMonth, plainDateCreate, plainDateDayOfWeek, plainDateIsAfter, plainDateToday } from './chunk-5HPXUDX6.js';
2
2
  import { getBrowserTimezoneID } from './chunk-OX4ZMUF4.js';
3
- import { Button } from './chunk-THTVYP5V.js';
3
+ import { Button } from './chunk-HMJINNXZ.js';
4
4
  import { sva } from './chunk-IAVZKGZS.js';
5
5
  import { cx } from './chunk-PPNETWIP.js';
6
6
  import { Temporal } from '@js-temporal/polyfill';
@@ -827,5 +827,5 @@ var DayCell = memo(function DayCell2({
827
827
  Calendar.displayName = "Calendar";
828
828
 
829
829
  export { Calendar };
830
- //# sourceMappingURL=chunk-2VL66QBX.js.map
831
- //# sourceMappingURL=chunk-2VL66QBX.js.map
830
+ //# sourceMappingURL=chunk-B5QX6KGJ.js.map
831
+ //# sourceMappingURL=chunk-B5QX6KGJ.js.map