silver-ui 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/dist/{chunk-QGHFUOUB.cjs → chunk-2A3V6OR7.cjs} +7 -7
  2. package/dist/{chunk-QGHFUOUB.cjs.map → chunk-2A3V6OR7.cjs.map} +1 -1
  3. package/dist/{chunk-RVENUWRD.js → chunk-2LABTS4P.js} +7 -7
  4. package/dist/{chunk-RVENUWRD.js.map → chunk-2LABTS4P.js.map} +1 -1
  5. package/dist/{chunk-DIIE44GO.js → chunk-2N6FOSNM.js} +5 -5
  6. package/dist/{chunk-DIIE44GO.js.map → chunk-2N6FOSNM.js.map} +1 -1
  7. package/dist/{chunk-LUBVZVY3.js → chunk-2RKMG2TC.js} +7 -7
  8. package/dist/{chunk-LUBVZVY3.js.map → chunk-2RKMG2TC.js.map} +1 -1
  9. package/dist/{chunk-EMHLPPQZ.js → chunk-3CJC4QE6.js} +4 -4
  10. package/dist/chunk-3CJC4QE6.js.map +1 -0
  11. package/dist/{chunk-P3SMNZCT.js → chunk-3JPUXC5U.js} +3 -3
  12. package/dist/{chunk-P3SMNZCT.js.map → chunk-3JPUXC5U.js.map} +1 -1
  13. package/dist/{chunk-F3ZNRO6W.js → chunk-3OIUA2NY.js} +5 -5
  14. package/dist/{chunk-F3ZNRO6W.js.map → chunk-3OIUA2NY.js.map} +1 -1
  15. package/dist/{chunk-PZ63ZCEO.cjs → chunk-3ZV3EGGK.cjs} +17 -17
  16. package/dist/{chunk-PZ63ZCEO.cjs.map → chunk-3ZV3EGGK.cjs.map} +1 -1
  17. package/dist/{chunk-O5A47TA2.js → chunk-4H7X5FGX.js} +5 -5
  18. package/dist/{chunk-O5A47TA2.js.map → chunk-4H7X5FGX.js.map} +1 -1
  19. package/dist/{chunk-Q3OA23V5.js → chunk-52WQDDWQ.js} +7 -7
  20. package/dist/{chunk-Q3OA23V5.js.map → chunk-52WQDDWQ.js.map} +1 -1
  21. package/dist/{chunk-ZLATP3P5.cjs → chunk-5D2OR64D.cjs} +6 -6
  22. package/dist/{chunk-ZLATP3P5.cjs.map → chunk-5D2OR64D.cjs.map} +1 -1
  23. package/dist/{chunk-YAIEA2YE.cjs → chunk-5PX76QOL.cjs} +3 -3
  24. package/dist/{chunk-YAIEA2YE.cjs.map → chunk-5PX76QOL.cjs.map} +1 -1
  25. package/dist/{chunk-HM7IEGQ2.cjs → chunk-5YS43PSQ.cjs} +7 -7
  26. package/dist/chunk-5YS43PSQ.cjs.map +1 -0
  27. package/dist/{chunk-D2DOHX4W.js → chunk-6ONAGCCZ.js} +13 -6
  28. package/dist/chunk-6ONAGCCZ.js.map +1 -0
  29. package/dist/{chunk-DSB4Q3AS.js → chunk-6ULCJ3XZ.js} +4 -4
  30. package/dist/{chunk-DSB4Q3AS.js.map → chunk-6ULCJ3XZ.js.map} +1 -1
  31. package/dist/{chunk-GXRH5XQY.js → chunk-6XWXBXYE.js} +5 -5
  32. package/dist/{chunk-GXRH5XQY.js.map → chunk-6XWXBXYE.js.map} +1 -1
  33. package/dist/{chunk-EXYBQVZT.js → chunk-7BSFKG7N.js} +3 -3
  34. package/dist/{chunk-EXYBQVZT.js.map → chunk-7BSFKG7N.js.map} +1 -1
  35. package/dist/{chunk-7GN6YTSS.cjs → chunk-7CCXHH6Y.cjs} +7 -7
  36. package/dist/chunk-7CCXHH6Y.cjs.map +1 -0
  37. package/dist/{chunk-PJMV2HTO.cjs → chunk-7U7JMRVF.cjs} +18 -18
  38. package/dist/{chunk-PJMV2HTO.cjs.map → chunk-7U7JMRVF.cjs.map} +1 -1
  39. package/dist/{chunk-M3IKL2VG.js → chunk-AFI4V7LI.js} +6 -6
  40. package/dist/{chunk-M3IKL2VG.js.map → chunk-AFI4V7LI.js.map} +1 -1
  41. package/dist/{chunk-OSBVDRVD.cjs → chunk-AHVHLNHU.cjs} +8 -8
  42. package/dist/{chunk-OSBVDRVD.cjs.map → chunk-AHVHLNHU.cjs.map} +1 -1
  43. package/dist/{chunk-6USJ4LJJ.js → chunk-AJ6X62AI.js} +4 -4
  44. package/dist/{chunk-6USJ4LJJ.js.map → chunk-AJ6X62AI.js.map} +1 -1
  45. package/dist/{chunk-UKDGDMWN.js → chunk-AP7BDTTF.js} +4 -4
  46. package/dist/{chunk-UKDGDMWN.js.map → chunk-AP7BDTTF.js.map} +1 -1
  47. package/dist/{chunk-7U7RP6N2.cjs → chunk-AWDIKDX5.cjs} +10 -10
  48. package/dist/{chunk-7U7RP6N2.cjs.map → chunk-AWDIKDX5.cjs.map} +1 -1
  49. package/dist/{chunk-5AYGQJOW.js → chunk-BCCPNGUV.js} +4 -4
  50. package/dist/{chunk-5AYGQJOW.js.map → chunk-BCCPNGUV.js.map} +1 -1
  51. package/dist/{chunk-QRKRVCA3.cjs → chunk-BLRWA445.cjs} +25 -25
  52. package/dist/{chunk-QRKRVCA3.cjs.map → chunk-BLRWA445.cjs.map} +1 -1
  53. package/dist/{chunk-BA4A7C7U.js → chunk-BSAZRW6T.js} +8 -8
  54. package/dist/{chunk-BA4A7C7U.js.map → chunk-BSAZRW6T.js.map} +1 -1
  55. package/dist/{chunk-5TT4PGZO.cjs → chunk-BUESV4DR.cjs} +9 -9
  56. package/dist/{chunk-5TT4PGZO.cjs.map → chunk-BUESV4DR.cjs.map} +1 -1
  57. package/dist/{chunk-HPVXP3DG.cjs → chunk-BULJWVPU.cjs} +16 -16
  58. package/dist/{chunk-HPVXP3DG.cjs.map → chunk-BULJWVPU.cjs.map} +1 -1
  59. package/dist/{chunk-L7BOLGF2.cjs → chunk-C6EYCIKJ.cjs} +3 -3
  60. package/dist/{chunk-L7BOLGF2.cjs.map → chunk-C6EYCIKJ.cjs.map} +1 -1
  61. package/dist/{chunk-4H35H54I.cjs → chunk-C732WXKS.cjs} +12 -12
  62. package/dist/{chunk-4H35H54I.cjs.map → chunk-C732WXKS.cjs.map} +1 -1
  63. package/dist/{chunk-S4B2D427.js → chunk-CGYZ6QWY.js} +4 -4
  64. package/dist/{chunk-S4B2D427.js.map → chunk-CGYZ6QWY.js.map} +1 -1
  65. package/dist/{chunk-QCT4BPB6.cjs → chunk-CKTXDIH4.cjs} +39 -40
  66. package/dist/chunk-CKTXDIH4.cjs.map +1 -0
  67. package/dist/{chunk-PYW5UO2Z.js → chunk-D3LZQ5QS.js} +4 -4
  68. package/dist/chunk-D3LZQ5QS.js.map +1 -0
  69. package/dist/{chunk-D3SSMY73.cjs → chunk-DIRVAHOF.cjs} +6 -6
  70. package/dist/{chunk-D3SSMY73.cjs.map → chunk-DIRVAHOF.cjs.map} +1 -1
  71. package/dist/{chunk-ZD3NPHZ7.cjs → chunk-DP7VC4FW.cjs} +4 -4
  72. package/dist/{chunk-ZD3NPHZ7.cjs.map → chunk-DP7VC4FW.cjs.map} +1 -1
  73. package/dist/{chunk-NYQPIBOD.cjs → chunk-DVGLYE3G.cjs} +10 -10
  74. package/dist/{chunk-NYQPIBOD.cjs.map → chunk-DVGLYE3G.cjs.map} +1 -1
  75. package/dist/{chunk-ZWULWVN3.js → chunk-DWUEPOYH.js} +7 -7
  76. package/dist/{chunk-ZWULWVN3.js.map → chunk-DWUEPOYH.js.map} +1 -1
  77. package/dist/{chunk-UN35QV25.js → chunk-DXPQRAGI.js} +4 -4
  78. package/dist/{chunk-UN35QV25.js.map → chunk-DXPQRAGI.js.map} +1 -1
  79. package/dist/{chunk-3XDUR3IG.cjs → chunk-E2A3GJSN.cjs} +5 -5
  80. package/dist/{chunk-3XDUR3IG.cjs.map → chunk-E2A3GJSN.cjs.map} +1 -1
  81. package/dist/{chunk-OULO3YDQ.cjs → chunk-EALKX3ST.cjs} +7 -7
  82. package/dist/{chunk-OULO3YDQ.cjs.map → chunk-EALKX3ST.cjs.map} +1 -1
  83. package/dist/{chunk-VAK4JQYL.js → chunk-EBDODJ5X.js} +6 -6
  84. package/dist/{chunk-VAK4JQYL.js.map → chunk-EBDODJ5X.js.map} +1 -1
  85. package/dist/{chunk-U5GTHA44.cjs → chunk-FB245S6T.cjs} +11 -11
  86. package/dist/{chunk-U5GTHA44.cjs.map → chunk-FB245S6T.cjs.map} +1 -1
  87. package/dist/{chunk-RNB4BDEG.js → chunk-FDUO2HVX.js} +3 -3
  88. package/dist/{chunk-RNB4BDEG.js.map → chunk-FDUO2HVX.js.map} +1 -1
  89. package/dist/{chunk-6W3L6IJB.cjs → chunk-FDZQPWFZ.cjs} +11 -11
  90. package/dist/{chunk-6W3L6IJB.cjs.map → chunk-FDZQPWFZ.cjs.map} +1 -1
  91. package/dist/{chunk-3L6KAW7G.js → chunk-FMLIYHDP.js} +5 -5
  92. package/dist/{chunk-3L6KAW7G.js.map → chunk-FMLIYHDP.js.map} +1 -1
  93. package/dist/{chunk-XADTIY7J.cjs → chunk-FNOUX5T2.cjs} +5 -5
  94. package/dist/{chunk-XADTIY7J.cjs.map → chunk-FNOUX5T2.cjs.map} +1 -1
  95. package/dist/{chunk-LFRTNC7M.cjs → chunk-FNZOICR4.cjs} +7 -7
  96. package/dist/{chunk-LFRTNC7M.cjs.map → chunk-FNZOICR4.cjs.map} +1 -1
  97. package/dist/{chunk-IRSJHEYI.js → chunk-FP5E5BUM.js} +3 -3
  98. package/dist/{chunk-IRSJHEYI.js.map → chunk-FP5E5BUM.js.map} +1 -1
  99. package/dist/{chunk-ZVH3BLYO.js → chunk-G2U2W422.js} +6 -6
  100. package/dist/{chunk-ZVH3BLYO.js.map → chunk-G2U2W422.js.map} +1 -1
  101. package/dist/{chunk-W3KMDQKP.cjs → chunk-G2WW52GO.cjs} +12 -12
  102. package/dist/{chunk-W3KMDQKP.cjs.map → chunk-G2WW52GO.cjs.map} +1 -1
  103. package/dist/{chunk-U2U4FMFM.cjs → chunk-G3KKLGZU.cjs} +9 -9
  104. package/dist/{chunk-U2U4FMFM.cjs.map → chunk-G3KKLGZU.cjs.map} +1 -1
  105. package/dist/{chunk-IKF6VHA4.cjs → chunk-GC5VUTUR.cjs} +4 -4
  106. package/dist/{chunk-IKF6VHA4.cjs.map → chunk-GC5VUTUR.cjs.map} +1 -1
  107. package/dist/{chunk-QL3YSC3H.cjs → chunk-GL7PSN7H.cjs} +15 -15
  108. package/dist/{chunk-QL3YSC3H.cjs.map → chunk-GL7PSN7H.cjs.map} +1 -1
  109. package/dist/{chunk-WMXIUOOU.cjs → chunk-GYVWTH3U.cjs} +3 -3
  110. package/dist/{chunk-WMXIUOOU.cjs.map → chunk-GYVWTH3U.cjs.map} +1 -1
  111. package/dist/{chunk-UXDXE7Z6.cjs → chunk-H2CZ6IE5.cjs} +38 -36
  112. package/dist/chunk-H2CZ6IE5.cjs.map +1 -0
  113. package/dist/{chunk-MGVEX3RS.js → chunk-H7HQYBPH.js} +25 -26
  114. package/dist/chunk-H7HQYBPH.js.map +1 -0
  115. package/dist/{chunk-ZNUOFLCQ.js → chunk-HINS4GY6.js} +3 -3
  116. package/dist/chunk-HINS4GY6.js.map +1 -0
  117. package/dist/{chunk-EC2ALHNJ.js → chunk-HNZWPIJE.js} +8 -8
  118. package/dist/{chunk-EC2ALHNJ.js.map → chunk-HNZWPIJE.js.map} +1 -1
  119. package/dist/{chunk-3ZFEBOXD.cjs → chunk-IA5GII7N.cjs} +16 -16
  120. package/dist/chunk-IA5GII7N.cjs.map +1 -0
  121. package/dist/{chunk-EHCAF6D3.js → chunk-IAVZKGZS.js} +14 -3
  122. package/dist/chunk-IAVZKGZS.js.map +1 -0
  123. package/dist/{chunk-AJTJD5C6.js → chunk-ILEKDNP7.js} +6 -6
  124. package/dist/{chunk-AJTJD5C6.js.map → chunk-ILEKDNP7.js.map} +1 -1
  125. package/dist/{chunk-XSQOHNIF.js → chunk-J3DNWPXJ.js} +3 -3
  126. package/dist/{chunk-XSQOHNIF.js.map → chunk-J3DNWPXJ.js.map} +1 -1
  127. package/dist/{chunk-M3BF3BBJ.cjs → chunk-J4OEETYQ.cjs} +10 -10
  128. package/dist/{chunk-M3BF3BBJ.cjs.map → chunk-J4OEETYQ.cjs.map} +1 -1
  129. package/dist/{chunk-YSTESYUB.js → chunk-J5IRFGUP.js} +8 -8
  130. package/dist/chunk-J5IRFGUP.js.map +1 -0
  131. package/dist/{chunk-5D4LRSIV.js → chunk-JDAJ2HJQ.js} +6 -6
  132. package/dist/{chunk-5D4LRSIV.js.map → chunk-JDAJ2HJQ.js.map} +1 -1
  133. package/dist/{chunk-3DJ46WN4.js → chunk-JIVYPJKO.js} +6 -6
  134. package/dist/{chunk-3DJ46WN4.js.map → chunk-JIVYPJKO.js.map} +1 -1
  135. package/dist/{chunk-U2WVHZ24.cjs → chunk-JJ324PSZ.cjs} +6 -6
  136. package/dist/chunk-JJ324PSZ.cjs.map +1 -0
  137. package/dist/{chunk-EE2O457Z.cjs → chunk-JSINCF2R.cjs} +10 -10
  138. package/dist/{chunk-EE2O457Z.cjs.map → chunk-JSINCF2R.cjs.map} +1 -1
  139. package/dist/{chunk-X2GRBPCJ.cjs → chunk-JTFNNEWR.cjs} +7 -7
  140. package/dist/{chunk-X2GRBPCJ.cjs.map → chunk-JTFNNEWR.cjs.map} +1 -1
  141. package/dist/{chunk-YAYINZT2.cjs → chunk-JYVYCU22.cjs} +3 -3
  142. package/dist/{chunk-YAYINZT2.cjs.map → chunk-JYVYCU22.cjs.map} +1 -1
  143. package/dist/{chunk-PQRIV5XU.js → chunk-K3XHXWBW.js} +9 -9
  144. package/dist/{chunk-PQRIV5XU.js.map → chunk-K3XHXWBW.js.map} +1 -1
  145. package/dist/{chunk-65QAZWOG.cjs → chunk-K4ZJNQTX.cjs} +4 -4
  146. package/dist/{chunk-65QAZWOG.cjs.map → chunk-K4ZJNQTX.cjs.map} +1 -1
  147. package/dist/{chunk-CZM5FAWL.cjs → chunk-KDR5DCYL.cjs} +9 -9
  148. package/dist/{chunk-CZM5FAWL.cjs.map → chunk-KDR5DCYL.cjs.map} +1 -1
  149. package/dist/{chunk-GLJWAY4A.cjs → chunk-KXIILLQD.cjs} +10 -10
  150. package/dist/{chunk-GLJWAY4A.cjs.map → chunk-KXIILLQD.cjs.map} +1 -1
  151. package/dist/{chunk-Y4FH67QZ.js → chunk-L6VSBBPP.js} +7 -7
  152. package/dist/{chunk-Y4FH67QZ.js.map → chunk-L6VSBBPP.js.map} +1 -1
  153. package/dist/{chunk-O4RTJESR.js → chunk-LNT2IFOA.js} +4 -4
  154. package/dist/{chunk-O4RTJESR.js.map → chunk-LNT2IFOA.js.map} +1 -1
  155. package/dist/{chunk-MUUPZEZ5.cjs → chunk-LO5NZY7N.cjs} +5 -5
  156. package/dist/{chunk-MUUPZEZ5.cjs.map → chunk-LO5NZY7N.cjs.map} +1 -1
  157. package/dist/{chunk-CN2HJ7CP.js → chunk-LQIZSE3O.js} +8 -8
  158. package/dist/{chunk-CN2HJ7CP.js.map → chunk-LQIZSE3O.js.map} +1 -1
  159. package/dist/{chunk-5GNYP3PH.cjs → chunk-LUQVSNQL.cjs} +16 -9
  160. package/dist/chunk-LUQVSNQL.cjs.map +1 -0
  161. package/dist/{chunk-TF7IWMV2.js → chunk-LY6Z6A54.js} +8 -8
  162. package/dist/{chunk-TF7IWMV2.js.map → chunk-LY6Z6A54.js.map} +1 -1
  163. package/dist/{chunk-QEFE4QBL.cjs → chunk-M26XECB2.cjs} +14 -14
  164. package/dist/{chunk-QEFE4QBL.cjs.map → chunk-M26XECB2.cjs.map} +1 -1
  165. package/dist/{chunk-VVO7GIHG.cjs → chunk-M2MC3E27.cjs} +7 -7
  166. package/dist/{chunk-VVO7GIHG.cjs.map → chunk-M2MC3E27.cjs.map} +1 -1
  167. package/dist/{chunk-HVUYVPQL.cjs → chunk-MAYQGKKW.cjs} +4 -4
  168. package/dist/{chunk-HVUYVPQL.cjs.map → chunk-MAYQGKKW.cjs.map} +1 -1
  169. package/dist/{chunk-2IKWX66Q.js → chunk-MI5QU37D.js} +5 -5
  170. package/dist/{chunk-2IKWX66Q.js.map → chunk-MI5QU37D.js.map} +1 -1
  171. package/dist/{chunk-XUJZTD4E.js → chunk-NFABMGNH.js} +54 -45
  172. package/dist/chunk-NFABMGNH.js.map +1 -0
  173. package/dist/{chunk-4MRORQNN.js → chunk-NI55JEYL.js} +4 -4
  174. package/dist/{chunk-4MRORQNN.js.map → chunk-NI55JEYL.js.map} +1 -1
  175. package/dist/{chunk-6MOJEGDU.cjs → chunk-O2WICOUK.cjs} +5 -5
  176. package/dist/{chunk-6MOJEGDU.cjs.map → chunk-O2WICOUK.cjs.map} +1 -1
  177. package/dist/{chunk-LX64ENLC.cjs → chunk-OBWWRRL6.cjs} +43 -43
  178. package/dist/chunk-OBWWRRL6.cjs.map +1 -0
  179. package/dist/{chunk-NH7KH7QP.js → chunk-PIOMR4X2.js} +5 -5
  180. package/dist/{chunk-NH7KH7QP.js.map → chunk-PIOMR4X2.js.map} +1 -1
  181. package/dist/{chunk-75CPTIET.js → chunk-PIZMCOKL.js} +3 -3
  182. package/dist/{chunk-75CPTIET.js.map → chunk-PIZMCOKL.js.map} +1 -1
  183. package/dist/{chunk-L5YTMHDI.cjs → chunk-PQEFVHJZ.cjs} +10 -10
  184. package/dist/{chunk-L5YTMHDI.cjs.map → chunk-PQEFVHJZ.cjs.map} +1 -1
  185. package/dist/{chunk-I7KILUVL.cjs → chunk-QATCDVZ6.cjs} +12 -12
  186. package/dist/{chunk-I7KILUVL.cjs.map → chunk-QATCDVZ6.cjs.map} +1 -1
  187. package/dist/{chunk-BRB52QFV.cjs → chunk-QOKEU3DC.cjs} +15 -15
  188. package/dist/{chunk-BRB52QFV.cjs.map → chunk-QOKEU3DC.cjs.map} +1 -1
  189. package/dist/{chunk-76B2VLID.js → chunk-QRFDPG34.js} +5 -5
  190. package/dist/{chunk-76B2VLID.js.map → chunk-QRFDPG34.js.map} +1 -1
  191. package/dist/{chunk-3IBY374V.cjs → chunk-QVNDZZS6.cjs} +10 -10
  192. package/dist/{chunk-3IBY374V.cjs.map → chunk-QVNDZZS6.cjs.map} +1 -1
  193. package/dist/{chunk-EBQ3A4XO.js → chunk-QY6OMQW6.js} +5 -5
  194. package/dist/{chunk-EBQ3A4XO.js.map → chunk-QY6OMQW6.js.map} +1 -1
  195. package/dist/{chunk-XIFLSMGW.js → chunk-R6CMJMIJ.js} +3 -3
  196. package/dist/{chunk-XIFLSMGW.js.map → chunk-R6CMJMIJ.js.map} +1 -1
  197. package/dist/{chunk-ASJ5CBCR.js → chunk-RLOGQBFD.js} +6 -6
  198. package/dist/{chunk-ASJ5CBCR.js.map → chunk-RLOGQBFD.js.map} +1 -1
  199. package/dist/{chunk-S4LVSSJI.js → chunk-S7INL5NI.js} +6 -6
  200. package/dist/{chunk-S4LVSSJI.js.map → chunk-S7INL5NI.js.map} +1 -1
  201. package/dist/{chunk-HNROO7CR.js → chunk-SBOXHIES.js} +13 -13
  202. package/dist/{chunk-HNROO7CR.js.map → chunk-SBOXHIES.js.map} +1 -1
  203. package/dist/{chunk-KFDHP4WP.cjs → chunk-SBS7U7CN.cjs} +6 -6
  204. package/dist/{chunk-KFDHP4WP.cjs.map → chunk-SBS7U7CN.cjs.map} +1 -1
  205. package/dist/{chunk-WYE3VOFK.cjs → chunk-SCGXGVNN.cjs} +16 -16
  206. package/dist/{chunk-WYE3VOFK.cjs.map → chunk-SCGXGVNN.cjs.map} +1 -1
  207. package/dist/{chunk-54J6FRPG.js → chunk-SOCSUNIM.js} +9 -9
  208. package/dist/{chunk-54J6FRPG.js.map → chunk-SOCSUNIM.js.map} +1 -1
  209. package/dist/{chunk-BS55BG2U.cjs → chunk-SR5VVJ5Y.cjs} +7 -7
  210. package/dist/{chunk-BS55BG2U.cjs.map → chunk-SR5VVJ5Y.cjs.map} +1 -1
  211. package/dist/{chunk-YLGAJD6Q.js → chunk-SSAYBCAD.js} +4 -4
  212. package/dist/{chunk-YLGAJD6Q.js.map → chunk-SSAYBCAD.js.map} +1 -1
  213. package/dist/{chunk-24J3BUKL.js → chunk-SUH62Z64.js} +3 -3
  214. package/dist/{chunk-24J3BUKL.js.map → chunk-SUH62Z64.js.map} +1 -1
  215. package/dist/{chunk-PL6J55JB.cjs → chunk-TBOQTPRO.cjs} +9 -9
  216. package/dist/{chunk-PL6J55JB.cjs.map → chunk-TBOQTPRO.cjs.map} +1 -1
  217. package/dist/{chunk-YNTPHZFJ.js → chunk-TCTPR7YQ.js} +3 -3
  218. package/dist/{chunk-YNTPHZFJ.js.map → chunk-TCTPR7YQ.js.map} +1 -1
  219. package/dist/{chunk-M3RNFDA2.cjs → chunk-TF7XVTSP.cjs} +59 -50
  220. package/dist/chunk-TF7XVTSP.cjs.map +1 -0
  221. package/dist/{chunk-CRQXHA7N.js → chunk-TKTLWX2V.js} +7 -7
  222. package/dist/{chunk-CRQXHA7N.js.map → chunk-TKTLWX2V.js.map} +1 -1
  223. package/dist/{chunk-F3NATTQG.cjs → chunk-TPB53MHV.cjs} +14 -14
  224. package/dist/{chunk-F3NATTQG.cjs.map → chunk-TPB53MHV.cjs.map} +1 -1
  225. package/dist/{chunk-MSNRGNVY.cjs → chunk-TQA3BI7M.cjs} +7 -7
  226. package/dist/{chunk-MSNRGNVY.cjs.map → chunk-TQA3BI7M.cjs.map} +1 -1
  227. package/dist/{chunk-WO6FS4DV.js → chunk-U6NH54YD.js} +5 -5
  228. package/dist/{chunk-WO6FS4DV.js.map → chunk-U6NH54YD.js.map} +1 -1
  229. package/dist/{chunk-NUTB2K4G.js → chunk-U7ALNPFJ.js} +3 -3
  230. package/dist/{chunk-NUTB2K4G.js.map → chunk-U7ALNPFJ.js.map} +1 -1
  231. package/dist/{chunk-RINP34ZG.js → chunk-UKW2C5RN.js} +4 -4
  232. package/dist/{chunk-RINP34ZG.js.map → chunk-UKW2C5RN.js.map} +1 -1
  233. package/dist/{chunk-AMFFE5UJ.js → chunk-UUVLEOSD.js} +4 -4
  234. package/dist/{chunk-AMFFE5UJ.js.map → chunk-UUVLEOSD.js.map} +1 -1
  235. package/dist/{chunk-6NTDPZWP.js → chunk-VFGSNR35.js} +4 -4
  236. package/dist/{chunk-6NTDPZWP.js.map → chunk-VFGSNR35.js.map} +1 -1
  237. package/dist/{chunk-KRZ57O2J.cjs → chunk-VGHNBMEJ.cjs} +6 -6
  238. package/dist/{chunk-KRZ57O2J.cjs.map → chunk-VGHNBMEJ.cjs.map} +1 -1
  239. package/dist/{chunk-5BCLEOFF.cjs → chunk-VHKA25IV.cjs} +15 -15
  240. package/dist/{chunk-5BCLEOFF.cjs.map → chunk-VHKA25IV.cjs.map} +1 -1
  241. package/dist/{chunk-23NN5WRP.cjs → chunk-VK4O6W2K.cjs} +6 -6
  242. package/dist/{chunk-23NN5WRP.cjs.map → chunk-VK4O6W2K.cjs.map} +1 -1
  243. package/dist/{chunk-2VOB6LEI.js → chunk-VQ7U3ASC.js} +4 -4
  244. package/dist/{chunk-2VOB6LEI.js.map → chunk-VQ7U3ASC.js.map} +1 -1
  245. package/dist/{chunk-7MN4JDP7.js → chunk-VUCMGGU5.js} +14 -14
  246. package/dist/chunk-VUCMGGU5.js.map +1 -0
  247. package/dist/{chunk-IHM2M74J.js → chunk-W2Q4PQ6I.js} +3 -3
  248. package/dist/{chunk-IHM2M74J.js.map → chunk-W2Q4PQ6I.js.map} +1 -1
  249. package/dist/{chunk-UPQHFW47.js → chunk-W3C6QQF7.js} +5 -5
  250. package/dist/{chunk-UPQHFW47.js.map → chunk-W3C6QQF7.js.map} +1 -1
  251. package/dist/{chunk-P6RAOXJA.js → chunk-WBGFFP3G.js} +6 -6
  252. package/dist/{chunk-P6RAOXJA.js.map → chunk-WBGFFP3G.js.map} +1 -1
  253. package/dist/{chunk-CZC2K5GJ.js → chunk-WBQNPBXR.js} +5 -5
  254. package/dist/{chunk-CZC2K5GJ.js.map → chunk-WBQNPBXR.js.map} +1 -1
  255. package/dist/{chunk-3TXVDCF2.js → chunk-WY5BOT7O.js} +4 -4
  256. package/dist/{chunk-3TXVDCF2.js.map → chunk-WY5BOT7O.js.map} +1 -1
  257. package/dist/{chunk-CEU7BIL6.cjs → chunk-X574M2JB.cjs} +13 -13
  258. package/dist/{chunk-CEU7BIL6.cjs.map → chunk-X574M2JB.cjs.map} +1 -1
  259. package/dist/{chunk-7PNLMDAR.cjs → chunk-XLKXFJMU.cjs} +8 -8
  260. package/dist/{chunk-7PNLMDAR.cjs.map → chunk-XLKXFJMU.cjs.map} +1 -1
  261. package/dist/{chunk-W5G7ZDQ6.cjs → chunk-XLNRO3S6.cjs} +4 -4
  262. package/dist/{chunk-W5G7ZDQ6.cjs.map → chunk-XLNRO3S6.cjs.map} +1 -1
  263. package/dist/{chunk-A66NIFJE.cjs → chunk-XXBA3KSH.cjs} +5 -5
  264. package/dist/{chunk-A66NIFJE.cjs.map → chunk-XXBA3KSH.cjs.map} +1 -1
  265. package/dist/{chunk-OWBNRALR.js → chunk-YAWVGZRC.js} +6 -6
  266. package/dist/{chunk-OWBNRALR.js.map → chunk-YAWVGZRC.js.map} +1 -1
  267. package/dist/{chunk-JEIQ5GDK.cjs → chunk-YHBYVERE.cjs} +18 -18
  268. package/dist/{chunk-JEIQ5GDK.cjs.map → chunk-YHBYVERE.cjs.map} +1 -1
  269. package/dist/{chunk-CPOYENSZ.cjs → chunk-YO3MBGBP.cjs} +4 -4
  270. package/dist/{chunk-CPOYENSZ.cjs.map → chunk-YO3MBGBP.cjs.map} +1 -1
  271. package/dist/{chunk-EVKFA5FA.cjs → chunk-YVHWOKR7.cjs} +23 -23
  272. package/dist/{chunk-EVKFA5FA.cjs.map → chunk-YVHWOKR7.cjs.map} +1 -1
  273. package/dist/{chunk-66LRFIYK.cjs → chunk-YWGYN6YV.cjs} +9 -9
  274. package/dist/{chunk-66LRFIYK.cjs.map → chunk-YWGYN6YV.cjs.map} +1 -1
  275. package/dist/{chunk-BAPCHFNX.cjs → chunk-YY6KJO5Z.cjs} +12 -12
  276. package/dist/{chunk-BAPCHFNX.cjs.map → chunk-YY6KJO5Z.cjs.map} +1 -1
  277. package/dist/{chunk-UYBGXFYX.js → chunk-YYNWZRXZ.js} +20 -18
  278. package/dist/chunk-YYNWZRXZ.js.map +1 -0
  279. package/dist/{chunk-5QPM5LUS.cjs → chunk-Z6RT3WPE.cjs} +15 -4
  280. package/dist/chunk-Z6RT3WPE.cjs.map +1 -0
  281. package/dist/{chunk-VEUZ5DZR.js → chunk-ZAX2UJBC.js} +6 -6
  282. package/dist/{chunk-VEUZ5DZR.js.map → chunk-ZAX2UJBC.js.map} +1 -1
  283. package/dist/{chunk-LHP47U6H.js → chunk-ZEA2VYX4.js} +3 -3
  284. package/dist/{chunk-LHP47U6H.js.map → chunk-ZEA2VYX4.js.map} +1 -1
  285. package/dist/{chunk-QEX7V7TI.cjs → chunk-ZFBQ4R7M.cjs} +10 -10
  286. package/dist/{chunk-QEX7V7TI.cjs.map → chunk-ZFBQ4R7M.cjs.map} +1 -1
  287. package/dist/{chunk-AX6HC2YY.cjs → chunk-ZN7CULIL.cjs} +3 -3
  288. package/dist/{chunk-AX6HC2YY.cjs.map → chunk-ZN7CULIL.cjs.map} +1 -1
  289. package/dist/{chunk-FZCBTFHY.js → chunk-ZQUPAIBS.js} +4 -4
  290. package/dist/{chunk-FZCBTFHY.js.map → chunk-ZQUPAIBS.js.map} +1 -1
  291. package/dist/{chunk-VJBBMBRT.cjs → chunk-ZTWBG2XY.cjs} +7 -7
  292. package/dist/{chunk-VJBBMBRT.cjs.map → chunk-ZTWBG2XY.cjs.map} +1 -1
  293. package/dist/components/Accordion/index.cjs +6 -7
  294. package/dist/components/Accordion/index.js +3 -4
  295. package/dist/components/Alert/index.cjs +12 -13
  296. package/dist/components/Alert/index.js +11 -12
  297. package/dist/components/AlertDialog/index.cjs +15 -16
  298. package/dist/components/AlertDialog/index.js +13 -14
  299. package/dist/components/AppShell/index.cjs +20 -21
  300. package/dist/components/AppShell/index.js +17 -18
  301. package/dist/components/AspectRatio/index.cjs +3 -3
  302. package/dist/components/AspectRatio/index.js +2 -2
  303. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts +3 -1
  304. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
  305. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts +3 -1
  306. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
  307. package/dist/components/AutocompleteInput/index.cjs +20 -21
  308. package/dist/components/AutocompleteInput/index.d.ts +1 -1
  309. package/dist/components/AutocompleteInput/index.d.ts.map +1 -1
  310. package/dist/components/AutocompleteInput/index.js +15 -16
  311. package/dist/components/AutocompleteInput/types.d.ts +3 -3
  312. package/dist/components/AutocompleteInput/types.d.ts.map +1 -1
  313. package/dist/components/Avatar/index.cjs +6 -7
  314. package/dist/components/Avatar/index.js +3 -4
  315. package/dist/components/AvatarGroup/index.cjs +6 -7
  316. package/dist/components/AvatarGroup/index.js +4 -5
  317. package/dist/components/Badge/index.cjs +1 -1
  318. package/dist/components/Badge/index.js +1 -1
  319. package/dist/components/Blockquote/index.cjs +4 -5
  320. package/dist/components/Blockquote/index.js +3 -4
  321. package/dist/components/Breadcrumbs/index.cjs +10 -11
  322. package/dist/components/Breadcrumbs/index.js +7 -8
  323. package/dist/components/Button/index.cjs +11 -12
  324. package/dist/components/Button/index.js +10 -11
  325. package/dist/components/ButtonGroup/index.cjs +1 -1
  326. package/dist/components/ButtonGroup/index.js +1 -1
  327. package/dist/components/Calendar/index.cjs +12 -13
  328. package/dist/components/Calendar/index.js +11 -12
  329. package/dist/components/Card/index.cjs +1 -1
  330. package/dist/components/Card/index.js +1 -1
  331. package/dist/components/Center/index.cjs +1 -1
  332. package/dist/components/Center/index.js +1 -1
  333. package/dist/components/CheckboxInput/index.cjs +12 -13
  334. package/dist/components/CheckboxInput/index.js +11 -12
  335. package/dist/components/CodeBlock/index.cjs +13 -14
  336. package/dist/components/CodeBlock/index.js +12 -13
  337. package/dist/components/ContextMenu/index.cjs +17 -18
  338. package/dist/components/ContextMenu/index.js +15 -16
  339. package/dist/components/DateInput/index.cjs +16 -17
  340. package/dist/components/DateInput/index.js +15 -16
  341. package/dist/components/DateRangeInput/index.cjs +16 -17
  342. package/dist/components/DateRangeInput/index.js +15 -16
  343. package/dist/components/DateTimeInput/index.cjs +18 -19
  344. package/dist/components/DateTimeInput/index.js +17 -18
  345. package/dist/components/Dialog/index.cjs +5 -6
  346. package/dist/components/Dialog/index.js +3 -4
  347. package/dist/components/Divider/index.cjs +4 -5
  348. package/dist/components/Divider/index.js +3 -4
  349. package/dist/components/Drawer/index.cjs +4 -4
  350. package/dist/components/Drawer/index.js +2 -2
  351. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  352. package/dist/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  353. package/dist/components/DropdownMenu/DropdownMenuItem.recipe.d.ts +36 -0
  354. package/dist/components/DropdownMenu/DropdownMenuItem.recipe.d.ts.map +1 -0
  355. package/dist/components/DropdownMenu/index.cjs +18 -19
  356. package/dist/components/DropdownMenu/index.js +14 -15
  357. package/dist/components/EmptyState/index.cjs +7 -8
  358. package/dist/components/EmptyState/index.js +6 -7
  359. package/dist/components/Field/index.cjs +10 -11
  360. package/dist/components/Field/index.js +8 -9
  361. package/dist/components/FileInput/index.cjs +14 -15
  362. package/dist/components/FileInput/index.js +13 -14
  363. package/dist/components/HoverCard/index.cjs +5 -5
  364. package/dist/components/HoverCard/index.js +3 -3
  365. package/dist/components/HoverCard/useHoverCard.d.ts.map +1 -1
  366. package/dist/components/Icon/index.cjs +1 -1
  367. package/dist/components/Icon/index.js +1 -1
  368. package/dist/components/InputGroup/index.cjs +13 -14
  369. package/dist/components/InputGroup/index.js +9 -10
  370. package/dist/components/Item/index.cjs +8 -9
  371. package/dist/components/Item/index.js +7 -8
  372. package/dist/components/Kbd/index.cjs +4 -5
  373. package/dist/components/Kbd/index.js +3 -4
  374. package/dist/components/Layout/index.cjs +16 -17
  375. package/dist/components/Layout/index.js +11 -12
  376. package/dist/components/Lightbox/index.cjs +13 -14
  377. package/dist/components/Lightbox/index.js +11 -12
  378. package/dist/components/Link/index.cjs +8 -9
  379. package/dist/components/Link/index.js +5 -6
  380. package/dist/components/List/index.cjs +11 -12
  381. package/dist/components/List/index.js +9 -10
  382. package/dist/components/MetadataList/index.cjs +7 -8
  383. package/dist/components/MetadataList/index.js +5 -6
  384. package/dist/components/MultiSelect/index.cjs +15 -16
  385. package/dist/components/MultiSelect/index.js +14 -15
  386. package/dist/components/NavIcon/index.cjs +3 -3
  387. package/dist/components/NavIcon/index.js +2 -2
  388. package/dist/components/NumberInput/index.cjs +15 -16
  389. package/dist/components/NumberInput/index.js +14 -15
  390. package/dist/components/Pagination/index.cjs +12 -13
  391. package/dist/components/Pagination/index.js +11 -12
  392. package/dist/components/PasswordInput/index.cjs +16 -17
  393. package/dist/components/PasswordInput/index.js +15 -16
  394. package/dist/components/Popover/Popover.d.ts.map +1 -1
  395. package/dist/components/Popover/index.cjs +13 -14
  396. package/dist/components/Popover/index.js +11 -12
  397. package/dist/components/Progress/index.cjs +5 -6
  398. package/dist/components/Progress/index.js +4 -5
  399. package/dist/components/RadioGroup/index.cjs +13 -14
  400. package/dist/components/RadioGroup/index.js +11 -12
  401. package/dist/components/Rating/index.cjs +5 -6
  402. package/dist/components/Rating/index.js +4 -5
  403. package/dist/components/Schedule/ListView.d.ts.map +1 -1
  404. package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
  405. package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
  406. package/dist/components/Schedule/index.cjs +26 -27
  407. package/dist/components/Schedule/index.js +15 -16
  408. package/dist/components/Schedule/shared.d.ts.map +1 -1
  409. package/dist/components/SearchFilterInput/index.cjs +33 -34
  410. package/dist/components/SearchFilterInput/index.js +25 -26
  411. package/dist/components/SegmentedControl/index.cjs +5 -5
  412. package/dist/components/SegmentedControl/index.js +3 -3
  413. package/dist/components/Select/index.cjs +17 -18
  414. package/dist/components/Select/index.js +15 -16
  415. package/dist/components/SideNav/index.cjs +19 -20
  416. package/dist/components/SideNav/index.js +13 -14
  417. package/dist/components/Skeleton/index.cjs +1 -1
  418. package/dist/components/Skeleton/index.js +1 -1
  419. package/dist/components/Slider/index.cjs +10 -11
  420. package/dist/components/Slider/index.js +9 -10
  421. package/dist/components/Spinner/index.cjs +7 -8
  422. package/dist/components/Spinner/index.js +6 -7
  423. package/dist/components/SplitButton/index.cjs +16 -17
  424. package/dist/components/SplitButton/index.js +15 -16
  425. package/dist/components/Stack/index.cjs +1 -1
  426. package/dist/components/Stack/index.js +1 -1
  427. package/dist/components/Stepper/index.cjs +8 -9
  428. package/dist/components/Stepper/index.js +5 -6
  429. package/dist/components/Switch/index.cjs +9 -10
  430. package/dist/components/Switch/index.js +8 -9
  431. package/dist/components/Table/index.cjs +57 -58
  432. package/dist/components/Table/index.js +29 -30
  433. package/dist/components/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
  434. package/dist/components/Tabs/index.cjs +17 -18
  435. package/dist/components/Tabs/index.js +12 -13
  436. package/dist/components/Tag/index.cjs +8 -9
  437. package/dist/components/Tag/index.js +7 -8
  438. package/dist/components/TagsInput/TagsInput.d.ts +3 -1
  439. package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
  440. package/dist/components/TagsInput/index.cjs +17 -18
  441. package/dist/components/TagsInput/index.js +16 -17
  442. package/dist/components/Text/index.cjs +6 -6
  443. package/dist/components/Text/index.js +4 -4
  444. package/dist/components/TextArea/index.cjs +11 -12
  445. package/dist/components/TextArea/index.js +10 -11
  446. package/dist/components/TextInput/index.cjs +15 -16
  447. package/dist/components/TextInput/index.js +14 -15
  448. package/dist/components/Thumbnail/index.cjs +12 -13
  449. package/dist/components/Thumbnail/index.js +11 -12
  450. package/dist/components/TimeInput/index.cjs +14 -15
  451. package/dist/components/TimeInput/index.js +13 -14
  452. package/dist/components/Toast/index.cjs +14 -15
  453. package/dist/components/Toast/index.js +11 -12
  454. package/dist/components/ToggleButton/index.cjs +10 -11
  455. package/dist/components/ToggleButton/index.js +8 -9
  456. package/dist/components/Tooltip/index.cjs +5 -5
  457. package/dist/components/Tooltip/index.js +3 -3
  458. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
  459. package/dist/components/TopNav/index.cjs +19 -20
  460. package/dist/components/TopNav/index.js +13 -14
  461. package/dist/components/TreeView/index.cjs +3 -3
  462. package/dist/components/TreeView/index.js +2 -2
  463. package/dist/index.cjs +243 -244
  464. package/dist/index.cjs.map +1 -1
  465. package/dist/index.d.ts +1 -1
  466. package/dist/index.d.ts.map +1 -1
  467. package/dist/index.js +74 -75
  468. package/dist/index.js.map +1 -1
  469. package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
  470. package/dist/internal/useLayer.d.ts.map +1 -1
  471. package/package.json +1 -1
  472. package/dist/chunk-3ZFEBOXD.cjs.map +0 -1
  473. package/dist/chunk-5GNYP3PH.cjs.map +0 -1
  474. package/dist/chunk-5QPM5LUS.cjs.map +0 -1
  475. package/dist/chunk-6BK4LUK4.cjs +0 -17
  476. package/dist/chunk-6BK4LUK4.cjs.map +0 -1
  477. package/dist/chunk-7GN6YTSS.cjs.map +0 -1
  478. package/dist/chunk-7MN4JDP7.js.map +0 -1
  479. package/dist/chunk-D2DOHX4W.js.map +0 -1
  480. package/dist/chunk-EHCAF6D3.js.map +0 -1
  481. package/dist/chunk-EMHLPPQZ.js.map +0 -1
  482. package/dist/chunk-GUKZNXTB.js +0 -15
  483. package/dist/chunk-GUKZNXTB.js.map +0 -1
  484. package/dist/chunk-HM7IEGQ2.cjs.map +0 -1
  485. package/dist/chunk-LX64ENLC.cjs.map +0 -1
  486. package/dist/chunk-M3RNFDA2.cjs.map +0 -1
  487. package/dist/chunk-MGVEX3RS.js.map +0 -1
  488. package/dist/chunk-PYW5UO2Z.js.map +0 -1
  489. package/dist/chunk-QCT4BPB6.cjs.map +0 -1
  490. package/dist/chunk-U2WVHZ24.cjs.map +0 -1
  491. package/dist/chunk-UXDXE7Z6.cjs.map +0 -1
  492. package/dist/chunk-UYBGXFYX.js.map +0 -1
  493. package/dist/chunk-XUJZTD4E.js.map +0 -1
  494. package/dist/chunk-YSTESYUB.js.map +0 -1
  495. package/dist/chunk-ZNUOFLCQ.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/SideNav/SideNav.recipe.ts","../src/components/SideNav/SideNavContext.ts","../src/components/SideNav/internal/SideNavCollapseButton.tsx","../src/components/SideNav/SideNav.tsx","../src/components/SideNav/SideNavHeading.tsx","../src/components/SideNav/SideNavItem.tsx","../src/components/SideNav/SideNavSection.tsx"],"names":["styles","jsx","jsxs","useState","useCallback","Fragment","useId"],"mappings":";;;;;;;;;;;;;;;;AAEO,IAAM,gBAAgB,GAAA,CAAI;AAAA,EAC/B,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,CAAA,EAAG,MAAA;AAAA,IACH,CAAA,EAAG,OAAA;AAAA,IACH,EAAA,EAAI,SAAA;AAAA,IACJ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,QAAA,EAAU;AAAA,IACR,WAAA,EAAa;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,CAAA,EAAG;AAAA,OACL;AAAA,MACA,OAAO;AAAC,KACV;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,SAAS,EAAC;AAAA,MACV,MAAA,EAAQ;AAAA,QACN,aAAA,EAAe,KAAA;AAAA,QACf,UAAA,EAAY,QAAA;AAAA,QACZ,cAAA,EAAgB,eAAA;AAAA,QAChB,CAAA,EAAG,IAAA;AAAA,QACH,CAAA,EAAG;AAAA;AACL;AACF,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,WAAA,EAAa,KAAA;AAAA,IACb,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;ACnBM,IAAM,oBAAA,GAAuB,cAAiC,SAAS;AAC9E,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AAC5B,IAAM,yBAAyB,aAAA,CAAoC;AAAA,EACxE,WAAA,EAAa,KAAA;AAAA,EACb,aAAA,EAAe,KAAA;AAAA,EACf,QAAQ,MAAM;AAAA,EAAC;AACjB,CAAC;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;AAE9B,SAAS,oBAAA,GAA0C;AACxD,EAAA,OAAO,IAAI,oBAAoB,CAAA;AACjC;AAEO,SAAS,kBAAA,GAA2C;AACzD,EAAA,OAAO,IAAI,sBAAsB,CAAA;AACnC;ACxBA,IAAM,MAAA,GAAS;AAAA,EACb,UAAU,GAAA,CAAI;AAAA,IACZ,EAAA,EAAI;AAAA,GACL;AACH,CAAA;AAMO,SAAS,qBAAA,GAAkD;AAChE,EAAA,MAAM,EAAC,WAAA,EAAa,aAAA,EAAe,MAAA,KAAU,kBAAA,EAAmB;AAEhE,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,YAAA,GAAe,cAAc,gBAAA,GAAmB,kBAAA;AAEtD,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,WAAA,GAAc,MAAA,GAAY,MAAA,CAAO,QAAA;AAAA,MAC5C,IAAA,EAAM,cAAc,YAAA,GAAe,WAAA;AAAA,MACnC,UAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,YAAA;AAAA,MACP,OAAA,EAAS,MAAA;AAAA,MACT,IAAA,EAAK,IAAA;AAAA,MACL,OAAA,EAAS,YAAA;AAAA,MACT,OAAA,EAAQ;AAAA;AAAA,GACV;AAEJ;AAEA,qBAAA,CAAsB,WAAA,GAAc,uBAAA;ACgBpC,IAAMA,OAAAA,GAAS;AAAA,EACb,WAAW,GAAA,CAAI;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,CAAA,EAAG,GAAA;AAAA,IACH,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,YAAY,GAAA,CAAI;AAAA,IACd,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW,MAAA;AAAA,IACX,SAAA,EAAW,QAAA;AAAA,IACX,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,qBAAqB,GAAA,CAAI;AAAA,IACvB,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,cAAc,GAAA,CAAI;AAAA,IAChB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,EAAA,EAAI,MAAA;AAAA,IACJ,CAAA,EAAG,GAAA;AAAA,IACH,GAAA,EAAK,GAAA;AAAA,IACL,qBAAA,EAAuB,SAAA;AAAA,IACvB,qBAAA,EAAuB,OAAA;AAAA,IACvB,qBAAA,EAAuB;AAAA,GACxB,CAAA;AAAA,EACD,WAAW,GAAA,CAAI;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,oBAAoB,GAAA,CAAI;AAAA,IACtB,aAAA,EAAe,gBAAA;AAAA,IACf,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,aAAa,GAAA,CAAI;AAAA,IACf,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,sBAAsB,GAAA,CAAI;AAAA,IACxB,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,aAAa,GAAA,CAAI;AAAA,IACf,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,EAAA,EAAI;AAAA,GACL;AACH,CAAA;AAMO,SAAS,OAAA,CAAQ;AAAA,EACtB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,aAAA,EAAe,UAAA;AAAA,EACf,MAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAAoC;AAClC,EAAA,MAAM,aAAa,oBAAA,EAAqB;AACxC,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,KAAK,CAAA;AACpD,EAAA,MAAM,MAAA,GAAS,YAAY,MAAM;AAC/B,IAAA,cAAA,CAAe,CAAA,IAAA,KAAQ,CAAC,IAAI,CAAA;AAAA,EAC9B,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,MAAM,eAAA,GAAkB,OAAA;AAAA,IACtB,OAAO,EAAC,WAAA,EAAa,aAAA,EAAe,MAAA,EAAM,CAAA;AAAA,IAC1C,CAAC,WAAA,EAAa,aAAA,EAAe,MAAM;AAAA,GACrC;AAEA,EAAA,IAAI,eAAe,QAAA,EAAU;AAC3B,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,aAAA,CAAc,EAAC,MAAM,QAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QACxD,aAAA,EAAa,UAAA;AAAA,QACb,KAAA;AAAA,QACC,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,0BACDC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,OAAAA,CAAO,aAAc,QAAA,EAAA,WAAA,EAAY;AAAA;AAAA;AAAA,KACnD;AAAA,EAEJ;AAEA,EAAA,IAAI,eAAe,QAAA,EAAU;AAC3B,IAAA,uBACE,IAAA,CAAC,SAAA,EAAA,EAAU,aAAA,EAAa,UAAA,EAAY,MAAA,EACjC,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,eAAe,gBAAA,EAAkB;AACnC,IAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEC,GAAAA,CAAC,sBAAA,EAAA,EAAuB,KAAA,EAAO,eAAA,EAC7B,QAAA,kBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAW,iBAAA;AAAA,MACX,WAAW,EAAA,CAAG,aAAA,CAAc,EAAC,WAAA,EAAY,GAAG,SAAS,CAAA;AAAA,MACrD,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,IAAA,EAAK,YAAA;AAAA,MACL,KAAA;AAAA,MACC,QAAA,EAAA;AAAA,QAAA,WAAA,CAAY,MAAM,CAAA,IAAM,CAAC,WAAA,IAAe,WAAA,CAAY,UAAU,CAAA,mBAC7D,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,OAAAA,CAAO,SAAA,EACpB,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,UACA,CAAC,cAAc,UAAA,GAAa;AAAA,SAAA,EAC/B,CAAA,GACE,IAAA;AAAA,wBACJC,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACTD,OAAAA,CAAO,UAAA;AAAA,cACP,eAAeA,OAAAA,CAAO;AAAA,aACxB;AAAA,YACC;AAAA;AAAA,SACH;AAAA,QACC,WAAA,CAAY,MAAM,CAAA,IAAK,WAAA,CAAY,WAAW,CAAA,IAAK,aAAA,mBAClD,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWA,OAAAA,CAAO,YAAA,EACpB,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,0BACD,IAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACTA,OAAAA,CAAO,SAAA;AAAA,gBACP,eAAeA,OAAAA,CAAO;AAAA,eACxB;AAAA,cACC,QAAA,EAAA;AAAA,gBAAA,aAAA,mBAAgBC,GAAAA,CAAC,qBAAA,EAAA,EAAsB,CAAA,GAAK,IAAA;AAAA,gBAC5C,WAAA,CAAY,WAAW,CAAA,mBACtBA,GAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACTD,OAAAA,CAAO,WAAA;AAAA,sBACP,eAAeA,OAAAA,CAAO;AAAA,qBACxB;AAAA,oBACC,QAAA,EAAA;AAAA;AAAA,iBACH,GACE;AAAA;AAAA;AAAA;AACN,SAAA,EACF,CAAA,GACE;AAAA;AAAA;AAAA,GACN,EACF,CAAA;AAEJ;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;ACnMtB,IAAMA,OAAAA,GAAS;AAAA,EACb,MAAM,GAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,IAAA,EAAM,GAAA;AAAA,IACN,EAAA,EAAI,GAAA;AAAA,IACJ,KAAA,EAAO,IAAA;AAAA,IACP,cAAA,EAAgB;AAAA,GACjB,CAAA;AAAA,EACD,WAAW,GAAA,CAAI;AAAA,IACb,cAAA,EAAgB,QAAA;AAAA,IAChB,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,MAAM,GAAA,CAAI;AAAA,IACR,UAAA,EAAY,CAAA;AAAA,IACZ,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,MAAM,GAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACP,CAAA;AAAA,EACD,YAAY,GAAA,CAAI;AAAA,IACd,EAAA,EAAI,MAAA;AAAA,IACJ,UAAA,EAAY;AAAA,GACb;AACH,CAAA;AAEO,SAAS,cAAA,CAAe;AAAA,EAC7B,EAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAAkD;AAChD,EAAA,MAAM,aAAA,GAAgB,iBAAiB,EAAE,CAAA;AACzC,EAAA,MAAM,EAAC,WAAA,EAAW,GAAI,kBAAA,EAAmB;AACzC,EAAA,MAAM,eAAe,WAAA,IAAe,IAAA;AACpC,EAAA,MAAM,OAAA,GAAU,YAAA,IAAgB,IAAA,GAAO,aAAA,GAAgB,KAAA;AAEvD,EAAA,IAAI,WAAA,IAAe,CAAC,WAAA,CAAY,IAAI,CAAA,EAAG;AACrC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEE,IAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,WAAA,IAAe,YAAA,IAAgB,IAAA,GAAO,OAAA,GAAU,MAAA;AAAA,MAC5D,WAAW,EAAA,CAAGF,OAAAA,CAAO,MAAM,WAAA,IAAeA,OAAAA,CAAO,WAAW,SAAS,CAAA;AAAA,MACrE,aAAA,EAAa,UAAA;AAAA,MACb,IAAA,EAAM,YAAA;AAAA,MACN,GAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA,EAAI,OAAA,KAAY,GAAA,GAAM,MAAA,GAAY,YAAA;AAAA,MACjC,QAAA,EAAA;AAAA,QAAA,WAAA,CAAY,IAAI,oBAAIC,GAAAA,CAAC,UAAK,SAAA,EAAWD,OAAAA,CAAO,IAAA,EAAO,QAAA,EAAA,IAAA,EAAK,CAAA,GAAU,IAAA;AAAA,QAClE,CAAC,WAAA,mBACAE,KAAC,MAAA,EAAA,EAAK,SAAA,EAAWF,QAAO,IAAA,EACrB,QAAA,EAAA;AAAA,UAAA,YAAA,IAAgB,IAAA,mBACfC,GAAAA,CAAC,IAAA,EAAA,EAAK,OAAM,WAAA,EAAY,IAAA,EAAK,YAAA,EAC1B,QAAA,EAAA,YAAA,EACH,CAAA,GACE,IAAA;AAAA,UACH,OAAA,IAAW,IAAA,mBACVA,GAAAA,CAAC,IAAA,EAAA,EAAK,MAAK,OAAA,EAAQ,MAAA,EAAO,UAAA,EACvB,QAAA,EAAA,OAAA,EACH,CAAA,GACE,IAAA;AAAA,UACH,UAAA,IAAc,IAAA,mBACbA,GAAAA,CAAC,IAAA,EAAA,EAAK,OAAM,WAAA,EAAY,IAAA,EAAK,YAAA,EAC1B,QAAA,EAAA,UAAA,EACH,CAAA,GACE;AAAA,SAAA,EACN,CAAA,GACE,IAAA;AAAA,QACH,CAAC,WAAA,IAAe,WAAA,CAAY,gBAAgB,CAAA,mBAC3CA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWD,OAAAA,CAAO,UAAA,EAAa,QAAA,EAAA,gBAAA,EAAiB,CAAA,GACpD;AAAA;AAAA;AAAA,GACN;AAEJ;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA;AClC7B,IAAMA,OAAAA,GAAS;AAAA,EACb,SAAS,GAAA,CAAI;AAAA,IACX,KAAA,EAAO,UAAA;AAAA,IACP,QAAA,EAAU,IAAA;AAAA,IACV,UAAA,EAAY,QAAA;AAAA,IACZ,IAAA,EAAM,GAAA;AAAA,IACN,EAAA,EAAI,KAAA;AAAA;AAAA;AAAA;AAAA,IAIJ,MAAA,EAAQ,EAAC,EAAA,EAAI,UAAA;AAAU,GACxB,CAAA;AAAA,EACD,iBAAiB,GAAA,CAAI;AAAA,IACnB,EAAA,EAAI,UAAA;AAAA,IACJ,KAAA,EAAO,IAAA;AAAA,IACP,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,MAAM,GAAA,CAAI;AAAA,IACR,UAAA,EAAY,CAAA;AAAA,IACZ,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,QAAA,EAAU;AAAA,GACX,CAAA;AAAA,EACD,WAAW,GAAA,CAAI;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,CAAA,EAAG,IAAA;AAAA,IACH,IAAA,EAAM,GAAA;AAAA,IACN,EAAA,EAAI,CAAA;AAAA,IACJ,EAAA,EAAI,KAAA;AAAA,IACJ,YAAA,EAAc,IAAA;AAAA,IACd,KAAA,EAAO,UAAA;AAAA,IACP,cAAA,EAAgB,MAAA;AAAA,IAChB,EAAA,EAAI,aAAA;AAAA,IACJ,WAAA,EAAa,CAAA;AAAA,IACb,MAAA,EAAQ,SAAA;AAAA,IACR,MAAA,EAAQ,EAAC,EAAA,EAAI,UAAA,EAAU;AAAA,IACvB,aAAA,EAAe;AAAA,MACb,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,SAAA;AAAA,MACd,aAAA,EAAe;AAAA;AACjB,GACD,CAAA;AAAA,EACD,mBAAmB,GAAA,CAAI;AAAA,IACrB,EAAA,EAAI,UAAA;AAAA,IACJ,KAAA,EAAO;AAAA,GACR,CAAA;AAAA,EACD,mBAAmB,GAAA,CAAI;AAAA,IACrB,OAAA,EAAS,GAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,aAAA,EAAe;AAAA,GAChB,CAAA;AAAA,EACD,WAAW,GAAA,CAAI;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,CAAA,EAAG,MAAA;AAAA,IACH,MAAA,EAAQ,SAAA;AAAA,IACR,YAAA,EAAc,IAAA;AAAA,IACd,MAAA,EAAQ,EAAC,EAAA,EAAI,UAAA,EAAU;AAAA,IACvB,aAAA,EAAe;AAAA,MACb,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,SAAA;AAAA,MACd,aAAA,EAAe;AAAA;AACjB,GACD,CAAA;AAAA,EACD,mBAAmB,GAAA,CAAI;AAAA,IACrB,OAAA,EAAS,GAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,aAAA,EAAe;AAAA,GAChB,CAAA;AAAA,EACD,SAAS,GAAA,CAAI;AAAA,IACX,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,kBAAA,EAAoB,WAAA;AAAA,IACpB,kBAAA,EAAoB,MAAA;AAAA,IACpB,wBAAA,EAA0B;AAAA,GAC3B,CAAA;AAAA,EACD,iBAAiB,GAAA,CAAI;AAAA,IACnB,SAAA,EAAW;AAAA,GACZ,CAAA;AAAA,EACD,cAAc,GAAA,CAAI;AAAA,IAChB,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,CAAA;AAAA,IACZ,CAAA,EAAG,GAAA;AAAA,IACH,CAAA,EAAG,GAAA;AAAA,IACH,YAAA,EAAc,IAAA;AAAA,IACd,MAAA,EAAQ,SAAA;AAAA,IACR,KAAA,EAAO,UAAA;AAAA,IACP,MAAA,EAAQ,EAAC,EAAA,EAAI,UAAA,EAAU;AAAA,IACvB,aAAA,EAAe;AAAA,MACb,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,SAAA;AAAA,MACd,aAAA,EAAe;AAAA;AACjB,GACD,CAAA;AAAA,EACD,mBAAmB,GAAA,CAAI;AAAA,IACrB,OAAA,EAAS,MAAA;AAAA,IACT,gBAAA,EAAkB,KAAA;AAAA,IAClB,kBAAA,EAAoB,oBAAA;AAAA,IACpB,kBAAA,EAAoB,MAAA;AAAA,IACpB,wBAAA,EAA0B;AAAA,GAC3B,CAAA;AAAA,EACD,mBAAmB,GAAA,CAAI;AAAA,IACrB,gBAAA,EAAkB;AAAA,GACnB,CAAA;AAAA,EACD,eAAe,GAAA,CAAI;AAAA,IACjB,QAAA,EAAU,QAAA;AAAA,IACV,EAAA,EAAI;AAAA,GACL;AACH,CAAA;AAOO,SAAS,WAAA,CAAY;AAAA,EAC1B,EAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,eAAe,iBAAA,GAAoB,KAAA;AAAA,EACnC,iBAAA,GAAoB,IAAA;AAAA,EACpB,UAAA,GAAa,KAAA;AAAA,EACb,UAAA,GAAa,KAAA;AAAA,EACb,KAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAAwC;AACtC,EAAA,MAAM,aAAA,GAAgB,iBAAiB,EAAE,CAAA;AACzC,EAAA,MAAM,EAAC,cAAA,EAAc,GAAI,iBAAA,EAAkB;AAC3C,EAAA,MAAM,EAAC,WAAA,EAAW,GAAI,kBAAA,EAAmB;AACzC,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIG,SAAS,iBAAiB,CAAA;AAC9D,EAAA,MAAM,aAAa,KAAA,EAAM;AAEzB,EAAA,MAAM,WAAA,GAAc,YAAY,QAAQ,CAAA;AACxC,EAAA,MAAM,eAAe,WAAA,IAAe,iBAAA;AACpC,EAAA,MAAM,gBAAA,GAAmB,IAAA,IAAQ,IAAA,IAAQ,OAAA,IAAW,IAAA;AAEpD,EAAA,MAAM,cAAA,GAAiBC,YAAY,MAAM;AACvC,IAAA,aAAA,CAAc,CAAA,IAAA,KAAQ,CAAC,IAAI,CAAA;AAAA,EAC7B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,cAA8C,CAAA,KAAA,KAAS;AAC3D,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA;AAAA,IACF;AACA,IAAA,OAAA,GAAU,KAAK,CAAA;AACf,IAAA,cAAA,EAAe;AAAA,EACjB,CAAA;AAEA,EAAA,MAAM,WACJ,IAAA,IAAQ,IAAA,mBACNH,GAAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAWD,OAAAA,CAAO,IAAA,EACzC,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAK,MAAY,IAAA,EAAK,IAAA,EAAK,GAC9B,CAAA,GACE,MAAA;AAGN,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,MAAM,mBAAA,GAAsB,EAAA;AAAA,MAC1BD,OAAAA,CAAO,SAAA;AAAA,MACP,cAAcA,OAAAA,CAAO,iBAAA;AAAA,MACrB,cAAcA,OAAAA,CAAO,iBAAA;AAAA,MACrB;AAAA,KACF;AAEA,IAAA,IAAI,IAAA,IAAQ,IAAA,IAAQ,CAAC,UAAA,EAAY;AAC/B,MAAA,uBACEC,GAAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,cAAA,EAAc,aAAa,MAAA,GAAS,MAAA;AAAA,UACpC,YAAA,EAAY,KAAA;AAAA,UACZ,SAAA,EAAW,mBAAA;AAAA,UACX,aAAA,EAAa,UAAA;AAAA,UACb,IAAA;AAAA,UACA,OAAA,EAAS,WAAA;AAAA,UACT,GAAA;AAAA,UACA,KAAA;AAAA,UACA,EAAA,EAAI,aAAA,KAAkB,GAAA,GAAM,MAAA,GAAY,IAAA;AAAA,UACvC,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,cAAA,EAAc,aAAa,MAAA,GAAS,MAAA;AAAA,QACpC,YAAA,EAAY,KAAA;AAAA,QACZ,SAAA,EAAW,mBAAA;AAAA,QACX,aAAA,EAAa,UAAA;AAAA,QACb,QAAA,EAAU,UAAA;AAAA,QACV,OAAA,EAAS,WAAA;AAAA,QACT,GAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACJ,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AAIA,EAAA,MAAM,WAAA,GAAc,+BAClBA,GAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAGD,QAAO,OAAA,EAAS,UAAA,IAAcA,QAAO,eAAe,CAAA,EACtE,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAK,MAAM,WAAA,EAAa,IAAA,EAAK,IAAA,EAAK,CAAA,EACrC,CAAA,GACE,IAAA;AAEJ,EAAA,MAAM,iBAAA,GAAoB,WAAA,CAAY,QAAQ,CAAA,mBAC5CA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACTD,OAAAA,CAAO,iBAAA;AAAA,QACP,YAAA,IAAgB,CAAC,UAAA,IAAcA,OAAAA,CAAO;AAAA,OACxC;AAAA,MACA,EAAA,EAAI,UAAA;AAAA,MACJ,IAAA,EAAK,OAAA;AAAA,MACL,0BAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,OAAAA,CAAO,eAAgB,QAAA,EAAS;AAAA;AAAA,GAClD,GACE,IAAA;AAGJ,EAAA,IAAI,YAAA,IAAgB,CAAC,gBAAA,EAAkB;AACrC,IAAA,uBACEE,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,eAAA,EAAe,UAAA;AAAA,UACf,eAAA,EAAe,UAAA;AAAA,UACf,SAAA,EAAW,EAAA;AAAA,YACTD,OAAAA,CAAO,SAAA;AAAA,YACP,cAAcA,OAAAA,CAAO,eAAA;AAAA,YACrB,cAAcA,OAAAA,CAAO,iBAAA;AAAA,YACrB;AAAA,WACF;AAAA,UACA,aAAA,EAAa,UAAA;AAAA,UACb,QAAA,EAAU,UAAA;AAAA,UACV,OAAA,EAAS,cAAA;AAAA,UACT,GAAA;AAAA,UACA,KAAA;AAAA,UACA,IAAA,EAAK,QAAA;AAAA,UACL,QAAA,kBAAAC,GAAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAG,MAAA;AAAA,cACH,WAAWD,OAAAA,CAAO,OAAA;AAAA,cAClB,UAAA,EAAY,WAAA;AAAA,cACZ,KAAA;AAAA,cACA,YAAA,EAAc;AAAA;AAAA;AAChB;AAAA,OACF;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAGA,EAAA,IAAI,gBAAgB,gBAAA,EAAkB;AACpC,IAAA,uBACEE,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,cAAA,EAAc,aAAa,MAAA,GAAS,MAAA;AAAA,UACpC,SAAA,EAAW,EAAA;AAAA,YACTD,OAAAA,CAAO,OAAA;AAAA,YACP,cAAcA,OAAAA,CAAO,eAAA;AAAA,YACrB;AAAA,WACF;AAAA,UACA,aAAA,EAAa,UAAA;AAAA,UACb,UAAA;AAAA,UACA,IAAA,EAAM,aAAa,MAAA,GAAY,IAAA;AAAA,UAC/B,UAAA;AAAA,UACA,KAAA;AAAA,UACA,aAAA,EAAe,EAAA;AAAA,UACf,OAAA,EAAS,WAAA;AAAA,UACT,GAAA;AAAA,UACA,YAAA,EAAc,QAAA;AAAA,UACd,KAAA;AAAA,UACA,iCACEC,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,eAAA,EAAe,UAAA;AAAA,cACf,eAAA,EAAe,UAAA;AAAA,cACf,cAAY,UAAA,GAAa,CAAA,SAAA,EAAY,KAAK,CAAA,CAAA,GAAK,UAAU,KAAK,CAAA,CAAA;AAAA,cAC9D,WAAWD,OAAAA,CAAO,YAAA;AAAA,cAClB,OAAA,EAAS,cAAA;AAAA,cACT,IAAA,EAAK,QAAA;AAAA,cACJ,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,OAEJ;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAGA,EAAA,uBACEE,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAJ,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,cAAA,EAAc,aAAa,MAAA,GAAS,MAAA;AAAA,QACpC,SAAA,EAAW,EAAA;AAAA,UACTD,OAAAA,CAAO,OAAA;AAAA,UACP,cAAcA,OAAAA,CAAO,eAAA;AAAA,UACrB;AAAA,SACF;AAAA,QACA,aAAA,EAAa,UAAA;AAAA,QACb,UAAA;AAAA,QACA,IAAA,EAAM,aAAa,MAAA,GAAY,IAAA;AAAA,QAC/B,UAAA;AAAA,QACA,KAAA;AAAA,QACA,aAAA,EAAe,EAAA;AAAA,QACf,OAAA,EAAS,WAAA;AAAA,QACT,GAAA;AAAA,QACA,YAAA,EAAc,QAAA;AAAA,QACd;AAAA;AAAA,KACF;AAAA,IACC;AAAA,GAAA,EACH,CAAA;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;ACrY1B,IAAMA,OAAAA,GAAS;AAAA,EACb,MAAM,GAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,eAAe,GAAA,CAAI;AAAA,IACjB,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,QAAQ,GAAA,CAAI;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,EAAA,EAAI,GAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,gBAAgB,GAAA,CAAI;AAAA,IAClB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACP,CAAA;AAAA,EACD,YAAY,GAAA,CAAI;AAAA,IACd,UAAA,EAAY,CAAA;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,OAAO,GAAA,CAAI;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK;AAAA,GACN;AACH,CAAA;AAEO,SAAS,cAAA,CAAe;AAAA,EAC7B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA;AAAA,EACA,cAAA,GAAiB,KAAA;AAAA,EACjB,GAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA2C;AACzC,EAAA,MAAM,EAAC,WAAA,EAAW,GAAI,kBAAA,EAAmB;AACzC,EAAA,MAAM,KAAKM,KAAAA,EAAM;AACjB,EAAA,MAAM,OAAA,GAAU,GAAG,EAAE,CAAA,MAAA,CAAA;AACrB,EAAA,MAAM,mBAAmB,cAAA,IAAkB,WAAA;AAC3C,EAAA,MAAM,yBACJJ,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWF,QAAO,MAAA,EACrB,QAAA,EAAA;AAAA,oBAAAE,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWF,OAAAA,CAAO,cAAA,EACtB,QAAA,EAAA;AAAA,sBAAAC,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,MAAA;AAAA,UACH,KAAA,EAAM,WAAA;AAAA,UACN,aAAA,EAAa,MAAA;AAAA,UACb,EAAA,EAAI,OAAA;AAAA,UACJ,IAAA,EAAK,YAAA;AAAA,UACL,MAAA,EAAO,UAAA;AAAA,UACN,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,MACC,QAAA,IAAY,IAAA,mBACXA,GAAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAG,MAAA,EAAO,KAAA,EAAM,WAAA,EAAY,IAAA,EAAK,YAAA,EACpC,QAAA,EAAA,QAAA,EACH,CAAA,GACE;AAAA,KAAA,EACN,CAAA;AAAA,IACC,WAAA,CAAY,UAAU,CAAA,mBACrBA,GAAAA,CAAC,UAAK,SAAA,EAAWD,OAAAA,CAAO,UAAA,EAAa,QAAA,EAAA,UAAA,EAAW,CAAA,GAC9C;AAAA,GAAA,EACN,CAAA;AAGF,EAAA,uBACEE,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,iBAAA,EAAiB,OAAA;AAAA,MACjB,SAAA,EAAW,EAAA;AAAA,QACTF,OAAAA,CAAO,IAAA;AAAA,QACP,eAAeA,OAAAA,CAAO,aAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,KAAA;AAAA,MACC,QAAA,EAAA;AAAA,QAAA,gBAAA,mBAAmBC,GAAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,MAAA,EAAO,CAAA,GAAoB,MAAA;AAAA,wBAChEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,OAAAA,CAAO,OAAQ,QAAA,EAAS;AAAA;AAAA;AAAA,GAC1C;AAEJ;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA","file":"chunk-54J6FRPG.js","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const sideNavRecipe = cva({\n base: {\n display: 'flex',\n flexDirection: 'column',\n h: '100%',\n w: '260px',\n bg: 'inherit',\n overflow: 'hidden',\n },\n variants: {\n isCollapsed: {\n true: {\n w: '12',\n },\n false: {},\n },\n mode: {\n default: {},\n topbar: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n h: '12',\n w: '100%',\n },\n },\n },\n defaultVariants: {\n isCollapsed: false,\n mode: 'default',\n },\n});\n\nexport type SideNavVariants = RecipeVariantProps<typeof sideNavRecipe>;\n","import {createContext, use} from 'react';\n\nexport type SideNavRenderMode =\n | 'default'\n | 'topbar'\n | 'drawer'\n | 'drawer-content';\n\nexport interface SideNavCollapseState {\n isCollapsed: boolean;\n isCollapsible: boolean;\n toggle: () => void;\n}\n\nexport const SideNavRenderContext = createContext<SideNavRenderMode>('default');\nSideNavRenderContext.displayName = 'SideNavRenderContext';\nexport const SideNavCollapseContext = createContext<SideNavCollapseState>({\n isCollapsed: false,\n isCollapsible: false,\n toggle: () => {},\n});\nSideNavCollapseContext.displayName = 'SideNavCollapseContext';\n\nexport function useSideNavRenderMode(): SideNavRenderMode {\n return use(SideNavRenderContext);\n}\n\nexport function useSideNavCollapse(): SideNavCollapseState {\n return use(SideNavCollapseContext);\n}\n","import {ChevronLeft, ChevronRight} from 'lucide-react';\nimport {css} from 'styled-system/css';\nimport {Button} from '../../Button';\nimport {useSideNavCollapse} from '../SideNavContext';\n\nconst styles = {\n expanded: css({\n ms: '-2',\n }),\n};\n\n/**\n * Toggle button for collapsing and expanding the SideNav.\n * Reads collapse state from context when placed inside a SideNav.\n */\nexport function SideNavCollapseButton(): React.JSX.Element | null {\n const {isCollapsed, isCollapsible, toggle} = useSideNavCollapse();\n\n if (!isCollapsible) {\n return null;\n }\n\n const tooltipLabel = isCollapsed ? 'Expand sidebar' : 'Collapse sidebar';\n\n return (\n <Button\n className={isCollapsed ? undefined : styles.expanded}\n icon={isCollapsed ? ChevronRight : ChevronLeft}\n isIconOnly\n label={tooltipLabel}\n onClick={toggle}\n size=\"sm\"\n tooltip={tooltipLabel}\n variant=\"ghost\"\n />\n );\n}\n\nSideNavCollapseButton.displayName = 'SideNavCollapseButton';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useCallback, useMemo, useState} from 'react';\nimport {css} from 'styled-system/css';\nimport {MobileNav} from '../../internal/MobileNav';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {sideNavRecipe} from './SideNav.recipe';\nimport {SideNavCollapseContext, useSideNavRenderMode} from './SideNavContext';\nimport {SideNavCollapseButton} from './internal/SideNavCollapseButton';\n\nexport interface SideNavProps {\n /**\n * Navigation item children rendered in the scrollable area.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the nav element.\n */\n className?: string;\n /**\n * Test ID applied to the nav element.\n */\n 'data-testid'?: string;\n /**\n * Content rendered in the sticky bottom section.\n */\n footer?: ReactNode;\n /**\n * Icon actions rendered alongside the footer.\n */\n footerIcons?: ReactNode;\n /**\n * Content rendered at the top of the nav (e.g. a logo or title).\n */\n header?: ReactNode;\n /**\n * Whether the nav can be collapsed to an icon-only toolbar.\n * @default false\n */\n isCollapsible?: boolean;\n /**\n * Ref forwarded to the nav element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the nav element.\n */\n style?: CSSProperties;\n /**\n * Non-scrollable content rendered below the header.\n */\n topContent?: ReactNode;\n}\n\nconst styles = {\n stickyTop: css({\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n p: '2',\n gap: '2',\n }),\n scrollable: css({\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n px: '2',\n }),\n scrollableCollapsed: css({\n flex: 'none',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n }),\n stickyBottom: css({\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n mt: 'auto',\n p: '2',\n gap: '2',\n borderBlockStartWidth: 'default',\n borderBlockStartStyle: 'solid',\n borderBlockStartColor: 'border',\n }),\n footerRow: css({\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n }),\n footerRowCollapsed: css({\n flexDirection: 'column-reverse',\n alignItems: 'center',\n }),\n footerIcons: css({\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n ms: 'auto',\n }),\n footerIconsCollapsed: css({\n flexDirection: 'column',\n alignItems: 'center',\n ms: '0',\n }),\n topbarIcons: css({\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n ms: 'auto',\n }),\n};\n\n/**\n * Vertical side navigation panel with optional collapsing support.\n * Adapts to AppShell render modes (inline, drawer, topbar).\n */\nexport function SideNav({\n children,\n className,\n isCollapsible = false,\n 'data-testid': dataTestId,\n footer,\n footerIcons,\n header,\n ref,\n style,\n topContent,\n}: SideNavProps): React.JSX.Element {\n const renderMode = useSideNavRenderMode();\n const [isCollapsed, setIsCollapsed] = useState(false);\n const toggle = useCallback(() => {\n setIsCollapsed(prev => !prev);\n }, []);\n const collapseContext = useMemo(\n () => ({isCollapsed, isCollapsible, toggle}),\n [isCollapsed, isCollapsible, toggle],\n );\n\n if (renderMode === 'topbar') {\n return (\n <div\n className={cx(sideNavRecipe({mode: 'topbar'}), className)}\n data-testid={dataTestId}\n style={style}>\n {header}\n <div className={styles.topbarIcons}>{footerIcons}</div>\n </div>\n );\n }\n\n if (renderMode === 'drawer') {\n return (\n <MobileNav data-testid={dataTestId} header={header}>\n {topContent}\n {children}\n {footer}\n {footerIcons}\n </MobileNav>\n );\n }\n\n if (renderMode === 'drawer-content') {\n return (\n <>\n {topContent}\n {children}\n {footer}\n {footerIcons}\n </>\n );\n }\n\n return (\n <SideNavCollapseContext value={collapseContext}>\n <nav\n aria-label=\"Side navigation\"\n className={cx(sideNavRecipe({isCollapsed}), className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"navigation\"\n style={style}>\n {isReactNode(header) || (!isCollapsed && isReactNode(topContent)) ? (\n <div className={styles.stickyTop}>\n {header}\n {!isCollapsed ? topContent : null}\n </div>\n ) : null}\n <div\n className={cx(\n styles.scrollable,\n isCollapsed && styles.scrollableCollapsed,\n )}>\n {children}\n </div>\n {isReactNode(footer) || isReactNode(footerIcons) || isCollapsible ? (\n <div className={styles.stickyBottom}>\n {footer}\n <div\n className={cx(\n styles.footerRow,\n isCollapsed && styles.footerRowCollapsed,\n )}>\n {isCollapsible ? <SideNavCollapseButton /> : null}\n {isReactNode(footerIcons) ? (\n <div\n className={cx(\n styles.footerIcons,\n isCollapsed && styles.footerIconsCollapsed,\n )}>\n {footerIcons}\n </div>\n ) : null}\n </div>\n </div>\n ) : null}\n </nav>\n </SideNavCollapseContext>\n );\n}\n\nSideNav.displayName = 'SideNav';\n","/* eslint-disable @eslint-react/static-components -- intentional polymorphism via as prop */\n\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport type {LinkComponent} from '../Link';\nimport {useLinkComponent} from '../Link';\nimport {Text} from '../Text';\nimport {useSideNavCollapse} from './SideNavContext';\n\nexport interface SideNavHeadingProps {\n as?: LinkComponent;\n className?: string;\n 'data-testid'?: string;\n headerEndContent?: ReactNode;\n heading?: string;\n headingHref?: string;\n href?: string;\n logo?: ReactNode;\n ref?: Ref<HTMLElement>;\n style?: CSSProperties;\n subheading?: string;\n superheading?: string;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n minH: '8',\n px: '2',\n color: 'fg',\n textDecoration: 'none',\n }),\n collapsed: css({\n justifyContent: 'center',\n px: 0,\n }),\n logo: css({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n }),\n text: css({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minW: 0,\n }),\n endContent: css({\n ms: 'auto',\n flexShrink: 0,\n }),\n};\n\nexport function SideNavHeading({\n as,\n className,\n 'data-testid': dataTestId,\n headerEndContent,\n heading,\n headingHref,\n href,\n logo,\n ref,\n style,\n subheading,\n superheading,\n}: SideNavHeadingProps): React.JSX.Element | null {\n const LinkComponent = useLinkComponent(as);\n const {isCollapsed} = useSideNavCollapse();\n const resolvedHref = headingHref ?? href;\n const Element = resolvedHref != null ? LinkComponent : 'div';\n\n if (isCollapsed && !isReactNode(logo)) {\n return null;\n }\n\n return (\n <Element\n aria-label={isCollapsed && resolvedHref != null ? heading : undefined}\n className={cx(styles.root, isCollapsed && styles.collapsed, className)}\n data-testid={dataTestId}\n href={resolvedHref}\n ref={ref as Ref<HTMLAnchorElement & HTMLDivElement>}\n style={style}\n to={Element === 'a' ? undefined : resolvedHref}>\n {isReactNode(logo) ? <span className={styles.logo}>{logo}</span> : null}\n {!isCollapsed ? (\n <span className={styles.text}>\n {superheading != null ? (\n <Text color=\"secondary\" type=\"supporting\">\n {superheading}\n </Text>\n ) : null}\n {heading != null ? (\n <Text type=\"large\" weight=\"semibold\">\n {heading}\n </Text>\n ) : null}\n {subheading != null ? (\n <Text color=\"secondary\" type=\"supporting\">\n {subheading}\n </Text>\n ) : null}\n </span>\n ) : null}\n {!isCollapsed && isReactNode(headerEndContent) ? (\n <span className={styles.endContent}>{headerEndContent}</span>\n ) : null}\n </Element>\n );\n}\n\nSideNavHeading.displayName = 'SideNavHeading';\n","/* eslint-disable @eslint-react/static-components -- intentional polymorphism via as prop */\n\nimport {ChevronDown} from 'lucide-react';\nimport type {CSSProperties, MouseEventHandler, ReactNode, Ref} from 'react';\nimport {useCallback, useId, useState} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useAppShellMobile} from '../AppShell/AppShellMobileContext';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Item} from '../Item';\nimport type {LinkComponent} from '../Link';\nimport {useLinkComponent} from '../Link';\nimport {useSideNavCollapse} from './SideNavContext';\n\nexport interface SideNavItemProps {\n /**\n * Custom link component used when href is set.\n */\n as?: LinkComponent;\n /**\n * Nested sub-items rendered below this item.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the item.\n */\n className?: string;\n /**\n * Test ID applied to the item.\n */\n 'data-testid'?: string;\n /**\n * Content rendered at the end of the item (e.g. a badge).\n */\n endContent?: ReactNode;\n /**\n * Link destination. When set, the item renders as a link.\n */\n href?: string;\n /**\n * Icon rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the item can expand/collapse its children.\n * @default false\n */\n isCollapsible?: boolean;\n /**\n * Whether the item's children are initially expanded.\n * @default true\n */\n isDefaultExpanded?: boolean;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the item is currently selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Accessible item label, also used as visible text.\n */\n label: string;\n /**\n * Click handler for the item.\n */\n onClick?: MouseEventHandler<HTMLElement>;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the item.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n navItem: css({\n color: 'fg.muted',\n fontSize: 'sm',\n fontWeight: 'medium',\n minH: '8',\n py: '0.5',\n // Override Item's default `bg.subtle` hover, which is invisible when the\n // SideNav sits on the AppShell's `bg.subtle` surface. Match TopNavItem's\n // darker `bg.hover` so the hover is visible in both navs.\n _hover: {bg: 'bg.hover'},\n }),\n navItemSelected: css({\n bg: 'bg.hover',\n color: 'fg',\n fontWeight: 'semibold',\n }),\n icon: css({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: 'var(--silver-sizes-icon-md)',\n }),\n collapsed: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '10',\n minH: '8',\n px: 0,\n py: '1.5',\n borderRadius: 'md',\n color: 'fg.muted',\n textDecoration: 'none',\n bg: 'transparent',\n borderWidth: 0,\n cursor: 'pointer',\n _hover: {bg: 'bg.hover'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n collapsedSelected: css({\n bg: 'bg.hover',\n color: 'fg',\n }),\n collapsedDisabled: css({\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n }),\n toggleRow: css({\n display: 'flex',\n w: '100%',\n cursor: 'pointer',\n borderRadius: 'md',\n _hover: {bg: 'bg.hover'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n toggleRowDisabled: css({\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n }),\n chevron: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n transitionProperty: 'transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n }),\n chevronExpanded: css({\n transform: 'rotate(180deg)',\n }),\n toggleButton: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n w: '7',\n h: '7',\n borderRadius: 'md',\n cursor: 'pointer',\n color: 'fg.muted',\n _hover: {bg: 'bg.hover'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n childrenContainer: css({\n display: 'grid',\n gridTemplateRows: '1fr',\n transitionProperty: 'grid-template-rows',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n }),\n childrenCollapsed: css({\n gridTemplateRows: '0fr',\n }),\n childrenInner: css({\n overflow: 'hidden',\n ps: '6',\n }),\n};\n\n/**\n * A single navigation item inside a SideNav. Renders as a link when\n * `href` is provided, or a button otherwise. Supports nested sub-items\n * via `children` with optional expand/collapse behavior.\n */\nexport function SideNavItem({\n as,\n children,\n className,\n 'data-testid': dataTestId,\n endContent,\n href,\n icon,\n isCollapsible: isItemCollapsible = false,\n isDefaultExpanded = true,\n isDisabled = false,\n isSelected = false,\n label,\n onClick,\n ref,\n style,\n}: SideNavItemProps): React.JSX.Element {\n const LinkComponent = useLinkComponent(as);\n const {closeMobileNav} = useAppShellMobile();\n const {isCollapsed} = useSideNavCollapse();\n const [isExpanded, setIsExpanded] = useState(isDefaultExpanded);\n const childrenId = useId();\n\n const hasChildren = isReactNode(children);\n const isExpandable = hasChildren && isItemCollapsible;\n const hasPrimaryAction = href != null || onClick != null;\n\n const toggleExpanded = useCallback(() => {\n setIsExpanded(prev => !prev);\n }, []);\n\n const handleClick: MouseEventHandler<HTMLElement> = event => {\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n onClick?.(event);\n closeMobileNav();\n };\n\n const iconSlot =\n icon != null ? (\n <span aria-hidden=\"true\" className={styles.icon}>\n <Icon icon={icon} size=\"sm\" />\n </span>\n ) : undefined;\n\n // --- Collapsed sidebar: icon-only rendering ---\n if (isCollapsed) {\n const collapsedClassNames = cx(\n styles.collapsed,\n isSelected && styles.collapsedSelected,\n isDisabled && styles.collapsedDisabled,\n className,\n );\n\n if (href != null && !isDisabled) {\n return (\n <LinkComponent\n aria-current={isSelected ? 'page' : undefined}\n aria-label={label}\n className={collapsedClassNames}\n data-testid={dataTestId}\n href={href}\n onClick={handleClick}\n ref={ref as Ref<HTMLAnchorElement>}\n style={style}\n to={LinkComponent === 'a' ? undefined : href}>\n {iconSlot}\n </LinkComponent>\n );\n }\n\n return (\n <button\n aria-current={isSelected ? 'page' : undefined}\n aria-label={label}\n className={collapsedClassNames}\n data-testid={dataTestId}\n disabled={isDisabled}\n onClick={handleClick}\n ref={ref as Ref<HTMLButtonElement>}\n style={style}\n type=\"button\">\n {iconSlot}\n </button>\n );\n }\n\n // --- Expanded sidebar ---\n\n const chevronSlot = isExpandable ? (\n <span className={cx(styles.chevron, isExpanded && styles.chevronExpanded)}>\n <Icon icon={ChevronDown} size=\"sm\" />\n </span>\n ) : null;\n\n const childrenContainer = isReactNode(children) ? (\n <div\n className={cx(\n styles.childrenContainer,\n isExpandable && !isExpanded && styles.childrenCollapsed,\n )}\n id={childrenId}\n role=\"group\">\n <div className={styles.childrenInner}>{children}</div>\n </div>\n ) : null;\n\n // Collapsible WITHOUT primary action: whole row toggles\n if (isExpandable && !hasPrimaryAction) {\n return (\n <>\n <button\n aria-controls={childrenId}\n aria-expanded={isExpanded}\n className={cx(\n styles.toggleRow,\n isSelected && styles.navItemSelected,\n isDisabled && styles.toggleRowDisabled,\n className,\n )}\n data-testid={dataTestId}\n disabled={isDisabled}\n onClick={toggleExpanded}\n ref={ref as Ref<HTMLButtonElement>}\n style={style}\n type=\"button\">\n <Item\n as=\"span\"\n className={styles.navItem}\n endContent={chevronSlot}\n label={label}\n startContent={iconSlot}\n />\n </button>\n {childrenContainer}\n </>\n );\n }\n\n // Collapsible WITH primary action: split-action (link + chevron)\n if (isExpandable && hasPrimaryAction) {\n return (\n <>\n <Item\n aria-current={isSelected ? 'page' : undefined}\n className={cx(\n styles.navItem,\n isSelected && styles.navItemSelected,\n className,\n )}\n data-testid={dataTestId}\n endContent={endContent}\n href={isDisabled ? undefined : href}\n isDisabled={isDisabled}\n label={label}\n linkComponent={as}\n onClick={handleClick}\n ref={ref}\n startContent={iconSlot}\n style={style}\n trailingContent={\n <button\n aria-controls={childrenId}\n aria-expanded={isExpanded}\n aria-label={isExpanded ? `Collapse ${label}` : `Expand ${label}`}\n className={styles.toggleButton}\n onClick={toggleExpanded}\n type=\"button\">\n {chevronSlot}\n </button>\n }\n />\n {childrenContainer}\n </>\n );\n }\n\n // Leaf item (no collapsible children): compose Item directly\n return (\n <>\n <Item\n aria-current={isSelected ? 'page' : undefined}\n className={cx(\n styles.navItem,\n isSelected && styles.navItemSelected,\n className,\n )}\n data-testid={dataTestId}\n endContent={endContent}\n href={isDisabled ? undefined : href}\n isDisabled={isDisabled}\n label={label}\n linkComponent={as}\n onClick={handleClick}\n ref={ref}\n startContent={iconSlot}\n style={style}\n />\n {childrenContainer}\n </>\n );\n}\n\nSideNavItem.displayName = 'SideNavItem';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useId} from 'react';\nimport {css} from 'styled-system/css';\nimport {VisuallyHidden} from '../../internal';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {Text} from '../Text';\nimport {useSideNavCollapse} from './SideNavContext';\n\nexport interface SideNavSectionProps {\n children: ReactNode;\n className?: string;\n 'data-testid'?: string;\n endContent?: ReactNode;\n isHeaderHidden?: boolean;\n ref?: Ref<HTMLDivElement>;\n style?: CSSProperties;\n subtitle?: string;\n title: string;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n flexDirection: 'column',\n py: '1',\n }),\n rootCollapsed: css({\n py: '0',\n }),\n header: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n px: '2',\n py: '1',\n }),\n titleContainer: css({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minW: 0,\n }),\n endContent: css({\n flexShrink: 0,\n display: 'flex',\n alignItems: 'center',\n }),\n items: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n }),\n};\n\nexport function SideNavSection({\n children,\n className,\n 'data-testid': dataTestId,\n endContent,\n isHeaderHidden = false,\n ref,\n style,\n subtitle,\n title,\n}: SideNavSectionProps): React.JSX.Element {\n const {isCollapsed} = useSideNavCollapse();\n const id = useId();\n const titleId = `${id}-title`;\n const shouldHideHeader = isHeaderHidden || isCollapsed;\n const header = (\n <div className={styles.header}>\n <span className={styles.titleContainer}>\n <Text\n as=\"span\"\n color=\"secondary\"\n data-testid={undefined}\n id={titleId}\n type=\"supporting\"\n weight=\"semibold\">\n {title}\n </Text>\n {subtitle != null ? (\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n {subtitle}\n </Text>\n ) : null}\n </span>\n {isReactNode(endContent) ? (\n <span className={styles.endContent}>{endContent}</span>\n ) : null}\n </div>\n );\n\n return (\n <div\n aria-labelledby={titleId}\n className={cx(\n styles.root,\n isCollapsed && styles.rootCollapsed,\n className,\n )}\n data-testid={dataTestId}\n ref={ref}\n role=\"group\"\n style={style}>\n {shouldHideHeader ? <VisuallyHidden>{header}</VisuallyHidden> : header}\n <div className={styles.items}>{children}</div>\n </div>\n );\n}\n\nSideNavSection.displayName = 'SideNavSection';\n"]}
