silver-ui 0.5.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (520) hide show
  1. package/README.md +2 -65
  2. package/dist/{chunk-XHJRAEGW.js → chunk-223UOU3H.js} +5 -5
  3. package/dist/{chunk-XHJRAEGW.js.map → chunk-223UOU3H.js.map} +1 -1
  4. package/dist/{chunk-67UUGI3M.cjs → chunk-2AOR4EVA.cjs} +8 -8
  5. package/dist/{chunk-67UUGI3M.cjs.map → chunk-2AOR4EVA.cjs.map} +1 -1
  6. package/dist/{chunk-75KSHZTV.js → chunk-2KLTODOC.js} +7 -7
  7. package/dist/{chunk-75KSHZTV.js.map → chunk-2KLTODOC.js.map} +1 -1
  8. package/dist/chunk-2N3PIXZ5.cjs +165 -0
  9. package/dist/chunk-2N3PIXZ5.cjs.map +1 -0
  10. package/dist/{chunk-W5F7PYT2.js → chunk-3PCXFOOS.js} +17 -11
  11. package/dist/chunk-3PCXFOOS.js.map +1 -0
  12. package/dist/chunk-3PEK2Q54.cjs +31 -0
  13. package/dist/chunk-3PEK2Q54.cjs.map +1 -0
  14. package/dist/{chunk-GW6P4FJ4.cjs → chunk-4MIIXRZN.cjs} +25 -40
  15. package/dist/chunk-4MIIXRZN.cjs.map +1 -0
  16. package/dist/{chunk-CUHJDV6K.js → chunk-4NPVIEWF.js} +6 -6
  17. package/dist/{chunk-CUHJDV6K.js.map → chunk-4NPVIEWF.js.map} +1 -1
  18. package/dist/{chunk-ADSG24VE.js → chunk-4UYMGEBF.js} +6 -6
  19. package/dist/{chunk-ADSG24VE.js.map → chunk-4UYMGEBF.js.map} +1 -1
  20. package/dist/{chunk-ECDYAZ2R.js → chunk-54B36CSW.js} +5 -5
  21. package/dist/{chunk-ECDYAZ2R.js.map → chunk-54B36CSW.js.map} +1 -1
  22. package/dist/chunk-5FQKELP6.js +28 -0
  23. package/dist/chunk-5FQKELP6.js.map +1 -0
  24. package/dist/{chunk-RJEZBOSH.js → chunk-5GSRIOXE.js} +24 -14
  25. package/dist/chunk-5GSRIOXE.js.map +1 -0
  26. package/dist/{chunk-OUZX7STE.cjs → chunk-5K3C3INR.cjs} +25 -53
  27. package/dist/chunk-5K3C3INR.cjs.map +1 -0
  28. package/dist/{chunk-AEYJ6PWC.js → chunk-5RFHYDQY.js} +16 -11
  29. package/dist/chunk-5RFHYDQY.js.map +1 -0
  30. package/dist/{chunk-E42WOTIC.js → chunk-6KG76KUZ.js} +3 -3
  31. package/dist/{chunk-E42WOTIC.js.map → chunk-6KG76KUZ.js.map} +1 -1
  32. package/dist/{chunk-I47WOF6E.js → chunk-6KGF66TR.js} +3 -3
  33. package/dist/{chunk-I47WOF6E.js.map → chunk-6KGF66TR.js.map} +1 -1
  34. package/dist/{chunk-TOQ4MGM5.js → chunk-6R2UZNVE.js} +6 -6
  35. package/dist/{chunk-TOQ4MGM5.js.map → chunk-6R2UZNVE.js.map} +1 -1
  36. package/dist/{chunk-BIJ6YDWJ.cjs → chunk-6SFMORQF.cjs} +15 -8
  37. package/dist/chunk-6SFMORQF.cjs.map +1 -0
  38. package/dist/{chunk-H4L456EW.js → chunk-6SKIBUCY.js} +12 -5
  39. package/dist/chunk-6SKIBUCY.js.map +1 -0
  40. package/dist/{chunk-ANACERIO.cjs → chunk-6SMVH3ON.cjs} +6 -6
  41. package/dist/{chunk-ANACERIO.cjs.map → chunk-6SMVH3ON.cjs.map} +1 -1
  42. package/dist/{chunk-ESRDHDYN.cjs → chunk-6ZPHID26.cjs} +9 -9
  43. package/dist/{chunk-ESRDHDYN.cjs.map → chunk-6ZPHID26.cjs.map} +1 -1
  44. package/dist/{chunk-SUT35RHA.cjs → chunk-76GVUEFH.cjs} +8 -8
  45. package/dist/{chunk-SUT35RHA.cjs.map → chunk-76GVUEFH.cjs.map} +1 -1
  46. package/dist/chunk-7VUDE5BI.js +91 -0
  47. package/dist/chunk-7VUDE5BI.js.map +1 -0
  48. package/dist/{chunk-Q3HMGFGI.js → chunk-7WQW7H3D.js} +98 -77
  49. package/dist/chunk-7WQW7H3D.js.map +1 -0
  50. package/dist/chunk-A2AC6WL5.cjs +4 -0
  51. package/dist/chunk-A2AC6WL5.cjs.map +1 -0
  52. package/dist/{chunk-2Y7ULSEU.js → chunk-A4QLLTMD.js} +17 -17
  53. package/dist/{chunk-2Y7ULSEU.js.map → chunk-A4QLLTMD.js.map} +1 -1
  54. package/dist/{chunk-HWD4HDQ5.cjs → chunk-AC4E3WQA.cjs} +10 -10
  55. package/dist/{chunk-HWD4HDQ5.cjs.map → chunk-AC4E3WQA.cjs.map} +1 -1
  56. package/dist/chunk-AFXU6XIS.js +3 -0
  57. package/dist/chunk-AFXU6XIS.js.map +1 -0
  58. package/dist/{chunk-L5PJCLV6.js → chunk-AKAXQ4RL.js} +16 -25
  59. package/dist/chunk-AKAXQ4RL.js.map +1 -0
  60. package/dist/{chunk-AV7D3SXF.js → chunk-AO4RVSCG.js} +4 -4
  61. package/dist/{chunk-AV7D3SXF.js.map → chunk-AO4RVSCG.js.map} +1 -1
  62. package/dist/{chunk-OERNLR2P.js → chunk-AX653SYJ.js} +8 -8
  63. package/dist/{chunk-OERNLR2P.js.map → chunk-AX653SYJ.js.map} +1 -1
  64. package/dist/{chunk-4HXNBLCJ.js → chunk-AXTX3IOR.js} +3 -3
  65. package/dist/{chunk-4HXNBLCJ.js.map → chunk-AXTX3IOR.js.map} +1 -1
  66. package/dist/{chunk-2AWSJF22.js → chunk-BNGYGCT2.js} +8 -8
  67. package/dist/chunk-BNGYGCT2.js.map +1 -0
  68. package/dist/{chunk-PGTOVMP7.cjs → chunk-BPAZTKMC.cjs} +10 -10
  69. package/dist/{chunk-PGTOVMP7.cjs.map → chunk-BPAZTKMC.cjs.map} +1 -1
  70. package/dist/{chunk-7CTHD4G6.cjs → chunk-BYV7NXC5.cjs} +5 -5
  71. package/dist/{chunk-7CTHD4G6.cjs.map → chunk-BYV7NXC5.cjs.map} +1 -1
  72. package/dist/{chunk-3Z5PF75J.cjs → chunk-CKDB7QNT.cjs} +29 -19
  73. package/dist/chunk-CKDB7QNT.cjs.map +1 -0
  74. package/dist/{chunk-3VJIUZAY.cjs → chunk-CVT7JW6C.cjs} +16 -25
  75. package/dist/chunk-CVT7JW6C.cjs.map +1 -0
  76. package/dist/{chunk-6DAZ2ZOW.cjs → chunk-CWZCBYVZ.cjs} +11 -11
  77. package/dist/{chunk-6DAZ2ZOW.cjs.map → chunk-CWZCBYVZ.cjs.map} +1 -1
  78. package/dist/{chunk-N77K3NQY.cjs → chunk-DTNIUZ3C.cjs} +7 -7
  79. package/dist/{chunk-N77K3NQY.cjs.map → chunk-DTNIUZ3C.cjs.map} +1 -1
  80. package/dist/{chunk-X4I5YARV.cjs → chunk-DUGGZUJP.cjs} +11 -11
  81. package/dist/{chunk-X4I5YARV.cjs.map → chunk-DUGGZUJP.cjs.map} +1 -1
  82. package/dist/{chunk-TTDNCN5G.cjs → chunk-DVCDAKPK.cjs} +13 -39
  83. package/dist/chunk-DVCDAKPK.cjs.map +1 -0
  84. package/dist/{chunk-2RZNX26F.cjs → chunk-DXUFDJHA.cjs} +12 -13
  85. package/dist/chunk-DXUFDJHA.cjs.map +1 -0
  86. package/dist/{chunk-4SUQFPWH.js → chunk-E6AKSBSP.js} +6 -6
  87. package/dist/{chunk-4SUQFPWH.js.map → chunk-E6AKSBSP.js.map} +1 -1
  88. package/dist/{chunk-THTVYP5V.js → chunk-EBV3EX3J.js} +21 -32
  89. package/dist/chunk-EBV3EX3J.js.map +1 -0
  90. package/dist/{chunk-JM4Q7ZQH.cjs → chunk-EEOUWM2F.cjs} +8 -8
  91. package/dist/chunk-EEOUWM2F.cjs.map +1 -0
  92. package/dist/{chunk-KC4EKXGF.js → chunk-EIJSWHG7.js} +9 -10
  93. package/dist/chunk-EIJSWHG7.js.map +1 -0
  94. package/dist/{chunk-IGJEZLHP.cjs → chunk-EQFSDFV2.cjs} +19 -19
  95. package/dist/{chunk-IGJEZLHP.cjs.map → chunk-EQFSDFV2.cjs.map} +1 -1
  96. package/dist/chunk-ESWYWWY2.js +162 -0
  97. package/dist/chunk-ESWYWWY2.js.map +1 -0
  98. package/dist/{chunk-UXGHFKLA.js → chunk-FHUOUARL.js} +4 -4
  99. package/dist/{chunk-UXGHFKLA.js.map → chunk-FHUOUARL.js.map} +1 -1
  100. package/dist/{chunk-HNDDNW52.js → chunk-FTNEAX24.js} +3 -3
  101. package/dist/{chunk-HNDDNW52.js.map → chunk-FTNEAX24.js.map} +1 -1
  102. package/dist/{chunk-JJNXQ7EL.js → chunk-FUU3I22W.js} +3 -3
  103. package/dist/{chunk-JJNXQ7EL.js.map → chunk-FUU3I22W.js.map} +1 -1
  104. package/dist/{chunk-OF5NULAO.js → chunk-GFMQIR5U.js} +7 -7
  105. package/dist/{chunk-OF5NULAO.js.map → chunk-GFMQIR5U.js.map} +1 -1
  106. package/dist/{chunk-JSAYTQTJ.cjs → chunk-GJZAGTPV.cjs} +7 -7
  107. package/dist/chunk-GJZAGTPV.cjs.map +1 -0
  108. package/dist/{chunk-J2YKUHQM.js → chunk-GKYGZWSQ.js} +14 -23
  109. package/dist/chunk-GKYGZWSQ.js.map +1 -0
  110. package/dist/{chunk-2F5TDBRT.cjs → chunk-GLFWSLJB.cjs} +8 -8
  111. package/dist/{chunk-2F5TDBRT.cjs.map → chunk-GLFWSLJB.cjs.map} +1 -1
  112. package/dist/{chunk-S5CMLG2E.js → chunk-GTZQT6MK.js} +9 -5
  113. package/dist/chunk-GTZQT6MK.js.map +1 -0
  114. package/dist/{chunk-4RDA4W4N.js → chunk-HEF53COU.js} +23 -7
  115. package/dist/chunk-HEF53COU.js.map +1 -0
  116. package/dist/{chunk-WPMWHKJX.js → chunk-I2DXEPDF.js} +5 -5
  117. package/dist/{chunk-WPMWHKJX.js.map → chunk-I2DXEPDF.js.map} +1 -1
  118. package/dist/{chunk-Z7OUMVR5.cjs → chunk-I4XYOJJS.cjs} +9 -9
  119. package/dist/{chunk-Z7OUMVR5.cjs.map → chunk-I4XYOJJS.cjs.map} +1 -1
  120. package/dist/{chunk-HWP2UGOC.cjs → chunk-IE7GWY4E.cjs} +126 -105
  121. package/dist/chunk-IE7GWY4E.cjs.map +1 -0
  122. package/dist/{chunk-YDNEAHVK.cjs → chunk-IH6DJWYH.cjs} +37 -37
  123. package/dist/{chunk-YDNEAHVK.cjs.map → chunk-IH6DJWYH.cjs.map} +1 -1
  124. package/dist/{chunk-D5OX6II7.cjs → chunk-IREOTHD3.cjs} +8 -8
  125. package/dist/chunk-IREOTHD3.cjs.map +1 -0
  126. package/dist/{chunk-L7XJZJCM.js → chunk-J4MQQ4K5.js} +5 -5
  127. package/dist/{chunk-L7XJZJCM.js.map → chunk-J4MQQ4K5.js.map} +1 -1
  128. package/dist/{chunk-UARQIMPS.js → chunk-JFLU2X5Q.js} +5 -5
  129. package/dist/{chunk-UARQIMPS.js.map → chunk-JFLU2X5Q.js.map} +1 -1
  130. package/dist/{chunk-VH3G4IUX.js → chunk-JMVYWHJ7.js} +12 -38
  131. package/dist/chunk-JMVYWHJ7.js.map +1 -0
  132. package/dist/{chunk-K4K4FU3D.cjs → chunk-JTPVAZE6.cjs} +11 -11
  133. package/dist/{chunk-K4K4FU3D.cjs.map → chunk-JTPVAZE6.cjs.map} +1 -1
  134. package/dist/{chunk-LW3DJOF4.cjs → chunk-JWMS6LHN.cjs} +6 -6
  135. package/dist/{chunk-LW3DJOF4.cjs.map → chunk-JWMS6LHN.cjs.map} +1 -1
  136. package/dist/{chunk-EBJPUXFQ.js → chunk-KEPCKSDE.js} +31 -11
  137. package/dist/chunk-KEPCKSDE.js.map +1 -0
  138. package/dist/{chunk-I2NG2P5K.cjs → chunk-KLPVBJGZ.cjs} +5 -5
  139. package/dist/{chunk-I2NG2P5K.cjs.map → chunk-KLPVBJGZ.cjs.map} +1 -1
  140. package/dist/{chunk-6PIVWNUR.js → chunk-KWZMXX4F.js} +5 -5
  141. package/dist/chunk-KWZMXX4F.js.map +1 -0
  142. package/dist/{chunk-3IYM5MAC.js → chunk-L747HIHG.js} +4 -4
  143. package/dist/{chunk-3IYM5MAC.js.map → chunk-L747HIHG.js.map} +1 -1
  144. package/dist/{chunk-HIH6MS5D.js → chunk-LBOWHXOF.js} +24 -6
  145. package/dist/chunk-LBOWHXOF.js.map +1 -0
  146. package/dist/{chunk-ZPJW3PP7.cjs → chunk-LTHPJRFK.cjs} +18 -10
  147. package/dist/chunk-LTHPJRFK.cjs.map +1 -0
  148. package/dist/{chunk-F7BFO3SD.cjs → chunk-LWB2CTX6.cjs} +24 -8
  149. package/dist/chunk-LWB2CTX6.cjs.map +1 -0
  150. package/dist/{chunk-FCUUGJTM.cjs → chunk-MJHEPDDX.cjs} +132 -160
  151. package/dist/chunk-MJHEPDDX.cjs.map +1 -0
  152. package/dist/{chunk-QO5C7TIV.js → chunk-MUXUHIIV.js} +5 -5
  153. package/dist/{chunk-QO5C7TIV.js.map → chunk-MUXUHIIV.js.map} +1 -1
  154. package/dist/{chunk-L5JS6P62.cjs → chunk-MYSLJWCW.cjs} +14 -10
  155. package/dist/chunk-MYSLJWCW.cjs.map +1 -0
  156. package/dist/{chunk-65MJZYO6.js → chunk-N6C37HXD.js} +14 -29
  157. package/dist/chunk-N6C37HXD.js.map +1 -0
  158. package/dist/{chunk-VO4FG3L2.cjs → chunk-NGNVNRAZ.cjs} +17 -17
  159. package/dist/{chunk-VO4FG3L2.cjs.map → chunk-NGNVNRAZ.cjs.map} +1 -1
  160. package/dist/{chunk-2WTHSGDP.cjs → chunk-NMC7QG2X.cjs} +14 -14
  161. package/dist/{chunk-2WTHSGDP.cjs.map → chunk-NMC7QG2X.cjs.map} +1 -1
  162. package/dist/{chunk-6EYLEVC6.js → chunk-NSWKBWPP.js} +15 -7
  163. package/dist/chunk-NSWKBWPP.js.map +1 -0
  164. package/dist/{chunk-FNRYGCO3.js → chunk-NYOZQE6P.js} +4 -4
  165. package/dist/{chunk-FNRYGCO3.js.map → chunk-NYOZQE6P.js.map} +1 -1
  166. package/dist/{chunk-GSTINE4X.js → chunk-O3UT5D57.js} +1775 -575
  167. package/dist/chunk-O3UT5D57.js.map +1 -0
  168. package/dist/{chunk-BSI4BQEX.cjs → chunk-OCYZKZ24.cjs} +4 -4
  169. package/dist/{chunk-BSI4BQEX.cjs.map → chunk-OCYZKZ24.cjs.map} +1 -1
  170. package/dist/{chunk-LBGC6EC5.js → chunk-OP6WQYYP.js} +15 -15
  171. package/dist/chunk-OP6WQYYP.js.map +1 -0
  172. package/dist/{chunk-TSKFGLGQ.cjs → chunk-OX2FNKIV.cjs} +18 -27
  173. package/dist/chunk-OX2FNKIV.cjs.map +1 -0
  174. package/dist/chunk-PG4CZRTU.js +77 -0
  175. package/dist/chunk-PG4CZRTU.js.map +1 -0
  176. package/dist/{chunk-TH537HOM.js → chunk-PQXPYN23.js} +6 -6
  177. package/dist/{chunk-TH537HOM.js.map → chunk-PQXPYN23.js.map} +1 -1
  178. package/dist/{chunk-U5M4JZBX.js → chunk-PYN75QAG.js} +6 -6
  179. package/dist/chunk-PYN75QAG.js.map +1 -0
  180. package/dist/{chunk-JS6MRT6M.js → chunk-QM7NQK2K.js} +4 -4
  181. package/dist/{chunk-JS6MRT6M.js.map → chunk-QM7NQK2K.js.map} +1 -1
  182. package/dist/{chunk-SUWRSJAN.cjs → chunk-RLIBY7XB.cjs} +16 -11
  183. package/dist/chunk-RLIBY7XB.cjs.map +1 -0
  184. package/dist/chunk-RNUQWYJJ.cjs +93 -0
  185. package/dist/chunk-RNUQWYJJ.cjs.map +1 -0
  186. package/dist/{chunk-GY2ZZR4Z.cjs → chunk-RUQODCTW.cjs} +18 -18
  187. package/dist/{chunk-GY2ZZR4Z.cjs.map → chunk-RUQODCTW.cjs.map} +1 -1
  188. package/dist/{chunk-FFF57VHO.cjs → chunk-RX2FXCIH.cjs} +8 -8
  189. package/dist/{chunk-FFF57VHO.cjs.map → chunk-RX2FXCIH.cjs.map} +1 -1
  190. package/dist/{chunk-EFBSEJBD.js → chunk-S4WWBV4N.js} +22 -47
  191. package/dist/chunk-S4WWBV4N.js.map +1 -0
  192. package/dist/{chunk-J3X465QT.cjs → chunk-SY2A4K6P.cjs} +9 -9
  193. package/dist/{chunk-J3X465QT.cjs.map → chunk-SY2A4K6P.cjs.map} +1 -1
  194. package/dist/{chunk-YJEX32HZ.cjs → chunk-U7QJJ3NR.cjs} +8 -8
  195. package/dist/{chunk-YJEX32HZ.cjs.map → chunk-U7QJJ3NR.cjs.map} +1 -1
  196. package/dist/{chunk-XZZI3JYK.cjs → chunk-UJDHRILS.cjs} +26 -8
  197. package/dist/chunk-UJDHRILS.cjs.map +1 -0
  198. package/dist/{chunk-IX26TMZD.cjs → chunk-UNS7OCEA.cjs} +5 -5
  199. package/dist/{chunk-IX26TMZD.cjs.map → chunk-UNS7OCEA.cjs.map} +1 -1
  200. package/dist/{chunk-RRXOSNCX.cjs → chunk-UR5EWWWL.cjs} +11 -11
  201. package/dist/{chunk-RRXOSNCX.cjs.map → chunk-UR5EWWWL.cjs.map} +1 -1
  202. package/dist/{chunk-6J326CN6.js → chunk-USEA7DB5.js} +4 -4
  203. package/dist/{chunk-6J326CN6.js.map → chunk-USEA7DB5.js.map} +1 -1
  204. package/dist/{chunk-DZZEJY3J.js → chunk-UUVI3TYW.js} +120 -148
  205. package/dist/chunk-UUVI3TYW.js.map +1 -0
  206. package/dist/{chunk-DV4K35UC.cjs → chunk-UW3KCCBT.cjs} +4 -4
  207. package/dist/{chunk-DV4K35UC.cjs.map → chunk-UW3KCCBT.cjs.map} +1 -1
  208. package/dist/{chunk-MEXR5ONE.js → chunk-V5XVXQWE.js} +5 -5
  209. package/dist/{chunk-MEXR5ONE.js.map → chunk-V5XVXQWE.js.map} +1 -1
  210. package/dist/{chunk-UXQSSRBQ.cjs → chunk-VCM4MR7N.cjs} +1785 -581
  211. package/dist/chunk-VCM4MR7N.cjs.map +1 -0
  212. package/dist/{chunk-VD52FLHL.js → chunk-VEQ5H765.js} +10 -10
  213. package/dist/{chunk-VD52FLHL.js.map → chunk-VEQ5H765.js.map} +1 -1
  214. package/dist/{chunk-Q4HAXT5C.cjs → chunk-VK7DXUGH.cjs} +31 -11
  215. package/dist/chunk-VK7DXUGH.cjs.map +1 -0
  216. package/dist/chunk-VPWNRWNO.cjs +81 -0
  217. package/dist/chunk-VPWNRWNO.cjs.map +1 -0
  218. package/dist/{chunk-VV72PGKH.cjs → chunk-VULMEKZZ.cjs} +27 -27
  219. package/dist/chunk-VULMEKZZ.cjs.map +1 -0
  220. package/dist/{chunk-MEUELWGO.cjs → chunk-VWG54F6X.cjs} +8 -8
  221. package/dist/{chunk-MEUELWGO.cjs.map → chunk-VWG54F6X.cjs.map} +1 -1
  222. package/dist/{chunk-MGJLBHPJ.js → chunk-WG4NNC3P.js} +4 -4
  223. package/dist/{chunk-MGJLBHPJ.js.map → chunk-WG4NNC3P.js.map} +1 -1
  224. package/dist/{chunk-V4ZH2H2P.cjs → chunk-WIFMXZIN.cjs} +14 -14
  225. package/dist/{chunk-V4ZH2H2P.cjs.map → chunk-WIFMXZIN.cjs.map} +1 -1
  226. package/dist/{chunk-5XMWGK3O.cjs → chunk-WOVSJHY6.cjs} +25 -36
  227. package/dist/chunk-WOVSJHY6.cjs.map +1 -0
  228. package/dist/{chunk-2VAUVJVG.js → chunk-X2P5SPGB.js} +3 -3
  229. package/dist/{chunk-2VAUVJVG.js.map → chunk-X2P5SPGB.js.map} +1 -1
  230. package/dist/{chunk-PBQMHXVO.js → chunk-XUCLNECV.js} +3 -3
  231. package/dist/{chunk-PBQMHXVO.js.map → chunk-XUCLNECV.js.map} +1 -1
  232. package/dist/{chunk-HXIU3SIQ.cjs → chunk-Y2GYPMLW.cjs} +5 -5
  233. package/dist/{chunk-HXIU3SIQ.cjs.map → chunk-Y2GYPMLW.cjs.map} +1 -1
  234. package/dist/{chunk-OTQAREYU.js → chunk-YAQB3UMC.js} +4 -4
  235. package/dist/{chunk-OTQAREYU.js.map → chunk-YAQB3UMC.js.map} +1 -1
  236. package/dist/{chunk-2VL66QBX.js → chunk-YGESCFX2.js} +3 -3
  237. package/dist/{chunk-2VL66QBX.js.map → chunk-YGESCFX2.js.map} +1 -1
  238. package/dist/{chunk-XPGIWOJO.cjs → chunk-YOAFVMEN.cjs} +18 -18
  239. package/dist/chunk-YOAFVMEN.cjs.map +1 -0
  240. package/dist/{chunk-2GMDMZKI.cjs → chunk-YQIDUJW2.cjs} +5 -5
  241. package/dist/{chunk-2GMDMZKI.cjs.map → chunk-YQIDUJW2.cjs.map} +1 -1
  242. package/dist/{chunk-R4DGCQTA.cjs → chunk-YQVWDHP4.cjs} +7 -7
  243. package/dist/{chunk-R4DGCQTA.cjs.map → chunk-YQVWDHP4.cjs.map} +1 -1
  244. package/dist/{chunk-LKGHYNLH.js → chunk-YRJYWTVG.js} +10 -10
  245. package/dist/chunk-YRJYWTVG.js.map +1 -0
  246. package/dist/{chunk-TKTCN4JE.cjs → chunk-ZNAGK36T.cjs} +9 -9
  247. package/dist/{chunk-TKTCN4JE.cjs.map → chunk-ZNAGK36T.cjs.map} +1 -1
  248. package/dist/{chunk-BSPWX2OZ.cjs → chunk-ZW2ZOEYM.cjs} +21 -15
  249. package/dist/chunk-ZW2ZOEYM.cjs.map +1 -0
  250. package/dist/components/Alert/index.cjs +10 -8
  251. package/dist/components/Alert/index.js +9 -7
  252. package/dist/components/AlertDialog/index.cjs +12 -10
  253. package/dist/components/AlertDialog/index.js +10 -8
  254. package/dist/components/AppShell/index.cjs +18 -15
  255. package/dist/components/AppShell/index.js +15 -12
  256. package/dist/components/AutocompleteInput/index.cjs +17 -14
  257. package/dist/components/AutocompleteInput/index.js +13 -10
  258. package/dist/components/Badge/Badge.d.ts.map +1 -1
  259. package/dist/components/Badge/Badge.recipe.d.ts +75 -41
  260. package/dist/components/Badge/Badge.recipe.d.ts.map +1 -1
  261. package/dist/components/Badge/index.cjs +3 -2
  262. package/dist/components/Badge/index.js +2 -1
  263. package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  264. package/dist/components/Breadcrumbs/index.cjs +5 -10
  265. package/dist/components/Breadcrumbs/index.js +2 -7
  266. package/dist/components/Button/Button.d.ts +5 -3
  267. package/dist/components/Button/Button.d.ts.map +1 -1
  268. package/dist/components/Button/index.cjs +9 -7
  269. package/dist/components/Button/index.js +8 -6
  270. package/dist/components/Calendar/index.cjs +10 -8
  271. package/dist/components/Calendar/index.js +9 -7
  272. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +83 -0
  273. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
  274. package/dist/components/CheckboxGroup/CheckboxGroup.recipe.d.ts +17 -0
  275. package/dist/components/CheckboxGroup/CheckboxGroup.recipe.d.ts.map +1 -0
  276. package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts +13 -0
  277. package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts.map +1 -0
  278. package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts +58 -0
  279. package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts.map +1 -0
  280. package/dist/components/CheckboxGroup/index.cjs +35 -0
  281. package/dist/components/CheckboxGroup/index.cjs.map +1 -0
  282. package/dist/components/CheckboxGroup/index.d.ts +4 -0
  283. package/dist/components/CheckboxGroup/index.d.ts.map +1 -0
  284. package/dist/components/CheckboxGroup/index.js +22 -0
  285. package/dist/components/CheckboxGroup/index.js.map +1 -0
  286. package/dist/components/CheckboxInput/CheckboxInput.d.ts +11 -2
  287. package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  288. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts +6 -0
  289. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts.map +1 -1
  290. package/dist/components/CheckboxInput/index.cjs +9 -8
  291. package/dist/components/CheckboxInput/index.js +8 -7
  292. package/dist/components/CodeBlock/index.cjs +10 -8
  293. package/dist/components/CodeBlock/index.js +9 -7
  294. package/dist/components/ContextMenu/index.cjs +14 -12
  295. package/dist/components/ContextMenu/index.js +12 -10
  296. package/dist/components/DateInput/index.cjs +13 -11
  297. package/dist/components/DateInput/index.js +12 -10
  298. package/dist/components/DateRangeInput/index.cjs +13 -11
  299. package/dist/components/DateRangeInput/index.js +12 -10
  300. package/dist/components/DateTimeInput/index.cjs +15 -13
  301. package/dist/components/DateTimeInput/index.js +14 -12
  302. package/dist/components/DropdownMenu/index.cjs +15 -13
  303. package/dist/components/DropdownMenu/index.js +11 -9
  304. package/dist/components/EmptyState/index.cjs +5 -5
  305. package/dist/components/EmptyState/index.js +4 -4
  306. package/dist/components/Field/index.cjs +6 -6
  307. package/dist/components/Field/index.js +4 -4
  308. package/dist/components/FileInput/index.cjs +11 -9
  309. package/dist/components/FileInput/index.js +10 -8
  310. package/dist/components/HoverCard/HoverCard.d.ts +6 -6
  311. package/dist/components/HoverCard/HoverCard.d.ts.map +1 -1
  312. package/dist/components/HoverCard/index.cjs +4 -4
  313. package/dist/components/HoverCard/index.js +2 -2
  314. package/dist/components/InputGroup/index.cjs +9 -9
  315. package/dist/components/InputGroup/index.js +5 -5
  316. package/dist/components/Item/Item.d.ts.map +1 -1
  317. package/dist/components/Item/index.cjs +7 -8
  318. package/dist/components/Item/index.js +6 -7
  319. package/dist/components/Layout/Layout.recipe.d.ts +17 -0
  320. package/dist/components/Layout/Layout.recipe.d.ts.map +1 -1
  321. package/dist/components/Layout/LayoutHeader.d.ts +12 -1
  322. package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
  323. package/dist/components/Layout/index.cjs +14 -12
  324. package/dist/components/Layout/index.js +9 -7
  325. package/dist/components/Lightbox/index.cjs +11 -9
  326. package/dist/components/Lightbox/index.js +9 -7
  327. package/dist/components/Link/Link.d.ts +4 -5
  328. package/dist/components/Link/Link.d.ts.map +1 -1
  329. package/dist/components/Link/Link.recipe.d.ts.map +1 -1
  330. package/dist/components/Link/index.cjs +9 -6
  331. package/dist/components/Link/index.js +6 -3
  332. package/dist/components/List/index.cjs +9 -10
  333. package/dist/components/List/index.js +7 -8
  334. package/dist/components/MetadataList/MetadataList.recipe.d.ts +9 -1
  335. package/dist/components/MetadataList/MetadataList.recipe.d.ts.map +1 -1
  336. package/dist/components/MetadataList/MetadataListItem.d.ts +6 -1
  337. package/dist/components/MetadataList/MetadataListItem.d.ts.map +1 -1
  338. package/dist/components/MetadataList/index.cjs +9 -6
  339. package/dist/components/MetadataList/index.js +7 -4
  340. package/dist/components/MultiSelect/index.cjs +14 -12
  341. package/dist/components/MultiSelect/index.js +13 -11
  342. package/dist/components/NumberInput/index.cjs +12 -10
  343. package/dist/components/NumberInput/index.js +11 -9
  344. package/dist/components/Pagination/index.cjs +10 -8
  345. package/dist/components/Pagination/index.js +9 -7
  346. package/dist/components/PasswordInput/index.cjs +13 -11
  347. package/dist/components/PasswordInput/index.js +12 -10
  348. package/dist/components/Popover/Popover.d.ts +13 -1
  349. package/dist/components/Popover/Popover.d.ts.map +1 -1
  350. package/dist/components/Popover/index.cjs +11 -9
  351. package/dist/components/Popover/index.js +9 -7
  352. package/dist/components/RadioGroup/index.cjs +10 -9
  353. package/dist/components/RadioGroup/index.js +8 -7
  354. package/dist/components/Schedule/CalendarEvent.d.ts +18 -4
  355. package/dist/components/Schedule/CalendarEvent.d.ts.map +1 -1
  356. package/dist/components/Schedule/DayView.d.ts +7 -1
  357. package/dist/components/Schedule/DayView.d.ts.map +1 -1
  358. package/dist/components/Schedule/ListView.d.ts.map +1 -1
  359. package/dist/components/Schedule/ListView.recipe.d.ts +56 -0
  360. package/dist/components/Schedule/ListView.recipe.d.ts.map +1 -0
  361. package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
  362. package/dist/components/Schedule/MonthlyView.recipe.d.ts +47 -0
  363. package/dist/components/Schedule/MonthlyView.recipe.d.ts.map +1 -0
  364. package/dist/components/Schedule/ScheduleEvent.recipe.d.ts +17 -0
  365. package/dist/components/Schedule/ScheduleEvent.recipe.d.ts.map +1 -1
  366. package/dist/components/Schedule/TimeGridView.d.ts +7 -1
  367. package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
  368. package/dist/components/Schedule/TimeGridView.recipe.d.ts +43 -0
  369. package/dist/components/Schedule/TimeGridView.recipe.d.ts.map +1 -0
  370. package/dist/components/Schedule/WeeklyView.d.ts +7 -1
  371. package/dist/components/Schedule/WeeklyView.d.ts.map +1 -1
  372. package/dist/components/Schedule/index.cjs +44 -21
  373. package/dist/components/Schedule/index.d.ts +6 -2
  374. package/dist/components/Schedule/index.d.ts.map +1 -1
  375. package/dist/components/Schedule/index.js +17 -10
  376. package/dist/components/Schedule/plugins/EventMovePlugin.d.ts +23 -0
  377. package/dist/components/Schedule/plugins/EventMovePlugin.d.ts.map +1 -0
  378. package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts +31 -0
  379. package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts.map +1 -0
  380. package/dist/components/Schedule/plugins/EventResizePlugin.d.ts +24 -0
  381. package/dist/components/Schedule/plugins/EventResizePlugin.d.ts.map +1 -0
  382. package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts +39 -0
  383. package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts.map +1 -0
  384. package/dist/components/Schedule/plugins/index.d.ts +4 -0
  385. package/dist/components/Schedule/plugins/index.d.ts.map +1 -1
  386. package/dist/components/Schedule/shared.d.ts +58 -3
  387. package/dist/components/Schedule/shared.d.ts.map +1 -1
  388. package/dist/components/Schedule/types.d.ts +47 -1
  389. package/dist/components/Schedule/types.d.ts.map +1 -1
  390. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.d.ts.map +1 -1
  391. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts +4 -0
  392. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts.map +1 -0
  393. package/dist/components/SearchFilterInput/index.cjs +32 -29
  394. package/dist/components/SearchFilterInput/index.js +24 -21
  395. package/dist/components/Select/index.cjs +15 -13
  396. package/dist/components/Select/index.js +13 -11
  397. package/dist/components/SideNav/SideNav.d.ts.map +1 -1
  398. package/dist/components/SideNav/SideNav.recipe.d.ts +26 -7
  399. package/dist/components/SideNav/SideNav.recipe.d.ts.map +1 -1
  400. package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
  401. package/dist/components/SideNav/index.cjs +18 -15
  402. package/dist/components/SideNav/index.js +12 -9
  403. package/dist/components/Slider/index.cjs +6 -6
  404. package/dist/components/Slider/index.js +5 -5
  405. package/dist/components/Spinner/index.cjs +5 -5
  406. package/dist/components/Spinner/index.js +4 -4
  407. package/dist/components/SplitButton/index.cjs +13 -11
  408. package/dist/components/SplitButton/index.js +12 -10
  409. package/dist/components/Stepper/index.cjs +5 -5
  410. package/dist/components/Stepper/index.js +4 -4
  411. package/dist/components/Switch/index.cjs +6 -6
  412. package/dist/components/Switch/index.js +5 -5
  413. package/dist/components/Table/index.cjs +55 -52
  414. package/dist/components/Table/index.js +29 -26
  415. package/dist/components/Tabs/Tab.d.ts.map +1 -1
  416. package/dist/components/Tabs/index.cjs +15 -13
  417. package/dist/components/Tabs/index.js +10 -8
  418. package/dist/components/Tag/Tag.d.ts.map +1 -1
  419. package/dist/components/Tag/index.cjs +8 -5
  420. package/dist/components/Tag/index.js +7 -4
  421. package/dist/components/TagsInput/index.cjs +15 -12
  422. package/dist/components/TagsInput/index.js +14 -11
  423. package/dist/components/Text/Heading.d.ts +5 -5
  424. package/dist/components/Text/Heading.d.ts.map +1 -1
  425. package/dist/components/Text/Text.d.ts +5 -5
  426. package/dist/components/Text/Text.d.ts.map +1 -1
  427. package/dist/components/Text/index.cjs +5 -5
  428. package/dist/components/Text/index.js +3 -3
  429. package/dist/components/TextArea/index.cjs +7 -7
  430. package/dist/components/TextArea/index.js +6 -6
  431. package/dist/components/TextInput/index.cjs +12 -10
  432. package/dist/components/TextInput/index.js +11 -9
  433. package/dist/components/Thumbnail/index.cjs +10 -8
  434. package/dist/components/Thumbnail/index.js +9 -7
  435. package/dist/components/TimeInput/index.cjs +11 -9
  436. package/dist/components/TimeInput/index.js +10 -8
  437. package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
  438. package/dist/components/Toast/index.cjs +12 -10
  439. package/dist/components/Toast/index.js +9 -7
  440. package/dist/components/ToggleButton/ToggleButton.recipe.d.ts.map +1 -1
  441. package/dist/components/ToggleButton/index.cjs +7 -7
  442. package/dist/components/ToggleButton/index.js +5 -5
  443. package/dist/components/Tooltip/Tooltip.d.ts +6 -6
  444. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  445. package/dist/components/Tooltip/index.cjs +4 -4
  446. package/dist/components/Tooltip/index.js +2 -2
  447. package/dist/components/TopNav/TopNavItem.d.ts.map +1 -1
  448. package/dist/components/TopNav/index.cjs +16 -13
  449. package/dist/components/TopNav/index.js +11 -8
  450. package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
  451. package/dist/components/TreeView/index.cjs +3 -2
  452. package/dist/components/TreeView/index.js +2 -1
  453. package/dist/index.cjs +260 -232
  454. package/dist/index.cjs.map +1 -1
  455. package/dist/index.d.ts +2 -1
  456. package/dist/index.d.ts.map +1 -1
  457. package/dist/index.js +62 -58
  458. package/dist/index.js.map +1 -1
  459. package/dist/internal/ActionElement.d.ts +45 -0
  460. package/dist/internal/ActionElement.d.ts.map +1 -0
  461. package/dist/internal/HoverLayerTrigger.d.ts +3 -4
  462. package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
  463. package/dist/internal/useLayer.d.ts +12 -0
  464. package/dist/internal/useLayer.d.ts.map +1 -1
  465. package/dist/internal/useSelectListbox.d.ts +5 -5
  466. package/dist/internal/useSelectListbox.d.ts.map +1 -1
  467. package/dist/styles.css +1 -1
  468. package/package.json +1 -1
  469. package/dist/chunk-2AWSJF22.js.map +0 -1
  470. package/dist/chunk-2RZNX26F.cjs.map +0 -1
  471. package/dist/chunk-3VJIUZAY.cjs.map +0 -1
  472. package/dist/chunk-3Z5PF75J.cjs.map +0 -1
  473. package/dist/chunk-4RDA4W4N.js.map +0 -1
  474. package/dist/chunk-5XMWGK3O.cjs.map +0 -1
  475. package/dist/chunk-65MJZYO6.js.map +0 -1
  476. package/dist/chunk-6EYLEVC6.js.map +0 -1
  477. package/dist/chunk-6PIVWNUR.js.map +0 -1
  478. package/dist/chunk-AEYJ6PWC.js.map +0 -1
  479. package/dist/chunk-BIJ6YDWJ.cjs.map +0 -1
  480. package/dist/chunk-BSPWX2OZ.cjs.map +0 -1
  481. package/dist/chunk-D5OX6II7.cjs.map +0 -1
  482. package/dist/chunk-DZZEJY3J.js.map +0 -1
  483. package/dist/chunk-EBJPUXFQ.js.map +0 -1
  484. package/dist/chunk-EFBSEJBD.js.map +0 -1
  485. package/dist/chunk-F7BFO3SD.cjs.map +0 -1
  486. package/dist/chunk-FCUUGJTM.cjs.map +0 -1
  487. package/dist/chunk-GSTINE4X.js.map +0 -1
  488. package/dist/chunk-GW6P4FJ4.cjs.map +0 -1
  489. package/dist/chunk-H2EMKCWT.js +0 -78
  490. package/dist/chunk-H2EMKCWT.js.map +0 -1
  491. package/dist/chunk-H4L456EW.js.map +0 -1
  492. package/dist/chunk-HIH6MS5D.js.map +0 -1
  493. package/dist/chunk-HWP2UGOC.cjs.map +0 -1
  494. package/dist/chunk-J2YKUHQM.js.map +0 -1
  495. package/dist/chunk-JM4Q7ZQH.cjs.map +0 -1
  496. package/dist/chunk-JSAYTQTJ.cjs.map +0 -1
  497. package/dist/chunk-KC4EKXGF.js.map +0 -1
  498. package/dist/chunk-KUXFEAT4.cjs +0 -80
  499. package/dist/chunk-KUXFEAT4.cjs.map +0 -1
  500. package/dist/chunk-L5JS6P62.cjs.map +0 -1
  501. package/dist/chunk-L5PJCLV6.js.map +0 -1
  502. package/dist/chunk-LBGC6EC5.js.map +0 -1
  503. package/dist/chunk-LKGHYNLH.js.map +0 -1
  504. package/dist/chunk-OUZX7STE.cjs.map +0 -1
  505. package/dist/chunk-Q3HMGFGI.js.map +0 -1
  506. package/dist/chunk-Q4HAXT5C.cjs.map +0 -1
  507. package/dist/chunk-RJEZBOSH.js.map +0 -1
  508. package/dist/chunk-S5CMLG2E.js.map +0 -1
  509. package/dist/chunk-SUWRSJAN.cjs.map +0 -1
  510. package/dist/chunk-THTVYP5V.js.map +0 -1
  511. package/dist/chunk-TSKFGLGQ.cjs.map +0 -1
  512. package/dist/chunk-TTDNCN5G.cjs.map +0 -1
  513. package/dist/chunk-U5M4JZBX.js.map +0 -1
  514. package/dist/chunk-UXQSSRBQ.cjs.map +0 -1
  515. package/dist/chunk-VH3G4IUX.js.map +0 -1
  516. package/dist/chunk-VV72PGKH.cjs.map +0 -1
  517. package/dist/chunk-W5F7PYT2.js.map +0 -1
  518. package/dist/chunk-XPGIWOJO.cjs.map +0 -1
  519. package/dist/chunk-XZZI3JYK.cjs.map +0 -1
  520. package/dist/chunk-ZPJW3PP7.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TextArea/TextArea.tsx"],"names":[],"mappings":"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","file":"chunk-QO5C7TIV.js","sourcesContent":["import {\n useId,\n type ChangeEvent,\n type CSSProperties,\n type ClipboardEvent,\n type FocusEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from 'components/Field';\nimport {inputRecipe, inputStyles} from 'components/Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from 'components/Field/inputUtils';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Spinner} from 'components/Spinner';\nimport {Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\n\nexport type TextAreaProps = {\n /**\n * Additional CSS class names applied to the textarea wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the textarea element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether to focus the textarea on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether the browser spellcheck is enabled.\n * @default true\n */\n hasSpellCheck?: boolean;\n /**\n * HTML name attribute.\n */\n htmlName?: string;\n /**\n * Whether the textarea is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the textarea is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum character count. Displays a counter when set.\n */\n maxLength?: number;\n /**\n * Called when the textarea loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLTextAreaElement>) => void;\n /**\n * Called with the next string value.\n */\n onChange: (value: string, event: ChangeEvent<HTMLTextAreaElement>) => void;\n /**\n * Called when the textarea receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLTextAreaElement>) => void;\n /**\n * Called when content is pasted into the textarea.\n */\n onPaste?: (event: ClipboardEvent<HTMLTextAreaElement>) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the textarea element.\n */\n ref?: Ref<HTMLTextAreaElement>;\n /**\n * Number of visible text rows.\n * @default 3\n */\n rows?: number;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Icon shown before the textarea.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the textarea.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the textarea wrapper.\n */\n style?: CSSProperties;\n /**\n * Controlled textarea value.\n */\n value: string;\n} & FieldNecessity;\n\nconst styles = {\n wrapper: css({\n alignItems: 'flex-start',\n py: '2',\n }),\n textarea: css({\n resize: 'vertical',\n minH: '20',\n }),\n counter: css({\n alignSelf: 'flex-end',\n mt: '1',\n }),\n counterOverLimit: css({\n color: 'status.error.fg',\n }),\n} as const;\n\n/**\n * Multi-line text input field with optional character counter.\n */\nexport function TextArea({\n label,\n value,\n onChange,\n rows = 3,\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n hasSpellCheck = true,\n hasAutoFocus = false,\n htmlName,\n status,\n labelIcon,\n labelTooltip,\n startIcon,\n placeholder,\n maxLength,\n onPaste,\n onFocus,\n onBlur,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: TextAreaProps): React.JSX.Element {\n const inputId = useId();\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const counterID = maxLength != null ? `${inputId}-counter` : undefined;\n const describedBy = getDescribedBy(descriptionID, statusMessageID, counterID);\n const isOverLimit = maxLength != null && value.length > maxLength;\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n )}>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <textarea\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || isOverLimit || undefined}\n aria-required={isRequired ?? undefined}\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={cx(inputStyles.control, styles.textarea)}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n maxLength={maxLength}\n name={htmlName}\n onBlur={onBlur}\n onChange={event => onChange(event.target.value, event)}\n onFocus={onFocus}\n onPaste={onPaste}\n placeholder={placeholder}\n ref={ref}\n rows={rows}\n spellCheck={hasSpellCheck}\n value={value}\n />\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n {maxLength != null ? (\n <Text\n as=\"span\"\n className={cx(\n styles.counter,\n isOverLimit ? styles.counterOverLimit : undefined,\n )}\n color=\"secondary\"\n id={counterID}\n type=\"supporting\">\n {value.length}/{maxLength}\n </Text>\n ) : null}\n </Field>\n );\n}\n\nTextArea.displayName = 'TextArea';\n"]}
1
+ {"version":3,"sources":["../src/components/TextArea/TextArea.tsx"],"names":[],"mappings":"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","file":"chunk-MUXUHIIV.js","sourcesContent":["import {\n useId,\n type ChangeEvent,\n type CSSProperties,\n type ClipboardEvent,\n type FocusEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from 'components/Field';\nimport {inputRecipe, inputStyles} from 'components/Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from 'components/Field/inputUtils';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Spinner} from 'components/Spinner';\nimport {Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\n\nexport type TextAreaProps = {\n /**\n * Additional CSS class names applied to the textarea wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the textarea element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether to focus the textarea on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether the browser spellcheck is enabled.\n * @default true\n */\n hasSpellCheck?: boolean;\n /**\n * HTML name attribute.\n */\n htmlName?: string;\n /**\n * Whether the textarea is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the textarea is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum character count. Displays a counter when set.\n */\n maxLength?: number;\n /**\n * Called when the textarea loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLTextAreaElement>) => void;\n /**\n * Called with the next string value.\n */\n onChange: (value: string, event: ChangeEvent<HTMLTextAreaElement>) => void;\n /**\n * Called when the textarea receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLTextAreaElement>) => void;\n /**\n * Called when content is pasted into the textarea.\n */\n onPaste?: (event: ClipboardEvent<HTMLTextAreaElement>) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the textarea element.\n */\n ref?: Ref<HTMLTextAreaElement>;\n /**\n * Number of visible text rows.\n * @default 3\n */\n rows?: number;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Icon shown before the textarea.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the textarea.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the textarea wrapper.\n */\n style?: CSSProperties;\n /**\n * Controlled textarea value.\n */\n value: string;\n} & FieldNecessity;\n\nconst styles = {\n wrapper: css({\n alignItems: 'flex-start',\n py: '2',\n }),\n textarea: css({\n resize: 'vertical',\n minH: '20',\n }),\n counter: css({\n alignSelf: 'flex-end',\n mt: '1',\n }),\n counterOverLimit: css({\n color: 'status.error.fg',\n }),\n} as const;\n\n/**\n * Multi-line text input field with optional character counter.\n */\nexport function TextArea({\n label,\n value,\n onChange,\n rows = 3,\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n hasSpellCheck = true,\n hasAutoFocus = false,\n htmlName,\n status,\n labelIcon,\n labelTooltip,\n startIcon,\n placeholder,\n maxLength,\n onPaste,\n onFocus,\n onBlur,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: TextAreaProps): React.JSX.Element {\n const inputId = useId();\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const counterID = maxLength != null ? `${inputId}-counter` : undefined;\n const describedBy = getDescribedBy(descriptionID, statusMessageID, counterID);\n const isOverLimit = maxLength != null && value.length > maxLength;\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n )}>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <textarea\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || isOverLimit || undefined}\n aria-required={isRequired ?? undefined}\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={cx(inputStyles.control, styles.textarea)}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n maxLength={maxLength}\n name={htmlName}\n onBlur={onBlur}\n onChange={event => onChange(event.target.value, event)}\n onFocus={onFocus}\n onPaste={onPaste}\n placeholder={placeholder}\n ref={ref}\n rows={rows}\n spellCheck={hasSpellCheck}\n value={value}\n />\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n {maxLength != null ? (\n <Text\n as=\"span\"\n className={cx(\n styles.counter,\n isOverLimit ? styles.counterOverLimit : undefined,\n )}\n color=\"secondary\"\n id={counterID}\n type=\"supporting\">\n {value.length}/{maxLength}\n </Text>\n ) : null}\n </Field>\n );\n}\n\nTextArea.displayName = 'TextArea';\n"]}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunk5XMWGK3O_cjs = require('./chunk-5XMWGK3O.cjs');
4
- var chunk3Z5PF75J_cjs = require('./chunk-3Z5PF75J.cjs');
3
+ var chunkWOVSJHY6_cjs = require('./chunk-WOVSJHY6.cjs');
5
4
  var chunk2MXK2SDR_cjs = require('./chunk-2MXK2SDR.cjs');
6
- var chunkQ4HAXT5C_cjs = require('./chunk-Q4HAXT5C.cjs');
5
+ var chunkCKDB7QNT_cjs = require('./chunk-CKDB7QNT.cjs');
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');
9
9
  var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
@@ -102,7 +102,7 @@ function usePopover({
102
102
  });
103
103
  onHide?.();
104
104
  }, [onHide]);
