silver-ui 0.5.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (520) hide show
  1. package/README.md +2 -65
  2. package/dist/{chunk-XHJRAEGW.js → chunk-223UOU3H.js} +5 -5
  3. package/dist/{chunk-XHJRAEGW.js.map → chunk-223UOU3H.js.map} +1 -1
  4. package/dist/{chunk-67UUGI3M.cjs → chunk-2AOR4EVA.cjs} +8 -8
  5. package/dist/{chunk-67UUGI3M.cjs.map → chunk-2AOR4EVA.cjs.map} +1 -1
  6. package/dist/{chunk-75KSHZTV.js → chunk-2KLTODOC.js} +7 -7
  7. package/dist/{chunk-75KSHZTV.js.map → chunk-2KLTODOC.js.map} +1 -1
  8. package/dist/chunk-2N3PIXZ5.cjs +165 -0
  9. package/dist/chunk-2N3PIXZ5.cjs.map +1 -0
  10. package/dist/{chunk-W5F7PYT2.js → chunk-3PCXFOOS.js} +17 -11
  11. package/dist/chunk-3PCXFOOS.js.map +1 -0
  12. package/dist/chunk-3PEK2Q54.cjs +31 -0
  13. package/dist/chunk-3PEK2Q54.cjs.map +1 -0
  14. package/dist/{chunk-GW6P4FJ4.cjs → chunk-4MIIXRZN.cjs} +25 -40
  15. package/dist/chunk-4MIIXRZN.cjs.map +1 -0
  16. package/dist/{chunk-CUHJDV6K.js → chunk-4NPVIEWF.js} +6 -6
  17. package/dist/{chunk-CUHJDV6K.js.map → chunk-4NPVIEWF.js.map} +1 -1
  18. package/dist/{chunk-ADSG24VE.js → chunk-4UYMGEBF.js} +6 -6
  19. package/dist/{chunk-ADSG24VE.js.map → chunk-4UYMGEBF.js.map} +1 -1
  20. package/dist/{chunk-ECDYAZ2R.js → chunk-54B36CSW.js} +5 -5
  21. package/dist/{chunk-ECDYAZ2R.js.map → chunk-54B36CSW.js.map} +1 -1
  22. package/dist/chunk-5FQKELP6.js +28 -0
  23. package/dist/chunk-5FQKELP6.js.map +1 -0
  24. package/dist/{chunk-RJEZBOSH.js → chunk-5GSRIOXE.js} +24 -14
  25. package/dist/chunk-5GSRIOXE.js.map +1 -0
  26. package/dist/{chunk-OUZX7STE.cjs → chunk-5K3C3INR.cjs} +25 -53
  27. package/dist/chunk-5K3C3INR.cjs.map +1 -0
  28. package/dist/{chunk-AEYJ6PWC.js → chunk-5RFHYDQY.js} +16 -11
  29. package/dist/chunk-5RFHYDQY.js.map +1 -0
  30. package/dist/{chunk-E42WOTIC.js → chunk-6KG76KUZ.js} +3 -3
  31. package/dist/{chunk-E42WOTIC.js.map → chunk-6KG76KUZ.js.map} +1 -1
  32. package/dist/{chunk-I47WOF6E.js → chunk-6KGF66TR.js} +3 -3
  33. package/dist/{chunk-I47WOF6E.js.map → chunk-6KGF66TR.js.map} +1 -1
  34. package/dist/{chunk-TOQ4MGM5.js → chunk-6R2UZNVE.js} +6 -6
  35. package/dist/{chunk-TOQ4MGM5.js.map → chunk-6R2UZNVE.js.map} +1 -1
  36. package/dist/{chunk-BIJ6YDWJ.cjs → chunk-6SFMORQF.cjs} +15 -8
  37. package/dist/chunk-6SFMORQF.cjs.map +1 -0
  38. package/dist/{chunk-H4L456EW.js → chunk-6SKIBUCY.js} +12 -5
  39. package/dist/chunk-6SKIBUCY.js.map +1 -0
  40. package/dist/{chunk-ANACERIO.cjs → chunk-6SMVH3ON.cjs} +6 -6
  41. package/dist/{chunk-ANACERIO.cjs.map → chunk-6SMVH3ON.cjs.map} +1 -1
  42. package/dist/{chunk-ESRDHDYN.cjs → chunk-6ZPHID26.cjs} +9 -9
  43. package/dist/{chunk-ESRDHDYN.cjs.map → chunk-6ZPHID26.cjs.map} +1 -1
  44. package/dist/{chunk-SUT35RHA.cjs → chunk-76GVUEFH.cjs} +8 -8
  45. package/dist/{chunk-SUT35RHA.cjs.map → chunk-76GVUEFH.cjs.map} +1 -1
  46. package/dist/chunk-7VUDE5BI.js +91 -0
  47. package/dist/chunk-7VUDE5BI.js.map +1 -0
  48. package/dist/{chunk-Q3HMGFGI.js → chunk-7WQW7H3D.js} +98 -77
  49. package/dist/chunk-7WQW7H3D.js.map +1 -0
  50. package/dist/chunk-A2AC6WL5.cjs +4 -0
  51. package/dist/chunk-A2AC6WL5.cjs.map +1 -0
  52. package/dist/{chunk-2Y7ULSEU.js → chunk-A4QLLTMD.js} +17 -17
  53. package/dist/{chunk-2Y7ULSEU.js.map → chunk-A4QLLTMD.js.map} +1 -1
  54. package/dist/{chunk-HWD4HDQ5.cjs → chunk-AC4E3WQA.cjs} +10 -10
  55. package/dist/{chunk-HWD4HDQ5.cjs.map → chunk-AC4E3WQA.cjs.map} +1 -1
  56. package/dist/chunk-AFXU6XIS.js +3 -0
  57. package/dist/chunk-AFXU6XIS.js.map +1 -0
  58. package/dist/{chunk-L5PJCLV6.js → chunk-AKAXQ4RL.js} +16 -25
  59. package/dist/chunk-AKAXQ4RL.js.map +1 -0
  60. package/dist/{chunk-AV7D3SXF.js → chunk-AO4RVSCG.js} +4 -4
  61. package/dist/{chunk-AV7D3SXF.js.map → chunk-AO4RVSCG.js.map} +1 -1
  62. package/dist/{chunk-OERNLR2P.js → chunk-AX653SYJ.js} +8 -8
  63. package/dist/{chunk-OERNLR2P.js.map → chunk-AX653SYJ.js.map} +1 -1
  64. package/dist/{chunk-4HXNBLCJ.js → chunk-AXTX3IOR.js} +3 -3
  65. package/dist/{chunk-4HXNBLCJ.js.map → chunk-AXTX3IOR.js.map} +1 -1
  66. package/dist/{chunk-2AWSJF22.js → chunk-BNGYGCT2.js} +8 -8
  67. package/dist/chunk-BNGYGCT2.js.map +1 -0
  68. package/dist/{chunk-PGTOVMP7.cjs → chunk-BPAZTKMC.cjs} +10 -10
  69. package/dist/{chunk-PGTOVMP7.cjs.map → chunk-BPAZTKMC.cjs.map} +1 -1
  70. package/dist/{chunk-7CTHD4G6.cjs → chunk-BYV7NXC5.cjs} +5 -5
  71. package/dist/{chunk-7CTHD4G6.cjs.map → chunk-BYV7NXC5.cjs.map} +1 -1
  72. package/dist/{chunk-3Z5PF75J.cjs → chunk-CKDB7QNT.cjs} +29 -19
  73. package/dist/chunk-CKDB7QNT.cjs.map +1 -0
  74. package/dist/{chunk-3VJIUZAY.cjs → chunk-CVT7JW6C.cjs} +16 -25
  75. package/dist/chunk-CVT7JW6C.cjs.map +1 -0
  76. package/dist/{chunk-6DAZ2ZOW.cjs → chunk-CWZCBYVZ.cjs} +11 -11
  77. package/dist/{chunk-6DAZ2ZOW.cjs.map → chunk-CWZCBYVZ.cjs.map} +1 -1
  78. package/dist/{chunk-N77K3NQY.cjs → chunk-DTNIUZ3C.cjs} +7 -7
  79. package/dist/{chunk-N77K3NQY.cjs.map → chunk-DTNIUZ3C.cjs.map} +1 -1
  80. package/dist/{chunk-X4I5YARV.cjs → chunk-DUGGZUJP.cjs} +11 -11
  81. package/dist/{chunk-X4I5YARV.cjs.map → chunk-DUGGZUJP.cjs.map} +1 -1
  82. package/dist/{chunk-TTDNCN5G.cjs → chunk-DVCDAKPK.cjs} +13 -39
  83. package/dist/chunk-DVCDAKPK.cjs.map +1 -0
  84. package/dist/{chunk-2RZNX26F.cjs → chunk-DXUFDJHA.cjs} +12 -13
  85. package/dist/chunk-DXUFDJHA.cjs.map +1 -0
  86. package/dist/{chunk-4SUQFPWH.js → chunk-E6AKSBSP.js} +6 -6
  87. package/dist/{chunk-4SUQFPWH.js.map → chunk-E6AKSBSP.js.map} +1 -1
  88. package/dist/{chunk-THTVYP5V.js → chunk-EBV3EX3J.js} +21 -32
  89. package/dist/chunk-EBV3EX3J.js.map +1 -0
  90. package/dist/{chunk-JM4Q7ZQH.cjs → chunk-EEOUWM2F.cjs} +8 -8
  91. package/dist/chunk-EEOUWM2F.cjs.map +1 -0
  92. package/dist/{chunk-KC4EKXGF.js → chunk-EIJSWHG7.js} +9 -10
  93. package/dist/chunk-EIJSWHG7.js.map +1 -0
  94. package/dist/{chunk-IGJEZLHP.cjs → chunk-EQFSDFV2.cjs} +19 -19
  95. package/dist/{chunk-IGJEZLHP.cjs.map → chunk-EQFSDFV2.cjs.map} +1 -1
  96. package/dist/chunk-ESWYWWY2.js +162 -0
  97. package/dist/chunk-ESWYWWY2.js.map +1 -0
  98. package/dist/{chunk-UXGHFKLA.js → chunk-FHUOUARL.js} +4 -4
  99. package/dist/{chunk-UXGHFKLA.js.map → chunk-FHUOUARL.js.map} +1 -1
  100. package/dist/{chunk-HNDDNW52.js → chunk-FTNEAX24.js} +3 -3
  101. package/dist/{chunk-HNDDNW52.js.map → chunk-FTNEAX24.js.map} +1 -1
  102. package/dist/{chunk-JJNXQ7EL.js → chunk-FUU3I22W.js} +3 -3
  103. package/dist/{chunk-JJNXQ7EL.js.map → chunk-FUU3I22W.js.map} +1 -1
  104. package/dist/{chunk-OF5NULAO.js → chunk-GFMQIR5U.js} +7 -7
  105. package/dist/{chunk-OF5NULAO.js.map → chunk-GFMQIR5U.js.map} +1 -1
  106. package/dist/{chunk-JSAYTQTJ.cjs → chunk-GJZAGTPV.cjs} +7 -7
  107. package/dist/chunk-GJZAGTPV.cjs.map +1 -0
  108. package/dist/{chunk-J2YKUHQM.js → chunk-GKYGZWSQ.js} +14 -23
  109. package/dist/chunk-GKYGZWSQ.js.map +1 -0
  110. package/dist/{chunk-2F5TDBRT.cjs → chunk-GLFWSLJB.cjs} +8 -8
  111. package/dist/{chunk-2F5TDBRT.cjs.map → chunk-GLFWSLJB.cjs.map} +1 -1
  112. package/dist/{chunk-S5CMLG2E.js → chunk-GTZQT6MK.js} +9 -5
  113. package/dist/chunk-GTZQT6MK.js.map +1 -0
  114. package/dist/{chunk-4RDA4W4N.js → chunk-HEF53COU.js} +23 -7
  115. package/dist/chunk-HEF53COU.js.map +1 -0
  116. package/dist/{chunk-WPMWHKJX.js → chunk-I2DXEPDF.js} +5 -5
  117. package/dist/{chunk-WPMWHKJX.js.map → chunk-I2DXEPDF.js.map} +1 -1
  118. package/dist/{chunk-Z7OUMVR5.cjs → chunk-I4XYOJJS.cjs} +9 -9
  119. package/dist/{chunk-Z7OUMVR5.cjs.map → chunk-I4XYOJJS.cjs.map} +1 -1
  120. package/dist/{chunk-HWP2UGOC.cjs → chunk-IE7GWY4E.cjs} +126 -105
  121. package/dist/chunk-IE7GWY4E.cjs.map +1 -0
  122. package/dist/{chunk-YDNEAHVK.cjs → chunk-IH6DJWYH.cjs} +37 -37
  123. package/dist/{chunk-YDNEAHVK.cjs.map → chunk-IH6DJWYH.cjs.map} +1 -1
  124. package/dist/{chunk-D5OX6II7.cjs → chunk-IREOTHD3.cjs} +8 -8
  125. package/dist/chunk-IREOTHD3.cjs.map +1 -0
  126. package/dist/{chunk-L7XJZJCM.js → chunk-J4MQQ4K5.js} +5 -5
  127. package/dist/{chunk-L7XJZJCM.js.map → chunk-J4MQQ4K5.js.map} +1 -1
  128. package/dist/{chunk-UARQIMPS.js → chunk-JFLU2X5Q.js} +5 -5
  129. package/dist/{chunk-UARQIMPS.js.map → chunk-JFLU2X5Q.js.map} +1 -1
  130. package/dist/{chunk-VH3G4IUX.js → chunk-JMVYWHJ7.js} +12 -38
  131. package/dist/chunk-JMVYWHJ7.js.map +1 -0
  132. package/dist/{chunk-K4K4FU3D.cjs → chunk-JTPVAZE6.cjs} +11 -11
  133. package/dist/{chunk-K4K4FU3D.cjs.map → chunk-JTPVAZE6.cjs.map} +1 -1
  134. package/dist/{chunk-LW3DJOF4.cjs → chunk-JWMS6LHN.cjs} +6 -6
  135. package/dist/{chunk-LW3DJOF4.cjs.map → chunk-JWMS6LHN.cjs.map} +1 -1
  136. package/dist/{chunk-EBJPUXFQ.js → chunk-KEPCKSDE.js} +31 -11
  137. package/dist/chunk-KEPCKSDE.js.map +1 -0
  138. package/dist/{chunk-I2NG2P5K.cjs → chunk-KLPVBJGZ.cjs} +5 -5
  139. package/dist/{chunk-I2NG2P5K.cjs.map → chunk-KLPVBJGZ.cjs.map} +1 -1
  140. package/dist/{chunk-6PIVWNUR.js → chunk-KWZMXX4F.js} +5 -5
  141. package/dist/chunk-KWZMXX4F.js.map +1 -0
  142. package/dist/{chunk-3IYM5MAC.js → chunk-L747HIHG.js} +4 -4
  143. package/dist/{chunk-3IYM5MAC.js.map → chunk-L747HIHG.js.map} +1 -1
  144. package/dist/{chunk-HIH6MS5D.js → chunk-LBOWHXOF.js} +24 -6
  145. package/dist/chunk-LBOWHXOF.js.map +1 -0
  146. package/dist/{chunk-ZPJW3PP7.cjs → chunk-LTHPJRFK.cjs} +18 -10
  147. package/dist/chunk-LTHPJRFK.cjs.map +1 -0
  148. package/dist/{chunk-F7BFO3SD.cjs → chunk-LWB2CTX6.cjs} +24 -8
  149. package/dist/chunk-LWB2CTX6.cjs.map +1 -0
  150. package/dist/{chunk-FCUUGJTM.cjs → chunk-MJHEPDDX.cjs} +132 -160
  151. package/dist/chunk-MJHEPDDX.cjs.map +1 -0
  152. package/dist/{chunk-QO5C7TIV.js → chunk-MUXUHIIV.js} +5 -5
  153. package/dist/{chunk-QO5C7TIV.js.map → chunk-MUXUHIIV.js.map} +1 -1
  154. package/dist/{chunk-L5JS6P62.cjs → chunk-MYSLJWCW.cjs} +14 -10
  155. package/dist/chunk-MYSLJWCW.cjs.map +1 -0
  156. package/dist/{chunk-65MJZYO6.js → chunk-N6C37HXD.js} +14 -29
  157. package/dist/chunk-N6C37HXD.js.map +1 -0
  158. package/dist/{chunk-VO4FG3L2.cjs → chunk-NGNVNRAZ.cjs} +17 -17
  159. package/dist/{chunk-VO4FG3L2.cjs.map → chunk-NGNVNRAZ.cjs.map} +1 -1
  160. package/dist/{chunk-2WTHSGDP.cjs → chunk-NMC7QG2X.cjs} +14 -14
  161. package/dist/{chunk-2WTHSGDP.cjs.map → chunk-NMC7QG2X.cjs.map} +1 -1
  162. package/dist/{chunk-6EYLEVC6.js → chunk-NSWKBWPP.js} +15 -7
  163. package/dist/chunk-NSWKBWPP.js.map +1 -0
  164. package/dist/{chunk-FNRYGCO3.js → chunk-NYOZQE6P.js} +4 -4
  165. package/dist/{chunk-FNRYGCO3.js.map → chunk-NYOZQE6P.js.map} +1 -1
  166. package/dist/{chunk-GSTINE4X.js → chunk-O3UT5D57.js} +1775 -575
  167. package/dist/chunk-O3UT5D57.js.map +1 -0
  168. package/dist/{chunk-BSI4BQEX.cjs → chunk-OCYZKZ24.cjs} +4 -4
  169. package/dist/{chunk-BSI4BQEX.cjs.map → chunk-OCYZKZ24.cjs.map} +1 -1
  170. package/dist/{chunk-LBGC6EC5.js → chunk-OP6WQYYP.js} +15 -15
  171. package/dist/chunk-OP6WQYYP.js.map +1 -0
  172. package/dist/{chunk-TSKFGLGQ.cjs → chunk-OX2FNKIV.cjs} +18 -27
  173. package/dist/chunk-OX2FNKIV.cjs.map +1 -0
  174. package/dist/chunk-PG4CZRTU.js +77 -0
  175. package/dist/chunk-PG4CZRTU.js.map +1 -0
  176. package/dist/{chunk-TH537HOM.js → chunk-PQXPYN23.js} +6 -6
  177. package/dist/{chunk-TH537HOM.js.map → chunk-PQXPYN23.js.map} +1 -1
  178. package/dist/{chunk-U5M4JZBX.js → chunk-PYN75QAG.js} +6 -6
  179. package/dist/chunk-PYN75QAG.js.map +1 -0
  180. package/dist/{chunk-JS6MRT6M.js → chunk-QM7NQK2K.js} +4 -4
  181. package/dist/{chunk-JS6MRT6M.js.map → chunk-QM7NQK2K.js.map} +1 -1
  182. package/dist/{chunk-SUWRSJAN.cjs → chunk-RLIBY7XB.cjs} +16 -11
  183. package/dist/chunk-RLIBY7XB.cjs.map +1 -0
  184. package/dist/chunk-RNUQWYJJ.cjs +93 -0
  185. package/dist/chunk-RNUQWYJJ.cjs.map +1 -0
  186. package/dist/{chunk-GY2ZZR4Z.cjs → chunk-RUQODCTW.cjs} +18 -18
  187. package/dist/{chunk-GY2ZZR4Z.cjs.map → chunk-RUQODCTW.cjs.map} +1 -1
  188. package/dist/{chunk-FFF57VHO.cjs → chunk-RX2FXCIH.cjs} +8 -8
  189. package/dist/{chunk-FFF57VHO.cjs.map → chunk-RX2FXCIH.cjs.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-J3X465QT.cjs → chunk-SY2A4K6P.cjs} +9 -9
  193. package/dist/{chunk-J3X465QT.cjs.map → chunk-SY2A4K6P.cjs.map} +1 -1
  194. package/dist/{chunk-YJEX32HZ.cjs → chunk-U7QJJ3NR.cjs} +8 -8
  195. package/dist/{chunk-YJEX32HZ.cjs.map → chunk-U7QJJ3NR.cjs.map} +1 -1
  196. package/dist/{chunk-XZZI3JYK.cjs → chunk-UJDHRILS.cjs} +26 -8
  197. package/dist/chunk-UJDHRILS.cjs.map +1 -0
  198. package/dist/{chunk-IX26TMZD.cjs → chunk-UNS7OCEA.cjs} +5 -5
  199. package/dist/{chunk-IX26TMZD.cjs.map → chunk-UNS7OCEA.cjs.map} +1 -1
  200. package/dist/{chunk-RRXOSNCX.cjs → chunk-UR5EWWWL.cjs} +11 -11
  201. package/dist/{chunk-RRXOSNCX.cjs.map → chunk-UR5EWWWL.cjs.map} +1 -1
  202. package/dist/{chunk-6J326CN6.js → chunk-USEA7DB5.js} +4 -4
  203. package/dist/{chunk-6J326CN6.js.map → chunk-USEA7DB5.js.map} +1 -1
  204. package/dist/{chunk-DZZEJY3J.js → chunk-UUVI3TYW.js} +120 -148
  205. package/dist/chunk-UUVI3TYW.js.map +1 -0
  206. package/dist/{chunk-DV4K35UC.cjs → chunk-UW3KCCBT.cjs} +4 -4
  207. package/dist/{chunk-DV4K35UC.cjs.map → chunk-UW3KCCBT.cjs.map} +1 -1
  208. package/dist/{chunk-MEXR5ONE.js → chunk-V5XVXQWE.js} +5 -5
  209. package/dist/{chunk-MEXR5ONE.js.map → chunk-V5XVXQWE.js.map} +1 -1
  210. package/dist/{chunk-UXQSSRBQ.cjs → chunk-VCM4MR7N.cjs} +1785 -581
  211. package/dist/chunk-VCM4MR7N.cjs.map +1 -0
  212. package/dist/{chunk-VD52FLHL.js → chunk-VEQ5H765.js} +10 -10
  213. package/dist/{chunk-VD52FLHL.js.map → chunk-VEQ5H765.js.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-VV72PGKH.cjs → chunk-VULMEKZZ.cjs} +27 -27
  219. package/dist/chunk-VULMEKZZ.cjs.map +1 -0
  220. package/dist/{chunk-MEUELWGO.cjs → chunk-VWG54F6X.cjs} +8 -8
  221. package/dist/{chunk-MEUELWGO.cjs.map → chunk-VWG54F6X.cjs.map} +1 -1
  222. package/dist/{chunk-MGJLBHPJ.js → chunk-WG4NNC3P.js} +4 -4
  223. package/dist/{chunk-MGJLBHPJ.js.map → chunk-WG4NNC3P.js.map} +1 -1
  224. package/dist/{chunk-V4ZH2H2P.cjs → chunk-WIFMXZIN.cjs} +14 -14
  225. package/dist/{chunk-V4ZH2H2P.cjs.map → chunk-WIFMXZIN.cjs.map} +1 -1
  226. package/dist/{chunk-5XMWGK3O.cjs → chunk-WOVSJHY6.cjs} +25 -36
  227. package/dist/chunk-WOVSJHY6.cjs.map +1 -0
  228. package/dist/{chunk-2VAUVJVG.js → chunk-X2P5SPGB.js} +3 -3
  229. package/dist/{chunk-2VAUVJVG.js.map → chunk-X2P5SPGB.js.map} +1 -1
  230. package/dist/{chunk-PBQMHXVO.js → chunk-XUCLNECV.js} +3 -3
  231. package/dist/{chunk-PBQMHXVO.js.map → chunk-XUCLNECV.js.map} +1 -1
  232. package/dist/{chunk-HXIU3SIQ.cjs → chunk-Y2GYPMLW.cjs} +5 -5
  233. package/dist/{chunk-HXIU3SIQ.cjs.map → chunk-Y2GYPMLW.cjs.map} +1 -1
  234. package/dist/{chunk-OTQAREYU.js → chunk-YAQB3UMC.js} +4 -4
  235. package/dist/{chunk-OTQAREYU.js.map → chunk-YAQB3UMC.js.map} +1 -1
  236. package/dist/{chunk-2VL66QBX.js → chunk-YGESCFX2.js} +3 -3
  237. package/dist/{chunk-2VL66QBX.js.map → chunk-YGESCFX2.js.map} +1 -1
  238. package/dist/{chunk-XPGIWOJO.cjs → chunk-YOAFVMEN.cjs} +18 -18
  239. package/dist/chunk-YOAFVMEN.cjs.map +1 -0
  240. package/dist/{chunk-2GMDMZKI.cjs → chunk-YQIDUJW2.cjs} +5 -5
  241. package/dist/{chunk-2GMDMZKI.cjs.map → chunk-YQIDUJW2.cjs.map} +1 -1
  242. package/dist/{chunk-R4DGCQTA.cjs → chunk-YQVWDHP4.cjs} +7 -7
  243. package/dist/{chunk-R4DGCQTA.cjs.map → chunk-YQVWDHP4.cjs.map} +1 -1
  244. package/dist/{chunk-LKGHYNLH.js → chunk-YRJYWTVG.js} +10 -10
  245. package/dist/chunk-YRJYWTVG.js.map +1 -0
  246. package/dist/{chunk-TKTCN4JE.cjs → chunk-ZNAGK36T.cjs} +9 -9
  247. package/dist/{chunk-TKTCN4JE.cjs.map → chunk-ZNAGK36T.cjs.map} +1 -1
  248. package/dist/{chunk-BSPWX2OZ.cjs → chunk-ZW2ZOEYM.cjs} +21 -15
  249. package/dist/chunk-ZW2ZOEYM.cjs.map +1 -0
  250. package/dist/components/Alert/index.cjs +10 -8
  251. package/dist/components/Alert/index.js +9 -7
  252. package/dist/components/AlertDialog/index.cjs +12 -10
  253. package/dist/components/AlertDialog/index.js +10 -8
  254. package/dist/components/AppShell/index.cjs +18 -15
  255. package/dist/components/AppShell/index.js +15 -12
  256. package/dist/components/AutocompleteInput/index.cjs +17 -14
  257. package/dist/components/AutocompleteInput/index.js +13 -10
  258. package/dist/components/Badge/Badge.d.ts.map +1 -1
  259. package/dist/components/Badge/Badge.recipe.d.ts +75 -41
  260. package/dist/components/Badge/Badge.recipe.d.ts.map +1 -1
  261. package/dist/components/Badge/index.cjs +3 -2
  262. package/dist/components/Badge/index.js +2 -1
  263. package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  264. package/dist/components/Breadcrumbs/index.cjs +5 -10
  265. package/dist/components/Breadcrumbs/index.js +2 -7
  266. package/dist/components/Button/Button.d.ts +5 -3
  267. package/dist/components/Button/Button.d.ts.map +1 -1
  268. package/dist/components/Button/index.cjs +9 -7
  269. package/dist/components/Button/index.js +8 -6
  270. package/dist/components/Calendar/index.cjs +10 -8
  271. package/dist/components/Calendar/index.js +9 -7
  272. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +83 -0
  273. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
  274. package/dist/components/CheckboxGroup/CheckboxGroup.recipe.d.ts +17 -0
  275. package/dist/components/CheckboxGroup/CheckboxGroup.recipe.d.ts.map +1 -0
  276. package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts +13 -0
  277. package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts.map +1 -0
  278. package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts +58 -0
  279. package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts.map +1 -0
  280. package/dist/components/CheckboxGroup/index.cjs +35 -0
  281. package/dist/components/CheckboxGroup/index.cjs.map +1 -0
  282. package/dist/components/CheckboxGroup/index.d.ts +4 -0
  283. package/dist/components/CheckboxGroup/index.d.ts.map +1 -0
  284. package/dist/components/CheckboxGroup/index.js +22 -0
  285. package/dist/components/CheckboxGroup/index.js.map +1 -0
  286. package/dist/components/CheckboxInput/CheckboxInput.d.ts +11 -2
  287. package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  288. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts +6 -0
  289. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts.map +1 -1
  290. package/dist/components/CheckboxInput/index.cjs +9 -8
  291. package/dist/components/CheckboxInput/index.js +8 -7
  292. package/dist/components/CodeBlock/index.cjs +10 -8
  293. package/dist/components/CodeBlock/index.js +9 -7
  294. package/dist/components/ContextMenu/index.cjs +14 -12
  295. package/dist/components/ContextMenu/index.js +12 -10
  296. package/dist/components/DateInput/index.cjs +13 -11
  297. package/dist/components/DateInput/index.js +12 -10
  298. package/dist/components/DateRangeInput/index.cjs +13 -11
  299. package/dist/components/DateRangeInput/index.js +12 -10
  300. package/dist/components/DateTimeInput/index.cjs +15 -13
  301. package/dist/components/DateTimeInput/index.js +14 -12
  302. package/dist/components/DropdownMenu/index.cjs +15 -13
  303. package/dist/components/DropdownMenu/index.js +11 -9
  304. package/dist/components/EmptyState/index.cjs +5 -5
  305. package/dist/components/EmptyState/index.js +4 -4
  306. package/dist/components/Field/index.cjs +6 -6
  307. package/dist/components/Field/index.js +4 -4
  308. package/dist/components/FileInput/index.cjs +11 -9
  309. package/dist/components/FileInput/index.js +10 -8
  310. package/dist/components/HoverCard/HoverCard.d.ts +6 -6
  311. package/dist/components/HoverCard/HoverCard.d.ts.map +1 -1
  312. package/dist/components/HoverCard/index.cjs +4 -4
  313. package/dist/components/HoverCard/index.js +2 -2
  314. package/dist/components/InputGroup/index.cjs +9 -9
  315. package/dist/components/InputGroup/index.js +5 -5
  316. package/dist/components/Item/Item.d.ts.map +1 -1
  317. package/dist/components/Item/index.cjs +7 -8
  318. package/dist/components/Item/index.js +6 -7
  319. package/dist/components/Layout/Layout.recipe.d.ts +17 -0
  320. package/dist/components/Layout/Layout.recipe.d.ts.map +1 -1
  321. package/dist/components/Layout/LayoutHeader.d.ts +12 -1
  322. package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
  323. package/dist/components/Layout/index.cjs +14 -12
  324. package/dist/components/Layout/index.js +9 -7
  325. package/dist/components/Lightbox/index.cjs +11 -9
  326. package/dist/components/Lightbox/index.js +9 -7
  327. package/dist/components/Link/Link.d.ts +4 -5
  328. package/dist/components/Link/Link.d.ts.map +1 -1
  329. package/dist/components/Link/Link.recipe.d.ts.map +1 -1
  330. package/dist/components/Link/index.cjs +9 -6
  331. package/dist/components/Link/index.js +6 -3
  332. package/dist/components/List/index.cjs +9 -10
  333. package/dist/components/List/index.js +7 -8
  334. package/dist/components/MetadataList/MetadataList.recipe.d.ts +9 -1
  335. package/dist/components/MetadataList/MetadataList.recipe.d.ts.map +1 -1
  336. package/dist/components/MetadataList/MetadataListItem.d.ts +6 -1
  337. package/dist/components/MetadataList/MetadataListItem.d.ts.map +1 -1
  338. package/dist/components/MetadataList/index.cjs +9 -6
  339. package/dist/components/MetadataList/index.js +7 -4
  340. package/dist/components/MultiSelect/index.cjs +14 -12
  341. package/dist/components/MultiSelect/index.js +13 -11
  342. package/dist/components/NumberInput/index.cjs +12 -10
  343. package/dist/components/NumberInput/index.js +11 -9
  344. package/dist/components/Pagination/index.cjs +10 -8
  345. package/dist/components/Pagination/index.js +9 -7
  346. package/dist/components/PasswordInput/index.cjs +13 -11
  347. package/dist/components/PasswordInput/index.js +12 -10
  348. package/dist/components/Popover/Popover.d.ts +13 -1
  349. package/dist/components/Popover/Popover.d.ts.map +1 -1
  350. package/dist/components/Popover/index.cjs +11 -9
  351. package/dist/components/Popover/index.js +9 -7
  352. package/dist/components/RadioGroup/index.cjs +10 -9
  353. package/dist/components/RadioGroup/index.js +8 -7
  354. package/dist/components/Schedule/CalendarEvent.d.ts +18 -4
  355. package/dist/components/Schedule/CalendarEvent.d.ts.map +1 -1
  356. package/dist/components/Schedule/DayView.d.ts +7 -1
  357. package/dist/components/Schedule/DayView.d.ts.map +1 -1
  358. package/dist/components/Schedule/ListView.d.ts.map +1 -1
  359. package/dist/components/Schedule/ListView.recipe.d.ts +56 -0
  360. package/dist/components/Schedule/ListView.recipe.d.ts.map +1 -0
  361. package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
  362. package/dist/components/Schedule/MonthlyView.recipe.d.ts +47 -0
  363. package/dist/components/Schedule/MonthlyView.recipe.d.ts.map +1 -0
  364. package/dist/components/Schedule/ScheduleEvent.recipe.d.ts +17 -0
  365. package/dist/components/Schedule/ScheduleEvent.recipe.d.ts.map +1 -1
  366. package/dist/components/Schedule/TimeGridView.d.ts +7 -1
  367. package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
  368. package/dist/components/Schedule/TimeGridView.recipe.d.ts +43 -0
  369. package/dist/components/Schedule/TimeGridView.recipe.d.ts.map +1 -0
  370. package/dist/components/Schedule/WeeklyView.d.ts +7 -1
  371. package/dist/components/Schedule/WeeklyView.d.ts.map +1 -1
  372. package/dist/components/Schedule/index.cjs +44 -21
  373. package/dist/components/Schedule/index.d.ts +6 -2
  374. package/dist/components/Schedule/index.d.ts.map +1 -1
  375. package/dist/components/Schedule/index.js +17 -10
  376. package/dist/components/Schedule/plugins/EventMovePlugin.d.ts +23 -0
  377. package/dist/components/Schedule/plugins/EventMovePlugin.d.ts.map +1 -0
  378. package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts +31 -0
  379. package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts.map +1 -0
  380. package/dist/components/Schedule/plugins/EventResizePlugin.d.ts +24 -0
  381. package/dist/components/Schedule/plugins/EventResizePlugin.d.ts.map +1 -0
  382. package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts +39 -0
  383. package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts.map +1 -0
  384. package/dist/components/Schedule/plugins/index.d.ts +4 -0
  385. package/dist/components/Schedule/plugins/index.d.ts.map +1 -1
  386. package/dist/components/Schedule/shared.d.ts +58 -3
  387. package/dist/components/Schedule/shared.d.ts.map +1 -1
  388. package/dist/components/Schedule/types.d.ts +47 -1
  389. package/dist/components/Schedule/types.d.ts.map +1 -1
  390. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.d.ts.map +1 -1
  391. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts +4 -0
  392. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts.map +1 -0
  393. package/dist/components/SearchFilterInput/index.cjs +32 -29
  394. package/dist/components/SearchFilterInput/index.js +24 -21
  395. package/dist/components/Select/index.cjs +15 -13
  396. package/dist/components/Select/index.js +13 -11
  397. package/dist/components/SideNav/SideNav.d.ts.map +1 -1
  398. package/dist/components/SideNav/SideNav.recipe.d.ts +26 -7
  399. package/dist/components/SideNav/SideNav.recipe.d.ts.map +1 -1
  400. package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
  401. package/dist/components/SideNav/index.cjs +18 -15
  402. package/dist/components/SideNav/index.js +12 -9
  403. package/dist/components/Slider/index.cjs +6 -6
  404. package/dist/components/Slider/index.js +5 -5
  405. package/dist/components/Spinner/index.cjs +5 -5
  406. package/dist/components/Spinner/index.js +4 -4
  407. package/dist/components/SplitButton/index.cjs +13 -11
  408. package/dist/components/SplitButton/index.js +12 -10
  409. package/dist/components/Stepper/index.cjs +5 -5
  410. package/dist/components/Stepper/index.js +4 -4
  411. package/dist/components/Switch/index.cjs +6 -6
  412. package/dist/components/Switch/index.js +5 -5
  413. package/dist/components/Table/index.cjs +55 -52
  414. package/dist/components/Table/index.js +29 -26
  415. package/dist/components/Tabs/Tab.d.ts.map +1 -1
  416. package/dist/components/Tabs/index.cjs +15 -13
  417. package/dist/components/Tabs/index.js +10 -8
  418. package/dist/components/Tag/Tag.d.ts.map +1 -1
  419. package/dist/components/Tag/index.cjs +8 -5
  420. package/dist/components/Tag/index.js +7 -4
  421. package/dist/components/TagsInput/index.cjs +15 -12
  422. package/dist/components/TagsInput/index.js +14 -11
  423. package/dist/components/Text/Heading.d.ts +5 -5
  424. package/dist/components/Text/Heading.d.ts.map +1 -1
  425. package/dist/components/Text/Text.d.ts +5 -5
  426. package/dist/components/Text/Text.d.ts.map +1 -1
  427. package/dist/components/Text/index.cjs +5 -5
  428. package/dist/components/Text/index.js +3 -3
  429. package/dist/components/TextArea/index.cjs +7 -7
  430. package/dist/components/TextArea/index.js +6 -6
  431. package/dist/components/TextInput/index.cjs +12 -10
  432. package/dist/components/TextInput/index.js +11 -9
  433. package/dist/components/Thumbnail/index.cjs +10 -8
  434. package/dist/components/Thumbnail/index.js +9 -7
  435. package/dist/components/TimeInput/index.cjs +11 -9
  436. package/dist/components/TimeInput/index.js +10 -8
  437. package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
  438. package/dist/components/Toast/index.cjs +12 -10
  439. package/dist/components/Toast/index.js +9 -7
  440. package/dist/components/ToggleButton/ToggleButton.recipe.d.ts.map +1 -1
  441. package/dist/components/ToggleButton/index.cjs +7 -7
  442. package/dist/components/ToggleButton/index.js +5 -5
  443. package/dist/components/Tooltip/Tooltip.d.ts +6 -6
  444. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  445. package/dist/components/Tooltip/index.cjs +4 -4
  446. package/dist/components/Tooltip/index.js +2 -2
  447. package/dist/components/TopNav/TopNavItem.d.ts.map +1 -1
  448. package/dist/components/TopNav/index.cjs +16 -13
  449. package/dist/components/TopNav/index.js +11 -8
  450. package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
  451. package/dist/components/TreeView/index.cjs +3 -2
  452. package/dist/components/TreeView/index.js +2 -1
  453. package/dist/index.cjs +260 -232
  454. package/dist/index.cjs.map +1 -1
  455. package/dist/index.d.ts +2 -1
  456. package/dist/index.d.ts.map +1 -1
  457. package/dist/index.js +62 -58
  458. package/dist/index.js.map +1 -1
  459. package/dist/internal/ActionElement.d.ts +45 -0
  460. package/dist/internal/ActionElement.d.ts.map +1 -0
  461. package/dist/internal/HoverLayerTrigger.d.ts +3 -4
  462. package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
  463. package/dist/internal/useLayer.d.ts +12 -0
  464. package/dist/internal/useLayer.d.ts.map +1 -1
  465. package/dist/internal/useSelectListbox.d.ts +5 -5
  466. package/dist/internal/useSelectListbox.d.ts.map +1 -1
  467. package/dist/styles.css +1 -1
  468. package/package.json +1 -1
  469. package/dist/chunk-2AWSJF22.js.map +0 -1
  470. package/dist/chunk-2RZNX26F.cjs.map +0 -1
  471. package/dist/chunk-3VJIUZAY.cjs.map +0 -1
  472. package/dist/chunk-3Z5PF75J.cjs.map +0 -1
  473. package/dist/chunk-4RDA4W4N.js.map +0 -1
  474. package/dist/chunk-5XMWGK3O.cjs.map +0 -1
  475. package/dist/chunk-65MJZYO6.js.map +0 -1
  476. package/dist/chunk-6EYLEVC6.js.map +0 -1
  477. package/dist/chunk-6PIVWNUR.js.map +0 -1
  478. package/dist/chunk-AEYJ6PWC.js.map +0 -1
  479. package/dist/chunk-BIJ6YDWJ.cjs.map +0 -1
  480. package/dist/chunk-BSPWX2OZ.cjs.map +0 -1
  481. package/dist/chunk-D5OX6II7.cjs.map +0 -1
  482. package/dist/chunk-DZZEJY3J.js.map +0 -1
  483. package/dist/chunk-EBJPUXFQ.js.map +0 -1
  484. package/dist/chunk-EFBSEJBD.js.map +0 -1
  485. package/dist/chunk-F7BFO3SD.cjs.map +0 -1
  486. package/dist/chunk-FCUUGJTM.cjs.map +0 -1
  487. package/dist/chunk-GSTINE4X.js.map +0 -1
  488. package/dist/chunk-GW6P4FJ4.cjs.map +0 -1
  489. package/dist/chunk-H2EMKCWT.js +0 -78
  490. package/dist/chunk-H2EMKCWT.js.map +0 -1
  491. package/dist/chunk-H4L456EW.js.map +0 -1
  492. package/dist/chunk-HIH6MS5D.js.map +0 -1
  493. package/dist/chunk-HWP2UGOC.cjs.map +0 -1
  494. package/dist/chunk-J2YKUHQM.js.map +0 -1
  495. package/dist/chunk-JM4Q7ZQH.cjs.map +0 -1
  496. package/dist/chunk-JSAYTQTJ.cjs.map +0 -1
  497. package/dist/chunk-KC4EKXGF.js.map +0 -1
  498. package/dist/chunk-KUXFEAT4.cjs +0 -80
  499. package/dist/chunk-KUXFEAT4.cjs.map +0 -1
  500. package/dist/chunk-L5JS6P62.cjs.map +0 -1
  501. package/dist/chunk-L5PJCLV6.js.map +0 -1
  502. package/dist/chunk-LBGC6EC5.js.map +0 -1
  503. package/dist/chunk-LKGHYNLH.js.map +0 -1
  504. package/dist/chunk-OUZX7STE.cjs.map +0 -1
  505. package/dist/chunk-Q3HMGFGI.js.map +0 -1
  506. package/dist/chunk-Q4HAXT5C.cjs.map +0 -1
  507. package/dist/chunk-RJEZBOSH.js.map +0 -1
  508. package/dist/chunk-S5CMLG2E.js.map +0 -1
  509. package/dist/chunk-SUWRSJAN.cjs.map +0 -1
  510. package/dist/chunk-THTVYP5V.js.map +0 -1
  511. package/dist/chunk-TSKFGLGQ.cjs.map +0 -1
  512. package/dist/chunk-TTDNCN5G.cjs.map +0 -1
  513. package/dist/chunk-U5M4JZBX.js.map +0 -1
  514. package/dist/chunk-UXQSSRBQ.cjs.map +0 -1
  515. package/dist/chunk-VH3G4IUX.js.map +0 -1
  516. package/dist/chunk-VV72PGKH.cjs.map +0 -1
  517. package/dist/chunk-W5F7PYT2.js.map +0 -1
  518. package/dist/chunk-XPGIWOJO.cjs.map +0 -1
  519. package/dist/chunk-XZZI3JYK.cjs.map +0 -1
  520. package/dist/chunk-ZPJW3PP7.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Stepper/internal/Step.recipe.ts","../src/components/Stepper/internal/Step.tsx","../src/components/Stepper/Stepper.tsx"],"names":["sva","jsx","Icon","Check","TriangleAlert","jsxs","Text","isReactNode","css","cx"],"mappings":"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","file":"chunk-HXIU3SIQ.cjs","sourcesContent":["import type {StepState} from 'components/Stepper/internal/Step';\nimport {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const stepRecipe = sva({\n slots: [\n 'root',\n 'content',\n 'indicatorColumn',\n 'indicator',\n 'labelRow',\n 'label',\n 'description',\n 'connectorWrapper',\n 'connector',\n 'childrenContent',\n ],\n base: {\n root: {\n display: 'flex',\n position: 'relative',\n '&:last-child [data-step-connector]': {\n display: 'none',\n },\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n },\n indicatorColumn: {},\n indicator: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '7',\n h: '7',\n borderRadius: 'full',\n fontFamily: 'body',\n fontSize: 'sm',\n fontWeight: 'semibold',\n lineHeight: 'none',\n transitionProperty: 'background-color, color, border-color, opacity',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n flexShrink: 0,\n userSelect: 'none',\n borderWidth: 'emphasized',\n borderStyle: 'solid',\n },\n labelRow: {\n display: 'flex',\n flexDirection: 'column',\n },\n label: {\n textAlign: 'center',\n },\n description: {},\n connectorWrapper: {\n flex: 1,\n display: 'flex',\n },\n connector: {\n borderRadius: 'full',\n transitionProperty: 'background-color',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n },\n childrenContent: {\n pt: '3',\n },\n },\n variants: {\n orientation: {\n horizontal: {\n root: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n flex: 1,\n _last: {flex: 'none'},\n },\n content: {\n alignItems: 'center',\n position: 'relative',\n zIndex: 1,\n },\n labelRow: {\n alignItems: 'center',\n pt: '1',\n maxW: '120px',\n },\n description: {textAlign: 'center'},\n connectorWrapper: {\n alignItems: 'center',\n px: '2',\n minW: '6',\n h: '7',\n },\n connector: {h: '0.5', w: 'full'},\n },\n vertical: {\n root: {\n flexDirection: 'row',\n alignItems: 'stretch',\n minH: '12',\n },\n content: {\n ps: '3',\n pb: '6',\n flex: 1,\n },\n indicatorColumn: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n w: '7',\n flexShrink: 0,\n },\n labelRow: {\n alignItems: 'flex-start',\n pt: '0.5',\n },\n label: {textAlign: 'start'},\n description: {textAlign: 'start'},\n connectorWrapper: {\n justifyContent: 'center',\n py: '1',\n },\n connector: {w: '0.5', h: 'full'},\n },\n },\n state: {\n active: {\n indicator: {\n bg: 'primary',\n borderColor: 'primary',\n color: 'fg.onPrimary',\n },\n label: {color: 'fg', fontWeight: 'semibold'},\n },\n completed: {\n indicator: {\n bg: 'primary',\n borderColor: 'primary',\n color: 'fg.onPrimary',\n },\n label: {color: 'fg'},\n },\n upcoming: {\n indicator: {\n bg: 'transparent',\n borderColor: 'border.emphasized',\n color: 'fg.muted',\n },\n label: {color: 'fg.muted'},\n },\n disabled: {\n indicator: {\n bg: 'transparent',\n borderColor: 'border',\n color: 'fg.disabled',\n },\n label: {color: 'fg.disabled'},\n },\n error: {\n indicator: {\n bg: 'status.error.solid',\n borderColor: 'status.error.solid',\n color: 'status.error.solidFg',\n },\n label: {color: 'status.error.fg'},\n description: {color: 'status.error.fg'},\n },\n } satisfies Record<StepState, object>,\n isClickable: {\n true: {\n indicator: {\n cursor: 'pointer',\n m: 0,\n p: 0,\n _hover: {opacity: 0.85},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n },\n false: {},\n },\n isCompleted: {\n true: {connector: {bg: 'primary'}},\n false: {connector: {bg: 'track.emphasized'}},\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n state: 'upcoming',\n isClickable: false,\n isCompleted: false,\n },\n});\n\nexport type StepVariants = RecipeVariantProps<typeof stepRecipe>;\n","import {Check, TriangleAlert} from 'lucide-react';\nimport type {ReactNode} from 'react';\nimport {Icon} from 'components/Icon';\nimport type {StepperOrientation} from 'components/Stepper/Stepper';\nimport {stepRecipe} from 'components/Stepper/internal/Step.recipe';\nimport {Text} from 'components/Text';\nimport isReactNode from 'internal/isReactNode';\n\nexport type StepState =\n | 'active'\n | 'completed'\n | 'disabled'\n | 'error'\n | 'upcoming';\n\n/**\n * Resolved props for a single rendered step. Computed by `Stepper`; not part of\n * the public API.\n */\nexport interface StepProps {\n content?: ReactNode;\n 'data-testid'?: string;\n description?: string;\n hasError: boolean;\n icon?: ReactNode;\n /**\n * Zero-based position of this step within the stepper.\n */\n index: number;\n isActive: boolean;\n isClickable: boolean;\n isCompleted: boolean;\n isDisabled: boolean;\n label: string;\n /**\n * Invoked when a clickable indicator is activated.\n */\n onClick: () => void;\n orientation: StepperOrientation;\n}\n\nfunction getStepState({\n hasError,\n isActive,\n isCompleted,\n isDisabled,\n}: {\n hasError: boolean;\n isActive: boolean;\n isCompleted: boolean;\n isDisabled: boolean;\n}): StepState {\n if (hasError) {\n return 'error';\n }\n if (isDisabled) {\n return 'disabled';\n }\n if (isActive) {\n return 'active';\n }\n if (isCompleted) {\n return 'completed';\n }\n return 'upcoming';\n}\n\n/**\n * Individual step within a `Stepper`. Rendered internally by `Stepper`.\n */\nexport function Step({\n content,\n 'data-testid': dataTestId,\n description,\n hasError,\n icon,\n index,\n isActive,\n isClickable,\n isCompleted,\n isDisabled,\n label,\n onClick,\n orientation,\n}: StepProps): React.JSX.Element {\n const isVertical = orientation === 'vertical';\n const state = getStepState({hasError, isActive, isCompleted, isDisabled});\n\n const classes = stepRecipe({orientation, state, isClickable, isCompleted});\n\n const defaultIndicatorContent = isCompleted ? (\n <Icon color=\"inherit\" icon={Check} size=\"sm\" />\n ) : (\n <span>{index + 1}</span>\n );\n const indicatorContent = hasError ? (\n <Icon color=\"inherit\" icon={TriangleAlert} size=\"sm\" />\n ) : (\n (icon ?? defaultIndicatorContent)\n );\n\n const stepLabel = hasError\n ? `Go to step ${index + 1}: ${label} (error)`\n : `Go to step ${index + 1}: ${label}`;\n\n const indicator = isClickable ? (\n <button\n aria-label={stepLabel}\n className={classes.indicator}\n onClick={onClick}\n type=\"button\">\n {indicatorContent}\n </button>\n ) : (\n <div aria-hidden=\"true\" className={classes.indicator}>\n {indicatorContent}\n </div>\n );\n\n const labelNode = (\n <div className={classes.labelRow}>\n <Text as=\"span\" className={classes.label} color=\"inherit\" type=\"label\">\n {label}\n </Text>\n {description != null ? (\n <Text\n as=\"span\"\n className={classes.description}\n color=\"secondary\"\n type=\"supporting\">\n {description}\n </Text>\n ) : null}\n </div>\n );\n\n if (isVertical) {\n return (\n <li\n aria-current={isActive ? 'step' : undefined}\n className={classes.root}\n data-testid={dataTestId}>\n <div className={classes.indicatorColumn}>\n {indicator}\n <div className={classes.connectorWrapper} data-step-connector=\"\">\n <div className={classes.connector} />\n </div>\n </div>\n <div className={classes.content}>\n {labelNode}\n {isReactNode(content) ? (\n <div className={classes.childrenContent}>{content}</div>\n ) : null}\n </div>\n </li>\n );\n }\n\n return (\n <li\n aria-current={isActive ? 'step' : undefined}\n className={classes.root}\n data-testid={dataTestId}>\n <div className={classes.content}>\n {indicator}\n {labelNode}\n </div>\n <div className={classes.connectorWrapper} data-step-connector=\"\">\n <div className={classes.connector} />\n </div>\n </li>\n );\n}\n\nStep.displayName = 'Step';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {Step} from 'components/Stepper/internal/Step';\nimport {cx} from 'internal/cx';\nimport {css} from 'styled-system/css';\n\nexport type StepperOrientation = 'horizontal' | 'vertical';\n\nexport interface StepConfig {\n /**\n * Content rendered below the label and description in vertical steppers.\n */\n content?: ReactNode;\n /**\n * Test ID applied to the step's list item.\n */\n 'data-testid'?: string;\n /**\n * Optional supporting text.\n */\n description?: string;\n /**\n * Whether the step has an error.\n * @default false\n */\n hasError?: boolean;\n /**\n * Custom indicator content replacing the number or check icon.\n */\n icon?: ReactNode;\n /**\n * Stable identifier for the step. Referenced by `activeStep` and passed to\n * `onStepClick`, and used as the React key when rendering.\n */\n id: string;\n /**\n * Override the automatically computed completed state. By default a step is\n * completed when it appears before the active step.\n */\n isCompleted?: boolean;\n /**\n * Whether the step is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Step label.\n */\n label: string;\n}\n\nexport interface StepperProps {\n /**\n * `id` of the active step. A step is completed when it appears before the\n * active step in `steps`; pass an `id` that is not in `steps` (or mark steps\n * `isCompleted`) to represent a fully finished sequence.\n */\n activeStep: string;\n /**\n * Additional CSS class names applied to the ordered list.\n */\n className?: string;\n /**\n * Test ID applied to the ordered list.\n */\n 'data-testid'?: string;\n /**\n * Accessible label for the navigation landmark.\n * @default 'Progress'\n */\n label?: string;\n /**\n * Called with the step `id` when a completed or active step indicator is\n * clicked.\n */\n onStepClick?: (id: string) => void;\n /**\n * Layout direction.\n * @default 'horizontal'\n */\n orientation?: StepperOrientation;\n /**\n * Ref forwarded to the navigation element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Ordered list of steps to render.\n */\n steps: StepConfig[];\n /**\n * Inline styles applied to the ordered list.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n w: 'full',\n m: 0,\n p: 0,\n listStyleType: 'none',\n }),\n horizontal: css({\n flexDirection: 'row',\n alignItems: 'flex-start',\n }),\n vertical: css({\n flexDirection: 'column',\n }),\n} as const;\n\n/**\n * Displays progress through a sequence of logical steps.\n */\nexport function Stepper({\n activeStep,\n className,\n 'data-testid': dataTestId,\n label = 'Progress',\n onStepClick,\n orientation = 'horizontal',\n ref,\n steps,\n style,\n}: StepperProps): React.JSX.Element {\n const isNonLinear = onStepClick != null;\n const activeIndex = steps.findIndex(step => step.id === activeStep);\n\n return (\n <nav\n aria-label={label}\n className={className}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <ol\n className={cx(\n styles.root,\n orientation === 'horizontal' ? styles.horizontal : styles.vertical,\n )}>\n {steps.map((step, index) => {\n const isActive = index === activeIndex;\n const isDisabled = step.isDisabled ?? false;\n const hasError = step.hasError ?? false;\n const isCompleted =\n step.isCompleted ?? (activeIndex !== -1 && index < activeIndex);\n const isClickable =\n isNonLinear && !isDisabled && (isCompleted || isActive);\n\n return (\n <Step\n content={step.content}\n data-testid={step['data-testid']}\n description={step.description}\n hasError={hasError}\n icon={step.icon}\n index={index}\n isActive={isActive}\n isClickable={isClickable}\n isCompleted={isCompleted}\n isDisabled={isDisabled}\n key={step.id}\n label={step.label}\n onClick={() => onStepClick?.(step.id)}\n orientation={orientation}\n />\n );\n })}\n </ol>\n </nav>\n );\n}\n\nStepper.displayName = 'Stepper';\n"]}