1
+ {"version":3,"sources":["../src/components/SideNav/SideNav.recipe.ts","../src/components/SideNav/SideNavContext.ts","../src/components/SideNav/internal/SideNavCollapseButton.tsx","../src/components/SideNav/SideNav.tsx","../src/components/SideNav/SideNavHeading.tsx","../src/components/SideNav/SideNavItem.tsx","../src/components/SideNav/SideNavSection.tsx"],"names":["styles","jsx","jsxs","useState","useCallback","Fragment","useId"],"mappings":";;;;;;;;;;;;;;;;AAEO,IAAM,gBAAgB,GAAA,CAAI;AAAA,EAC/B,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,CAAA,EAAG,MAAA;AAAA,IACH,CAAA,EAAG,OAAA;AAAA,IACH,EAAA,EAAI,SAAA;AAAA,IACJ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,QAAA,EAAU;AAAA,IACR,WAAA,EAAa;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,CAAA,EAAG;AAAA,OACL;AAAA,MACA,OAAO;AAAC,KACV;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,SAAS,EAAC;AAAA,MACV,MAAA,EAAQ;AAAA,QACN,aAAA,EAAe,KAAA;AAAA,QACf,UAAA,EAAY,QAAA;AAAA,QACZ,cAAA,EAAgB,eAAA;AAAA,QAChB,CAAA,EAAG,IAAA;AAAA,QACH,CAAA,EAAG;AAAA;AACL;AACF,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,WAAA,EAAa,KAAA;AAAA,IACb,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;ACnBM,IAAM,oBAAA,GAAuB,cAAiC,SAAS;AAC9E,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AAC5B,IAAM,yBAAyB,aAAA,CAAoC;AAAA,EACxE,WAAA,EAAa,KAAA;AAAA,EACb,aAAA,EAAe,KAAA;AAAA,EACf,QAAQ,MAAM;AAAA,EAAC;AACjB,CAAC;AACD,sBAAA,CAAuB,WAAA,GAAc,wBAAA;AAE9B,SAAS,oBAAA,GAA0C;AACxD,EAAA,OAAO,IAAI,oBAAoB,CAAA;AACjC;AAEO,SAAS,kBAAA,GAA2C;AACzD,EAAA,OAAO,IAAI,sBAAsB,CAAA;AACnC;ACxBA,IAAM,MAAA,GAAS;AAAA,EACb,UAAU,GAAA,CAAI;AAAA,IACZ,EAAA,EAAI;AAAA,GACL;AACH,CAAA;AAMO,SAAS,qBAAA,GAAkD;AAChE,EAAA,MAAM,EAAC,WAAA,EAAa,aAAA,EAAe,MAAA,KAAU,kBAAA,EAAmB;AAEhE,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,YAAA,GAAe,cAAc,gBAAA,GAAmB,kBAAA;AAEtD,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,WAAA,GAAc,MAAA,GAAY,MAAA,CAAO,QAAA;AAAA,MAC5C,IAAA,EAAM,cAAc,YAAA,GAAe,WAAA;AAAA,MACnC,UAAA,EAAU,IAAA;AAAA,MACV,KAAA,EAAO,YAAA;AAAA,MACP,OAAA,EAAS,MAAA;AAAA,MACT,IAAA,EAAK,IAAA;AAAA,MACL,OAAA,EAAS,YAAA;AAAA,MACT,OAAA,EAAQ;AAAA;AAAA,GACV;AAEJ;AAEA,qBAAA,CAAsB,WAAA,GAAc,uBAAA;ACgBpC,IAAMA,OAAAA,GAAS;AAAA,EACb,WAAW,GAAA,CAAI;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,CAAA,EAAG,GAAA;AAAA,IACH,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,YAAY,GAAA,CAAI;AAAA,IACd,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW,MAAA;AAAA,IACX,SAAA,EAAW,QAAA;AAAA,IACX,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,qBAAqB,GAAA,CAAI;AAAA,IACvB,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,cAAc,GAAA,CAAI;AAAA,IAChB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,CAAA;AAAA,IACZ,EAAA,EAAI,MAAA;AAAA,IACJ,CAAA,EAAG,GAAA;AAAA,IACH,GAAA,EAAK,GAAA;AAAA,IACL,qBAAA,EAAuB,SAAA;AAAA,IACvB,qBAAA,EAAuB,OAAA;AAAA,IACvB,qBAAA,EAAuB;AAAA,GACxB,CAAA;AAAA,EACD,WAAW,GAAA,CAAI;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,oBAAoB,GAAA,CAAI;AAAA,IACtB,aAAA,EAAe,gBAAA;AAAA,IACf,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,aAAa,GAAA,CAAI;AAAA,IACf,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,sBAAsB,GAAA,CAAI;AAAA,IACxB,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,aAAa,GAAA,CAAI;AAAA,IACf,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,EAAA,EAAI;AAAA,GACL;AACH,CAAA;AAMO,SAAS,OAAA,CAAQ;AAAA,EACtB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,aAAA,EAAe,UAAA;AAAA,EACf,MAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAAoC;AAClC,EAAA,MAAM,aAAa,oBAAA,EAAqB;AACxC,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,KAAK,CAAA;AACpD,EAAA,MAAM,MAAA,GAAS,YAAY,MAAM;AAC/B,IAAA,cAAA,CAAe,CAAA,IAAA,KAAQ,CAAC,IAAI,CAAA;AAAA,EAC9B,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,MAAM,eAAA,GAAkB,OAAA;AAAA,IACtB,OAAO,EAAC,WAAA,EAAa,aAAA,EAAe,MAAA,EAAM,CAAA;AAAA,IAC1C,CAAC,WAAA,EAAa,aAAA,EAAe,MAAM;AAAA,GACrC;AAEA,EAAA,IAAI,eAAe,QAAA,EAAU;AAC3B,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,aAAA,CAAc,EAAC,MAAM,QAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QACxD,aAAA,EAAa,UAAA;AAAA,QACb,KAAA;AAAA,QACC,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,0BACDC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,OAAAA,CAAO,aAAc,QAAA,EAAA,WAAA,EAAY;AAAA;AAAA;AAAA,KACnD;AAAA,EAEJ;AAEA,EAAA,IAAI,eAAe,QAAA,EAAU;AAC3B,IAAA,uBACE,IAAA,CAAC,SAAA,EAAA,EAAU,aAAA,EAAa,UAAA,EAAY,MAAA,EACjC,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,eAAe,gBAAA,EAAkB;AACnC,IAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEC,GAAAA,CAAC,sBAAA,EAAA,EAAuB,KAAA,EAAO,eAAA,EAC7B,QAAA,kBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAW,iBAAA;AAAA,MACX,WAAW,EAAA,CAAG,aAAA,CAAc,EAAC,WAAA,EAAY,GAAG,SAAS,CAAA;AAAA,MACrD,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,IAAA,EAAK,YAAA;AAAA,MACL,KAAA;AAAA,MACC,QAAA,EAAA;AAAA,QAAA,WAAA,CAAY,MAAM,CAAA,IAAM,CAAC,WAAA,IAAe,WAAA,CAAY,UAAU,CAAA,mBAC7D,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,OAAAA,CAAO,SAAA,EACpB,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,UACA,CAAC,cAAc,UAAA,GAAa;AAAA,SAAA,EAC/B,CAAA,GACE,IAAA;AAAA,wBACJC,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACTD,OAAAA,CAAO,UAAA;AAAA,cACP,eAAeA,OAAAA,CAAO;AAAA,aACxB;AAAA,YACC;AAAA;AAAA,SACH;AAAA,QACC,WAAA,CAAY,MAAM,CAAA,IAAK,WAAA,CAAY,WAAW,CAAA,IAAK,aAAA,mBAClD,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWA,OAAAA,CAAO,YAAA,EACpB,QAAA,EAAA;AAAA,UAAA,MAAA;AAAA,0BACD,IAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACTA,OAAAA,CAAO,SAAA;AAAA,gBACP,eAAeA,OAAAA,CAAO;AAAA,eACxB;AAAA,cACC,QAAA,EAAA;AAAA,gBAAA,aAAA,mBAAgBC,GAAAA,CAAC,qBAAA,EAAA,EAAsB,CAAA,GAAK,IAAA;AAAA,gBAC5C,WAAA,CAAY,WAAW,CAAA,mBACtBA,GAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACTD,OAAAA,CAAO,WAAA;AAAA,sBACP,eAAeA,OAAAA,CAAO;AAAA,qBACxB;AAAA,oBACC,QAAA,EAAA;AAAA;AAAA,iBACH,GACE;AAAA;AAAA;AAAA;AACN,SAAA,EACF,CAAA,GACE;AAAA;AAAA;AAAA,GACN,EACF,CAAA;AAEJ;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;ACnMtB,IAAMA,OAAAA,GAAS;AAAA,EACb,MAAM,GAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,IAAA,EAAM,GAAA;AAAA,IACN,EAAA,EAAI,GAAA;AAAA,IACJ,KAAA,EAAO,IAAA;AAAA,IACP,cAAA,EAAgB;AAAA,GACjB,CAAA;AAAA,EACD,WAAW,GAAA,CAAI;AAAA,IACb,cAAA,EAAgB,QAAA;AAAA,IAChB,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,MAAM,GAAA,CAAI;AAAA,IACR,UAAA,EAAY,CAAA;AAAA,IACZ,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,MAAM,GAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACP,CAAA;AAAA,EACD,YAAY,GAAA,CAAI;AAAA,IACd,EAAA,EAAI,MAAA;AAAA,IACJ,UAAA,EAAY;AAAA,GACb;AACH,CAAA;AAEO,SAAS,cAAA,CAAe;AAAA,EAC7B,EAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAAkD;AAChD,EAAA,MAAM,aAAA,GAAgB,iBAAiB,EAAE,CAAA;AACzC,EAAA,MAAM,EAAC,WAAA,EAAW,GAAI,kBAAA,EAAmB;AACzC,EAAA,MAAM,eAAe,WAAA,IAAe,IAAA;AACpC,EAAA,MAAM,OAAA,GAAU,YAAA,IAAgB,IAAA,GAAO,aAAA,GAAgB,KAAA;AAEvD,EAAA,IAAI,WAAA,IAAe,CAAC,WAAA,CAAY,IAAI,CAAA,EAAG;AACrC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEE,IAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,WAAA,IAAe,YAAA,IAAgB,IAAA,GAAO,OAAA,GAAU,MAAA;AAAA,MAC5D,WAAW,EAAA,CAAGF,OAAAA,CAAO,MAAM,WAAA,IAAeA,OAAAA,CAAO,WAAW,SAAS,CAAA;AAAA,MACrE,aAAA,EAAa,UAAA;AAAA,MACb,IAAA,EAAM,YAAA;AAAA,MACN,GAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAA,EAAI,OAAA,KAAY,GAAA,GAAM,MAAA,GAAY,YAAA;AAAA,MACjC,QAAA,EAAA;AAAA,QAAA,WAAA,CAAY,IAAI,oBAAIC,GAAAA,CAAC,UAAK,SAAA,EAAWD,OAAAA,CAAO,IAAA,EAAO,QAAA,EAAA,IAAA,EAAK,CAAA,GAAU,IAAA;AAAA,QAClE,CAAC,WAAA,mBACAE,KAAC,MAAA,EAAA,EAAK,SAAA,EAAWF,QAAO,IAAA,EACrB,QAAA,EAAA;AAAA,UAAA,YAAA,IAAgB,IAAA,mBACfC,GAAAA,CAAC,IAAA,EAAA,EAAK,OAAM,WAAA,EAAY,IAAA,EAAK,YAAA,EAC1B,QAAA,EAAA,YAAA,EACH,CAAA,GACE,IAAA;AAAA,UACH,OAAA,IAAW,IAAA,mBACVA,GAAAA,CAAC,IAAA,EAAA,EAAK,MAAK,OAAA,EAAQ,MAAA,EAAO,UAAA,EACvB,QAAA,EAAA,OAAA,EACH,CAAA,GACE,IAAA;AAAA,UACH,UAAA,IAAc,IAAA,mBACbA,GAAAA,CAAC,IAAA,EAAA,EAAK,OAAM,WAAA,EAAY,IAAA,EAAK,YAAA,EAC1B,QAAA,EAAA,UAAA,EACH,CAAA,GACE;AAAA,SAAA,EACN,CAAA,GACE,IAAA;AAAA,QACH,CAAC,WAAA,IAAe,WAAA,CAAY,gBAAgB,CAAA,mBAC3CA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWD,OAAAA,CAAO,UAAA,EAAa,QAAA,EAAA,gBAAA,EAAiB,CAAA,GACpD;AAAA;AAAA;AAAA,GACN;AAEJ;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA;AClC7B,IAAMA,OAAAA,GAAS;AAAA,EACb,SAAS,GAAA,CAAI;AAAA,IACX,KAAA,EAAO,UAAA;AAAA,IACP,QAAA,EAAU,IAAA;AAAA,IACV,UAAA,EAAY,QAAA;AAAA,IACZ,IAAA,EAAM,GAAA;AAAA,IACN,EAAA,EAAI,KAAA;AAAA;AAAA;AAAA;AAAA,IAIJ,MAAA,EAAQ,EAAC,EAAA,EAAI,UAAA;AAAU,GACxB,CAAA;AAAA,EACD,iBAAiB,GAAA,CAAI;AAAA,IACnB,EAAA,EAAI,UAAA;AAAA,IACJ,KAAA,EAAO,IAAA;AAAA,IACP,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,MAAM,GAAA,CAAI;AAAA,IACR,UAAA,EAAY,CAAA;AAAA,IACZ,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,QAAA,EAAU;AAAA,GACX,CAAA;AAAA,EACD,WAAW,GAAA,CAAI;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,CAAA,EAAG,IAAA;AAAA,IACH,IAAA,EAAM,GAAA;AAAA,IACN,EAAA,EAAI,CAAA;AAAA,IACJ,EAAA,EAAI,KAAA;AAAA,IACJ,YAAA,EAAc,IAAA;AAAA,IACd,KAAA,EAAO,UAAA;AAAA,IACP,cAAA,EAAgB,MAAA;AAAA,IAChB,EAAA,EAAI,aAAA;AAAA,IACJ,WAAA,EAAa,CAAA;AAAA,IACb,MAAA,EAAQ,SAAA;AAAA,IACR,MAAA,EAAQ,EAAC,EAAA,EAAI,UAAA,EAAU;AAAA,IACvB,aAAA,EAAe;AAAA,MACb,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,SAAA;AAAA,MACd,aAAA,EAAe;AAAA;AACjB,GACD,CAAA;AAAA,EACD,mBAAmB,GAAA,CAAI;AAAA,IACrB,EAAA,EAAI,UAAA;AAAA,IACJ,KAAA,EAAO;AAAA,GACR,CAAA;AAAA,EACD,mBAAmB,GAAA,CAAI;AAAA,IACrB,OAAA,EAAS,GAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,aAAA,EAAe;AAAA,GAChB,CAAA;AAAA,EACD,WAAW,GAAA,CAAI;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,CAAA,EAAG,MAAA;AAAA,IACH,MAAA,EAAQ,SAAA;AAAA,IACR,YAAA,EAAc,IAAA;AAAA,IACd,MAAA,EAAQ,EAAC,EAAA,EAAI,UAAA,EAAU;AAAA,IACvB,aAAA,EAAe;AAAA,MACb,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,SAAA;AAAA,MACd,aAAA,EAAe;AAAA;AACjB,GACD,CAAA;AAAA,EACD,mBAAmB,GAAA,CAAI;AAAA,IACrB,OAAA,EAAS,GAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,aAAA,EAAe;AAAA,GAChB,CAAA;AAAA,EACD,SAAS,GAAA,CAAI;AAAA,IACX,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,kBAAA,EAAoB,WAAA;AAAA,IACpB,kBAAA,EAAoB,MAAA;AAAA,IACpB,wBAAA,EAA0B;AAAA,GAC3B,CAAA;AAAA,EACD,iBAAiB,GAAA,CAAI;AAAA,IACnB,SAAA,EAAW;AAAA,GACZ,CAAA;AAAA,EACD,cAAc,GAAA,CAAI;AAAA,IAChB,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,UAAA,EAAY,CAAA;AAAA,IACZ,CAAA,EAAG,GAAA;AAAA,IACH,CAAA,EAAG,GAAA;AAAA,IACH,YAAA,EAAc,IAAA;AAAA,IACd,MAAA,EAAQ,SAAA;AAAA,IACR,KAAA,EAAO,UAAA;AAAA,IACP,MAAA,EAAQ,EAAC,EAAA,EAAI,UAAA,EAAU;AAAA,IACvB,aAAA,EAAe;AAAA,MACb,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,SAAA;AAAA,MACd,aAAA,EAAe;AAAA;AACjB,GACD,CAAA;AAAA,EACD,mBAAmB,GAAA,CAAI;AAAA,IACrB,OAAA,EAAS,MAAA;AAAA,IACT,gBAAA,EAAkB,KAAA;AAAA,IAClB,kBAAA,EAAoB,oBAAA;AAAA,IACpB,kBAAA,EAAoB,MAAA;AAAA,IACpB,wBAAA,EAA0B;AAAA,GAC3B,CAAA;AAAA,EACD,mBAAmB,GAAA,CAAI;AAAA,IACrB,gBAAA,EAAkB;AAAA,GACnB,CAAA;AAAA,EACD,eAAe,GAAA,CAAI;AAAA,IACjB,QAAA,EAAU,QAAA;AAAA,IACV,EAAA,EAAI;AAAA,GACL;AACH,CAAA;AAOO,SAAS,WAAA,CAAY;AAAA,EAC1B,EAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,eAAe,iBAAA,GAAoB,KAAA;AAAA,EACnC,iBAAA,GAAoB,IAAA;AAAA,EACpB,UAAA,GAAa,KAAA;AAAA,EACb,UAAA,GAAa,KAAA;AAAA,EACb,KAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAAwC;AACtC,EAAA,MAAM,aAAA,GAAgB,iBAAiB,EAAE,CAAA;AACzC,EAAA,MAAM,EAAC,cAAA,EAAc,GAAI,iBAAA,EAAkB;AAC3C,EAAA,MAAM,EAAC,WAAA,EAAW,GAAI,kBAAA,EAAmB;AACzC,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIG,SAAS,iBAAiB,CAAA;AAC9D,EAAA,MAAM,aAAa,KAAA,EAAM;AAEzB,EAAA,MAAM,WAAA,GAAc,YAAY,QAAQ,CAAA;AACxC,EAAA,MAAM,eAAe,WAAA,IAAe,iBAAA;AACpC,EAAA,MAAM,gBAAA,GAAmB,IAAA,IAAQ,IAAA,IAAQ,OAAA,IAAW,IAAA;AAEpD,EAAA,MAAM,cAAA,GAAiBC,YAAY,MAAM;AACvC,IAAA,aAAA,CAAc,CAAA,IAAA,KAAQ,CAAC,IAAI,CAAA;AAAA,EAC7B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,cAA8C,CAAA,KAAA,KAAS;AAC3D,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA;AAAA,IACF;AACA,IAAA,OAAA,GAAU,KAAK,CAAA;AACf,IAAA,cAAA,EAAe;AAAA,EACjB,CAAA;AAEA,EAAA,MAAM,WACJ,IAAA,IAAQ,IAAA,mBACNH,GAAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAWD,OAAAA,CAAO,IAAA,EACzC,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAK,MAAY,IAAA,EAAK,IAAA,EAAK,GAC9B,CAAA,GACE,MAAA;AAGN,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,MAAM,mBAAA,GAAsB,EAAA;AAAA,MAC1BD,OAAAA,CAAO,SAAA;AAAA,MACP,cAAcA,OAAAA,CAAO,iBAAA;AAAA,MACrB,cAAcA,OAAAA,CAAO,iBAAA;AAAA,MACrB;AAAA,KACF;AAEA,IAAA,IAAI,IAAA,IAAQ,IAAA,IAAQ,CAAC,UAAA,EAAY;AAC/B,MAAA,uBACEC,GAAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,cAAA,EAAc,aAAa,MAAA,GAAS,MAAA;AAAA,UACpC,YAAA,EAAY,KAAA;AAAA,UACZ,SAAA,EAAW,mBAAA;AAAA,UACX,aAAA,EAAa,UAAA;AAAA,UACb,IAAA;AAAA,UACA,OAAA,EAAS,WAAA;AAAA,UACT,GAAA;AAAA,UACA,KAAA;AAAA,UACA,EAAA,EAAI,aAAA,KAAkB,GAAA,GAAM,MAAA,GAAY,IAAA;AAAA,UACvC,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,cAAA,EAAc,aAAa,MAAA,GAAS,MAAA;AAAA,QACpC,YAAA,EAAY,KAAA;AAAA,QACZ,SAAA,EAAW,mBAAA;AAAA,QACX,aAAA,EAAa,UAAA;AAAA,QACb,QAAA,EAAU,UAAA;AAAA,QACV,OAAA,EAAS,WAAA;AAAA,QACT,GAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACJ,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AAIA,EAAA,MAAM,WAAA,GAAc,+BAClBA,GAAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAGD,QAAO,OAAA,EAAS,UAAA,IAAcA,QAAO,eAAe,CAAA,EACtE,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAK,MAAM,WAAA,EAAa,IAAA,EAAK,IAAA,EAAK,CAAA,EACrC,CAAA,GACE,IAAA;AAEJ,EAAA,MAAM,iBAAA,GAAoB,WAAA,CAAY,QAAQ,CAAA,mBAC5CA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACTD,OAAAA,CAAO,iBAAA;AAAA,QACP,YAAA,IAAgB,CAAC,UAAA,IAAcA,OAAAA,CAAO;AAAA,OACxC;AAAA,MACA,EAAA,EAAI,UAAA;AAAA,MACJ,IAAA,EAAK,OAAA;AAAA,MACL,0BAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,OAAAA,CAAO,eAAgB,QAAA,EAAS;AAAA;AAAA,GAClD,GACE,IAAA;AAGJ,EAAA,IAAI,YAAA,IAAgB,CAAC,gBAAA,EAAkB;AACrC,IAAA,uBACEE,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,eAAA,EAAe,UAAA;AAAA,UACf,eAAA,EAAe,UAAA;AAAA,UACf,SAAA,EAAW,EAAA;AAAA,YACTD,OAAAA,CAAO,SAAA;AAAA,YACP,cAAcA,OAAAA,CAAO,eAAA;AAAA,YACrB,cAAcA,OAAAA,CAAO,iBAAA;AAAA,YACrB;AAAA,WACF;AAAA,UACA,aAAA,EAAa,UAAA;AAAA,UACb,QAAA,EAAU,UAAA;AAAA,UACV,OAAA,EAAS,cAAA;AAAA,UACT,GAAA;AAAA,UACA,KAAA;AAAA,UACA,IAAA,EAAK,QAAA;AAAA,UACL,QAAA,kBAAAC,GAAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAG,MAAA;AAAA,cACH,WAAWD,OAAAA,CAAO,OAAA;AAAA,cAClB,UAAA,EAAY,WAAA;AAAA,cACZ,KAAA;AAAA,cACA,YAAA,EAAc;AAAA;AAAA;AAChB;AAAA,OACF;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAGA,EAAA,IAAI,gBAAgB,gBAAA,EAAkB;AACpC,IAAA,uBACEE,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,cAAA,EAAc,aAAa,MAAA,GAAS,MAAA;AAAA,UACpC,SAAA,EAAW,EAAA;AAAA,YACTD,OAAAA,CAAO,OAAA;AAAA,YACP,cAAcA,OAAAA,CAAO,eAAA;AAAA,YACrB;AAAA,WACF;AAAA,UACA,aAAA,EAAa,UAAA;AAAA,UACb,UAAA;AAAA,UACA,IAAA,EAAM,aAAa,MAAA,GAAY,IAAA;AAAA,UAC/B,UAAA;AAAA,UACA,KAAA;AAAA,UACA,aAAA,EAAe,EAAA;AAAA,UACf,OAAA,EAAS,WAAA;AAAA,UACT,GAAA;AAAA,UACA,YAAA,EAAc,QAAA;AAAA,UACd,KAAA;AAAA,UACA,iCACEC,GAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,eAAA,EAAe,UAAA;AAAA,cACf,eAAA,EAAe,UAAA;AAAA,cACf,cAAY,UAAA,GAAa,CAAA,SAAA,EAAY,KAAK,CAAA,CAAA,GAAK,UAAU,KAAK,CAAA,CAAA;AAAA,cAC9D,WAAWD,OAAAA,CAAO,YAAA;AAAA,cAClB,OAAA,EAAS,cAAA;AAAA,cACT,IAAA,EAAK,QAAA;AAAA,cACJ,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,OAEJ;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAGA,EAAA,uBACEE,IAAAA,CAAAG,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAJ,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,cAAA,EAAc,aAAa,MAAA,GAAS,MAAA;AAAA,QACpC,SAAA,EAAW,EAAA;AAAA,UACTD,OAAAA,CAAO,OAAA;AAAA,UACP,cAAcA,OAAAA,CAAO,eAAA;AAAA,UACrB;AAAA,SACF;AAAA,QACA,aAAA,EAAa,UAAA;AAAA,QACb,UAAA;AAAA,QACA,IAAA,EAAM,aAAa,MAAA,GAAY,IAAA;AAAA,QAC/B,UAAA;AAAA,QACA,KAAA;AAAA,QACA,aAAA,EAAe,EAAA;AAAA,QACf,OAAA,EAAS,WAAA;AAAA,QACT,GAAA;AAAA,QACA,YAAA,EAAc,QAAA;AAAA,QACd;AAAA;AAAA,KACF;AAAA,IACC;AAAA,GAAA,EACH,CAAA;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;ACrY1B,IAAMA,OAAAA,GAAS;AAAA,EACb,MAAM,GAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,eAAe,GAAA,CAAI;AAAA,IACjB,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,QAAQ,GAAA,CAAI;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,EAAA,EAAI,GAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,gBAAgB,GAAA,CAAI;AAAA,IAClB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACP,CAAA;AAAA,EACD,YAAY,GAAA,CAAI;AAAA,IACd,UAAA,EAAY,CAAA;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,OAAO,GAAA,CAAI;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK;AAAA,GACN;AACH,CAAA;AAEO,SAAS,cAAA,CAAe;AAAA,EAC7B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA;AAAA,EACA,cAAA,GAAiB,KAAA;AAAA,EACjB,GAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA2C;AACzC,EAAA,MAAM,EAAC,WAAA,EAAW,GAAI,kBAAA,EAAmB;AACzC,EAAA,MAAM,KAAKM,KAAAA,EAAM;AACjB,EAAA,MAAM,OAAA,GAAU,GAAG,EAAE,CAAA,MAAA,CAAA;AACrB,EAAA,MAAM,mBAAmB,cAAA,IAAkB,WAAA;AAC3C,EAAA,MAAM,yBACJJ,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWF,QAAO,MAAA,EACrB,QAAA,EAAA;AAAA,oBAAAE,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWF,OAAAA,CAAO,cAAA,EACtB,QAAA,EAAA;AAAA,sBAAAC,GAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,MAAA;AAAA,UACH,KAAA,EAAM,WAAA;AAAA,UACN,aAAA,EAAa,MAAA;AAAA,UACb,EAAA,EAAI,OAAA;AAAA,UACJ,IAAA,EAAK,YAAA;AAAA,UACL,MAAA,EAAO,UAAA;AAAA,UACN,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,MACC,QAAA,IAAY,IAAA,mBACXA,GAAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAG,MAAA,EAAO,KAAA,EAAM,WAAA,EAAY,IAAA,EAAK,YAAA,EACpC,QAAA,EAAA,QAAA,EACH,CAAA,GACE;AAAA,KAAA,EACN,CAAA;AAAA,IACC,WAAA,CAAY,UAAU,CAAA,mBACrBA,GAAAA,CAAC,UAAK,SAAA,EAAWD,OAAAA,CAAO,UAAA,EAAa,QAAA,EAAA,UAAA,EAAW,CAAA,GAC9C;AAAA,GAAA,EACN,CAAA;AAGF,EAAA,uBACEE,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,iBAAA,EAAiB,OAAA;AAAA,MACjB,SAAA,EAAW,EAAA;AAAA,QACTF,OAAAA,CAAO,IAAA;AAAA,QACP,eAAeA,OAAAA,CAAO,aAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,KAAA;AAAA,MACC,QAAA,EAAA;AAAA,QAAA,gBAAA,mBAAmBC,GAAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,MAAA,EAAO,CAAA,GAAoB,MAAA;AAAA,wBAChEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,OAAAA,CAAO,OAAQ,QAAA,EAAS;AAAA;AAAA;AAAA,GAC1C;AAEJ;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA","file":"chunk-SOCSUNIM.js","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const sideNavRecipe = cva({\n base: {\n display: 'flex',\n flexDirection: 'column',\n h: '100%',\n w: '260px',\n bg: 'inherit',\n overflow: 'hidden',\n },\n variants: {\n isCollapsed: {\n true: {\n w: '12',\n },\n false: {},\n },\n mode: {\n default: {},\n topbar: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n h: '12',\n w: '100%',\n },\n },\n },\n defaultVariants: {\n isCollapsed: false,\n mode: 'default',\n },\n});\n\nexport type SideNavVariants = RecipeVariantProps<typeof sideNavRecipe>;\n","import {createContext, use} from 'react';\n\nexport type SideNavRenderMode =\n | 'default'\n | 'topbar'\n | 'drawer'\n | 'drawer-content';\n\nexport interface SideNavCollapseState {\n isCollapsed: boolean;\n isCollapsible: boolean;\n toggle: () => void;\n}\n\nexport const SideNavRenderContext = createContext<SideNavRenderMode>('default');\nSideNavRenderContext.displayName = 'SideNavRenderContext';\nexport const SideNavCollapseContext = createContext<SideNavCollapseState>({\n isCollapsed: false,\n isCollapsible: false,\n toggle: () => {},\n});\nSideNavCollapseContext.displayName = 'SideNavCollapseContext';\n\nexport function useSideNavRenderMode(): SideNavRenderMode {\n return use(SideNavRenderContext);\n}\n\nexport function useSideNavCollapse(): SideNavCollapseState {\n return use(SideNavCollapseContext);\n}\n","import {ChevronLeft, ChevronRight} from 'lucide-react';\nimport {css} from 'styled-system/css';\nimport {Button} from '../../Button';\nimport {useSideNavCollapse} from '../SideNavContext';\n\nconst styles = {\n expanded: css({\n ms: '-2',\n }),\n};\n\n/**\n * Toggle button for collapsing and expanding the SideNav.\n * Reads collapse state from context when placed inside a SideNav.\n */\nexport function SideNavCollapseButton(): React.JSX.Element | null {\n const {isCollapsed, isCollapsible, toggle} = useSideNavCollapse();\n\n if (!isCollapsible) {\n return null;\n }\n\n const tooltipLabel = isCollapsed ? 'Expand sidebar' : 'Collapse sidebar';\n\n return (\n <Button\n className={isCollapsed ? undefined : styles.expanded}\n icon={isCollapsed ? ChevronRight : ChevronLeft}\n isIconOnly\n label={tooltipLabel}\n onClick={toggle}\n size=\"sm\"\n tooltip={tooltipLabel}\n variant=\"ghost\"\n />\n );\n}\n\nSideNavCollapseButton.displayName = 'SideNavCollapseButton';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useCallback, useMemo, useState} from 'react';\nimport {css} from 'styled-system/css';\nimport {MobileNav} from '../../internal/MobileNav';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {sideNavRecipe} from './SideNav.recipe';\nimport {SideNavCollapseContext, useSideNavRenderMode} from './SideNavContext';\nimport {SideNavCollapseButton} from './internal/SideNavCollapseButton';\n\nexport interface SideNavProps {\n /**\n * Navigation item children rendered in the scrollable area.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the nav element.\n */\n className?: string;\n /**\n * Test ID applied to the nav element.\n */\n 'data-testid'?: string;\n /**\n * Content rendered in the sticky bottom section.\n */\n footer?: ReactNode;\n /**\n * Icon actions rendered alongside the footer.\n */\n footerIcons?: ReactNode;\n /**\n * Content rendered at the top of the nav (e.g. a logo or title).\n */\n header?: ReactNode;\n /**\n * Whether the nav can be collapsed to an icon-only toolbar.\n * @default false\n */\n isCollapsible?: boolean;\n /**\n * Ref forwarded to the nav element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the nav element.\n */\n style?: CSSProperties;\n /**\n * Non-scrollable content rendered below the header.\n */\n topContent?: ReactNode;\n}\n\nconst styles = {\n stickyTop: css({\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n p: '2',\n gap: '2',\n }),\n scrollable: css({\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n px: '2',\n }),\n scrollableCollapsed: css({\n flex: 'none',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n }),\n stickyBottom: css({\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n mt: 'auto',\n p: '2',\n gap: '2',\n borderBlockStartWidth: 'default',\n borderBlockStartStyle: 'solid',\n borderBlockStartColor: 'border',\n }),\n footerRow: css({\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n }),\n footerRowCollapsed: css({\n flexDirection: 'column-reverse',\n alignItems: 'center',\n }),\n footerIcons: css({\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n ms: 'auto',\n }),\n footerIconsCollapsed: css({\n flexDirection: 'column',\n alignItems: 'center',\n ms: '0',\n }),\n topbarIcons: css({\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n ms: 'auto',\n }),\n};\n\n/**\n * Vertical side navigation panel with optional collapsing support.\n * Adapts to AppShell render modes (inline, drawer, topbar).\n */\nexport function SideNav({\n children,\n className,\n isCollapsible = false,\n 'data-testid': dataTestId,\n footer,\n footerIcons,\n header,\n ref,\n style,\n topContent,\n}: SideNavProps): React.JSX.Element {\n const renderMode = useSideNavRenderMode();\n const [isCollapsed, setIsCollapsed] = useState(false);\n const toggle = useCallback(() => {\n setIsCollapsed(prev => !prev);\n }, []);\n const collapseContext = useMemo(\n () => ({isCollapsed, isCollapsible, toggle}),\n [isCollapsed, isCollapsible, toggle],\n );\n\n if (renderMode === 'topbar') {\n return (\n <div\n className={cx(sideNavRecipe({mode: 'topbar'}), className)}\n data-testid={dataTestId}\n style={style}>\n {header}\n <div className={styles.topbarIcons}>{footerIcons}</div>\n </div>\n );\n }\n\n if (renderMode === 'drawer') {\n return (\n <MobileNav data-testid={dataTestId} header={header}>\n {topContent}\n {children}\n {footer}\n {footerIcons}\n </MobileNav>\n );\n }\n\n if (renderMode === 'drawer-content') {\n return (\n <>\n {topContent}\n {children}\n {footer}\n {footerIcons}\n </>\n );\n }\n\n return (\n <SideNavCollapseContext value={collapseContext}>\n <nav\n aria-label=\"Side navigation\"\n className={cx(sideNavRecipe({isCollapsed}), className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"navigation\"\n style={style}>\n {isReactNode(header) || (!isCollapsed && isReactNode(topContent)) ? (\n <div className={styles.stickyTop}>\n {header}\n {!isCollapsed ? topContent : null}\n </div>\n ) : null}\n <div\n className={cx(\n styles.scrollable,\n isCollapsed && styles.scrollableCollapsed,\n )}>\n {children}\n </div>\n {isReactNode(footer) || isReactNode(footerIcons) || isCollapsible ? (\n <div className={styles.stickyBottom}>\n {footer}\n <div\n className={cx(\n styles.footerRow,\n isCollapsed && styles.footerRowCollapsed,\n )}>\n {isCollapsible ? <SideNavCollapseButton /> : null}\n {isReactNode(footerIcons) ? (\n <div\n className={cx(\n styles.footerIcons,\n isCollapsed && styles.footerIconsCollapsed,\n )}>\n {footerIcons}\n </div>\n ) : null}\n </div>\n </div>\n ) : null}\n </nav>\n </SideNavCollapseContext>\n );\n}\n\nSideNav.displayName = 'SideNav';\n","/* eslint-disable @eslint-react/static-components -- intentional polymorphism via as prop */\n\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport type {LinkComponent} from '../Link';\nimport {useLinkComponent} from '../Link';\nimport {Text} from '../Text';\nimport {useSideNavCollapse} from './SideNavContext';\n\nexport interface SideNavHeadingProps {\n as?: LinkComponent;\n className?: string;\n 'data-testid'?: string;\n headerEndContent?: ReactNode;\n heading?: string;\n headingHref?: string;\n href?: string;\n logo?: ReactNode;\n ref?: Ref<HTMLElement>;\n style?: CSSProperties;\n subheading?: string;\n superheading?: string;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n minH: '8',\n px: '2',\n color: 'fg',\n textDecoration: 'none',\n }),\n collapsed: css({\n justifyContent: 'center',\n px: 0,\n }),\n logo: css({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n }),\n text: css({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minW: 0,\n }),\n endContent: css({\n ms: 'auto',\n flexShrink: 0,\n }),\n};\n\nexport function SideNavHeading({\n as,\n className,\n 'data-testid': dataTestId,\n headerEndContent,\n heading,\n headingHref,\n href,\n logo,\n ref,\n style,\n subheading,\n superheading,\n}: SideNavHeadingProps): React.JSX.Element | null {\n const LinkComponent = useLinkComponent(as);\n const {isCollapsed} = useSideNavCollapse();\n const resolvedHref = headingHref ?? href;\n const Element = resolvedHref != null ? LinkComponent : 'div';\n\n if (isCollapsed && !isReactNode(logo)) {\n return null;\n }\n\n return (\n <Element\n aria-label={isCollapsed && resolvedHref != null ? heading : undefined}\n className={cx(styles.root, isCollapsed && styles.collapsed, className)}\n data-testid={dataTestId}\n href={resolvedHref}\n ref={ref as Ref<HTMLAnchorElement & HTMLDivElement>}\n style={style}\n to={Element === 'a' ? undefined : resolvedHref}>\n {isReactNode(logo) ? <span className={styles.logo}>{logo}</span> : null}\n {!isCollapsed ? (\n <span className={styles.text}>\n {superheading != null ? (\n <Text color=\"secondary\" type=\"supporting\">\n {superheading}\n </Text>\n ) : null}\n {heading != null ? (\n <Text type=\"large\" weight=\"semibold\">\n {heading}\n </Text>\n ) : null}\n {subheading != null ? (\n <Text color=\"secondary\" type=\"supporting\">\n {subheading}\n </Text>\n ) : null}\n </span>\n ) : null}\n {!isCollapsed && isReactNode(headerEndContent) ? (\n <span className={styles.endContent}>{headerEndContent}</span>\n ) : null}\n </Element>\n );\n}\n\nSideNavHeading.displayName = 'SideNavHeading';\n","/* eslint-disable @eslint-react/static-components -- intentional polymorphism via as prop */\n\nimport {ChevronDown} from 'lucide-react';\nimport type {CSSProperties, MouseEventHandler, ReactNode, Ref} from 'react';\nimport {useCallback, useId, useState} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useAppShellMobile} from '../AppShell/AppShellMobileContext';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Item} from '../Item';\nimport type {LinkComponent} from '../Link';\nimport {useLinkComponent} from '../Link';\nimport {useSideNavCollapse} from './SideNavContext';\n\nexport interface SideNavItemProps {\n /**\n * Custom link component used when href is set.\n */\n as?: LinkComponent;\n /**\n * Nested sub-items rendered below this item.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the item.\n */\n className?: string;\n /**\n * Test ID applied to the item.\n */\n 'data-testid'?: string;\n /**\n * Content rendered at the end of the item (e.g. a badge).\n */\n endContent?: ReactNode;\n /**\n * Link destination. When set, the item renders as a link.\n */\n href?: string;\n /**\n * Icon rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the item can expand/collapse its children.\n * @default false\n */\n isCollapsible?: boolean;\n /**\n * Whether the item's children are initially expanded.\n * @default true\n */\n isDefaultExpanded?: boolean;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the item is currently selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Accessible item label, also used as visible text.\n */\n label: string;\n /**\n * Click handler for the item.\n */\n onClick?: MouseEventHandler<HTMLElement>;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the item.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n navItem: css({\n color: 'fg.muted',\n fontSize: 'sm',\n fontWeight: 'medium',\n minH: '8',\n py: '0.5',\n // Override Item's default `bg.subtle` hover, which is invisible when the\n // SideNav sits on the AppShell's `bg.subtle` surface. Match TopNavItem's\n // darker `bg.hover` so the hover is visible in both navs.\n _hover: {bg: 'bg.hover'},\n }),\n navItemSelected: css({\n bg: 'bg.hover',\n color: 'fg',\n fontWeight: 'semibold',\n }),\n icon: css({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: 'var(--silver-sizes-icon-md)',\n }),\n collapsed: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '10',\n minH: '8',\n px: 0,\n py: '1.5',\n borderRadius: 'md',\n color: 'fg.muted',\n textDecoration: 'none',\n bg: 'transparent',\n borderWidth: 0,\n cursor: 'pointer',\n _hover: {bg: 'bg.hover'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n collapsedSelected: css({\n bg: 'bg.hover',\n color: 'fg',\n }),\n collapsedDisabled: css({\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n }),\n toggleRow: css({\n display: 'flex',\n w: '100%',\n cursor: 'pointer',\n borderRadius: 'md',\n _hover: {bg: 'bg.hover'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n toggleRowDisabled: css({\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n }),\n chevron: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n transitionProperty: 'transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n }),\n chevronExpanded: css({\n transform: 'rotate(180deg)',\n }),\n toggleButton: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n w: '7',\n h: '7',\n borderRadius: 'md',\n cursor: 'pointer',\n color: 'fg.muted',\n _hover: {bg: 'bg.hover'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n childrenContainer: css({\n display: 'grid',\n gridTemplateRows: '1fr',\n transitionProperty: 'grid-template-rows',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n }),\n childrenCollapsed: css({\n gridTemplateRows: '0fr',\n }),\n childrenInner: css({\n overflow: 'hidden',\n ps: '6',\n }),\n};\n\n/**\n * A single navigation item inside a SideNav. Renders as a link when\n * `href` is provided, or a button otherwise. Supports nested sub-items\n * via `children` with optional expand/collapse behavior.\n */\nexport function SideNavItem({\n as,\n children,\n className,\n 'data-testid': dataTestId,\n endContent,\n href,\n icon,\n isCollapsible: isItemCollapsible = false,\n isDefaultExpanded = true,\n isDisabled = false,\n isSelected = false,\n label,\n onClick,\n ref,\n style,\n}: SideNavItemProps): React.JSX.Element {\n const LinkComponent = useLinkComponent(as);\n const {closeMobileNav} = useAppShellMobile();\n const {isCollapsed} = useSideNavCollapse();\n const [isExpanded, setIsExpanded] = useState(isDefaultExpanded);\n const childrenId = useId();\n\n const hasChildren = isReactNode(children);\n const isExpandable = hasChildren && isItemCollapsible;\n const hasPrimaryAction = href != null || onClick != null;\n\n const toggleExpanded = useCallback(() => {\n setIsExpanded(prev => !prev);\n }, []);\n\n const handleClick: MouseEventHandler<HTMLElement> = event => {\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n onClick?.(event);\n closeMobileNav();\n };\n\n const iconSlot =\n icon != null ? (\n <span aria-hidden=\"true\" className={styles.icon}>\n <Icon icon={icon} size=\"sm\" />\n </span>\n ) : undefined;\n\n // --- Collapsed sidebar: icon-only rendering ---\n if (isCollapsed) {\n const collapsedClassNames = cx(\n styles.collapsed,\n isSelected && styles.collapsedSelected,\n isDisabled && styles.collapsedDisabled,\n className,\n );\n\n if (href != null && !isDisabled) {\n return (\n <LinkComponent\n aria-current={isSelected ? 'page' : undefined}\n aria-label={label}\n className={collapsedClassNames}\n data-testid={dataTestId}\n href={href}\n onClick={handleClick}\n ref={ref as Ref<HTMLAnchorElement>}\n style={style}\n to={LinkComponent === 'a' ? undefined : href}>\n {iconSlot}\n </LinkComponent>\n );\n }\n\n return (\n <button\n aria-current={isSelected ? 'page' : undefined}\n aria-label={label}\n className={collapsedClassNames}\n data-testid={dataTestId}\n disabled={isDisabled}\n onClick={handleClick}\n ref={ref as Ref<HTMLButtonElement>}\n style={style}\n type=\"button\">\n {iconSlot}\n </button>\n );\n }\n\n // --- Expanded sidebar ---\n\n const chevronSlot = isExpandable ? (\n <span className={cx(styles.chevron, isExpanded && styles.chevronExpanded)}>\n <Icon icon={ChevronDown} size=\"sm\" />\n </span>\n ) : null;\n\n const childrenContainer = isReactNode(children) ? (\n <div\n className={cx(\n styles.childrenContainer,\n isExpandable && !isExpanded && styles.childrenCollapsed,\n )}\n id={childrenId}\n role=\"group\">\n <div className={styles.childrenInner}>{children}</div>\n </div>\n ) : null;\n\n // Collapsible WITHOUT primary action: whole row toggles\n if (isExpandable && !hasPrimaryAction) {\n return (\n <>\n <button\n aria-controls={childrenId}\n aria-expanded={isExpanded}\n className={cx(\n styles.toggleRow,\n isSelected && styles.navItemSelected,\n isDisabled && styles.toggleRowDisabled,\n className,\n )}\n data-testid={dataTestId}\n disabled={isDisabled}\n onClick={toggleExpanded}\n ref={ref as Ref<HTMLButtonElement>}\n style={style}\n type=\"button\">\n <Item\n as=\"span\"\n className={styles.navItem}\n endContent={chevronSlot}\n label={label}\n startContent={iconSlot}\n />\n </button>\n {childrenContainer}\n </>\n );\n }\n\n // Collapsible WITH primary action: split-action (link + chevron)\n if (isExpandable && hasPrimaryAction) {\n return (\n <>\n <Item\n aria-current={isSelected ? 'page' : undefined}\n className={cx(\n styles.navItem,\n isSelected && styles.navItemSelected,\n className,\n )}\n data-testid={dataTestId}\n endContent={endContent}\n href={isDisabled ? undefined : href}\n isDisabled={isDisabled}\n label={label}\n linkComponent={as}\n onClick={handleClick}\n ref={ref}\n startContent={iconSlot}\n style={style}\n trailingContent={\n <button\n aria-controls={childrenId}\n aria-expanded={isExpanded}\n aria-label={isExpanded ? `Collapse ${label}` : `Expand ${label}`}\n className={styles.toggleButton}\n onClick={toggleExpanded}\n type=\"button\">\n {chevronSlot}\n </button>\n }\n />\n {childrenContainer}\n </>\n );\n }\n\n // Leaf item (no collapsible children): compose Item directly\n return (\n <>\n <Item\n aria-current={isSelected ? 'page' : undefined}\n className={cx(\n styles.navItem,\n isSelected && styles.navItemSelected,\n className,\n )}\n data-testid={dataTestId}\n endContent={endContent}\n href={isDisabled ? undefined : href}\n isDisabled={isDisabled}\n label={label}\n linkComponent={as}\n onClick={handleClick}\n ref={ref}\n startContent={iconSlot}\n style={style}\n />\n {childrenContainer}\n </>\n );\n}\n\nSideNavItem.displayName = 'SideNavItem';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useId} from 'react';\nimport {css} from 'styled-system/css';\nimport {VisuallyHidden} from '../../internal';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {Text} from '../Text';\nimport {useSideNavCollapse} from './SideNavContext';\n\nexport interface SideNavSectionProps {\n children: ReactNode;\n className?: string;\n 'data-testid'?: string;\n endContent?: ReactNode;\n isHeaderHidden?: boolean;\n ref?: Ref<HTMLDivElement>;\n style?: CSSProperties;\n subtitle?: string;\n title: string;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n flexDirection: 'column',\n py: '1',\n }),\n rootCollapsed: css({\n py: '0',\n }),\n header: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n px: '2',\n py: '1',\n }),\n titleContainer: css({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minW: 0,\n }),\n endContent: css({\n flexShrink: 0,\n display: 'flex',\n alignItems: 'center',\n }),\n items: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n }),\n};\n\nexport function SideNavSection({\n children,\n className,\n 'data-testid': dataTestId,\n endContent,\n isHeaderHidden = false,\n ref,\n style,\n subtitle,\n title,\n}: SideNavSectionProps): React.JSX.Element {\n const {isCollapsed} = useSideNavCollapse();\n const id = useId();\n const titleId = `${id}-title`;\n const shouldHideHeader = isHeaderHidden || isCollapsed;\n const header = (\n <div className={styles.header}>\n <span className={styles.titleContainer}>\n <Text\n as=\"span\"\n color=\"secondary\"\n data-testid={undefined}\n id={titleId}\n type=\"supporting\"\n weight=\"semibold\">\n {title}\n </Text>\n {subtitle != null ? (\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n {subtitle}\n </Text>\n ) : null}\n </span>\n {isReactNode(endContent) ? (\n <span className={styles.endContent}>{endContent}</span>\n ) : null}\n </div>\n );\n\n return (\n <div\n aria-labelledby={titleId}\n className={cx(\n styles.root,\n isCollapsed && styles.rootCollapsed,\n className,\n )}\n data-testid={dataTestId}\n ref={ref}\n role=\"group\"\n style={style}>\n {shouldHideHeader ? <VisuallyHidden>{header}</VisuallyHidden> : header}\n <div className={styles.items}>{children}</div>\n </div>\n );\n}\n\nSideNavSection.displayName = 'SideNavSection';\n"]}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkWMXIUOOU_cjs = require('./chunk-WMXIUOOU.cjs');
4
- var chunk5QPM5LUS_cjs = require('./chunk-5QPM5LUS.cjs');
3
+ var chunkGYVWTH3U_cjs = require('./chunk-GYVWTH3U.cjs');
4
+ var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
5
5
  var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
 
