silver-ui 0.6.0 → 0.7.2

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 (357) hide show
  1. package/README.md +1 -0
  2. package/dist/{chunk-DYMZ4DLN.cjs → chunk-2AOR4EVA.cjs} +8 -8
  3. package/dist/{chunk-DYMZ4DLN.cjs.map → chunk-2AOR4EVA.cjs.map} +1 -1
  4. package/dist/chunk-2N3PIXZ5.cjs +165 -0
  5. package/dist/chunk-2N3PIXZ5.cjs.map +1 -0
  6. package/dist/{chunk-GUUCIG7U.js → chunk-3PCXFOOS.js} +16 -10
  7. package/dist/chunk-3PCXFOOS.js.map +1 -0
  8. package/dist/{chunk-ISWZQUVA.cjs → chunk-4MIIXRZN.cjs} +12 -12
  9. package/dist/{chunk-ISWZQUVA.cjs.map → chunk-4MIIXRZN.cjs.map} +1 -1
  10. package/dist/{chunk-WHDDBOJN.js → chunk-54B36CSW.js} +4 -4
  11. package/dist/{chunk-WHDDBOJN.js.map → chunk-54B36CSW.js.map} +1 -1
  12. package/dist/{chunk-NXTDP6AX.js → chunk-5GSRIOXE.js} +14 -2
  13. package/dist/chunk-5GSRIOXE.js.map +1 -0
  14. package/dist/{chunk-BGLT7XH6.js → chunk-5HPXPF3F.js} +5 -5
  15. package/dist/{chunk-BGLT7XH6.js.map → chunk-5HPXPF3F.js.map} +1 -1
  16. package/dist/{chunk-U4L75VA4.cjs → chunk-5MCI3ILK.cjs} +40 -40
  17. package/dist/{chunk-U4L75VA4.cjs.map → chunk-5MCI3ILK.cjs.map} +1 -1
  18. package/dist/{chunk-TNYAYXKC.cjs → chunk-63QPCV4F.cjs} +35 -35
  19. package/dist/{chunk-TNYAYXKC.cjs.map → chunk-63QPCV4F.cjs.map} +1 -1
  20. package/dist/{chunk-FIOCTAXT.js → chunk-6KG76KUZ.js} +3 -3
  21. package/dist/{chunk-FIOCTAXT.js.map → chunk-6KG76KUZ.js.map} +1 -1
  22. package/dist/{chunk-RU7JPU7V.js → chunk-6KGF66TR.js} +3 -3
  23. package/dist/{chunk-RU7JPU7V.js.map → chunk-6KGF66TR.js.map} +1 -1
  24. package/dist/{chunk-FQN22DO5.js → chunk-6OWEKKOC.js} +6 -6
  25. package/dist/{chunk-FQN22DO5.js.map → chunk-6OWEKKOC.js.map} +1 -1
  26. package/dist/{chunk-BDFNEQR3.js → chunk-6R2UZNVE.js} +6 -6
  27. package/dist/{chunk-BDFNEQR3.js.map → chunk-6R2UZNVE.js.map} +1 -1
  28. package/dist/{chunk-AFJEAYR4.cjs → chunk-6SFMORQF.cjs} +5 -5
  29. package/dist/{chunk-AFJEAYR4.cjs.map → chunk-6SFMORQF.cjs.map} +1 -1
  30. package/dist/{chunk-XTLNUYCK.js → chunk-6SKIBUCY.js} +3 -3
  31. package/dist/{chunk-XTLNUYCK.js.map → chunk-6SKIBUCY.js.map} +1 -1
  32. package/dist/{chunk-VRQ66IBW.cjs → chunk-6SMVH3ON.cjs} +6 -6
  33. package/dist/{chunk-VRQ66IBW.cjs.map → chunk-6SMVH3ON.cjs.map} +1 -1
  34. package/dist/{chunk-WINDLDH3.cjs → chunk-6ZPHID26.cjs} +9 -9
  35. package/dist/{chunk-WINDLDH3.cjs.map → chunk-6ZPHID26.cjs.map} +1 -1
  36. package/dist/chunk-7VUDE5BI.js +91 -0
  37. package/dist/chunk-7VUDE5BI.js.map +1 -0
  38. package/dist/{chunk-DFEAB7Z3.cjs → chunk-AC4E3WQA.cjs} +10 -10
  39. package/dist/{chunk-DFEAB7Z3.cjs.map → chunk-AC4E3WQA.cjs.map} +1 -1
  40. package/dist/{chunk-4EUUZQAM.js → chunk-ACGPBJIS.js} +5 -5
  41. package/dist/{chunk-4EUUZQAM.js.map → chunk-ACGPBJIS.js.map} +1 -1
  42. package/dist/{chunk-DWZR2AGT.js → chunk-AO4RVSCG.js} +4 -4
  43. package/dist/{chunk-DWZR2AGT.js.map → chunk-AO4RVSCG.js.map} +1 -1
  44. package/dist/{chunk-P7TSM63O.js → chunk-AXTX3IOR.js} +3 -3
  45. package/dist/{chunk-P7TSM63O.js.map → chunk-AXTX3IOR.js.map} +1 -1
  46. package/dist/{chunk-KCI4I42U.js → chunk-BBLAZNCC.js} +8 -8
  47. package/dist/{chunk-KCI4I42U.js.map → chunk-BBLAZNCC.js.map} +1 -1
  48. package/dist/{chunk-ZUAWNT66.cjs → chunk-BF2DUOC3.cjs} +18 -18
  49. package/dist/{chunk-ZUAWNT66.cjs.map → chunk-BF2DUOC3.cjs.map} +1 -1
  50. package/dist/{chunk-6FC5YF2O.cjs → chunk-BPAZTKMC.cjs} +8 -8
  51. package/dist/{chunk-6FC5YF2O.cjs.map → chunk-BPAZTKMC.cjs.map} +1 -1
  52. package/dist/{chunk-CNDUYO7I.cjs → chunk-BYV7NXC5.cjs} +5 -5
  53. package/dist/{chunk-CNDUYO7I.cjs.map → chunk-BYV7NXC5.cjs.map} +1 -1
  54. package/dist/{chunk-MHAXS4GO.cjs → chunk-CKDB7QNT.cjs} +14 -2
  55. package/dist/chunk-CKDB7QNT.cjs.map +1 -0
  56. package/dist/{chunk-J4LJXCXB.cjs → chunk-CQYBC3RJ.cjs} +9 -9
  57. package/dist/{chunk-J4LJXCXB.cjs.map → chunk-CQYBC3RJ.cjs.map} +1 -1
  58. package/dist/{chunk-U5HW5P7Q.cjs → chunk-CWZCBYVZ.cjs} +11 -11
  59. package/dist/{chunk-U5HW5P7Q.cjs.map → chunk-CWZCBYVZ.cjs.map} +1 -1
  60. package/dist/{chunk-UZGPFPIV.cjs → chunk-D7TT4HUI.cjs} +17 -17
  61. package/dist/{chunk-UZGPFPIV.cjs.map → chunk-D7TT4HUI.cjs.map} +1 -1
  62. package/dist/{chunk-FWBYCTUB.cjs → chunk-DDMUYVSV.cjs} +15 -15
  63. package/dist/{chunk-FWBYCTUB.cjs.map → chunk-DDMUYVSV.cjs.map} +1 -1
  64. package/dist/{chunk-P5LMEANN.cjs → chunk-DTNIUZ3C.cjs} +5 -5
  65. package/dist/{chunk-P5LMEANN.cjs.map → chunk-DTNIUZ3C.cjs.map} +1 -1
  66. package/dist/{chunk-5JROXZBG.cjs → chunk-DVCDAKPK.cjs} +4 -4
  67. package/dist/{chunk-5JROXZBG.cjs.map → chunk-DVCDAKPK.cjs.map} +1 -1
  68. package/dist/{chunk-45OSUS5A.js → chunk-E6AKSBSP.js} +6 -6
  69. package/dist/{chunk-45OSUS5A.js.map → chunk-E6AKSBSP.js.map} +1 -1
  70. package/dist/{chunk-HMJINNXZ.js → chunk-EBV3EX3J.js} +3 -3
  71. package/dist/{chunk-HMJINNXZ.js.map → chunk-EBV3EX3J.js.map} +1 -1
  72. package/dist/chunk-ESWYWWY2.js +162 -0
  73. package/dist/chunk-ESWYWWY2.js.map +1 -0
  74. package/dist/{chunk-G5PU2EL2.js → chunk-FHUOUARL.js} +4 -4
  75. package/dist/{chunk-G5PU2EL2.js.map → chunk-FHUOUARL.js.map} +1 -1
  76. package/dist/{chunk-RXKDRZF3.js → chunk-FTNEAX24.js} +3 -3
  77. package/dist/{chunk-RXKDRZF3.js.map → chunk-FTNEAX24.js.map} +1 -1
  78. package/dist/{chunk-TQDJVPHP.js → chunk-FUU3I22W.js} +3 -3
  79. package/dist/{chunk-TQDJVPHP.js.map → chunk-FUU3I22W.js.map} +1 -1
  80. package/dist/{chunk-ERVWZILR.js → chunk-GKYGZWSQ.js} +3 -3
  81. package/dist/{chunk-ERVWZILR.js.map → chunk-GKYGZWSQ.js.map} +1 -1
  82. package/dist/{chunk-CABYRYVA.cjs → chunk-GLFWSLJB.cjs} +6 -6
  83. package/dist/{chunk-CABYRYVA.cjs.map → chunk-GLFWSLJB.cjs.map} +1 -1
  84. package/dist/{chunk-UYZQGHFI.js → chunk-GQ73VKKN.js} +8 -8
  85. package/dist/{chunk-UYZQGHFI.js.map → chunk-GQ73VKKN.js.map} +1 -1
  86. package/dist/{chunk-JHMUMJF3.js → chunk-GTZQT6MK.js} +4 -4
  87. package/dist/{chunk-JHMUMJF3.js.map → chunk-GTZQT6MK.js.map} +1 -1
  88. package/dist/{chunk-ZSB43DEI.js → chunk-HC57X3U4.js} +6 -6
  89. package/dist/{chunk-ZSB43DEI.js.map → chunk-HC57X3U4.js.map} +1 -1
  90. package/dist/{chunk-WAWHHXSR.js → chunk-HEF53COU.js} +3 -3
  91. package/dist/{chunk-WAWHHXSR.js.map → chunk-HEF53COU.js.map} +1 -1
  92. package/dist/{chunk-7EE6DCRP.cjs → chunk-HENIVDYQ.cjs} +18 -18
  93. package/dist/{chunk-7EE6DCRP.cjs.map → chunk-HENIVDYQ.cjs.map} +1 -1
  94. package/dist/{chunk-MHEPDHL5.cjs → chunk-HN4W6TM6.cjs} +14 -14
  95. package/dist/{chunk-MHEPDHL5.cjs.map → chunk-HN4W6TM6.cjs.map} +1 -1
  96. package/dist/{chunk-DPSAPA6B.js → chunk-I2DXEPDF.js} +5 -5
  97. package/dist/{chunk-DPSAPA6B.js.map → chunk-I2DXEPDF.js.map} +1 -1
  98. package/dist/{chunk-NG2H3PYA.cjs → chunk-J242UTPO.cjs} +16 -16
  99. package/dist/{chunk-NG2H3PYA.cjs.map → chunk-J242UTPO.cjs.map} +1 -1
  100. package/dist/{chunk-K2WT7A64.js → chunk-JMVYWHJ7.js} +3 -3
  101. package/dist/{chunk-K2WT7A64.js.map → chunk-JMVYWHJ7.js.map} +1 -1
  102. package/dist/{chunk-VREW3BK6.cjs → chunk-JTPVAZE6.cjs} +11 -11
  103. package/dist/{chunk-VREW3BK6.cjs.map → chunk-JTPVAZE6.cjs.map} +1 -1
  104. package/dist/{chunk-FLDTPAG4.cjs → chunk-JWMS6LHN.cjs} +6 -6
  105. package/dist/{chunk-FLDTPAG4.cjs.map → chunk-JWMS6LHN.cjs.map} +1 -1
  106. package/dist/{chunk-3M23WX6K.js → chunk-KB36TWOU.js} +4 -3
  107. package/dist/chunk-KB36TWOU.js.map +1 -0
  108. package/dist/{chunk-DK6USFZP.cjs → chunk-KLCEDPJ4.cjs} +19 -19
  109. package/dist/{chunk-DK6USFZP.cjs.map → chunk-KLCEDPJ4.cjs.map} +1 -1
  110. package/dist/{chunk-INQ34SVW.cjs → chunk-KLPVBJGZ.cjs} +5 -5
  111. package/dist/{chunk-INQ34SVW.cjs.map → chunk-KLPVBJGZ.cjs.map} +1 -1
  112. package/dist/{chunk-LLSWAAFH.js → chunk-L747HIHG.js} +4 -4
  113. package/dist/{chunk-LLSWAAFH.js.map → chunk-L747HIHG.js.map} +1 -1
  114. package/dist/{chunk-7TJ2O56S.js → chunk-LBOWHXOF.js} +23 -5
  115. package/dist/chunk-LBOWHXOF.js.map +1 -0
  116. package/dist/{chunk-H7VK36SZ.cjs → chunk-LTHPJRFK.cjs} +9 -8
  117. package/dist/chunk-LTHPJRFK.cjs.map +1 -0
  118. package/dist/{chunk-6ZV7HGZT.cjs → chunk-LWB2CTX6.cjs} +4 -4
  119. package/dist/{chunk-6ZV7HGZT.cjs.map → chunk-LWB2CTX6.cjs.map} +1 -1
  120. package/dist/{chunk-ENVDR66N.cjs → chunk-MJHEPDDX.cjs} +17 -17
  121. package/dist/{chunk-ENVDR66N.cjs.map → chunk-MJHEPDDX.cjs.map} +1 -1
  122. package/dist/{chunk-RAMDISDK.cjs → chunk-MYSLJWCW.cjs} +6 -6
  123. package/dist/{chunk-RAMDISDK.cjs.map → chunk-MYSLJWCW.cjs.map} +1 -1
  124. package/dist/{chunk-WEXTGWRE.js → chunk-N6C37HXD.js} +4 -4
  125. package/dist/{chunk-WEXTGWRE.js.map → chunk-N6C37HXD.js.map} +1 -1
  126. package/dist/{chunk-NW36BN7N.cjs → chunk-NGNVNRAZ.cjs} +17 -17
  127. package/dist/{chunk-NW36BN7N.cjs.map → chunk-NGNVNRAZ.cjs.map} +1 -1
  128. package/dist/{chunk-JR353MN5.js → chunk-NIKT7XSO.js} +7 -7
  129. package/dist/{chunk-JR353MN5.js.map → chunk-NIKT7XSO.js.map} +1 -1
  130. package/dist/{chunk-6I5QWA6A.js → chunk-NSWKBWPP.js} +6 -5
  131. package/dist/chunk-NSWKBWPP.js.map +1 -0
  132. package/dist/{chunk-2SN3KVWF.js → chunk-NYOZQE6P.js} +4 -4
  133. package/dist/{chunk-2SN3KVWF.js.map → chunk-NYOZQE6P.js.map} +1 -1
  134. package/dist/{chunk-CZUMVOPH.js → chunk-O3UT5D57.js} +19 -15
  135. package/dist/chunk-O3UT5D57.js.map +1 -0
  136. package/dist/{chunk-GU65FGY6.cjs → chunk-OCYZKZ24.cjs} +4 -4
  137. package/dist/{chunk-GU65FGY6.cjs.map → chunk-OCYZKZ24.cjs.map} +1 -1
  138. package/dist/{chunk-M64WMYYV.js → chunk-OPBELSKN.js} +6 -6
  139. package/dist/{chunk-M64WMYYV.js.map → chunk-OPBELSKN.js.map} +1 -1
  140. package/dist/{chunk-WM7NEOME.js → chunk-OUUG4RHO.js} +7 -7
  141. package/dist/{chunk-WM7NEOME.js.map → chunk-OUUG4RHO.js.map} +1 -1
  142. package/dist/{chunk-SKZNSOB7.cjs → chunk-OX2FNKIV.cjs} +6 -6
  143. package/dist/{chunk-SKZNSOB7.cjs.map → chunk-OX2FNKIV.cjs.map} +1 -1
  144. package/dist/{chunk-HKGFMJFK.js → chunk-PGBYMBGH.js} +16 -16
  145. package/dist/{chunk-HKGFMJFK.js.map → chunk-PGBYMBGH.js.map} +1 -1
  146. package/dist/{chunk-UT45YVPI.js → chunk-PK3NJSHQ.js} +8 -8
  147. package/dist/{chunk-UT45YVPI.js.map → chunk-PK3NJSHQ.js.map} +1 -1
  148. package/dist/{chunk-C6EWA3H2.js → chunk-PQXPYN23.js} +6 -6
  149. package/dist/{chunk-C6EWA3H2.js.map → chunk-PQXPYN23.js.map} +1 -1
  150. package/dist/{chunk-PHFJBQXU.cjs → chunk-PXTTIAC4.cjs} +8 -8
  151. package/dist/{chunk-PHFJBQXU.cjs.map → chunk-PXTTIAC4.cjs.map} +1 -1
  152. package/dist/{chunk-KG7RHDVX.js → chunk-Q6YOSQAM.js} +8 -8
  153. package/dist/{chunk-KG7RHDVX.js.map → chunk-Q6YOSQAM.js.map} +1 -1
  154. package/dist/{chunk-K2V3IOAX.js → chunk-QM7NQK2K.js} +3 -3
  155. package/dist/{chunk-K2V3IOAX.js.map → chunk-QM7NQK2K.js.map} +1 -1
  156. package/dist/{chunk-QTOFQB26.cjs → chunk-QQCEGAUQ.cjs} +16 -16
  157. package/dist/{chunk-QTOFQB26.cjs.map → chunk-QQCEGAUQ.cjs.map} +1 -1
  158. package/dist/chunk-RNUQWYJJ.cjs +93 -0
  159. package/dist/chunk-RNUQWYJJ.cjs.map +1 -0
  160. package/dist/{chunk-R3ZS6FU6.cjs → chunk-RX2FXCIH.cjs} +6 -6
  161. package/dist/{chunk-R3ZS6FU6.cjs.map → chunk-RX2FXCIH.cjs.map} +1 -1
  162. package/dist/{chunk-HPOURAKV.cjs → chunk-TACO5IWI.cjs} +14 -14
  163. package/dist/{chunk-HPOURAKV.cjs.map → chunk-TACO5IWI.cjs.map} +1 -1
  164. package/dist/{chunk-4JJFQZVY.js → chunk-TP6RGZ6A.js} +12 -12
  165. package/dist/{chunk-4JJFQZVY.js.map → chunk-TP6RGZ6A.js.map} +1 -1
  166. package/dist/{chunk-PNM7MPUX.cjs → chunk-U7QJJ3NR.cjs} +8 -8
  167. package/dist/{chunk-PNM7MPUX.cjs.map → chunk-U7QJJ3NR.cjs.map} +1 -1
  168. package/dist/{chunk-H5VMHDRD.cjs → chunk-UJDHRILS.cjs} +24 -6
  169. package/dist/chunk-UJDHRILS.cjs.map +1 -0
  170. package/dist/{chunk-EVCQCZMM.cjs → chunk-UNS7OCEA.cjs} +5 -5
  171. package/dist/{chunk-EVCQCZMM.cjs.map → chunk-UNS7OCEA.cjs.map} +1 -1
  172. package/dist/{chunk-SEDUAMDW.js → chunk-USEA7DB5.js} +3 -3
  173. package/dist/{chunk-SEDUAMDW.js.map → chunk-USEA7DB5.js.map} +1 -1
  174. package/dist/{chunk-LDYUVGD4.js → chunk-UUVI3TYW.js} +6 -6
  175. package/dist/{chunk-LDYUVGD4.js.map → chunk-UUVI3TYW.js.map} +1 -1
  176. package/dist/{chunk-QYZXTIB2.cjs → chunk-UW3KCCBT.cjs} +4 -4
  177. package/dist/{chunk-QYZXTIB2.cjs.map → chunk-UW3KCCBT.cjs.map} +1 -1
  178. package/dist/{chunk-PU4PBI3H.js → chunk-V5XVXQWE.js} +4 -4
  179. package/dist/{chunk-PU4PBI3H.js.map → chunk-V5XVXQWE.js.map} +1 -1
  180. package/dist/{chunk-GJKRSQEA.cjs → chunk-VCM4MR7N.cjs} +51 -47
  181. package/dist/chunk-VCM4MR7N.cjs.map +1 -0
  182. package/dist/{chunk-VXBVSYPA.cjs → chunk-VPHB56GK.cjs} +4 -3
  183. package/dist/chunk-VPHB56GK.cjs.map +1 -0
  184. package/dist/{chunk-TVWU4XBL.cjs → chunk-VWG54F6X.cjs} +6 -6
  185. package/dist/{chunk-TVWU4XBL.cjs.map → chunk-VWG54F6X.cjs.map} +1 -1
  186. package/dist/{chunk-DAO4UXR4.js → chunk-WG4NNC3P.js} +3 -3
  187. package/dist/{chunk-DAO4UXR4.js.map → chunk-WG4NNC3P.js.map} +1 -1
  188. package/dist/{chunk-LF6I2B7G.js → chunk-WLWSQKWI.js} +9 -9
  189. package/dist/{chunk-LF6I2B7G.js.map → chunk-WLWSQKWI.js.map} +1 -1
  190. package/dist/{chunk-VXOIOPGZ.cjs → chunk-WOVSJHY6.cjs} +5 -5
  191. package/dist/{chunk-VXOIOPGZ.cjs.map → chunk-WOVSJHY6.cjs.map} +1 -1
  192. package/dist/{chunk-QHXI2QDK.js → chunk-X2P5SPGB.js} +3 -3
  193. package/dist/{chunk-QHXI2QDK.js.map → chunk-X2P5SPGB.js.map} +1 -1
  194. package/dist/{chunk-JC66FRQX.js → chunk-XUCLNECV.js} +3 -3
  195. package/dist/{chunk-JC66FRQX.js.map → chunk-XUCLNECV.js.map} +1 -1
  196. package/dist/{chunk-VW52NVGM.cjs → chunk-Y2GYPMLW.cjs} +5 -5
  197. package/dist/{chunk-VW52NVGM.cjs.map → chunk-Y2GYPMLW.cjs.map} +1 -1
  198. package/dist/{chunk-ATK3F3MC.js → chunk-YAQB3UMC.js} +4 -4
  199. package/dist/{chunk-ATK3F3MC.js.map → chunk-YAQB3UMC.js.map} +1 -1
  200. package/dist/{chunk-B5QX6KGJ.js → chunk-YGESCFX2.js} +3 -3
  201. package/dist/{chunk-B5QX6KGJ.js.map → chunk-YGESCFX2.js.map} +1 -1
  202. package/dist/{chunk-PYJX2SBC.cjs → chunk-YQIDUJW2.cjs} +5 -5
  203. package/dist/{chunk-PYJX2SBC.cjs.map → chunk-YQIDUJW2.cjs.map} +1 -1
  204. package/dist/{chunk-UMS46KF4.cjs → chunk-YQVWDHP4.cjs} +7 -7
  205. package/dist/{chunk-UMS46KF4.cjs.map → chunk-YQVWDHP4.cjs.map} +1 -1
  206. package/dist/{chunk-NFEL5GNX.cjs → chunk-ZDZ7FW6V.cjs} +14 -14
  207. package/dist/{chunk-NFEL5GNX.cjs.map → chunk-ZDZ7FW6V.cjs.map} +1 -1
  208. package/dist/{chunk-3IDT3PZC.cjs → chunk-ZW2ZOEYM.cjs} +19 -13
  209. package/dist/chunk-ZW2ZOEYM.cjs.map +1 -0
  210. package/dist/components/Alert/index.cjs +5 -5
  211. package/dist/components/Alert/index.js +4 -4
  212. package/dist/components/AlertDialog/index.cjs +7 -7
  213. package/dist/components/AlertDialog/index.js +5 -5
  214. package/dist/components/AppShell/index.cjs +12 -12
  215. package/dist/components/AppShell/index.js +9 -9
  216. package/dist/components/AutocompleteInput/index.cjs +11 -11
  217. package/dist/components/AutocompleteInput/index.js +7 -7
  218. package/dist/components/Badge/Badge.d.ts.map +1 -1
  219. package/dist/components/Badge/Badge.recipe.d.ts +75 -41
  220. package/dist/components/Badge/Badge.recipe.d.ts.map +1 -1
  221. package/dist/components/Badge/index.cjs +3 -2
  222. package/dist/components/Badge/index.js +2 -1
  223. package/dist/components/Button/index.cjs +4 -4
  224. package/dist/components/Button/index.js +3 -3
  225. package/dist/components/Calendar/index.cjs +5 -5
  226. package/dist/components/Calendar/index.js +4 -4
  227. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +83 -0
  228. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
  229. package/dist/components/CheckboxGroup/CheckboxGroup.recipe.d.ts +17 -0
  230. package/dist/components/CheckboxGroup/CheckboxGroup.recipe.d.ts.map +1 -0
  231. package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts +13 -0
  232. package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts.map +1 -0
  233. package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts +58 -0
  234. package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts.map +1 -0
  235. package/dist/components/CheckboxGroup/index.cjs +35 -0
  236. package/dist/components/CheckboxGroup/index.cjs.map +1 -0
  237. package/dist/components/CheckboxGroup/index.d.ts +4 -0
  238. package/dist/components/CheckboxGroup/index.d.ts.map +1 -0
  239. package/dist/components/CheckboxGroup/index.js +22 -0
  240. package/dist/components/CheckboxGroup/index.js.map +1 -0
  241. package/dist/components/CheckboxInput/CheckboxInput.d.ts +11 -2
  242. package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  243. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts +6 -0
  244. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts.map +1 -1
  245. package/dist/components/CheckboxInput/index.cjs +5 -5
  246. package/dist/components/CheckboxInput/index.js +4 -4
  247. package/dist/components/CodeBlock/index.cjs +5 -5
  248. package/dist/components/CodeBlock/index.js +4 -4
  249. package/dist/components/ContextMenu/index.cjs +9 -9
  250. package/dist/components/ContextMenu/index.js +7 -7
  251. package/dist/components/DateInput/index.cjs +9 -9
  252. package/dist/components/DateInput/index.js +8 -8
  253. package/dist/components/DateRangeInput/index.cjs +9 -9
  254. package/dist/components/DateRangeInput/index.js +8 -8
  255. package/dist/components/DateTimeInput/index.cjs +11 -11
  256. package/dist/components/DateTimeInput/index.js +10 -10
  257. package/dist/components/DropdownMenu/index.cjs +10 -10
  258. package/dist/components/DropdownMenu/index.js +6 -6
  259. package/dist/components/EmptyState/index.cjs +3 -3
  260. package/dist/components/EmptyState/index.js +2 -2
  261. package/dist/components/Field/index.cjs +4 -4
  262. package/dist/components/Field/index.js +2 -2
  263. package/dist/components/Field/inputStyles.d.ts.map +1 -1
  264. package/dist/components/FileInput/index.cjs +6 -6
  265. package/dist/components/FileInput/index.js +5 -5
  266. package/dist/components/InputGroup/index.cjs +7 -7
  267. package/dist/components/InputGroup/index.js +3 -3
  268. package/dist/components/Item/index.cjs +3 -3
  269. package/dist/components/Item/index.js +2 -2
  270. package/dist/components/Layout/LayoutHeader.d.ts +7 -1
  271. package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
  272. package/dist/components/Layout/index.cjs +9 -9
  273. package/dist/components/Layout/index.js +4 -4
  274. package/dist/components/Lightbox/index.cjs +6 -6
  275. package/dist/components/Lightbox/index.js +4 -4
  276. package/dist/components/List/index.cjs +5 -5
  277. package/dist/components/List/index.js +3 -3
  278. package/dist/components/MetadataList/index.cjs +4 -4
  279. package/dist/components/MetadataList/index.js +2 -2
  280. package/dist/components/MultiSelect/index.cjs +9 -9
  281. package/dist/components/MultiSelect/index.js +8 -8
  282. package/dist/components/NumberInput/index.cjs +8 -8
  283. package/dist/components/NumberInput/index.js +7 -7
  284. package/dist/components/Pagination/index.cjs +5 -5
  285. package/dist/components/Pagination/index.js +4 -4
  286. package/dist/components/PasswordInput/index.cjs +9 -9
  287. package/dist/components/PasswordInput/index.js +8 -8
  288. package/dist/components/Popover/index.cjs +6 -6
  289. package/dist/components/Popover/index.js +4 -4
  290. package/dist/components/RadioGroup/index.cjs +6 -6
  291. package/dist/components/RadioGroup/index.js +4 -4
  292. package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
  293. package/dist/components/Schedule/index.cjs +25 -25
  294. package/dist/components/Schedule/index.js +10 -10
  295. package/dist/components/SearchFilterInput/index.cjs +25 -25
  296. package/dist/components/SearchFilterInput/index.js +17 -17
  297. package/dist/components/Select/index.cjs +10 -10
  298. package/dist/components/Select/index.js +8 -8
  299. package/dist/components/SideNav/index.cjs +12 -12
  300. package/dist/components/SideNav/index.js +6 -6
  301. package/dist/components/Slider/index.cjs +4 -4
  302. package/dist/components/Slider/index.js +3 -3
  303. package/dist/components/Spinner/index.cjs +3 -3
  304. package/dist/components/Spinner/index.js +2 -2
  305. package/dist/components/SplitButton/index.cjs +8 -8
  306. package/dist/components/SplitButton/index.js +7 -7
  307. package/dist/components/Stepper/index.cjs +3 -3
  308. package/dist/components/Stepper/index.js +2 -2
  309. package/dist/components/Switch/index.cjs +4 -4
  310. package/dist/components/Switch/index.js +3 -3
  311. package/dist/components/Table/index.cjs +48 -48
  312. package/dist/components/Table/index.js +22 -22
  313. package/dist/components/Tabs/index.cjs +10 -10
  314. package/dist/components/Tabs/index.js +5 -5
  315. package/dist/components/TagsInput/index.cjs +9 -9
  316. package/dist/components/TagsInput/index.js +8 -8
  317. package/dist/components/Text/index.cjs +3 -3
  318. package/dist/components/Text/index.js +1 -1
  319. package/dist/components/TextArea/index.cjs +6 -6
  320. package/dist/components/TextArea/index.js +5 -5
  321. package/dist/components/TextInput/index.cjs +8 -8
  322. package/dist/components/TextInput/index.js +7 -7
  323. package/dist/components/Thumbnail/index.cjs +5 -5
  324. package/dist/components/Thumbnail/index.js +4 -4
  325. package/dist/components/TimeInput/index.cjs +7 -7
  326. package/dist/components/TimeInput/index.js +6 -6
  327. package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
  328. package/dist/components/Toast/index.cjs +7 -7
  329. package/dist/components/Toast/index.js +4 -4
  330. package/dist/components/ToggleButton/index.cjs +5 -5
  331. package/dist/components/ToggleButton/index.js +3 -3
  332. package/dist/components/TopNav/index.cjs +10 -10
  333. package/dist/components/TopNav/index.js +5 -5
  334. package/dist/index.cjs +216 -207
  335. package/dist/index.cjs.map +1 -1
  336. package/dist/index.d.ts +1 -0
  337. package/dist/index.d.ts.map +1 -1
  338. package/dist/index.js +52 -51
  339. package/dist/index.js.map +1 -1
  340. package/dist/styles.css +1 -1
  341. package/package.json +1 -1
  342. package/dist/chunk-3IDT3PZC.cjs.map +0 -1
  343. package/dist/chunk-3M23WX6K.js.map +0 -1
  344. package/dist/chunk-6I5QWA6A.js.map +0 -1
  345. package/dist/chunk-7TJ2O56S.js.map +0 -1
  346. package/dist/chunk-CZUMVOPH.js.map +0 -1
  347. package/dist/chunk-GJKRSQEA.cjs.map +0 -1
  348. package/dist/chunk-GUUCIG7U.js.map +0 -1
  349. package/dist/chunk-H2EMKCWT.js +0 -78
  350. package/dist/chunk-H2EMKCWT.js.map +0 -1
  351. package/dist/chunk-H5VMHDRD.cjs.map +0 -1
  352. package/dist/chunk-H7VK36SZ.cjs.map +0 -1
  353. package/dist/chunk-KUXFEAT4.cjs +0 -80
  354. package/dist/chunk-KUXFEAT4.cjs.map +0 -1
  355. package/dist/chunk-MHAXS4GO.cjs.map +0 -1
  356. package/dist/chunk-NXTDP6AX.js.map +0 -1
  357. package/dist/chunk-VXBVSYPA.cjs.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.recipe.ts","../src/components/SideNav/SideNavItem.tsx","../src/components/SideNav/SideNavSection.tsx"],"names":["sva","createContext","use","css","jsx","Button","ChevronRight","ChevronLeft","useState","useCallback","useMemo","classes","jsxs","cx","MobileNav","Fragment","isReactNode","styles","useLinkComponent","Text","useAppShellMobile","useId","Icon","ActionElement","ChevronDown","Item","VisuallyHidden"],"mappings":"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","file":"chunk-ENVDR66N.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const sideNavRecipe = sva({\n slots: [\n 'root',\n 'stickyTop',\n 'scrollable',\n 'stickyBottom',\n 'footerRow',\n 'footerIcons',\n 'topbarIcons',\n ],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n h: '100%',\n w: '260px',\n bg: 'inherit',\n overflow: 'hidden',\n },\n stickyTop: {\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n p: '2',\n gap: '2',\n },\n scrollable: {\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n px: '2',\n },\n stickyBottom: {\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: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n },\n footerIcons: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n ms: 'auto',\n },\n topbarIcons: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n ms: 'auto',\n },\n },\n variants: {\n isCollapsed: {\n true: {\n root: {\n w: '12',\n },\n scrollable: {\n flex: 'none',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n footerRow: {\n flexDirection: 'column-reverse',\n alignItems: 'center',\n },\n footerIcons: {\n flexDirection: 'column',\n alignItems: 'center',\n ms: '0',\n },\n },\n false: {},\n },\n mode: {\n default: {},\n topbar: {\n root: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n h: '12',\n w: '100%',\n },\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 {Button} from 'components/Button';\nimport {useSideNavCollapse} from 'components/SideNav/SideNavContext';\nimport {css} from 'styled-system/css';\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 {sideNavRecipe} from 'components/SideNav/SideNav.recipe';\nimport {\n SideNavCollapseContext,\n useSideNavRenderMode,\n} from 'components/SideNav/SideNavContext';\nimport {SideNavCollapseButton} from 'components/SideNav/internal/SideNavCollapseButton';\nimport {MobileNav} from 'internal/MobileNav';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\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\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 const classes = sideNavRecipe({mode: 'topbar'});\n\n return (\n <div\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref as Ref<HTMLDivElement>}\n style={style}>\n {header}\n <div className={classes.topbarIcons}>{footerIcons}</div>\n </div>\n );\n }\n\n if (renderMode === 'drawer') {\n return (\n <MobileNav\n data-testid={dataTestId}\n header={header}\n ref={ref as Ref<HTMLDialogElement>}>\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 const classes = sideNavRecipe({isCollapsed});\n\n return (\n <SideNavCollapseContext value={collapseContext}>\n <nav\n aria-label=\"Side navigation\"\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {isReactNode(header) || (!isCollapsed && isReactNode(topContent)) ? (\n <div className={classes.stickyTop}>\n {header}\n {!isCollapsed ? topContent : null}\n </div>\n ) : null}\n <div className={classes.scrollable}>{children}</div>\n {isReactNode(footer) || isReactNode(footerIcons) || isCollapsible ? (\n <div className={classes.stickyBottom}>\n {footer}\n <div className={classes.footerRow}>\n {isCollapsible ? <SideNavCollapseButton /> : null}\n {isReactNode(footerIcons) ? (\n <div className={classes.footerIcons}>{footerIcons}</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 {useLinkComponent} from 'components/Link';\nimport type {LinkComponent} from 'components/Link';\nimport {useSideNavCollapse} from 'components/SideNav/SideNavContext';\nimport {Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\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","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\n// Shared text/layout styling for the expanded-row label. `item` is the row\n// itself (leaf and split-action branches) and additionally carries the selected\n// highlight; `toggleLabel` is the inner content of the toggle-row button, which\n// stays base-only because the highlight lives on the wrapping button instead.\nconst expandedLabelBase = {\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} as const;\n\nexport const sideNavItemRecipe = sva({\n slots: [\n 'item',\n 'icon',\n 'collapsed',\n 'toggleRow',\n 'toggleLabel',\n 'toggleButton',\n 'chevron',\n 'childrenContainer',\n 'childrenInner',\n ],\n base: {\n item: expandedLabelBase,\n toggleLabel: expandedLabelBase,\n icon: {\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: 'var(--silver-sizes-icon-md)',\n },\n collapsed: {\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 toggleRow: {\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 toggleButton: {\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 chevron: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n transitionProperty: 'transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n },\n childrenContainer: {\n display: 'grid',\n gridTemplateRows: '1fr',\n transitionProperty: 'grid-template-rows',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n },\n childrenInner: {\n overflow: 'hidden',\n ps: '6',\n },\n },\n variants: {\n isSelected: {\n true: {\n item: {bg: 'bg.hover', color: 'fg', fontWeight: 'semibold'},\n toggleRow: {bg: 'bg.hover', color: 'fg', fontWeight: 'semibold'},\n collapsed: {bg: 'bg.hover', color: 'fg'},\n },\n false: {},\n },\n isDisabled: {\n true: {\n collapsed: {\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n toggleRow: {\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n },\n false: {},\n },\n isExpanded: {\n true: {\n chevron: {transform: 'rotate(180deg)'},\n },\n false: {\n childrenContainer: {gridTemplateRows: '0fr'},\n },\n },\n },\n defaultVariants: {\n isSelected: false,\n isDisabled: false,\n isExpanded: true,\n },\n});\n\nexport type SideNavItemVariants = RecipeVariantProps<typeof sideNavItemRecipe>;\n","import {ChevronDown} from 'lucide-react';\nimport type {CSSProperties, MouseEventHandler, ReactNode, Ref} from 'react';\nimport {useCallback, useId, useState} from 'react';\nimport {useAppShellMobile} from 'components/AppShell/AppShellMobileContext';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Item} from 'components/Item';\nimport type {LinkComponent} from 'components/Link';\nimport {useSideNavCollapse} from 'components/SideNav/SideNavContext';\nimport {sideNavItemRecipe} from 'components/SideNav/SideNavItem.recipe';\nimport {ActionElement} from 'internal/ActionElement';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\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\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 {closeMobileNav, isMobileNavOpen} = 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 classes = sideNavItemRecipe({\n isSelected,\n isDisabled,\n // Only expandable items animate their children open/closed and rotate a\n // chevron; non-expandable items keep their children fully shown.\n isExpanded: !isExpandable || isExpanded,\n });\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 // Dismiss the mobile drawer after navigating, but only when it is actually\n // open so non-mobile render modes don't fire a no-op close on every click.\n if (isMobileNavOpen) {\n closeMobileNav();\n }\n };\n\n const iconSlot =\n icon != null ? (\n <span aria-hidden=\"true\" className={classes.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(classes.collapsed, className);\n\n return (\n <ActionElement\n aria-current={isSelected ? 'page' : undefined}\n aria-label={label}\n as={as}\n className={collapsedClassNames}\n data-testid={dataTestId}\n href={isDisabled ? undefined : href}\n isDisabled={href == null || isDisabled ? isDisabled : undefined}\n isLink={href != null && !isDisabled}\n onClick={handleClick}\n ref={ref}\n style={style}\n type=\"button\">\n {iconSlot}\n </ActionElement>\n );\n }\n\n // --- Expanded sidebar ---\n\n const chevronSlot = isExpandable ? (\n <span className={classes.chevron}>\n <Icon icon={ChevronDown} size=\"sm\" />\n </span>\n ) : null;\n\n const childrenContainer = isReactNode(children) ? (\n <div className={classes.childrenContainer} id={childrenId} role=\"group\">\n <div className={classes.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(classes.toggleRow, className)}\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={classes.toggleLabel}\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(classes.item, className)}\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={classes.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(classes.item, className)}\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 {useSideNavCollapse} from 'components/SideNav/SideNavContext';\nimport {Text} from 'components/Text';\nimport {VisuallyHidden} from 'internal';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\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 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.recipe.ts","../src/components/SideNav/SideNavItem.tsx","../src/components/SideNav/SideNavSection.tsx"],"names":["sva","createContext","use","css","jsx","Button","ChevronRight","ChevronLeft","useState","useCallback","useMemo","classes","jsxs","cx","MobileNav","Fragment","isReactNode","styles","useLinkComponent","Text","useAppShellMobile","useId","Icon","ActionElement","ChevronDown","Item","VisuallyHidden"],"mappings":"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","file":"chunk-MJHEPDDX.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const sideNavRecipe = sva({\n slots: [\n 'root',\n 'stickyTop',\n 'scrollable',\n 'stickyBottom',\n 'footerRow',\n 'footerIcons',\n 'topbarIcons',\n ],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n h: '100%',\n w: '260px',\n bg: 'inherit',\n overflow: 'hidden',\n },\n stickyTop: {\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n p: '2',\n gap: '2',\n },\n scrollable: {\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n px: '2',\n },\n stickyBottom: {\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: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n },\n footerIcons: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n ms: 'auto',\n },\n topbarIcons: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n ms: 'auto',\n },\n },\n variants: {\n isCollapsed: {\n true: {\n root: {\n w: '12',\n },\n scrollable: {\n flex: 'none',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n footerRow: {\n flexDirection: 'column-reverse',\n alignItems: 'center',\n },\n footerIcons: {\n flexDirection: 'column',\n alignItems: 'center',\n ms: '0',\n },\n },\n false: {},\n },\n mode: {\n default: {},\n topbar: {\n root: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n h: '12',\n w: '100%',\n },\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 {Button} from 'components/Button';\nimport {useSideNavCollapse} from 'components/SideNav/SideNavContext';\nimport {css} from 'styled-system/css';\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 {sideNavRecipe} from 'components/SideNav/SideNav.recipe';\nimport {\n SideNavCollapseContext,\n useSideNavRenderMode,\n} from 'components/SideNav/SideNavContext';\nimport {SideNavCollapseButton} from 'components/SideNav/internal/SideNavCollapseButton';\nimport {MobileNav} from 'internal/MobileNav';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\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\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 const classes = sideNavRecipe({mode: 'topbar'});\n\n return (\n <div\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref as Ref<HTMLDivElement>}\n style={style}>\n {header}\n <div className={classes.topbarIcons}>{footerIcons}</div>\n </div>\n );\n }\n\n if (renderMode === 'drawer') {\n return (\n <MobileNav\n data-testid={dataTestId}\n header={header}\n ref={ref as Ref<HTMLDialogElement>}>\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 const classes = sideNavRecipe({isCollapsed});\n\n return (\n <SideNavCollapseContext value={collapseContext}>\n <nav\n aria-label=\"Side navigation\"\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {isReactNode(header) || (!isCollapsed && isReactNode(topContent)) ? (\n <div className={classes.stickyTop}>\n {header}\n {!isCollapsed ? topContent : null}\n </div>\n ) : null}\n <div className={classes.scrollable}>{children}</div>\n {isReactNode(footer) || isReactNode(footerIcons) || isCollapsible ? (\n <div className={classes.stickyBottom}>\n {footer}\n <div className={classes.footerRow}>\n {isCollapsible ? <SideNavCollapseButton /> : null}\n {isReactNode(footerIcons) ? (\n <div className={classes.footerIcons}>{footerIcons}</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 {useLinkComponent} from 'components/Link';\nimport type {LinkComponent} from 'components/Link';\nimport {useSideNavCollapse} from 'components/SideNav/SideNavContext';\nimport {Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\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","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\n// Shared text/layout styling for the expanded-row label. `item` is the row\n// itself (leaf and split-action branches) and additionally carries the selected\n// highlight; `toggleLabel` is the inner content of the toggle-row button, which\n// stays base-only because the highlight lives on the wrapping button instead.\nconst expandedLabelBase = {\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} as const;\n\nexport const sideNavItemRecipe = sva({\n slots: [\n 'item',\n 'icon',\n 'collapsed',\n 'toggleRow',\n 'toggleLabel',\n 'toggleButton',\n 'chevron',\n 'childrenContainer',\n 'childrenInner',\n ],\n base: {\n item: expandedLabelBase,\n toggleLabel: expandedLabelBase,\n icon: {\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: 'var(--silver-sizes-icon-md)',\n },\n collapsed: {\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 toggleRow: {\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 toggleButton: {\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 chevron: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n transitionProperty: 'transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n },\n childrenContainer: {\n display: 'grid',\n gridTemplateRows: '1fr',\n transitionProperty: 'grid-template-rows',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n },\n childrenInner: {\n overflow: 'hidden',\n ps: '6',\n },\n },\n variants: {\n isSelected: {\n true: {\n item: {bg: 'bg.hover', color: 'fg', fontWeight: 'semibold'},\n toggleRow: {bg: 'bg.hover', color: 'fg', fontWeight: 'semibold'},\n collapsed: {bg: 'bg.hover', color: 'fg'},\n },\n false: {},\n },\n isDisabled: {\n true: {\n collapsed: {\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n toggleRow: {\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n },\n false: {},\n },\n isExpanded: {\n true: {\n chevron: {transform: 'rotate(180deg)'},\n },\n false: {\n childrenContainer: {gridTemplateRows: '0fr'},\n },\n },\n },\n defaultVariants: {\n isSelected: false,\n isDisabled: false,\n isExpanded: true,\n },\n});\n\nexport type SideNavItemVariants = RecipeVariantProps<typeof sideNavItemRecipe>;\n","import {ChevronDown} from 'lucide-react';\nimport type {CSSProperties, MouseEventHandler, ReactNode, Ref} from 'react';\nimport {useCallback, useId, useState} from 'react';\nimport {useAppShellMobile} from 'components/AppShell/AppShellMobileContext';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Item} from 'components/Item';\nimport type {LinkComponent} from 'components/Link';\nimport {useSideNavCollapse} from 'components/SideNav/SideNavContext';\nimport {sideNavItemRecipe} from 'components/SideNav/SideNavItem.recipe';\nimport {ActionElement} from 'internal/ActionElement';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\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\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 {closeMobileNav, isMobileNavOpen} = 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 classes = sideNavItemRecipe({\n isSelected,\n isDisabled,\n // Only expandable items animate their children open/closed and rotate a\n // chevron; non-expandable items keep their children fully shown.\n isExpanded: !isExpandable || isExpanded,\n });\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 // Dismiss the mobile drawer after navigating, but only when it is actually\n // open so non-mobile render modes don't fire a no-op close on every click.\n if (isMobileNavOpen) {\n closeMobileNav();\n }\n };\n\n const iconSlot =\n icon != null ? (\n <span aria-hidden=\"true\" className={classes.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(classes.collapsed, className);\n\n return (\n <ActionElement\n aria-current={isSelected ? 'page' : undefined}\n aria-label={label}\n as={as}\n className={collapsedClassNames}\n data-testid={dataTestId}\n href={isDisabled ? undefined : href}\n isDisabled={href == null || isDisabled ? isDisabled : undefined}\n isLink={href != null && !isDisabled}\n onClick={handleClick}\n ref={ref}\n style={style}\n type=\"button\">\n {iconSlot}\n </ActionElement>\n );\n }\n\n // --- Expanded sidebar ---\n\n const chevronSlot = isExpandable ? (\n <span className={classes.chevron}>\n <Icon icon={ChevronDown} size=\"sm\" />\n </span>\n ) : null;\n\n const childrenContainer = isReactNode(children) ? (\n <div className={classes.childrenContainer} id={childrenId} role=\"group\">\n <div className={classes.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(classes.toggleRow, className)}\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={classes.toggleLabel}\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(classes.item, className)}\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={classes.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(classes.item, className)}\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 {useSideNavCollapse} from 'components/SideNav/SideNavContext';\nimport {Text} from 'components/Text';\nimport {VisuallyHidden} from 'internal';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\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 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,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkVXOIOPGZ_cjs = require('./chunk-VXOIOPGZ.cjs');
3
+ var chunkWOVSJHY6_cjs = require('./chunk-WOVSJHY6.cjs');
4
4
  var chunk2MXK2SDR_cjs = require('./chunk-2MXK2SDR.cjs');
5
- var chunkMHAXS4GO_cjs = require('./chunk-MHAXS4GO.cjs');
5
+ var chunkCKDB7QNT_cjs = require('./chunk-CKDB7QNT.cjs');
6
6
  var chunkVK7DXUGH_cjs = require('./chunk-VK7DXUGH.cjs');
7
7
  var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
8
8
  var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
@@ -151,7 +151,7 @@ function usePopover({
151
151
  children: [
152
152
  children,
153
153
  hasCloseButton ? /* @__PURE__ */ jsxRuntime.jsx(chunk2MXK2SDR_cjs.VisuallyHidden, { children: /* @__PURE__ */ jsxRuntime.jsx(
154
- chunkVXOIOPGZ_cjs.Button,
154
+ chunkWOVSJHY6_cjs.Button,
155
155
  {
156
156
  icon: lucideReact.X,
157
157
  isIconOnly: true,
@@ -347,7 +347,7 @@ function Popover({
347
347
  }
348
348
  }, [isControlled, isOpen, popover]);
349
349
  const widthStyle = width == null ? void 0 : { width: typeof width === "number" ? `${width}px` : width };
350
- const paddingStyle = padding != null && padding !== 0 ? { padding: chunkMHAXS4GO_cjs.token(`spacing.${padding}`) } : void 0;
350
+ const paddingStyle = padding != null && padding !== 0 ? { padding: chunkCKDB7QNT_cjs.token(`spacing.${padding}`) } : void 0;
351
351
  const popoverContent = popover.render(
352
352
  /* @__PURE__ */ jsxRuntime.jsx(
353
353
  "div",
@@ -380,5 +380,5 @@ Popover.displayName = "Popover";
380
380
 
381
381
  exports.Popover = Popover;
382
382
  exports.usePopover = usePopover;
383
- //# sourceMappingURL=chunk-RAMDISDK.cjs.map
384
- //# sourceMappingURL=chunk-RAMDISDK.cjs.map
383
+ //# sourceMappingURL=chunk-MYSLJWCW.cjs.map
384
+ //# sourceMappingURL=chunk-MYSLJWCW.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/internal/useFocusTrap.ts","../src/components/Popover/usePopover.tsx","../src/components/Popover/Popover.tsx"],"names":["useRef","useCallback","useEffect","css","useLayer","jsxs","VisuallyHidden","jsx","Button","X","useMemo","styles","useIsomorphicLayoutEffect","token","cx","isReactNode","Fragment"],"mappings":"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","file":"chunk-RAMDISDK.cjs","sourcesContent":["import {useCallback, useEffect, useRef} from 'react';\n\nconst FOCUSABLE_SELECTOR =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled])';\n\nexport interface UseFocusTrapOptions {\n isActive: boolean;\n onEscape?: () => void;\n}\n\nexport interface UseFocusTrapReturn<T extends HTMLElement = HTMLElement> {\n containerRef: React.RefObject<T | null>;\n focusFirst: () => void;\n}\n\nfunction getFocusableElements(container: HTMLElement): HTMLElement[] {\n return Array.from(\n container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n );\n}\n\nfunction focusFirstDescendant(container: HTMLElement): void {\n getFocusableElements(container)[0]?.focus();\n}\n\nfunction focusLastDescendant(container: HTMLElement): void {\n const elements = getFocusableElements(container);\n elements.at(-1)?.focus();\n}\n\nexport function useFocusTrap<T extends HTMLElement = HTMLElement>({\n isActive,\n onEscape,\n}: UseFocusTrapOptions): UseFocusTrapReturn<T> {\n const containerRef = useRef<T>(null);\n\n const focusFirst = useCallback(() => {\n if (containerRef.current != null) {\n focusFirstDescendant(containerRef.current);\n }\n }, []);\n\n useEffect(() => {\n if (!isActive) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const container = containerRef.current;\n if (container == null) {\n return;\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n onEscape?.();\n return;\n }\n\n if (event.key !== 'Tab') {\n return;\n }\n\n const focusable = getFocusableElements(container);\n if (focusable.length === 0) {\n return;\n }\n\n const first = focusable[0];\n const last = focusable.at(-1);\n if (event.shiftKey && document.activeElement === first) {\n event.preventDefault();\n focusLastDescendant(container);\n } else if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault();\n focusFirstDescendant(container);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [isActive, onEscape]);\n\n return {containerRef, focusFirst};\n}\n","import {X} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n type ReactNode,\n type RefCallback,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {VisuallyHidden} from 'internal';\nimport {useFocusTrap} from 'internal/useFocusTrap';\nimport {useLayer, type ContextRenderProps} from 'internal/useLayer';\nimport {css} from 'styled-system/css';\n\nexport type {LayerAlignment, LayerPlacement} from 'internal/useLayer';\n\nexport interface UsePopoverOptions {\n /**\n * Accessible label for the close button rendered when `hasCloseButton` is\n * `true`. Defaults to `'Close popover'`.\n */\n closeButtonLabel?: string;\n /**\n * When `true`, focus moves to the first focusable element inside the popover\n * when it opens. Defaults to `true`.\n */\n hasAutoFocus?: boolean;\n /**\n * When `true`, renders a visually hidden close button inside the popover so\n * assistive technology users can dismiss it. Defaults to `true`.\n */\n hasCloseButton?: boolean;\n /**\n * When `true`, wraps the content in a styled surface (background, border,\n * shadow). Set to `false` to render unstyled content. Defaults to `true`.\n */\n hasSurface?: boolean;\n /**\n * When `true`, the popover can be dismissed by clicking outside or pressing\n * Escape. Defaults to `true`.\n */\n isDismissable?: boolean;\n /**\n * Accessible label applied to the popover content via `aria-label`.\n */\n label?: string;\n /**\n * Id applied to the underlying layer element. Falls back to a generated id.\n * Supply this when another element needs a stable `aria-controls` reference\n * to the popover.\n */\n layerId?: string;\n /**\n * Called after the popover is hidden, including via light dismiss.\n */\n onHide?: () => void;\n /**\n * Called after the popover is shown.\n */\n onShow?: () => void;\n /**\n * ARIA role for the popover content. Defaults to `'dialog'`; use `'menu'` for\n * menu-style popovers.\n */\n role?: 'dialog' | 'menu';\n}\n\nexport interface UsePopoverReturn {\n /**\n * CSS anchor name tying the popover content to the trigger for positioning.\n */\n anchorId: string;\n /**\n * Ref attached to the popover content element.\n */\n contentRef: React.RefObject<HTMLDivElement | null>;\n /**\n * Hides the popover.\n */\n hide: () => void;\n /**\n * Id of the underlying layer element, matching `triggerProps['aria-controls']`.\n */\n id: string;\n /**\n * Whether the popover is currently open.\n */\n isOpen: boolean;\n /**\n * Renders the given children inside the popover layer.\n */\n render: (children: ReactNode, props?: ContextRenderProps) => ReactNode;\n /**\n * Shows the popover. Pass `isAutoFocusSkipped` to suppress moving focus into\n * the content for this open.\n */\n show: (options?: {isAutoFocusSkipped?: boolean}) => void;\n /**\n * Toggles the popover between open and closed.\n */\n toggle: () => void;\n /**\n * ARIA props to spread onto the trigger element.\n */\n triggerProps: {\n 'aria-controls': string;\n 'aria-expanded': boolean;\n 'aria-haspopup': 'dialog' | 'menu';\n };\n /**\n * Ref callback to attach to the trigger element for anchor positioning.\n */\n triggerRef: RefCallback<HTMLElement>;\n}\n\nconst styles = {\n surface: css({\n position: 'relative',\n bg: 'bg',\n borderRadius: 'md',\n boxShadow: 'lg',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border',\n }),\n} as const;\n\nexport function usePopover({\n onShow,\n onHide,\n isDismissable = true,\n hasAutoFocus = true,\n hasSurface = true,\n hasCloseButton = true,\n closeButtonLabel = 'Close popover',\n label,\n role = 'dialog',\n layerId,\n}: UsePopoverOptions = {}): UsePopoverReturn {\n const skipAutoFocusRef = useRef(false);\n // Guards against a light-dismiss close immediately re-opening the popover.\n // When the trigger is clicked while the popover is open, the browser's native\n // light dismiss closes it (firing `onHide`) *before* the trigger's own click\n // handler runs `toggle()` — which would otherwise re-open it. The flag is\n // cleared on the next animation frame: the browser never paints mid-gesture,\n // so it is reliably still set when the spurious click arrives, yet cleared\n // before any genuine later click.\n const isDismissingRef = useRef(false);\n\n const handleHide = useCallback(() => {\n isDismissingRef.current = true;\n requestAnimationFrame(() => {\n isDismissingRef.current = false;\n });\n onHide?.();\n }, [onHide]);\n\n const layer = useLayer({\n isDismissable,\n id: layerId,\n onShow,\n onHide: handleHide,\n });\n const {containerRef: contentRef, focusFirst} = useFocusTrap<HTMLDivElement>({\n isActive: layer.isOpen,\n onEscape: layer.hide,\n });\n\n useEffect(() => {\n if (!layer.isOpen) {\n skipAutoFocusRef.current = false;\n return;\n }\n\n if (hasAutoFocus && !skipAutoFocusRef.current) {\n requestAnimationFrame(() => focusFirst());\n }\n }, [focusFirst, hasAutoFocus, layer.isOpen]);\n\n const show = useCallback(\n (options?: {isAutoFocusSkipped?: boolean}) => {\n skipAutoFocusRef.current = options?.isAutoFocusSkipped ?? false;\n layer.show();\n },\n [layer],\n );\n\n const toggle = useCallback(() => {\n if (isDismissingRef.current) {\n return;\n }\n\n if (layer.isOpen) {\n layer.hide();\n return;\n }\n\n show();\n }, [layer, show]);\n\n const render = useCallback(\n (children: ReactNode, props?: ContextRenderProps): ReactNode => {\n return layer.render(\n <div\n aria-label={label}\n className={hasSurface ? styles.surface : undefined}\n ref={contentRef}\n role={role}>\n {children}\n {hasCloseButton ? (\n <VisuallyHidden>\n <Button\n icon={X}\n isIconOnly\n label={closeButtonLabel}\n onClick={layer.hide}\n size=\"sm\"\n variant=\"ghost\"\n />\n </VisuallyHidden>\n ) : null}\n </div>,\n {\n ...props,\n className: props?.className,\n },\n );\n },\n [\n closeButtonLabel,\n contentRef,\n hasCloseButton,\n hasSurface,\n label,\n layer,\n role,\n ],\n );\n\n const triggerProps = useMemo(\n () => ({\n 'aria-controls': layer.id,\n 'aria-expanded': layer.isOpen,\n 'aria-haspopup': role,\n }),\n [layer.id, layer.isOpen, role],\n );\n\n return useMemo(\n () => ({\n anchorId: layer.anchorId,\n contentRef,\n hide: layer.hide,\n id: layer.id,\n isOpen: layer.isOpen,\n render,\n show,\n toggle,\n triggerProps,\n triggerRef: layer.ref,\n }),\n [\n contentRef,\n layer.anchorId,\n layer.hide,\n layer.id,\n layer.isOpen,\n layer.ref,\n render,\n show,\n toggle,\n triggerProps,\n ],\n );\n}\n","import {\n useCallback,\n useRef,\n type CSSProperties,\n type ReactNode,\n type Ref,\n type RefObject,\n} from 'react';\nimport {usePopover} from 'components/Popover/usePopover';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport type {SpacingToken} from 'internal/spacingTokens';\nimport {useIsomorphicLayoutEffect} from 'internal/useIsomorphicLayoutEffect';\nimport type {LayerAlignment, LayerPlacement} from 'internal/useLayer';\nimport {css} from 'styled-system/css';\nimport {token} from 'styled-system/tokens';\n\nexport interface PopoverProps {\n /**\n * Alignment along the placement axis.\n * @default 'start'\n */\n alignment?: LayerAlignment;\n /**\n * External trigger element. When provided without children, Popover attaches\n * click and ARIA behavior directly to this element.\n */\n anchorRef?: RefObject<HTMLElement | null>;\n /**\n * Trigger content. Must contain a `<button>` or `[role=\"button\"]`.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the popover content.\n */\n className?: string;\n /**\n * Label for the hidden close button.\n * @default 'Close popover'\n */\n closeButtonLabel?: string;\n /**\n * Content displayed inside the popover dialog.\n */\n content: ReactNode;\n /**\n * Test ID applied to the popover content.\n */\n 'data-testid'?: string;\n /**\n * Whether to focus the first focusable item after opening.\n * @default true\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to include a keyboard-accessible close button.\n * @default true\n */\n hasCloseButton?: boolean;\n /**\n * Id applied to the popover content element. Falls back to a generated id.\n * Supply this when another element needs a stable `aria-controls` reference\n * to the popover.\n */\n id?: string;\n /**\n * Whether clicking outside or pressing Escape closes the popover.\n * @default true\n */\n isDismissable?: boolean;\n /**\n * Whether trigger interactions open the popover.\n * @default true\n */\n isEnabled?: boolean;\n /**\n * Controlled open state.\n */\n isOpen?: boolean;\n /**\n * Accessible label for the popover dialog.\n */\n label?: string;\n /**\n * Gap in pixels between the popover and its trigger along the inline axis\n * (for `start`/`end` placements). Applied as a logical margin so it stays on\n * the trigger-facing side even when the popover flips.\n */\n offsetX?: number;\n /**\n * Gap in pixels between the popover and its trigger along the block axis (for\n * `above`/`below` placements). Applied as a logical margin so it stays on the\n * trigger-facing side even when the popover flips.\n */\n offsetY?: number;\n /**\n * Callback fired when open state changes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Inner padding of the popover content.\n * @default 0\n */\n padding?: SpacingToken;\n /**\n * Position relative to the trigger.\n * @default 'below'\n */\n placement?: LayerPlacement;\n /**\n * Ref forwarded to the popover content element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * ARIA role for the floating content.\n * @default 'dialog'\n */\n role?: 'dialog' | 'menu';\n /**\n * Inline styles applied to the popover content.\n */\n style?: CSSProperties;\n /**\n * Width of the popover content.\n */\n width?: number | string;\n}\n\nconst BUTTON_SELECTOR = 'button, [role=\"button\"]';\n\nconst styles = {\n anchor: css({\n display: 'inline-flex',\n }),\n content: css({}),\n gap: {\n above: css({mb: '1'}),\n below: css({mt: '1'}),\n start: css({mr: '1'}),\n end: css({ml: '1'}),\n },\n} as const;\n\nfunction findTriggerButton(element: HTMLElement): HTMLElement | null {\n if (element.matches(BUTTON_SELECTOR)) {\n return element;\n }\n\n return element.querySelector<HTMLElement>(BUTTON_SELECTOR);\n}\n\n/**\n * A click-triggered floating dialog anchored to a trigger element.\n */\nexport function Popover({\n anchorRef,\n children,\n content,\n placement = 'below',\n alignment = 'start',\n isOpen,\n onOpenChange,\n offsetX,\n offsetY,\n isEnabled = true,\n width,\n label,\n hasCloseButton,\n isDismissable,\n closeButtonLabel,\n padding,\n ref,\n hasAutoFocus,\n className,\n style,\n role,\n id,\n 'data-testid': dataTestId,\n}: PopoverProps): React.JSX.Element {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const isControlled = isOpen !== undefined;\n\n const popover = usePopover({\n closeButtonLabel,\n hasAutoFocus,\n hasCloseButton,\n isDismissable,\n label,\n layerId: id,\n onHide: () => onOpenChange?.(false),\n onShow: () => onOpenChange?.(true),\n role,\n });\n\n const handleTriggerClick = useCallback(() => {\n if (!isEnabled) {\n return;\n }\n\n popover.toggle();\n }, [isEnabled, popover]);\n\n const handleTriggerKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleTriggerClick();\n }\n },\n [handleTriggerClick],\n );\n\n // ARIA and listeners are applied imperatively because the trigger button can\n // be any element the consumer renders — nested anywhere inside `children`, or\n // an entirely external element via `anchorRef` — so Popover cannot inject\n // props through JSX. This is safe: React only reconciles attributes present\n // in its own virtual DOM, so it never clobbers these imperatively-set ones on\n // re-render. The only dynamic attribute, `aria-expanded`, stays in sync\n // because `popover.triggerProps` is memoized on the open state, so this\n // callback (and the effect below that re-runs it) re-applies the fresh value\n // on every toggle. Keep `triggerProps` in the dep arrays or that sync breaks.\n const attachTrigger = useCallback(\n (button: HTMLElement) => {\n button.setAttribute(\n 'aria-haspopup',\n popover.triggerProps['aria-haspopup'],\n );\n button.setAttribute(\n 'aria-expanded',\n String(popover.triggerProps['aria-expanded']),\n );\n button.setAttribute(\n 'aria-controls',\n popover.triggerProps['aria-controls'],\n );\n button.addEventListener('click', handleTriggerClick);\n\n const needsKeyDown =\n button.tagName !== 'BUTTON' && button.getAttribute('role') === 'button';\n if (needsKeyDown) {\n button.addEventListener('keydown', handleTriggerKeyDown);\n }\n\n return () => {\n button.removeAttribute('aria-haspopup');\n button.removeAttribute('aria-expanded');\n button.removeAttribute('aria-controls');\n button.removeEventListener('click', handleTriggerClick);\n if (needsKeyDown) {\n button.removeEventListener('keydown', handleTriggerKeyDown);\n }\n };\n },\n [handleTriggerClick, handleTriggerKeyDown, popover.triggerProps],\n );\n\n useIsomorphicLayoutEffect(() => {\n const anchor = anchorRef?.current ?? wrapperRef.current;\n if (anchor == null) {\n return;\n }\n\n popover.triggerRef(anchor);\n const trigger = findTriggerButton(anchor);\n if (trigger == null || !isEnabled) {\n return () => {\n popover.triggerRef(null);\n };\n }\n\n const detach = attachTrigger(trigger);\n return () => {\n popover.triggerRef(null);\n detach();\n };\n }, [anchorRef, attachTrigger, isEnabled, popover]);\n\n useIsomorphicLayoutEffect(() => {\n if (!isControlled) {\n return;\n }\n\n if (isOpen === true && !popover.isOpen) {\n popover.show();\n } else if (isOpen === false && popover.isOpen) {\n popover.hide();\n }\n }, [isControlled, isOpen, popover]);\n\n const widthStyle =\n width == null\n ? undefined\n : {width: typeof width === 'number' ? `${width}px` : width};\n\n const paddingStyle =\n padding != null && padding !== 0\n ? {padding: token(`spacing.${padding}`)}\n : undefined;\n\n const popoverContent = popover.render(\n <div\n className={cx(styles.content, className)}\n data-testid={dataTestId}\n ref={ref}\n style={{...paddingStyle, ...widthStyle, ...style}}>\n {content}\n </div>,\n {\n placement,\n alignment,\n offsetX,\n offsetY,\n className: styles.gap[placement],\n style: {minWidth: 'anchor-size(width)'},\n },\n );\n\n if (anchorRef != null && !isReactNode(children)) {\n return <>{popoverContent}</>;\n }\n\n return (\n <>\n <div className={styles.anchor} ref={wrapperRef}>\n {children}\n </div>\n {popoverContent}\n </>\n );\n}\n\nPopover.displayName = 'Popover';\n"]}
1
+ {"version":3,"sources":["../src/internal/useFocusTrap.ts","../src/components/Popover/usePopover.tsx","../src/components/Popover/Popover.tsx"],"names":["useRef","useCallback","useEffect","css","useLayer","jsxs","VisuallyHidden","jsx","Button","X","useMemo","styles","useIsomorphicLayoutEffect","token","cx","isReactNode","Fragment"],"mappings":"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","file":"chunk-MYSLJWCW.cjs","sourcesContent":["import {useCallback, useEffect, useRef} from 'react';\n\nconst FOCUSABLE_SELECTOR =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled])';\n\nexport interface UseFocusTrapOptions {\n isActive: boolean;\n onEscape?: () => void;\n}\n\nexport interface UseFocusTrapReturn<T extends HTMLElement = HTMLElement> {\n containerRef: React.RefObject<T | null>;\n focusFirst: () => void;\n}\n\nfunction getFocusableElements(container: HTMLElement): HTMLElement[] {\n return Array.from(\n container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n );\n}\n\nfunction focusFirstDescendant(container: HTMLElement): void {\n getFocusableElements(container)[0]?.focus();\n}\n\nfunction focusLastDescendant(container: HTMLElement): void {\n const elements = getFocusableElements(container);\n elements.at(-1)?.focus();\n}\n\nexport function useFocusTrap<T extends HTMLElement = HTMLElement>({\n isActive,\n onEscape,\n}: UseFocusTrapOptions): UseFocusTrapReturn<T> {\n const containerRef = useRef<T>(null);\n\n const focusFirst = useCallback(() => {\n if (containerRef.current != null) {\n focusFirstDescendant(containerRef.current);\n }\n }, []);\n\n useEffect(() => {\n if (!isActive) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const container = containerRef.current;\n if (container == null) {\n return;\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n onEscape?.();\n return;\n }\n\n if (event.key !== 'Tab') {\n return;\n }\n\n const focusable = getFocusableElements(container);\n if (focusable.length === 0) {\n return;\n }\n\n const first = focusable[0];\n const last = focusable.at(-1);\n if (event.shiftKey && document.activeElement === first) {\n event.preventDefault();\n focusLastDescendant(container);\n } else if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault();\n focusFirstDescendant(container);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [isActive, onEscape]);\n\n return {containerRef, focusFirst};\n}\n","import {X} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n type ReactNode,\n type RefCallback,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {VisuallyHidden} from 'internal';\nimport {useFocusTrap} from 'internal/useFocusTrap';\nimport {useLayer, type ContextRenderProps} from 'internal/useLayer';\nimport {css} from 'styled-system/css';\n\nexport type {LayerAlignment, LayerPlacement} from 'internal/useLayer';\n\nexport interface UsePopoverOptions {\n /**\n * Accessible label for the close button rendered when `hasCloseButton` is\n * `true`. Defaults to `'Close popover'`.\n */\n closeButtonLabel?: string;\n /**\n * When `true`, focus moves to the first focusable element inside the popover\n * when it opens. Defaults to `true`.\n */\n hasAutoFocus?: boolean;\n /**\n * When `true`, renders a visually hidden close button inside the popover so\n * assistive technology users can dismiss it. Defaults to `true`.\n */\n hasCloseButton?: boolean;\n /**\n * When `true`, wraps the content in a styled surface (background, border,\n * shadow). Set to `false` to render unstyled content. Defaults to `true`.\n */\n hasSurface?: boolean;\n /**\n * When `true`, the popover can be dismissed by clicking outside or pressing\n * Escape. Defaults to `true`.\n */\n isDismissable?: boolean;\n /**\n * Accessible label applied to the popover content via `aria-label`.\n */\n label?: string;\n /**\n * Id applied to the underlying layer element. Falls back to a generated id.\n * Supply this when another element needs a stable `aria-controls` reference\n * to the popover.\n */\n layerId?: string;\n /**\n * Called after the popover is hidden, including via light dismiss.\n */\n onHide?: () => void;\n /**\n * Called after the popover is shown.\n */\n onShow?: () => void;\n /**\n * ARIA role for the popover content. Defaults to `'dialog'`; use `'menu'` for\n * menu-style popovers.\n */\n role?: 'dialog' | 'menu';\n}\n\nexport interface UsePopoverReturn {\n /**\n * CSS anchor name tying the popover content to the trigger for positioning.\n */\n anchorId: string;\n /**\n * Ref attached to the popover content element.\n */\n contentRef: React.RefObject<HTMLDivElement | null>;\n /**\n * Hides the popover.\n */\n hide: () => void;\n /**\n * Id of the underlying layer element, matching `triggerProps['aria-controls']`.\n */\n id: string;\n /**\n * Whether the popover is currently open.\n */\n isOpen: boolean;\n /**\n * Renders the given children inside the popover layer.\n */\n render: (children: ReactNode, props?: ContextRenderProps) => ReactNode;\n /**\n * Shows the popover. Pass `isAutoFocusSkipped` to suppress moving focus into\n * the content for this open.\n */\n show: (options?: {isAutoFocusSkipped?: boolean}) => void;\n /**\n * Toggles the popover between open and closed.\n */\n toggle: () => void;\n /**\n * ARIA props to spread onto the trigger element.\n */\n triggerProps: {\n 'aria-controls': string;\n 'aria-expanded': boolean;\n 'aria-haspopup': 'dialog' | 'menu';\n };\n /**\n * Ref callback to attach to the trigger element for anchor positioning.\n */\n triggerRef: RefCallback<HTMLElement>;\n}\n\nconst styles = {\n surface: css({\n position: 'relative',\n bg: 'bg',\n borderRadius: 'md',\n boxShadow: 'lg',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border',\n }),\n} as const;\n\nexport function usePopover({\n onShow,\n onHide,\n isDismissable = true,\n hasAutoFocus = true,\n hasSurface = true,\n hasCloseButton = true,\n closeButtonLabel = 'Close popover',\n label,\n role = 'dialog',\n layerId,\n}: UsePopoverOptions = {}): UsePopoverReturn {\n const skipAutoFocusRef = useRef(false);\n // Guards against a light-dismiss close immediately re-opening the popover.\n // When the trigger is clicked while the popover is open, the browser's native\n // light dismiss closes it (firing `onHide`) *before* the trigger's own click\n // handler runs `toggle()` — which would otherwise re-open it. The flag is\n // cleared on the next animation frame: the browser never paints mid-gesture,\n // so it is reliably still set when the spurious click arrives, yet cleared\n // before any genuine later click.\n const isDismissingRef = useRef(false);\n\n const handleHide = useCallback(() => {\n isDismissingRef.current = true;\n requestAnimationFrame(() => {\n isDismissingRef.current = false;\n });\n onHide?.();\n }, [onHide]);\n\n const layer = useLayer({\n isDismissable,\n id: layerId,\n onShow,\n onHide: handleHide,\n });\n const {containerRef: contentRef, focusFirst} = useFocusTrap<HTMLDivElement>({\n isActive: layer.isOpen,\n onEscape: layer.hide,\n });\n\n useEffect(() => {\n if (!layer.isOpen) {\n skipAutoFocusRef.current = false;\n return;\n }\n\n if (hasAutoFocus && !skipAutoFocusRef.current) {\n requestAnimationFrame(() => focusFirst());\n }\n }, [focusFirst, hasAutoFocus, layer.isOpen]);\n\n const show = useCallback(\n (options?: {isAutoFocusSkipped?: boolean}) => {\n skipAutoFocusRef.current = options?.isAutoFocusSkipped ?? false;\n layer.show();\n },\n [layer],\n );\n\n const toggle = useCallback(() => {\n if (isDismissingRef.current) {\n return;\n }\n\n if (layer.isOpen) {\n layer.hide();\n return;\n }\n\n show();\n }, [layer, show]);\n\n const render = useCallback(\n (children: ReactNode, props?: ContextRenderProps): ReactNode => {\n return layer.render(\n <div\n aria-label={label}\n className={hasSurface ? styles.surface : undefined}\n ref={contentRef}\n role={role}>\n {children}\n {hasCloseButton ? (\n <VisuallyHidden>\n <Button\n icon={X}\n isIconOnly\n label={closeButtonLabel}\n onClick={layer.hide}\n size=\"sm\"\n variant=\"ghost\"\n />\n </VisuallyHidden>\n ) : null}\n </div>,\n {\n ...props,\n className: props?.className,\n },\n );\n },\n [\n closeButtonLabel,\n contentRef,\n hasCloseButton,\n hasSurface,\n label,\n layer,\n role,\n ],\n );\n\n const triggerProps = useMemo(\n () => ({\n 'aria-controls': layer.id,\n 'aria-expanded': layer.isOpen,\n 'aria-haspopup': role,\n }),\n [layer.id, layer.isOpen, role],\n );\n\n return useMemo(\n () => ({\n anchorId: layer.anchorId,\n contentRef,\n hide: layer.hide,\n id: layer.id,\n isOpen: layer.isOpen,\n render,\n show,\n toggle,\n triggerProps,\n triggerRef: layer.ref,\n }),\n [\n contentRef,\n layer.anchorId,\n layer.hide,\n layer.id,\n layer.isOpen,\n layer.ref,\n render,\n show,\n toggle,\n triggerProps,\n ],\n );\n}\n","import {\n useCallback,\n useRef,\n type CSSProperties,\n type ReactNode,\n type Ref,\n type RefObject,\n} from 'react';\nimport {usePopover} from 'components/Popover/usePopover';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport type {SpacingToken} from 'internal/spacingTokens';\nimport {useIsomorphicLayoutEffect} from 'internal/useIsomorphicLayoutEffect';\nimport type {LayerAlignment, LayerPlacement} from 'internal/useLayer';\nimport {css} from 'styled-system/css';\nimport {token} from 'styled-system/tokens';\n\nexport interface PopoverProps {\n /**\n * Alignment along the placement axis.\n * @default 'start'\n */\n alignment?: LayerAlignment;\n /**\n * External trigger element. When provided without children, Popover attaches\n * click and ARIA behavior directly to this element.\n */\n anchorRef?: RefObject<HTMLElement | null>;\n /**\n * Trigger content. Must contain a `<button>` or `[role=\"button\"]`.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the popover content.\n */\n className?: string;\n /**\n * Label for the hidden close button.\n * @default 'Close popover'\n */\n closeButtonLabel?: string;\n /**\n * Content displayed inside the popover dialog.\n */\n content: ReactNode;\n /**\n * Test ID applied to the popover content.\n */\n 'data-testid'?: string;\n /**\n * Whether to focus the first focusable item after opening.\n * @default true\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to include a keyboard-accessible close button.\n * @default true\n */\n hasCloseButton?: boolean;\n /**\n * Id applied to the popover content element. Falls back to a generated id.\n * Supply this when another element needs a stable `aria-controls` reference\n * to the popover.\n */\n id?: string;\n /**\n * Whether clicking outside or pressing Escape closes the popover.\n * @default true\n */\n isDismissable?: boolean;\n /**\n * Whether trigger interactions open the popover.\n * @default true\n */\n isEnabled?: boolean;\n /**\n * Controlled open state.\n */\n isOpen?: boolean;\n /**\n * Accessible label for the popover dialog.\n */\n label?: string;\n /**\n * Gap in pixels between the popover and its trigger along the inline axis\n * (for `start`/`end` placements). Applied as a logical margin so it stays on\n * the trigger-facing side even when the popover flips.\n */\n offsetX?: number;\n /**\n * Gap in pixels between the popover and its trigger along the block axis (for\n * `above`/`below` placements). Applied as a logical margin so it stays on the\n * trigger-facing side even when the popover flips.\n */\n offsetY?: number;\n /**\n * Callback fired when open state changes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Inner padding of the popover content.\n * @default 0\n */\n padding?: SpacingToken;\n /**\n * Position relative to the trigger.\n * @default 'below'\n */\n placement?: LayerPlacement;\n /**\n * Ref forwarded to the popover content element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * ARIA role for the floating content.\n * @default 'dialog'\n */\n role?: 'dialog' | 'menu';\n /**\n * Inline styles applied to the popover content.\n */\n style?: CSSProperties;\n /**\n * Width of the popover content.\n */\n width?: number | string;\n}\n\nconst BUTTON_SELECTOR = 'button, [role=\"button\"]';\n\nconst styles = {\n anchor: css({\n display: 'inline-flex',\n }),\n content: css({}),\n gap: {\n above: css({mb: '1'}),\n below: css({mt: '1'}),\n start: css({mr: '1'}),\n end: css({ml: '1'}),\n },\n} as const;\n\nfunction findTriggerButton(element: HTMLElement): HTMLElement | null {\n if (element.matches(BUTTON_SELECTOR)) {\n return element;\n }\n\n return element.querySelector<HTMLElement>(BUTTON_SELECTOR);\n}\n\n/**\n * A click-triggered floating dialog anchored to a trigger element.\n */\nexport function Popover({\n anchorRef,\n children,\n content,\n placement = 'below',\n alignment = 'start',\n isOpen,\n onOpenChange,\n offsetX,\n offsetY,\n isEnabled = true,\n width,\n label,\n hasCloseButton,\n isDismissable,\n closeButtonLabel,\n padding,\n ref,\n hasAutoFocus,\n className,\n style,\n role,\n id,\n 'data-testid': dataTestId,\n}: PopoverProps): React.JSX.Element {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const isControlled = isOpen !== undefined;\n\n const popover = usePopover({\n closeButtonLabel,\n hasAutoFocus,\n hasCloseButton,\n isDismissable,\n label,\n layerId: id,\n onHide: () => onOpenChange?.(false),\n onShow: () => onOpenChange?.(true),\n role,\n });\n\n const handleTriggerClick = useCallback(() => {\n if (!isEnabled) {\n return;\n }\n\n popover.toggle();\n }, [isEnabled, popover]);\n\n const handleTriggerKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleTriggerClick();\n }\n },\n [handleTriggerClick],\n );\n\n // ARIA and listeners are applied imperatively because the trigger button can\n // be any element the consumer renders — nested anywhere inside `children`, or\n // an entirely external element via `anchorRef` — so Popover cannot inject\n // props through JSX. This is safe: React only reconciles attributes present\n // in its own virtual DOM, so it never clobbers these imperatively-set ones on\n // re-render. The only dynamic attribute, `aria-expanded`, stays in sync\n // because `popover.triggerProps` is memoized on the open state, so this\n // callback (and the effect below that re-runs it) re-applies the fresh value\n // on every toggle. Keep `triggerProps` in the dep arrays or that sync breaks.\n const attachTrigger = useCallback(\n (button: HTMLElement) => {\n button.setAttribute(\n 'aria-haspopup',\n popover.triggerProps['aria-haspopup'],\n );\n button.setAttribute(\n 'aria-expanded',\n String(popover.triggerProps['aria-expanded']),\n );\n button.setAttribute(\n 'aria-controls',\n popover.triggerProps['aria-controls'],\n );\n button.addEventListener('click', handleTriggerClick);\n\n const needsKeyDown =\n button.tagName !== 'BUTTON' && button.getAttribute('role') === 'button';\n if (needsKeyDown) {\n button.addEventListener('keydown', handleTriggerKeyDown);\n }\n\n return () => {\n button.removeAttribute('aria-haspopup');\n button.removeAttribute('aria-expanded');\n button.removeAttribute('aria-controls');\n button.removeEventListener('click', handleTriggerClick);\n if (needsKeyDown) {\n button.removeEventListener('keydown', handleTriggerKeyDown);\n }\n };\n },\n [handleTriggerClick, handleTriggerKeyDown, popover.triggerProps],\n );\n\n useIsomorphicLayoutEffect(() => {\n const anchor = anchorRef?.current ?? wrapperRef.current;\n if (anchor == null) {\n return;\n }\n\n popover.triggerRef(anchor);\n const trigger = findTriggerButton(anchor);\n if (trigger == null || !isEnabled) {\n return () => {\n popover.triggerRef(null);\n };\n }\n\n const detach = attachTrigger(trigger);\n return () => {\n popover.triggerRef(null);\n detach();\n };\n }, [anchorRef, attachTrigger, isEnabled, popover]);\n\n useIsomorphicLayoutEffect(() => {\n if (!isControlled) {\n return;\n }\n\n if (isOpen === true && !popover.isOpen) {\n popover.show();\n } else if (isOpen === false && popover.isOpen) {\n popover.hide();\n }\n }, [isControlled, isOpen, popover]);\n\n const widthStyle =\n width == null\n ? undefined\n : {width: typeof width === 'number' ? `${width}px` : width};\n\n const paddingStyle =\n padding != null && padding !== 0\n ? {padding: token(`spacing.${padding}`)}\n : undefined;\n\n const popoverContent = popover.render(\n <div\n className={cx(styles.content, className)}\n data-testid={dataTestId}\n ref={ref}\n style={{...paddingStyle, ...widthStyle, ...style}}>\n {content}\n </div>,\n {\n placement,\n alignment,\n offsetX,\n offsetY,\n className: styles.gap[placement],\n style: {minWidth: 'anchor-size(width)'},\n },\n );\n\n if (anchorRef != null && !isReactNode(children)) {\n return <>{popoverContent}</>;\n }\n\n return (\n <>\n <div className={styles.anchor} ref={wrapperRef}>\n {children}\n </div>\n {popoverContent}\n </>\n );\n}\n\nPopover.displayName = 'Popover';\n"]}
@@ -1,8 +1,8 @@
1
- import { useAppShellMobile, MobileNavToggle, MobileNav } from './chunk-RXKDRZF3.js';
1
+ import { useAppShellMobile, MobileNavToggle, MobileNav } from './chunk-FTNEAX24.js';
2
2
  import { Divider } from './chunk-BQWUTDTN.js';
3
3
  import { useRel, getAriaLabel } from './chunk-5FQKELP6.js';
4
4
  import { VisuallyHidden } from './chunk-V2V5TTTL.js';
5
- import { Text } from './chunk-NXTDP6AX.js';
5
+ import { Text } from './chunk-5GSRIOXE.js';
6
6
  import { useLinkComponent, ActionElement } from './chunk-PG4CZRTU.js';
7
7
  import { isReactNode } from './chunk-2PSZAWLC.js';
8
8
  import { Icon } from './chunk-IUW777WZ.js';
@@ -399,5 +399,5 @@ function TopNavItem({
399
399
  TopNavItem.displayName = "TopNavItem";
400
400
 
401
401
  export { TopNav, TopNavHeading, TopNavItem, TopNavMobileContentContext, TopNavRenderContext };
402
- //# sourceMappingURL=chunk-WEXTGWRE.js.map
403
- //# sourceMappingURL=chunk-WEXTGWRE.js.map
402
+ //# sourceMappingURL=chunk-N6C37HXD.js.map
403
+ //# sourceMappingURL=chunk-N6C37HXD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TopNav/TopNav.recipe.ts","../src/components/TopNav/TopNavContext.ts","../src/components/TopNav/TopNav.tsx","../src/components/TopNav/TopNavHeading.recipe.ts","../src/components/TopNav/TopNavHeading.tsx","../src/components/TopNav/TopNavItem.recipe.ts","../src/components/TopNav/TopNavItem.tsx"],"names":["classes","jsxs","jsx"],"mappings":"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","file":"chunk-WEXTGWRE.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const topNavRecipe = sva({\n slots: [\n 'root',\n 'leftSection',\n 'heading',\n 'startContent',\n 'centerContent',\n 'rightSection',\n 'endContent',\n 'mobileEnd',\n 'drawerItems',\n 'drawerDivider',\n ],\n base: {\n root: {\n alignItems: 'center',\n w: '100%',\n p: '2',\n },\n leftSection: {\n display: 'flex',\n alignItems: 'center',\n gap: '4',\n flex: '1 1 0%',\n minW: 0,\n },\n heading: {\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n },\n startContent: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n },\n centerContent: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '1',\n },\n rightSection: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: '1',\n },\n endContent: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n flexShrink: 0,\n ms: 'auto',\n },\n mobileEnd: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n ms: 'auto',\n },\n drawerItems: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n },\n drawerDivider: {\n my: '2',\n },\n },\n variants: {\n layout: {\n flex: {\n root: {display: 'flex'},\n },\n grid: {\n root: {display: 'grid', gridTemplateColumns: '1fr auto 1fr'},\n },\n mobile: {\n root: {display: 'flex'},\n },\n },\n },\n defaultVariants: {\n layout: 'flex',\n },\n});\n\nexport type TopNavVariants = RecipeVariantProps<typeof topNavRecipe>;\n","import {createContext, use, type ReactNode} from 'react';\n\nexport type TopNavRenderMode = 'default' | 'mobile-bar' | 'drawer';\n\nexport const TopNavRenderContext = createContext<TopNavRenderMode>('default');\nTopNavRenderContext.displayName = 'TopNavRenderContext';\nexport const TopNavMobileContentContext = createContext<ReactNode>(null);\nTopNavMobileContentContext.displayName = 'TopNavMobileContentContext';\n\nexport function useTopNavRenderMode(): TopNavRenderMode {\n return use(TopNavRenderContext);\n}\n\nexport function useTopNavMobileContent(): ReactNode {\n return use(TopNavMobileContentContext);\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useAppShellMobile} from 'components/AppShell/AppShellMobileContext';\nimport {Divider} from 'components/Divider';\nimport {topNavRecipe} from 'components/TopNav/TopNav.recipe';\nimport {\n useTopNavMobileContent,\n useTopNavRenderMode,\n} from 'components/TopNav/TopNavContext';\nimport {MobileNav, MobileNavToggle} from 'internal/MobileNav';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface TopNavProps {\n /**\n * Content rendered in the center section of the navigation bar.\n */\n centerContent?: ReactNode;\n /**\n * Shorthand for `startContent`. Rendered in the start section when\n * `startContent` is not provided.\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 end (right) section of the navigation bar.\n */\n endContent?: ReactNode;\n /**\n * Branding or title content rendered at the start of the bar.\n */\n heading?: ReactNode;\n /**\n * Accessible label for the navigation landmark.\n * @default 'Top navigation'\n */\n label?: string;\n /**\n * Ref forwarded to the nav element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Content rendered in the start (left) section after the heading.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the nav element.\n */\n style?: CSSProperties;\n}\n\n/**\n * Horizontal top navigation bar with heading, start, center, and end\n * content slots. Adapts to mobile layouts when rendered inside AppShell.\n */\nexport function TopNav({\n centerContent,\n children,\n className,\n 'data-testid': dataTestId,\n endContent,\n heading,\n label = 'Top navigation',\n ref,\n startContent,\n style,\n}: TopNavProps): React.JSX.Element | null {\n const renderMode = useTopNavRenderMode();\n const mobileContent = useTopNavMobileContent();\n const {hasAutoToggle} = useAppShellMobile();\n const resolvedStartContent = startContent ?? children;\n\n if (process.env.NODE_ENV !== 'production') {\n if (isReactNode(startContent) && isReactNode(children)) {\n console.warn(\n 'TopNav: both `startContent` and `children` were provided. ' +\n '`startContent` takes precedence and `children` is ignored. ' +\n 'Provide only one.',\n );\n }\n }\n\n const hasCenterContent = isReactNode(centerContent);\n const hasCollapsibleContent =\n isReactNode(resolvedStartContent) || isReactNode(centerContent);\n const hasMobileDrawerContent =\n hasCollapsibleContent || isReactNode(mobileContent);\n\n if (renderMode === 'mobile-bar') {\n const classes = topNavRecipe({layout: 'mobile'});\n return (\n <nav\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {isReactNode(heading) ? (\n <div className={classes.heading}>{heading}</div>\n ) : null}\n <div className={classes.mobileEnd}>\n {endContent}\n {hasMobileDrawerContent && hasAutoToggle ? <MobileNavToggle /> : null}\n </div>\n </nav>\n );\n }\n\n if (renderMode === 'drawer') {\n if (!hasCollapsibleContent && !isReactNode(mobileContent)) {\n return null;\n }\n\n const classes = topNavRecipe();\n return (\n <MobileNav header={heading}>\n {hasCollapsibleContent ? (\n <div className={classes.drawerItems}>\n {resolvedStartContent}\n {centerContent}\n </div>\n ) : null}\n {hasCollapsibleContent && isReactNode(mobileContent) ? (\n <div className={classes.drawerDivider}>\n <Divider />\n </div>\n ) : null}\n {mobileContent}\n </MobileNav>\n );\n }\n\n const classes = topNavRecipe({layout: hasCenterContent ? 'grid' : 'flex'});\n return (\n <nav\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <div className={classes.leftSection}>\n {isReactNode(heading) ? (\n <div className={classes.heading}>{heading}</div>\n ) : null}\n {isReactNode(resolvedStartContent) ? (\n <div className={classes.startContent}>{resolvedStartContent}</div>\n ) : null}\n </div>\n {hasCenterContent ? (\n <div className={classes.centerContent}>{centerContent}</div>\n ) : null}\n {hasCenterContent ? (\n <div className={classes.rightSection}>{endContent}</div>\n ) : isReactNode(endContent) ? (\n <div className={classes.endContent}>{endContent}</div>\n ) : null}\n </nav>\n );\n}\n\nTopNav.displayName = 'TopNav';\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const topNavHeadingRecipe = sva({\n slots: ['root', 'logo', 'text', 'endContent'],\n base: {\n root: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n minH: '8',\n px: '2',\n color: 'fg',\n textDecoration: 'none',\n },\n logo: {\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n },\n text: {\n display: 'flex',\n flexDirection: 'column',\n minW: 0,\n },\n endContent: {\n ms: 'auto',\n flexShrink: 0,\n },\n },\n});\n\nexport type TopNavHeadingVariants = RecipeVariantProps<\n typeof topNavHeadingRecipe\n>;\n","/* eslint-disable @eslint-react/static-components -- intentional polymorphism via as prop */\n\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useLinkComponent} from 'components/Link';\nimport type {LinkComponent} from 'components/Link';\nimport {Text} from 'components/Text';\nimport {topNavHeadingRecipe} from 'components/TopNav/TopNavHeading.recipe';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface TopNavHeadingProps {\n /**\n * Accessible label for the heading link. Use when `heading` text is absent\n * (e.g., logo-only headings) to ensure the link has an accessible name.\n */\n 'aria-label'?: string;\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\nexport function TopNavHeading({\n 'aria-label': ariaLabel,\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}: TopNavHeadingProps): React.JSX.Element {\n const LinkComponent = useLinkComponent(as);\n const resolvedHref = headingHref ?? href;\n const Element = resolvedHref != null ? LinkComponent : 'div';\n const classes = topNavHeadingRecipe();\n\n return (\n <Element\n aria-label={ariaLabel}\n className={cx(classes.root, 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={classes.logo}>{logo}</span> : null}\n <span className={classes.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 {isReactNode(headerEndContent) ? (\n <span className={classes.endContent}>{headerEndContent}</span>\n ) : null}\n </Element>\n );\n}\n\nTopNavHeading.displayName = 'TopNavHeading';\n","import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const topNavItemRecipe = cva({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '2',\n minH: '8',\n px: '3',\n py: '1.5',\n borderRadius: 'md',\n color: 'fg.muted',\n textDecoration: 'none',\n fontFamily: 'body',\n fontSize: 'md',\n fontWeight: 'medium',\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 variants: {\n isSelected: {\n true: {\n bg: 'bg.hover',\n color: 'fg',\n fontWeight: 'semibold',\n },\n false: {},\n },\n isDisabled: {\n true: {\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n false: {},\n },\n isIconOnly: {\n true: {\n px: '2',\n aspectRatio: 'square',\n },\n false: {},\n },\n isDrawer: {\n true: {\n display: 'flex',\n w: '100%',\n },\n false: {},\n },\n },\n defaultVariants: {\n isSelected: false,\n isDisabled: false,\n isIconOnly: false,\n isDrawer: false,\n },\n});\n\nexport type TopNavItemVariants = RecipeVariantProps<typeof topNavItemRecipe>;\n","import type {CSSProperties, MouseEventHandler, ReactNode, Ref} from 'react';\nimport {useAppShellMobile} from 'components/AppShell/AppShellMobileContext';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport type {LinkComponent} from 'components/Link';\nimport {Text} from 'components/Text';\nimport {useTopNavRenderMode} from 'components/TopNav/TopNavContext';\nimport {topNavItemRecipe} from 'components/TopNav/TopNavItem.recipe';\nimport {VisuallyHidden} from 'internal';\nimport {ActionElement} from 'internal/ActionElement';\nimport {cx} from 'internal/cx';\nimport {getAriaLabel, useRel} from 'internal/linkAccessibility';\n\nexport interface TopNavItemProps {\n /**\n * Custom link component used for routing.\n */\n as?: LinkComponent;\n /**\n * Custom label content. Falls back to the `label` prop text.\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 * Link destination. When set, the item renders as a link. When omitted,\n * the item renders as a button driven by `onClick`.\n */\n href?: string;\n /**\n * Icon rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether only the icon is visible (label used for accessibility).\n * @default false\n */\n isIconOnly?: 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 when children are omitted.\n */\n label: string;\n /**\n * Click handler called when the item is clicked.\n */\n onClick?: MouseEventHandler<HTMLElement>;\n /**\n * Ref forwarded to the anchor or button element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * The `rel` attribute for the anchor element. `noopener noreferrer` are\n * added automatically for `target=\"_blank\"`. Ignored when rendering as a\n * button (no `href`).\n */\n rel?: string;\n /**\n * Inline styles applied to the item.\n */\n style?: CSSProperties;\n /**\n * The `target` attribute for the anchor element. Ignored when rendering as\n * a button (no `href`).\n */\n target?: string;\n}\n\n/**\n * A single navigation item inside a TopNav. Renders as a link when `href`\n * is provided, or a button driven by `onClick` otherwise. Supports icons,\n * selected state, and adapts to drawer layout on mobile.\n */\nexport function TopNavItem({\n as,\n children,\n className,\n 'data-testid': dataTestId,\n href,\n icon,\n isDisabled = false,\n isIconOnly = false,\n isSelected = false,\n label,\n onClick,\n ref,\n rel,\n style,\n target,\n}: TopNavItemProps): React.JSX.Element {\n const renderMode = useTopNavRenderMode();\n const {closeMobileNav} = useAppShellMobile();\n const isDrawer = renderMode === 'drawer';\n const opensInNewTab = target === '_blank';\n const linkRel = useRel({target, rel});\n const labelContent = children ?? (\n <Text color=\"inherit\" size=\"md\" type=\"body\" weight=\"inherit\">\n {label}\n </Text>\n );\n\n const handleClick: MouseEventHandler<HTMLElement> = event => {\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n\n onClick?.(event);\n\n if (isDrawer) {\n closeMobileNav();\n }\n };\n\n const className_ = cx(\n topNavItemRecipe({isSelected, isDisabled, isIconOnly, isDrawer}),\n className,\n );\n\n const content = (\n <>\n {icon != null ? (\n <Icon aria-hidden=\"true\" color=\"inherit\" icon={icon} size=\"md\" />\n ) : null}\n {!isIconOnly ? labelContent : null}\n </>\n );\n\n return (\n <ActionElement\n aria-current={isSelected ? 'page' : undefined}\n aria-disabled={href != null && isDisabled ? true : undefined}\n aria-label={isIconOnly ? getAriaLabel(label, opensInNewTab) : undefined}\n as={as}\n className={className_}\n data-testid={dataTestId}\n href={href}\n isDisabled={href == null ? isDisabled : undefined}\n isLink={href != null}\n onClick={handleClick}\n ref={ref}\n rel={href != null ? linkRel : undefined}\n style={style}\n tabIndex={href != null && isDisabled ? -1 : undefined}\n target={href != null ? target : undefined}>\n {content}\n {opensInNewTab && !isIconOnly ? (\n <>\n {' '}\n <VisuallyHidden>(opens in new tab)</VisuallyHidden>\n </>\n ) : null}\n </ActionElement>\n );\n}\n\nTopNavItem.displayName = 'TopNavItem';\n"]}
1
+ {"version":3,"sources":["../src/components/TopNav/TopNav.recipe.ts","../src/components/TopNav/TopNavContext.ts","../src/components/TopNav/TopNav.tsx","../src/components/TopNav/TopNavHeading.recipe.ts","../src/components/TopNav/TopNavHeading.tsx","../src/components/TopNav/TopNavItem.recipe.ts","../src/components/TopNav/TopNavItem.tsx"],"names":["classes","jsxs","jsx"],"mappings":"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","file":"chunk-N6C37HXD.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const topNavRecipe = sva({\n slots: [\n 'root',\n 'leftSection',\n 'heading',\n 'startContent',\n 'centerContent',\n 'rightSection',\n 'endContent',\n 'mobileEnd',\n 'drawerItems',\n 'drawerDivider',\n ],\n base: {\n root: {\n alignItems: 'center',\n w: '100%',\n p: '2',\n },\n leftSection: {\n display: 'flex',\n alignItems: 'center',\n gap: '4',\n flex: '1 1 0%',\n minW: 0,\n },\n heading: {\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n },\n startContent: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n },\n centerContent: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '1',\n },\n rightSection: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: '1',\n },\n endContent: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n flexShrink: 0,\n ms: 'auto',\n },\n mobileEnd: {\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n ms: 'auto',\n },\n drawerItems: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n },\n drawerDivider: {\n my: '2',\n },\n },\n variants: {\n layout: {\n flex: {\n root: {display: 'flex'},\n },\n grid: {\n root: {display: 'grid', gridTemplateColumns: '1fr auto 1fr'},\n },\n mobile: {\n root: {display: 'flex'},\n },\n },\n },\n defaultVariants: {\n layout: 'flex',\n },\n});\n\nexport type TopNavVariants = RecipeVariantProps<typeof topNavRecipe>;\n","import {createContext, use, type ReactNode} from 'react';\n\nexport type TopNavRenderMode = 'default' | 'mobile-bar' | 'drawer';\n\nexport const TopNavRenderContext = createContext<TopNavRenderMode>('default');\nTopNavRenderContext.displayName = 'TopNavRenderContext';\nexport const TopNavMobileContentContext = createContext<ReactNode>(null);\nTopNavMobileContentContext.displayName = 'TopNavMobileContentContext';\n\nexport function useTopNavRenderMode(): TopNavRenderMode {\n return use(TopNavRenderContext);\n}\n\nexport function useTopNavMobileContent(): ReactNode {\n return use(TopNavMobileContentContext);\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useAppShellMobile} from 'components/AppShell/AppShellMobileContext';\nimport {Divider} from 'components/Divider';\nimport {topNavRecipe} from 'components/TopNav/TopNav.recipe';\nimport {\n useTopNavMobileContent,\n useTopNavRenderMode,\n} from 'components/TopNav/TopNavContext';\nimport {MobileNav, MobileNavToggle} from 'internal/MobileNav';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface TopNavProps {\n /**\n * Content rendered in the center section of the navigation bar.\n */\n centerContent?: ReactNode;\n /**\n * Shorthand for `startContent`. Rendered in the start section when\n * `startContent` is not provided.\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 end (right) section of the navigation bar.\n */\n endContent?: ReactNode;\n /**\n * Branding or title content rendered at the start of the bar.\n */\n heading?: ReactNode;\n /**\n * Accessible label for the navigation landmark.\n * @default 'Top navigation'\n */\n label?: string;\n /**\n * Ref forwarded to the nav element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Content rendered in the start (left) section after the heading.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the nav element.\n */\n style?: CSSProperties;\n}\n\n/**\n * Horizontal top navigation bar with heading, start, center, and end\n * content slots. Adapts to mobile layouts when rendered inside AppShell.\n */\nexport function TopNav({\n centerContent,\n children,\n className,\n 'data-testid': dataTestId,\n endContent,\n heading,\n label = 'Top navigation',\n ref,\n startContent,\n style,\n}: TopNavProps): React.JSX.Element | null {\n const renderMode = useTopNavRenderMode();\n const mobileContent = useTopNavMobileContent();\n const {hasAutoToggle} = useAppShellMobile();\n const resolvedStartContent = startContent ?? children;\n\n if (process.env.NODE_ENV !== 'production') {\n if (isReactNode(startContent) && isReactNode(children)) {\n console.warn(\n 'TopNav: both `startContent` and `children` were provided. ' +\n '`startContent` takes precedence and `children` is ignored. ' +\n 'Provide only one.',\n );\n }\n }\n\n const hasCenterContent = isReactNode(centerContent);\n const hasCollapsibleContent =\n isReactNode(resolvedStartContent) || isReactNode(centerContent);\n const hasMobileDrawerContent =\n hasCollapsibleContent || isReactNode(mobileContent);\n\n if (renderMode === 'mobile-bar') {\n const classes = topNavRecipe({layout: 'mobile'});\n return (\n <nav\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {isReactNode(heading) ? (\n <div className={classes.heading}>{heading}</div>\n ) : null}\n <div className={classes.mobileEnd}>\n {endContent}\n {hasMobileDrawerContent && hasAutoToggle ? <MobileNavToggle /> : null}\n </div>\n </nav>\n );\n }\n\n if (renderMode === 'drawer') {\n if (!hasCollapsibleContent && !isReactNode(mobileContent)) {\n return null;\n }\n\n const classes = topNavRecipe();\n return (\n <MobileNav header={heading}>\n {hasCollapsibleContent ? (\n <div className={classes.drawerItems}>\n {resolvedStartContent}\n {centerContent}\n </div>\n ) : null}\n {hasCollapsibleContent && isReactNode(mobileContent) ? (\n <div className={classes.drawerDivider}>\n <Divider />\n </div>\n ) : null}\n {mobileContent}\n </MobileNav>\n );\n }\n\n const classes = topNavRecipe({layout: hasCenterContent ? 'grid' : 'flex'});\n return (\n <nav\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <div className={classes.leftSection}>\n {isReactNode(heading) ? (\n <div className={classes.heading}>{heading}</div>\n ) : null}\n {isReactNode(resolvedStartContent) ? (\n <div className={classes.startContent}>{resolvedStartContent}</div>\n ) : null}\n </div>\n {hasCenterContent ? (\n <div className={classes.centerContent}>{centerContent}</div>\n ) : null}\n {hasCenterContent ? (\n <div className={classes.rightSection}>{endContent}</div>\n ) : isReactNode(endContent) ? (\n <div className={classes.endContent}>{endContent}</div>\n ) : null}\n </nav>\n );\n}\n\nTopNav.displayName = 'TopNav';\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const topNavHeadingRecipe = sva({\n slots: ['root', 'logo', 'text', 'endContent'],\n base: {\n root: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n minH: '8',\n px: '2',\n color: 'fg',\n textDecoration: 'none',\n },\n logo: {\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n },\n text: {\n display: 'flex',\n flexDirection: 'column',\n minW: 0,\n },\n endContent: {\n ms: 'auto',\n flexShrink: 0,\n },\n },\n});\n\nexport type TopNavHeadingVariants = RecipeVariantProps<\n typeof topNavHeadingRecipe\n>;\n","/* eslint-disable @eslint-react/static-components -- intentional polymorphism via as prop */\n\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useLinkComponent} from 'components/Link';\nimport type {LinkComponent} from 'components/Link';\nimport {Text} from 'components/Text';\nimport {topNavHeadingRecipe} from 'components/TopNav/TopNavHeading.recipe';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface TopNavHeadingProps {\n /**\n * Accessible label for the heading link. Use when `heading` text is absent\n * (e.g., logo-only headings) to ensure the link has an accessible name.\n */\n 'aria-label'?: string;\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\nexport function TopNavHeading({\n 'aria-label': ariaLabel,\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}: TopNavHeadingProps): React.JSX.Element {\n const LinkComponent = useLinkComponent(as);\n const resolvedHref = headingHref ?? href;\n const Element = resolvedHref != null ? LinkComponent : 'div';\n const classes = topNavHeadingRecipe();\n\n return (\n <Element\n aria-label={ariaLabel}\n className={cx(classes.root, 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={classes.logo}>{logo}</span> : null}\n <span className={classes.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 {isReactNode(headerEndContent) ? (\n <span className={classes.endContent}>{headerEndContent}</span>\n ) : null}\n </Element>\n );\n}\n\nTopNavHeading.displayName = 'TopNavHeading';\n","import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const topNavItemRecipe = cva({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '2',\n minH: '8',\n px: '3',\n py: '1.5',\n borderRadius: 'md',\n color: 'fg.muted',\n textDecoration: 'none',\n fontFamily: 'body',\n fontSize: 'md',\n fontWeight: 'medium',\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 variants: {\n isSelected: {\n true: {\n bg: 'bg.hover',\n color: 'fg',\n fontWeight: 'semibold',\n },\n false: {},\n },\n isDisabled: {\n true: {\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n false: {},\n },\n isIconOnly: {\n true: {\n px: '2',\n aspectRatio: 'square',\n },\n false: {},\n },\n isDrawer: {\n true: {\n display: 'flex',\n w: '100%',\n },\n false: {},\n },\n },\n defaultVariants: {\n isSelected: false,\n isDisabled: false,\n isIconOnly: false,\n isDrawer: false,\n },\n});\n\nexport type TopNavItemVariants = RecipeVariantProps<typeof topNavItemRecipe>;\n","import type {CSSProperties, MouseEventHandler, ReactNode, Ref} from 'react';\nimport {useAppShellMobile} from 'components/AppShell/AppShellMobileContext';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport type {LinkComponent} from 'components/Link';\nimport {Text} from 'components/Text';\nimport {useTopNavRenderMode} from 'components/TopNav/TopNavContext';\nimport {topNavItemRecipe} from 'components/TopNav/TopNavItem.recipe';\nimport {VisuallyHidden} from 'internal';\nimport {ActionElement} from 'internal/ActionElement';\nimport {cx} from 'internal/cx';\nimport {getAriaLabel, useRel} from 'internal/linkAccessibility';\n\nexport interface TopNavItemProps {\n /**\n * Custom link component used for routing.\n */\n as?: LinkComponent;\n /**\n * Custom label content. Falls back to the `label` prop text.\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 * Link destination. When set, the item renders as a link. When omitted,\n * the item renders as a button driven by `onClick`.\n */\n href?: string;\n /**\n * Icon rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether only the icon is visible (label used for accessibility).\n * @default false\n */\n isIconOnly?: 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 when children are omitted.\n */\n label: string;\n /**\n * Click handler called when the item is clicked.\n */\n onClick?: MouseEventHandler<HTMLElement>;\n /**\n * Ref forwarded to the anchor or button element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * The `rel` attribute for the anchor element. `noopener noreferrer` are\n * added automatically for `target=\"_blank\"`. Ignored when rendering as a\n * button (no `href`).\n */\n rel?: string;\n /**\n * Inline styles applied to the item.\n */\n style?: CSSProperties;\n /**\n * The `target` attribute for the anchor element. Ignored when rendering as\n * a button (no `href`).\n */\n target?: string;\n}\n\n/**\n * A single navigation item inside a TopNav. Renders as a link when `href`\n * is provided, or a button driven by `onClick` otherwise. Supports icons,\n * selected state, and adapts to drawer layout on mobile.\n */\nexport function TopNavItem({\n as,\n children,\n className,\n 'data-testid': dataTestId,\n href,\n icon,\n isDisabled = false,\n isIconOnly = false,\n isSelected = false,\n label,\n onClick,\n ref,\n rel,\n style,\n target,\n}: TopNavItemProps): React.JSX.Element {\n const renderMode = useTopNavRenderMode();\n const {closeMobileNav} = useAppShellMobile();\n const isDrawer = renderMode === 'drawer';\n const opensInNewTab = target === '_blank';\n const linkRel = useRel({target, rel});\n const labelContent = children ?? (\n <Text color=\"inherit\" size=\"md\" type=\"body\" weight=\"inherit\">\n {label}\n </Text>\n );\n\n const handleClick: MouseEventHandler<HTMLElement> = event => {\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n\n onClick?.(event);\n\n if (isDrawer) {\n closeMobileNav();\n }\n };\n\n const className_ = cx(\n topNavItemRecipe({isSelected, isDisabled, isIconOnly, isDrawer}),\n className,\n );\n\n const content = (\n <>\n {icon != null ? (\n <Icon aria-hidden=\"true\" color=\"inherit\" icon={icon} size=\"md\" />\n ) : null}\n {!isIconOnly ? labelContent : null}\n </>\n );\n\n return (\n <ActionElement\n aria-current={isSelected ? 'page' : undefined}\n aria-disabled={href != null && isDisabled ? true : undefined}\n aria-label={isIconOnly ? getAriaLabel(label, opensInNewTab) : undefined}\n as={as}\n className={className_}\n data-testid={dataTestId}\n href={href}\n isDisabled={href == null ? isDisabled : undefined}\n isLink={href != null}\n onClick={handleClick}\n ref={ref}\n rel={href != null ? linkRel : undefined}\n style={style}\n tabIndex={href != null && isDisabled ? -1 : undefined}\n target={href != null ? target : undefined}>\n {content}\n {opensInNewTab && !isIconOnly ? (\n <>\n {' '}\n <VisuallyHidden>(opens in new tab)</VisuallyHidden>\n </>\n ) : null}\n </ActionElement>\n );\n}\n\nTopNavItem.displayName = 'TopNavItem';\n"]}