105
- const layer = chunkQ4HAXT5C_cjs.useLayer({
105
+ const layer = chunkVK7DXUGH_cjs.useLayer({
106
106
  isDismissable,
107
107
  id: layerId,
108
108
  onShow,
@@ -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
- chunk5XMWGK3O_cjs.Button,
154
+ chunkWOVSJHY6_cjs.Button,
155
155
  {
156
156
  icon: lucideReact.X,
157
157
  isIconOnly: true,
@@ -242,6 +242,8 @@ function Popover({
242
242
  alignment = "start",
243
243
  isOpen,
244
244
  onOpenChange,
245
+ offsetX,
246
+ offsetY,
245
247
  isEnabled = true,
246
248
  width,
247
249
  label,
@@ -316,7 +318,7 @@ function Popover({
316
318
  },
317
319
  [handleTriggerClick, handleTriggerKeyDown, popover.triggerProps]
318
320
  );
319
- chunkQ4HAXT5C_cjs.useIsomorphicLayoutEffect(() => {
321
+ chunkVK7DXUGH_cjs.useIsomorphicLayoutEffect(() => {
320
322
  const anchor = anchorRef?.current ?? wrapperRef.current;
321
323
  if (anchor == null) {
322
324
  return;
@@ -334,7 +336,7 @@ function Popover({
334
336
  detach();
335
337
  };
336
338
  }, [anchorRef, attachTrigger, isEnabled, popover]);
337
- chunkQ4HAXT5C_cjs.useIsomorphicLayoutEffect(() => {
339
+ chunkVK7DXUGH_cjs.useIsomorphicLayoutEffect(() => {
338
340
  if (!isControlled) {
339
341
  return;
340
342
  }
@@ -345,7 +347,7 @@ function Popover({
345
347
  }
346
348
  }, [isControlled, isOpen, popover]);
347
349
  const widthStyle = width == null ? void 0 : { width: typeof width === "number" ? `${width}px` : width };
348
- const paddingStyle = padding != null && padding !== 0 ? { padding: chunk3Z5PF75J_cjs.token(`spacing.${padding}`) } : void 0;
350
+ const paddingStyle = padding != null && padding !== 0 ? { padding: chunkCKDB7QNT_cjs.token(`spacing.${padding}`) } : void 0;
349
351
  const popoverContent = popover.render(
350
352
  /* @__PURE__ */ jsxRuntime.jsx(
351
353
  "div",
@@ -360,6 +362,8 @@ function Popover({
360
362
  {
361
363
  placement,
362
364
  alignment,
365
+ offsetX,
366
+ offsetY,
363
367
  className: styles2.gap[placement],
364
368
  style: { minWidth: "anchor-size(width)" }
365
369
  }
@@ -376,5 +380,5 @@ Popover.displayName = "Popover";
376
380
 
377
381
  exports.Popover = Popover;
378
382
  exports.usePopover = usePopover;
379
- //# sourceMappingURL=chunk-L5JS6P62.cjs.map
380
- //# sourceMappingURL=chunk-L5JS6P62.cjs.map
383
+ //# sourceMappingURL=chunk-MYSLJWCW.cjs.map
384
+ //# sourceMappingURL=chunk-MYSLJWCW.cjs.map
@@ -0,0 +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-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,9 @@
1
- import { useAppShellMobile, MobileNavToggle, MobileNav } from './chunk-HNDDNW52.js';
1
+ import { useAppShellMobile, MobileNavToggle, MobileNav } from './chunk-FTNEAX24.js';
2
2
  import { Divider } from './chunk-BQWUTDTN.js';
3
- import { Text } from './chunk-RJEZBOSH.js';
4
- import { useLinkComponent, useRel, getAriaLabel } from './chunk-EFBSEJBD.js';
3
+ import { useRel, getAriaLabel } from './chunk-5FQKELP6.js';
5
4
  import { VisuallyHidden } from './chunk-V2V5TTTL.js';
5
+ import { Text } from './chunk-5GSRIOXE.js';
6
+ import { useLinkComponent, ActionElement } from './chunk-PG4CZRTU.js';
6
7
  import { isReactNode } from './chunk-2PSZAWLC.js';
7
8
  import { Icon } from './chunk-IUW777WZ.js';
8
9
  import { sva } from './chunk-IAVZKGZS.js';
@@ -343,7 +344,6 @@ function TopNavItem({
343
344
  style,
344
345
  target
345
346
  }) {
346
- const LinkComponent = useLinkComponent(as);
347
347
  const renderMode = useTopNavRenderMode();
348
348
  const { closeMobileNav } = useAppShellMobile();
349
349
  const isDrawer = renderMode === "drawer";
@@ -368,39 +368,24 @@ function TopNavItem({
368
368
  icon != null ? /* @__PURE__ */ jsx(Icon, { "aria-hidden": "true", color: "inherit", icon, size: "md" }) : null,
369
369
  !isIconOnly ? labelContent : null
370
370
  ] });
371
- if (href == null) {
372
- return /* @__PURE__ */ jsx(
373
- "button",
374
- {
375
- "aria-current": isSelected ? "page" : void 0,
376
- "aria-label": isIconOnly ? label : void 0,
377
- className: className_,
378
- "data-testid": dataTestId,
379
- disabled: isDisabled,
380
- onClick: handleClick,
381
- ref,
382
- style,
383
- type: "button",
384
- children: content
385
- }
386
- );
387
- }
388
371
  return /* @__PURE__ */ jsxs(
389
- LinkComponent,
372
+ ActionElement,
390
373
  {
391
374
  "aria-current": isSelected ? "page" : void 0,
392
- "aria-disabled": isDisabled || void 0,
375
+ "aria-disabled": href != null && isDisabled ? true : void 0,
393
376
  "aria-label": isIconOnly ? getAriaLabel(label, opensInNewTab) : void 0,
377
+ as,
394
378
  className: className_,
395
379
  "data-testid": dataTestId,
396
380
  href,
381
+ isDisabled: href == null ? isDisabled : void 0,
382
+ isLink: href != null,
397
383
  onClick: handleClick,
398
384
  ref,
399
- rel: linkRel,
385
+ rel: href != null ? linkRel : void 0,
400
386
  style,
401
- tabIndex: isDisabled ? -1 : void 0,
402
- target,
403
- to: LinkComponent === "a" ? void 0 : href,
387
+ tabIndex: href != null && isDisabled ? -1 : void 0,
388
+ target: href != null ? target : void 0,
404
389
  children: [
405
390
  content,
406
391
  opensInNewTab && !isIconOnly ? /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -414,5 +399,5 @@ function TopNavItem({
414
399
  TopNavItem.displayName = "TopNavItem";
415
400
 
416
401
  export { TopNav, TopNavHeading, TopNavItem, TopNavMobileContentContext, TopNavRenderContext };
417
- //# sourceMappingURL=chunk-65MJZYO6.js.map
418
- //# sourceMappingURL=chunk-65MJZYO6.js.map
402
+ //# sourceMappingURL=chunk-N6C37HXD.js.map
403
+ //# sourceMappingURL=chunk-N6C37HXD.js.map
@@ -0,0 +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-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"]}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkGW6P4FJ4_cjs = require('./chunk-GW6P4FJ4.cjs');
4
- var chunkFCUUGJTM_cjs = require('./chunk-FCUUGJTM.cjs');
5
- var chunk7CTHD4G6_cjs = require('./chunk-7CTHD4G6.cjs');
6
- var chunkZPJW3PP7_cjs = require('./chunk-ZPJW3PP7.cjs');
3
+ var chunk4MIIXRZN_cjs = require('./chunk-4MIIXRZN.cjs');
4
+ var chunkMJHEPDDX_cjs = require('./chunk-MJHEPDDX.cjs');
5
+ var chunkBYV7NXC5_cjs = require('./chunk-BYV7NXC5.cjs');
6
+ var chunkLTHPJRFK_cjs = require('./chunk-LTHPJRFK.cjs');
7
7
  var chunk6SHL7FYO_cjs = require('./chunk-6SHL7FYO.cjs');
8
8
  var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
9
9
  var chunkJRBQKFVO_cjs = require('./chunk-JRBQKFVO.cjs');
@@ -270,9 +270,9 @@ function AppShell({
270
270
  }),
271
271
  [isBelowBreakpoint, isMobileNavOpen, mobileNavEnabled]
272
272
  );
273
- const mobileContentValue = hasSideNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunkFCUUGJTM_cjs.SideNavRenderContext, { value: "drawer-content", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: sideNavPresenceRef, children: sideNav }) }) : null;
274
- const drawerMobileContentValue = hasSideNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunkFCUUGJTM_cjs.SideNavRenderContext, { value: "drawer-content", children: sideNav }) : null;
275
- const topNavContent = hasTopNav && isBelowBreakpoint && !isMobileNavDisabled ? /* @__PURE__ */ jsxRuntime.jsx(chunkGW6P4FJ4_cjs.TopNavMobileContentContext, { value: mobileContentValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunkGW6P4FJ4_cjs.TopNavRenderContext, { value: "mobile-bar", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: topNavPresenceRef, children: topNav }) }) }) : topNav;
273
+ const mobileContentValue = hasSideNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunkMJHEPDDX_cjs.SideNavRenderContext, { value: "drawer-content", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: sideNavPresenceRef, children: sideNav }) }) : null;
274
+ const drawerMobileContentValue = hasSideNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunkMJHEPDDX_cjs.SideNavRenderContext, { value: "drawer-content", children: sideNav }) : null;
275
+ const topNavContent = hasTopNav && isBelowBreakpoint && !isMobileNavDisabled ? /* @__PURE__ */ jsxRuntime.jsx(chunk4MIIXRZN_cjs.TopNavMobileContentContext, { value: mobileContentValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunk4MIIXRZN_cjs.TopNavRenderContext, { value: "mobile-bar", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: topNavPresenceRef, children: topNav }) }) }) : topNav;
276
276
  const headerContent = hasTopNav || chunkQAO6QMNQ_cjs.isReactNode(banner) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkSPDVNY2Z_cjs.cx(isAuto && styles.headerSticky), ref: headerRef, children: /* @__PURE__ */ jsxRuntime.jsxs("header", { style: { flexShrink: 0 }, children: [
277
277
  chunkQAO6QMNQ_cjs.isReactNode(banner) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.banner, children: banner }) : null,
278
278
  hasTopNav ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: topNavPresenceRef, children: topNavContent }) : null
@@ -284,16 +284,16 @@ function AppShell({
284
284
  className: styles.autoMobileTopBar,
285
285
  role: "navigation",
286
286
  children: [
287
- /* @__PURE__ */ jsxRuntime.jsx(chunkFCUUGJTM_cjs.SideNavRenderContext, { value: "topbar", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: sideNavPresenceRef, children: sideNav }) }),
288
- /* @__PURE__ */ jsxRuntime.jsx(chunk7CTHD4G6_cjs.MobileNavToggle, {})
287
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMJHEPDDX_cjs.SideNavRenderContext, { value: "topbar", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: sideNavPresenceRef, children: sideNav }) }),
288
+ /* @__PURE__ */ jsxRuntime.jsx(chunkBYV7NXC5_cjs.MobileNavToggle, {})
289
289
  ]
290
290
  }
291
291
  ) }) : void 0;