9
9
  // src/components/Progress/Progress.recipe.ts
10
- var progressRecipe = chunk5QPM5LUS_cjs.sva({
10
+ var progressRecipe = chunkZ6RT3WPE_cjs.sva({
11
11
  slots: ["container", "header", "label", "valueLabel", "track", "fill"],
12
12
  base: {
13
13
  container: {
@@ -130,9 +130,9 @@ function Progress({
130
130
  style,
131
131
  children: [
132
132
  !isLabelHidden || showValueLabel ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.header, children: [
133
- isLabelHidden ? /* @__PURE__ */ jsxRuntime.jsx(chunkWMXIUOOU_cjs.VisuallyHidden, { id: labelId, children: label }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.label, id: labelId, children: label }),
133
+ isLabelHidden ? /* @__PURE__ */ jsxRuntime.jsx(chunkGYVWTH3U_cjs.VisuallyHidden, { id: labelId, children: label }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.label, id: labelId, children: label }),
134
134
  showValueLabel ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.valueLabel, children: valueText }) : null
135
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkWMXIUOOU_cjs.VisuallyHidden, { id: labelId, children: label }),
135
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkGYVWTH3U_cjs.VisuallyHidden, { id: labelId, children: label }),
136
136
  /* @__PURE__ */ jsxRuntime.jsx(
137
137
  "div",
138
138
  {
@@ -160,5 +160,5 @@ function Progress({
160
160
  Progress.displayName = "Progress";
161
161
 
162
162
  exports.Progress = Progress;
163
- //# sourceMappingURL=chunk-BS55BG2U.cjs.map
164
- //# sourceMappingURL=chunk-BS55BG2U.cjs.map
163
+ //# sourceMappingURL=chunk-SR5VVJ5Y.cjs.map
164
+ //# sourceMappingURL=chunk-SR5VVJ5Y.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Progress/Progress.recipe.ts","../src/components/Progress/Progress.tsx"],"names":["sva","useId","jsxs","cx","jsx","VisuallyHidden"],"mappings":"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","file":"chunk-BS55BG2U.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const progressRecipe = sva({\n slots: ['container', 'header', 'label', 'valueLabel', 'track', 'fill'],\n base: {\n container: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1',\n w: 'full',\n minW: '12',\n },\n header: {\n display: 'flex',\n alignItems: 'baseline',\n justifyContent: 'space-between',\n gap: '2',\n },\n label: {\n color: 'fg',\n fontFamily: 'body',\n fontSize: 'sm',\n fontWeight: 'medium',\n lineHeight: 'normal',\n },\n valueLabel: {\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n lineHeight: 'normal',\n whiteSpace: 'nowrap',\n },\n track: {\n w: 'full',\n h: '2',\n overflow: 'hidden',\n borderRadius: 'full',\n bg: 'bg.hover',\n },\n fill: {\n h: 'full',\n borderRadius: 'full',\n transitionProperty: 'width',\n transitionDuration: 'normal',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0s',\n },\n },\n },\n variants: {\n variant: {\n error: {fill: {bg: 'status.error.solid'}},\n info: {fill: {bg: 'status.info.solid'}},\n neutral: {fill: {bg: 'status.neutral.solid'}},\n success: {fill: {bg: 'status.success.solid'}},\n warning: {fill: {bg: 'status.warning.solid'}},\n },\n isDisabled: {\n true: {\n fill: {bg: 'status.disabled.solid'},\n label: {color: 'fg.disabled'},\n valueLabel: {color: 'fg.disabled'},\n },\n },\n isIndeterminate: {\n true: {\n fill: {\n w: '40%',\n animation: 'pulse 1.5s ease-in-out infinite',\n transitionProperty: 'none',\n transitionDuration: '0s',\n '@media (prefers-reduced-motion: reduce)': {\n animation: 'pulse 3s ease-in-out infinite',\n },\n },\n },\n },\n },\n defaultVariants: {\n variant: 'info',\n isDisabled: false,\n isIndeterminate: false,\n },\n});\n\nexport type ProgressVariants = RecipeVariantProps<typeof progressRecipe>;\n","import {useId, type CSSProperties, type Ref} from 'react';\nimport {VisuallyHidden} from '../../internal/VisuallyHidden';\nimport {cx} from '../../internal/cx';\nimport {progressRecipe} from './Progress.recipe';\n\nexport type ProgressVariant =\n | 'error'\n | 'info'\n | 'neutral'\n | 'success'\n | 'warning';\n\nexport interface ProgressProps {\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 * Custom formatter for the value label and aria-valuetext.\n */\n formatValueLabel?: (value: number, max: number) => string;\n /**\n * Whether to display the formatted value beside the label.\n * @default false\n */\n hasValueLabel?: boolean;\n /**\n * Whether the progress bar is visually disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to render an indeterminate loading indicator.\n * @default false\n */\n isIndeterminate?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Accessible label for the progress bar.\n */\n label: string;\n /**\n * Maximum progress value.\n * @default 100\n */\n max?: number;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * ARIA role for the progress indicator. Use 'progressbar' for task\n * completion and 'meter' for static gauges.\n * @default 'progressbar'\n */\n role?: 'meter' | 'progressbar';\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Current progress value.\n * @default 0\n */\n value?: number;\n /**\n * Semantic color variant.\n * @default 'info'\n */\n variant?: ProgressVariant;\n}\n\nfunction defaultFormatValueLabel(value: number, max: number): string {\n if (max <= 0) {\n return '0%';\n }\n return `${Math.round((value / max) * 100)}%`;\n}\n\n/**\n * A progress bar that communicates determinate or indeterminate loading state.\n */\nexport function Progress({\n className,\n 'data-testid': dataTestId,\n formatValueLabel = defaultFormatValueLabel,\n hasValueLabel = false,\n isDisabled = false,\n isIndeterminate = false,\n isLabelHidden = false,\n label,\n max = 100,\n ref,\n role: roleProp = 'progressbar',\n style,\n value = 0,\n variant = 'info',\n}: ProgressProps): React.JSX.Element {\n const labelId = useId();\n\n if (process.env.NODE_ENV !== 'production' && max <= 0) {\n console.warn('Progress: `max` must be greater than 0.');\n }\n\n const clampedValue = Math.min(Math.max(0, value), max);\n const percentage = max > 0 ? (clampedValue / max) * 100 : 0;\n const valueText = formatValueLabel(clampedValue, max);\n const showValueLabel = hasValueLabel && !isIndeterminate;\n const classes = progressRecipe({variant, isDisabled, isIndeterminate});\n\n return (\n <div\n className={cx(classes.container, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {!isLabelHidden || showValueLabel ? (\n <div className={classes.header}>\n {isLabelHidden ? (\n <VisuallyHidden id={labelId}>{label}</VisuallyHidden>\n ) : (\n <span className={classes.label} id={labelId}>\n {label}\n </span>\n )}\n {showValueLabel ? (\n <span className={classes.valueLabel}>{valueText}</span>\n ) : null}\n </div>\n ) : (\n <VisuallyHidden id={labelId}>{label}</VisuallyHidden>\n )}\n\n <div\n aria-disabled={isDisabled || undefined}\n aria-labelledby={labelId}\n aria-valuemax={isIndeterminate ? undefined : max}\n aria-valuemin={isIndeterminate ? undefined : 0}\n aria-valuenow={isIndeterminate ? undefined : clampedValue}\n aria-valuetext={isIndeterminate ? undefined : valueText}\n className={classes.track}\n role={isIndeterminate ? 'progressbar' : roleProp}>\n <div\n className={classes.fill}\n style={isIndeterminate ? undefined : {width: `${percentage}%`}}\n />\n </div>\n </div>\n );\n}\n\nProgress.displayName = 'Progress';\n"]}
1
+ {"version":3,"sources":["../src/components/Progress/Progress.recipe.ts","../src/components/Progress/Progress.tsx"],"names":["sva","useId","jsxs","cx","jsx","VisuallyHidden"],"mappings":"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","file":"chunk-SR5VVJ5Y.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const progressRecipe = sva({\n slots: ['container', 'header', 'label', 'valueLabel', 'track', 'fill'],\n base: {\n container: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1',\n w: 'full',\n minW: '12',\n },\n header: {\n display: 'flex',\n alignItems: 'baseline',\n justifyContent: 'space-between',\n gap: '2',\n },\n label: {\n color: 'fg',\n fontFamily: 'body',\n fontSize: 'sm',\n fontWeight: 'medium',\n lineHeight: 'normal',\n },\n valueLabel: {\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n lineHeight: 'normal',\n whiteSpace: 'nowrap',\n },\n track: {\n w: 'full',\n h: '2',\n overflow: 'hidden',\n borderRadius: 'full',\n bg: 'bg.hover',\n },\n fill: {\n h: 'full',\n borderRadius: 'full',\n transitionProperty: 'width',\n transitionDuration: 'normal',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0s',\n },\n },\n },\n variants: {\n variant: {\n error: {fill: {bg: 'status.error.solid'}},\n info: {fill: {bg: 'status.info.solid'}},\n neutral: {fill: {bg: 'status.neutral.solid'}},\n success: {fill: {bg: 'status.success.solid'}},\n warning: {fill: {bg: 'status.warning.solid'}},\n },\n isDisabled: {\n true: {\n fill: {bg: 'status.disabled.solid'},\n label: {color: 'fg.disabled'},\n valueLabel: {color: 'fg.disabled'},\n },\n },\n isIndeterminate: {\n true: {\n fill: {\n w: '40%',\n animation: 'pulse 1.5s ease-in-out infinite',\n transitionProperty: 'none',\n transitionDuration: '0s',\n '@media (prefers-reduced-motion: reduce)': {\n animation: 'pulse 3s ease-in-out infinite',\n },\n },\n },\n },\n },\n defaultVariants: {\n variant: 'info',\n isDisabled: false,\n isIndeterminate: false,\n },\n});\n\nexport type ProgressVariants = RecipeVariantProps<typeof progressRecipe>;\n","import {useId, type CSSProperties, type Ref} from 'react';\nimport {VisuallyHidden} from '../../internal/VisuallyHidden';\nimport {cx} from '../../internal/cx';\nimport {progressRecipe} from './Progress.recipe';\n\nexport type ProgressVariant =\n | 'error'\n | 'info'\n | 'neutral'\n | 'success'\n | 'warning';\n\nexport interface ProgressProps {\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 * Custom formatter for the value label and aria-valuetext.\n */\n formatValueLabel?: (value: number, max: number) => string;\n /**\n * Whether to display the formatted value beside the label.\n * @default false\n */\n hasValueLabel?: boolean;\n /**\n * Whether the progress bar is visually disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to render an indeterminate loading indicator.\n * @default false\n */\n isIndeterminate?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Accessible label for the progress bar.\n */\n label: string;\n /**\n * Maximum progress value.\n * @default 100\n */\n max?: number;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * ARIA role for the progress indicator. Use 'progressbar' for task\n * completion and 'meter' for static gauges.\n * @default 'progressbar'\n */\n role?: 'meter' | 'progressbar';\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Current progress value.\n * @default 0\n */\n value?: number;\n /**\n * Semantic color variant.\n * @default 'info'\n */\n variant?: ProgressVariant;\n}\n\nfunction defaultFormatValueLabel(value: number, max: number): string {\n if (max <= 0) {\n return '0%';\n }\n return `${Math.round((value / max) * 100)}%`;\n}\n\n/**\n * A progress bar that communicates determinate or indeterminate loading state.\n */\nexport function Progress({\n className,\n 'data-testid': dataTestId,\n formatValueLabel = defaultFormatValueLabel,\n hasValueLabel = false,\n isDisabled = false,\n isIndeterminate = false,\n isLabelHidden = false,\n label,\n max = 100,\n ref,\n role: roleProp = 'progressbar',\n style,\n value = 0,\n variant = 'info',\n}: ProgressProps): React.JSX.Element {\n const labelId = useId();\n\n if (process.env.NODE_ENV !== 'production' && max <= 0) {\n console.warn('Progress: `max` must be greater than 0.');\n }\n\n const clampedValue = Math.min(Math.max(0, value), max);\n const percentage = max > 0 ? (clampedValue / max) * 100 : 0;\n const valueText = formatValueLabel(clampedValue, max);\n const showValueLabel = hasValueLabel && !isIndeterminate;\n const classes = progressRecipe({variant, isDisabled, isIndeterminate});\n\n return (\n <div\n className={cx(classes.container, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {!isLabelHidden || showValueLabel ? (\n <div className={classes.header}>\n {isLabelHidden ? (\n <VisuallyHidden id={labelId}>{label}</VisuallyHidden>\n ) : (\n <span className={classes.label} id={labelId}>\n {label}\n </span>\n )}\n {showValueLabel ? (\n <span className={classes.valueLabel}>{valueText}</span>\n ) : null}\n </div>\n ) : (\n <VisuallyHidden id={labelId}>{label}</VisuallyHidden>\n )}\n\n <div\n aria-disabled={isDisabled || undefined}\n aria-labelledby={labelId}\n aria-valuemax={isIndeterminate ? undefined : max}\n aria-valuemin={isIndeterminate ? undefined : 0}\n aria-valuenow={isIndeterminate ? undefined : clampedValue}\n aria-valuetext={isIndeterminate ? undefined : valueText}\n className={classes.track}\n role={isIndeterminate ? 'progressbar' : roleProp}>\n <div\n className={classes.fill}\n style={isIndeterminate ? undefined : {width: `${percentage}%`}}\n />\n </div>\n </div>\n );\n}\n\nProgress.displayName = 'Progress';\n"]}
@@ -1,8 +1,8 @@
1
- import { Button } from './chunk-RVENUWRD.js';
1
+ import { Button } from './chunk-2LABTS4P.js';
2
2
  import { mergeRefs } from './chunk-SGLIDI6R.js';
3
3
  import { cva } from './chunk-FMEIPGUP.js';
4
- import { cx } from './chunk-PPNETWIP.js';
5
4
  import { css } from './chunk-OD4DHHZH.js';
5
+ import { cx } from './chunk-PPNETWIP.js';
6
6
  import { createContext, use, useCallback, useRef, useEffect } from 'react';
7
7
  import { X, Menu } from 'lucide-react';
8
8
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -244,5 +244,5 @@ function MobileNavToggle({
244
244
  MobileNavToggle.displayName = "MobileNavToggle";
245
245
 
246
246
  export { AppShellMobileContext, MobileNav, MobileNavToggle, useAppShellMobile };
247
- //# sourceMappingURL=chunk-YLGAJD6Q.js.map
248
- //# sourceMappingURL=chunk-YLGAJD6Q.js.map
247
+ //# sourceMappingURL=chunk-SSAYBCAD.js.map
248
+ //# sourceMappingURL=chunk-SSAYBCAD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/AppShell/AppShellMobileContext.tsx","../src/internal/MobileNav/MobileNav.recipe.ts","../src/internal/MobileNav/MobileNav.tsx","../src/internal/MobileNav/MobileNavToggle.tsx"],"names":["jsx"],"mappings":";;;;;;;;;AAYA,IAAM,YAAA,GAA2C;AAAA,EAC/C,gBAAgB,MAAM;AAAA,EAAC,CAAA;AAAA,EACvB,aAAA,EAAe,IAAA;AAAA,EACf,QAAA,EAAU,KAAA;AAAA,EACV,kBAAA,EAAoB,KAAA;AAAA,EACpB,eAAA,EAAiB,KAAA;AAAA,EACjB,eAAe,MAAM;AAAA,EAAC,CAAA;AAAA,EACtB,iBAAiB,MAAM;AAAA,EAAC;AAC1B,CAAA;AAEO,IAAM,qBAAA,GACX,cAA0C,YAAY;AACxD,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAE7B,SAAS,iBAAA,GAAgD;AAC9D,EAAA,OAAO,IAAI,qBAAqB,CAAA;AAClC;;;AC1BO,IAAM,kBAAkB,GAAA,CAAI;AAAA,EACjC,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO,CAAA;AAAA,IACP,CAAA,EAAG,CAAA;AAAA,IACH,CAAA,EAAG,CAAA;AAAA,IACH,WAAA,EAAa,CAAA;AAAA,IACb,IAAA,EAAM,MAAA;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,CAAA,EAAG,OAAA;AAAA,IACH,CAAA,EAAG,QAAA;AAAA,IACH,EAAA,EAAI,aAAA;AAAA,IACJ,QAAA,EAAU,QAAA;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe;AAAA,MACb,EAAA,EAAI,eAAA;AAAA,MACJ,cAAA,EAAgB;AAAA;AAClB,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS;AAAA,OACX;AAAA,MACA,OAAO;AAAC;AACV,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,MAAA,EAAQ;AAAA;AAEZ,CAAC,CAAA;ACgCD,SAAS,WAAW,KAAA,EAAgC;AAClD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,CAAA,EAAG,KAAK,CAAA,EAAA,CAAA,GAAO,KAAA;AACpD;AAEA,IAAM,qBAAA,GAAwB,iCAAA;AAE9B,IAAM,MAAA,GAAS;AAAA,EACb,QAAQ,GAAA,CAAI;AAAA,IACV,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,CAAA;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,EAAA,EAAI,IAAA;AAAA,IACJ,WAAA,EAAa,QAAA;AAAA,IACb,QAAA,EAAU,QAAA;AAAA,IACV,kBAAA,EAAoB,WAAA;AAAA,IACpB,kBAAA,EAAoB,MAAA;AAAA,IACpB,wBAAA,EAA0B,SAAA;AAAA,IAC1B,yCAAA,EAA2C;AAAA,MACzC,kBAAA,EAAoB;AAAA;AACtB,GACD,CAAA;AAAA,EACD,aAAa,GAAA,CAAI;AAAA,IACf,gBAAA,EAAkB,CAAA;AAAA,IAClB,oBAAA,EAAsB,SAAA;AAAA,IACtB,SAAA,EAAW,mBAAA;AAAA,IACX,IAAA,EAAM,EAAC,SAAA,EAAW,kBAAA;AAAkB,GACrC,CAAA;AAAA,EACD,WAAW,GAAA,CAAI;AAAA,IACb,cAAA,EAAgB,CAAA;AAAA,IAChB,sBAAA,EAAwB,SAAA;AAAA,IACxB,SAAA,EAAW,kBAAA;AAAA,IACX,IAAA,EAAM,EAAC,SAAA,EAAW,mBAAA;AAAmB,GACtC,CAAA;AAAA,EACD,YAAY,GAAA,CAAI;AAAA,IACd,SAAA,EAAW;AAAA,GACZ,CAAA;AAAA,EACD,QAAQ,GAAA,CAAI;AAAA,IACV,CAAA,EAAG,IAAA;AAAA,IACH,EAAA,EAAI,GAAA;AAAA,IACJ,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,eAAA;AAAA,IAChB,mBAAA,EAAqB,SAAA;AAAA,IACrB,mBAAA,EAAqB,OAAA;AAAA,IACrB,mBAAA,EAAqB,QAAA;AAAA,IACrB,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,MAAM,GAAA,CAAI;AAAA,IACR,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW,MAAA;AAAA,IACX,SAAA,EAAW,QAAA;AAAA,IACX,CAAA,EAAG;AAAA,GACJ;AACH,CAAA;AAEO,SAAS,SAAA,CAAU;AAAA,EACxB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,MAAA;AAAA,EACA,MAAA,EAAQ,eAAA;AAAA,EACR,KAAA;AAAA,EACA,YAAA,EAAc,qBAAA;AAAA,EACd,GAAA;AAAA,EACA,IAAA,GAAO,KAAA;AAAA,EACP,IAAA,GAAO,GAAA;AAAA,EACP;AACF,CAAA,EAAsC;AACpC,EAAA,MAAM,iBAAiB,iBAAA,EAAkB;AACzC,EAAA,MAAM,MAAA,GAAS,mBAAmB,cAAA,CAAe,eAAA;AACjD,EAAA,MAAM,EAAC,aAAA,EAAe,cAAA,EAAc,GAAI,cAAA;AACxC,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,CAAC,UAAA,KAAwB;AACvB,MAAA,IAAI,yBAAyB,IAAA,EAAM;AACjC,QAAA,qBAAA,CAAsB,UAAU,CAAA;AAAA,MAClC,WAAW,UAAA,EAAY;AACrB,QAAA,aAAA,EAAc;AAAA,MAChB,CAAA,MAAO;AACL,QAAA,cAAA,EAAe;AAAA,MACjB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,aAAA,EAAe,cAAA,EAAgB,qBAAqB;AAAA,GACvD;AACA,EAAA,MAAM,SAAA,GAAY,OAA0B,IAAI,CAAA;AAEhD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AAEzB,IAAA,IAAI,UAAU,IAAA,EAAM;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,MAAA,IAAU,CAAC,MAAA,CAAO,IAAA,EAAM;AAC1B,MAAA,MAAA,CAAO,SAAA,EAAU;AAEjB,MAAA,MAAM,iBAAiB,MAAA,CAAO,aAAA;AAAA,QAC5B,uBAAuB,qBAAqB,CAAA,iBAAA;AAAA,OAC9C;AACA,MAAA,IAAI,kBAAkB,IAAA,EAAM;AAC1B,QAAA,cAAA,CAAe,KAAA,EAAM;AAAA,MACvB;AAAA,IACF,CAAA,MAAA,IAAW,CAAC,MAAA,IAAU,MAAA,CAAO,IAAA,EAAM;AACjC,MAAA,MAAA,CAAO,KAAA,EAAM;AAAA,IACf;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,gBAAA,GAAmB,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,QAAA;AAC7C,IAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,QAAA;AAC/B,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,gBAAA;AAAA,IACjC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,MAAM,aAAA,GAAgB,WAAW,IAAI,CAAA;AAErC,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,KAAA,KAAU,OAAO,MAAA,KAAW,WAAW,MAAA,GAAS,YAAA,CAAA;AAAA,MAC5D,WAAW,EAAA,CAAG,eAAA,CAAgB,EAAC,MAAA,EAAO,GAAG,SAAS,CAAA;AAAA,MAClD,aAAA,EAAa,UAAA;AAAA,MACb,UAAU,CAAA,KAAA,KAAS;AACjB,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,YAAA,CAAa,KAAK,CAAA;AAAA,MACpB,CAAA;AAAA,MACA,SAAS,CAAA,KAAA,KAAS;AAChB,QAAA,IAAI,KAAA,CAAM,MAAA,KAAW,KAAA,CAAM,aAAA,EAAe;AACxC,UAAA,YAAA,CAAa,KAAK,CAAA;AAAA,QACpB;AAAA,MACF,CAAA;AAAA,MACA,GAAA,EAAK,SAAA,CAAU,GAAA,EAAK,SAAS,CAAA;AAAA,MAC7B,KAAA;AAAA,MACA,QAAA,kBAAA,IAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,MAAA,CAAO,MAAA;AAAA,YACP,IAAA,KAAS,OAAA,GAAU,MAAA,CAAO,WAAA,GAAc,MAAA,CAAO,SAAA;AAAA,YAC/C,UAAU,MAAA,CAAO;AAAA,WACnB;AAAA,UACA,KAAA,EAAO,EAAC,QAAA,EAAU,aAAA,EAAe,OAAO,OAAA,EAAO;AAAA,UAC/C,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,MAAA,EACpB,QAAA,EAAA;AAAA,cAAA,MAAA,wBAAW,MAAA,EAAA,EAAK,CAAA;AAAA,8BACjB,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAM,CAAA;AAAA,kBACN,UAAA,EAAU,IAAA;AAAA,kBACV,KAAA,EAAM,kBAAA;AAAA,kBACN,OAAA,EAAS,MAAM,YAAA,CAAa,KAAK,CAAA;AAAA,kBACjC,OAAA,EAAQ;AAAA;AAAA;AACV,aAAA,EACF,CAAA;AAAA,4BACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,MAAO,QAAA,EAAS;AAAA;AAAA;AAAA;AACzC;AAAA,GACF;AAEJ;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;AC3LjB,SAAS,eAAA,CAAgB;AAAA,EAC9B,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,KAAA,GAAQ,iBAAA;AAAA,EACR,GAAA;AAAA,EACA;AACF,CAAA,EAAmD;AACjD,EAAA,MAAM,EAAC,QAAA,EAAU,kBAAA,EAAoB,eAAA,KAAmB,iBAAA,EAAkB;AAE1E,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,kBAAA,EAAoB;AACpC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,IAAA,EAAM,IAAA;AAAA,MACN,UAAA,EAAU,IAAA;AAAA,MACV,KAAA;AAAA,MACA,OAAA,EAAS,eAAA;AAAA,MACT,GAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA,EAAQ;AAAA;AAAA,GACV;AAEJ;AAEA,eAAA,CAAgB,WAAA,GAAc,iBAAA","file":"chunk-YLGAJD6Q.js","sourcesContent":["import {createContext, use} from 'react';\n\nexport interface AppShellMobileContextValue {\n closeMobileNav: () => void;\n hasAutoToggle: boolean;\n isMobile: boolean;\n isMobileNavEnabled: boolean;\n isMobileNavOpen: boolean;\n openMobileNav: () => void;\n toggleMobileNav: () => void;\n}\n\nconst defaultValue: AppShellMobileContextValue = {\n closeMobileNav: () => {},\n hasAutoToggle: true,\n isMobile: false,\n isMobileNavEnabled: false,\n isMobileNavOpen: false,\n openMobileNav: () => {},\n toggleMobileNav: () => {},\n};\n\nexport const AppShellMobileContext =\n createContext<AppShellMobileContextValue>(defaultValue);\nAppShellMobileContext.displayName = 'AppShellMobileContext';\n\nexport function useAppShellMobile(): AppShellMobileContextValue {\n return use(AppShellMobileContext);\n}\n","import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const mobileNavRecipe = cva({\n base: {\n position: 'fixed',\n inset: 0,\n m: 0,\n p: 0,\n borderWidth: 0,\n maxW: 'none',\n maxH: 'none',\n w: '100vw',\n h: '100dvh',\n bg: 'transparent',\n overflow: 'hidden',\n display: 'none',\n '&::backdrop': {\n bg: 'overlay.scrim',\n backdropFilter: 'blur(2px)',\n },\n },\n variants: {\n isOpen: {\n true: {\n display: 'flex',\n },\n false: {},\n },\n },\n defaultVariants: {\n isOpen: false,\n },\n});\n\nexport type MobileNavVariants = RecipeVariantProps<typeof mobileNavRecipe>;\n","import {X} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useCallback, useEffect, useRef} from 'react';\nimport {css} from 'styled-system/css';\nimport {useAppShellMobile} from '../../components/AppShell/AppShellMobileContext';\nimport {Button} from '../../components/Button';\nimport {cx} from '../cx';\nimport {mergeRefs} from '../mergeRefs';\nimport {mobileNavRecipe} from './MobileNav.recipe';\n\nexport type MobileNavSide = 'start' | 'end';\n\n/**\n * Slide-out drawer for mobile navigation.\n */\nexport interface MobileNavProps {\n /**\n * Drawer body content.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the dialog element.\n */\n className?: string;\n /**\n * Test ID applied to the dialog element.\n */\n 'data-testid'?: string;\n /**\n * Content rendered in the drawer header bar.\n */\n header?: ReactNode;\n /**\n * Whether the drawer is open.\n */\n isOpen?: boolean;\n /**\n * Accessible label for the dialog.\n */\n label?: string;\n /**\n * Called when the drawer requests an open-state change.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Which edge of the viewport the drawer slides from.\n * @default 'end'\n */\n side?: MobileNavSide;\n /**\n * Maximum drawer width.\n * @default 320\n */\n size?: number | string;\n /**\n * Inline styles applied to the dialog element.\n */\n style?: CSSProperties;\n}\n\nfunction formatSize(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nconst CLOSE_BUTTON_SELECTOR = '[aria-label=\"Close navigation\"]';\n\nconst styles = {\n drawer: css({\n position: 'absolute',\n insetBlock: 0,\n display: 'flex',\n flexDirection: 'column',\n bg: 'bg',\n borderColor: 'border',\n overflow: 'hidden',\n transitionProperty: 'transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01s',\n },\n }),\n drawerStart: css({\n insetInlineStart: 0,\n borderInlineEndWidth: 'default',\n transform: 'translateX(-100%)',\n _rtl: {transform: 'translateX(100%)'},\n }),\n drawerEnd: css({\n insetInlineEnd: 0,\n borderInlineStartWidth: 'default',\n transform: 'translateX(100%)',\n _rtl: {transform: 'translateX(-100%)'},\n }),\n drawerOpen: css({\n transform: 'translateX(0)',\n }),\n header: css({\n h: '12',\n px: '2',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n flexShrink: 0,\n }),\n body: css({\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n p: '2',\n }),\n};\n\nexport function MobileNav({\n children,\n className,\n 'data-testid': dataTestId,\n header,\n isOpen: isOpenFromProps,\n label,\n onOpenChange: onOpenChangeFromProps,\n ref,\n side = 'end',\n size = 320,\n style,\n}: MobileNavProps): React.JSX.Element {\n const appShellMobile = useAppShellMobile();\n const isOpen = isOpenFromProps ?? appShellMobile.isMobileNavOpen;\n const {openMobileNav, closeMobileNav} = appShellMobile;\n const onOpenChange = useCallback(\n (isNextOpen: boolean) => {\n if (onOpenChangeFromProps != null) {\n onOpenChangeFromProps(isNextOpen);\n } else if (isNextOpen) {\n openMobileNav();\n } else {\n closeMobileNav();\n }\n },\n [openMobileNav, closeMobileNav, onOpenChangeFromProps],\n );\n const dialogRef = useRef<HTMLDialogElement>(null);\n\n useEffect(() => {\n const dialog = dialogRef.current;\n\n if (dialog == null) {\n return;\n }\n\n if (isOpen && !dialog.open) {\n dialog.showModal();\n\n const firstFocusable = dialog.querySelector<HTMLElement>(\n `a[href], button:not(${CLOSE_BUTTON_SELECTOR}):not([disabled])`,\n );\n if (firstFocusable != null) {\n firstFocusable.focus();\n }\n } else if (!isOpen && dialog.open) {\n dialog.close();\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const previousOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n return () => {\n document.body.style.overflow = previousOverflow;\n };\n }, [isOpen]);\n\n const formattedSize = formatSize(size);\n\n return (\n <dialog\n aria-label={label ?? (typeof header === 'string' ? header : 'Navigation')}\n className={cx(mobileNavRecipe({isOpen}), className)}\n data-testid={dataTestId}\n onCancel={event => {\n event.preventDefault();\n onOpenChange(false);\n }}\n onClick={event => {\n if (event.target === event.currentTarget) {\n onOpenChange(false);\n }\n }}\n ref={mergeRefs(ref, dialogRef)}\n style={style}>\n <div\n className={cx(\n styles.drawer,\n side === 'start' ? styles.drawerStart : styles.drawerEnd,\n isOpen && styles.drawerOpen,\n )}\n style={{maxWidth: formattedSize, width: '100vw'}}>\n <div className={styles.header}>\n {header ?? <span />}\n <Button\n icon={X}\n isIconOnly\n label=\"Close navigation\"\n onClick={() => onOpenChange(false)}\n variant=\"ghost\"\n />\n </div>\n <div className={styles.body}>{children}</div>\n </div>\n </dialog>\n );\n}\n\nMobileNav.displayName = 'MobileNav';\n","import {Menu} from 'lucide-react';\nimport type {CSSProperties, Ref} from 'react';\nimport {useAppShellMobile} from '../../components/AppShell/AppShellMobileContext';\nimport {Button} from '../../components/Button';\n\n/**\n * Props for {@link MobileNavToggle}.\n */\nexport interface MobileNavToggleProps {\n /**\n * Additional CSS class names applied to the toggle button.\n */\n className?: string;\n /**\n * Test ID applied to the toggle button.\n */\n 'data-testid'?: string;\n /**\n * Accessible label for the toggle button.\n * @default 'Open navigation'\n */\n label?: string;\n /**\n * Ref forwarded to the toggle button.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the toggle button.\n */\n style?: CSSProperties;\n}\n\n/**\n * Hamburger-style button that toggles the mobile navigation drawer.\n * Renders nothing when the viewport is above the mobile breakpoint or\n * mobile navigation is disabled.\n */\nexport function MobileNavToggle({\n className,\n 'data-testid': dataTestId,\n label = 'Open navigation',\n ref,\n style,\n}: MobileNavToggleProps): React.JSX.Element | null {\n const {isMobile, isMobileNavEnabled, toggleMobileNav} = useAppShellMobile();\n\n if (!isMobile || !isMobileNavEnabled) {\n return null;\n }\n\n return (\n <Button\n className={className}\n data-testid={dataTestId}\n icon={Menu}\n isIconOnly\n label={label}\n onClick={toggleMobileNav}\n ref={ref}\n style={style}\n variant=\"ghost\"\n />\n );\n}\n\nMobileNavToggle.displayName = 'MobileNavToggle';\n"]}
1
+ {"version":3,"sources":["../src/components/AppShell/AppShellMobileContext.tsx","../src/internal/MobileNav/MobileNav.recipe.ts","../src/internal/MobileNav/MobileNav.tsx","../src/internal/MobileNav/MobileNavToggle.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-SSAYBCAD.js","sourcesContent":["import {createContext, use} from 'react';\n\nexport interface AppShellMobileContextValue {\n closeMobileNav: () => void;\n hasAutoToggle: boolean;\n isMobile: boolean;\n isMobileNavEnabled: boolean;\n isMobileNavOpen: boolean;\n openMobileNav: () => void;\n toggleMobileNav: () => void;\n}\n\nconst defaultValue: AppShellMobileContextValue = {\n closeMobileNav: () => {},\n hasAutoToggle: true,\n isMobile: false,\n isMobileNavEnabled: false,\n isMobileNavOpen: false,\n openMobileNav: () => {},\n toggleMobileNav: () => {},\n};\n\nexport const AppShellMobileContext =\n createContext<AppShellMobileContextValue>(defaultValue);\nAppShellMobileContext.displayName = 'AppShellMobileContext';\n\nexport function useAppShellMobile(): AppShellMobileContextValue {\n return use(AppShellMobileContext);\n}\n","import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const mobileNavRecipe = cva({\n base: {\n position: 'fixed',\n inset: 0,\n m: 0,\n p: 0,\n borderWidth: 0,\n maxW: 'none',\n maxH: 'none',\n w: '100vw',\n h: '100dvh',\n bg: 'transparent',\n overflow: 'hidden',\n display: 'none',\n '&::backdrop': {\n bg: 'overlay.scrim',\n backdropFilter: 'blur(2px)',\n },\n },\n variants: {\n isOpen: {\n true: {\n display: 'flex',\n },\n false: {},\n },\n },\n defaultVariants: {\n isOpen: false,\n },\n});\n\nexport type MobileNavVariants = RecipeVariantProps<typeof mobileNavRecipe>;\n","import {X} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useCallback, useEffect, useRef} from 'react';\nimport {css} from 'styled-system/css';\nimport {useAppShellMobile} from '../../components/AppShell/AppShellMobileContext';\nimport {Button} from '../../components/Button';\nimport {cx} from '../cx';\nimport {mergeRefs} from '../mergeRefs';\nimport {mobileNavRecipe} from './MobileNav.recipe';\n\nexport type MobileNavSide = 'start' | 'end';\n\n/**\n * Slide-out drawer for mobile navigation.\n */\nexport interface MobileNavProps {\n /**\n * Drawer body content.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the dialog element.\n */\n className?: string;\n /**\n * Test ID applied to the dialog element.\n */\n 'data-testid'?: string;\n /**\n * Content rendered in the drawer header bar.\n */\n header?: ReactNode;\n /**\n * Whether the drawer is open.\n */\n isOpen?: boolean;\n /**\n * Accessible label for the dialog.\n */\n label?: string;\n /**\n * Called when the drawer requests an open-state change.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Which edge of the viewport the drawer slides from.\n * @default 'end'\n */\n side?: MobileNavSide;\n /**\n * Maximum drawer width.\n * @default 320\n */\n size?: number | string;\n /**\n * Inline styles applied to the dialog element.\n */\n style?: CSSProperties;\n}\n\nfunction formatSize(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nconst CLOSE_BUTTON_SELECTOR = '[aria-label=\"Close navigation\"]';\n\nconst styles = {\n drawer: css({\n position: 'absolute',\n insetBlock: 0,\n display: 'flex',\n flexDirection: 'column',\n bg: 'bg',\n borderColor: 'border',\n overflow: 'hidden',\n transitionProperty: 'transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01s',\n },\n }),\n drawerStart: css({\n insetInlineStart: 0,\n borderInlineEndWidth: 'default',\n transform: 'translateX(-100%)',\n _rtl: {transform: 'translateX(100%)'},\n }),\n drawerEnd: css({\n insetInlineEnd: 0,\n borderInlineStartWidth: 'default',\n transform: 'translateX(100%)',\n _rtl: {transform: 'translateX(-100%)'},\n }),\n drawerOpen: css({\n transform: 'translateX(0)',\n }),\n header: css({\n h: '12',\n px: '2',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n flexShrink: 0,\n }),\n body: css({\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n p: '2',\n }),\n};\n\nexport function MobileNav({\n children,\n className,\n 'data-testid': dataTestId,\n header,\n isOpen: isOpenFromProps,\n label,\n onOpenChange: onOpenChangeFromProps,\n ref,\n side = 'end',\n size = 320,\n style,\n}: MobileNavProps): React.JSX.Element {\n const appShellMobile = useAppShellMobile();\n const isOpen = isOpenFromProps ?? appShellMobile.isMobileNavOpen;\n const {openMobileNav, closeMobileNav} = appShellMobile;\n const onOpenChange = useCallback(\n (isNextOpen: boolean) => {\n if (onOpenChangeFromProps != null) {\n onOpenChangeFromProps(isNextOpen);\n } else if (isNextOpen) {\n openMobileNav();\n } else {\n closeMobileNav();\n }\n },\n [openMobileNav, closeMobileNav, onOpenChangeFromProps],\n );\n const dialogRef = useRef<HTMLDialogElement>(null);\n\n useEffect(() => {\n const dialog = dialogRef.current;\n\n if (dialog == null) {\n return;\n }\n\n if (isOpen && !dialog.open) {\n dialog.showModal();\n\n const firstFocusable = dialog.querySelector<HTMLElement>(\n `a[href], button:not(${CLOSE_BUTTON_SELECTOR}):not([disabled])`,\n );\n if (firstFocusable != null) {\n firstFocusable.focus();\n }\n } else if (!isOpen && dialog.open) {\n dialog.close();\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const previousOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n return () => {\n document.body.style.overflow = previousOverflow;\n };\n }, [isOpen]);\n\n const formattedSize = formatSize(size);\n\n return (\n <dialog\n aria-label={label ?? (typeof header === 'string' ? header : 'Navigation')}\n className={cx(mobileNavRecipe({isOpen}), className)}\n data-testid={dataTestId}\n onCancel={event => {\n event.preventDefault();\n onOpenChange(false);\n }}\n onClick={event => {\n if (event.target === event.currentTarget) {\n onOpenChange(false);\n }\n }}\n ref={mergeRefs(ref, dialogRef)}\n style={style}>\n <div\n className={cx(\n styles.drawer,\n side === 'start' ? styles.drawerStart : styles.drawerEnd,\n isOpen && styles.drawerOpen,\n )}\n style={{maxWidth: formattedSize, width: '100vw'}}>\n <div className={styles.header}>\n {header ?? <span />}\n <Button\n icon={X}\n isIconOnly\n label=\"Close navigation\"\n onClick={() => onOpenChange(false)}\n variant=\"ghost\"\n />\n </div>\n <div className={styles.body}>{children}</div>\n </div>\n </dialog>\n );\n}\n\nMobileNav.displayName = 'MobileNav';\n","import {Menu} from 'lucide-react';\nimport type {CSSProperties, Ref} from 'react';\nimport {useAppShellMobile} from '../../components/AppShell/AppShellMobileContext';\nimport {Button} from '../../components/Button';\n\n/**\n * Props for {@link MobileNavToggle}.\n */\nexport interface MobileNavToggleProps {\n /**\n * Additional CSS class names applied to the toggle button.\n */\n className?: string;\n /**\n * Test ID applied to the toggle button.\n */\n 'data-testid'?: string;\n /**\n * Accessible label for the toggle button.\n * @default 'Open navigation'\n */\n label?: string;\n /**\n * Ref forwarded to the toggle button.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the toggle button.\n */\n style?: CSSProperties;\n}\n\n/**\n * Hamburger-style button that toggles the mobile navigation drawer.\n * Renders nothing when the viewport is above the mobile breakpoint or\n * mobile navigation is disabled.\n */\nexport function MobileNavToggle({\n className,\n 'data-testid': dataTestId,\n label = 'Open navigation',\n ref,\n style,\n}: MobileNavToggleProps): React.JSX.Element | null {\n const {isMobile, isMobileNavEnabled, toggleMobileNav} = useAppShellMobile();\n\n if (!isMobile || !isMobileNavEnabled) {\n return null;\n }\n\n return (\n <Button\n className={className}\n data-testid={dataTestId}\n icon={Menu}\n isIconOnly\n label={label}\n onClick={toggleMobileNav}\n ref={ref}\n style={style}\n variant=\"ghost\"\n />\n );\n}\n\nMobileNavToggle.displayName = 'MobileNavToggle';\n"]}
@@ -1,5 +1,5 @@
1
- import { cx } from './chunk-PPNETWIP.js';
2
1
  import { css } from './chunk-OD4DHHZH.js';
2
+ import { cx } from './chunk-PPNETWIP.js';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
5
5
  var styles = {
@@ -36,5 +36,5 @@ function NavIcon({
36
36
  NavIcon.displayName = "NavIcon";
37
37
 
38
38
  export { NavIcon };
39
- //# sourceMappingURL=chunk-24J3BUKL.js.map
40
- //# sourceMappingURL=chunk-24J3BUKL.js.map
39
+ //# sourceMappingURL=chunk-SUH62Z64.js.map
40
+ //# sourceMappingURL=chunk-SUH62Z64.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/NavIcon/NavIcon.tsx"],"names":[],"mappings":";;;;AA2BA,IAAM,MAAA,GAAS;AAAA,EACb,MAAM,GAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,YAAA,EAAc,MAAA;AAAA,IACd,EAAA,EAAI,SAAA;AAAA,IACJ,KAAA,EAAO,cAAA;AAAA,IACP,UAAA,EAAY,CAAA;AAAA,IACZ,CAAA,EAAG,cAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACJ;AACH,CAAA;AAMO,SAAS,OAAA,CAAQ;AAAA,EACtB,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,IAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAAoC;AAClC,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,IAAA,EAAM,SAAS,CAAA;AAAA,MACpC,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA;AAAA,MACC,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-24J3BUKL.js","sourcesContent":["import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\n\nexport interface NavIconProps {\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 * The icon element to render inside the circular background.\n */\n icon: ReactNode;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLSpanElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n base: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n bg: 'primary',\n color: 'fg.onPrimary',\n flexShrink: 0,\n w: 'component.sm',\n h: 'component.sm',\n }),\n};\n\n/**\n * Circular icon container for navigation headers.\n * Wraps an icon with a circular accent-colored background.\n */\nexport function NavIcon({\n className,\n 'data-testid': dataTestId,\n icon,\n ref,\n style,\n}: NavIconProps): React.JSX.Element {\n return (\n <span\n className={cx(styles.base, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {icon}\n </span>\n );\n}\n\nNavIcon.displayName = 'NavIcon';\n"]}
1
+ {"version":3,"sources":["../src/components/NavIcon/NavIcon.tsx"],"names":[],"mappings":";;;;AA2BA,IAAM,MAAA,GAAS;AAAA,EACb,MAAM,GAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,YAAA,EAAc,MAAA;AAAA,IACd,EAAA,EAAI,SAAA;AAAA,IACJ,KAAA,EAAO,cAAA;AAAA,IACP,UAAA,EAAY,CAAA;AAAA,IACZ,CAAA,EAAG,cAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACJ;AACH,CAAA;AAMO,SAAS,OAAA,CAAQ;AAAA,EACtB,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,IAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAAoC;AAClC,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,IAAA,EAAM,SAAS,CAAA;AAAA,MACpC,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA;AAAA,MACC,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-SUH62Z64.js","sourcesContent":["import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\n\nexport interface NavIconProps {\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 * The icon element to render inside the circular background.\n */\n icon: ReactNode;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLSpanElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n base: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n bg: 'primary',\n color: 'fg.onPrimary',\n flexShrink: 0,\n w: 'component.sm',\n h: 'component.sm',\n }),\n};\n\n/**\n * Circular icon container for navigation headers.\n * Wraps an icon with a circular accent-colored background.\n */\nexport function NavIcon({\n className,\n 'data-testid': dataTestId,\n icon,\n ref,\n style,\n}: NavIconProps): React.JSX.Element {\n return (\n <span\n className={cx(styles.base, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {icon}\n </span>\n );\n}\n\nNavIcon.displayName = 'NavIcon';\n"]}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkHVUYVPQL_cjs = require('./chunk-HVUYVPQL.cjs');
4
- var chunkKFDHP4WP_cjs = require('./chunk-KFDHP4WP.cjs');
5
- var chunk7GN6YTSS_cjs = require('./chunk-7GN6YTSS.cjs');
3
+ var chunkMAYQGKKW_cjs = require('./chunk-MAYQGKKW.cjs');
4
+ var chunkSBS7U7CN_cjs = require('./chunk-SBS7U7CN.cjs');
5
+ var chunk7CCXHH6Y_cjs = require('./chunk-7CCXHH6Y.cjs');
6
6
  var chunk4TIAKZ4Q_cjs = require('./chunk-4TIAKZ4Q.cjs');
7
- var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
8
7
  var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
8
+ var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
9
9
  var react = require('react');
10
10
  var jsxRuntime = require('react/jsx-runtime');
11
11
 
@@ -174,7 +174,7 @@ function ToggleButton({
174
174
  "aria-label": isIconOnly || isLoading ? label : void 0,
175
175
  "aria-pressed": isSelected,
176
176
  className: chunkSPDVNY2Z_cjs.cx(
177
- chunkHVUYVPQL_cjs.buttonRecipe({ variant: "ghost", size, iconOnly: isIconOnly }).root,
177
+ chunkMAYQGKKW_cjs.buttonRecipe({ variant: "ghost", size, iconOnly: isIconOnly }).root,
178
178
  isSelected ? styles2.selected : void 0,
179
179
  className
180
180
  ),
@@ -190,12 +190,12 @@ function ToggleButton({
190
190
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.label, children: visibleLabel }),
191
191
  /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: styles2.widthReservation, children: visibleLabel })
192
192
  ] }) : null,
193
- !isIconOnly && isLoading ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: styles2.spinner, children: /* @__PURE__ */ jsxRuntime.jsx(chunkKFDHP4WP_cjs.Spinner, { size }) }) : null
193
+ !isIconOnly && isLoading ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: styles2.spinner, children: /* @__PURE__ */ jsxRuntime.jsx(chunkSBS7U7CN_cjs.Spinner, { size }) }) : null
194
194
  ] })
195
195
  }
196
196
  );
197
197
  if (tooltip != null) {
198
- return /* @__PURE__ */ jsxRuntime.jsx(chunk7GN6YTSS_cjs.Tooltip, { content: tooltip, children: button });
198
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk7CCXHH6Y_cjs.Tooltip, { content: tooltip, children: button });
199
199
  }