1
+ {"version":3,"sources":["../src/components/Stepper/internal/Step.recipe.ts","../src/components/Stepper/internal/Step.tsx","../src/components/Stepper/Stepper.tsx"],"names":["sva","jsx","Icon","Check","TriangleAlert","jsxs","Text","isReactNode","css","cx"],"mappings":"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","file":"chunk-Y2GYPMLW.cjs","sourcesContent":["import type {StepState} from 'components/Stepper/internal/Step';\nimport {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const stepRecipe = sva({\n slots: [\n 'root',\n 'content',\n 'indicatorColumn',\n 'indicator',\n 'labelRow',\n 'label',\n 'description',\n 'connectorWrapper',\n 'connector',\n 'childrenContent',\n ],\n base: {\n root: {\n display: 'flex',\n position: 'relative',\n '&:last-child [data-step-connector]': {\n display: 'none',\n },\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n },\n indicatorColumn: {},\n indicator: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '7',\n h: '7',\n borderRadius: 'full',\n fontFamily: 'body',\n fontSize: 'sm',\n fontWeight: 'semibold',\n lineHeight: 'none',\n transitionProperty: 'background-color, color, border-color, opacity',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n flexShrink: 0,\n userSelect: 'none',\n borderWidth: 'emphasized',\n borderStyle: 'solid',\n },\n labelRow: {\n display: 'flex',\n flexDirection: 'column',\n },\n label: {\n textAlign: 'center',\n },\n description: {},\n connectorWrapper: {\n flex: 1,\n display: 'flex',\n },\n connector: {\n borderRadius: 'full',\n transitionProperty: 'background-color',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n },\n childrenContent: {\n pt: '3',\n },\n },\n variants: {\n orientation: {\n horizontal: {\n root: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n flex: 1,\n _last: {flex: 'none'},\n },\n content: {\n alignItems: 'center',\n position: 'relative',\n zIndex: 1,\n },\n labelRow: {\n alignItems: 'center',\n pt: '1',\n maxW: '120px',\n },\n description: {textAlign: 'center'},\n connectorWrapper: {\n alignItems: 'center',\n px: '2',\n minW: '6',\n h: '7',\n },\n connector: {h: '0.5', w: 'full'},\n },\n vertical: {\n root: {\n flexDirection: 'row',\n alignItems: 'stretch',\n minH: '12',\n },\n content: {\n ps: '3',\n pb: '6',\n flex: 1,\n },\n indicatorColumn: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n w: '7',\n flexShrink: 0,\n },\n labelRow: {\n alignItems: 'flex-start',\n pt: '0.5',\n },\n label: {textAlign: 'start'},\n description: {textAlign: 'start'},\n connectorWrapper: {\n justifyContent: 'center',\n py: '1',\n },\n connector: {w: '0.5', h: 'full'},\n },\n },\n state: {\n active: {\n indicator: {\n bg: 'primary',\n borderColor: 'primary',\n color: 'fg.onPrimary',\n },\n label: {color: 'fg', fontWeight: 'semibold'},\n },\n completed: {\n indicator: {\n bg: 'primary',\n borderColor: 'primary',\n color: 'fg.onPrimary',\n },\n label: {color: 'fg'},\n },\n upcoming: {\n indicator: {\n bg: 'transparent',\n borderColor: 'border.emphasized',\n color: 'fg.muted',\n },\n label: {color: 'fg.muted'},\n },\n disabled: {\n indicator: {\n bg: 'transparent',\n borderColor: 'border',\n color: 'fg.disabled',\n },\n label: {color: 'fg.disabled'},\n },\n error: {\n indicator: {\n bg: 'status.error.solid',\n borderColor: 'status.error.solid',\n color: 'status.error.solidFg',\n },\n label: {color: 'status.error.fg'},\n description: {color: 'status.error.fg'},\n },\n } satisfies Record<StepState, object>,\n isClickable: {\n true: {\n indicator: {\n cursor: 'pointer',\n m: 0,\n p: 0,\n _hover: {opacity: 0.85},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n },\n false: {},\n },\n isCompleted: {\n true: {connector: {bg: 'primary'}},\n false: {connector: {bg: 'track.emphasized'}},\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n state: 'upcoming',\n isClickable: false,\n isCompleted: false,\n },\n});\n\nexport type StepVariants = RecipeVariantProps<typeof stepRecipe>;\n","import {Check, TriangleAlert} from 'lucide-react';\nimport type {ReactNode} from 'react';\nimport {Icon} from 'components/Icon';\nimport type {StepperOrientation} from 'components/Stepper/Stepper';\nimport {stepRecipe} from 'components/Stepper/internal/Step.recipe';\nimport {Text} from 'components/Text';\nimport isReactNode from 'internal/isReactNode';\n\nexport type StepState =\n | 'active'\n | 'completed'\n | 'disabled'\n | 'error'\n | 'upcoming';\n\n/**\n * Resolved props for a single rendered step. Computed by `Stepper`; not part of\n * the public API.\n */\nexport interface StepProps {\n content?: ReactNode;\n 'data-testid'?: string;\n description?: string;\n hasError: boolean;\n icon?: ReactNode;\n /**\n * Zero-based position of this step within the stepper.\n */\n index: number;\n isActive: boolean;\n isClickable: boolean;\n isCompleted: boolean;\n isDisabled: boolean;\n label: string;\n /**\n * Invoked when a clickable indicator is activated.\n */\n onClick: () => void;\n orientation: StepperOrientation;\n}\n\nfunction getStepState({\n hasError,\n isActive,\n isCompleted,\n isDisabled,\n}: {\n hasError: boolean;\n isActive: boolean;\n isCompleted: boolean;\n isDisabled: boolean;\n}): StepState {\n if (hasError) {\n return 'error';\n }\n if (isDisabled) {\n return 'disabled';\n }\n if (isActive) {\n return 'active';\n }\n if (isCompleted) {\n return 'completed';\n }\n return 'upcoming';\n}\n\n/**\n * Individual step within a `Stepper`. Rendered internally by `Stepper`.\n */\nexport function Step({\n content,\n 'data-testid': dataTestId,\n description,\n hasError,\n icon,\n index,\n isActive,\n isClickable,\n isCompleted,\n isDisabled,\n label,\n onClick,\n orientation,\n}: StepProps): React.JSX.Element {\n const isVertical = orientation === 'vertical';\n const state = getStepState({hasError, isActive, isCompleted, isDisabled});\n\n const classes = stepRecipe({orientation, state, isClickable, isCompleted});\n\n const defaultIndicatorContent = isCompleted ? (\n <Icon color=\"inherit\" icon={Check} size=\"sm\" />\n ) : (\n <span>{index + 1}</span>\n );\n const indicatorContent = hasError ? (\n <Icon color=\"inherit\" icon={TriangleAlert} size=\"sm\" />\n ) : (\n (icon ?? defaultIndicatorContent)\n );\n\n const stepLabel = hasError\n ? `Go to step ${index + 1}: ${label} (error)`\n : `Go to step ${index + 1}: ${label}`;\n\n const indicator = isClickable ? (\n <button\n aria-label={stepLabel}\n className={classes.indicator}\n onClick={onClick}\n type=\"button\">\n {indicatorContent}\n </button>\n ) : (\n <div aria-hidden=\"true\" className={classes.indicator}>\n {indicatorContent}\n </div>\n );\n\n const labelNode = (\n <div className={classes.labelRow}>\n <Text as=\"span\" className={classes.label} color=\"inherit\" type=\"label\">\n {label}\n </Text>\n {description != null ? (\n <Text\n as=\"span\"\n className={classes.description}\n color=\"secondary\"\n type=\"supporting\">\n {description}\n </Text>\n ) : null}\n </div>\n );\n\n if (isVertical) {\n return (\n <li\n aria-current={isActive ? 'step' : undefined}\n className={classes.root}\n data-testid={dataTestId}>\n <div className={classes.indicatorColumn}>\n {indicator}\n <div className={classes.connectorWrapper} data-step-connector=\"\">\n <div className={classes.connector} />\n </div>\n </div>\n <div className={classes.content}>\n {labelNode}\n {isReactNode(content) ? (\n <div className={classes.childrenContent}>{content}</div>\n ) : null}\n </div>\n </li>\n );\n }\n\n return (\n <li\n aria-current={isActive ? 'step' : undefined}\n className={classes.root}\n data-testid={dataTestId}>\n <div className={classes.content}>\n {indicator}\n {labelNode}\n </div>\n <div className={classes.connectorWrapper} data-step-connector=\"\">\n <div className={classes.connector} />\n </div>\n </li>\n );\n}\n\nStep.displayName = 'Step';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {Step} from 'components/Stepper/internal/Step';\nimport {cx} from 'internal/cx';\nimport {css} from 'styled-system/css';\n\nexport type StepperOrientation = 'horizontal' | 'vertical';\n\nexport interface StepConfig {\n /**\n * Content rendered below the label and description in vertical steppers.\n */\n content?: ReactNode;\n /**\n * Test ID applied to the step's list item.\n */\n 'data-testid'?: string;\n /**\n * Optional supporting text.\n */\n description?: string;\n /**\n * Whether the step has an error.\n * @default false\n */\n hasError?: boolean;\n /**\n * Custom indicator content replacing the number or check icon.\n */\n icon?: ReactNode;\n /**\n * Stable identifier for the step. Referenced by `activeStep` and passed to\n * `onStepClick`, and used as the React key when rendering.\n */\n id: string;\n /**\n * Override the automatically computed completed state. By default a step is\n * completed when it appears before the active step.\n */\n isCompleted?: boolean;\n /**\n * Whether the step is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Step label.\n */\n label: string;\n}\n\nexport interface StepperProps {\n /**\n * `id` of the active step. A step is completed when it appears before the\n * active step in `steps`; pass an `id` that is not in `steps` (or mark steps\n * `isCompleted`) to represent a fully finished sequence.\n */\n activeStep: string;\n /**\n * Additional CSS class names applied to the ordered list.\n */\n className?: string;\n /**\n * Test ID applied to the ordered list.\n */\n 'data-testid'?: string;\n /**\n * Accessible label for the navigation landmark.\n * @default 'Progress'\n */\n label?: string;\n /**\n * Called with the step `id` when a completed or active step indicator is\n * clicked.\n */\n onStepClick?: (id: string) => void;\n /**\n * Layout direction.\n * @default 'horizontal'\n */\n orientation?: StepperOrientation;\n /**\n * Ref forwarded to the navigation element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Ordered list of steps to render.\n */\n steps: StepConfig[];\n /**\n * Inline styles applied to the ordered list.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n w: 'full',\n m: 0,\n p: 0,\n listStyleType: 'none',\n }),\n horizontal: css({\n flexDirection: 'row',\n alignItems: 'flex-start',\n }),\n vertical: css({\n flexDirection: 'column',\n }),\n} as const;\n\n/**\n * Displays progress through a sequence of logical steps.\n */\nexport function Stepper({\n activeStep,\n className,\n 'data-testid': dataTestId,\n label = 'Progress',\n onStepClick,\n orientation = 'horizontal',\n ref,\n steps,\n style,\n}: StepperProps): React.JSX.Element {\n const isNonLinear = onStepClick != null;\n const activeIndex = steps.findIndex(step => step.id === activeStep);\n\n return (\n <nav\n aria-label={label}\n className={className}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <ol\n className={cx(\n styles.root,\n orientation === 'horizontal' ? styles.horizontal : styles.vertical,\n )}>\n {steps.map((step, index) => {\n const isActive = index === activeIndex;\n const isDisabled = step.isDisabled ?? false;\n const hasError = step.hasError ?? false;\n const isCompleted =\n step.isCompleted ?? (activeIndex !== -1 && index < activeIndex);\n const isClickable =\n isNonLinear && !isDisabled && (isCompleted || isActive);\n\n return (\n <Step\n content={step.content}\n data-testid={step['data-testid']}\n description={step.description}\n hasError={hasError}\n icon={step.icon}\n index={index}\n isActive={isActive}\n isClickable={isClickable}\n isCompleted={isCompleted}\n isDisabled={isDisabled}\n key={step.id}\n label={step.label}\n onClick={() => onStepClick?.(step.id)}\n orientation={orientation}\n />\n );\n })}\n </ol>\n </nav>\n );\n}\n\nStepper.displayName = 'Stepper';\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-GKYGZWSQ.js';
2
+ import { getNecessity, Field } from './chunk-USEA7DB5.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-YAQB3UMC.js.map
257
+ //# sourceMappingURL=chunk-YAQB3UMC.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-YAQB3UMC.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-EBV3EX3J.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-YGESCFX2.js.map
831
+ //# sourceMappingURL=chunk-YGESCFX2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Calendar/Calendar.recipe.ts","../src/internal/useGridFocus.ts","../src/components/Calendar/Calendar.tsx"],"names":["useRef","useCallback","MonthGrid","DayCell"],"mappings":"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","file":"chunk-2VL66QBX.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const calendarRecipe = sva({\n slots: [\n 'root',\n 'header',\n 'monthYear',\n 'months',\n 'monthGrid',\n 'weekHeader',\n 'dayName',\n 'daysGrid',\n 'weekRow',\n 'weekNumber',\n 'cell',\n 'rangeBackground',\n 'day',\n ],\n base: {\n root: {\n display: 'inline-block',\n minW: '220px',\n color: 'fg',\n fontFamily: 'body',\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '2',\n mb: '2',\n },\n monthYear: {\n flex: 1,\n textAlign: 'center',\n fontSize: 'sm',\n fontWeight: 'semibold',\n },\n months: {\n display: 'flex',\n gap: '4',\n },\n monthGrid: {\n flex: '1 1 0',\n },\n weekHeader: {\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)',\n mb: '1',\n },\n dayName: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'component.md',\n h: 'component.md',\n color: 'fg.muted',\n fontSize: 'sm',\n },\n daysGrid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)',\n },\n weekRow: {\n display: 'contents',\n },\n weekNumber: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'component.md',\n h: 'component.md',\n color: 'fg.muted',\n fontSize: 'sm',\n },\n cell: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n h: 'component.md',\n isolation: 'isolate',\n },\n rangeBackground: {\n position: 'absolute',\n insetBlock: '2px',\n insetInline: 0,\n },\n day: {\n position: 'relative',\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'component.sm',\n h: 'component.sm',\n p: 0,\n borderWidth: 0,\n borderStyle: 'none',\n borderRadius: 'full',\n bg: 'transparent',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'inherit',\n fontSize: 'md',\n transitionProperty: 'background-color, color',\n transitionDuration: 'fast',\n _hover: {\n bg: 'bg.subtle',\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n _disabled: {\n cursor: 'not-allowed',\n },\n },\n },\n variants: {\n // Reserve a leading column for ISO week numbers in the header and grid.\n hasWeekNumbers: {\n true: {\n weekHeader: {gridTemplateColumns: 'auto repeat(7, 1fr)'},\n daysGrid: {gridTemplateColumns: 'auto repeat(7, 1fr)'},\n },\n false: {},\n },\n isOutside: {\n true: {day: {color: 'fg.muted', opacity: 0.55}},\n false: {},\n },\n // Marker variant; the today ring is suppressed for selected/in-range days,\n // so the real styling lives in compoundVariants below.\n isToday: {\n true: {},\n false: {},\n },\n isSelected: {\n true: {\n day: {\n bg: 'primary',\n color: 'fg.onPrimary',\n _hover: {bg: 'primary'},\n },\n },\n false: {},\n },\n // Marker variant; only used to suppress the today ring on range middles.\n isInRange: {\n true: {},\n false: {},\n },\n // Declared after isOutside so the disabled opacity wins when both apply.\n // Outside days are `aria-disabled` but intentionally not natively\n // `disabled` (that would drop them from useGridFocus's dense-grid index\n // math), so the not-allowed cursor is driven from this variant rather than\n // the native `:disabled` pseudo.\n isDisabled: {\n true: {day: {opacity: 0.35, cursor: 'not-allowed'}},\n false: {},\n },\n rangeTone: {\n range: {rangeBackground: {bg: 'bg.selected'}},\n preview: {rangeBackground: {bg: 'bg.subtle'}},\n },\n roundedStart: {\n true: {\n rangeBackground: {\n left: '2px',\n borderTopLeftRadius: 'full',\n borderBottomLeftRadius: 'full',\n },\n },\n false: {},\n },\n roundedEnd: {\n true: {\n rangeBackground: {\n right: '2px',\n borderTopRightRadius: 'full',\n borderBottomRightRadius: 'full',\n },\n },\n false: {},\n },\n },\n compoundVariants: [\n {\n isToday: true,\n isSelected: false,\n isInRange: false,\n css: {\n day: {boxShadow: 'inset 0 0 0 1px token(colors.border.emphasized)'},\n },\n },\n ],\n defaultVariants: {\n hasWeekNumbers: false,\n isOutside: false,\n isToday: false,\n isSelected: false,\n isInRange: false,\n isDisabled: false,\n rangeTone: 'range',\n roundedStart: false,\n roundedEnd: false,\n },\n});\n\nexport type CalendarVariants = RecipeVariantProps<typeof calendarRecipe>;\n","import {useCallback, useRef} from 'react';\n\nexport interface UseGridFocusOptions {\n cellSelector?: string;\n columns: number;\n onNavigateAfter?: (column: number, offset: number) => void;\n onNavigateBefore?: (column: number, offset: number) => void;\n onPageDown?: () => void;\n onPageUp?: () => void;\n}\n\nexport interface UseGridFocusReturn<T extends HTMLElement = HTMLElement> {\n focusCell: (index: number) => void;\n focusFirst: () => void;\n focusLast: () => void;\n gridRef: React.RefObject<T | null>;\n handleKeyDown: (event: React.KeyboardEvent) => void;\n}\n\nexport function useGridFocus<T extends HTMLElement = HTMLElement>({\n columns,\n cellSelector = 'button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])',\n onNavigateAfter,\n onNavigateBefore,\n onPageDown,\n onPageUp,\n}: UseGridFocusOptions): UseGridFocusReturn<T> {\n const gridRef = useRef<T>(null);\n\n const getCells = useCallback(() => {\n return gridRef.current == null\n ? []\n : Array.from(gridRef.current.querySelectorAll<HTMLElement>(cellSelector));\n }, [cellSelector]);\n\n const focusCell = useCallback(\n (index: number) => {\n const cells = getCells();\n const clampedIndex = Math.max(0, Math.min(index, cells.length - 1));\n cells[clampedIndex]?.focus();\n },\n [getCells],\n );\n\n const focusFirst = useCallback(() => focusCell(0), [focusCell]);\n\n const focusLast = useCallback(() => {\n const cells = getCells();\n cells.at(-1)?.focus();\n }, [getCells]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const cells = getCells();\n const currentIndex = cells.findIndex(\n cell => cell === document.activeElement,\n );\n if (currentIndex === -1) {\n return;\n }\n\n const currentRow = Math.floor(currentIndex / columns);\n const currentColumn = currentIndex % columns;\n const totalRows = Math.ceil(cells.length / columns);\n let nextIndex: number | null = null;\n\n switch (event.key) {\n case 'ArrowRight':\n nextIndex = currentIndex + 1;\n break;\n case 'ArrowLeft':\n nextIndex = currentIndex - 1;\n break;\n case 'ArrowDown':\n if (currentRow >= totalRows - 1) {\n onNavigateAfter?.(currentColumn, columns);\n } else {\n nextIndex = currentIndex + columns;\n }\n break;\n case 'ArrowUp':\n if (currentRow <= 0) {\n onNavigateBefore?.(currentColumn, columns);\n } else {\n nextIndex = currentIndex - columns;\n }\n break;\n case 'Home':\n nextIndex = event.ctrlKey || event.metaKey ? 0 : currentRow * columns;\n break;\n case 'End':\n nextIndex =\n event.ctrlKey || event.metaKey\n ? cells.length - 1\n : Math.min((currentRow + 1) * columns - 1, cells.length - 1);\n break;\n case 'PageUp':\n onPageUp?.();\n break;\n case 'PageDown':\n onPageDown?.();\n break;\n default:\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (nextIndex == null) {\n return;\n }\n\n if (nextIndex < 0) {\n onNavigateBefore?.(currentColumn, 1);\n return;\n }\n\n if (nextIndex >= cells.length) {\n onNavigateAfter?.(currentColumn, 1);\n return;\n }\n\n cells[nextIndex]?.focus();\n },\n [\n columns,\n getCells,\n onNavigateAfter,\n onNavigateBefore,\n onPageDown,\n onPageUp,\n ],\n );\n\n return {gridRef, handleKeyDown, focusCell, focusFirst, focusLast};\n}\n","import {Temporal} from '@js-temporal/polyfill';\nimport {ChevronLeft, ChevronRight} from 'lucide-react';\nimport {\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {calendarRecipe} from 'components/Calendar/Calendar.recipe';\nimport {cx} from 'internal/cx';\nimport type {DateRange, DayOfWeek} from 'internal/dateTypes';\nimport {\n DATE_FORMAT_MONTH_YEAR,\n DATE_FORMAT_WITH_WEEKDAY,\n getDaysInMonth,\n plainDateCreate,\n plainDateDayOfWeek,\n plainDateFormat,\n plainDateGetWeekNumber,\n plainDateIsAfter,\n plainDateIsBefore,\n plainDateIsEqual,\n plainDateIsInRange,\n plainDateToday,\n type PlainDate,\n} from 'internal/plainDate';\nimport {getBrowserTimezoneID} from 'internal/time';\nimport {useGridFocus} from 'internal/useGridFocus';\n\nexport type {DateRange, DayOfWeek} from 'internal/dateTypes';\n\nexport interface CalendarHandle {\n navigateTo: (date: PlainDate) => void;\n}\n\ninterface CalendarBaseProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Returns true for dates that should be disabled.\n */\n getIsDateDisabled?: (date: PlainDate) => boolean;\n /**\n * Whether to move focus into the day grid — onto the selected date, otherwise\n * today, otherwise the first enabled day. Focus is (re)applied whenever this\n * transitions to `true`, so driving it from an open state focuses the grid\n * each time the calendar opens.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show outside-month days.\n * @default true\n */\n hasOutsideDays?: boolean;\n /**\n * Whether month grids use only needed rows rather than a fixed six rows.\n * @default false\n */\n hasVariableRowCount?: boolean;\n /**\n * Whether to show ISO week numbers.\n * @default false\n */\n hasWeekNumbers?: boolean;\n /**\n * Maximum selectable date.\n */\n max?: PlainDate;\n /**\n * Minimum selectable date.\n */\n min?: PlainDate;\n /**\n * Number of months displayed.\n * @default 1\n */\n numberOfMonths?: 1 | 2;\n /**\n * Called when the visible month changes. Passing this alongside `viewDate`\n * puts the visible month in controlled mode: the calendar stops tracking the\n * month itself and renders whatever `viewDate` you feed back here.\n */\n onViewDateChange?: (viewDate: PlainDate) => void;\n /**\n * Ref exposing imperative calendar navigation.\n */\n ref?: Ref<CalendarHandle>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Timezone used to determine today's date.\n * @default browser timezone\n */\n timezoneID?: string;\n /**\n * The visible month. On its own this is just the initial month to display;\n * the calendar then tracks the month internally. Pass `onViewDateChange` as\n * well to make the visible month controlled, where `viewDate` is the source\n * of truth on every render.\n */\n viewDate?: PlainDate;\n /**\n * First day of week, where 0 is Sunday.\n * @default 0\n */\n weekStartsOn?: DayOfWeek;\n}\n\ninterface CalendarSingleProps extends CalendarBaseProps {\n /**\n * Default selected date for uncontrolled usage.\n */\n defaultValue?: PlainDate;\n /**\n * Selection mode. Defaults to 'single'.\n */\n mode?: 'single';\n /**\n * Called when the selected date changes.\n */\n onChange: (value: PlainDate) => void;\n /**\n * Controlled selected date.\n */\n value?: PlainDate;\n}\n\ninterface CalendarRangeProps extends CalendarBaseProps {\n /**\n * Default selected range for uncontrolled usage.\n */\n defaultValue?: DateRange;\n /**\n * Selection mode set to 'range'.\n */\n mode: 'range';\n /**\n * Called when the selected date range changes.\n */\n onChange: (value: DateRange) => void;\n /**\n * Controlled selected date range.\n */\n value?: DateRange;\n}\n\nexport type CalendarProps = CalendarSingleProps | CalendarRangeProps;\n\ninterface CalendarDay {\n date: PlainDate;\n dayNumber: number;\n isOutside: boolean;\n}\n\nfunction generateCalendarDays({\n year,\n month,\n weekStartsOn,\n hasVariableRowCount,\n}: {\n hasVariableRowCount: boolean;\n month: number;\n weekStartsOn: DayOfWeek;\n year: number;\n}): {dayNames: string[]; weeks: CalendarDay[][]} {\n const names = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n const dayNames = Array.from({length: 7}, (_, index) => {\n return names[(index + weekStartsOn) % 7];\n });\n const daysInMonth = getDaysInMonth(year, month);\n const firstOfMonth = plainDateCreate(year, month, 1);\n let startOffset = plainDateDayOfWeek(firstOfMonth) - weekStartsOn;\n if (startOffset < 0) {\n startOffset += 7;\n }\n\n const totalDays = daysInMonth + startOffset;\n const totalRows = hasVariableRowCount ? Math.ceil(totalDays / 7) : 6;\n const days = Array.from({length: totalRows * 7}, (_, index) => {\n const dayOffset = index - startOffset + 1;\n const isOutside = dayOffset < 1 || dayOffset > daysInMonth;\n const date = isOutside\n ? firstOfMonth.add({days: dayOffset - 1})\n : plainDateCreate(year, month, dayOffset);\n\n return {\n date,\n dayNumber: date.day,\n isOutside,\n };\n });\n\n const weeks: CalendarDay[][] = [];\n for (let index = 0; index < days.length; index += 7) {\n weeks.push(days.slice(index, index + 7));\n }\n\n return {dayNames, weeks};\n}\n\nfunction checkDateDisabled(\n date: PlainDate,\n options: {\n getIsDateDisabled?: (date: PlainDate) => boolean;\n max?: PlainDate;\n min?: PlainDate;\n },\n): boolean {\n if (options.min != null && plainDateIsBefore(date, options.min)) {\n return true;\n }\n\n if (options.max != null && plainDateIsAfter(date, options.max)) {\n return true;\n }\n\n return options.getIsDateDisabled?.(date) ?? false;\n}\n\nfunction getSelectedTabDate({\n days,\n getIsDisabled,\n month,\n selectedDate,\n today,\n year,\n}: {\n days: CalendarDay[];\n getIsDisabled: (date: PlainDate) => boolean;\n month: number;\n selectedDate: PlainDate | null;\n today: PlainDate;\n year: number;\n}): PlainDate | null {\n if (\n selectedDate?.year === year &&\n selectedDate.month === month &&\n !getIsDisabled(selectedDate)\n ) {\n return selectedDate;\n }\n\n if (today.year === year && today.month === month && !getIsDisabled(today)) {\n return today;\n }\n\n return (\n days.find(day => !day.isOutside && !getIsDisabled(day.date))?.date ?? null\n );\n}\n\n/**\n * A date picker calendar supporting single date and date range selection.\n */\nexport function Calendar({\n className,\n 'data-testid': dataTestId,\n defaultValue,\n getIsDateDisabled: getIsDateDisabledProp,\n hasAutoFocus = false,\n hasOutsideDays = true,\n hasVariableRowCount = false,\n hasWeekNumbers = false,\n max,\n min,\n mode = 'single',\n numberOfMonths = 1,\n onChange,\n onViewDateChange,\n ref,\n style,\n timezoneID,\n value,\n viewDate: viewDateFromProps,\n weekStartsOn = 0,\n}: CalendarProps): React.JSX.Element {\n const effectiveTimezoneID = timezoneID ?? getBrowserTimezoneID();\n const today = useMemo(\n () => plainDateToday(effectiveTimezoneID),\n [effectiveTimezoneID],\n );\n const [internalValue, setInternalValue] = useState<\n DateRange | PlainDate | undefined\n >(defaultValue);\n const [rangeSelectionStart, setRangeSelectionStart] =\n useState<PlainDate | null>(null);\n const [hoveredDate, setHoveredDate] = useState<PlainDate | null>(null);\n const [pendingFocus, setPendingFocus] = useState<PlainDate | null>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const effectiveValue = value ?? internalValue;\n const isViewDateControlled =\n viewDateFromProps != null && onViewDateChange != null;\n const [internalViewDate, setInternalViewDate] = useState(() => {\n if (viewDateFromProps != null) {\n return viewDateFromProps;\n }\n\n if (effectiveValue != null && 'year' in effectiveValue) {\n return effectiveValue;\n }\n\n if (effectiveValue != null && 'start' in effectiveValue) {\n return effectiveValue.start;\n }\n\n return today;\n });\n const viewDate = isViewDateControlled ? viewDateFromProps : internalViewDate;\n const baseMonth = useMemo(() => viewDate.with({day: 1}), [viewDate]);\n const visibleMonths = useMemo(\n () =>\n Array.from({length: numberOfMonths}, (_, index) =>\n baseMonth.add({months: index}),\n ),\n [baseMonth, numberOfMonths],\n );\n const monthYearLabel = useMemo(\n () =>\n visibleMonths\n .map(month => plainDateFormat(month, DATE_FORMAT_MONTH_YEAR))\n .join(' - '),\n [visibleMonths],\n );\n\n const canNavigatePrevious =\n min == null || plainDateIsBefore(min.with({day: 1}), baseMonth);\n const lastVisibleMonth = visibleMonths.at(-1) ?? baseMonth;\n const canNavigateNext =\n max == null || plainDateIsAfter(max.with({day: 1}), lastVisibleMonth);\n\n const navigateMonth = useCallback(\n (delta: number, nextFocus?: PlainDate) => {\n const nextMonth = baseMonth.add({months: delta});\n\n if (nextFocus != null) {\n setPendingFocus(nextFocus);\n }\n\n onViewDateChange?.(nextMonth);\n if (!isViewDateControlled) {\n setInternalViewDate(nextMonth);\n }\n },\n [baseMonth, isViewDateControlled, onViewDateChange],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n navigateTo: date => {\n onViewDateChange?.(date);\n if (!isViewDateControlled) {\n setInternalViewDate(date);\n }\n },\n }),\n [isViewDateControlled, onViewDateChange],\n );\n\n // When focus is requested, move it to the grid cell that holds the roving\n // tabindex — the selected date if visible and enabled, otherwise today,\n // otherwise the first enabled day — per the WAI-ARIA date picker pattern.\n // Driving `hasAutoFocus` from an open state re-focuses each time it opens.\n useEffect(() => {\n if (!hasAutoFocus) {\n return;\n }\n\n rootRef.current\n ?.querySelector<HTMLButtonElement>('[data-date][tabindex=\"0\"]')\n ?.focus();\n }, [hasAutoFocus]);\n\n const handleDayClick = useCallback(\n (date: PlainDate) => {\n if (mode === 'single') {\n setInternalValue(date);\n (onChange as CalendarSingleProps['onChange'])(date);\n return;\n }\n\n if (rangeSelectionStart == null) {\n setRangeSelectionStart(date);\n return;\n }\n\n const range = plainDateIsBefore(date, rangeSelectionStart)\n ? {start: date, end: rangeSelectionStart}\n : {start: rangeSelectionStart, end: date};\n setInternalValue(range);\n setRangeSelectionStart(null);\n (onChange as CalendarRangeProps['onChange'])(range);\n },\n [mode, onChange, rangeSelectionStart],\n );\n\n const handleNavigateNext = useCallback(\n (nextFocus: PlainDate) => navigateMonth(1, nextFocus),\n [navigateMonth],\n );\n\n const handleNavigatePrevious = useCallback(\n (nextFocus: PlainDate) => navigateMonth(-1, nextFocus),\n [navigateMonth],\n );\n\n const handlePendingFocusHandled = useCallback(\n () => setPendingFocus(null),\n [],\n );\n\n const styles = calendarRecipe();\n\n return (\n // eslint-disable-next-line jsx-a11y-x/no-static-element-interactions\n <div\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n onKeyDown={event => {\n if (\n mode === 'range' &&\n rangeSelectionStart != null &&\n event.key === 'Escape'\n ) {\n setRangeSelectionStart(null);\n event.preventDefault();\n event.stopPropagation();\n }\n }}\n ref={rootRef}\n style={style}>\n <div className={styles.header}>\n <Button\n icon={ChevronLeft}\n isDisabled={!canNavigatePrevious}\n isIconOnly\n label=\"Previous month\"\n onClick={() => navigateMonth(-1)}\n size=\"sm\"\n variant=\"ghost\"\n />\n <span className={styles.monthYear}>{monthYearLabel}</span>\n <Button\n icon={ChevronRight}\n isDisabled={!canNavigateNext}\n isIconOnly\n label=\"Next month\"\n onClick={() => navigateMonth(1)}\n size=\"sm\"\n variant=\"ghost\"\n />\n </div>\n <div className={styles.months}>\n {visibleMonths.map(month => (\n <MonthGrid\n getIsDateDisabled={getIsDateDisabledProp}\n hasOutsideDays={hasOutsideDays}\n hasVariableRowCount={hasVariableRowCount}\n hasWeekNumbers={hasWeekNumbers}\n hoveredDate={hoveredDate}\n key={month.toString()}\n max={max}\n min={min}\n mode={mode}\n month={month}\n onDayClick={handleDayClick}\n onDayHover={setHoveredDate}\n onNavigateNext={handleNavigateNext}\n onNavigatePrevious={handleNavigatePrevious}\n onPendingFocusHandled={handlePendingFocusHandled}\n pendingFocus={pendingFocus}\n rangeSelectionStart={rangeSelectionStart}\n today={today}\n value={effectiveValue}\n weekStartsOn={weekStartsOn}\n />\n ))}\n </div>\n </div>\n );\n}\n\ninterface MonthGridProps {\n getIsDateDisabled?: (date: PlainDate) => boolean;\n hasOutsideDays: boolean;\n hasVariableRowCount: boolean;\n hasWeekNumbers: boolean;\n hoveredDate: PlainDate | null;\n max?: PlainDate;\n min?: PlainDate;\n mode: 'single' | 'range';\n month: PlainDate;\n onDayClick: (date: PlainDate) => void;\n onDayHover: (date: PlainDate | null) => void;\n onNavigateNext: (nextFocus: PlainDate) => void;\n onNavigatePrevious: (nextFocus: PlainDate) => void;\n onPendingFocusHandled: () => void;\n pendingFocus: PlainDate | null;\n rangeSelectionStart: PlainDate | null;\n today: PlainDate;\n value: DateRange | PlainDate | undefined;\n weekStartsOn: DayOfWeek;\n}\n\nconst MonthGrid = memo(function MonthGrid({\n month,\n value,\n mode,\n rangeSelectionStart,\n hoveredDate,\n min,\n max,\n getIsDateDisabled: getIsDateDisabledProp,\n hasOutsideDays,\n hasWeekNumbers,\n hasVariableRowCount,\n weekStartsOn,\n onDayClick,\n onDayHover,\n today,\n onNavigatePrevious,\n onNavigateNext,\n pendingFocus,\n onPendingFocusHandled,\n}: MonthGridProps): React.JSX.Element {\n const {dayNames, weeks} = useMemo(\n () =>\n generateCalendarDays({\n year: month.year,\n month: month.month,\n weekStartsOn,\n hasVariableRowCount,\n }),\n [hasVariableRowCount, month.month, month.year, weekStartsOn],\n );\n const days = weeks.flat();\n const isDisabled = useCallback(\n (date: PlainDate) =>\n checkDateDisabled(date, {\n min,\n max,\n getIsDateDisabled: getIsDateDisabledProp,\n }),\n [getIsDateDisabledProp, max, min],\n );\n const selectedDate =\n mode === 'single' && value != null && 'year' in value ? value : null;\n const tabbableDate = getSelectedTabDate({\n days,\n getIsDisabled: isDisabled,\n month: month.month,\n selectedDate,\n today,\n year: month.year,\n });\n\n const getFocusedDate = useCallback((): PlainDate | null => {\n const activeElement = document.activeElement as HTMLElement | null;\n const date = activeElement?.dataset.date;\n return date == null ? null : Temporal.PlainDate.from(date);\n }, []);\n\n const {gridRef, handleKeyDown} = useGridFocus<HTMLDivElement>({\n columns: 7,\n cellSelector: 'button:not([disabled])',\n onNavigateBefore: (_column, offset) => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigatePrevious(focusedDate.subtract({days: offset}));\n }\n },\n onNavigateAfter: (_column, offset) => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigateNext(focusedDate.add({days: offset}));\n }\n },\n // Page keys move a whole month, keeping the same day. Temporal's default\n // `constrain` overflow clamps to the month's last day (e.g. Jan 31 -> Feb 28).\n onPageUp: () => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigatePrevious(focusedDate.subtract({months: 1}));\n }\n },\n onPageDown: () => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigateNext(focusedDate.add({months: 1}));\n }\n },\n });\n\n // Keyboard navigation that crosses a month boundary sets `pendingFocus` and\n // changes the visible month in the same update. We can't focus the target day\n // imperatively at that point because its cell doesn't exist yet — it only\n // renders after the new month commits (and with a controlled `viewDate`, that\n // render is driven by the parent, so its timing isn't ours to know). Deferring\n // to this effect runs the focus once the new month's cells are in the DOM.\n useEffect(() => {\n if (pendingFocus == null || gridRef.current == null) {\n return;\n }\n\n const button = gridRef.current.querySelector<HTMLButtonElement>(\n `button[data-date=\"${pendingFocus.toString()}\"]`,\n );\n button?.focus();\n onPendingFocusHandled();\n }, [gridRef, onPendingFocusHandled, pendingFocus]);\n\n let rangeStart: PlainDate | null = null;\n let rangeEnd: PlainDate | null = null;\n if (mode === 'range' && value != null && 'start' in value) {\n rangeStart = value.start;\n rangeEnd = value.end;\n }\n if (rangeSelectionStart != null) {\n rangeStart = rangeSelectionStart;\n rangeEnd = rangeSelectionStart;\n }\n\n let previewStart: PlainDate | null = null;\n let previewEnd: PlainDate | null = null;\n if (mode === 'range' && rangeSelectionStart != null && hoveredDate != null) {\n if (!plainDateIsEqual(rangeSelectionStart, hoveredDate)) {\n previewStart = plainDateIsBefore(hoveredDate, rangeSelectionStart)\n ? hoveredDate\n : rangeSelectionStart;\n previewEnd = plainDateIsBefore(hoveredDate, rangeSelectionStart)\n ? rangeSelectionStart\n : hoveredDate;\n }\n }\n\n const isSelectingRange = mode === 'range' && rangeSelectionStart != null;\n\n const styles = calendarRecipe({hasWeekNumbers});\n\n return (\n <div className={styles.monthGrid}>\n <div className={styles.weekHeader}>\n {hasWeekNumbers ? <div className={styles.dayName} /> : null}\n {dayNames.map(dayName => (\n <div className={styles.dayName} key={dayName} role=\"columnheader\">\n {dayName}\n </div>\n ))}\n </div>\n <div\n aria-label={plainDateFormat(month, DATE_FORMAT_MONTH_YEAR)}\n className={styles.daysGrid}\n onKeyDown={handleKeyDown}\n ref={gridRef}\n role=\"grid\"\n tabIndex={-1}>\n {weeks.map(week => {\n const weekDate =\n week.find(day => !day.isOutside)?.date ?? week[0].date;\n return (\n <div\n className={styles.weekRow}\n key={week[0].date.toString()}\n role=\"row\">\n {hasWeekNumbers ? (\n <div className={styles.weekNumber}>\n {plainDateGetWeekNumber(weekDate)}\n </div>\n ) : null}\n {week.map((day, dayIndex) => (\n <DayCell\n day={day}\n dayIndex={dayIndex}\n hasOutsideDays={hasOutsideDays}\n isDisabled={isDisabled(day.date)}\n isSelectingRange={isSelectingRange}\n isTabbable={\n tabbableDate != null &&\n plainDateIsEqual(tabbableDate, day.date)\n }\n key={day.date.toString()}\n mode={mode}\n onDayClick={onDayClick}\n onDayHover={onDayHover}\n previewEnd={previewEnd}\n previewStart={previewStart}\n rangeEnd={rangeEnd}\n rangeStart={rangeStart}\n selectedDate={selectedDate}\n today={today}\n />\n ))}\n </div>\n );\n })}\n </div>\n </div>\n );\n});\n\ninterface DayCellProps {\n day: CalendarDay;\n dayIndex: number;\n hasOutsideDays: boolean;\n isDisabled: boolean;\n isSelectingRange: boolean;\n isTabbable: boolean;\n mode: 'single' | 'range';\n onDayClick: (date: PlainDate) => void;\n onDayHover: (date: PlainDate | null) => void;\n previewEnd: PlainDate | null;\n previewStart: PlainDate | null;\n rangeEnd: PlainDate | null;\n rangeStart: PlainDate | null;\n selectedDate: PlainDate | null;\n today: PlainDate;\n}\n\nconst DayCell = memo(function DayCell({\n day,\n dayIndex,\n mode,\n selectedDate,\n rangeStart,\n rangeEnd,\n previewStart,\n previewEnd,\n today,\n hasOutsideDays,\n isDisabled,\n isSelectingRange,\n isTabbable,\n onDayClick,\n onDayHover,\n}: DayCellProps): React.JSX.Element {\n if (day.isOutside && !hasOutsideDays) {\n return <div className={calendarRecipe().cell} />;\n }\n\n const effectivelyDisabled = isDisabled || day.isOutside;\n const isToday = plainDateIsEqual(day.date, today);\n const isSelected =\n mode === 'single' &&\n selectedDate != null &&\n plainDateIsEqual(day.date, selectedDate);\n const isInRange =\n mode === 'range' &&\n rangeStart != null &&\n rangeEnd != null &&\n plainDateIsInRange(day.date, [rangeStart, rangeEnd]);\n const isRangeStart =\n mode === 'range' &&\n rangeStart != null &&\n plainDateIsEqual(day.date, rangeStart);\n const isRangeEnd =\n mode === 'range' &&\n rangeEnd != null &&\n plainDateIsEqual(day.date, rangeEnd);\n const isInPreview =\n previewStart != null &&\n previewEnd != null &&\n plainDateIsInRange(day.date, [previewStart, previewEnd]);\n const isPreviewStart =\n previewStart != null && plainDateIsEqual(day.date, previewStart);\n const isPreviewEnd =\n previewEnd != null && plainDateIsEqual(day.date, previewEnd);\n const isFirstColumn = dayIndex === 0;\n const isLastColumn = dayIndex === 6;\n\n const styles = calendarRecipe({\n isOutside: day.isOutside,\n isToday,\n isSelected: isSelected || isRangeStart || isRangeEnd,\n isInRange,\n isDisabled: effectivelyDisabled,\n });\n const rangeBackgroundClass = calendarRecipe({\n rangeTone: 'range',\n roundedStart: isRangeStart || isFirstColumn,\n roundedEnd: isRangeEnd || isLastColumn,\n }).rangeBackground;\n const previewBackgroundClass = calendarRecipe({\n rangeTone: 'preview',\n roundedStart: isPreviewStart || isFirstColumn,\n roundedEnd: isPreviewEnd || isLastColumn,\n }).rangeBackground;\n\n return (\n <div className={styles.cell}>\n {isInRange ? <div className={rangeBackgroundClass} /> : null}\n {isInPreview ? <div className={previewBackgroundClass} /> : null}\n <button\n aria-disabled={effectivelyDisabled || undefined}\n aria-label={plainDateFormat(day.date, DATE_FORMAT_WITH_WEEKDAY)}\n aria-selected={isSelected || isInRange || undefined}\n className={styles.day}\n data-date={day.date.toString()}\n disabled={isDisabled}\n onClick={() => {\n if (!effectivelyDisabled) {\n onDayClick(day.date);\n }\n }}\n onMouseEnter={() => {\n if (isSelectingRange && !effectivelyDisabled) {\n onDayHover(day.date);\n }\n }}\n onMouseLeave={() => {\n if (isSelectingRange) {\n onDayHover(null);\n }\n }}\n role=\"gridcell\"\n tabIndex={isTabbable ? 0 : -1}\n type=\"button\">\n {day.dayNumber}\n </button>\n </div>\n );\n});\n\nCalendar.displayName = 'Calendar';\n"]}
1
+ {"version":3,"sources":["../src/components/Calendar/Calendar.recipe.ts","../src/internal/useGridFocus.ts","../src/components/Calendar/Calendar.tsx"],"names":["useRef","useCallback","MonthGrid","DayCell"],"mappings":"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","file":"chunk-YGESCFX2.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const calendarRecipe = sva({\n slots: [\n 'root',\n 'header',\n 'monthYear',\n 'months',\n 'monthGrid',\n 'weekHeader',\n 'dayName',\n 'daysGrid',\n 'weekRow',\n 'weekNumber',\n 'cell',\n 'rangeBackground',\n 'day',\n ],\n base: {\n root: {\n display: 'inline-block',\n minW: '220px',\n color: 'fg',\n fontFamily: 'body',\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '2',\n mb: '2',\n },\n monthYear: {\n flex: 1,\n textAlign: 'center',\n fontSize: 'sm',\n fontWeight: 'semibold',\n },\n months: {\n display: 'flex',\n gap: '4',\n },\n monthGrid: {\n flex: '1 1 0',\n },\n weekHeader: {\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)',\n mb: '1',\n },\n dayName: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'component.md',\n h: 'component.md',\n color: 'fg.muted',\n fontSize: 'sm',\n },\n daysGrid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)',\n },\n weekRow: {\n display: 'contents',\n },\n weekNumber: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'component.md',\n h: 'component.md',\n color: 'fg.muted',\n fontSize: 'sm',\n },\n cell: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n h: 'component.md',\n isolation: 'isolate',\n },\n rangeBackground: {\n position: 'absolute',\n insetBlock: '2px',\n insetInline: 0,\n },\n day: {\n position: 'relative',\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'component.sm',\n h: 'component.sm',\n p: 0,\n borderWidth: 0,\n borderStyle: 'none',\n borderRadius: 'full',\n bg: 'transparent',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'inherit',\n fontSize: 'md',\n transitionProperty: 'background-color, color',\n transitionDuration: 'fast',\n _hover: {\n bg: 'bg.subtle',\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n _disabled: {\n cursor: 'not-allowed',\n },\n },\n },\n variants: {\n // Reserve a leading column for ISO week numbers in the header and grid.\n hasWeekNumbers: {\n true: {\n weekHeader: {gridTemplateColumns: 'auto repeat(7, 1fr)'},\n daysGrid: {gridTemplateColumns: 'auto repeat(7, 1fr)'},\n },\n false: {},\n },\n isOutside: {\n true: {day: {color: 'fg.muted', opacity: 0.55}},\n false: {},\n },\n // Marker variant; the today ring is suppressed for selected/in-range days,\n // so the real styling lives in compoundVariants below.\n isToday: {\n true: {},\n false: {},\n },\n isSelected: {\n true: {\n day: {\n bg: 'primary',\n color: 'fg.onPrimary',\n _hover: {bg: 'primary'},\n },\n },\n false: {},\n },\n // Marker variant; only used to suppress the today ring on range middles.\n isInRange: {\n true: {},\n false: {},\n },\n // Declared after isOutside so the disabled opacity wins when both apply.\n // Outside days are `aria-disabled` but intentionally not natively\n // `disabled` (that would drop them from useGridFocus's dense-grid index\n // math), so the not-allowed cursor is driven from this variant rather than\n // the native `:disabled` pseudo.\n isDisabled: {\n true: {day: {opacity: 0.35, cursor: 'not-allowed'}},\n false: {},\n },\n rangeTone: {\n range: {rangeBackground: {bg: 'bg.selected'}},\n preview: {rangeBackground: {bg: 'bg.subtle'}},\n },\n roundedStart: {\n true: {\n rangeBackground: {\n left: '2px',\n borderTopLeftRadius: 'full',\n borderBottomLeftRadius: 'full',\n },\n },\n false: {},\n },\n roundedEnd: {\n true: {\n rangeBackground: {\n right: '2px',\n borderTopRightRadius: 'full',\n borderBottomRightRadius: 'full',\n },\n },\n false: {},\n },\n },\n compoundVariants: [\n {\n isToday: true,\n isSelected: false,\n isInRange: false,\n css: {\n day: {boxShadow: 'inset 0 0 0 1px token(colors.border.emphasized)'},\n },\n },\n ],\n defaultVariants: {\n hasWeekNumbers: false,\n isOutside: false,\n isToday: false,\n isSelected: false,\n isInRange: false,\n isDisabled: false,\n rangeTone: 'range',\n roundedStart: false,\n roundedEnd: false,\n },\n});\n\nexport type CalendarVariants = RecipeVariantProps<typeof calendarRecipe>;\n","import {useCallback, useRef} from 'react';\n\nexport interface UseGridFocusOptions {\n cellSelector?: string;\n columns: number;\n onNavigateAfter?: (column: number, offset: number) => void;\n onNavigateBefore?: (column: number, offset: number) => void;\n onPageDown?: () => void;\n onPageUp?: () => void;\n}\n\nexport interface UseGridFocusReturn<T extends HTMLElement = HTMLElement> {\n focusCell: (index: number) => void;\n focusFirst: () => void;\n focusLast: () => void;\n gridRef: React.RefObject<T | null>;\n handleKeyDown: (event: React.KeyboardEvent) => void;\n}\n\nexport function useGridFocus<T extends HTMLElement = HTMLElement>({\n columns,\n cellSelector = 'button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])',\n onNavigateAfter,\n onNavigateBefore,\n onPageDown,\n onPageUp,\n}: UseGridFocusOptions): UseGridFocusReturn<T> {\n const gridRef = useRef<T>(null);\n\n const getCells = useCallback(() => {\n return gridRef.current == null\n ? []\n : Array.from(gridRef.current.querySelectorAll<HTMLElement>(cellSelector));\n }, [cellSelector]);\n\n const focusCell = useCallback(\n (index: number) => {\n const cells = getCells();\n const clampedIndex = Math.max(0, Math.min(index, cells.length - 1));\n cells[clampedIndex]?.focus();\n },\n [getCells],\n );\n\n const focusFirst = useCallback(() => focusCell(0), [focusCell]);\n\n const focusLast = useCallback(() => {\n const cells = getCells();\n cells.at(-1)?.focus();\n }, [getCells]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const cells = getCells();\n const currentIndex = cells.findIndex(\n cell => cell === document.activeElement,\n );\n if (currentIndex === -1) {\n return;\n }\n\n const currentRow = Math.floor(currentIndex / columns);\n const currentColumn = currentIndex % columns;\n const totalRows = Math.ceil(cells.length / columns);\n let nextIndex: number | null = null;\n\n switch (event.key) {\n case 'ArrowRight':\n nextIndex = currentIndex + 1;\n break;\n case 'ArrowLeft':\n nextIndex = currentIndex - 1;\n break;\n case 'ArrowDown':\n if (currentRow >= totalRows - 1) {\n onNavigateAfter?.(currentColumn, columns);\n } else {\n nextIndex = currentIndex + columns;\n }\n break;\n case 'ArrowUp':\n if (currentRow <= 0) {\n onNavigateBefore?.(currentColumn, columns);\n } else {\n nextIndex = currentIndex - columns;\n }\n break;\n case 'Home':\n nextIndex = event.ctrlKey || event.metaKey ? 0 : currentRow * columns;\n break;\n case 'End':\n nextIndex =\n event.ctrlKey || event.metaKey\n ? cells.length - 1\n : Math.min((currentRow + 1) * columns - 1, cells.length - 1);\n break;\n case 'PageUp':\n onPageUp?.();\n break;\n case 'PageDown':\n onPageDown?.();\n break;\n default:\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (nextIndex == null) {\n return;\n }\n\n if (nextIndex < 0) {\n onNavigateBefore?.(currentColumn, 1);\n return;\n }\n\n if (nextIndex >= cells.length) {\n onNavigateAfter?.(currentColumn, 1);\n return;\n }\n\n cells[nextIndex]?.focus();\n },\n [\n columns,\n getCells,\n onNavigateAfter,\n onNavigateBefore,\n onPageDown,\n onPageUp,\n ],\n );\n\n return {gridRef, handleKeyDown, focusCell, focusFirst, focusLast};\n}\n","import {Temporal} from '@js-temporal/polyfill';\nimport {ChevronLeft, ChevronRight} from 'lucide-react';\nimport {\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {calendarRecipe} from 'components/Calendar/Calendar.recipe';\nimport {cx} from 'internal/cx';\nimport type {DateRange, DayOfWeek} from 'internal/dateTypes';\nimport {\n DATE_FORMAT_MONTH_YEAR,\n DATE_FORMAT_WITH_WEEKDAY,\n getDaysInMonth,\n plainDateCreate,\n plainDateDayOfWeek,\n plainDateFormat,\n plainDateGetWeekNumber,\n plainDateIsAfter,\n plainDateIsBefore,\n plainDateIsEqual,\n plainDateIsInRange,\n plainDateToday,\n type PlainDate,\n} from 'internal/plainDate';\nimport {getBrowserTimezoneID} from 'internal/time';\nimport {useGridFocus} from 'internal/useGridFocus';\n\nexport type {DateRange, DayOfWeek} from 'internal/dateTypes';\n\nexport interface CalendarHandle {\n navigateTo: (date: PlainDate) => void;\n}\n\ninterface CalendarBaseProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Returns true for dates that should be disabled.\n */\n getIsDateDisabled?: (date: PlainDate) => boolean;\n /**\n * Whether to move focus into the day grid — onto the selected date, otherwise\n * today, otherwise the first enabled day. Focus is (re)applied whenever this\n * transitions to `true`, so driving it from an open state focuses the grid\n * each time the calendar opens.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show outside-month days.\n * @default true\n */\n hasOutsideDays?: boolean;\n /**\n * Whether month grids use only needed rows rather than a fixed six rows.\n * @default false\n */\n hasVariableRowCount?: boolean;\n /**\n * Whether to show ISO week numbers.\n * @default false\n */\n hasWeekNumbers?: boolean;\n /**\n * Maximum selectable date.\n */\n max?: PlainDate;\n /**\n * Minimum selectable date.\n */\n min?: PlainDate;\n /**\n * Number of months displayed.\n * @default 1\n */\n numberOfMonths?: 1 | 2;\n /**\n * Called when the visible month changes. Passing this alongside `viewDate`\n * puts the visible month in controlled mode: the calendar stops tracking the\n * month itself and renders whatever `viewDate` you feed back here.\n */\n onViewDateChange?: (viewDate: PlainDate) => void;\n /**\n * Ref exposing imperative calendar navigation.\n */\n ref?: Ref<CalendarHandle>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Timezone used to determine today's date.\n * @default browser timezone\n */\n timezoneID?: string;\n /**\n * The visible month. On its own this is just the initial month to display;\n * the calendar then tracks the month internally. Pass `onViewDateChange` as\n * well to make the visible month controlled, where `viewDate` is the source\n * of truth on every render.\n */\n viewDate?: PlainDate;\n /**\n * First day of week, where 0 is Sunday.\n * @default 0\n */\n weekStartsOn?: DayOfWeek;\n}\n\ninterface CalendarSingleProps extends CalendarBaseProps {\n /**\n * Default selected date for uncontrolled usage.\n */\n defaultValue?: PlainDate;\n /**\n * Selection mode. Defaults to 'single'.\n */\n mode?: 'single';\n /**\n * Called when the selected date changes.\n */\n onChange: (value: PlainDate) => void;\n /**\n * Controlled selected date.\n */\n value?: PlainDate;\n}\n\ninterface CalendarRangeProps extends CalendarBaseProps {\n /**\n * Default selected range for uncontrolled usage.\n */\n defaultValue?: DateRange;\n /**\n * Selection mode set to 'range'.\n */\n mode: 'range';\n /**\n * Called when the selected date range changes.\n */\n onChange: (value: DateRange) => void;\n /**\n * Controlled selected date range.\n */\n value?: DateRange;\n}\n\nexport type CalendarProps = CalendarSingleProps | CalendarRangeProps;\n\ninterface CalendarDay {\n date: PlainDate;\n dayNumber: number;\n isOutside: boolean;\n}\n\nfunction generateCalendarDays({\n year,\n month,\n weekStartsOn,\n hasVariableRowCount,\n}: {\n hasVariableRowCount: boolean;\n month: number;\n weekStartsOn: DayOfWeek;\n year: number;\n}): {dayNames: string[]; weeks: CalendarDay[][]} {\n const names = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n const dayNames = Array.from({length: 7}, (_, index) => {\n return names[(index + weekStartsOn) % 7];\n });\n const daysInMonth = getDaysInMonth(year, month);\n const firstOfMonth = plainDateCreate(year, month, 1);\n let startOffset = plainDateDayOfWeek(firstOfMonth) - weekStartsOn;\n if (startOffset < 0) {\n startOffset += 7;\n }\n\n const totalDays = daysInMonth + startOffset;\n const totalRows = hasVariableRowCount ? Math.ceil(totalDays / 7) : 6;\n const days = Array.from({length: totalRows * 7}, (_, index) => {\n const dayOffset = index - startOffset + 1;\n const isOutside = dayOffset < 1 || dayOffset > daysInMonth;\n const date = isOutside\n ? firstOfMonth.add({days: dayOffset - 1})\n : plainDateCreate(year, month, dayOffset);\n\n return {\n date,\n dayNumber: date.day,\n isOutside,\n };\n });\n\n const weeks: CalendarDay[][] = [];\n for (let index = 0; index < days.length; index += 7) {\n weeks.push(days.slice(index, index + 7));\n }\n\n return {dayNames, weeks};\n}\n\nfunction checkDateDisabled(\n date: PlainDate,\n options: {\n getIsDateDisabled?: (date: PlainDate) => boolean;\n max?: PlainDate;\n min?: PlainDate;\n },\n): boolean {\n if (options.min != null && plainDateIsBefore(date, options.min)) {\n return true;\n }\n\n if (options.max != null && plainDateIsAfter(date, options.max)) {\n return true;\n }\n\n return options.getIsDateDisabled?.(date) ?? false;\n}\n\nfunction getSelectedTabDate({\n days,\n getIsDisabled,\n month,\n selectedDate,\n today,\n year,\n}: {\n days: CalendarDay[];\n getIsDisabled: (date: PlainDate) => boolean;\n month: number;\n selectedDate: PlainDate | null;\n today: PlainDate;\n year: number;\n}): PlainDate | null {\n if (\n selectedDate?.year === year &&\n selectedDate.month === month &&\n !getIsDisabled(selectedDate)\n ) {\n return selectedDate;\n }\n\n if (today.year === year && today.month === month && !getIsDisabled(today)) {\n return today;\n }\n\n return (\n days.find(day => !day.isOutside && !getIsDisabled(day.date))?.date ?? null\n );\n}\n\n/**\n * A date picker calendar supporting single date and date range selection.\n */\nexport function Calendar({\n className,\n 'data-testid': dataTestId,\n defaultValue,\n getIsDateDisabled: getIsDateDisabledProp,\n hasAutoFocus = false,\n hasOutsideDays = true,\n hasVariableRowCount = false,\n hasWeekNumbers = false,\n max,\n min,\n mode = 'single',\n numberOfMonths = 1,\n onChange,\n onViewDateChange,\n ref,\n style,\n timezoneID,\n value,\n viewDate: viewDateFromProps,\n weekStartsOn = 0,\n}: CalendarProps): React.JSX.Element {\n const effectiveTimezoneID = timezoneID ?? getBrowserTimezoneID();\n const today = useMemo(\n () => plainDateToday(effectiveTimezoneID),\n [effectiveTimezoneID],\n );\n const [internalValue, setInternalValue] = useState<\n DateRange | PlainDate | undefined\n >(defaultValue);\n const [rangeSelectionStart, setRangeSelectionStart] =\n useState<PlainDate | null>(null);\n const [hoveredDate, setHoveredDate] = useState<PlainDate | null>(null);\n const [pendingFocus, setPendingFocus] = useState<PlainDate | null>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const effectiveValue = value ?? internalValue;\n const isViewDateControlled =\n viewDateFromProps != null && onViewDateChange != null;\n const [internalViewDate, setInternalViewDate] = useState(() => {\n if (viewDateFromProps != null) {\n return viewDateFromProps;\n }\n\n if (effectiveValue != null && 'year' in effectiveValue) {\n return effectiveValue;\n }\n\n if (effectiveValue != null && 'start' in effectiveValue) {\n return effectiveValue.start;\n }\n\n return today;\n });\n const viewDate = isViewDateControlled ? viewDateFromProps : internalViewDate;\n const baseMonth = useMemo(() => viewDate.with({day: 1}), [viewDate]);\n const visibleMonths = useMemo(\n () =>\n Array.from({length: numberOfMonths}, (_, index) =>\n baseMonth.add({months: index}),\n ),\n [baseMonth, numberOfMonths],\n );\n const monthYearLabel = useMemo(\n () =>\n visibleMonths\n .map(month => plainDateFormat(month, DATE_FORMAT_MONTH_YEAR))\n .join(' - '),\n [visibleMonths],\n );\n\n const canNavigatePrevious =\n min == null || plainDateIsBefore(min.with({day: 1}), baseMonth);\n const lastVisibleMonth = visibleMonths.at(-1) ?? baseMonth;\n const canNavigateNext =\n max == null || plainDateIsAfter(max.with({day: 1}), lastVisibleMonth);\n\n const navigateMonth = useCallback(\n (delta: number, nextFocus?: PlainDate) => {\n const nextMonth = baseMonth.add({months: delta});\n\n if (nextFocus != null) {\n setPendingFocus(nextFocus);\n }\n\n onViewDateChange?.(nextMonth);\n if (!isViewDateControlled) {\n setInternalViewDate(nextMonth);\n }\n },\n [baseMonth, isViewDateControlled, onViewDateChange],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n navigateTo: date => {\n onViewDateChange?.(date);\n if (!isViewDateControlled) {\n setInternalViewDate(date);\n }\n },\n }),\n [isViewDateControlled, onViewDateChange],\n );\n\n // When focus is requested, move it to the grid cell that holds the roving\n // tabindex — the selected date if visible and enabled, otherwise today,\n // otherwise the first enabled day — per the WAI-ARIA date picker pattern.\n // Driving `hasAutoFocus` from an open state re-focuses each time it opens.\n useEffect(() => {\n if (!hasAutoFocus) {\n return;\n }\n\n rootRef.current\n ?.querySelector<HTMLButtonElement>('[data-date][tabindex=\"0\"]')\n ?.focus();\n }, [hasAutoFocus]);\n\n const handleDayClick = useCallback(\n (date: PlainDate) => {\n if (mode === 'single') {\n setInternalValue(date);\n (onChange as CalendarSingleProps['onChange'])(date);\n return;\n }\n\n if (rangeSelectionStart == null) {\n setRangeSelectionStart(date);\n return;\n }\n\n const range = plainDateIsBefore(date, rangeSelectionStart)\n ? {start: date, end: rangeSelectionStart}\n : {start: rangeSelectionStart, end: date};\n setInternalValue(range);\n setRangeSelectionStart(null);\n (onChange as CalendarRangeProps['onChange'])(range);\n },\n [mode, onChange, rangeSelectionStart],\n );\n\n const handleNavigateNext = useCallback(\n (nextFocus: PlainDate) => navigateMonth(1, nextFocus),\n [navigateMonth],\n );\n\n const handleNavigatePrevious = useCallback(\n (nextFocus: PlainDate) => navigateMonth(-1, nextFocus),\n [navigateMonth],\n );\n\n const handlePendingFocusHandled = useCallback(\n () => setPendingFocus(null),\n [],\n );\n\n const styles = calendarRecipe();\n\n return (\n // eslint-disable-next-line jsx-a11y-x/no-static-element-interactions\n <div\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n onKeyDown={event => {\n if (\n mode === 'range' &&\n rangeSelectionStart != null &&\n event.key === 'Escape'\n ) {\n setRangeSelectionStart(null);\n event.preventDefault();\n event.stopPropagation();\n }\n }}\n ref={rootRef}\n style={style}>\n <div className={styles.header}>\n <Button\n icon={ChevronLeft}\n isDisabled={!canNavigatePrevious}\n isIconOnly\n label=\"Previous month\"\n onClick={() => navigateMonth(-1)}\n size=\"sm\"\n variant=\"ghost\"\n />\n <span className={styles.monthYear}>{monthYearLabel}</span>\n <Button\n icon={ChevronRight}\n isDisabled={!canNavigateNext}\n isIconOnly\n label=\"Next month\"\n onClick={() => navigateMonth(1)}\n size=\"sm\"\n variant=\"ghost\"\n />\n </div>\n <div className={styles.months}>\n {visibleMonths.map(month => (\n <MonthGrid\n getIsDateDisabled={getIsDateDisabledProp}\n hasOutsideDays={hasOutsideDays}\n hasVariableRowCount={hasVariableRowCount}\n hasWeekNumbers={hasWeekNumbers}\n hoveredDate={hoveredDate}\n key={month.toString()}\n max={max}\n min={min}\n mode={mode}\n month={month}\n onDayClick={handleDayClick}\n onDayHover={setHoveredDate}\n onNavigateNext={handleNavigateNext}\n onNavigatePrevious={handleNavigatePrevious}\n onPendingFocusHandled={handlePendingFocusHandled}\n pendingFocus={pendingFocus}\n rangeSelectionStart={rangeSelectionStart}\n today={today}\n value={effectiveValue}\n weekStartsOn={weekStartsOn}\n />\n ))}\n </div>\n </div>\n );\n}\n\ninterface MonthGridProps {\n getIsDateDisabled?: (date: PlainDate) => boolean;\n hasOutsideDays: boolean;\n hasVariableRowCount: boolean;\n hasWeekNumbers: boolean;\n hoveredDate: PlainDate | null;\n max?: PlainDate;\n min?: PlainDate;\n mode: 'single' | 'range';\n month: PlainDate;\n onDayClick: (date: PlainDate) => void;\n onDayHover: (date: PlainDate | null) => void;\n onNavigateNext: (nextFocus: PlainDate) => void;\n onNavigatePrevious: (nextFocus: PlainDate) => void;\n onPendingFocusHandled: () => void;\n pendingFocus: PlainDate | null;\n rangeSelectionStart: PlainDate | null;\n today: PlainDate;\n value: DateRange | PlainDate | undefined;\n weekStartsOn: DayOfWeek;\n}\n\nconst MonthGrid = memo(function MonthGrid({\n month,\n value,\n mode,\n rangeSelectionStart,\n hoveredDate,\n min,\n max,\n getIsDateDisabled: getIsDateDisabledProp,\n hasOutsideDays,\n hasWeekNumbers,\n hasVariableRowCount,\n weekStartsOn,\n onDayClick,\n onDayHover,\n today,\n onNavigatePrevious,\n onNavigateNext,\n pendingFocus,\n onPendingFocusHandled,\n}: MonthGridProps): React.JSX.Element {\n const {dayNames, weeks} = useMemo(\n () =>\n generateCalendarDays({\n year: month.year,\n month: month.month,\n weekStartsOn,\n hasVariableRowCount,\n }),\n [hasVariableRowCount, month.month, month.year, weekStartsOn],\n );\n const days = weeks.flat();\n const isDisabled = useCallback(\n (date: PlainDate) =>\n checkDateDisabled(date, {\n min,\n max,\n getIsDateDisabled: getIsDateDisabledProp,\n }),\n [getIsDateDisabledProp, max, min],\n );\n const selectedDate =\n mode === 'single' && value != null && 'year' in value ? value : null;\n const tabbableDate = getSelectedTabDate({\n days,\n getIsDisabled: isDisabled,\n month: month.month,\n selectedDate,\n today,\n year: month.year,\n });\n\n const getFocusedDate = useCallback((): PlainDate | null => {\n const activeElement = document.activeElement as HTMLElement | null;\n const date = activeElement?.dataset.date;\n return date == null ? null : Temporal.PlainDate.from(date);\n }, []);\n\n const {gridRef, handleKeyDown} = useGridFocus<HTMLDivElement>({\n columns: 7,\n cellSelector: 'button:not([disabled])',\n onNavigateBefore: (_column, offset) => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigatePrevious(focusedDate.subtract({days: offset}));\n }\n },\n onNavigateAfter: (_column, offset) => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigateNext(focusedDate.add({days: offset}));\n }\n },\n // Page keys move a whole month, keeping the same day. Temporal's default\n // `constrain` overflow clamps to the month's last day (e.g. Jan 31 -> Feb 28).\n onPageUp: () => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigatePrevious(focusedDate.subtract({months: 1}));\n }\n },\n onPageDown: () => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigateNext(focusedDate.add({months: 1}));\n }\n },\n });\n\n // Keyboard navigation that crosses a month boundary sets `pendingFocus` and\n // changes the visible month in the same update. We can't focus the target day\n // imperatively at that point because its cell doesn't exist yet — it only\n // renders after the new month commits (and with a controlled `viewDate`, that\n // render is driven by the parent, so its timing isn't ours to know). Deferring\n // to this effect runs the focus once the new month's cells are in the DOM.\n useEffect(() => {\n if (pendingFocus == null || gridRef.current == null) {\n return;\n }\n\n const button = gridRef.current.querySelector<HTMLButtonElement>(\n `button[data-date=\"${pendingFocus.toString()}\"]`,\n );\n button?.focus();\n onPendingFocusHandled();\n }, [gridRef, onPendingFocusHandled, pendingFocus]);\n\n let rangeStart: PlainDate | null = null;\n let rangeEnd: PlainDate | null = null;\n if (mode === 'range' && value != null && 'start' in value) {\n rangeStart = value.start;\n rangeEnd = value.end;\n }\n if (rangeSelectionStart != null) {\n rangeStart = rangeSelectionStart;\n rangeEnd = rangeSelectionStart;\n }\n\n let previewStart: PlainDate | null = null;\n let previewEnd: PlainDate | null = null;\n if (mode === 'range' && rangeSelectionStart != null && hoveredDate != null) {\n if (!plainDateIsEqual(rangeSelectionStart, hoveredDate)) {\n previewStart = plainDateIsBefore(hoveredDate, rangeSelectionStart)\n ? hoveredDate\n : rangeSelectionStart;\n previewEnd = plainDateIsBefore(hoveredDate, rangeSelectionStart)\n ? rangeSelectionStart\n : hoveredDate;\n }\n }\n\n const isSelectingRange = mode === 'range' && rangeSelectionStart != null;\n\n const styles = calendarRecipe({hasWeekNumbers});\n\n return (\n <div className={styles.monthGrid}>\n <div className={styles.weekHeader}>\n {hasWeekNumbers ? <div className={styles.dayName} /> : null}\n {dayNames.map(dayName => (\n <div className={styles.dayName} key={dayName} role=\"columnheader\">\n {dayName}\n </div>\n ))}\n </div>\n <div\n aria-label={plainDateFormat(month, DATE_FORMAT_MONTH_YEAR)}\n className={styles.daysGrid}\n onKeyDown={handleKeyDown}\n ref={gridRef}\n role=\"grid\"\n tabIndex={-1}>\n {weeks.map(week => {\n const weekDate =\n week.find(day => !day.isOutside)?.date ?? week[0].date;\n return (\n <div\n className={styles.weekRow}\n key={week[0].date.toString()}\n role=\"row\">\n {hasWeekNumbers ? (\n <div className={styles.weekNumber}>\n {plainDateGetWeekNumber(weekDate)}\n </div>\n ) : null}\n {week.map((day, dayIndex) => (\n <DayCell\n day={day}\n dayIndex={dayIndex}\n hasOutsideDays={hasOutsideDays}\n isDisabled={isDisabled(day.date)}\n isSelectingRange={isSelectingRange}\n isTabbable={\n tabbableDate != null &&\n plainDateIsEqual(tabbableDate, day.date)\n }\n key={day.date.toString()}\n mode={mode}\n onDayClick={onDayClick}\n onDayHover={onDayHover}\n previewEnd={previewEnd}\n previewStart={previewStart}\n rangeEnd={rangeEnd}\n rangeStart={rangeStart}\n selectedDate={selectedDate}\n today={today}\n />\n ))}\n </div>\n );\n })}\n </div>\n </div>\n );\n});\n\ninterface DayCellProps {\n day: CalendarDay;\n dayIndex: number;\n hasOutsideDays: boolean;\n isDisabled: boolean;\n isSelectingRange: boolean;\n isTabbable: boolean;\n mode: 'single' | 'range';\n onDayClick: (date: PlainDate) => void;\n onDayHover: (date: PlainDate | null) => void;\n previewEnd: PlainDate | null;\n previewStart: PlainDate | null;\n rangeEnd: PlainDate | null;\n rangeStart: PlainDate | null;\n selectedDate: PlainDate | null;\n today: PlainDate;\n}\n\nconst DayCell = memo(function DayCell({\n day,\n dayIndex,\n mode,\n selectedDate,\n rangeStart,\n rangeEnd,\n previewStart,\n previewEnd,\n today,\n hasOutsideDays,\n isDisabled,\n isSelectingRange,\n isTabbable,\n onDayClick,\n onDayHover,\n}: DayCellProps): React.JSX.Element {\n if (day.isOutside && !hasOutsideDays) {\n return <div className={calendarRecipe().cell} />;\n }\n\n const effectivelyDisabled = isDisabled || day.isOutside;\n const isToday = plainDateIsEqual(day.date, today);\n const isSelected =\n mode === 'single' &&\n selectedDate != null &&\n plainDateIsEqual(day.date, selectedDate);\n const isInRange =\n mode === 'range' &&\n rangeStart != null &&\n rangeEnd != null &&\n plainDateIsInRange(day.date, [rangeStart, rangeEnd]);\n const isRangeStart =\n mode === 'range' &&\n rangeStart != null &&\n plainDateIsEqual(day.date, rangeStart);\n const isRangeEnd =\n mode === 'range' &&\n rangeEnd != null &&\n plainDateIsEqual(day.date, rangeEnd);\n const isInPreview =\n previewStart != null &&\n previewEnd != null &&\n plainDateIsInRange(day.date, [previewStart, previewEnd]);\n const isPreviewStart =\n previewStart != null && plainDateIsEqual(day.date, previewStart);\n const isPreviewEnd =\n previewEnd != null && plainDateIsEqual(day.date, previewEnd);\n const isFirstColumn = dayIndex === 0;\n const isLastColumn = dayIndex === 6;\n\n const styles = calendarRecipe({\n isOutside: day.isOutside,\n isToday,\n isSelected: isSelected || isRangeStart || isRangeEnd,\n isInRange,\n isDisabled: effectivelyDisabled,\n });\n const rangeBackgroundClass = calendarRecipe({\n rangeTone: 'range',\n roundedStart: isRangeStart || isFirstColumn,\n roundedEnd: isRangeEnd || isLastColumn,\n }).rangeBackground;\n const previewBackgroundClass = calendarRecipe({\n rangeTone: 'preview',\n roundedStart: isPreviewStart || isFirstColumn,\n roundedEnd: isPreviewEnd || isLastColumn,\n }).rangeBackground;\n\n return (\n <div className={styles.cell}>\n {isInRange ? <div className={rangeBackgroundClass} /> : null}\n {isInPreview ? <div className={previewBackgroundClass} /> : null}\n <button\n aria-disabled={effectivelyDisabled || undefined}\n aria-label={plainDateFormat(day.date, DATE_FORMAT_WITH_WEEKDAY)}\n aria-selected={isSelected || isInRange || undefined}\n className={styles.day}\n data-date={day.date.toString()}\n disabled={isDisabled}\n onClick={() => {\n if (!effectivelyDisabled) {\n onDayClick(day.date);\n }\n }}\n onMouseEnter={() => {\n if (isSelectingRange && !effectivelyDisabled) {\n onDayHover(day.date);\n }\n }}\n onMouseLeave={() => {\n if (isSelectingRange) {\n onDayHover(null);\n }\n }}\n role=\"gridcell\"\n tabIndex={isTabbable ? 0 : -1}\n type=\"button\">\n {day.dayNumber}\n </button>\n </div>\n );\n});\n\nCalendar.displayName = 'Calendar';\n"]}