silver-ui 0.7.3 → 0.8.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 (706) hide show
  1. package/README.md +14 -4
  2. package/dist/{chunk-CQYBC3RJ.cjs → chunk-263EUXFI.cjs} +10 -9
  3. package/dist/chunk-263EUXFI.cjs.map +1 -0
  4. package/dist/{chunk-KEPCKSDE.js → chunk-2AY74YXP.js} +3 -2
  5. package/dist/chunk-2AY74YXP.js.map +1 -0
  6. package/dist/{chunk-USEA7DB5.js → chunk-2EGYYWPB.js} +4 -4
  7. package/dist/{chunk-USEA7DB5.js.map → chunk-2EGYYWPB.js.map} +1 -1
  8. package/dist/{chunk-PGBYMBGH.js → chunk-3CV6IEEY.js} +18 -17
  9. package/dist/chunk-3CV6IEEY.js.map +1 -0
  10. package/dist/{chunk-5FQKELP6.js → chunk-3IX2FJWH.js} +3 -2
  11. package/dist/chunk-3IX2FJWH.js.map +1 -0
  12. package/dist/{chunk-H7LOOHWU.cjs → chunk-3JCYTBXI.cjs} +3 -2
  13. package/dist/chunk-3JCYTBXI.cjs.map +1 -0
  14. package/dist/{chunk-PK3NJSHQ.js → chunk-3TPFJ7NS.js} +8 -7
  15. package/dist/{chunk-PK3NJSHQ.js.map → chunk-3TPFJ7NS.js.map} +1 -1
  16. package/dist/{chunk-3W3ST5Y3.cjs → chunk-3USKXV4M.cjs} +7 -6
  17. package/dist/chunk-3USKXV4M.cjs.map +1 -0
  18. package/dist/{chunk-S4IHNNA2.js → chunk-3UYPIVBY.js} +3 -2
  19. package/dist/{chunk-S4IHNNA2.js.map → chunk-3UYPIVBY.js.map} +1 -1
  20. package/dist/{chunk-5GSRIOXE.js → chunk-4G644ETX.js} +16 -15
  21. package/dist/{chunk-5GSRIOXE.js.map → chunk-4G644ETX.js.map} +1 -1
  22. package/dist/{chunk-AO4RVSCG.js → chunk-4MIAF6ZO.js} +6 -5
  23. package/dist/{chunk-AO4RVSCG.js.map → chunk-4MIAF6ZO.js.map} +1 -1
  24. package/dist/{chunk-MN2NCSQQ.js → chunk-4MX4DKWA.js} +3 -2
  25. package/dist/{chunk-MN2NCSQQ.js.map → chunk-4MX4DKWA.js.map} +1 -1
  26. package/dist/{chunk-RX2FXCIH.cjs → chunk-4VYOE2HE.cjs} +8 -8
  27. package/dist/{chunk-RX2FXCIH.cjs.map → chunk-4VYOE2HE.cjs.map} +1 -1
  28. package/dist/{chunk-5MCI3ILK.cjs → chunk-4XFA2XAB.cjs} +44 -43
  29. package/dist/{chunk-5MCI3ILK.cjs.map → chunk-4XFA2XAB.cjs.map} +1 -1
  30. package/dist/{chunk-HENIVDYQ.cjs → chunk-4ZJ3P6IF.cjs} +15 -14
  31. package/dist/chunk-4ZJ3P6IF.cjs.map +1 -0
  32. package/dist/{chunk-RLIBY7XB.cjs → chunk-5AUBRSYO.cjs} +3 -2
  33. package/dist/chunk-5AUBRSYO.cjs.map +1 -0
  34. package/dist/{chunk-ESWYWWY2.js → chunk-5DK3LMS7.js} +5 -4
  35. package/dist/chunk-5DK3LMS7.js.map +1 -0
  36. package/dist/{chunk-TP6RGZ6A.js → chunk-5EDJRYE4.js} +14 -13
  37. package/dist/{chunk-TP6RGZ6A.js.map → chunk-5EDJRYE4.js.map} +1 -1
  38. package/dist/{chunk-3PEK2Q54.cjs → chunk-5FNYOPUL.cjs} +3 -2
  39. package/dist/chunk-5FNYOPUL.cjs.map +1 -0
  40. package/dist/{chunk-ZDZ7FW6V.cjs → chunk-5KFM5ZNO.cjs} +10 -9
  41. package/dist/chunk-5KFM5ZNO.cjs.map +1 -0
  42. package/dist/{chunk-AC4E3WQA.cjs → chunk-5P5OSQT2.cjs} +13 -12
  43. package/dist/chunk-5P5OSQT2.cjs.map +1 -0
  44. package/dist/{chunk-E6AKSBSP.js → chunk-5SCHQS3L.js} +7 -6
  45. package/dist/{chunk-E6AKSBSP.js.map → chunk-5SCHQS3L.js.map} +1 -1
  46. package/dist/{chunk-6SMVH3ON.cjs → chunk-6I7MYAPX.cjs} +9 -8
  47. package/dist/chunk-6I7MYAPX.cjs.map +1 -0
  48. package/dist/{chunk-GJZAGTPV.cjs → chunk-7KUEWO4T.cjs} +6 -5
  49. package/dist/chunk-7KUEWO4T.cjs.map +1 -0
  50. package/dist/{chunk-VCM4MR7N.cjs → chunk-7TLGH4VK.cjs} +53 -52
  51. package/dist/{chunk-VCM4MR7N.cjs.map → chunk-7TLGH4VK.cjs.map} +1 -1
  52. package/dist/{chunk-HPNY32G6.js → chunk-7TYZLVLZ.js} +3 -2
  53. package/dist/{chunk-HPNY32G6.js.map → chunk-7TYZLVLZ.js.map} +1 -1
  54. package/dist/{chunk-GA77PPVL.cjs → chunk-A36BE56K.cjs} +8 -7
  55. package/dist/{chunk-GA77PPVL.cjs.map → chunk-A36BE56K.cjs.map} +1 -1
  56. package/dist/{chunk-WG4NNC3P.js → chunk-AJAHLIHQ.js} +6 -5
  57. package/dist/{chunk-WG4NNC3P.js.map → chunk-AJAHLIHQ.js.map} +1 -1
  58. package/dist/{chunk-5RFHYDQY.js → chunk-AUXMMTKN.js} +3 -2
  59. package/dist/chunk-AUXMMTKN.js.map +1 -0
  60. package/dist/{chunk-DDMUYVSV.cjs → chunk-B5HYXBPH.cjs} +17 -16
  61. package/dist/{chunk-DDMUYVSV.cjs.map → chunk-B5HYXBPH.cjs.map} +1 -1
  62. package/dist/{chunk-63QPCV4F.cjs → chunk-BJSF4VYC.cjs} +38 -37
  63. package/dist/chunk-BJSF4VYC.cjs.map +1 -0
  64. package/dist/{chunk-N6C37HXD.js → chunk-BKZFINUO.js} +8 -7
  65. package/dist/chunk-BKZFINUO.js.map +1 -0
  66. package/dist/{chunk-J242UTPO.cjs → chunk-BLKZDVFG.cjs} +12 -11
  67. package/dist/chunk-BLKZDVFG.cjs.map +1 -0
  68. package/dist/{chunk-QQCEGAUQ.cjs → chunk-BQMIYEFC.cjs} +12 -11
  69. package/dist/chunk-BQMIYEFC.cjs.map +1 -0
  70. package/dist/{chunk-2N3PIXZ5.cjs → chunk-CDN7FN6R.cjs} +8 -7
  71. package/dist/chunk-CDN7FN6R.cjs.map +1 -0
  72. package/dist/{chunk-YQIDUJW2.cjs → chunk-CKERNLXH.cjs} +6 -5
  73. package/dist/{chunk-YQIDUJW2.cjs.map → chunk-CKERNLXH.cjs.map} +1 -1
  74. package/dist/{chunk-PG4CZRTU.js → chunk-CRYF4JDH.js} +3 -2
  75. package/dist/chunk-CRYF4JDH.js.map +1 -0
  76. package/dist/{chunk-EZFQCREN.cjs → chunk-CZAKWWZE.cjs} +10 -9
  77. package/dist/chunk-CZAKWWZE.cjs.map +1 -0
  78. package/dist/{chunk-BUYZZOOU.js → chunk-D57CFXDZ.js} +3 -2
  79. package/dist/{chunk-BUYZZOOU.js.map → chunk-D57CFXDZ.js.map} +1 -1
  80. package/dist/{chunk-Y2GYPMLW.cjs → chunk-DDKW5FTM.cjs} +6 -5
  81. package/dist/{chunk-Y2GYPMLW.cjs.map → chunk-DDKW5FTM.cjs.map} +1 -1
  82. package/dist/{chunk-6KGF66TR.js → chunk-DRWW5XMD.js} +4 -3
  83. package/dist/{chunk-6KGF66TR.js.map → chunk-DRWW5XMD.js.map} +1 -1
  84. package/dist/{chunk-IU2YRN35.cjs → chunk-DUZBTPSH.cjs} +3 -2
  85. package/dist/{chunk-IU2YRN35.cjs.map → chunk-DUZBTPSH.cjs.map} +1 -1
  86. package/dist/{chunk-VK7DXUGH.cjs → chunk-E5TRE2YG.cjs} +3 -2
  87. package/dist/chunk-E5TRE2YG.cjs.map +1 -0
  88. package/dist/{chunk-AXTX3IOR.js → chunk-E65S6HVS.js} +4 -3
  89. package/dist/{chunk-AXTX3IOR.js.map → chunk-E65S6HVS.js.map} +1 -1
  90. package/dist/{chunk-ARUOMLOJ.cjs → chunk-ECVWXA4H.cjs} +3 -2
  91. package/dist/chunk-ECVWXA4H.cjs.map +1 -0
  92. package/dist/{chunk-FUU3I22W.js → chunk-EEB56QQX.js} +4 -3
  93. package/dist/{chunk-FUU3I22W.js.map → chunk-EEB56QQX.js.map} +1 -1
  94. package/dist/{chunk-NYTSAO5I.cjs → chunk-EFYWVWSL.cjs} +3 -2
  95. package/dist/{chunk-NYTSAO5I.cjs.map → chunk-EFYWVWSL.cjs.map} +1 -1
  96. package/dist/{chunk-NYOZQE6P.js → chunk-EZ2LRC7U.js} +6 -5
  97. package/dist/chunk-EZ2LRC7U.js.map +1 -0
  98. package/dist/{chunk-QM7NQK2K.js → chunk-F2ZT6DCV.js} +5 -4
  99. package/dist/{chunk-QM7NQK2K.js.map → chunk-F2ZT6DCV.js.map} +1 -1
  100. package/dist/{chunk-JWMS6LHN.cjs → chunk-FCFVJGWR.cjs} +9 -8
  101. package/dist/{chunk-JWMS6LHN.cjs.map → chunk-FCFVJGWR.cjs.map} +1 -1
  102. package/dist/{chunk-6OWEKKOC.js → chunk-FHLK5CTO.js} +6 -5
  103. package/dist/chunk-FHLK5CTO.js.map +1 -0
  104. package/dist/{chunk-MYSLJWCW.cjs → chunk-FKZATUBG.cjs} +11 -10
  105. package/dist/chunk-FKZATUBG.cjs.map +1 -0
  106. package/dist/{chunk-YQVWDHP4.cjs → chunk-FNBOLEST.cjs} +8 -7
  107. package/dist/{chunk-YQVWDHP4.cjs.map → chunk-FNBOLEST.cjs.map} +1 -1
  108. package/dist/{chunk-KWZMXX4F.js → chunk-FPKXEI3W.js} +4 -3
  109. package/dist/chunk-FPKXEI3W.js.map +1 -0
  110. package/dist/{chunk-OPBELSKN.js → chunk-FQJBEWGB.js} +8 -7
  111. package/dist/chunk-FQJBEWGB.js.map +1 -0
  112. package/dist/{chunk-UUVI3TYW.js → chunk-GCQTQJPW.js} +8 -7
  113. package/dist/chunk-GCQTQJPW.js.map +1 -0
  114. package/dist/{chunk-YAQB3UMC.js → chunk-GEU4SROO.js} +5 -4
  115. package/dist/{chunk-YAQB3UMC.js.map → chunk-GEU4SROO.js.map} +1 -1
  116. package/dist/{chunk-6ZPHID26.cjs → chunk-GIZ7DK3W.cjs} +10 -9
  117. package/dist/chunk-GIZ7DK3W.cjs.map +1 -0
  118. package/dist/{chunk-5K3C3INR.cjs → chunk-GOAIWDHB.cjs} +11 -10
  119. package/dist/chunk-GOAIWDHB.cjs.map +1 -0
  120. package/dist/{chunk-GQ73VKKN.js → chunk-H5BUXKYQ.js} +9 -8
  121. package/dist/{chunk-GQ73VKKN.js.map → chunk-H5BUXKYQ.js.map} +1 -1
  122. package/dist/{chunk-HN4W6TM6.cjs → chunk-H5Q63Z42.cjs} +10 -9
  123. package/dist/chunk-H5Q63Z42.cjs.map +1 -0
  124. package/dist/{chunk-O4PO6AMS.cjs → chunk-HAUMZ357.cjs} +3 -2
  125. package/dist/{chunk-O4PO6AMS.cjs.map → chunk-HAUMZ357.cjs.map} +1 -1
  126. package/dist/{chunk-6SFMORQF.cjs → chunk-HTY7SADT.cjs} +8 -7
  127. package/dist/chunk-HTY7SADT.cjs.map +1 -0
  128. package/dist/{chunk-WOVSJHY6.cjs → chunk-HW7GODZJ.cjs} +15 -14
  129. package/dist/chunk-HW7GODZJ.cjs.map +1 -0
  130. package/dist/{chunk-CKDB7QNT.cjs → chunk-I2QAN2HX.cjs} +21 -20
  131. package/dist/{chunk-CKDB7QNT.cjs.map → chunk-I2QAN2HX.cjs.map} +1 -1
  132. package/dist/{chunk-JIF5TZHC.cjs → chunk-IFRIXTF5.cjs} +3 -2
  133. package/dist/chunk-IFRIXTF5.cjs.map +1 -0
  134. package/dist/{chunk-JTPVAZE6.cjs → chunk-IHR3KEWH.cjs} +12 -11
  135. package/dist/{chunk-JTPVAZE6.cjs.map → chunk-IHR3KEWH.cjs.map} +1 -1
  136. package/dist/{chunk-EBV3EX3J.js → chunk-J2TQNGUM.js} +8 -7
  137. package/dist/chunk-J2TQNGUM.js.map +1 -0
  138. package/dist/{chunk-LWB2CTX6.cjs → chunk-J5VWFOOY.cjs} +5 -4
  139. package/dist/{chunk-LWB2CTX6.cjs.map → chunk-J5VWFOOY.cjs.map} +1 -1
  140. package/dist/{chunk-3NIDAKCF.cjs → chunk-J6XRX6DD.cjs} +3 -2
  141. package/dist/chunk-J6XRX6DD.cjs.map +1 -0
  142. package/dist/{chunk-6R2UZNVE.js → chunk-JCXI44K2.js} +7 -6
  143. package/dist/chunk-JCXI44K2.js.map +1 -0
  144. package/dist/{chunk-NIKT7XSO.js → chunk-JFFAICCY.js} +7 -6
  145. package/dist/chunk-JFFAICCY.js.map +1 -0
  146. package/dist/{chunk-UW3KCCBT.cjs → chunk-KZOUXGPD.cjs} +5 -4
  147. package/dist/{chunk-UW3KCCBT.cjs.map → chunk-KZOUXGPD.cjs.map} +1 -1
  148. package/dist/{chunk-OX2FNKIV.cjs → chunk-LDKE723G.cjs} +11 -10
  149. package/dist/{chunk-OX2FNKIV.cjs.map → chunk-LDKE723G.cjs.map} +1 -1
  150. package/dist/{chunk-BIKVMVWF.js → chunk-LHQM533G.js} +3 -2
  151. package/dist/{chunk-BIKVMVWF.js.map → chunk-LHQM533G.js.map} +1 -1
  152. package/dist/{chunk-KVJ27734.cjs → chunk-LIDE7FVO.cjs} +5 -4
  153. package/dist/{chunk-KVJ27734.cjs.map → chunk-LIDE7FVO.cjs.map} +1 -1
  154. package/dist/{chunk-EIJSWHG7.js → chunk-LT4P67TG.js} +6 -5
  155. package/dist/{chunk-EIJSWHG7.js.map → chunk-LT4P67TG.js.map} +1 -1
  156. package/dist/{chunk-3PCXFOOS.js → chunk-M5SZUUWM.js} +7 -6
  157. package/dist/chunk-M5SZUUWM.js.map +1 -0
  158. package/dist/{chunk-BQWUTDTN.js → chunk-MCCOQSSC.js} +3 -2
  159. package/dist/{chunk-BQWUTDTN.js.map → chunk-MCCOQSSC.js.map} +1 -1
  160. package/dist/{chunk-I2DXEPDF.js → chunk-MVDTWARG.js} +7 -6
  161. package/dist/chunk-MVDTWARG.js.map +1 -0
  162. package/dist/{chunk-VWG54F6X.cjs → chunk-MWETV5LK.cjs} +9 -8
  163. package/dist/{chunk-VWG54F6X.cjs.map → chunk-MWETV5LK.cjs.map} +1 -1
  164. package/dist/{chunk-OCYZKZ24.cjs → chunk-MWWAQVJ3.cjs} +4 -4
  165. package/dist/{chunk-OCYZKZ24.cjs.map → chunk-MWWAQVJ3.cjs.map} +1 -1
  166. package/dist/{chunk-BBLAZNCC.js → chunk-MYBFODRI.js} +9 -8
  167. package/dist/chunk-MYBFODRI.js.map +1 -0
  168. package/dist/{chunk-GLFWSLJB.cjs → chunk-NHM6CSX2.cjs} +11 -10
  169. package/dist/{chunk-GLFWSLJB.cjs.map → chunk-NHM6CSX2.cjs.map} +1 -1
  170. package/dist/{chunk-BF2DUOC3.cjs → chunk-NJR5SVHL.cjs} +15 -14
  171. package/dist/{chunk-BF2DUOC3.cjs.map → chunk-NJR5SVHL.cjs.map} +1 -1
  172. package/dist/{chunk-Q6YOSQAM.js → chunk-NP527IVS.js} +8 -7
  173. package/dist/chunk-NP527IVS.js.map +1 -0
  174. package/dist/{chunk-56PY2CD7.js → chunk-NSA33LOE.js} +6 -5
  175. package/dist/chunk-NSA33LOE.js.map +1 -0
  176. package/dist/{chunk-ZW2ZOEYM.cjs → chunk-OAEVUPAL.cjs} +11 -10
  177. package/dist/chunk-OAEVUPAL.cjs.map +1 -0
  178. package/dist/{chunk-KVEXSDEM.js → chunk-OI4GH7DO.js} +5 -4
  179. package/dist/{chunk-KVEXSDEM.js.map → chunk-OI4GH7DO.js.map} +1 -1
  180. package/dist/{chunk-AKAXQ4RL.js → chunk-OLJIILEI.js} +4 -3
  181. package/dist/{chunk-AKAXQ4RL.js.map → chunk-OLJIILEI.js.map} +1 -1
  182. package/dist/{chunk-S4WWBV4N.js → chunk-ONOKHFK3.js} +6 -5
  183. package/dist/chunk-ONOKHFK3.js.map +1 -0
  184. package/dist/{chunk-BSXUNRET.cjs → chunk-ONRLHP46.cjs} +3 -2
  185. package/dist/chunk-ONRLHP46.cjs.map +1 -0
  186. package/dist/{chunk-NSWKBWPP.js → chunk-OSYOGJC5.js} +6 -5
  187. package/dist/{chunk-NSWKBWPP.js.map → chunk-OSYOGJC5.js.map} +1 -1
  188. package/dist/{chunk-5UGHDUMO.js → chunk-OXBBLHTC.js} +3 -2
  189. package/dist/chunk-OXBBLHTC.js.map +1 -0
  190. package/dist/{chunk-PQXPYN23.js → chunk-OYBRYZKK.js} +8 -7
  191. package/dist/chunk-OYBRYZKK.js.map +1 -0
  192. package/dist/{chunk-4MIIXRZN.cjs → chunk-OZNCX6DY.cjs} +21 -20
  193. package/dist/chunk-OZNCX6DY.cjs.map +1 -0
  194. package/dist/{chunk-FHUOUARL.js → chunk-P6LEAMPW.js} +5 -4
  195. package/dist/{chunk-FHUOUARL.js.map → chunk-P6LEAMPW.js.map} +1 -1
  196. package/dist/{chunk-DE7JLNSO.js → chunk-PTDBPRZD.js} +3 -2
  197. package/dist/chunk-PTDBPRZD.js.map +1 -0
  198. package/dist/{chunk-LBOWHXOF.js → chunk-PYUPT3HU.js} +5 -4
  199. package/dist/chunk-PYUPT3HU.js.map +1 -0
  200. package/dist/{chunk-PZHRFASW.js → chunk-Q4UI2MP4.js} +3 -2
  201. package/dist/chunk-Q4UI2MP4.js.map +1 -0
  202. package/dist/{chunk-YGESCFX2.js → chunk-Q5DVIVMR.js} +4 -3
  203. package/dist/chunk-Q5DVIVMR.js.map +1 -0
  204. package/dist/{chunk-FQSVY4QB.js → chunk-QMFPPGSZ.js} +4 -3
  205. package/dist/chunk-QMFPPGSZ.js.map +1 -0
  206. package/dist/{chunk-JMVYWHJ7.js → chunk-QMZQ4I72.js} +5 -4
  207. package/dist/chunk-QMZQ4I72.js.map +1 -0
  208. package/dist/{chunk-PXTTIAC4.cjs → chunk-QOQ55IUO.cjs} +9 -8
  209. package/dist/chunk-QOQ55IUO.cjs.map +1 -0
  210. package/dist/{chunk-5HPXPF3F.js → chunk-R3ONJZXN.js} +6 -5
  211. package/dist/chunk-R3ONJZXN.js.map +1 -0
  212. package/dist/{chunk-EEOUWM2F.cjs → chunk-RCRUFF6F.cjs} +5 -4
  213. package/dist/{chunk-EEOUWM2F.cjs.map → chunk-RCRUFF6F.cjs.map} +1 -1
  214. package/dist/{chunk-V5XVXQWE.js → chunk-RKPEY2LR.js} +6 -5
  215. package/dist/{chunk-V5XVXQWE.js.map → chunk-RKPEY2LR.js.map} +1 -1
  216. package/dist/{chunk-X2P5SPGB.js → chunk-RM2XLAAU.js} +3 -3
  217. package/dist/{chunk-X2P5SPGB.js.map → chunk-RM2XLAAU.js.map} +1 -1
  218. package/dist/{chunk-D7TT4HUI.cjs → chunk-RNKQPVCB.cjs} +17 -16
  219. package/dist/{chunk-D7TT4HUI.cjs.map → chunk-RNKQPVCB.cjs.map} +1 -1
  220. package/dist/{chunk-FTNEAX24.js → chunk-RQUQSI67.js} +5 -4
  221. package/dist/chunk-RQUQSI67.js.map +1 -0
  222. package/dist/{chunk-54B36CSW.js → chunk-RRN6FK6U.js} +6 -5
  223. package/dist/{chunk-54B36CSW.js.map → chunk-RRN6FK6U.js.map} +1 -1
  224. package/dist/{chunk-KLPVBJGZ.cjs → chunk-RUPT4QAW.cjs} +6 -5
  225. package/dist/{chunk-KLPVBJGZ.cjs.map → chunk-RUPT4QAW.cjs.map} +1 -1
  226. package/dist/{chunk-UNS7OCEA.cjs → chunk-RYVQVW2U.cjs} +6 -5
  227. package/dist/{chunk-UNS7OCEA.cjs.map → chunk-RYVQVW2U.cjs.map} +1 -1
  228. package/dist/{chunk-OUUG4RHO.js → chunk-RZBOQQRG.js} +7 -6
  229. package/dist/chunk-RZBOQQRG.js.map +1 -0
  230. package/dist/{chunk-HC57X3U4.js → chunk-RZPKI7FD.js} +6 -5
  231. package/dist/chunk-RZPKI7FD.js.map +1 -0
  232. package/dist/{chunk-WTCH3QCQ.js → chunk-SHJNMFEV.js} +3 -2
  233. package/dist/chunk-SHJNMFEV.js.map +1 -0
  234. package/dist/{chunk-DVCDAKPK.cjs → chunk-T6E5MIIO.cjs} +7 -6
  235. package/dist/chunk-T6E5MIIO.cjs.map +1 -0
  236. package/dist/{chunk-UJDHRILS.cjs → chunk-TFPTFBHN.cjs} +7 -6
  237. package/dist/chunk-TFPTFBHN.cjs.map +1 -0
  238. package/dist/{chunk-XUCLNECV.js → chunk-TRDO4OBD.js} +4 -3
  239. package/dist/chunk-TRDO4OBD.js.map +1 -0
  240. package/dist/{chunk-LTHPJRFK.cjs → chunk-TRQQZ3FY.cjs} +10 -9
  241. package/dist/{chunk-LTHPJRFK.cjs.map → chunk-TRQQZ3FY.cjs.map} +1 -1
  242. package/dist/{chunk-PYN75QAG.js → chunk-TS3FMP6Z.js} +4 -3
  243. package/dist/chunk-TS3FMP6Z.js.map +1 -0
  244. package/dist/{chunk-QB2BSOM4.cjs → chunk-TT65RNBY.cjs} +3 -2
  245. package/dist/{chunk-QB2BSOM4.cjs.map → chunk-TT65RNBY.cjs.map} +1 -1
  246. package/dist/{chunk-KLCEDPJ4.cjs → chunk-TX4BD3JN.cjs} +19 -18
  247. package/dist/chunk-TX4BD3JN.cjs.map +1 -0
  248. package/dist/{chunk-CWZCBYVZ.cjs → chunk-U7NJKBAR.cjs} +14 -13
  249. package/dist/chunk-U7NJKBAR.cjs.map +1 -0
  250. package/dist/{chunk-6SKIBUCY.js → chunk-UCMIHJFE.js} +5 -4
  251. package/dist/chunk-UCMIHJFE.js.map +1 -0
  252. package/dist/{chunk-BNGYGCT2.js → chunk-UCSMB46R.js} +4 -3
  253. package/dist/{chunk-BNGYGCT2.js.map → chunk-UCSMB46R.js.map} +1 -1
  254. package/dist/{chunk-DTNIUZ3C.cjs → chunk-UGK3AL6Z.cjs} +8 -7
  255. package/dist/{chunk-DTNIUZ3C.cjs.map → chunk-UGK3AL6Z.cjs.map} +1 -1
  256. package/dist/{chunk-2AOR4EVA.cjs → chunk-UJS33XO7.cjs} +9 -8
  257. package/dist/chunk-UJS33XO7.cjs.map +1 -0
  258. package/dist/{chunk-BPAZTKMC.cjs → chunk-VOYIMBTO.cjs} +11 -10
  259. package/dist/{chunk-BPAZTKMC.cjs.map → chunk-VOYIMBTO.cjs.map} +1 -1
  260. package/dist/{chunk-ACGPBJIS.js → chunk-VRXTRDIP.js} +6 -5
  261. package/dist/chunk-VRXTRDIP.js.map +1 -0
  262. package/dist/{chunk-CPDWUT2H.cjs → chunk-W6UBDEMN.cjs} +3 -2
  263. package/dist/{chunk-CPDWUT2H.cjs.map → chunk-W6UBDEMN.cjs.map} +1 -1
  264. package/dist/{chunk-DXUFDJHA.cjs → chunk-WBVSDRWB.cjs} +11 -10
  265. package/dist/{chunk-DXUFDJHA.cjs.map → chunk-WBVSDRWB.cjs.map} +1 -1
  266. package/dist/{chunk-U7QJJ3NR.cjs → chunk-WHQNYDUT.cjs} +9 -8
  267. package/dist/{chunk-U7QJJ3NR.cjs.map → chunk-WHQNYDUT.cjs.map} +1 -1
  268. package/dist/{chunk-MJHEPDDX.cjs → chunk-WW6XXMJL.cjs} +21 -20
  269. package/dist/chunk-WW6XXMJL.cjs.map +1 -0
  270. package/dist/{chunk-HEF53COU.js → chunk-X6QULLGW.js} +4 -3
  271. package/dist/{chunk-HEF53COU.js.map → chunk-X6QULLGW.js.map} +1 -1
  272. package/dist/{chunk-BYV7NXC5.cjs → chunk-XB6G4W4P.cjs} +8 -7
  273. package/dist/chunk-XB6G4W4P.cjs.map +1 -0
  274. package/dist/{chunk-MDQSVB2Y.js → chunk-XBQKPRWG.js} +3 -2
  275. package/dist/chunk-XBQKPRWG.js.map +1 -0
  276. package/dist/{chunk-WLWSQKWI.js → chunk-XQIPFZUD.js} +9 -8
  277. package/dist/{chunk-WLWSQKWI.js.map → chunk-XQIPFZUD.js.map} +1 -1
  278. package/dist/{chunk-TACO5IWI.cjs → chunk-XTWTL3UB.cjs} +20 -19
  279. package/dist/chunk-XTWTL3UB.cjs.map +1 -0
  280. package/dist/{chunk-6KG76KUZ.js → chunk-XVJLFQJT.js} +4 -3
  281. package/dist/{chunk-6KG76KUZ.js.map → chunk-XVJLFQJT.js.map} +1 -1
  282. package/dist/{chunk-CVT7JW6C.cjs → chunk-XY5GXS62.cjs} +5 -4
  283. package/dist/{chunk-CVT7JW6C.cjs.map → chunk-XY5GXS62.cjs.map} +1 -1
  284. package/dist/{chunk-PKZSJX53.cjs → chunk-Y3TUHGI2.cjs} +3 -2
  285. package/dist/chunk-Y3TUHGI2.cjs.map +1 -0
  286. package/dist/{chunk-GKYGZWSQ.js → chunk-YBMIXGFM.js} +6 -5
  287. package/dist/{chunk-GKYGZWSQ.js.map → chunk-YBMIXGFM.js.map} +1 -1
  288. package/dist/{chunk-GTZQT6MK.js → chunk-YK5BUUZG.js} +6 -5
  289. package/dist/chunk-YK5BUUZG.js.map +1 -0
  290. package/dist/{chunk-L747HIHG.js → chunk-YKLFVO22.js} +5 -4
  291. package/dist/chunk-YKLFVO22.js.map +1 -0
  292. package/dist/{chunk-BKKLUIIU.js → chunk-YNGDGY2J.js} +3 -2
  293. package/dist/chunk-YNGDGY2J.js.map +1 -0
  294. package/dist/{chunk-2K4I2MB3.cjs → chunk-YPTBGFPT.cjs} +3 -2
  295. package/dist/{chunk-2K4I2MB3.cjs.map → chunk-YPTBGFPT.cjs.map} +1 -1
  296. package/dist/{chunk-O3UT5D57.js → chunk-YUKH75MR.js} +15 -14
  297. package/dist/{chunk-O3UT5D57.js.map → chunk-YUKH75MR.js.map} +1 -1
  298. package/dist/{chunk-IREOTHD3.cjs → chunk-Z2KSHRDD.cjs} +6 -5
  299. package/dist/chunk-Z2KSHRDD.cjs.map +1 -0
  300. package/dist/{chunk-VPWNRWNO.cjs → chunk-Z5EY2GRO.cjs} +3 -2
  301. package/dist/chunk-Z5EY2GRO.cjs.map +1 -0
  302. package/dist/{chunk-D3CHBU46.js → chunk-ZLJOIPTJ.js} +4 -3
  303. package/dist/{chunk-D3CHBU46.js.map → chunk-ZLJOIPTJ.js.map} +1 -1
  304. package/dist/{chunk-NGNVNRAZ.cjs → chunk-ZQWT5UEN.cjs} +18 -17
  305. package/dist/chunk-ZQWT5UEN.cjs.map +1 -0
  306. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  307. package/dist/components/Accordion/AccordionContext.d.ts.map +1 -1
  308. package/dist/components/Accordion/AccordionItem.d.ts.map +1 -1
  309. package/dist/components/Accordion/index.cjs +4 -4
  310. package/dist/components/Accordion/index.js +1 -1
  311. package/dist/components/Accordion/useAccordionDevWarning.d.ts.map +1 -1
  312. package/dist/components/Accordion/useCollapsible.d.ts.map +1 -1
  313. package/dist/components/Alert/Alert.d.ts.map +1 -1
  314. package/dist/components/Alert/index.cjs +10 -10
  315. package/dist/components/Alert/index.js +9 -9
  316. package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -1
  317. package/dist/components/AlertDialog/index.cjs +16 -16
  318. package/dist/components/AlertDialog/index.js +14 -14
  319. package/dist/components/AlertDialog/useAlertDialog.d.ts.map +1 -1
  320. package/dist/components/AppShell/AppShell.d.ts.map +1 -1
  321. package/dist/components/AppShell/AppShellMobileContext.d.ts.map +1 -1
  322. package/dist/components/AppShell/index.cjs +21 -21
  323. package/dist/components/AppShell/index.js +18 -18
  324. package/dist/components/AppShell/useSlotPresence.d.ts.map +1 -1
  325. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
  326. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
  327. package/dist/components/AutocompleteInput/index.cjs +17 -17
  328. package/dist/components/AutocompleteInput/index.js +13 -13
  329. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  330. package/dist/components/Avatar/AvatarSizeContext.d.ts.map +1 -1
  331. package/dist/components/Avatar/AvatarStatusDot.d.ts.map +1 -1
  332. package/dist/components/Avatar/index.cjs +4 -4
  333. package/dist/components/Avatar/index.js +1 -1
  334. package/dist/components/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  335. package/dist/components/AvatarGroup/AvatarGroupContext.d.ts.map +1 -1
  336. package/dist/components/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  337. package/dist/components/AvatarGroup/index.cjs +4 -4
  338. package/dist/components/AvatarGroup/index.js +2 -2
  339. package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  340. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  341. package/dist/components/Breadcrumbs/BreadcrumbsContext.d.ts.map +1 -1
  342. package/dist/components/Breadcrumbs/index.cjs +5 -5
  343. package/dist/components/Breadcrumbs/index.js +2 -2
  344. package/dist/components/Button/Button.d.ts.map +1 -1
  345. package/dist/components/Button/index.cjs +9 -9
  346. package/dist/components/Button/index.js +8 -8
  347. package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  348. package/dist/components/ButtonGroup/ButtonGroupContext.d.ts.map +1 -1
  349. package/dist/components/ButtonGroup/index.cjs +3 -3
  350. package/dist/components/ButtonGroup/index.js +2 -2
  351. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  352. package/dist/components/Calendar/index.cjs +10 -10
  353. package/dist/components/Calendar/index.js +9 -9
  354. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -1
  355. package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts.map +1 -1
  356. package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts.map +1 -1
  357. package/dist/components/CheckboxGroup/index.cjs +12 -12
  358. package/dist/components/CheckboxGroup/index.js +10 -10
  359. package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  360. package/dist/components/CheckboxInput/index.cjs +9 -9
  361. package/dist/components/CheckboxInput/index.js +8 -8
  362. package/dist/components/CodeBlock/index.cjs +11 -11
  363. package/dist/components/CodeBlock/index.js +10 -10
  364. package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -1
  365. package/dist/components/ContextMenu/index.cjs +15 -15
  366. package/dist/components/ContextMenu/index.js +13 -13
  367. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  368. package/dist/components/DateInput/index.cjs +13 -13
  369. package/dist/components/DateInput/index.js +12 -12
  370. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  371. package/dist/components/DateRangeInput/index.cjs +13 -13
  372. package/dist/components/DateRangeInput/index.js +12 -12
  373. package/dist/components/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  374. package/dist/components/DateTimeInput/index.cjs +15 -15
  375. package/dist/components/DateTimeInput/index.js +14 -14
  376. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  377. package/dist/components/Dialog/DialogContext.d.ts.map +1 -1
  378. package/dist/components/Dialog/index.cjs +8 -8
  379. package/dist/components/Dialog/index.js +4 -4
  380. package/dist/components/Dialog/useDialog.d.ts.map +1 -1
  381. package/dist/components/Divider/Divider.d.ts.map +1 -1
  382. package/dist/components/Divider/index.cjs +2 -2
  383. package/dist/components/Divider/index.js +1 -1
  384. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  385. package/dist/components/Drawer/index.cjs +5 -5
  386. package/dist/components/Drawer/index.js +3 -3
  387. package/dist/components/Drawer/useDrawer.d.ts.map +1 -1
  388. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  389. package/dist/components/DropdownMenu/DropdownMenuContext.d.ts.map +1 -1
  390. package/dist/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  391. package/dist/components/DropdownMenu/index.cjs +16 -16
  392. package/dist/components/DropdownMenu/index.js +12 -12
  393. package/dist/components/DropdownMenu/menuUtils.d.ts.map +1 -1
  394. package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
  395. package/dist/components/EmptyState/index.cjs +5 -5
  396. package/dist/components/EmptyState/index.js +4 -4
  397. package/dist/components/Field/index.cjs +6 -6
  398. package/dist/components/Field/index.js +4 -4
  399. package/dist/components/FileInput/FileInput.d.ts.map +1 -1
  400. package/dist/components/FileInput/index.cjs +11 -11
  401. package/dist/components/FileInput/index.js +10 -10
  402. package/dist/components/HoverCard/HoverCard.d.ts.map +1 -1
  403. package/dist/components/HoverCard/index.cjs +4 -4
  404. package/dist/components/HoverCard/index.js +2 -2
  405. package/dist/components/HoverCard/useHoverCard.d.ts.map +1 -1
  406. package/dist/components/InputGroup/InputGroup.d.ts.map +1 -1
  407. package/dist/components/InputGroup/InputGroupContext.d.ts.map +1 -1
  408. package/dist/components/InputGroup/index.cjs +9 -9
  409. package/dist/components/InputGroup/index.js +5 -5
  410. package/dist/components/Item/Item.d.ts.map +1 -1
  411. package/dist/components/Item/index.cjs +7 -7
  412. package/dist/components/Item/index.js +6 -6
  413. package/dist/components/Kbd/Kbd.d.ts.map +1 -1
  414. package/dist/components/Kbd/index.cjs +2 -2
  415. package/dist/components/Kbd/index.js +1 -1
  416. package/dist/components/Layout/Layout.d.ts.map +1 -1
  417. package/dist/components/Layout/LayoutContext.d.ts.map +1 -1
  418. package/dist/components/Layout/LayoutFooter.d.ts.map +1 -1
  419. package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
  420. package/dist/components/Layout/LayoutPanel.d.ts.map +1 -1
  421. package/dist/components/Layout/index.cjs +15 -15
  422. package/dist/components/Layout/index.js +10 -10
  423. package/dist/components/Lightbox/Lightbox.d.ts.map +1 -1
  424. package/dist/components/Lightbox/index.cjs +12 -12
  425. package/dist/components/Lightbox/index.js +10 -10
  426. package/dist/components/Lightbox/useLightbox.d.ts.map +1 -1
  427. package/dist/components/Link/Link.d.ts.map +1 -1
  428. package/dist/components/Link/LinkContext.d.ts.map +1 -1
  429. package/dist/components/Link/LinkProvider.d.ts.map +1 -1
  430. package/dist/components/Link/index.cjs +8 -8
  431. package/dist/components/Link/index.js +5 -5
  432. package/dist/components/Link/useLinkComponent.d.ts.map +1 -1
  433. package/dist/components/List/List.d.ts.map +1 -1
  434. package/dist/components/List/ListContext.d.ts.map +1 -1
  435. package/dist/components/List/ListItem.d.ts.map +1 -1
  436. package/dist/components/List/index.cjs +9 -9
  437. package/dist/components/List/index.js +7 -7
  438. package/dist/components/MetadataList/MetadataList.d.ts.map +1 -1
  439. package/dist/components/MetadataList/MetadataListContext.d.ts.map +1 -1
  440. package/dist/components/MetadataList/MetadataListItem.d.ts.map +1 -1
  441. package/dist/components/MetadataList/index.cjs +6 -6
  442. package/dist/components/MetadataList/index.js +4 -4
  443. package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
  444. package/dist/components/MultiSelect/index.cjs +13 -13
  445. package/dist/components/MultiSelect/index.js +12 -12
  446. package/dist/components/NumberInput/NumberInput.d.ts.map +1 -1
  447. package/dist/components/NumberInput/index.cjs +12 -12
  448. package/dist/components/NumberInput/index.js +11 -11
  449. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  450. package/dist/components/Pagination/index.cjs +10 -10
  451. package/dist/components/Pagination/index.js +9 -9
  452. package/dist/components/PasswordInput/PasswordInput.d.ts.map +1 -1
  453. package/dist/components/PasswordInput/index.cjs +13 -13
  454. package/dist/components/PasswordInput/index.js +12 -12
  455. package/dist/components/Popover/Popover.d.ts.map +1 -1
  456. package/dist/components/Popover/index.cjs +11 -11
  457. package/dist/components/Popover/index.js +9 -9
  458. package/dist/components/Popover/usePopover.d.ts.map +1 -1
  459. package/dist/components/Progress/Progress.d.ts.map +1 -1
  460. package/dist/components/Progress/index.cjs +2 -2
  461. package/dist/components/Progress/index.js +1 -1
  462. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  463. package/dist/components/RadioGroup/RadioGroupContext.d.ts.map +1 -1
  464. package/dist/components/RadioGroup/RadioGroupItem.d.ts.map +1 -1
  465. package/dist/components/RadioGroup/index.cjs +10 -10
  466. package/dist/components/RadioGroup/index.js +8 -8
  467. package/dist/components/Rating/Rating.d.ts.map +1 -1
  468. package/dist/components/Rating/index.cjs +2 -2
  469. package/dist/components/Rating/index.js +1 -1
  470. package/dist/components/Schedule/DayView.d.ts.map +1 -1
  471. package/dist/components/Schedule/ListView.d.ts.map +1 -1
  472. package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
  473. package/dist/components/Schedule/Schedule.d.ts.map +1 -1
  474. package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
  475. package/dist/components/Schedule/WeeklyView.d.ts.map +1 -1
  476. package/dist/components/Schedule/context.d.ts.map +1 -1
  477. package/dist/components/Schedule/index.cjs +34 -34
  478. package/dist/components/Schedule/index.js +19 -19
  479. package/dist/components/Schedule/plugins/EventMovePlugin.d.ts.map +1 -1
  480. package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts.map +1 -1
  481. package/dist/components/Schedule/plugins/EventResizePlugin.d.ts.map +1 -1
  482. package/dist/components/Schedule/plugins/PaginationPlugin.d.ts.map +1 -1
  483. package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts.map +1 -1
  484. package/dist/components/Schedule/plugins/ViewSelectorPlugin.d.ts.map +1 -1
  485. package/dist/components/Schedule/shared.d.ts.map +1 -1
  486. package/dist/components/Schedule/useCurrentTime.d.ts.map +1 -1
  487. package/dist/components/SearchFilterInput/SearchFilterInput.d.ts.map +1 -1
  488. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.d.ts.map +1 -1
  489. package/dist/components/SearchFilterInput/SearchFilterInputFilterEditor.d.ts.map +1 -1
  490. package/dist/components/SearchFilterInput/SearchFilterInputTag.d.ts.map +1 -1
  491. package/dist/components/SearchFilterInput/SearchFilterInputValueEditor.d.ts.map +1 -1
  492. package/dist/components/SearchFilterInput/index.cjs +32 -32
  493. package/dist/components/SearchFilterInput/index.js +24 -24
  494. package/dist/components/SearchFilterInput/internalConfig.d.ts.map +1 -1
  495. package/dist/components/SearchFilterInput/useSearchFilterInputConfig.d.ts.map +1 -1
  496. package/dist/components/SearchFilterInput/useSearchFilterInputSource.d.ts.map +1 -1
  497. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  498. package/dist/components/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
  499. package/dist/components/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  500. package/dist/components/SegmentedControl/index.cjs +3 -3
  501. package/dist/components/SegmentedControl/index.js +1 -1
  502. package/dist/components/Select/Select.d.ts.map +1 -1
  503. package/dist/components/Select/index.cjs +15 -15
  504. package/dist/components/Select/index.js +13 -13
  505. package/dist/components/SideNav/SideNav.d.ts.map +1 -1
  506. package/dist/components/SideNav/SideNavContext.d.ts.map +1 -1
  507. package/dist/components/SideNav/SideNavHeading.d.ts.map +1 -1
  508. package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
  509. package/dist/components/SideNav/SideNavSection.d.ts.map +1 -1
  510. package/dist/components/SideNav/index.cjs +19 -19
  511. package/dist/components/SideNav/index.js +13 -13
  512. package/dist/components/SideNav/internal/SideNavCollapseButton.d.ts.map +1 -1
  513. package/dist/components/Slider/Slider.d.ts.map +1 -1
  514. package/dist/components/Slider/index.cjs +6 -6
  515. package/dist/components/Slider/index.js +5 -5
  516. package/dist/components/Spinner/index.cjs +5 -5
  517. package/dist/components/Spinner/index.js +4 -4
  518. package/dist/components/SplitButton/SplitButton.d.ts.map +1 -1
  519. package/dist/components/SplitButton/index.cjs +15 -15
  520. package/dist/components/SplitButton/index.js +14 -14
  521. package/dist/components/Stepper/Stepper.d.ts.map +1 -1
  522. package/dist/components/Stepper/index.cjs +5 -5
  523. package/dist/components/Stepper/index.js +4 -4
  524. package/dist/components/Stepper/internal/Step.d.ts.map +1 -1
  525. package/dist/components/Switch/Switch.d.ts.map +1 -1
  526. package/dist/components/Switch/index.cjs +6 -6
  527. package/dist/components/Switch/index.js +5 -5
  528. package/dist/components/Table/Table.d.ts.map +1 -1
  529. package/dist/components/Table/TableCell.d.ts.map +1 -1
  530. package/dist/components/Table/TableContext.d.ts.map +1 -1
  531. package/dist/components/Table/TableHeaderCell.d.ts.map +1 -1
  532. package/dist/components/Table/TableRow.d.ts.map +1 -1
  533. package/dist/components/Table/index.cjs +54 -54
  534. package/dist/components/Table/index.js +28 -28
  535. package/dist/components/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  536. package/dist/components/Table/plugins/columnSettings/useTableColumnSettings.d.ts.map +1 -1
  537. package/dist/components/Table/plugins/columnSettings/useTableColumnSettingsState.d.ts.map +1 -1
  538. package/dist/components/Table/plugins/filtering/useTableFilterState.d.ts.map +1 -1
  539. package/dist/components/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
  540. package/dist/components/Table/plugins/pagination/useTablePagination.d.ts.map +1 -1
  541. package/dist/components/Table/plugins/selection/useTableSelection.d.ts.map +1 -1
  542. package/dist/components/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
  543. package/dist/components/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  544. package/dist/components/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
  545. package/dist/components/Table/useBaseTablePlugins.d.ts.map +1 -1
  546. package/dist/components/Tabs/Tab.d.ts.map +1 -1
  547. package/dist/components/Tabs/TabMenu.d.ts.map +1 -1
  548. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  549. package/dist/components/Tabs/TabsContext.d.ts.map +1 -1
  550. package/dist/components/Tabs/index.cjs +15 -15
  551. package/dist/components/Tabs/index.js +10 -10
  552. package/dist/components/Tag/Tag.d.ts.map +1 -1
  553. package/dist/components/Tag/index.cjs +7 -7
  554. package/dist/components/Tag/index.js +6 -6
  555. package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
  556. package/dist/components/TagsInput/index.cjs +15 -15
  557. package/dist/components/TagsInput/index.js +14 -14
  558. package/dist/components/Text/Heading.d.ts.map +1 -1
  559. package/dist/components/Text/Text.d.ts.map +1 -1
  560. package/dist/components/Text/index.cjs +5 -5
  561. package/dist/components/Text/index.js +3 -3
  562. package/dist/components/Text/useTruncation.d.ts.map +1 -1
  563. package/dist/components/TextArea/TextArea.d.ts.map +1 -1
  564. package/dist/components/TextArea/index.cjs +7 -7
  565. package/dist/components/TextArea/index.js +6 -6
  566. package/dist/components/TextInput/TextInput.d.ts.map +1 -1
  567. package/dist/components/TextInput/index.cjs +12 -12
  568. package/dist/components/TextInput/index.js +11 -11
  569. package/dist/components/Theme/Theme.d.ts.map +1 -1
  570. package/dist/components/Theme/index.cjs +2 -2
  571. package/dist/components/Theme/index.js +1 -1
  572. package/dist/components/Thumbnail/Thumbnail.d.ts.map +1 -1
  573. package/dist/components/Thumbnail/index.cjs +10 -10
  574. package/dist/components/Thumbnail/index.js +9 -9
  575. package/dist/components/TimeInput/TimeInput.d.ts.map +1 -1
  576. package/dist/components/TimeInput/index.cjs +11 -11
  577. package/dist/components/TimeInput/index.js +10 -10
  578. package/dist/components/Toast/Toast.d.ts.map +1 -1
  579. package/dist/components/Toast/ToastContext.d.ts.map +1 -1
  580. package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
  581. package/dist/components/Toast/index.cjs +12 -12
  582. package/dist/components/Toast/index.js +9 -9
  583. package/dist/components/Toast/useToast.d.ts.map +1 -1
  584. package/dist/components/ToggleButton/ToggleButton.d.ts.map +1 -1
  585. package/dist/components/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  586. package/dist/components/ToggleButton/index.cjs +7 -7
  587. package/dist/components/ToggleButton/index.js +5 -5
  588. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  589. package/dist/components/Tooltip/index.cjs +4 -4
  590. package/dist/components/Tooltip/index.js +2 -2
  591. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
  592. package/dist/components/TopNav/TopNav.d.ts.map +1 -1
  593. package/dist/components/TopNav/TopNavContext.d.ts.map +1 -1
  594. package/dist/components/TopNav/TopNavHeading.d.ts.map +1 -1
  595. package/dist/components/TopNav/TopNavItem.d.ts.map +1 -1
  596. package/dist/components/TopNav/index.cjs +18 -18
  597. package/dist/components/TopNav/index.js +13 -13
  598. package/dist/components/TreeView/TreeView.d.ts.map +1 -1
  599. package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
  600. package/dist/components/TreeView/index.cjs +3 -3
  601. package/dist/components/TreeView/index.js +2 -2
  602. package/dist/index.cjs +246 -246
  603. package/dist/index.js +76 -76
  604. package/dist/internal/ActionElement.d.ts.map +1 -1
  605. package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
  606. package/dist/internal/MobileNav/MobileNav.d.ts.map +1 -1
  607. package/dist/internal/MobileNav/MobileNavToggle.d.ts.map +1 -1
  608. package/dist/internal/OverflowList.d.ts.map +1 -1
  609. package/dist/internal/linkAccessibility.d.ts.map +1 -1
  610. package/dist/internal/useBackdropDismiss.d.ts.map +1 -1
  611. package/dist/internal/useConstant.d.ts.map +1 -1
  612. package/dist/internal/useFocusTrap.d.ts.map +1 -1
  613. package/dist/internal/useGridFocus.d.ts.map +1 -1
  614. package/dist/internal/useHoverLayer.d.ts.map +1 -1
  615. package/dist/internal/useLatest.d.ts.map +1 -1
  616. package/dist/internal/useLayer.d.ts.map +1 -1
  617. package/dist/internal/useListboxNavigation.d.ts.map +1 -1
  618. package/dist/internal/useMediaQuery.d.ts.map +1 -1
  619. package/dist/internal/useScrollLock.d.ts.map +1 -1
  620. package/dist/internal/useSelectListbox.d.ts.map +1 -1
  621. package/dist/internal/useShallowEqualMemo.d.ts.map +1 -1
  622. package/dist/styles.css +1 -1
  623. package/package.json +3 -2
  624. package/dist/chunk-2AOR4EVA.cjs.map +0 -1
  625. package/dist/chunk-2N3PIXZ5.cjs.map +0 -1
  626. package/dist/chunk-3NIDAKCF.cjs.map +0 -1
  627. package/dist/chunk-3PCXFOOS.js.map +0 -1
  628. package/dist/chunk-3PEK2Q54.cjs.map +0 -1
  629. package/dist/chunk-3W3ST5Y3.cjs.map +0 -1
  630. package/dist/chunk-4MIIXRZN.cjs.map +0 -1
  631. package/dist/chunk-56PY2CD7.js.map +0 -1
  632. package/dist/chunk-5FQKELP6.js.map +0 -1
  633. package/dist/chunk-5HPXPF3F.js.map +0 -1
  634. package/dist/chunk-5K3C3INR.cjs.map +0 -1
  635. package/dist/chunk-5RFHYDQY.js.map +0 -1
  636. package/dist/chunk-5UGHDUMO.js.map +0 -1
  637. package/dist/chunk-63QPCV4F.cjs.map +0 -1
  638. package/dist/chunk-6OWEKKOC.js.map +0 -1
  639. package/dist/chunk-6R2UZNVE.js.map +0 -1
  640. package/dist/chunk-6SFMORQF.cjs.map +0 -1
  641. package/dist/chunk-6SKIBUCY.js.map +0 -1
  642. package/dist/chunk-6SMVH3ON.cjs.map +0 -1
  643. package/dist/chunk-6ZPHID26.cjs.map +0 -1
  644. package/dist/chunk-AC4E3WQA.cjs.map +0 -1
  645. package/dist/chunk-ACGPBJIS.js.map +0 -1
  646. package/dist/chunk-ARUOMLOJ.cjs.map +0 -1
  647. package/dist/chunk-BBLAZNCC.js.map +0 -1
  648. package/dist/chunk-BKKLUIIU.js.map +0 -1
  649. package/dist/chunk-BSXUNRET.cjs.map +0 -1
  650. package/dist/chunk-BYV7NXC5.cjs.map +0 -1
  651. package/dist/chunk-CQYBC3RJ.cjs.map +0 -1
  652. package/dist/chunk-CWZCBYVZ.cjs.map +0 -1
  653. package/dist/chunk-DE7JLNSO.js.map +0 -1
  654. package/dist/chunk-DVCDAKPK.cjs.map +0 -1
  655. package/dist/chunk-EBV3EX3J.js.map +0 -1
  656. package/dist/chunk-ESWYWWY2.js.map +0 -1
  657. package/dist/chunk-EZFQCREN.cjs.map +0 -1
  658. package/dist/chunk-FQSVY4QB.js.map +0 -1
  659. package/dist/chunk-FTNEAX24.js.map +0 -1
  660. package/dist/chunk-GJZAGTPV.cjs.map +0 -1
  661. package/dist/chunk-GTZQT6MK.js.map +0 -1
  662. package/dist/chunk-H7LOOHWU.cjs.map +0 -1
  663. package/dist/chunk-HC57X3U4.js.map +0 -1
  664. package/dist/chunk-HENIVDYQ.cjs.map +0 -1
  665. package/dist/chunk-HN4W6TM6.cjs.map +0 -1
  666. package/dist/chunk-I2DXEPDF.js.map +0 -1
  667. package/dist/chunk-IREOTHD3.cjs.map +0 -1
  668. package/dist/chunk-J242UTPO.cjs.map +0 -1
  669. package/dist/chunk-JIF5TZHC.cjs.map +0 -1
  670. package/dist/chunk-JMVYWHJ7.js.map +0 -1
  671. package/dist/chunk-KEPCKSDE.js.map +0 -1
  672. package/dist/chunk-KLCEDPJ4.cjs.map +0 -1
  673. package/dist/chunk-KWZMXX4F.js.map +0 -1
  674. package/dist/chunk-L747HIHG.js.map +0 -1
  675. package/dist/chunk-LBOWHXOF.js.map +0 -1
  676. package/dist/chunk-MDQSVB2Y.js.map +0 -1
  677. package/dist/chunk-MJHEPDDX.cjs.map +0 -1
  678. package/dist/chunk-MYSLJWCW.cjs.map +0 -1
  679. package/dist/chunk-N6C37HXD.js.map +0 -1
  680. package/dist/chunk-NGNVNRAZ.cjs.map +0 -1
  681. package/dist/chunk-NIKT7XSO.js.map +0 -1
  682. package/dist/chunk-NYOZQE6P.js.map +0 -1
  683. package/dist/chunk-OPBELSKN.js.map +0 -1
  684. package/dist/chunk-OUUG4RHO.js.map +0 -1
  685. package/dist/chunk-PG4CZRTU.js.map +0 -1
  686. package/dist/chunk-PGBYMBGH.js.map +0 -1
  687. package/dist/chunk-PKZSJX53.cjs.map +0 -1
  688. package/dist/chunk-PQXPYN23.js.map +0 -1
  689. package/dist/chunk-PXTTIAC4.cjs.map +0 -1
  690. package/dist/chunk-PYN75QAG.js.map +0 -1
  691. package/dist/chunk-PZHRFASW.js.map +0 -1
  692. package/dist/chunk-Q6YOSQAM.js.map +0 -1
  693. package/dist/chunk-QQCEGAUQ.cjs.map +0 -1
  694. package/dist/chunk-RLIBY7XB.cjs.map +0 -1
  695. package/dist/chunk-S4WWBV4N.js.map +0 -1
  696. package/dist/chunk-TACO5IWI.cjs.map +0 -1
  697. package/dist/chunk-UJDHRILS.cjs.map +0 -1
  698. package/dist/chunk-UUVI3TYW.js.map +0 -1
  699. package/dist/chunk-VK7DXUGH.cjs.map +0 -1
  700. package/dist/chunk-VPWNRWNO.cjs.map +0 -1
  701. package/dist/chunk-WOVSJHY6.cjs.map +0 -1
  702. package/dist/chunk-WTCH3QCQ.js.map +0 -1
  703. package/dist/chunk-XUCLNECV.js.map +0 -1
  704. package/dist/chunk-YGESCFX2.js.map +0 -1
  705. package/dist/chunk-ZDZ7FW6V.cjs.map +0 -1
  706. package/dist/chunk-ZW2ZOEYM.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Theme/Theme.tsx"],"names":[],"mappings":"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","file":"chunk-DE7JLNSO.js","sourcesContent":["import {\n Fragment,\n createElement,\n useId,\n type CSSProperties,\n type ElementType,\n type HTMLAttributes,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {cx} from 'internal/cx';\n\nexport type ThemeMode = 'dark' | 'light' | 'system';\n\nexport type ThemePaletteName =\n | 'blue'\n | 'cyan'\n | 'gray'\n | 'green'\n | 'orange'\n | 'pink'\n | 'purple'\n | 'red'\n | 'teal'\n | 'yellow';\n\nexport type ThemePaletteStep =\n | 50\n | 100\n | 200\n | 300\n | 400\n | 500\n | 600\n | 700\n | 800\n | 900;\n\nexport type ThemePaletteReference =\n | `${ThemePaletteName}.${ThemePaletteStep}`\n | `${ThemePaletteName}-${ThemePaletteStep}`;\n\nexport type ThemeColorValue = ThemePaletteReference | (string & {});\ntype ThemeCssVariableName = `--silver-${string}`;\ntype ThemeCssVariables = Partial<Record<ThemeCssVariableName, string>>;\n\nexport interface ThemeColorTokens {\n bg?: ThemeColorValue;\n bgGhostActive?: ThemeColorValue;\n bgGhostHover?: ThemeColorValue;\n bgHover?: ThemeColorValue;\n bgSelected?: ThemeColorValue;\n bgSubtle?: ThemeColorValue;\n border?: ThemeColorValue;\n borderEmphasized?: ThemeColorValue;\n destructive?: ThemeColorValue;\n destructiveActive?: ThemeColorValue;\n destructiveFg?: ThemeColorValue;\n destructiveHover?: ThemeColorValue;\n fg?: ThemeColorValue;\n fgDisabled?: ThemeColorValue;\n fgMuted?: ThemeColorValue;\n fgOnPrimary?: ThemeColorValue;\n iconAccent?: ThemeColorValue;\n iconBlue?: ThemeColorValue;\n iconCyan?: ThemeColorValue;\n iconDisabled?: ThemeColorValue;\n iconError?: ThemeColorValue;\n iconGray?: ThemeColorValue;\n iconGreen?: ThemeColorValue;\n iconInfo?: ThemeColorValue;\n iconOrange?: ThemeColorValue;\n iconPink?: ThemeColorValue;\n iconPrimary?: ThemeColorValue;\n iconPurple?: ThemeColorValue;\n iconRed?: ThemeColorValue;\n iconSecondary?: ThemeColorValue;\n iconSuccess?: ThemeColorValue;\n iconTeal?: ThemeColorValue;\n iconTertiary?: ThemeColorValue;\n iconWarning?: ThemeColorValue;\n iconYellow?: ThemeColorValue;\n overlayScrim?: ThemeColorValue;\n overlayScrimStrong?: ThemeColorValue;\n overlayScrimSubtle?: ThemeColorValue;\n presenceError?: ThemeColorValue;\n presenceNeutral?: ThemeColorValue;\n presenceSuccess?: ThemeColorValue;\n primary?: ThemeColorValue;\n primaryActive?: ThemeColorValue;\n primaryHover?: ThemeColorValue;\n primarySubtle?: ThemeColorValue;\n skeleton?: ThemeColorValue;\n skeletonShimmer?: ThemeColorValue;\n statusDisabledSolid?: ThemeColorValue;\n statusDisabledSolidFg?: ThemeColorValue;\n statusErrorBorder?: ThemeColorValue;\n statusErrorBorderHover?: ThemeColorValue;\n statusErrorFg?: ThemeColorValue;\n statusErrorSolid?: ThemeColorValue;\n statusErrorSolidFg?: ThemeColorValue;\n statusInfoFg?: ThemeColorValue;\n statusInfoSolid?: ThemeColorValue;\n statusInfoSolidFg?: ThemeColorValue;\n statusNeutralSolid?: ThemeColorValue;\n statusNeutralSolidFg?: ThemeColorValue;\n statusSuccessBorder?: ThemeColorValue;\n statusSuccessBorderHover?: ThemeColorValue;\n statusSuccessFg?: ThemeColorValue;\n statusSuccessSolid?: ThemeColorValue;\n statusSuccessSolidFg?: ThemeColorValue;\n statusWarningBorder?: ThemeColorValue;\n statusWarningBorderHover?: ThemeColorValue;\n statusWarningFg?: ThemeColorValue;\n statusWarningSolid?: ThemeColorValue;\n statusWarningSolidFg?: ThemeColorValue;\n surfaceBlue?: ThemeColorValue;\n surfaceBlueAccent?: ThemeColorValue;\n surfaceBlueFg?: ThemeColorValue;\n surfaceBlueHover?: ThemeColorValue;\n surfaceCyan?: ThemeColorValue;\n surfaceCyanAccent?: ThemeColorValue;\n surfaceCyanFg?: ThemeColorValue;\n surfaceCyanHover?: ThemeColorValue;\n surfaceGray?: ThemeColorValue;\n surfaceGrayAccent?: ThemeColorValue;\n surfaceGrayFg?: ThemeColorValue;\n surfaceGrayHover?: ThemeColorValue;\n surfaceGreen?: ThemeColorValue;\n surfaceGreenAccent?: ThemeColorValue;\n surfaceGreenFg?: ThemeColorValue;\n surfaceGreenHover?: ThemeColorValue;\n surfaceOrange?: ThemeColorValue;\n surfaceOrangeAccent?: ThemeColorValue;\n surfaceOrangeFg?: ThemeColorValue;\n surfaceOrangeHover?: ThemeColorValue;\n surfacePink?: ThemeColorValue;\n surfacePinkAccent?: ThemeColorValue;\n surfacePinkFg?: ThemeColorValue;\n surfacePinkHover?: ThemeColorValue;\n surfacePurple?: ThemeColorValue;\n surfacePurpleAccent?: ThemeColorValue;\n surfacePurpleFg?: ThemeColorValue;\n surfacePurpleHover?: ThemeColorValue;\n surfaceRed?: ThemeColorValue;\n surfaceRedAccent?: ThemeColorValue;\n surfaceRedFg?: ThemeColorValue;\n surfaceRedHover?: ThemeColorValue;\n surfaceTeal?: ThemeColorValue;\n surfaceTealAccent?: ThemeColorValue;\n surfaceTealFg?: ThemeColorValue;\n surfaceTealHover?: ThemeColorValue;\n surfaceYellow?: ThemeColorValue;\n surfaceYellowAccent?: ThemeColorValue;\n surfaceYellowFg?: ThemeColorValue;\n surfaceYellowHover?: ThemeColorValue;\n track?: ThemeColorValue;\n trackDisabled?: ThemeColorValue;\n trackEmphasized?: ThemeColorValue;\n}\n\nexport interface ThemeFontTokens {\n body?: string;\n mono?: string;\n}\n\nexport interface ThemeFontSizeTokens {\n componentLg?: string;\n componentMd?: string;\n componentSm?: string;\n iconLg?: string;\n iconMd?: string;\n iconSm?: string;\n}\n\nexport interface ThemeRadiusTokens {\n componentLg?: string;\n componentMd?: string;\n componentSm?: string;\n lg?: string;\n md?: string;\n sm?: string;\n}\n\nexport interface ThemeShadowTokens {\n focus?: string;\n focusError?: string;\n focusSuccess?: string;\n focusWarning?: string;\n}\n\nexport interface ThemeSizeTokens {\n componentLg?: string;\n componentMd?: string;\n componentSm?: string;\n iconLg?: string;\n iconMd?: string;\n iconSm?: string;\n}\n\nexport interface ThemeSpacingTokens {\n componentLg?: string;\n componentMd?: string;\n componentSm?: string;\n focusOffset?: string;\n focusOffsetLoose?: string;\n focusOffsetTight?: string;\n}\n\nexport interface ThemeTokens {\n colors?: ThemeColorTokens;\n fonts?: ThemeFontTokens;\n fontSizes?: ThemeFontSizeTokens;\n radii?: ThemeRadiusTokens;\n shadows?: ThemeShadowTokens;\n sizes?: ThemeSizeTokens;\n spacing?: ThemeSpacingTokens;\n}\n\nexport interface ThemeModeTokens {\n dark?: ThemeTokens;\n light?: ThemeTokens;\n}\n\nexport interface ThemeProps extends HTMLAttributes<HTMLElement> {\n /**\n * HTML element type to render.\n * @default 'div'\n */\n as?: ElementType;\n /**\n * Theme content.\n */\n children?: ReactNode;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Theme mode. System mode omits data-theme and follows existing CSS/media\n * query behavior.\n * @default 'system'\n */\n mode?: ThemeMode;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Friendly token overrides mapped to Silver CSS custom properties.\n */\n themes?: ThemeModeTokens;\n /**\n * Friendly token overrides applied in every mode.\n */\n tokens?: ThemeTokens;\n}\n\nconst colorTokenVariables: Record<\n keyof ThemeColorTokens,\n ThemeCssVariableName\n> = {\n bg: '--silver-colors-bg',\n bgGhostActive: '--silver-colors-bg-ghost-active',\n bgGhostHover: '--silver-colors-bg-ghost-hover',\n bgHover: '--silver-colors-bg-hover',\n bgSelected: '--silver-colors-bg-selected',\n bgSubtle: '--silver-colors-bg-subtle',\n border: '--silver-colors-border',\n borderEmphasized: '--silver-colors-border-emphasized',\n destructive: '--silver-colors-destructive',\n destructiveActive: '--silver-colors-destructive-active',\n destructiveFg: '--silver-colors-destructive-fg',\n destructiveHover: '--silver-colors-destructive-hover',\n fg: '--silver-colors-fg',\n fgDisabled: '--silver-colors-fg-disabled',\n fgMuted: '--silver-colors-fg-muted',\n fgOnPrimary: '--silver-colors-fg-on-primary',\n primary: '--silver-colors-primary',\n primaryActive: '--silver-colors-primary-active',\n primaryHover: '--silver-colors-primary-hover',\n primarySubtle: '--silver-colors-primary-subtle',\n iconAccent: '--silver-colors-icon-accent',\n iconBlue: '--silver-colors-icon-blue',\n iconCyan: '--silver-colors-icon-cyan',\n iconDisabled: '--silver-colors-icon-disabled',\n iconError: '--silver-colors-icon-error',\n iconGray: '--silver-colors-icon-gray',\n iconGreen: '--silver-colors-icon-green',\n iconInfo: '--silver-colors-icon-info',\n iconOrange: '--silver-colors-icon-orange',\n iconPink: '--silver-colors-icon-pink',\n iconPrimary: '--silver-colors-icon-primary',\n iconPurple: '--silver-colors-icon-purple',\n iconRed: '--silver-colors-icon-red',\n iconSecondary: '--silver-colors-icon-secondary',\n iconSuccess: '--silver-colors-icon-success',\n iconTeal: '--silver-colors-icon-teal',\n iconTertiary: '--silver-colors-icon-tertiary',\n iconWarning: '--silver-colors-icon-warning',\n iconYellow: '--silver-colors-icon-yellow',\n overlayScrim: '--silver-colors-overlay-scrim',\n overlayScrimStrong: '--silver-colors-overlay-scrim-strong',\n overlayScrimSubtle: '--silver-colors-overlay-scrim-subtle',\n presenceError: '--silver-colors-presence-error',\n presenceNeutral: '--silver-colors-presence-neutral',\n presenceSuccess: '--silver-colors-presence-success',\n skeleton: '--silver-colors-skeleton',\n skeletonShimmer: '--silver-colors-skeleton-shimmer',\n statusDisabledSolid: '--silver-colors-status-disabled-solid',\n statusDisabledSolidFg: '--silver-colors-status-disabled-solid-fg',\n statusErrorBorder: '--silver-colors-status-error-border',\n statusErrorBorderHover: '--silver-colors-status-error-border-hover',\n statusErrorFg: '--silver-colors-status-error-fg',\n statusErrorSolid: '--silver-colors-status-error-solid',\n statusErrorSolidFg: '--silver-colors-status-error-solid-fg',\n statusInfoFg: '--silver-colors-status-info-fg',\n statusInfoSolid: '--silver-colors-status-info-solid',\n statusInfoSolidFg: '--silver-colors-status-info-solid-fg',\n statusNeutralSolid: '--silver-colors-status-neutral-solid',\n statusNeutralSolidFg: '--silver-colors-status-neutral-solid-fg',\n statusSuccessBorder: '--silver-colors-status-success-border',\n statusSuccessBorderHover: '--silver-colors-status-success-border-hover',\n statusSuccessFg: '--silver-colors-status-success-fg',\n statusSuccessSolid: '--silver-colors-status-success-solid',\n statusSuccessSolidFg: '--silver-colors-status-success-solid-fg',\n statusWarningBorder: '--silver-colors-status-warning-border',\n statusWarningBorderHover: '--silver-colors-status-warning-border-hover',\n statusWarningFg: '--silver-colors-status-warning-fg',\n statusWarningSolid: '--silver-colors-status-warning-solid',\n statusWarningSolidFg: '--silver-colors-status-warning-solid-fg',\n surfaceBlue: '--silver-colors-surface-blue',\n surfaceBlueAccent: '--silver-colors-surface-blue-accent',\n surfaceBlueFg: '--silver-colors-surface-blue-fg',\n surfaceBlueHover: '--silver-colors-surface-blue-hover',\n surfaceCyan: '--silver-colors-surface-cyan',\n surfaceCyanAccent: '--silver-colors-surface-cyan-accent',\n surfaceCyanFg: '--silver-colors-surface-cyan-fg',\n surfaceCyanHover: '--silver-colors-surface-cyan-hover',\n surfaceGray: '--silver-colors-surface-gray',\n surfaceGrayAccent: '--silver-colors-surface-gray-accent',\n surfaceGrayFg: '--silver-colors-surface-gray-fg',\n surfaceGrayHover: '--silver-colors-surface-gray-hover',\n surfaceGreen: '--silver-colors-surface-green',\n surfaceGreenAccent: '--silver-colors-surface-green-accent',\n surfaceGreenFg: '--silver-colors-surface-green-fg',\n surfaceGreenHover: '--silver-colors-surface-green-hover',\n surfaceOrange: '--silver-colors-surface-orange',\n surfaceOrangeAccent: '--silver-colors-surface-orange-accent',\n surfaceOrangeFg: '--silver-colors-surface-orange-fg',\n surfaceOrangeHover: '--silver-colors-surface-orange-hover',\n surfacePink: '--silver-colors-surface-pink',\n surfacePinkAccent: '--silver-colors-surface-pink-accent',\n surfacePinkFg: '--silver-colors-surface-pink-fg',\n surfacePinkHover: '--silver-colors-surface-pink-hover',\n surfacePurple: '--silver-colors-surface-purple',\n surfacePurpleAccent: '--silver-colors-surface-purple-accent',\n surfacePurpleFg: '--silver-colors-surface-purple-fg',\n surfacePurpleHover: '--silver-colors-surface-purple-hover',\n surfaceRed: '--silver-colors-surface-red',\n surfaceRedAccent: '--silver-colors-surface-red-accent',\n surfaceRedFg: '--silver-colors-surface-red-fg',\n surfaceRedHover: '--silver-colors-surface-red-hover',\n surfaceTeal: '--silver-colors-surface-teal',\n surfaceTealAccent: '--silver-colors-surface-teal-accent',\n surfaceTealFg: '--silver-colors-surface-teal-fg',\n surfaceTealHover: '--silver-colors-surface-teal-hover',\n surfaceYellow: '--silver-colors-surface-yellow',\n surfaceYellowAccent: '--silver-colors-surface-yellow-accent',\n surfaceYellowFg: '--silver-colors-surface-yellow-fg',\n surfaceYellowHover: '--silver-colors-surface-yellow-hover',\n track: '--silver-colors-track',\n trackDisabled: '--silver-colors-track-disabled',\n trackEmphasized: '--silver-colors-track-emphasized',\n};\n\nconst fontTokenVariables: Record<keyof ThemeFontTokens, ThemeCssVariableName> =\n {\n body: '--silver-fonts-body',\n mono: '--silver-fonts-mono',\n };\n\nconst fontSizeTokenVariables: Record<\n keyof ThemeFontSizeTokens,\n ThemeCssVariableName\n> = {\n componentLg: '--silver-font-sizes-component-lg',\n componentMd: '--silver-font-sizes-component-md',\n componentSm: '--silver-font-sizes-component-sm',\n iconLg: '--silver-font-sizes-icon-lg',\n iconMd: '--silver-font-sizes-icon-md',\n iconSm: '--silver-font-sizes-icon-sm',\n};\n\nconst radiusTokenVariables: Record<\n keyof ThemeRadiusTokens,\n ThemeCssVariableName\n> = {\n componentLg: '--silver-radii-component-lg',\n componentMd: '--silver-radii-component-md',\n componentSm: '--silver-radii-component-sm',\n lg: '--silver-radii-lg',\n md: '--silver-radii-md',\n sm: '--silver-radii-sm',\n};\n\nconst shadowTokenVariables: Record<\n keyof ThemeShadowTokens,\n ThemeCssVariableName\n> = {\n focus: '--silver-shadows-focus',\n focusError: '--silver-shadows-focus-error',\n focusSuccess: '--silver-shadows-focus-success',\n focusWarning: '--silver-shadows-focus-warning',\n};\n\nconst sizeTokenVariables: Record<keyof ThemeSizeTokens, ThemeCssVariableName> =\n {\n componentLg: '--silver-sizes-component-lg',\n componentMd: '--silver-sizes-component-md',\n componentSm: '--silver-sizes-component-sm',\n iconLg: '--silver-sizes-icon-lg',\n iconMd: '--silver-sizes-icon-md',\n iconSm: '--silver-sizes-icon-sm',\n };\n\nconst spacingTokenVariables: Record<\n keyof ThemeSpacingTokens,\n ThemeCssVariableName\n> = {\n componentLg: '--silver-spacing-component-lg',\n componentMd: '--silver-spacing-component-md',\n componentSm: '--silver-spacing-component-sm',\n focusOffset: '--silver-spacing-focus-offset',\n focusOffsetLoose: '--silver-spacing-focus-offset-loose',\n focusOffsetTight: '--silver-spacing-focus-offset-tight',\n};\n\nconst paletteReferencePattern =\n /^(blue|cyan|gray|green|orange|pink|purple|red|teal|yellow)[.-](50|100|200|300|400|500|600|700|800|900)$/;\n\nfunction resolveThemeColorValue(value: ThemeColorValue): string {\n const match = paletteReferencePattern.exec(value);\n\n if (match == null) {\n return value;\n }\n\n const [, paletteName, paletteStep] = match;\n return `var(--silver-colors-${paletteName}-${paletteStep})`;\n}\n\nfunction assignTokenVariables<TTokenName extends string>(\n style: ThemeCssVariables,\n tokens: Partial<Record<TTokenName, string>> | undefined,\n variables: Record<TTokenName, ThemeCssVariableName>,\n resolveValue: (value: string) => string = value => value,\n): void {\n if (tokens == null) {\n return;\n }\n\n for (const tokenName of Object.keys(variables) as TTokenName[]) {\n const value = tokens[tokenName];\n\n if (value != null) {\n style[variables[tokenName]] = resolveValue(value);\n }\n }\n}\n\nfunction createThemeStyle(\n tokens: ThemeTokens | undefined,\n style: CSSProperties | undefined,\n): CSSProperties {\n return {\n ...createThemeVariables(tokens),\n ...style,\n };\n}\n\nfunction createThemeVariables(\n tokens: ThemeTokens | undefined,\n): ThemeCssVariables {\n const themeStyle: ThemeCssVariables = {};\n\n assignTokenVariables(\n themeStyle,\n tokens?.colors,\n colorTokenVariables,\n resolveThemeColorValue,\n );\n assignTokenVariables(themeStyle, tokens?.fontSizes, fontSizeTokenVariables);\n assignTokenVariables(themeStyle, tokens?.fonts, fontTokenVariables);\n assignTokenVariables(themeStyle, tokens?.radii, radiusTokenVariables);\n assignTokenVariables(themeStyle, tokens?.shadows, shadowTokenVariables);\n assignTokenVariables(themeStyle, tokens?.sizes, sizeTokenVariables);\n assignTokenVariables(themeStyle, tokens?.spacing, spacingTokenVariables);\n\n return themeStyle;\n}\n\nfunction sanitizeThemeClassName(id: string): string {\n return `silver-theme-${id.replace(/[^a-zA-Z0-9_-]/g, '')}`;\n}\n\nfunction serializeThemeVariables(variables: ThemeCssVariables): string {\n return Object.entries(variables)\n .map(\n ([name, value]) =>\n `${name}: ${String(value).replace(/<\\/style/gi, '<\\\\/style')};`,\n )\n .join('');\n}\n\nfunction createThemeCss(\n className: string,\n tokens: ThemeModeTokens,\n mode: ThemeMode,\n): string | undefined {\n const baseTokens =\n mode === 'dark'\n ? (tokens.dark ?? tokens.light)\n : (tokens.light ?? tokens.dark);\n\n if (baseTokens == null) {\n return undefined;\n }\n\n const selector = `.${className}`;\n const baseCss = `${selector}{${serializeThemeVariables(createThemeVariables(baseTokens))}}`;\n\n if (mode !== 'system' || tokens.dark == null) {\n return baseCss;\n }\n\n const darkVariables = serializeThemeVariables(\n createThemeVariables(tokens.dark),\n );\n const darkSelector = `.${className}[data-theme=\"dark\"],[data-theme=\"dark\"] .${className}`;\n const darkCss = `${darkSelector}{${darkVariables}}`;\n\n return `${baseCss}@media (prefers-color-scheme: dark){${selector}{${darkVariables}}}${darkCss}`;\n}\n\n/**\n * Scoped Silver UI theme provider backed by CSS custom properties.\n */\nexport function Theme({\n as: Element = 'div',\n children,\n className,\n 'data-testid': dataTestId,\n mode = 'system',\n ref,\n style,\n themes,\n tokens,\n ...htmlProps\n}: ThemeProps): React.JSX.Element {\n const themeId = useId();\n const themeClassName =\n themes == null ? undefined : sanitizeThemeClassName(themeId);\n const themeCss =\n themes != null && themeClassName != null\n ? createThemeCss(themeClassName, themes, mode)\n : undefined;\n const themeStyle = createThemeStyle(tokens, style);\n\n return createElement(\n Element,\n {\n ...htmlProps,\n className: cx(themeClassName, className),\n 'data-testid': dataTestId,\n 'data-theme': mode === 'system' ? undefined : mode,\n ref,\n style: themeStyle,\n },\n themeCss == null\n ? children\n : createElement(\n Fragment,\n null,\n createElement(\n 'style',\n dataTestId == null ? null : {'data-testid': `${dataTestId}-styles`},\n themeCss,\n ),\n children,\n ),\n );\n}\n\nTheme.displayName = 'Theme';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Tabs/Tabs.recipe.ts","../src/components/Tabs/TabsContext.ts","../src/components/Tabs/Tab.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Tabs/TabMenu.recipe.ts","../src/components/Tabs/TabMenu.tsx"],"names":["sva","createContext","use","cx","jsxs","Fragment","jsx","Icon","isReactNode","ActionElement","useMemo","useState","useRef","Popover","Check","mergeRefs","ChevronDown"],"mappings":"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","file":"chunk-DVCDAKPK.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const tabsRecipe = sva({\n slots: [\n 'root',\n 'tab',\n 'icon',\n 'label',\n 'labelText',\n 'labelSizer',\n 'endContent',\n ],\n base: {\n root: {\n display: 'flex',\n alignItems: 'stretch',\n maxW: 'full',\n minW: 0,\n },\n tab: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '1',\n mb: '-1px',\n px: '3',\n borderWidth: 0,\n borderBottomWidth: 'emphasized',\n borderBottomStyle: 'solid',\n borderBottomColor: 'transparent',\n bg: 'transparent',\n color: 'fg.muted',\n cursor: 'pointer',\n fontFamily: 'body',\n fontSize: 'md',\n fontWeight: 'normal',\n lineHeight: 'normal',\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n transitionProperty: 'color, background-color, border-color',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n _hover: {\n bg: 'bg.subtle',\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n icon: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n },\n label: {\n display: 'inline-grid',\n },\n labelText: {\n gridRowStart: 1,\n gridColumnStart: 1,\n },\n labelSizer: {\n gridRowStart: 1,\n gridColumnStart: 1,\n visibility: 'hidden',\n pointerEvents: 'none',\n fontWeight: 'semibold',\n },\n endContent: {\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n },\n },\n variants: {\n size: {\n sm: {tab: {h: 'component.sm'}},\n md: {tab: {h: 'component.md'}},\n lg: {tab: {h: 'component.lg'}},\n },\n layout: {\n hug: {},\n fill: {\n root: {w: 'full'},\n tab: {flex: 1},\n },\n },\n isSelected: {\n true: {\n tab: {\n borderBottomColor: 'fg',\n color: 'fg',\n fontWeight: 'semibold',\n },\n },\n false: {},\n },\n isDisabled: {\n true: {\n tab: {\n color: 'fg.disabled',\n cursor: 'not-allowed',\n _hover: {\n bg: 'transparent',\n },\n },\n },\n false: {},\n },\n hasDivider: {\n true: {\n root: {\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n size: 'md',\n layout: 'hug',\n isSelected: false,\n isDisabled: false,\n hasDivider: false,\n },\n});\n\nexport type TabsVariants = RecipeVariantProps<typeof tabsRecipe>;\n","import {createContext, use} from 'react';\n\nexport type TabsSize = 'lg' | 'md' | 'sm';\nexport type TabsLayout = 'fill' | 'hug';\n\nexport interface TabsContextValue {\n layout: TabsLayout;\n onChange: (value: string) => void;\n size: TabsSize;\n value: string;\n}\n\nexport const TabsContext = createContext<TabsContextValue | null>(null);\n\nTabsContext.displayName = 'TabsContext';\n\nexport function useTabsContext(): TabsContextValue {\n const context = use(TabsContext);\n if (context == null) {\n throw new Error('Tabs children must be used within a Tabs.');\n }\n return context;\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport type {LinkComponent} from 'components/Link';\nimport {tabsRecipe} from 'components/Tabs/Tabs.recipe';\nimport {useTabsContext} from 'components/Tabs/TabsContext';\nimport {ActionElement} from 'internal/ActionElement';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface TabProps {\n /**\n * Custom link component used when href is set.\n */\n as?: LinkComponent;\n /**\n * Additional CSS class names applied to the tab.\n */\n className?: string;\n /**\n * ID of the tabpanel controlled by this tab. Use this for in-page tabs, and\n * render the corresponding panel with `id={controls}`, `role=\"tabpanel\"`,\n * and `aria-labelledby` pointing to this tab's `id`.\n */\n controls?: string;\n /**\n * Test ID applied to the tab.\n */\n 'data-testid'?: string;\n /**\n * Content rendered after the label.\n */\n endContent?: ReactNode;\n /**\n * Optional link URL. When set, the tab renders as a link.\n */\n href?: string;\n /**\n * Icon shown before the label.\n */\n icon?: IconComponent;\n /**\n * ID applied to the tab element. Provide this with `controls` when rendering\n * your own tabpanel so the panel can reference the tab with\n * `aria-labelledby`.\n */\n id?: string;\n /**\n * Whether the tab is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Visible tab label.\n */\n label: string;\n /**\n * Ref forwarded to the tab root.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Icon shown when selected. Falls back to icon.\n */\n selectedIcon?: IconComponent;\n /**\n * Inline styles applied to the tab.\n */\n style?: CSSProperties;\n /**\n * Unique tab value.\n */\n value: string;\n}\n\n/**\n * A single tab inside `Tabs`.\n */\nexport function Tab({\n as,\n className,\n 'data-testid': dataTestId,\n controls,\n endContent,\n href,\n id,\n icon,\n isDisabled = false,\n label,\n ref,\n selectedIcon,\n style,\n value,\n}: TabProps): React.JSX.Element {\n const context = useTabsContext();\n const isSelected = context.value === value;\n const displayIcon = isSelected && selectedIcon != null ? selectedIcon : icon;\n const classes = tabsRecipe({\n size: context.size,\n layout: context.layout,\n isSelected,\n isDisabled,\n });\n const rootClassName = cx(classes.tab, className);\n const content = (\n <>\n {displayIcon != null ? (\n <span className={classes.icon}>\n <Icon icon={displayIcon} size={context.size} />\n </span>\n ) : null}\n <span className={classes.label}>\n <span className={classes.labelText}>{label}</span>\n <span aria-hidden=\"true\" className={classes.labelSizer}>\n {label}\n </span>\n </span>\n {isReactNode(endContent) ? (\n <span className={classes.endContent}>{endContent}</span>\n ) : null}\n </>\n );\n\n return (\n <ActionElement\n aria-controls={controls}\n aria-disabled={href != null && isDisabled ? true : undefined}\n aria-selected={isSelected}\n as={as}\n className={rootClassName}\n data-tab-disabled={isDisabled ? 'true' : undefined}\n data-tab-value={isDisabled ? undefined : value}\n data-testid={dataTestId}\n href={href}\n id={id}\n isDisabled={href == null ? isDisabled : undefined}\n isLink={href != null}\n onClick={event => {\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n\n context.onChange(value);\n }}\n ref={ref}\n role=\"tab\"\n style={style}\n tabIndex={isSelected && !isDisabled ? 0 : -1}\n type=\"button\">\n {content}\n </ActionElement>\n );\n}\n\nTab.displayName = 'Tab';\n","import {\n useMemo,\n type CSSProperties,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {tabsRecipe} from 'components/Tabs/Tabs.recipe';\nimport {\n TabsContext,\n type TabsLayout,\n type TabsSize,\n} from 'components/Tabs/TabsContext';\nimport {cx} from 'internal/cx';\n\nexport interface TabsProps {\n /**\n * Tab and TabMenu children.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the tablist element.\n */\n className?: string;\n /**\n * Test ID applied to the tablist element.\n */\n 'data-testid'?: string;\n /**\n * Whether to show a bottom divider.\n * @default false\n */\n hasDivider?: boolean;\n /**\n * Accessible label for the tabs.\n * @default 'Tabs'\n */\n label?: string;\n /**\n * Tab layout mode.\n * @default 'hug'\n */\n layout?: TabsLayout;\n /**\n * Called when a tab is selected.\n */\n onChange: (value: string) => void;\n /**\n * Ref forwarded to the tablist element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Tab size.\n * @default 'md'\n */\n size?: TabsSize;\n /**\n * Inline styles applied to the tablist element.\n */\n style?: CSSProperties;\n /**\n * Current selected tab value.\n */\n value: string;\n}\n\n/**\n * Controlled tab wrapper.\n *\n * Uses `tablist` / `tabpanel` semantics, so reach for it when selecting an\n * option shows or hides associated content panels. To pick a value without\n * swapping panels — a styled radio group for filters, settings, or view modes —\n * use {@link SegmentedControl} instead.\n */\nexport function Tabs({\n children,\n className,\n 'data-testid': dataTestId,\n hasDivider = false,\n label = 'Tabs',\n layout = 'hug',\n onChange,\n ref,\n size = 'md',\n style,\n value,\n}: TabsProps): React.JSX.Element {\n const contextValue = useMemo(\n () => ({layout, onChange, size, value}),\n [layout, onChange, size, value],\n );\n const classes = tabsRecipe({hasDivider, layout});\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (\n event.key !== 'ArrowLeft' &&\n event.key !== 'ArrowRight' &&\n event.key !== 'Home' &&\n event.key !== 'End'\n ) {\n return;\n }\n\n const activeTab = (event.target as HTMLElement).closest<HTMLElement>(\n '[role=\"tab\"]',\n );\n if (activeTab == null || !event.currentTarget.contains(activeTab)) {\n return;\n }\n\n const tabs = Array.from(\n event.currentTarget.querySelectorAll<HTMLElement>(\n '[role=\"tab\"]:not([data-tab-disabled=\"true\"])',\n ),\n );\n const currentIndex = tabs.indexOf(activeTab);\n if (currentIndex === -1) {\n return;\n }\n\n event.preventDefault();\n\n const nextIndex =\n event.key === 'Home'\n ? 0\n : event.key === 'End'\n ? tabs.length - 1\n : event.key === 'ArrowRight'\n ? (currentIndex + 1) % tabs.length\n : (currentIndex - 1 + tabs.length) % tabs.length;\n const nextTab = tabs[nextIndex];\n nextTab.focus();\n\n const nextValue = nextTab.dataset.tabValue;\n if (nextValue != null) {\n onChange(nextValue);\n }\n };\n\n return (\n <TabsContext value={contextValue}>\n <div\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onKeyDown={handleKeyDown}\n ref={ref as Ref<HTMLDivElement>}\n role=\"tablist\"\n style={style}\n tabIndex={-1}>\n {children}\n </div>\n </TabsContext>\n );\n}\n\nTabs.displayName = 'Tabs';\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const tabMenuRecipe = sva({\n slots: ['chevron', 'menu', 'item', 'itemContent', 'itemIcon', 'check'],\n base: {\n chevron: {\n display: 'inline-flex',\n },\n menu: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n minW: '40',\n p: '1',\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '2',\n w: 'full',\n px: '2',\n py: '2',\n borderWidth: 0,\n borderRadius: 'md',\n bg: 'transparent',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'body',\n textAlign: 'start',\n _hover: {bg: 'bg.subtle'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffsetTight',\n },\n },\n itemContent: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '2',\n minW: 0,\n },\n itemIcon: {\n display: 'inline-flex',\n color: 'fg.muted',\n },\n check: {\n display: 'inline-flex',\n color: 'primary',\n },\n },\n variants: {\n isOpen: {\n true: {chevron: {transform: 'rotate(180deg)'}},\n false: {},\n },\n isItemSelected: {\n true: {item: {fontWeight: 'medium'}},\n false: {},\n },\n },\n defaultVariants: {\n isOpen: false,\n isItemSelected: false,\n },\n});\n\nexport type TabMenuVariants = RecipeVariantProps<typeof tabMenuRecipe>;\n","import {Check, ChevronDown} from 'lucide-react';\nimport {\n useRef,\n useState,\n type CSSProperties,\n type KeyboardEvent,\n type Ref,\n} from 'react';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Popover} from 'components/Popover';\nimport {tabMenuRecipe} from 'components/Tabs/TabMenu.recipe';\nimport {tabsRecipe} from 'components/Tabs/Tabs.recipe';\nimport {useTabsContext} from 'components/Tabs/TabsContext';\nimport {cx} from 'internal/cx';\nimport {mergeRefs} from 'internal/mergeRefs';\n\nexport interface TabMenuOption {\n /**\n * Icon rendered before the option label.\n */\n icon?: IconComponent;\n /**\n * Visible option label.\n */\n label: string;\n /**\n * Tab value selected by this option.\n */\n value: string;\n}\n\nexport interface TabMenuProps {\n /**\n * Additional CSS class names applied to the trigger.\n */\n className?: string;\n /**\n * Test ID applied to the trigger.\n */\n 'data-testid'?: string;\n /**\n * ID applied to the menu trigger tab.\n */\n id?: string;\n /**\n * Whether the menu trigger is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Trigger and menu heading label.\n */\n label: string;\n /**\n * Menu options.\n */\n options: ReadonlyArray<TabMenuOption>;\n /**\n * Ref forwarded to the trigger button.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Inline styles applied to the trigger.\n */\n style?: CSSProperties;\n}\n\n/**\n * Overflow menu for additional tabs.\n */\nexport function TabMenu({\n className,\n 'data-testid': dataTestId,\n id,\n isDisabled = false,\n label,\n options,\n ref,\n style,\n}: TabMenuProps): React.JSX.Element {\n const context = useTabsContext();\n const [isOpen, setIsOpen] = useState(false);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const selectedOption = options.find(option => option.value === context.value);\n const triggerLabel = selectedOption?.label ?? label;\n const hasSelectedOption = selectedOption != null;\n const triggerClasses = tabsRecipe({\n size: context.size,\n layout: context.layout,\n isSelected: hasSelectedOption,\n isDisabled,\n });\n const classes = tabMenuRecipe({isOpen});\n\n const focusMenuItem = (\n event: KeyboardEvent<HTMLElement>,\n nextIndex: number,\n ) => {\n const menu = event.currentTarget.closest<HTMLElement>('[role=\"menu\"]');\n const items = Array.from(\n menu?.querySelectorAll<HTMLButtonElement>('[role=\"menuitem\"]') ?? [],\n );\n items[nextIndex]?.focus();\n };\n\n const handleMenuKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n const menu = event.currentTarget.closest<HTMLElement>('[role=\"menu\"]');\n const items = Array.from(\n menu?.querySelectorAll<HTMLButtonElement>('[role=\"menuitem\"]') ?? [],\n );\n const activeIndex = items.indexOf(\n document.activeElement as HTMLButtonElement,\n );\n\n if (event.key === 'Escape') {\n event.preventDefault();\n setIsOpen(false);\n triggerRef.current?.focus();\n return;\n }\n\n if (items.length === 0) {\n return;\n }\n\n if (event.key === 'Home') {\n event.preventDefault();\n focusMenuItem(event, 0);\n return;\n }\n\n if (event.key === 'End') {\n event.preventDefault();\n focusMenuItem(event, items.length - 1);\n return;\n }\n\n if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') {\n return;\n }\n\n event.preventDefault();\n\n const currentIndex = activeIndex === -1 ? 0 : activeIndex;\n const nextIndex =\n event.key === 'ArrowDown'\n ? (currentIndex + 1) % items.length\n : (currentIndex - 1 + items.length) % items.length;\n focusMenuItem(event, nextIndex);\n };\n\n return (\n <Popover\n content={\n <div className={classes.menu}>\n {options.map(option => {\n const isSelected = option.value === context.value;\n return (\n <button\n aria-current={isSelected ? 'true' : undefined}\n className={tabMenuRecipe({isItemSelected: isSelected}).item}\n key={option.value}\n onClick={() => {\n context.onChange(option.value);\n setIsOpen(false);\n }}\n onKeyDown={handleMenuKeyDown}\n role=\"menuitem\"\n type=\"button\">\n <span className={classes.itemContent}>\n {option.icon != null ? (\n <span className={classes.itemIcon}>\n <Icon color=\"secondary\" icon={option.icon} size=\"sm\" />\n </span>\n ) : null}\n {option.label}\n </span>\n {isSelected ? (\n <span className={classes.check}>\n <Icon color=\"accent\" icon={Check} size=\"sm\" />\n </span>\n ) : null}\n </button>\n );\n })}\n </div>\n }\n hasAutoFocus\n hasCloseButton={false}\n isEnabled={!isDisabled}\n isOpen={isOpen}\n label={label}\n onOpenChange={setIsOpen}\n role=\"menu\">\n <button\n aria-disabled={isDisabled || undefined}\n aria-selected={hasSelectedOption}\n className={cx(triggerClasses.tab, className)}\n data-tab-disabled={isDisabled ? 'true' : undefined}\n data-tab-value={\n hasSelectedOption && !isDisabled ? context.value : undefined\n }\n data-testid={dataTestId}\n disabled={isDisabled}\n id={id}\n onKeyDown={event => {\n if (event.key !== 'ArrowDown') {\n return;\n }\n\n event.preventDefault();\n setIsOpen(true);\n }}\n ref={mergeRefs(triggerRef, ref)}\n role=\"tab\"\n style={style}\n tabIndex={hasSelectedOption && !isDisabled ? 0 : -1}\n type=\"button\">\n {triggerLabel}\n <span className={classes.chevron}>\n <Icon icon={ChevronDown} size=\"sm\" />\n </span>\n </button>\n </Popover>\n );\n}\n\nTabMenu.displayName = 'TabMenu';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Button/Button.tsx"],"names":[],"mappings":"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","file":"chunk-EBV3EX3J.js","sourcesContent":["import type {\n CSSProperties,\n JSX,\n KeyboardEvent,\n MouseEvent,\n MouseEventHandler,\n ReactNode,\n Ref,\n} from 'react';\nimport {buttonRecipe} from 'components/Button/Button.recipe';\nimport type {ButtonSize, ButtonVariant} from 'components/Button/Button.types';\nimport {useButtonGroup} from 'components/ButtonGroup/ButtonGroupContext';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport type {LinkComponent} from 'components/Link';\nimport {Spinner} from 'components/Spinner';\nimport {Tooltip} from 'components/Tooltip';\nimport {VisuallyHidden} from 'internal';\nimport {ActionElement} from 'internal/ActionElement';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {getAriaLabel, useRel} from 'internal/linkAccessibility';\n\nexport type {ButtonSize} from 'components/Button/Button.types';\n\n/**\n * A versatile action element that renders as a `<button>` or a link depending\n * on whether `href` is provided. Supports explicit loading states, icon-only\n * modes, link buttons, and tooltips.\n */\ninterface ButtonBaseProps {\n /**\n * Identifies the element(s) whose contents are controlled by the button.\n */\n 'aria-controls'?: string;\n /**\n * Indicates the current item in a set.\n */\n 'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time';\n /**\n * Identifies the element(s) that describe the button.\n */\n 'aria-describedby'?: string;\n /**\n * Identifies the element that provides a detailed description.\n */\n 'aria-details'?: string;\n /**\n * Indicates whether a controlled element is expanded or collapsed.\n */\n 'aria-expanded'?: boolean;\n /**\n * Indicates the button opens an interactive popup element.\n */\n 'aria-haspopup'?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';\n /**\n * Indicates whether the element is exposed to the accessibility API.\n */\n 'aria-hidden'?: boolean;\n /**\n * Keyboard shortcuts that activate or focus the button.\n */\n 'aria-keyshortcuts'?: string;\n /**\n * Accessible label that overrides the visible `label` for assistive\n * technologies. Use when the visible text is too terse (e.g. a page\n * number) and a longer description is needed.\n */\n 'aria-label'?: string;\n /**\n * Identifies the element(s) that label the button.\n */\n 'aria-labelledby'?: string;\n /**\n * Identifies element(s) owned by the button that are not DOM children.\n */\n 'aria-owns'?: string;\n /**\n * Indicates the current pressed state of a toggle button.\n */\n 'aria-pressed'?: boolean | 'mixed';\n /**\n * Human-readable description of the role of the button.\n */\n 'aria-roledescription'?: string;\n /**\n * Custom link component to render when `href` is set. Falls back to the\n * component provided by `LinkProvider`, or a plain `<a>` tag.\n */\n as?: LinkComponent;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Content rendered after the label, such as a badge or count. Hidden in\n * icon-only mode.\n */\n endContent?: ReactNode;\n /**\n * HTML `form` attribute associating the button with a `<form>` by ID.\n */\n form?: string;\n /**\n * URL to navigate to. When set and the button is not isDisabled, the component\n * renders as a link element.\n */\n href?: string;\n /**\n * Whether the button is disabled. Prevents interaction and applies disabled\n * styling.\n */\n isDisabled?: boolean;\n /**\n * Whether the button is in a loading state. Shows a spinner overlay,\n * disables interaction, and announces \"Loading\" to assistive technologies.\n */\n isLoading?: boolean;\n /**\n * Text label for the button. Always required for accessibility even when\n * `isIconOnly` is true.\n */\n label: string;\n /**\n * HTML `name` attribute for form submission.\n */\n name?: string;\n /**\n * Click event handler.\n */\n onClick?: MouseEventHandler<HTMLElement>;\n /**\n * Keyboard event handler for the root element.\n */\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Link `rel` attribute (e.g., `\"noopener\"`). Only applies when rendering\n * as a link.\n */\n rel?: string;\n /**\n * Visual size of the button.\n */\n size?: ButtonSize;\n /**\n * Arbitrary content rendered before the label (after the icon, if present).\n * Hidden in icon-only mode.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Link `target` attribute (e.g., `\"_blank\"`). Only applies when rendering\n * as a link.\n */\n target?: string;\n /**\n * Tooltip text shown on hover. Defaults to `label` when `isIconOnly` is true\n * (since the label is otherwise not visible); pass an explicit value to\n * override, or `undefined` to keep the default. When set on a disabled\n * button, `aria-disabled` is used instead of the `disabled` attribute so the\n * tooltip remains accessible.\n */\n tooltip?: string;\n /**\n * HTML button `type` attribute.\n */\n type?: 'button' | 'submit' | 'reset';\n /**\n * HTML `value` attribute for form submission.\n */\n value?: string;\n /**\n * Visual style variant.\n */\n variant?: ButtonVariant;\n}\n\nexport type ButtonProps =\n | (ButtonBaseProps & {\n /**\n * Icon element rendered before the label. Required in icon-only mode.\n */\n icon: IconComponent;\n /**\n * Visually hides the label, showing only the icon. The `label` prop is\n * still required and used as `aria-label`.\n */\n isIconOnly: true;\n })\n | (ButtonBaseProps & {\n /**\n * Icon element rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Visually hides the label, showing only the icon. The `label` prop is\n * still required and used as `aria-label`.\n */\n isIconOnly?: false;\n });\n\nexport function Button({\n label,\n 'aria-controls': ariaControls,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabelProp,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-expanded': ariaExpanded,\n 'aria-haspopup': ariaHaspopup,\n 'aria-hidden': ariaHidden,\n 'aria-keyshortcuts': ariaKeyshortcuts,\n 'aria-labelledby': ariaLabelledby,\n 'aria-owns': ariaOwns,\n 'aria-pressed': ariaPressed,\n 'aria-roledescription': ariaRoledescription,\n href,\n as,\n target,\n rel,\n variant,\n size: sizeProp,\n className,\n 'data-testid': dataTestId,\n style,\n type = 'button',\n ref,\n isDisabled = false,\n isLoading = false,\n icon,\n isIconOnly = false,\n endContent,\n startContent,\n tooltip,\n onClick,\n onKeyDown,\n form,\n name,\n value,\n}: ButtonProps): JSX.Element {\n const buttonGroup = useButtonGroup();\n const size = sizeProp ?? buttonGroup?.size ?? 'md';\n const buttonDisabled =\n isDisabled || buttonGroup?.isDisabled === true || isLoading;\n // Icon-only buttons have no visible text, so default their tooltip to the\n // accessible `label` unless an explicit tooltip is provided.\n const effectiveTooltip = tooltip ?? (isIconOnly ? label : undefined);\n // Only an explicit tooltip swaps native `disabled` for `aria-disabled` (to\n // keep the tooltip hoverable while disabled); the icon-only default must not\n // change disabled semantics.\n const useAriaDisabled = tooltip != null && buttonDisabled;\n const renderAsLink = href != null && !buttonDisabled;\n const opensInNewTab = renderAsLink && target === '_blank';\n const ariaLabel =\n ariaLabelProp ??\n getAriaLabel(\n isIconOnly ||\n isLoading ||\n isReactNode(startContent) ||\n isReactNode(endContent) ||\n opensInNewTab\n ? label\n : undefined,\n opensInNewTab,\n );\n const linkRel = useRel({target, rel});\n const spinnerVariant =\n variant === 'primary' || variant === 'destructive' || variant === 'onSolid'\n ? 'onMedia'\n : 'default';\n\n const classes = buttonRecipe({variant, size, iconOnly: isIconOnly});\n\n const ariaAttrs = {\n 'aria-controls': ariaControls,\n 'aria-current': ariaCurrent,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-expanded': ariaExpanded,\n 'aria-haspopup': ariaHaspopup,\n 'aria-hidden': ariaHidden,\n 'aria-keyshortcuts': ariaKeyshortcuts,\n 'aria-labelledby': ariaLabelledby,\n 'aria-owns': ariaOwns,\n 'aria-pressed': ariaPressed,\n 'aria-roledescription': ariaRoledescription,\n };\n\n const handleButtonClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (buttonDisabled) {\n event.preventDefault();\n return;\n }\n\n onClick?.(event);\n };\n\n const handleLinkClick = (event: MouseEvent<HTMLAnchorElement>) => {\n onClick?.(event);\n };\n\n const handleButtonKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (useAriaDisabled && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n return;\n }\n\n onKeyDown?.(event);\n };\n\n const handleLinkKeyDown = (event: KeyboardEvent<HTMLAnchorElement>) => {\n onKeyDown?.(event);\n };\n\n const buttonContent = (\n <>\n <span aria-hidden={isLoading || undefined} className={classes.content}>\n {icon != null ? (\n <span aria-hidden=\"true\" className={classes.icon}>\n {isIconOnly && isLoading ? (\n <Spinner size={size} variant={spinnerVariant} />\n ) : (\n <Icon icon={icon} size={size} />\n )}\n </span>\n ) : null}\n {!isIconOnly && isReactNode(startContent) ? (\n <span className={classes.startContent}>{startContent}</span>\n ) : null}\n {!isIconOnly ? <span className={classes.label}>{label}</span> : null}\n {!isIconOnly && isReactNode(endContent) ? (\n <span className={classes.endContent}>{endContent}</span>\n ) : null}\n {!isIconOnly && isLoading ? (\n <span aria-hidden=\"true\" className={classes.loadingIndicator}>\n <Spinner size={size} variant={spinnerVariant} />\n </span>\n ) : null}\n </span>\n <VisuallyHidden aria-live=\"polite\" role=\"status\">\n {isLoading ? 'Loading' : ''}\n </VisuallyHidden>\n </>\n );\n\n const rootClassName = cx(classes.root, className);\n\n const element = (\n <ActionElement\n {...ariaAttrs}\n aria-busy={!renderAsLink && isLoading ? true : undefined}\n aria-disabled={!renderAsLink && useAriaDisabled ? true : undefined}\n aria-label={ariaLabel}\n as={as}\n className={rootClassName}\n data-testid={dataTestId}\n form={form}\n href={renderAsLink ? href : undefined}\n isDisabled={\n !renderAsLink && !useAriaDisabled ? buttonDisabled : undefined\n }\n isLink={renderAsLink}\n name={name}\n onClick={renderAsLink ? handleLinkClick : handleButtonClick}\n onKeyDown={renderAsLink ? handleLinkKeyDown : handleButtonKeyDown}\n ref={ref}\n rel={renderAsLink ? linkRel : undefined}\n style={style}\n target={renderAsLink ? target : undefined}\n type={type}\n value={value}>\n {buttonContent}\n </ActionElement>\n );\n\n if (effectiveTooltip != null) {\n return <Tooltip content={effectiveTooltip}>{element}</Tooltip>;\n }\n\n return element;\n}\n\nButton.displayName = 'Button';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/CheckboxGroup/CheckboxGroup.recipe.ts","../src/components/CheckboxGroup/CheckboxGroupContext.tsx","../src/components/CheckboxGroup/CheckboxGroup.tsx","../src/components/CheckboxGroup/CheckboxGroupItem.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-ESWYWWY2.js","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const checkboxGroupRecipe = cva({\n base: {\n display: 'flex',\n },\n variants: {\n orientation: {\n vertical: {\n flexDirection: 'column',\n gap: '0.5',\n },\n horizontal: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n columnGap: '4',\n rowGap: '0',\n },\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport type CheckboxGroupVariants = RecipeVariantProps<\n typeof checkboxGroupRecipe\n>;\n","import {createContext} from 'react';\nimport type {CheckboxInputSize} from 'components/CheckboxInput';\n\nexport type CheckboxGroupOrientation = 'horizontal' | 'vertical';\nexport type CheckboxGroupSize = CheckboxInputSize;\n\nexport interface CheckboxGroupContextValue {\n htmlName?: string;\n isDisabled: boolean;\n onChange: (value: string, isChecked: boolean) => void;\n orientation: CheckboxGroupOrientation;\n selectedValues: Set<string>;\n size: CheckboxGroupSize;\n}\n\nexport const CheckboxGroupContext =\n createContext<CheckboxGroupContextValue | null>(null);\n\nCheckboxGroupContext.displayName = 'CheckboxGroupContext';\n","import {\n useCallback,\n useId,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {checkboxGroupRecipe} from 'components/CheckboxGroup/CheckboxGroup.recipe';\nimport {\n CheckboxGroupContext,\n type CheckboxGroupOrientation,\n type CheckboxGroupSize,\n} from 'components/CheckboxGroup/CheckboxGroupContext';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputStatus,\n} from 'components/Field';\nimport {getDescribedBy, getStatusMessageID} from 'components/Field/inputUtils';\nimport isReactNode from 'internal/isReactNode';\n\nexport type {CheckboxGroupOrientation} from 'components/CheckboxGroup/CheckboxGroupContext';\n\nexport type CheckboxGroupProps = {\n /**\n * Checkbox items to render.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the field root.\n */\n className?: string;\n /**\n * Test ID applied to the field root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * HTML name attribute shared by checkbox inputs for native form submission.\n */\n htmlName?: string;\n /**\n * Whether all checkbox items are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Label text for the checkbox group.\n */\n label: string;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Callback fired when the selected values change.\n * Memoize with `useCallback` to avoid unnecessary re-renders of checkbox items.\n */\n onChange: (value: string[]) => void;\n /**\n * Layout direction of the checkbox items.\n * @default 'vertical'\n */\n orientation?: CheckboxGroupOrientation;\n /**\n * Ref forwarded to the field root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the checkbox controls.\n * @default 'md'\n */\n size?: CheckboxGroupSize;\n /**\n * Validation status displayed below the group.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the field root.\n */\n style?: CSSProperties;\n /**\n * The currently selected values.\n */\n value: string[];\n} & FieldNecessity;\n\n/**\n * A controlled checkbox group for multi-value selection.\n */\nexport function CheckboxGroup({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n htmlName,\n isDisabled = false,\n isLabelHidden = false,\n isOptional,\n isRequired,\n label,\n labelTooltip,\n onChange,\n orientation = 'vertical',\n ref,\n size = 'md',\n status,\n style,\n value,\n}: CheckboxGroupProps): React.JSX.Element {\n const inputId = useId();\n const labelId = `${inputId}-label`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const handleItemChange = useCallback(\n (itemValue: string, isChecked: boolean) => {\n if (isChecked) {\n onChange(value.includes(itemValue) ? value : [...value, itemValue]);\n return;\n }\n\n onChange(value.filter(currentValue => currentValue !== itemValue));\n },\n [onChange, value],\n );\n const selectedValues = useMemo(() => new Set(value), [value]);\n const contextValue = useMemo(\n () => ({\n htmlName,\n isDisabled,\n onChange: handleItemChange,\n orientation,\n selectedValues,\n size,\n }),\n [handleItemChange, htmlName, isDisabled, orientation, selectedValues, size],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n data-testid={dataTestId}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n description={description}\n descriptionID={descriptionID}\n label={label}\n labelAs=\"span\"\n labelId={labelId}\n labelTooltip={labelTooltip}\n ref={ref}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n statusVariant=\"detached\"\n style={style}>\n <div\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-labelledby={labelId}\n className={checkboxGroupRecipe({orientation})}\n id={inputId}\n role=\"group\">\n <CheckboxGroupContext value={contextValue}>\n {children}\n </CheckboxGroupContext>\n </div>\n </Field>\n );\n}\n\nCheckboxGroup.displayName = 'CheckboxGroup';\n","import {use, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {CheckboxGroupContext} from 'components/CheckboxGroup/CheckboxGroupContext';\nimport {CheckboxInput, type CheckboxInputProps} from 'components/CheckboxInput';\n\nexport interface CheckboxGroupItemProps {\n /**\n * Additional CSS class names applied to the item root.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the item label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the label and description.\n */\n endContent?: ReactNode;\n /**\n * Where to place `endContent` within the item.\n * @default 'inline'\n */\n endContentPosition?: CheckboxInputProps['endContentPosition'];\n /**\n * Whether this checkbox item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Label text for the checkbox item.\n */\n label: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Content rendered after the checkbox control and before the label.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the item root.\n */\n style?: CSSProperties;\n /**\n * Value represented by this checkbox item.\n */\n value: string;\n}\n\n/**\n * An individual checkbox option within a `CheckboxGroup`.\n */\nexport function CheckboxGroupItem({\n className,\n 'data-testid': dataTestId,\n description,\n endContent,\n endContentPosition = 'inline',\n isDisabled: isItemDisabled = false,\n label,\n ref,\n startContent,\n style,\n value,\n}: CheckboxGroupItemProps): React.JSX.Element {\n const context = use(CheckboxGroupContext);\n if (context == null) {\n throw new Error('CheckboxGroupItem must be used within a CheckboxGroup');\n }\n\n const isDisabled = context.isDisabled || isItemDisabled;\n const isChecked = context.selectedValues.has(value);\n\n return (\n <CheckboxInput\n className={className}\n data-testid={dataTestId}\n description={description}\n endContent={endContent}\n endContentPosition={endContentPosition}\n htmlName={context.htmlName}\n htmlValue={value}\n isDisabled={isDisabled}\n label={label}\n onChange={checked => context.onChange(value, checked)}\n ref={ref}\n size={context.size}\n startContent={startContent}\n style={style}\n value={isChecked}\n width={context.orientation === 'horizontal' ? 'auto' : 'full'}\n />\n );\n}\n\nCheckboxGroupItem.displayName = 'CheckboxGroupItem';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Dialog/Dialog.recipe.ts","../src/components/Dialog/Dialog.tsx","../src/components/Dialog/useDialog.tsx"],"names":["sva","useRef","useId","resolveDismissBehavior","useBackdropDismiss","useMemo","useEffect","useScrollLock","jsx","cx","mergeRefs","DialogContext","useState","useCallback"],"mappings":"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","file":"chunk-EZFQCREN.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const dialogRecipe = sva({\n slots: ['root', 'inner'],\n base: {\n root: {\n position: 'fixed',\n m: 'auto',\n p: 0,\n borderWidth: 0,\n bg: 'bg',\n color: 'fg',\n borderRadius: 'md',\n boxShadow: 'xl',\n flexDirection: 'column',\n overscrollBehavior: 'contain',\n _backdrop: {\n bg: 'overlay.scrim',\n backdropFilter: 'blur(2px)',\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n inner: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 1 auto',\n minH: 0,\n overflow: 'hidden',\n borderRadius: 'inherit',\n },\n },\n variants: {\n // When closed, the native <dialog> UA style (display: none) applies; opening\n // switches on the flex column layout.\n isOpen: {\n true: {root: {display: 'flex'}},\n false: {},\n },\n variant: {\n standard: {},\n fullscreen: {\n root: {\n w: '100dvw',\n h: '100dvh',\n maxW: '100dvw',\n maxH: '100dvh',\n borderRadius: 0,\n m: 0,\n inset: 0,\n },\n },\n },\n },\n defaultVariants: {\n isOpen: false,\n variant: 'standard',\n },\n});\n\nexport type DialogVariants = RecipeVariantProps<typeof dialogRecipe>;\n","/* eslint-disable jsx-a11y-x/click-events-have-key-events, jsx-a11y-x/no-noninteractive-element-interactions */\nimport {\n useEffect,\n useId,\n useMemo,\n useRef,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {dialogRecipe} from 'components/Dialog/Dialog.recipe';\nimport {DialogContext} from 'components/Dialog/DialogContext';\nimport {cx} from 'internal/cx';\nimport {\n resolveDismissBehavior,\n type DismissBehavior,\n} from 'internal/dismissBehavior';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {useBackdropDismiss} from 'internal/useBackdropDismiss';\nimport {useScrollLock} from 'internal/useScrollLock';\n\nexport type DialogVariant = 'fullscreen' | 'standard';\nexport type DialogRole = 'alertdialog' | 'dialog';\nexport type DialogDismissBehavior = DismissBehavior;\n\nexport interface DialogPosition {\n bottom?: number | string;\n left?: number | string;\n right?: number | string;\n top?: number | string;\n}\n\nexport interface DialogProps {\n /**\n * Dialog body content.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the dialog.\n */\n className?: string;\n /**\n * Test ID applied to the dialog.\n */\n 'data-testid'?: string;\n /**\n * Controls whether Escape and backdrop clicks request dismissal. Pass a\n * boolean to enable or disable both behaviors together.\n * @default {isEscapeDismissEnabled: true, isBackdropDismissEnabled: true}\n */\n dismissBehavior?: DialogDismissBehavior;\n /**\n * Whether the dialog is open.\n */\n isOpen: boolean;\n /**\n * Accessible label for the dialog. When provided, sets `aria-label`\n * directly. When omitted, the dialog uses `aria-labelledby` to\n * reference the heading rendered by a child `LayoutHeader`.\n *\n * Omit this prop when using a `LayoutHeader` inside the dialog.\n * Set it when the dialog has no visible heading.\n */\n label?: string;\n /**\n * Maximum height of the dialog. Numbers are treated as pixels.\n * @default '75vh'\n */\n maxHeight?: number | string;\n /**\n * Called when the dialog requests an open-state change.\n */\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Fixed positioning offsets for the dialog.\n */\n position?: Readonly<DialogPosition>;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * ARIA role exposed by the dialog.\n * @default 'dialog'\n */\n role?: DialogRole;\n /**\n * Inline styles applied to the dialog.\n */\n style?: CSSProperties;\n /**\n * Display variant.\n * @default 'standard'\n */\n variant?: DialogVariant;\n /**\n * Dialog width. Numbers are treated as pixels.\n * @default 400\n */\n width?: number | string;\n}\n\nfunction formatSize(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\n/**\n * A modal dialog surface with backdrop, focus management,\n * and configurable dismiss behavior.\n */\nexport function Dialog({\n isOpen,\n label,\n onOpenChange,\n width = 400,\n maxHeight = '75vh',\n position,\n variant = 'standard',\n dismissBehavior,\n children,\n className,\n 'data-testid': dataTestId,\n role = 'dialog',\n style,\n ref,\n}: DialogProps): React.JSX.Element {\n const dialogRef = useRef<HTMLDialogElement>(null);\n const titleId = useId();\n const isFullscreen = variant === 'fullscreen';\n const {isBackdropDismissEnabled, isEscapeDismissEnabled} =\n resolveDismissBehavior(dismissBehavior);\n const backdropDismiss = useBackdropDismiss<HTMLDialogElement>({\n isEnabled: isBackdropDismissEnabled,\n onDismiss: () => onOpenChange(false),\n });\n const dialogContextValue = useMemo(\n () => ({onOpenChange, titleId}),\n [onOpenChange, titleId],\n );\n const classes = dialogRecipe({isOpen, variant});\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (dialog == null) {\n return;\n }\n\n if (isOpen) {\n if (!dialog.open) {\n dialog.showModal();\n }\n // Override the dialog's default initial focus when an autofocus target is\n // present. Focus restoration on close is left to the native <dialog>,\n // which restores focus to the element that was focused before\n // showModal() — avoiding races with external focus management.\n const autofocusTarget =\n dialog.querySelector<HTMLElement>('[data-autofocus=\"true\"]') ??\n dialog.querySelector<HTMLElement>('[data-dialog-autofocus=\"true\"]');\n autofocusTarget?.focus();\n } else if (dialog.open) {\n dialog.close();\n }\n }, [isOpen]);\n\n useScrollLock(isOpen);\n\n const positionStyle =\n position != null && !isFullscreen\n ? {\n bottom:\n position.bottom == null ? 'auto' : formatSize(position.bottom),\n left: position.left == null ? 'auto' : formatSize(position.left),\n margin: 0,\n right: position.right == null ? 'auto' : formatSize(position.right),\n top: position.top == null ? 'auto' : formatSize(position.top),\n }\n : undefined;\n\n return (\n <dialog\n aria-label={label}\n aria-labelledby={label == null ? titleId : undefined}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onCancel={event => {\n event.preventDefault();\n if (isEscapeDismissEnabled) {\n onOpenChange(false);\n }\n }}\n onClick={backdropDismiss.onClick}\n onPointerDown={backdropDismiss.onPointerDown}\n ref={mergeRefs(ref, dialogRef)}\n role={role === 'dialog' ? undefined : role}\n style={{\n width: isFullscreen ? undefined : formatSize(width),\n maxHeight: isFullscreen ? undefined : formatSize(maxHeight),\n ...positionStyle,\n ...style,\n }}>\n <DialogContext value={dialogContextValue}>\n <div className={classes.inner}>{children}</div>\n </DialogContext>\n </dialog>\n );\n}\n\nDialog.displayName = 'Dialog';\n","import {useCallback, useMemo, useState, type ReactNode} from 'react';\nimport {Dialog, type DialogProps} from 'components/Dialog/Dialog';\n\nexport type DialogOptions = Partial<\n Omit<DialogProps, 'children' | 'isOpen' | 'onOpenChange'>\n>;\n\nexport interface UseDialogReturn {\n element: ReactNode;\n hide: () => void;\n isOpen: boolean;\n show: (content: ReactNode, options?: DialogOptions) => void;\n}\n\nexport function useDialog(defaultOptions?: DialogOptions): UseDialogReturn {\n const [isOpen, setIsOpen] = useState(false);\n const [content, setContent] = useState<ReactNode>(null);\n // Options passed to the most recent `show()` call. Each call replaces these\n // rather than merging, so per-call options never bleed into later calls.\n // `defaultOptions` remains the baseline, applied beneath them below.\n const [callOptions, setCallOptions] = useState<DialogOptions | undefined>();\n\n const show = useCallback(\n (nextContent: ReactNode, nextOptions?: DialogOptions) => {\n setContent(nextContent);\n setCallOptions(nextOptions);\n setIsOpen(true);\n },\n [],\n );\n\n const hide = useCallback(() => setIsOpen(false), []);\n\n const element = useMemo(\n () => (\n <Dialog\n {...(defaultOptions ?? {})}\n {...(callOptions ?? {})}\n isOpen={isOpen}\n label={callOptions?.label ?? defaultOptions?.label}\n onOpenChange={setIsOpen}>\n {content}\n </Dialog>\n ),\n [content, defaultOptions, isOpen, callOptions],\n );\n\n return {element, hide, isOpen, show};\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AvatarGroup/AvatarGroup.recipe.ts","../src/components/AvatarGroup/AvatarGroup.tsx","../src/components/AvatarGroup/AvatarGroupOverflow.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-FQSVY4QB.js","sourcesContent":["import {cva} from 'styled-system/css';\n\nexport const avatarGroupRecipe = cva({\n base: {\n display: 'inline-flex',\n alignItems: 'center',\n verticalAlign: 'middle',\n },\n});\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useMemo} from 'react';\nimport {resolveAvatarSize, type AvatarSize} from 'components/Avatar';\nimport {avatarGroupRecipe} from 'components/AvatarGroup/AvatarGroup.recipe';\nimport {AvatarGroupContext} from 'components/AvatarGroup/AvatarGroupContext';\nimport {cx} from 'internal/cx';\n\nconst OVERLAP_RATIO = 0.25;\n\n/**\n * Displays a stacked group of Avatars with shared size and overlap.\n */\nexport interface AvatarGroupProps {\n /**\n * Accessible label for the group. Default is \"Avatars\".\n */\n 'aria-label'?: string;\n /**\n * Avatar and AvatarGroupOverflow children.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size applied to child Avatars. Individual Avatar size props are ignored\n * while inside the group so the stack remains visually consistent.\n */\n size?: AvatarSize;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\ntype AvatarGroupStyle = CSSProperties & {\n '--avatar-group-overlap': string;\n};\n\n/**\n * Displays a stacked group of Avatars with shared size and overlap.\n */\nexport function AvatarGroup({\n 'aria-label': ariaLabel = 'Avatars',\n children,\n className,\n 'data-testid': dataTestId,\n ref,\n size = 'small',\n style,\n}: AvatarGroupProps): React.JSX.Element {\n const numericSize = resolveAvatarSize(size);\n const overlap = Math.round(numericSize * OVERLAP_RATIO);\n const contextValue = useMemo(\n () => ({numericSize, overlap, size}),\n [numericSize, overlap, size],\n );\n const rootStyle: AvatarGroupStyle = {\n '--avatar-group-overlap': `${-overlap}px`,\n ...style,\n };\n\n return (\n <AvatarGroupContext value={contextValue}>\n <div\n aria-label={ariaLabel}\n className={cx(avatarGroupRecipe(), className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"group\"\n style={rootStyle}>\n {children}\n </div>\n </AvatarGroupContext>\n );\n}\n\nAvatarGroup.displayName = 'AvatarGroup';\n","import type {CSSProperties, MouseEventHandler, ReactNode, Ref} from 'react';\nimport {useAvatarGroup} from 'components/AvatarGroup/AvatarGroupContext';\nimport {cx} from 'internal/cx';\nimport {css} from 'styled-system/css';\n\nconst DEFAULT_SIZE = 36;\nconst BORDER_WIDTH = 2;\nconst OVERFLOW_FONT_RATIO = 0.35;\n\n/**\n * Overflow indicator for AvatarGroup.\n */\nexport interface AvatarGroupOverflowProps {\n /**\n * Custom content rendered instead of the default \"+N\" text.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Number of hidden avatars represented by the overflow indicator.\n */\n count: number;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Click handler. When set, the overflow indicator renders as a button.\n */\n onClick?: MouseEventHandler<HTMLButtonElement>;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n root: css({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n borderWidth: `${BORDER_WIDTH}px`,\n borderStyle: 'solid',\n borderColor: 'bg',\n boxSizing: 'content-box',\n bg: 'bg.subtle',\n color: 'fg.muted',\n fontFamily: 'body',\n fontWeight: 'medium',\n userSelect: 'none',\n '&:not(:first-child)': {\n marginInlineStart: 'var(--avatar-group-overlap)',\n },\n }),\n button: css({\n cursor: 'pointer',\n p: 0,\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n};\n\n/**\n * Overflow indicator showing the count of hidden avatars in an AvatarGroup.\n */\nexport function AvatarGroupOverflow({\n children,\n className,\n count,\n 'data-testid': dataTestId,\n onClick,\n ref,\n style,\n}: AvatarGroupOverflowProps): React.JSX.Element | null {\n const group = useAvatarGroup();\n\n if (count <= 0) {\n return null;\n }\n\n const numericSize = group?.numericSize ?? DEFAULT_SIZE;\n const label = `${count} more`;\n const content = children ?? `+${count}`;\n const rootStyle: CSSProperties = {\n width: numericSize,\n height: numericSize,\n fontSize: numericSize * OVERFLOW_FONT_RATIO,\n ...style,\n };\n\n if (onClick != null) {\n return (\n <button\n aria-label={label}\n className={cx(styles.root, styles.button, className)}\n data-testid={dataTestId}\n onClick={onClick}\n ref={ref as Ref<HTMLButtonElement>}\n style={rootStyle}\n type=\"button\">\n {content}\n </button>\n );\n }\n\n return (\n <span\n aria-label={label}\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"status\"\n style={rootStyle}>\n {content}\n </span>\n );\n}\n\nAvatarGroupOverflow.displayName = 'AvatarGroupOverflow';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AppShell/AppShellMobileContext.tsx","../src/internal/MobileNav/MobileNav.recipe.ts","../src/internal/MobileNav/MobileNav.tsx","../src/internal/MobileNav/MobileNavToggle.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-FTNEAX24.js","sourcesContent":["import {createContext, use} from 'react';\n\nexport interface AppShellMobileContextValue {\n closeMobileNav: () => void;\n hasAutoToggle: boolean;\n isMobile: boolean;\n isMobileNavEnabled: boolean;\n isMobileNavOpen: boolean;\n openMobileNav: () => void;\n toggleMobileNav: () => void;\n}\n\nconst defaultValue: AppShellMobileContextValue = {\n closeMobileNav: () => {},\n hasAutoToggle: true,\n isMobile: false,\n isMobileNavEnabled: false,\n isMobileNavOpen: false,\n openMobileNav: () => {},\n toggleMobileNav: () => {},\n};\n\nexport const AppShellMobileContext =\n createContext<AppShellMobileContextValue>(defaultValue);\nAppShellMobileContext.displayName = 'AppShellMobileContext';\n\nexport function useAppShellMobile(): AppShellMobileContextValue {\n return use(AppShellMobileContext);\n}\n","import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const mobileNavRecipe = cva({\n base: {\n position: 'fixed',\n inset: 0,\n m: 0,\n p: 0,\n borderWidth: 0,\n maxW: 'none',\n maxH: 'none',\n w: '100vw',\n h: '100dvh',\n bg: 'transparent',\n overflow: 'hidden',\n display: 'none',\n '&::backdrop': {\n bg: 'overlay.scrim',\n backdropFilter: 'blur(2px)',\n },\n },\n variants: {\n isOpen: {\n true: {\n display: 'flex',\n },\n false: {},\n },\n },\n defaultVariants: {\n isOpen: false,\n },\n});\n\nexport type MobileNavVariants = RecipeVariantProps<typeof mobileNavRecipe>;\n","import {X} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useCallback, useEffect, useRef} from 'react';\nimport {useAppShellMobile} from 'components/AppShell/AppShellMobileContext';\nimport {Button} from 'components/Button';\nimport {mobileNavRecipe} from 'internal/MobileNav/MobileNav.recipe';\nimport {cx} from 'internal/cx';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {useScrollLock} from 'internal/useScrollLock';\nimport {css} from 'styled-system/css';\n\nexport type MobileNavSide = 'start' | 'end';\n\n/**\n * Slide-out drawer for mobile navigation.\n */\nexport interface MobileNavProps {\n /**\n * Drawer body content.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the dialog element.\n */\n className?: string;\n /**\n * Test ID applied to the dialog element.\n */\n 'data-testid'?: string;\n /**\n * Content rendered in the drawer header bar.\n */\n header?: ReactNode;\n /**\n * Whether the drawer is open.\n */\n isOpen?: boolean;\n /**\n * Accessible label for the dialog.\n */\n label?: string;\n /**\n * Called when the drawer requests an open-state change.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Which edge of the viewport the drawer slides from.\n * @default 'end'\n */\n side?: MobileNavSide;\n /**\n * Maximum drawer width.\n * @default 320\n */\n size?: number | string;\n /**\n * Inline styles applied to the dialog element.\n */\n style?: CSSProperties;\n}\n\nfunction formatSize(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nconst CLOSE_BUTTON_SELECTOR = '[aria-label=\"Close navigation\"]';\n\nconst styles = {\n drawer: css({\n position: 'absolute',\n insetBlock: 0,\n display: 'flex',\n flexDirection: 'column',\n bg: 'bg',\n borderColor: 'border',\n overflow: 'hidden',\n transitionProperty: 'transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01s',\n },\n }),\n drawerStart: css({\n insetInlineStart: 0,\n borderInlineEndWidth: 'default',\n transform: 'translateX(-100%)',\n _rtl: {transform: 'translateX(100%)'},\n }),\n drawerEnd: css({\n insetInlineEnd: 0,\n borderInlineStartWidth: 'default',\n transform: 'translateX(100%)',\n _rtl: {transform: 'translateX(-100%)'},\n }),\n drawerOpen: css({\n transform: 'translateX(0)',\n }),\n header: css({\n h: '12',\n px: '2',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n flexShrink: 0,\n }),\n body: css({\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n p: '2',\n }),\n};\n\nexport function MobileNav({\n children,\n className,\n 'data-testid': dataTestId,\n header,\n isOpen: isOpenFromProps,\n label,\n onOpenChange: onOpenChangeFromProps,\n ref,\n side = 'end',\n size = 320,\n style,\n}: MobileNavProps): React.JSX.Element {\n const appShellMobile = useAppShellMobile();\n const isOpen = isOpenFromProps ?? appShellMobile.isMobileNavOpen;\n const {openMobileNav, closeMobileNav} = appShellMobile;\n const onOpenChange = useCallback(\n (isNextOpen: boolean) => {\n if (onOpenChangeFromProps != null) {\n onOpenChangeFromProps(isNextOpen);\n } else if (isNextOpen) {\n openMobileNav();\n } else {\n closeMobileNav();\n }\n },\n [openMobileNav, closeMobileNav, onOpenChangeFromProps],\n );\n const dialogRef = useRef<HTMLDialogElement>(null);\n\n useEffect(() => {\n const dialog = dialogRef.current;\n\n if (dialog == null) {\n return;\n }\n\n if (isOpen && !dialog.open) {\n dialog.showModal();\n\n const firstFocusable = dialog.querySelector<HTMLElement>(\n `a[href], button:not(${CLOSE_BUTTON_SELECTOR}):not([disabled])`,\n );\n if (firstFocusable != null) {\n firstFocusable.focus();\n }\n } else if (!isOpen && dialog.open) {\n dialog.close();\n }\n }, [isOpen]);\n\n useScrollLock(isOpen);\n\n const formattedSize = formatSize(size);\n\n return (\n <dialog\n aria-label={label ?? (typeof header === 'string' ? header : 'Navigation')}\n className={cx(mobileNavRecipe({isOpen}), className)}\n data-testid={dataTestId}\n onCancel={event => {\n event.preventDefault();\n onOpenChange(false);\n }}\n onClick={event => {\n if (event.target === event.currentTarget) {\n onOpenChange(false);\n }\n }}\n ref={mergeRefs(ref, dialogRef)}\n style={style}>\n <div\n className={cx(\n styles.drawer,\n side === 'start' ? styles.drawerStart : styles.drawerEnd,\n isOpen && styles.drawerOpen,\n )}\n style={{maxWidth: formattedSize, width: '100vw'}}>\n <div className={styles.header}>\n {header ?? <span />}\n <Button\n icon={X}\n isIconOnly\n label=\"Close navigation\"\n onClick={() => onOpenChange(false)}\n variant=\"ghost\"\n />\n </div>\n <div className={styles.body}>{children}</div>\n </div>\n </dialog>\n );\n}\n\nMobileNav.displayName = 'MobileNav';\n","import {Menu} from 'lucide-react';\nimport type {CSSProperties, Ref} from 'react';\nimport {useAppShellMobile} from 'components/AppShell/AppShellMobileContext';\nimport {Button} from 'components/Button';\n\n/**\n * Props for {@link MobileNavToggle}.\n */\nexport interface MobileNavToggleProps {\n /**\n * Additional CSS class names applied to the toggle button.\n */\n className?: string;\n /**\n * Test ID applied to the toggle button.\n */\n 'data-testid'?: string;\n /**\n * Accessible label for the toggle button.\n * @default 'Open navigation'\n */\n label?: string;\n /**\n * Ref forwarded to the toggle button.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the toggle button.\n */\n style?: CSSProperties;\n}\n\n/**\n * Hamburger-style button that toggles the mobile navigation drawer.\n * Renders nothing when the viewport is above the mobile breakpoint or\n * mobile navigation is disabled.\n */\nexport function MobileNavToggle({\n className,\n 'data-testid': dataTestId,\n label = 'Open navigation',\n ref,\n style,\n}: MobileNavToggleProps): React.JSX.Element | null {\n const {isMobile, isMobileNavEnabled, toggleMobileNav} = useAppShellMobile();\n\n if (!isMobile || !isMobileNavEnabled) {\n return null;\n }\n\n return (\n <Button\n className={className}\n data-testid={dataTestId}\n icon={Menu}\n isIconOnly\n label={label}\n onClick={toggleMobileNav}\n ref={ref}\n style={style}\n variant=\"ghost\"\n />\n );\n}\n\nMobileNavToggle.displayName = 'MobileNavToggle';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Tooltip/useTooltip.tsx","../src/components/Tooltip/Tooltip.tsx"],"names":["css","useHoverLayer","useEffect","useCallback","jsx","cx","useMemo","HoverLayerTrigger"],"mappings":"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","file":"chunk-GJZAGTPV.cjs","sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type RefCallback,\n} from 'react';\nimport {cx} from 'internal/cx';\nimport {\n useHoverLayer,\n type HoverLayerFocusTrigger,\n} from 'internal/useHoverLayer';\nimport type {\n ContextRenderProps,\n LayerAlignment,\n LayerPlacement,\n} from 'internal/useLayer';\nimport {css} from 'styled-system/css';\n\nexport type TooltipFocusTrigger = HoverLayerFocusTrigger;\n\nexport interface UseTooltipOptions {\n alignment?: LayerAlignment;\n delay?: number;\n focusTrigger?: TooltipFocusTrigger;\n hideDelay?: number;\n isEnabled?: boolean;\n onHide?: () => void;\n onShow?: () => void;\n placement?: LayerPlacement;\n}\n\nexport interface TooltipRenderProps extends ContextRenderProps {\n contentStyle?: CSSProperties;\n}\n\nexport interface UseTooltipReturn {\n /**\n * ID of the anchor element, used for CSS anchor positioning.\n */\n anchorId: string;\n /**\n * ID of the tooltip element. Pass to `aria-describedby` on the trigger.\n */\n describedBy: string;\n /**\n * Attaches hover/focus/keyboard listeners only.\n * Use when another element handles positioning (e.g., a wrapper provides the anchor).\n */\n interactionRef: RefCallback<HTMLElement>;\n /**\n * Attaches CSS anchor positioning only.\n * Use when another element handles interaction listeners.\n */\n positionRef: RefCallback<HTMLElement>;\n /**\n * Combined ref that attaches both positioning and interaction.\n * Use this for the common case where one element is both the anchor and trigger.\n * Do not combine with `interactionRef` or `positionRef` — use one or the other.\n */\n ref: RefCallback<HTMLElement>;\n /**\n * Renders the tooltip content into the layer.\n */\n renderTooltip: (children: ReactNode, props?: TooltipRenderProps) => ReactNode;\n}\n\nconst styles = {\n tooltipContainer: css({\n bg: 'fg',\n color: 'bg',\n borderRadius: 'md',\n fontFamily: 'body',\n fontSize: 'sm',\n lineHeight: 'normal',\n boxShadow: 'md',\n '--silver-text-color': 'currentColor',\n '--silver-text-color-muted':\n 'color-mix(in srgb, currentColor 70%, transparent)',\n }),\n tooltipContent: css({\n px: '2',\n py: '1',\n maxW: 'xs',\n wordBreak: 'break-word',\n }),\n marginByPlacement: {\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\nexport function useTooltip(options: UseTooltipOptions = {}): UseTooltipReturn {\n const {\n placement = 'above',\n alignment = 'center',\n delay = 200,\n hideDelay = 0,\n focusTrigger = 'auto',\n isEnabled = true,\n onShow,\n onHide,\n } = options;\n\n const hoverLayer = useHoverLayer({\n delay,\n focusTrigger,\n hideDelay,\n isEnabled,\n onFocusIn: event => {\n const target = event.target as HTMLElement;\n return target.matches(':focus-visible');\n },\n onHide,\n onShow,\n });\n\n const {interactionRef, layer, ref} = hoverLayer;\n\n useEffect(() => {\n if (!layer.isOpen) {\n return;\n }\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n layer.hide();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [layer, layer.isOpen]);\n\n const renderTooltip = useCallback(\n (children: ReactNode, props?: TooltipRenderProps): ReactNode => {\n const renderPlacement = props?.placement ?? placement;\n return layer.render(\n <div className={styles.tooltipContent} style={props?.contentStyle}>\n {children}\n </div>,\n {\n placement: renderPlacement,\n alignment: props?.alignment ?? alignment,\n className: cx(\n styles.tooltipContainer,\n styles.marginByPlacement[renderPlacement],\n props?.className,\n ),\n role: 'tooltip',\n style: props?.style,\n },\n );\n },\n [alignment, layer, placement],\n );\n\n return useMemo(\n () => ({\n ref,\n positionRef: layer.ref,\n interactionRef,\n anchorId: layer.anchorId,\n describedBy: layer.id,\n renderTooltip,\n }),\n [ref, layer.ref, interactionRef, layer.anchorId, layer.id, renderTooltip],\n );\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {\n useTooltip,\n type TooltipFocusTrigger,\n} from 'components/Tooltip/useTooltip';\nimport {HoverLayerTrigger} from 'internal/HoverLayerTrigger';\nimport type {LayerAlignment, LayerPlacement} from 'internal/useLayer';\n\nexport type {TooltipFocusTrigger} from 'components/Tooltip/useTooltip';\n\nexport interface TooltipProps {\n /**\n * Cross-axis alignment of the tooltip relative to the anchor.\n * @default 'center'\n */\n alignment?: LayerAlignment;\n /**\n * Element(s) that the tooltip is anchored to.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the wrapper.\n */\n className?: string;\n /**\n * Content rendered inside the tooltip popup.\n */\n content: ReactNode;\n /**\n * Inline styles applied to the tooltip content area.\n */\n contentStyle?: CSSProperties;\n /**\n * Test ID applied to the wrapper.\n */\n 'data-testid'?: string;\n /**\n * Delay in milliseconds before the tooltip appears.\n * @default 200\n */\n delay?: number;\n /**\n * How focus interactions trigger the tooltip.\n * @default 'auto'\n */\n focusTrigger?: TooltipFocusTrigger;\n /**\n * Delay in milliseconds before the tooltip hides after leaving.\n * @default 0\n */\n hideDelay?: number;\n /**\n * Dashed underline display for tooltip triggers.\n * @default 'auto'\n */\n hoverIndication?: 'always' | 'auto' | 'never';\n /**\n * Whether the tooltip can be shown.\n * @default true\n */\n isEnabled?: boolean;\n /**\n * Preferred placement of the tooltip relative to the anchor.\n * @default 'above'\n */\n placement?: LayerPlacement;\n /**\n * Ref forwarded to the wrapper element.\n */\n ref?: Ref<HTMLDivElement | HTMLSpanElement>;\n /**\n * Inline styles applied to the wrapper.\n */\n style?: CSSProperties;\n}\n\n/**\n * Displays contextual information in a popup anchored to a trigger element.\n *\n * For attaching a tooltip to an external ref (without wrapping children),\n * use the `useTooltip` hook directly.\n */\nexport function Tooltip({\n children,\n content,\n contentStyle,\n placement = 'above',\n alignment = 'center',\n delay = 200,\n hideDelay = 0,\n focusTrigger = 'auto',\n isEnabled = true,\n hoverIndication = 'auto',\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: TooltipProps): React.JSX.Element {\n const tooltip = useTooltip({\n placement,\n alignment,\n delay,\n hideDelay,\n focusTrigger,\n isEnabled,\n });\n\n return (\n <HoverLayerTrigger\n className={className}\n data-testid={dataTestId}\n describedBy={tooltip.describedBy}\n hoverIndication={hoverIndication}\n layer={tooltip.renderTooltip(content, {contentStyle})}\n nonTextWrapperElement=\"div\"\n style={style}\n triggerRef={tooltip.ref}\n wrapperRef={ref}>\n {children}\n </HoverLayerTrigger>\n );\n}\n\nTooltip.displayName = 'Tooltip';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/internal/useFocusTrap.ts","../src/components/Popover/usePopover.tsx","../src/components/Popover/Popover.tsx"],"names":["useRef","useCallback","useEffect","styles","jsx","jsxs"],"mappings":"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","file":"chunk-GTZQT6MK.js","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 +0,0 @@
1
- {"version":3,"sources":["../src/components/Dialog/DialogContext.ts"],"names":["createContext","use"],"mappings":";;;;;AAYO,IAAM,aAAA,GAAgBA,oBAAyC,IAAI;AAC1E,aAAA,CAAc,WAAA,GAAc,eAAA;AAErB,SAAS,gBAAA,GAA8C;AAC5D,EAAA,OAAOC,UAAI,aAAa,CAAA;AAC1B","file":"chunk-H7LOOHWU.cjs","sourcesContent":["import {createContext, use} from 'react';\n\nexport interface DialogContextValue {\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Stable ID for the dialog's title heading. LayoutHeader applies this ID\n * to its heading element so the dialog can reference it via\n * `aria-labelledby`.\n */\n titleId: string;\n}\n\nexport const DialogContext = createContext<DialogContextValue | null>(null);\nDialogContext.displayName = 'DialogContext';\n\nexport function useDialogContext(): DialogContextValue | null {\n return use(DialogContext);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/TextArea/TextArea.tsx"],"names":[],"mappings":"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","file":"chunk-HC57X3U4.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 +0,0 @@
1
- {"version":3,"sources":["../src/components/DateRangeInput/DateRangeInput.tsx"],"names":["css","plainDateFormat","DATE_FORMAT_SHORT_WITH_YEAR","useId","isReactNode","getStatusMessageID","getDescribedBy","useState","useMemo","getNecessity","jsx","Field","jsxs","cx","inputRecipe","Popover","Calendar","Button","CalendarIcon","inputStyles","X","Spinner","getStatusIcon"],"mappings":"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","file":"chunk-HENIVDYQ.cjs","sourcesContent":["import {CalendarIcon, X} from 'lucide-react';\nimport {\n useId,\n useMemo,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {Calendar} from 'components/Calendar';\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 type {IconComponent} from 'components/Icon';\nimport {Popover} from 'components/Popover';\nimport {Spinner} from 'components/Spinner';\nimport {cx} from 'internal/cx';\nimport type {DateRange} from 'internal/dateTypes';\nimport isReactNode from 'internal/isReactNode';\nimport {\n DATE_FORMAT_SHORT_WITH_YEAR,\n plainDateFormat,\n type PlainDate,\n} from 'internal/plainDate';\nimport {css} from 'styled-system/css';\n\nexport type {DateRange} from 'internal/dateTypes';\n\nconst styles = {\n wrapper: css({ps: '1', gap: '1'}),\n} as const;\n\nexport type DateRangeInputProps = {\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Returns true for dates that should be disabled.\n */\n getIsDateDisabled?: (date: PlainDate) => boolean;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Whether to show a clear button when a value is selected.\n * @default false\n */\n hasClear?: boolean;\n /**\n * Whether the input 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 input is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label text.\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 selectable date.\n */\n max?: PlainDate;\n /**\n * Minimum selectable date.\n */\n min?: PlainDate;\n /**\n * Number of calendar months shown in the popover.\n * @default 2\n */\n numberOfMonths?: 1 | 2;\n /**\n * Called when the selected date range changes.\n */\n onChange: (value: DateRange | null) => void;\n /**\n * Placeholder text shown when no range is selected.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the input.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Currently selected date range. Pass `null` for an empty input.\n */\n value: DateRange | null;\n} & FieldNecessity;\n\nfunction formatRange(value: DateRange | null | undefined): string {\n if (value == null) {\n return '';\n }\n return `${plainDateFormat(value.start, DATE_FORMAT_SHORT_WITH_YEAR)} - ${plainDateFormat(value.end, DATE_FORMAT_SHORT_WITH_YEAR)}`;\n}\n\n/**\n * A date range picker input that opens a calendar popover for selecting a start and end date.\n */\nexport function DateRangeInput({\n label,\n value,\n onChange,\n min,\n max,\n getIsDateDisabled,\n numberOfMonths = 2,\n placeholder = 'Select a date range',\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n hasClear = false,\n status,\n labelIcon,\n labelTooltip,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: DateRangeInputProps): React.JSX.Element {\n const inputId = useId();\n const popoverId = `${inputId}-calendar`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const [isOpen, setIsOpen] = useState(false);\n const displayValue = useMemo(() => formatRange(value), [value]);\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 <Popover\n content={\n <Calendar\n getIsDateDisabled={getIsDateDisabled}\n max={max}\n min={min}\n mode=\"range\"\n numberOfMonths={numberOfMonths}\n onChange={nextValue => {\n onChange(nextValue);\n setIsOpen(false);\n }}\n value={value ?? undefined}\n viewDate={value?.start}\n />\n }\n hasAutoFocus\n id={popoverId}\n isEnabled={!isDisabled}\n isOpen={isOpen}\n label={`Choose ${label}`}\n onOpenChange={setIsOpen}\n padding={3}>\n <Button\n icon={CalendarIcon}\n isDisabled={isDisabled}\n isIconOnly\n label={`Choose ${label}`}\n size=\"sm\"\n variant=\"ghost\"\n />\n </Popover>\n <input\n aria-busy={isLoading || undefined}\n aria-controls={popoverId}\n aria-describedby={describedBy}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n aria-invalid={status?.type === 'error' || undefined}\n aria-required={isRequired ?? undefined}\n className={inputStyles.control}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n placeholder={placeholder}\n readOnly\n ref={ref}\n role=\"combobox\"\n type=\"text\"\n value={displayValue}\n />\n {hasClear && value != null && !isDisabled && !isLoading ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={() => onChange(null)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\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 </Field>\n );\n}\n\nDateRangeInput.displayName = 'DateRangeInput';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/TimeInput/TimeInput.tsx"],"names":["css","Temporal","useId","isReactNode","getStatusMessageID","getDescribedBy","getNecessity","jsx","Field","jsxs","inputRecipe","inputStyles","Icon","Clock","cx","Button","X","Spinner","getStatusIcon"],"mappings":"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","file":"chunk-HN4W6TM6.cjs","sourcesContent":["import {Temporal} from '@js-temporal/polyfill';\nimport {Clock, X} from 'lucide-react';\nimport {\n useId,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\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 {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\n\nconst styles = {\n input: css({\n '&::-webkit-calendar-picker-indicator': {\n display: 'none',\n },\n }),\n} as const;\n\nexport type PlainTime = Temporal.PlainTime;\n\nexport type TimeInputProps = {\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a clear button when a value is set.\n * @default false\n */\n hasClear?: boolean;\n /**\n * Whether the input includes a seconds field.\n * @default false\n */\n hasSeconds?: boolean;\n /**\n * HTML name attribute.\n */\n htmlName?: string;\n /**\n * Whether the input 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 input 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 * Latest allowed time.\n */\n max?: PlainTime;\n /**\n * Earliest allowed time.\n */\n min?: PlainTime;\n /**\n * Called when the input loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Called when the time value changes.\n */\n onChange: (value: PlainTime | null) => void;\n /**\n * Called when the input gains focus.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Placeholder text.\n * @default 'Select a time'\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Step increment in seconds for the time picker.\n */\n step?: number;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Controlled time value. Pass `null` for an empty input.\n */\n value: PlainTime | null;\n} & FieldNecessity;\n\nfunction toInputString(\n time: PlainTime | null | undefined,\n hasSeconds: boolean,\n): string {\n if (time == null) {\n return '';\n }\n return time.toString({\n smallestUnit: hasSeconds ? 'second' : 'minute',\n });\n}\n\nfunction fromInputString(value: string): PlainTime | null {\n if (value === '') {\n return null;\n }\n try {\n return Temporal.PlainTime.from(value);\n } catch {\n return null;\n }\n}\n\n/**\n * Time picker input field with optional seconds granularity.\n */\nexport function TimeInput({\n label,\n value,\n onBlur,\n onChange,\n onFocus,\n hasSeconds = false,\n hasClear = false,\n hasAutoFocus = false,\n min,\n max,\n step,\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n htmlName,\n status,\n labelIcon,\n labelTooltip,\n placeholder = 'Select a time',\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: TimeInputProps): 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 describedBy = getDescribedBy(descriptionID, statusMessageID);\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={inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n })}>\n <span className={inputStyles.iconSlot}>\n <Icon icon={Clock} size=\"sm\" />\n </span>\n <input\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || 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.input)}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n max={toInputString(max, hasSeconds)}\n min={toInputString(min, hasSeconds)}\n name={htmlName}\n onBlur={onBlur}\n onChange={event => onChange(fromInputString(event.target.value))}\n onFocus={onFocus}\n placeholder={placeholder}\n ref={ref}\n step={step ?? (hasSeconds ? 1 : 60)}\n type=\"time\"\n value={toInputString(value, hasSeconds)}\n />\n {hasClear && value != null && !isDisabled ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={() => onChange(null)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\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 </Field>\n );\n}\n\nTimeInput.displayName = 'TimeInput';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AlertDialog/AlertDialog.tsx","../src/components/AlertDialog/useAlertDialog.tsx"],"names":["useCallback","jsx"],"mappings":"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","file":"chunk-I2DXEPDF.js","sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {Dialog} from 'components/Dialog';\nimport {\n Layout,\n LayoutContent,\n LayoutFooter,\n LayoutHeader,\n} from 'components/Layout';\nimport {Text} from 'components/Text';\n\nexport type AlertDialogActionVariant = 'destructive' | 'primary';\n\nexport interface AlertDialogProps {\n /**\n * Action button label.\n */\n actionLabel: string;\n /**\n * Visual variant for the action button.\n * @default 'destructive'\n */\n actionVariant?: AlertDialogActionVariant;\n /**\n * Cancel button label.\n * @default 'Cancel'\n */\n cancelLabel?: string;\n /**\n * Additional CSS class names applied to the dialog.\n */\n className?: string;\n /**\n * Test ID applied to the dialog.\n */\n 'data-testid'?: string;\n /**\n * Consequence description.\n */\n description: string;\n /**\n * Whether the action button is loading.\n * @default false\n */\n isActionLoading?: boolean;\n /**\n * Whether the dialog is open.\n */\n isOpen: boolean;\n /**\n * Called when the primary action is clicked.\n */\n onAction: () => void;\n /**\n * Called when the dialog requests an open-state change.\n */\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Inline styles applied to the dialog.\n */\n style?: CSSProperties;\n /**\n * Dialog title.\n */\n title: string;\n /**\n * Dialog width. Numbers are treated as pixels.\n * @default 400\n */\n width?: number | string;\n}\n\n/**\n * A modal confirmation dialog for destructive or irreversible actions.\n */\nexport function AlertDialog({\n actionLabel,\n actionVariant = 'destructive',\n cancelLabel = 'Cancel',\n className,\n 'data-testid': dataTestId,\n description,\n isActionLoading = false,\n isOpen,\n onAction,\n onOpenChange,\n ref,\n style,\n title,\n width = 400,\n}: AlertDialogProps): React.JSX.Element | null {\n /**\n * Synchronous guard against rapid double-invocation of onAction.\n * The ref flips immediately on the first call — before React can\n * re-render with `isActionLoading=true` — so a second Enter/click\n * in the same event-loop tick is ignored.\n */\n const actionFiredRef = useRef(false);\n\n useEffect(() => {\n if (!isActionLoading) {\n actionFiredRef.current = false;\n }\n }, [isActionLoading]);\n\n useEffect(() => {\n if (!isOpen) {\n actionFiredRef.current = false;\n }\n }, [isOpen]);\n\n const handleAction = useCallback(() => {\n if (actionFiredRef.current) {\n return;\n }\n actionFiredRef.current = true;\n onAction();\n }, [onAction]);\n\n return (\n <Dialog\n className={className}\n data-testid={dataTestId}\n dismissBehavior={false}\n isOpen={isOpen}\n onOpenChange={onOpenChange}\n ref={ref}\n role=\"alertdialog\"\n style={style}\n width={width}>\n <Layout\n content={\n <LayoutContent>\n <Text as=\"p\" color=\"secondary\">\n {description}\n </Text>\n </LayoutContent>\n }\n footer={\n <LayoutFooter\n primaryButton={\n <Button\n isLoading={isActionLoading}\n label={actionLabel}\n onClick={handleAction}\n variant={actionVariant}\n />\n }\n secondaryButton={\n <Button\n label={cancelLabel}\n onClick={() => onOpenChange(false)}\n variant=\"ghost\"\n />\n }\n />\n }\n hasDividers\n header={<LayoutHeader title={title} />}\n />\n </Dialog>\n );\n}\n\nAlertDialog.displayName = 'AlertDialog';\n","import {useCallback, useState, type ReactNode} from 'react';\nimport {\n AlertDialog,\n type AlertDialogProps,\n} from 'components/AlertDialog/AlertDialog';\n\nexport type AlertDialogOptions = Omit<\n AlertDialogProps,\n 'isOpen' | 'onOpenChange'\n>;\n\nexport interface UseAlertDialogReturn {\n /**\n * Render this element in your tree.\n */\n element: ReactNode;\n /**\n * Hide the current alert dialog.\n */\n hide: () => void;\n /**\n * Whether the alert dialog is open.\n */\n isOpen: boolean;\n /**\n * Show an alert dialog with the provided options.\n */\n show: (options: AlertDialogOptions) => void;\n}\n\nexport function useAlertDialog(): UseAlertDialogReturn {\n const [isOpen, setIsOpen] = useState(false);\n const [options, setOptions] = useState<AlertDialogOptions | null>(null);\n\n const show = useCallback((nextOptions: AlertDialogOptions) => {\n setOptions(nextOptions);\n setIsOpen(true);\n }, []);\n const hide = useCallback(() => {\n setIsOpen(false);\n setOptions(null);\n }, []);\n\n const element: ReactNode =\n options == null ? null : (\n <AlertDialog {...options} isOpen={isOpen} onOpenChange={setIsOpen} />\n );\n\n return {element, hide, isOpen, show};\n}\n"]}