200
200
  return button;
201
201
  }
@@ -203,5 +203,5 @@ ToggleButton.displayName = "ToggleButton";
203
203
 
204
204
  exports.ToggleButton = ToggleButton;
205
205
  exports.ToggleButtonGroup = ToggleButtonGroup;
206
- //# sourceMappingURL=chunk-PL6J55JB.cjs.map
207
- //# sourceMappingURL=chunk-PL6J55JB.cjs.map
206
+ //# sourceMappingURL=chunk-TBOQTPRO.cjs.map
207
+ //# sourceMappingURL=chunk-TBOQTPRO.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ToggleButton/ToggleButtonGroup.tsx","../src/components/ToggleButton/ToggleButton.tsx"],"names":["createContext","use","css","useMemo","useCallback","current","jsx","cx","styles","buttonRecipe","Icon","jsxs","Spinner","Tooltip"],"mappings":"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","file":"chunk-PL6J55JB.cjs","sourcesContent":["import {\n createContext,\n use,\n useCallback,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport type {ButtonSize} from '../Button';\n\nexport type ToggleButtonGroupOrientation = 'horizontal' | 'vertical';\n\ninterface ToggleButtonGroupContextValue {\n isDisabled?: boolean;\n onToggle: (value: string) => void;\n selectedValues: Set<string>;\n size?: ButtonSize;\n}\n\nconst ToggleButtonGroupContext =\n createContext<ToggleButtonGroupContextValue | null>(null);\n\nToggleButtonGroupContext.displayName = 'ToggleButtonGroupContext';\n\nexport function useToggleButtonGroup(): ToggleButtonGroupContextValue | null {\n return use(ToggleButtonGroupContext);\n}\n\ninterface ToggleButtonGroupBaseProps {\n /**\n * Toggle button children.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the group root.\n */\n className?: string;\n /**\n * Test ID applied to the group root.\n */\n 'data-testid'?: string;\n /**\n * Whether all buttons in the group are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Accessible label for the group.\n */\n label: string;\n /**\n * Group orientation.\n * @default 'horizontal'\n */\n orientation?: ToggleButtonGroupOrientation;\n /**\n * Ref forwarded to the group root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Default size for buttons in the group.\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the group root.\n */\n style?: CSSProperties;\n}\n\nexport interface ToggleButtonGroupSingleProps extends ToggleButtonGroupBaseProps {\n /**\n * Called with the selected value when selection changes, or `null`\n * when the active button is deselected.\n */\n onChange: (value: string | null) => void;\n /**\n * Single-selection mode. Clicking the active button clears selection.\n * @default 'single'\n */\n type?: 'single';\n /**\n * Currently selected value, or `null` for no selection.\n */\n value: string | null;\n}\n\nexport interface ToggleButtonGroupMultipleProps extends ToggleButtonGroupBaseProps {\n /**\n * Called with the array of selected values when selection changes.\n */\n onChange: (value: string[]) => void;\n /**\n * Multiple-selection mode.\n */\n type: 'multiple';\n /**\n * Currently selected values.\n */\n value: string[];\n}\n\nexport type ToggleButtonGroupProps =\n | ToggleButtonGroupSingleProps\n | ToggleButtonGroupMultipleProps;\n\nconst styles = {\n group: css({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '1',\n }),\n vertical: css({\n flexDirection: 'column',\n alignItems: 'stretch',\n }),\n} as const;\n\n/**\n * Groups related ToggleButtons and manages shared selection state.\n */\nexport function ToggleButtonGroup({\n children,\n className,\n 'data-testid': dataTestId,\n isDisabled = false,\n label,\n orientation = 'horizontal',\n ref,\n size,\n style,\n ...props\n}: ToggleButtonGroupProps): React.JSX.Element {\n const isMultiple = props.type === 'multiple';\n const {onChange, value} = props;\n\n const selectedValues = useMemo(() => {\n if (isMultiple) {\n return new Set(value as string[]);\n }\n\n return value == null ? new Set<string>() : new Set([value as string]);\n }, [isMultiple, value]);\n\n const onToggle = useCallback(\n (itemValue: string) => {\n if (isMultiple) {\n const current = value as string[];\n (onChange as (v: string[]) => void)(\n current.includes(itemValue)\n ? current.filter(v => v !== itemValue)\n : [...current, itemValue],\n );\n return;\n }\n\n const current = value as string | null;\n (onChange as (v: string | null) => void)(\n current === itemValue ? null : itemValue,\n );\n },\n [isMultiple, value, onChange],\n );\n\n const contextValue = useMemo(\n () => ({isDisabled, onToggle, selectedValues, size}),\n [isDisabled, onToggle, selectedValues, size],\n );\n\n return (\n <ToggleButtonGroupContext value={contextValue}>\n <div\n aria-label={label}\n className={cx(\n styles.group,\n orientation === 'vertical' ? styles.vertical : undefined,\n className,\n )}\n data-testid={dataTestId}\n ref={ref}\n role=\"group\"\n style={style}>\n {children}\n </div>\n </ToggleButtonGroupContext>\n );\n}\n\nToggleButtonGroup.displayName = 'ToggleButtonGroup';\n","import type {CSSProperties, MouseEvent, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport type {ButtonSize} from '../Button';\nimport {buttonRecipe} from '../Button/Button.recipe';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Spinner} from '../Spinner';\nimport {Tooltip} from '../Tooltip';\nimport {useToggleButtonGroup} from './ToggleButtonGroup';\n\nexport interface ToggleButtonProps {\n /**\n * Custom visible content. When omitted, `label` is rendered.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the button root.\n */\n className?: string;\n /**\n * Test ID applied to the button root.\n */\n 'data-testid'?: string;\n /**\n * Icon element rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the button is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label and render a square icon button.\n * @default false\n */\n isIconOnly?: boolean;\n /**\n * Whether the button is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Whether the button is currently selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Accessible label for the button.\n */\n label: string;\n /**\n * Called when the selected state should change.\n */\n onChange?: (isSelected: boolean) => void;\n /**\n * Ref forwarded to the button root.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Icon element rendered when the button is selected.\n */\n selectedIcon?: IconComponent;\n /**\n * Visual size of the button.\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the button root.\n */\n style?: CSSProperties;\n /**\n * Tooltip text shown on hover.\n */\n tooltip?: string;\n /**\n * Value identifier when used inside `ToggleButtonGroup`.\n */\n value?: string;\n}\n\nconst styles = {\n selected: css({\n bg: 'bg.subtle',\n fontWeight: 'semibold',\n _hover: {bg: 'bg.subtle'},\n _active: {bg: 'bg.subtle'},\n }),\n content: css({\n display: 'contents',\n }),\n labelWrapper: css({\n display: 'inline-flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minW: 0,\n }),\n label: css({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n minW: 0,\n }),\n widthReservation: css({\n display: 'block',\n h: 0,\n overflow: 'hidden',\n visibility: 'hidden',\n pointerEvents: 'none',\n fontWeight: 'semibold',\n }),\n icon: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n }),\n spinner: css({\n display: 'inline-flex',\n alignItems: 'center',\n color: 'inherit',\n }),\n} as const;\n\n/**\n * Button that toggles between selected and unselected states.\n */\nexport function ToggleButton({\n children,\n className,\n 'data-testid': dataTestId,\n icon,\n isDisabled: isDisabledProp = false,\n isIconOnly = false,\n isLoading = false,\n isSelected: isSelectedProp = false,\n label,\n onChange,\n selectedIcon,\n ref,\n size: sizeProp,\n style,\n tooltip,\n value,\n}: ToggleButtonProps): React.JSX.Element {\n const group = useToggleButtonGroup();\n\n if (process.env.NODE_ENV !== 'production') {\n if (group != null && value == null) {\n throw new Error(\n 'ToggleButton: `value` prop is required when used inside a ToggleButtonGroup.',\n );\n }\n }\n\n const isSelected =\n group != null && value != null\n ? group.selectedValues.has(value)\n : isSelectedProp;\n const size = sizeProp ?? group?.size ?? 'md';\n const isDisabled = isDisabledProp || group?.isDisabled === true;\n const resolvedIcon = isSelected && selectedIcon != null ? selectedIcon : icon;\n const visibleLabel = children ?? label;\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (isDisabled || isLoading) {\n event.preventDefault();\n return;\n }\n\n if (group != null && value != null) {\n group.onToggle(value);\n return;\n }\n\n onChange?.(!isSelected);\n };\n\n const button = (\n <button\n aria-busy={isLoading || undefined}\n aria-label={isIconOnly || isLoading ? label : undefined}\n aria-pressed={isSelected}\n className={cx(\n buttonRecipe({variant: 'ghost', size, iconOnly: isIconOnly}).root,\n isSelected ? styles.selected : undefined,\n className,\n )}\n data-testid={dataTestId}\n disabled={isDisabled || isLoading}\n onClick={handleClick}\n ref={ref}\n style={style}\n type=\"button\">\n <span aria-hidden={isLoading || undefined} className={styles.content}>\n {resolvedIcon != null ? (\n <span className={styles.icon}>\n <Icon icon={resolvedIcon} size={size} />\n </span>\n ) : null}\n {!isIconOnly ? (\n <span className={styles.labelWrapper}>\n <span className={styles.label}>{visibleLabel}</span>\n <span aria-hidden=\"true\" className={styles.widthReservation}>\n {visibleLabel}\n </span>\n </span>\n ) : null}\n {!isIconOnly && isLoading ? (\n <span aria-hidden=\"true\" className={styles.spinner}>\n <Spinner size={size} />\n </span>\n ) : null}\n </span>\n </button>\n );\n\n if (tooltip != null) {\n return <Tooltip content={tooltip}>{button}</Tooltip>;\n }\n\n return button;\n}\n\nToggleButton.displayName = 'ToggleButton';\n"]}
1
+ {"version":3,"sources":["../src/components/ToggleButton/ToggleButtonGroup.tsx","../src/components/ToggleButton/ToggleButton.tsx"],"names":["createContext","use","css","useMemo","useCallback","current","jsx","cx","styles","buttonRecipe","Icon","jsxs","Spinner","Tooltip"],"mappings":"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","file":"chunk-TBOQTPRO.cjs","sourcesContent":["import {\n createContext,\n use,\n useCallback,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport type {ButtonSize} from '../Button';\n\nexport type ToggleButtonGroupOrientation = 'horizontal' | 'vertical';\n\ninterface ToggleButtonGroupContextValue {\n isDisabled?: boolean;\n onToggle: (value: string) => void;\n selectedValues: Set<string>;\n size?: ButtonSize;\n}\n\nconst ToggleButtonGroupContext =\n createContext<ToggleButtonGroupContextValue | null>(null);\n\nToggleButtonGroupContext.displayName = 'ToggleButtonGroupContext';\n\nexport function useToggleButtonGroup(): ToggleButtonGroupContextValue | null {\n return use(ToggleButtonGroupContext);\n}\n\ninterface ToggleButtonGroupBaseProps {\n /**\n * Toggle button children.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the group root.\n */\n className?: string;\n /**\n * Test ID applied to the group root.\n */\n 'data-testid'?: string;\n /**\n * Whether all buttons in the group are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Accessible label for the group.\n */\n label: string;\n /**\n * Group orientation.\n * @default 'horizontal'\n */\n orientation?: ToggleButtonGroupOrientation;\n /**\n * Ref forwarded to the group root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Default size for buttons in the group.\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the group root.\n */\n style?: CSSProperties;\n}\n\nexport interface ToggleButtonGroupSingleProps extends ToggleButtonGroupBaseProps {\n /**\n * Called with the selected value when selection changes, or `null`\n * when the active button is deselected.\n */\n onChange: (value: string | null) => void;\n /**\n * Single-selection mode. Clicking the active button clears selection.\n * @default 'single'\n */\n type?: 'single';\n /**\n * Currently selected value, or `null` for no selection.\n */\n value: string | null;\n}\n\nexport interface ToggleButtonGroupMultipleProps extends ToggleButtonGroupBaseProps {\n /**\n * Called with the array of selected values when selection changes.\n */\n onChange: (value: string[]) => void;\n /**\n * Multiple-selection mode.\n */\n type: 'multiple';\n /**\n * Currently selected values.\n */\n value: string[];\n}\n\nexport type ToggleButtonGroupProps =\n | ToggleButtonGroupSingleProps\n | ToggleButtonGroupMultipleProps;\n\nconst styles = {\n group: css({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '1',\n }),\n vertical: css({\n flexDirection: 'column',\n alignItems: 'stretch',\n }),\n} as const;\n\n/**\n * Groups related ToggleButtons and manages shared selection state.\n */\nexport function ToggleButtonGroup({\n children,\n className,\n 'data-testid': dataTestId,\n isDisabled = false,\n label,\n orientation = 'horizontal',\n ref,\n size,\n style,\n ...props\n}: ToggleButtonGroupProps): React.JSX.Element {\n const isMultiple = props.type === 'multiple';\n const {onChange, value} = props;\n\n const selectedValues = useMemo(() => {\n if (isMultiple) {\n return new Set(value as string[]);\n }\n\n return value == null ? new Set<string>() : new Set([value as string]);\n }, [isMultiple, value]);\n\n const onToggle = useCallback(\n (itemValue: string) => {\n if (isMultiple) {\n const current = value as string[];\n (onChange as (v: string[]) => void)(\n current.includes(itemValue)\n ? current.filter(v => v !== itemValue)\n : [...current, itemValue],\n );\n return;\n }\n\n const current = value as string | null;\n (onChange as (v: string | null) => void)(\n current === itemValue ? null : itemValue,\n );\n },\n [isMultiple, value, onChange],\n );\n\n const contextValue = useMemo(\n () => ({isDisabled, onToggle, selectedValues, size}),\n [isDisabled, onToggle, selectedValues, size],\n );\n\n return (\n <ToggleButtonGroupContext value={contextValue}>\n <div\n aria-label={label}\n className={cx(\n styles.group,\n orientation === 'vertical' ? styles.vertical : undefined,\n className,\n )}\n data-testid={dataTestId}\n ref={ref}\n role=\"group\"\n style={style}>\n {children}\n </div>\n </ToggleButtonGroupContext>\n );\n}\n\nToggleButtonGroup.displayName = 'ToggleButtonGroup';\n","import type {CSSProperties, MouseEvent, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport type {ButtonSize} from '../Button';\nimport {buttonRecipe} from '../Button/Button.recipe';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Spinner} from '../Spinner';\nimport {Tooltip} from '../Tooltip';\nimport {useToggleButtonGroup} from './ToggleButtonGroup';\n\nexport interface ToggleButtonProps {\n /**\n * Custom visible content. When omitted, `label` is rendered.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the button root.\n */\n className?: string;\n /**\n * Test ID applied to the button root.\n */\n 'data-testid'?: string;\n /**\n * Icon element rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the button is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label and render a square icon button.\n * @default false\n */\n isIconOnly?: boolean;\n /**\n * Whether the button is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Whether the button is currently selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Accessible label for the button.\n */\n label: string;\n /**\n * Called when the selected state should change.\n */\n onChange?: (isSelected: boolean) => void;\n /**\n * Ref forwarded to the button root.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Icon element rendered when the button is selected.\n */\n selectedIcon?: IconComponent;\n /**\n * Visual size of the button.\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the button root.\n */\n style?: CSSProperties;\n /**\n * Tooltip text shown on hover.\n */\n tooltip?: string;\n /**\n * Value identifier when used inside `ToggleButtonGroup`.\n */\n value?: string;\n}\n\nconst styles = {\n selected: css({\n bg: 'bg.subtle',\n fontWeight: 'semibold',\n _hover: {bg: 'bg.subtle'},\n _active: {bg: 'bg.subtle'},\n }),\n content: css({\n display: 'contents',\n }),\n labelWrapper: css({\n display: 'inline-flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minW: 0,\n }),\n label: css({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n minW: 0,\n }),\n widthReservation: css({\n display: 'block',\n h: 0,\n overflow: 'hidden',\n visibility: 'hidden',\n pointerEvents: 'none',\n fontWeight: 'semibold',\n }),\n icon: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n }),\n spinner: css({\n display: 'inline-flex',\n alignItems: 'center',\n color: 'inherit',\n }),\n} as const;\n\n/**\n * Button that toggles between selected and unselected states.\n */\nexport function ToggleButton({\n children,\n className,\n 'data-testid': dataTestId,\n icon,\n isDisabled: isDisabledProp = false,\n isIconOnly = false,\n isLoading = false,\n isSelected: isSelectedProp = false,\n label,\n onChange,\n selectedIcon,\n ref,\n size: sizeProp,\n style,\n tooltip,\n value,\n}: ToggleButtonProps): React.JSX.Element {\n const group = useToggleButtonGroup();\n\n if (process.env.NODE_ENV !== 'production') {\n if (group != null && value == null) {\n throw new Error(\n 'ToggleButton: `value` prop is required when used inside a ToggleButtonGroup.',\n );\n }\n }\n\n const isSelected =\n group != null && value != null\n ? group.selectedValues.has(value)\n : isSelectedProp;\n const size = sizeProp ?? group?.size ?? 'md';\n const isDisabled = isDisabledProp || group?.isDisabled === true;\n const resolvedIcon = isSelected && selectedIcon != null ? selectedIcon : icon;\n const visibleLabel = children ?? label;\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (isDisabled || isLoading) {\n event.preventDefault();\n return;\n }\n\n if (group != null && value != null) {\n group.onToggle(value);\n return;\n }\n\n onChange?.(!isSelected);\n };\n\n const button = (\n <button\n aria-busy={isLoading || undefined}\n aria-label={isIconOnly || isLoading ? label : undefined}\n aria-pressed={isSelected}\n className={cx(\n buttonRecipe({variant: 'ghost', size, iconOnly: isIconOnly}).root,\n isSelected ? styles.selected : undefined,\n className,\n )}\n data-testid={dataTestId}\n disabled={isDisabled || isLoading}\n onClick={handleClick}\n ref={ref}\n style={style}\n type=\"button\">\n <span aria-hidden={isLoading || undefined} className={styles.content}>\n {resolvedIcon != null ? (\n <span className={styles.icon}>\n <Icon icon={resolvedIcon} size={size} />\n </span>\n ) : null}\n {!isIconOnly ? (\n <span className={styles.labelWrapper}>\n <span className={styles.label}>{visibleLabel}</span>\n <span aria-hidden=\"true\" className={styles.widthReservation}>\n {visibleLabel}\n </span>\n </span>\n ) : null}\n {!isIconOnly && isLoading ? (\n <span aria-hidden=\"true\" className={styles.spinner}>\n <Spinner size={size} />\n </span>\n ) : null}\n </span>\n </button>\n );\n\n if (tooltip != null) {\n return <Tooltip content={tooltip}>{button}</Tooltip>;\n }\n\n return button;\n}\n\nToggleButton.displayName = 'ToggleButton';\n"]}
@@ -1,4 +1,4 @@
1
- import { sva } from './chunk-EHCAF6D3.js';
1
+ import { sva } from './chunk-IAVZKGZS.js';
2
2
 
3
3
  // src/components/Button/Button.recipe.ts
4
4
  var buttonRecipe = sva({
@@ -187,5 +187,5 @@ var buttonRecipe = sva({
187
187
  });
188
188
 
189
189
  export { buttonRecipe };
190
- //# sourceMappingURL=chunk-YNTPHZFJ.js.map
191
- //# sourceMappingURL=chunk-YNTPHZFJ.js.map
190
+ //# sourceMappingURL=chunk-TCTPR7YQ.js.map
191
+ //# sourceMappingURL=chunk-TCTPR7YQ.js.map