292
- const sideNavPanel = showSideNavInline ? /* @__PURE__ */ jsxRuntime.jsx(chunkZPJW3PP7_cjs.LayoutPanel, { isScrollable: isFill, padding: 0, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: sideNavPresenceRef, children: sideNav }) }) : void 0;
292
+ const sideNavPanel = showSideNavInline ? /* @__PURE__ */ jsxRuntime.jsx(chunkLTHPJRFK_cjs.LayoutPanel, { isScrollable: isFill, padding: 0, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: sideNavPresenceRef, children: sideNav }) }) : void 0;
293
293
  const sideNavContent = sideNavPanel != null && isAuto ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.sideNavSticky, children: sideNavPanel }) : sideNavPanel;
294
294
  const contentClassName = variant === "default" && hasTopNavContent && showSideNavInline ? styles.contentTransparent : variant === "default" ? styles.contentSurface : void 0;
295
295
  const mainInner = /* @__PURE__ */ jsxRuntime.jsx(
296
- chunkZPJW3PP7_cjs.LayoutContent,
296
+ chunkLTHPJRFK_cjs.LayoutContent,
297
297
  {
298
298
  as: "main",
299
299
  className: contentClassName,
@@ -309,7 +309,7 @@ function AppShell({
309
309
  mainInner
310
310
  ] }) : mainInner;
311
311
  const rootStyle = { ...style };
312
- return /* @__PURE__ */ jsxRuntime.jsx(chunk7CTHD4G6_cjs.AppShellMobileContext, { value: mobileContextValue, children: /* @__PURE__ */ jsxRuntime.jsxs(
312
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkBYV7NXC5_cjs.AppShellMobileContext, { value: mobileContextValue, children: /* @__PURE__ */ jsxRuntime.jsxs(
313
313
  "div",
314
314
  {
315
315
  className: chunkSPDVNY2Z_cjs.cx(appShellRecipe({ height, variant }), className),
@@ -327,7 +327,7 @@ function AppShell({
327
327
  }
328
328
  ),
329
329
  /* @__PURE__ */ jsxRuntime.jsx(
330
- chunkZPJW3PP7_cjs.Layout,
330
+ chunkLTHPJRFK_cjs.Layout,
331
331
  {
332
332
  content: mainContent,
333
333
  hasDividers: navHasDividers,
@@ -341,8 +341,8 @@ function AppShell({
341
341
  }
342
342
  ),
343
343
  isBelowBreakpoint && !isMobileNavDisabled ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
344
- hasSideNav && !hasTopNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunkFCUUGJTM_cjs.SideNavRenderContext, { value: "drawer", children: sideNav }) : null,
345
- hasTopNav && hasTopNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunkGW6P4FJ4_cjs.TopNavMobileContentContext, { value: drawerMobileContentValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunkGW6P4FJ4_cjs.TopNavRenderContext, { value: "drawer", children: topNav }) }) : null
344
+ hasSideNav && !hasTopNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunkMJHEPDDX_cjs.SideNavRenderContext, { value: "drawer", children: sideNav }) : null,
345
+ hasTopNav && hasTopNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunk4MIIXRZN_cjs.TopNavMobileContentContext, { value: drawerMobileContentValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunk4MIIXRZN_cjs.TopNavRenderContext, { value: "drawer", children: topNav }) }) : null
346
346
  ] }) : null
347
347
  ]
348
348
  }
@@ -351,5 +351,5 @@ function AppShell({
351
351
  AppShell.displayName = "AppShell";
352
352
 
353
353
  exports.AppShell = AppShell;
354
- //# sourceMappingURL=chunk-VO4FG3L2.cjs.map
355
- //# sourceMappingURL=chunk-VO4FG3L2.cjs.map
354
+ //# sourceMappingURL=chunk-NGNVNRAZ.cjs.map
355
+ //# sourceMappingURL=chunk-NGNVNRAZ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/AppShell/AppShell.recipe.ts","../src/components/AppShell/useSlotPresence.tsx","../src/internal/sharedResizeObserver.ts","../src/internal/useMediaQuery.ts","../src/components/AppShell/AppShell.tsx"],"names":["cva","useState","useRef","useCallback","observer","useEffect","useSyncExternalStore","css","useId","isReactNode","useMemo","jsx","SideNavRenderContext","TopNavMobileContentContext","TopNavRenderContext","cx","jsxs","MobileNavToggle","LayoutPanel","LayoutContent","AppShellMobileContext","mergeRefs","Layout","Fragment"],"mappings":"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","file":"chunk-VO4FG3L2.cjs","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const appShellRecipe = cva({\n base: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n },\n variants: {\n height: {\n fill: {\n h: '100dvh',\n },\n auto: {\n minH: '100dvh',\n },\n },\n variant: {\n default: {\n bg: 'bg.subtle',\n },\n section: {\n bg: 'bg',\n },\n },\n },\n defaultVariants: {\n height: 'fill',\n variant: 'default',\n },\n});\n\nexport type AppShellVariants = RecipeVariantProps<typeof appShellRecipe>;\n","import {useCallback, useEffect, useRef, useState} from 'react';\n\nfunction hasChildContent(element: HTMLElement): boolean {\n for (const node of element.childNodes) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n return true;\n }\n\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '') {\n return true;\n }\n }\n\n return false;\n}\n\nexport function useSlotPresence(initialValue = false): {\n hasContent: boolean;\n ref: (node: HTMLDivElement | null) => void;\n} {\n const [hasContent, setHasContent] = useState(initialValue);\n const observerRef = useRef<MutationObserver | null>(null);\n\n const ref = useCallback((node: HTMLDivElement | null) => {\n observerRef.current?.disconnect();\n observerRef.current = null;\n\n if (node == null) {\n setHasContent(false);\n return;\n }\n\n setHasContent(hasChildContent(node));\n\n const observer = new MutationObserver(() => {\n setHasContent(hasChildContent(node));\n });\n observer.observe(node, {childList: true});\n observerRef.current = observer;\n }, []);\n\n useEffect(() => {\n return () => observerRef.current?.disconnect();\n }, []);\n\n return {hasContent, ref};\n}\n","type ResizeCallback = (entry: ResizeObserverEntry) => void;\n\nlet observer: ResizeObserver | null = null;\nconst callbacks = new Map<Element, ResizeCallback>();\n\nfunction getObserver(): ResizeObserver {\n observer ??= new ResizeObserver(entries => {\n for (const entry of entries) {\n callbacks.get(entry.target)?.(entry);\n }\n });\n\n return observer;\n}\n\nexport function observeResize(\n element: Element,\n callback: ResizeCallback,\n): void {\n callbacks.set(element, callback);\n getObserver().observe(element);\n}\n\nexport function unobserveResize(element: Element): void {\n callbacks.delete(element);\n\n if (observer == null) {\n return;\n }\n\n observer.unobserve(element);\n\n if (callbacks.size === 0) {\n observer.disconnect();\n observer = null;\n }\n}\n","import {useCallback, useSyncExternalStore} from 'react';\n\nfunction getServerSnapshot(): boolean {\n return false;\n}\n\n/**\n * Subscribe to a browser media query using React's external-store API.\n */\nexport function useMediaQuery(query: string): boolean {\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n const mediaQueryList = window.matchMedia(query);\n mediaQueryList.addEventListener('change', onStoreChange);\n return () => mediaQueryList.removeEventListener('change', onStoreChange);\n },\n [query],\n );\n\n const getSnapshot = useCallback(() => {\n return window.matchMedia(query).matches;\n }, [query]);\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useEffect, useId, useMemo, useRef, useState} from 'react';\nimport {appShellRecipe} from 'components/AppShell/AppShell.recipe';\nimport {\n AppShellMobileContext,\n type AppShellMobileContextValue,\n} from 'components/AppShell/AppShellMobileContext';\nimport {useSlotPresence} from 'components/AppShell/useSlotPresence';\nimport {Layout, LayoutContent, LayoutPanel} from 'components/Layout';\nimport {SideNavRenderContext} from 'components/SideNav';\nimport {\n TopNavMobileContentContext,\n TopNavRenderContext,\n} from 'components/TopNav';\nimport {MobileNavToggle} from 'internal/MobileNav';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {observeResize, unobserveResize} from 'internal/sharedResizeObserver';\nimport type {SpacingToken} from 'internal/spacingTokens';\nimport {useMediaQuery} from 'internal/useMediaQuery';\nimport {css} from 'styled-system/css';\n\nexport type AppShellBreakpoint = 'sm' | 'md' | 'lg' | 'none';\nexport type AppShellVariant = 'default' | 'section';\nexport type AppShellHeight = 'fill' | 'auto';\n\n/**\n * Application-level layout shell with top navigation, side navigation,\n * banner, skip-to-content support, and responsive mobile navigation.\n */\nexport interface AppShellProps {\n /**\n * System-wide content rendered above the top navigation.\n */\n banner?: ReactNode;\n /**\n * Main content rendered inside the shell's `<main>` landmark.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Padding applied to the main content area. Default is `0`.\n */\n contentPadding?: SpacingToken;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Height behavior. `fill` keeps scrolling inside the shell; `auto` lets the\n * page grow with content.\n */\n height?: AppShellHeight;\n /**\n * Disable generated mobile navigation.\n */\n isMobileNavDisabled?: boolean;\n /**\n * Breakpoint below which mobile navigation is used.\n * @default 'md'\n */\n mobileBreakpoint?: AppShellBreakpoint;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Side navigation slot, typically a SideNav.\n */\n sideNav?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Top navigation slot, typically a TopNav.\n */\n topNav?: ReactNode;\n /**\n * Background and divider style for the shell.\n */\n variant?: AppShellVariant;\n}\n\nconst BREAKPOINT_VALUES: Record<AppShellBreakpoint, number> = {\n sm: 640,\n md: 768,\n lg: 1024,\n none: 0,\n};\n\nconst styles = {\n skipLink: css({\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n w: '1px',\n h: '1px',\n p: 0,\n m: '-1px',\n overflow: 'hidden',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n zIndex: 9999,\n bg: 'bg',\n color: 'primary',\n textDecoration: 'none',\n fontWeight: 'semibold',\n _focus: {\n position: 'fixed',\n top: '2',\n insetInlineStart: '2',\n w: 'auto',\n h: 'auto',\n p: '2',\n m: 0,\n overflow: 'visible',\n clipPath: 'none',\n whiteSpace: 'normal',\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n headerSticky: css({\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }),\n banner: css({\n flexShrink: 0,\n }),\n autoMobileTopBar: css({\n display: 'flex',\n alignItems: 'center',\n h: '12',\n px: '2',\n }),\n sideNavSticky: css({\n flexShrink: 0,\n overflow: 'clip',\n position: 'sticky',\n top: 'var(--appshell-header-height, 0px)',\n h: 'calc(100dvh - var(--appshell-header-height, 0px))',\n display: 'flex',\n flexDirection: 'column',\n }),\n elevatedWrapper: css({\n position: 'relative',\n display: 'flex',\n flex: 1,\n minH: 0,\n h: '100%',\n }),\n elevatedBackdrop: css({\n position: 'absolute',\n inset: 0,\n bg: 'bg',\n borderStartStartRadius: '2xl',\n pointerEvents: 'none',\n }),\n contentSurface: css({\n bg: 'bg',\n }),\n contentTransparent: css({\n bg: 'transparent',\n isolation: 'isolate',\n }),\n slotContents: css({\n display: 'contents',\n }),\n};\n\ntype AppShellRootStyle = CSSProperties & {\n '--appshell-header-height'?: string;\n};\n\n/**\n * Application-level layout shell with top navigation, side navigation,\n * banner, skip-to-content support, and responsive mobile navigation.\n */\nexport function AppShell({\n banner,\n children,\n className,\n contentPadding,\n 'data-testid': dataTestId,\n height = 'fill',\n isMobileNavDisabled = false,\n mobileBreakpoint = 'md',\n ref,\n sideNav,\n style,\n topNav,\n variant = 'default',\n}: AppShellProps): React.JSX.Element {\n const mainContentId = useId();\n const breakpointQuery =\n mobileBreakpoint === 'none'\n ? '(max-width: 0px)'\n : `(max-width: ${BREAKPOINT_VALUES[mobileBreakpoint]}px)`;\n const isBelowBreakpoint = useMediaQuery(breakpointQuery);\n const [isMobileNavOpen, setIsMobileNavOpen] = useState(false);\n const {ref: topNavPresenceRef, hasContent: hasTopNavContent} =\n useSlotPresence(isReactNode(topNav));\n const {ref: sideNavPresenceRef, hasContent: hasSideNavContent} =\n useSlotPresence(isReactNode(sideNav));\n const hasTopNav = isReactNode(topNav);\n const hasSideNav = isReactNode(sideNav);\n const hasNavContent = hasTopNavContent || hasSideNavContent;\n const mobileNavEnabled = !isMobileNavDisabled && hasNavContent;\n const showSideNavInline = hasSideNav && !isBelowBreakpoint;\n const isAuto = height === 'auto';\n const isFill = height === 'fill';\n const navHasDividers = variant === 'section';\n const headerRef = useRef<HTMLDivElement>(null);\n const shellRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!isAuto || headerRef.current == null || shellRef.current == null) {\n return;\n }\n\n const headerElement = headerRef.current;\n const shellElement = shellRef.current;\n const updateHeight = () => {\n shellElement.style.setProperty(\n '--appshell-header-height',\n `${headerElement.getBoundingClientRect().height}px`,\n );\n };\n\n observeResize(headerElement, updateHeight);\n return () => unobserveResize(headerElement);\n }, [isAuto]);\n\n const mobileContextValue = useMemo<AppShellMobileContextValue>(\n () => ({\n closeMobileNav: () => setIsMobileNavOpen(false),\n hasAutoToggle: true,\n isMobile: isBelowBreakpoint,\n isMobileNavEnabled: mobileNavEnabled,\n isMobileNavOpen,\n openMobileNav: () => mobileNavEnabled && setIsMobileNavOpen(true),\n toggleMobileNav: () => {\n if (mobileNavEnabled) {\n setIsMobileNavOpen(prev => !prev);\n }\n },\n }),\n [isBelowBreakpoint, isMobileNavOpen, mobileNavEnabled],\n );\n\n /* eslint-disable @eslint-react/no-unstable-context-value -- sideNav ReactNode prop prevents stable memoization */\n const mobileContentValue = hasSideNavContent ? (\n <SideNavRenderContext value=\"drawer-content\">\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </SideNavRenderContext>\n ) : null;\n const drawerMobileContentValue = hasSideNavContent ? (\n <SideNavRenderContext value=\"drawer-content\">\n {sideNav}\n </SideNavRenderContext>\n ) : null;\n /* eslint-enable @eslint-react/no-unstable-context-value */\n const topNavContent =\n hasTopNav && isBelowBreakpoint && !isMobileNavDisabled ? (\n <TopNavMobileContentContext value={mobileContentValue}>\n <TopNavRenderContext value=\"mobile-bar\">\n <div className={styles.slotContents} ref={topNavPresenceRef}>\n {topNav}\n </div>\n </TopNavRenderContext>\n </TopNavMobileContentContext>\n ) : (\n topNav\n );\n const headerContent =\n hasTopNav || isReactNode(banner) ? (\n <div className={cx(isAuto && styles.headerSticky)} ref={headerRef}>\n <header style={{flexShrink: 0}}>\n {isReactNode(banner) ? (\n <div className={styles.banner}>{banner}</div>\n ) : null}\n {hasTopNav ? (\n <div className={styles.slotContents} ref={topNavPresenceRef}>\n {topNavContent}\n </div>\n ) : null}\n </header>\n </div>\n ) : undefined;\n const autoMobileTopBar =\n !isMobileNavDisabled &&\n isBelowBreakpoint &&\n !hasTopNavContent &&\n hasSideNav ? (\n <header style={{flexShrink: 0}}>\n <div\n aria-label=\"Mobile navigation\"\n className={styles.autoMobileTopBar}\n role=\"navigation\">\n <SideNavRenderContext value=\"topbar\">\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </SideNavRenderContext>\n <MobileNavToggle />\n </div>\n </header>\n ) : undefined;\n const sideNavPanel = showSideNavInline ? (\n <LayoutPanel isScrollable={isFill} padding={0}>\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </LayoutPanel>\n ) : undefined;\n const sideNavContent =\n sideNavPanel != null && isAuto ? (\n <div className={styles.sideNavSticky}>{sideNavPanel}</div>\n ) : (\n sideNavPanel\n );\n const contentClassName =\n variant === 'default' && hasTopNavContent && showSideNavInline\n ? styles.contentTransparent\n : variant === 'default'\n ? styles.contentSurface\n : undefined;\n const mainInner = (\n <LayoutContent\n as=\"main\"\n className={contentClassName}\n id={mainContentId}\n isScrollable={isFill}\n padding={contentPadding ?? 0}>\n {children}\n </LayoutContent>\n );\n const shouldElevateWithCorner =\n variant === 'default' && hasTopNavContent && showSideNavInline;\n const mainContent = shouldElevateWithCorner ? (\n <div className={styles.elevatedWrapper}>\n <div className={styles.elevatedBackdrop} />\n {mainInner}\n </div>\n ) : (\n mainInner\n );\n const rootStyle: AppShellRootStyle = {...style};\n\n return (\n <AppShellMobileContext value={mobileContextValue}>\n <div\n className={cx(appShellRecipe({height, variant}), className)}\n data-testid={dataTestId}\n ref={mergeRefs(ref, shellRef)}\n style={rootStyle}>\n <a\n className={styles.skipLink}\n data-testid=\"skip-to-content\"\n href={`#${mainContentId}`}>\n Skip to content\n </a>\n <Layout\n content={mainContent}\n hasDividers={navHasDividers}\n header={\n <>\n {headerContent}\n {autoMobileTopBar}\n </>\n }\n height={height}\n padding={0}\n start={sideNavContent}\n />\n {isBelowBreakpoint && !isMobileNavDisabled ? (\n <>\n {hasSideNav && !hasTopNavContent ? (\n <SideNavRenderContext value=\"drawer\">\n {sideNav}\n </SideNavRenderContext>\n ) : null}\n {hasTopNav && hasTopNavContent ? (\n <TopNavMobileContentContext value={drawerMobileContentValue}>\n <TopNavRenderContext value=\"drawer\">\n {topNav}\n </TopNavRenderContext>\n </TopNavMobileContentContext>\n ) : null}\n </>\n ) : null}\n </div>\n </AppShellMobileContext>\n );\n}\n\nAppShell.displayName = 'AppShell';\n"]}
1
+ {"version":3,"sources":["../src/components/AppShell/AppShell.recipe.ts","../src/components/AppShell/useSlotPresence.tsx","../src/internal/sharedResizeObserver.ts","../src/internal/useMediaQuery.ts","../src/components/AppShell/AppShell.tsx"],"names":["cva","useState","useRef","useCallback","observer","useEffect","useSyncExternalStore","css","useId","isReactNode","useMemo","jsx","SideNavRenderContext","TopNavMobileContentContext","TopNavRenderContext","cx","jsxs","MobileNavToggle","LayoutPanel","LayoutContent","AppShellMobileContext","mergeRefs","Layout","Fragment"],"mappings":"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","file":"chunk-NGNVNRAZ.cjs","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const appShellRecipe = cva({\n base: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n },\n variants: {\n height: {\n fill: {\n h: '100dvh',\n },\n auto: {\n minH: '100dvh',\n },\n },\n variant: {\n default: {\n bg: 'bg.subtle',\n },\n section: {\n bg: 'bg',\n },\n },\n },\n defaultVariants: {\n height: 'fill',\n variant: 'default',\n },\n});\n\nexport type AppShellVariants = RecipeVariantProps<typeof appShellRecipe>;\n","import {useCallback, useEffect, useRef, useState} from 'react';\n\nfunction hasChildContent(element: HTMLElement): boolean {\n for (const node of element.childNodes) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n return true;\n }\n\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '') {\n return true;\n }\n }\n\n return false;\n}\n\nexport function useSlotPresence(initialValue = false): {\n hasContent: boolean;\n ref: (node: HTMLDivElement | null) => void;\n} {\n const [hasContent, setHasContent] = useState(initialValue);\n const observerRef = useRef<MutationObserver | null>(null);\n\n const ref = useCallback((node: HTMLDivElement | null) => {\n observerRef.current?.disconnect();\n observerRef.current = null;\n\n if (node == null) {\n setHasContent(false);\n return;\n }\n\n setHasContent(hasChildContent(node));\n\n const observer = new MutationObserver(() => {\n setHasContent(hasChildContent(node));\n });\n observer.observe(node, {childList: true});\n observerRef.current = observer;\n }, []);\n\n useEffect(() => {\n return () => observerRef.current?.disconnect();\n }, []);\n\n return {hasContent, ref};\n}\n","type ResizeCallback = (entry: ResizeObserverEntry) => void;\n\nlet observer: ResizeObserver | null = null;\nconst callbacks = new Map<Element, ResizeCallback>();\n\nfunction getObserver(): ResizeObserver {\n observer ??= new ResizeObserver(entries => {\n for (const entry of entries) {\n callbacks.get(entry.target)?.(entry);\n }\n });\n\n return observer;\n}\n\nexport function observeResize(\n element: Element,\n callback: ResizeCallback,\n): void {\n callbacks.set(element, callback);\n getObserver().observe(element);\n}\n\nexport function unobserveResize(element: Element): void {\n callbacks.delete(element);\n\n if (observer == null) {\n return;\n }\n\n observer.unobserve(element);\n\n if (callbacks.size === 0) {\n observer.disconnect();\n observer = null;\n }\n}\n","import {useCallback, useSyncExternalStore} from 'react';\n\nfunction getServerSnapshot(): boolean {\n return false;\n}\n\n/**\n * Subscribe to a browser media query using React's external-store API.\n */\nexport function useMediaQuery(query: string): boolean {\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n const mediaQueryList = window.matchMedia(query);\n mediaQueryList.addEventListener('change', onStoreChange);\n return () => mediaQueryList.removeEventListener('change', onStoreChange);\n },\n [query],\n );\n\n const getSnapshot = useCallback(() => {\n return window.matchMedia(query).matches;\n }, [query]);\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useEffect, useId, useMemo, useRef, useState} from 'react';\nimport {appShellRecipe} from 'components/AppShell/AppShell.recipe';\nimport {\n AppShellMobileContext,\n type AppShellMobileContextValue,\n} from 'components/AppShell/AppShellMobileContext';\nimport {useSlotPresence} from 'components/AppShell/useSlotPresence';\nimport {Layout, LayoutContent, LayoutPanel} from 'components/Layout';\nimport {SideNavRenderContext} from 'components/SideNav';\nimport {\n TopNavMobileContentContext,\n TopNavRenderContext,\n} from 'components/TopNav';\nimport {MobileNavToggle} from 'internal/MobileNav';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {observeResize, unobserveResize} from 'internal/sharedResizeObserver';\nimport type {SpacingToken} from 'internal/spacingTokens';\nimport {useMediaQuery} from 'internal/useMediaQuery';\nimport {css} from 'styled-system/css';\n\nexport type AppShellBreakpoint = 'sm' | 'md' | 'lg' | 'none';\nexport type AppShellVariant = 'default' | 'section';\nexport type AppShellHeight = 'fill' | 'auto';\n\n/**\n * Application-level layout shell with top navigation, side navigation,\n * banner, skip-to-content support, and responsive mobile navigation.\n */\nexport interface AppShellProps {\n /**\n * System-wide content rendered above the top navigation.\n */\n banner?: ReactNode;\n /**\n * Main content rendered inside the shell's `<main>` landmark.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Padding applied to the main content area. Default is `0`.\n */\n contentPadding?: SpacingToken;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Height behavior. `fill` keeps scrolling inside the shell; `auto` lets the\n * page grow with content.\n */\n height?: AppShellHeight;\n /**\n * Disable generated mobile navigation.\n */\n isMobileNavDisabled?: boolean;\n /**\n * Breakpoint below which mobile navigation is used.\n * @default 'md'\n */\n mobileBreakpoint?: AppShellBreakpoint;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Side navigation slot, typically a SideNav.\n */\n sideNav?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Top navigation slot, typically a TopNav.\n */\n topNav?: ReactNode;\n /**\n * Background and divider style for the shell.\n */\n variant?: AppShellVariant;\n}\n\nconst BREAKPOINT_VALUES: Record<AppShellBreakpoint, number> = {\n sm: 640,\n md: 768,\n lg: 1024,\n none: 0,\n};\n\nconst styles = {\n skipLink: css({\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n w: '1px',\n h: '1px',\n p: 0,\n m: '-1px',\n overflow: 'hidden',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n zIndex: 9999,\n bg: 'bg',\n color: 'primary',\n textDecoration: 'none',\n fontWeight: 'semibold',\n _focus: {\n position: 'fixed',\n top: '2',\n insetInlineStart: '2',\n w: 'auto',\n h: 'auto',\n p: '2',\n m: 0,\n overflow: 'visible',\n clipPath: 'none',\n whiteSpace: 'normal',\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n headerSticky: css({\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }),\n banner: css({\n flexShrink: 0,\n }),\n autoMobileTopBar: css({\n display: 'flex',\n alignItems: 'center',\n h: '12',\n px: '2',\n }),\n sideNavSticky: css({\n flexShrink: 0,\n overflow: 'clip',\n position: 'sticky',\n top: 'var(--appshell-header-height, 0px)',\n h: 'calc(100dvh - var(--appshell-header-height, 0px))',\n display: 'flex',\n flexDirection: 'column',\n }),\n elevatedWrapper: css({\n position: 'relative',\n display: 'flex',\n flex: 1,\n minH: 0,\n h: '100%',\n }),\n elevatedBackdrop: css({\n position: 'absolute',\n inset: 0,\n bg: 'bg',\n borderStartStartRadius: '2xl',\n pointerEvents: 'none',\n }),\n contentSurface: css({\n bg: 'bg',\n }),\n contentTransparent: css({\n bg: 'transparent',\n isolation: 'isolate',\n }),\n slotContents: css({\n display: 'contents',\n }),\n};\n\ntype AppShellRootStyle = CSSProperties & {\n '--appshell-header-height'?: string;\n};\n\n/**\n * Application-level layout shell with top navigation, side navigation,\n * banner, skip-to-content support, and responsive mobile navigation.\n */\nexport function AppShell({\n banner,\n children,\n className,\n contentPadding,\n 'data-testid': dataTestId,\n height = 'fill',\n isMobileNavDisabled = false,\n mobileBreakpoint = 'md',\n ref,\n sideNav,\n style,\n topNav,\n variant = 'default',\n}: AppShellProps): React.JSX.Element {\n const mainContentId = useId();\n const breakpointQuery =\n mobileBreakpoint === 'none'\n ? '(max-width: 0px)'\n : `(max-width: ${BREAKPOINT_VALUES[mobileBreakpoint]}px)`;\n const isBelowBreakpoint = useMediaQuery(breakpointQuery);\n const [isMobileNavOpen, setIsMobileNavOpen] = useState(false);\n const {ref: topNavPresenceRef, hasContent: hasTopNavContent} =\n useSlotPresence(isReactNode(topNav));\n const {ref: sideNavPresenceRef, hasContent: hasSideNavContent} =\n useSlotPresence(isReactNode(sideNav));\n const hasTopNav = isReactNode(topNav);\n const hasSideNav = isReactNode(sideNav);\n const hasNavContent = hasTopNavContent || hasSideNavContent;\n const mobileNavEnabled = !isMobileNavDisabled && hasNavContent;\n const showSideNavInline = hasSideNav && !isBelowBreakpoint;\n const isAuto = height === 'auto';\n const isFill = height === 'fill';\n const navHasDividers = variant === 'section';\n const headerRef = useRef<HTMLDivElement>(null);\n const shellRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!isAuto || headerRef.current == null || shellRef.current == null) {\n return;\n }\n\n const headerElement = headerRef.current;\n const shellElement = shellRef.current;\n const updateHeight = () => {\n shellElement.style.setProperty(\n '--appshell-header-height',\n `${headerElement.getBoundingClientRect().height}px`,\n );\n };\n\n observeResize(headerElement, updateHeight);\n return () => unobserveResize(headerElement);\n }, [isAuto]);\n\n const mobileContextValue = useMemo<AppShellMobileContextValue>(\n () => ({\n closeMobileNav: () => setIsMobileNavOpen(false),\n hasAutoToggle: true,\n isMobile: isBelowBreakpoint,\n isMobileNavEnabled: mobileNavEnabled,\n isMobileNavOpen,\n openMobileNav: () => mobileNavEnabled && setIsMobileNavOpen(true),\n toggleMobileNav: () => {\n if (mobileNavEnabled) {\n setIsMobileNavOpen(prev => !prev);\n }\n },\n }),\n [isBelowBreakpoint, isMobileNavOpen, mobileNavEnabled],\n );\n\n /* eslint-disable @eslint-react/no-unstable-context-value -- sideNav ReactNode prop prevents stable memoization */\n const mobileContentValue = hasSideNavContent ? (\n <SideNavRenderContext value=\"drawer-content\">\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </SideNavRenderContext>\n ) : null;\n const drawerMobileContentValue = hasSideNavContent ? (\n <SideNavRenderContext value=\"drawer-content\">\n {sideNav}\n </SideNavRenderContext>\n ) : null;\n /* eslint-enable @eslint-react/no-unstable-context-value */\n const topNavContent =\n hasTopNav && isBelowBreakpoint && !isMobileNavDisabled ? (\n <TopNavMobileContentContext value={mobileContentValue}>\n <TopNavRenderContext value=\"mobile-bar\">\n <div className={styles.slotContents} ref={topNavPresenceRef}>\n {topNav}\n </div>\n </TopNavRenderContext>\n </TopNavMobileContentContext>\n ) : (\n topNav\n );\n const headerContent =\n hasTopNav || isReactNode(banner) ? (\n <div className={cx(isAuto && styles.headerSticky)} ref={headerRef}>\n <header style={{flexShrink: 0}}>\n {isReactNode(banner) ? (\n <div className={styles.banner}>{banner}</div>\n ) : null}\n {hasTopNav ? (\n <div className={styles.slotContents} ref={topNavPresenceRef}>\n {topNavContent}\n </div>\n ) : null}\n </header>\n </div>\n ) : undefined;\n const autoMobileTopBar =\n !isMobileNavDisabled &&\n isBelowBreakpoint &&\n !hasTopNavContent &&\n hasSideNav ? (\n <header style={{flexShrink: 0}}>\n <div\n aria-label=\"Mobile navigation\"\n className={styles.autoMobileTopBar}\n role=\"navigation\">\n <SideNavRenderContext value=\"topbar\">\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </SideNavRenderContext>\n <MobileNavToggle />\n </div>\n </header>\n ) : undefined;\n const sideNavPanel = showSideNavInline ? (\n <LayoutPanel isScrollable={isFill} padding={0}>\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </LayoutPanel>\n ) : undefined;\n const sideNavContent =\n sideNavPanel != null && isAuto ? (\n <div className={styles.sideNavSticky}>{sideNavPanel}</div>\n ) : (\n sideNavPanel\n );\n const contentClassName =\n variant === 'default' && hasTopNavContent && showSideNavInline\n ? styles.contentTransparent\n : variant === 'default'\n ? styles.contentSurface\n : undefined;\n const mainInner = (\n <LayoutContent\n as=\"main\"\n className={contentClassName}\n id={mainContentId}\n isScrollable={isFill}\n padding={contentPadding ?? 0}>\n {children}\n </LayoutContent>\n );\n const shouldElevateWithCorner =\n variant === 'default' && hasTopNavContent && showSideNavInline;\n const mainContent = shouldElevateWithCorner ? (\n <div className={styles.elevatedWrapper}>\n <div className={styles.elevatedBackdrop} />\n {mainInner}\n </div>\n ) : (\n mainInner\n );\n const rootStyle: AppShellRootStyle = {...style};\n\n return (\n <AppShellMobileContext value={mobileContextValue}>\n <div\n className={cx(appShellRecipe({height, variant}), className)}\n data-testid={dataTestId}\n ref={mergeRefs(ref, shellRef)}\n style={rootStyle}>\n <a\n className={styles.skipLink}\n data-testid=\"skip-to-content\"\n href={`#${mainContentId}`}>\n Skip to content\n </a>\n <Layout\n content={mainContent}\n hasDividers={navHasDividers}\n header={\n <>\n {headerContent}\n {autoMobileTopBar}\n </>\n }\n height={height}\n padding={0}\n start={sideNavContent}\n />\n {isBelowBreakpoint && !isMobileNavDisabled ? (\n <>\n {hasSideNav && !hasTopNavContent ? (\n <SideNavRenderContext value=\"drawer\">\n {sideNav}\n </SideNavRenderContext>\n ) : null}\n {hasTopNav && hasTopNavContent ? (\n <TopNavMobileContentContext value={drawerMobileContentValue}>\n <TopNavRenderContext value=\"drawer\">\n {topNav}\n </TopNavRenderContext>\n </TopNavMobileContentContext>\n ) : null}\n </>\n ) : null}\n </div>\n </AppShellMobileContext>\n );\n}\n\nAppShell.displayName = 'AppShell';\n"]}