silver-ui 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/dist/{chunk-QGHFUOUB.cjs → chunk-2A3V6OR7.cjs} +7 -7
  2. package/dist/{chunk-QGHFUOUB.cjs.map → chunk-2A3V6OR7.cjs.map} +1 -1
  3. package/dist/{chunk-RVENUWRD.js → chunk-2LABTS4P.js} +7 -7
  4. package/dist/{chunk-RVENUWRD.js.map → chunk-2LABTS4P.js.map} +1 -1
  5. package/dist/{chunk-DIIE44GO.js → chunk-2N6FOSNM.js} +5 -5
  6. package/dist/{chunk-DIIE44GO.js.map → chunk-2N6FOSNM.js.map} +1 -1
  7. package/dist/{chunk-LUBVZVY3.js → chunk-2RKMG2TC.js} +7 -7
  8. package/dist/{chunk-LUBVZVY3.js.map → chunk-2RKMG2TC.js.map} +1 -1
  9. package/dist/{chunk-EMHLPPQZ.js → chunk-3CJC4QE6.js} +4 -4
  10. package/dist/chunk-3CJC4QE6.js.map +1 -0
  11. package/dist/{chunk-P3SMNZCT.js → chunk-3JPUXC5U.js} +3 -3
  12. package/dist/{chunk-P3SMNZCT.js.map → chunk-3JPUXC5U.js.map} +1 -1
  13. package/dist/{chunk-F3ZNRO6W.js → chunk-3OIUA2NY.js} +5 -5
  14. package/dist/{chunk-F3ZNRO6W.js.map → chunk-3OIUA2NY.js.map} +1 -1
  15. package/dist/{chunk-PZ63ZCEO.cjs → chunk-3ZV3EGGK.cjs} +17 -17
  16. package/dist/{chunk-PZ63ZCEO.cjs.map → chunk-3ZV3EGGK.cjs.map} +1 -1
  17. package/dist/{chunk-O5A47TA2.js → chunk-4H7X5FGX.js} +5 -5
  18. package/dist/{chunk-O5A47TA2.js.map → chunk-4H7X5FGX.js.map} +1 -1
  19. package/dist/{chunk-Q3OA23V5.js → chunk-52WQDDWQ.js} +7 -7
  20. package/dist/{chunk-Q3OA23V5.js.map → chunk-52WQDDWQ.js.map} +1 -1
  21. package/dist/{chunk-ZLATP3P5.cjs → chunk-5D2OR64D.cjs} +6 -6
  22. package/dist/{chunk-ZLATP3P5.cjs.map → chunk-5D2OR64D.cjs.map} +1 -1
  23. package/dist/{chunk-YAIEA2YE.cjs → chunk-5PX76QOL.cjs} +3 -3
  24. package/dist/{chunk-YAIEA2YE.cjs.map → chunk-5PX76QOL.cjs.map} +1 -1
  25. package/dist/{chunk-HM7IEGQ2.cjs → chunk-5YS43PSQ.cjs} +7 -7
  26. package/dist/chunk-5YS43PSQ.cjs.map +1 -0
  27. package/dist/{chunk-D2DOHX4W.js → chunk-6ONAGCCZ.js} +13 -6
  28. package/dist/chunk-6ONAGCCZ.js.map +1 -0
  29. package/dist/{chunk-DSB4Q3AS.js → chunk-6ULCJ3XZ.js} +4 -4
  30. package/dist/{chunk-DSB4Q3AS.js.map → chunk-6ULCJ3XZ.js.map} +1 -1
  31. package/dist/{chunk-GXRH5XQY.js → chunk-6XWXBXYE.js} +5 -5
  32. package/dist/{chunk-GXRH5XQY.js.map → chunk-6XWXBXYE.js.map} +1 -1
  33. package/dist/{chunk-EXYBQVZT.js → chunk-7BSFKG7N.js} +3 -3
  34. package/dist/{chunk-EXYBQVZT.js.map → chunk-7BSFKG7N.js.map} +1 -1
  35. package/dist/{chunk-7GN6YTSS.cjs → chunk-7CCXHH6Y.cjs} +7 -7
  36. package/dist/chunk-7CCXHH6Y.cjs.map +1 -0
  37. package/dist/{chunk-PJMV2HTO.cjs → chunk-7U7JMRVF.cjs} +18 -18
  38. package/dist/{chunk-PJMV2HTO.cjs.map → chunk-7U7JMRVF.cjs.map} +1 -1
  39. package/dist/{chunk-M3IKL2VG.js → chunk-AFI4V7LI.js} +6 -6
  40. package/dist/{chunk-M3IKL2VG.js.map → chunk-AFI4V7LI.js.map} +1 -1
  41. package/dist/{chunk-OSBVDRVD.cjs → chunk-AHVHLNHU.cjs} +8 -8
  42. package/dist/{chunk-OSBVDRVD.cjs.map → chunk-AHVHLNHU.cjs.map} +1 -1
  43. package/dist/{chunk-6USJ4LJJ.js → chunk-AJ6X62AI.js} +4 -4
  44. package/dist/{chunk-6USJ4LJJ.js.map → chunk-AJ6X62AI.js.map} +1 -1
  45. package/dist/{chunk-UKDGDMWN.js → chunk-AP7BDTTF.js} +4 -4
  46. package/dist/{chunk-UKDGDMWN.js.map → chunk-AP7BDTTF.js.map} +1 -1
  47. package/dist/{chunk-7U7RP6N2.cjs → chunk-AWDIKDX5.cjs} +10 -10
  48. package/dist/{chunk-7U7RP6N2.cjs.map → chunk-AWDIKDX5.cjs.map} +1 -1
  49. package/dist/{chunk-5AYGQJOW.js → chunk-BCCPNGUV.js} +4 -4
  50. package/dist/{chunk-5AYGQJOW.js.map → chunk-BCCPNGUV.js.map} +1 -1
  51. package/dist/{chunk-QRKRVCA3.cjs → chunk-BLRWA445.cjs} +25 -25
  52. package/dist/{chunk-QRKRVCA3.cjs.map → chunk-BLRWA445.cjs.map} +1 -1
  53. package/dist/{chunk-BA4A7C7U.js → chunk-BSAZRW6T.js} +8 -8
  54. package/dist/{chunk-BA4A7C7U.js.map → chunk-BSAZRW6T.js.map} +1 -1
  55. package/dist/{chunk-5TT4PGZO.cjs → chunk-BUESV4DR.cjs} +9 -9
  56. package/dist/{chunk-5TT4PGZO.cjs.map → chunk-BUESV4DR.cjs.map} +1 -1
  57. package/dist/{chunk-HPVXP3DG.cjs → chunk-BULJWVPU.cjs} +16 -16
  58. package/dist/{chunk-HPVXP3DG.cjs.map → chunk-BULJWVPU.cjs.map} +1 -1
  59. package/dist/{chunk-L7BOLGF2.cjs → chunk-C6EYCIKJ.cjs} +3 -3
  60. package/dist/{chunk-L7BOLGF2.cjs.map → chunk-C6EYCIKJ.cjs.map} +1 -1
  61. package/dist/{chunk-4H35H54I.cjs → chunk-C732WXKS.cjs} +12 -12
  62. package/dist/{chunk-4H35H54I.cjs.map → chunk-C732WXKS.cjs.map} +1 -1
  63. package/dist/{chunk-S4B2D427.js → chunk-CGYZ6QWY.js} +4 -4
  64. package/dist/{chunk-S4B2D427.js.map → chunk-CGYZ6QWY.js.map} +1 -1
  65. package/dist/{chunk-QCT4BPB6.cjs → chunk-CKTXDIH4.cjs} +39 -40
  66. package/dist/chunk-CKTXDIH4.cjs.map +1 -0
  67. package/dist/{chunk-PYW5UO2Z.js → chunk-D3LZQ5QS.js} +4 -4
  68. package/dist/chunk-D3LZQ5QS.js.map +1 -0
  69. package/dist/{chunk-D3SSMY73.cjs → chunk-DIRVAHOF.cjs} +6 -6
  70. package/dist/{chunk-D3SSMY73.cjs.map → chunk-DIRVAHOF.cjs.map} +1 -1
  71. package/dist/{chunk-ZD3NPHZ7.cjs → chunk-DP7VC4FW.cjs} +4 -4
  72. package/dist/{chunk-ZD3NPHZ7.cjs.map → chunk-DP7VC4FW.cjs.map} +1 -1
  73. package/dist/{chunk-NYQPIBOD.cjs → chunk-DVGLYE3G.cjs} +10 -10
  74. package/dist/{chunk-NYQPIBOD.cjs.map → chunk-DVGLYE3G.cjs.map} +1 -1
  75. package/dist/{chunk-ZWULWVN3.js → chunk-DWUEPOYH.js} +7 -7
  76. package/dist/{chunk-ZWULWVN3.js.map → chunk-DWUEPOYH.js.map} +1 -1
  77. package/dist/{chunk-UN35QV25.js → chunk-DXPQRAGI.js} +4 -4
  78. package/dist/{chunk-UN35QV25.js.map → chunk-DXPQRAGI.js.map} +1 -1
  79. package/dist/{chunk-3XDUR3IG.cjs → chunk-E2A3GJSN.cjs} +5 -5
  80. package/dist/{chunk-3XDUR3IG.cjs.map → chunk-E2A3GJSN.cjs.map} +1 -1
  81. package/dist/{chunk-OULO3YDQ.cjs → chunk-EALKX3ST.cjs} +7 -7
  82. package/dist/{chunk-OULO3YDQ.cjs.map → chunk-EALKX3ST.cjs.map} +1 -1
  83. package/dist/{chunk-VAK4JQYL.js → chunk-EBDODJ5X.js} +6 -6
  84. package/dist/{chunk-VAK4JQYL.js.map → chunk-EBDODJ5X.js.map} +1 -1
  85. package/dist/{chunk-U5GTHA44.cjs → chunk-FB245S6T.cjs} +11 -11
  86. package/dist/{chunk-U5GTHA44.cjs.map → chunk-FB245S6T.cjs.map} +1 -1
  87. package/dist/{chunk-RNB4BDEG.js → chunk-FDUO2HVX.js} +3 -3
  88. package/dist/{chunk-RNB4BDEG.js.map → chunk-FDUO2HVX.js.map} +1 -1
  89. package/dist/{chunk-6W3L6IJB.cjs → chunk-FDZQPWFZ.cjs} +11 -11
  90. package/dist/{chunk-6W3L6IJB.cjs.map → chunk-FDZQPWFZ.cjs.map} +1 -1
  91. package/dist/{chunk-3L6KAW7G.js → chunk-FMLIYHDP.js} +5 -5
  92. package/dist/{chunk-3L6KAW7G.js.map → chunk-FMLIYHDP.js.map} +1 -1
  93. package/dist/{chunk-XADTIY7J.cjs → chunk-FNOUX5T2.cjs} +5 -5
  94. package/dist/{chunk-XADTIY7J.cjs.map → chunk-FNOUX5T2.cjs.map} +1 -1
  95. package/dist/{chunk-LFRTNC7M.cjs → chunk-FNZOICR4.cjs} +7 -7
  96. package/dist/{chunk-LFRTNC7M.cjs.map → chunk-FNZOICR4.cjs.map} +1 -1
  97. package/dist/{chunk-IRSJHEYI.js → chunk-FP5E5BUM.js} +3 -3
  98. package/dist/{chunk-IRSJHEYI.js.map → chunk-FP5E5BUM.js.map} +1 -1
  99. package/dist/{chunk-ZVH3BLYO.js → chunk-G2U2W422.js} +6 -6
  100. package/dist/{chunk-ZVH3BLYO.js.map → chunk-G2U2W422.js.map} +1 -1
  101. package/dist/{chunk-W3KMDQKP.cjs → chunk-G2WW52GO.cjs} +12 -12
  102. package/dist/{chunk-W3KMDQKP.cjs.map → chunk-G2WW52GO.cjs.map} +1 -1
  103. package/dist/{chunk-U2U4FMFM.cjs → chunk-G3KKLGZU.cjs} +9 -9
  104. package/dist/{chunk-U2U4FMFM.cjs.map → chunk-G3KKLGZU.cjs.map} +1 -1
  105. package/dist/{chunk-IKF6VHA4.cjs → chunk-GC5VUTUR.cjs} +4 -4
  106. package/dist/{chunk-IKF6VHA4.cjs.map → chunk-GC5VUTUR.cjs.map} +1 -1
  107. package/dist/{chunk-QL3YSC3H.cjs → chunk-GL7PSN7H.cjs} +15 -15
  108. package/dist/{chunk-QL3YSC3H.cjs.map → chunk-GL7PSN7H.cjs.map} +1 -1
  109. package/dist/{chunk-WMXIUOOU.cjs → chunk-GYVWTH3U.cjs} +3 -3
  110. package/dist/{chunk-WMXIUOOU.cjs.map → chunk-GYVWTH3U.cjs.map} +1 -1
  111. package/dist/{chunk-UXDXE7Z6.cjs → chunk-H2CZ6IE5.cjs} +38 -36
  112. package/dist/chunk-H2CZ6IE5.cjs.map +1 -0
  113. package/dist/{chunk-MGVEX3RS.js → chunk-H7HQYBPH.js} +25 -26
  114. package/dist/chunk-H7HQYBPH.js.map +1 -0
  115. package/dist/{chunk-ZNUOFLCQ.js → chunk-HINS4GY6.js} +3 -3
  116. package/dist/chunk-HINS4GY6.js.map +1 -0
  117. package/dist/{chunk-EC2ALHNJ.js → chunk-HNZWPIJE.js} +8 -8
  118. package/dist/{chunk-EC2ALHNJ.js.map → chunk-HNZWPIJE.js.map} +1 -1
  119. package/dist/{chunk-3ZFEBOXD.cjs → chunk-IA5GII7N.cjs} +16 -16
  120. package/dist/chunk-IA5GII7N.cjs.map +1 -0
  121. package/dist/{chunk-EHCAF6D3.js → chunk-IAVZKGZS.js} +14 -3
  122. package/dist/chunk-IAVZKGZS.js.map +1 -0
  123. package/dist/{chunk-AJTJD5C6.js → chunk-ILEKDNP7.js} +6 -6
  124. package/dist/{chunk-AJTJD5C6.js.map → chunk-ILEKDNP7.js.map} +1 -1
  125. package/dist/{chunk-XSQOHNIF.js → chunk-J3DNWPXJ.js} +3 -3
  126. package/dist/{chunk-XSQOHNIF.js.map → chunk-J3DNWPXJ.js.map} +1 -1
  127. package/dist/{chunk-M3BF3BBJ.cjs → chunk-J4OEETYQ.cjs} +10 -10
  128. package/dist/{chunk-M3BF3BBJ.cjs.map → chunk-J4OEETYQ.cjs.map} +1 -1
  129. package/dist/{chunk-YSTESYUB.js → chunk-J5IRFGUP.js} +8 -8
  130. package/dist/chunk-J5IRFGUP.js.map +1 -0
  131. package/dist/{chunk-5D4LRSIV.js → chunk-JDAJ2HJQ.js} +6 -6
  132. package/dist/{chunk-5D4LRSIV.js.map → chunk-JDAJ2HJQ.js.map} +1 -1
  133. package/dist/{chunk-3DJ46WN4.js → chunk-JIVYPJKO.js} +6 -6
  134. package/dist/{chunk-3DJ46WN4.js.map → chunk-JIVYPJKO.js.map} +1 -1
  135. package/dist/{chunk-U2WVHZ24.cjs → chunk-JJ324PSZ.cjs} +6 -6
  136. package/dist/chunk-JJ324PSZ.cjs.map +1 -0
  137. package/dist/{chunk-EE2O457Z.cjs → chunk-JSINCF2R.cjs} +10 -10
  138. package/dist/{chunk-EE2O457Z.cjs.map → chunk-JSINCF2R.cjs.map} +1 -1
  139. package/dist/{chunk-X2GRBPCJ.cjs → chunk-JTFNNEWR.cjs} +7 -7
  140. package/dist/{chunk-X2GRBPCJ.cjs.map → chunk-JTFNNEWR.cjs.map} +1 -1
  141. package/dist/{chunk-YAYINZT2.cjs → chunk-JYVYCU22.cjs} +3 -3
  142. package/dist/{chunk-YAYINZT2.cjs.map → chunk-JYVYCU22.cjs.map} +1 -1
  143. package/dist/{chunk-PQRIV5XU.js → chunk-K3XHXWBW.js} +9 -9
  144. package/dist/{chunk-PQRIV5XU.js.map → chunk-K3XHXWBW.js.map} +1 -1
  145. package/dist/{chunk-65QAZWOG.cjs → chunk-K4ZJNQTX.cjs} +4 -4
  146. package/dist/{chunk-65QAZWOG.cjs.map → chunk-K4ZJNQTX.cjs.map} +1 -1
  147. package/dist/{chunk-CZM5FAWL.cjs → chunk-KDR5DCYL.cjs} +9 -9
  148. package/dist/{chunk-CZM5FAWL.cjs.map → chunk-KDR5DCYL.cjs.map} +1 -1
  149. package/dist/{chunk-GLJWAY4A.cjs → chunk-KXIILLQD.cjs} +10 -10
  150. package/dist/{chunk-GLJWAY4A.cjs.map → chunk-KXIILLQD.cjs.map} +1 -1
  151. package/dist/{chunk-Y4FH67QZ.js → chunk-L6VSBBPP.js} +7 -7
  152. package/dist/{chunk-Y4FH67QZ.js.map → chunk-L6VSBBPP.js.map} +1 -1
  153. package/dist/{chunk-O4RTJESR.js → chunk-LNT2IFOA.js} +4 -4
  154. package/dist/{chunk-O4RTJESR.js.map → chunk-LNT2IFOA.js.map} +1 -1
  155. package/dist/{chunk-MUUPZEZ5.cjs → chunk-LO5NZY7N.cjs} +5 -5
  156. package/dist/{chunk-MUUPZEZ5.cjs.map → chunk-LO5NZY7N.cjs.map} +1 -1
  157. package/dist/{chunk-CN2HJ7CP.js → chunk-LQIZSE3O.js} +8 -8
  158. package/dist/{chunk-CN2HJ7CP.js.map → chunk-LQIZSE3O.js.map} +1 -1
  159. package/dist/{chunk-5GNYP3PH.cjs → chunk-LUQVSNQL.cjs} +16 -9
  160. package/dist/chunk-LUQVSNQL.cjs.map +1 -0
  161. package/dist/{chunk-TF7IWMV2.js → chunk-LY6Z6A54.js} +8 -8
  162. package/dist/{chunk-TF7IWMV2.js.map → chunk-LY6Z6A54.js.map} +1 -1
  163. package/dist/{chunk-QEFE4QBL.cjs → chunk-M26XECB2.cjs} +14 -14
  164. package/dist/{chunk-QEFE4QBL.cjs.map → chunk-M26XECB2.cjs.map} +1 -1
  165. package/dist/{chunk-VVO7GIHG.cjs → chunk-M2MC3E27.cjs} +7 -7
  166. package/dist/{chunk-VVO7GIHG.cjs.map → chunk-M2MC3E27.cjs.map} +1 -1
  167. package/dist/{chunk-HVUYVPQL.cjs → chunk-MAYQGKKW.cjs} +4 -4
  168. package/dist/{chunk-HVUYVPQL.cjs.map → chunk-MAYQGKKW.cjs.map} +1 -1
  169. package/dist/{chunk-2IKWX66Q.js → chunk-MI5QU37D.js} +5 -5
  170. package/dist/{chunk-2IKWX66Q.js.map → chunk-MI5QU37D.js.map} +1 -1
  171. package/dist/{chunk-XUJZTD4E.js → chunk-NFABMGNH.js} +54 -45
  172. package/dist/chunk-NFABMGNH.js.map +1 -0
  173. package/dist/{chunk-4MRORQNN.js → chunk-NI55JEYL.js} +4 -4
  174. package/dist/{chunk-4MRORQNN.js.map → chunk-NI55JEYL.js.map} +1 -1
  175. package/dist/{chunk-6MOJEGDU.cjs → chunk-O2WICOUK.cjs} +5 -5
  176. package/dist/{chunk-6MOJEGDU.cjs.map → chunk-O2WICOUK.cjs.map} +1 -1
  177. package/dist/{chunk-LX64ENLC.cjs → chunk-OBWWRRL6.cjs} +43 -43
  178. package/dist/chunk-OBWWRRL6.cjs.map +1 -0
  179. package/dist/{chunk-NH7KH7QP.js → chunk-PIOMR4X2.js} +5 -5
  180. package/dist/{chunk-NH7KH7QP.js.map → chunk-PIOMR4X2.js.map} +1 -1
  181. package/dist/{chunk-75CPTIET.js → chunk-PIZMCOKL.js} +3 -3
  182. package/dist/{chunk-75CPTIET.js.map → chunk-PIZMCOKL.js.map} +1 -1
  183. package/dist/{chunk-L5YTMHDI.cjs → chunk-PQEFVHJZ.cjs} +10 -10
  184. package/dist/{chunk-L5YTMHDI.cjs.map → chunk-PQEFVHJZ.cjs.map} +1 -1
  185. package/dist/{chunk-I7KILUVL.cjs → chunk-QATCDVZ6.cjs} +12 -12
  186. package/dist/{chunk-I7KILUVL.cjs.map → chunk-QATCDVZ6.cjs.map} +1 -1
  187. package/dist/{chunk-BRB52QFV.cjs → chunk-QOKEU3DC.cjs} +15 -15
  188. package/dist/{chunk-BRB52QFV.cjs.map → chunk-QOKEU3DC.cjs.map} +1 -1
  189. package/dist/{chunk-76B2VLID.js → chunk-QRFDPG34.js} +5 -5
  190. package/dist/{chunk-76B2VLID.js.map → chunk-QRFDPG34.js.map} +1 -1
  191. package/dist/{chunk-3IBY374V.cjs → chunk-QVNDZZS6.cjs} +10 -10
  192. package/dist/{chunk-3IBY374V.cjs.map → chunk-QVNDZZS6.cjs.map} +1 -1
  193. package/dist/{chunk-EBQ3A4XO.js → chunk-QY6OMQW6.js} +5 -5
  194. package/dist/{chunk-EBQ3A4XO.js.map → chunk-QY6OMQW6.js.map} +1 -1
  195. package/dist/{chunk-XIFLSMGW.js → chunk-R6CMJMIJ.js} +3 -3
  196. package/dist/{chunk-XIFLSMGW.js.map → chunk-R6CMJMIJ.js.map} +1 -1
  197. package/dist/{chunk-ASJ5CBCR.js → chunk-RLOGQBFD.js} +6 -6
  198. package/dist/{chunk-ASJ5CBCR.js.map → chunk-RLOGQBFD.js.map} +1 -1
  199. package/dist/{chunk-S4LVSSJI.js → chunk-S7INL5NI.js} +6 -6
  200. package/dist/{chunk-S4LVSSJI.js.map → chunk-S7INL5NI.js.map} +1 -1
  201. package/dist/{chunk-HNROO7CR.js → chunk-SBOXHIES.js} +13 -13
  202. package/dist/{chunk-HNROO7CR.js.map → chunk-SBOXHIES.js.map} +1 -1
  203. package/dist/{chunk-KFDHP4WP.cjs → chunk-SBS7U7CN.cjs} +6 -6
  204. package/dist/{chunk-KFDHP4WP.cjs.map → chunk-SBS7U7CN.cjs.map} +1 -1
  205. package/dist/{chunk-WYE3VOFK.cjs → chunk-SCGXGVNN.cjs} +16 -16
  206. package/dist/{chunk-WYE3VOFK.cjs.map → chunk-SCGXGVNN.cjs.map} +1 -1
  207. package/dist/{chunk-54J6FRPG.js → chunk-SOCSUNIM.js} +9 -9
  208. package/dist/{chunk-54J6FRPG.js.map → chunk-SOCSUNIM.js.map} +1 -1
  209. package/dist/{chunk-BS55BG2U.cjs → chunk-SR5VVJ5Y.cjs} +7 -7
  210. package/dist/{chunk-BS55BG2U.cjs.map → chunk-SR5VVJ5Y.cjs.map} +1 -1
  211. package/dist/{chunk-YLGAJD6Q.js → chunk-SSAYBCAD.js} +4 -4
  212. package/dist/{chunk-YLGAJD6Q.js.map → chunk-SSAYBCAD.js.map} +1 -1
  213. package/dist/{chunk-24J3BUKL.js → chunk-SUH62Z64.js} +3 -3
  214. package/dist/{chunk-24J3BUKL.js.map → chunk-SUH62Z64.js.map} +1 -1
  215. package/dist/{chunk-PL6J55JB.cjs → chunk-TBOQTPRO.cjs} +9 -9
  216. package/dist/{chunk-PL6J55JB.cjs.map → chunk-TBOQTPRO.cjs.map} +1 -1
  217. package/dist/{chunk-YNTPHZFJ.js → chunk-TCTPR7YQ.js} +3 -3
  218. package/dist/{chunk-YNTPHZFJ.js.map → chunk-TCTPR7YQ.js.map} +1 -1
  219. package/dist/{chunk-M3RNFDA2.cjs → chunk-TF7XVTSP.cjs} +59 -50
  220. package/dist/chunk-TF7XVTSP.cjs.map +1 -0
  221. package/dist/{chunk-CRQXHA7N.js → chunk-TKTLWX2V.js} +7 -7
  222. package/dist/{chunk-CRQXHA7N.js.map → chunk-TKTLWX2V.js.map} +1 -1
  223. package/dist/{chunk-F3NATTQG.cjs → chunk-TPB53MHV.cjs} +14 -14
  224. package/dist/{chunk-F3NATTQG.cjs.map → chunk-TPB53MHV.cjs.map} +1 -1
  225. package/dist/{chunk-MSNRGNVY.cjs → chunk-TQA3BI7M.cjs} +7 -7
  226. package/dist/{chunk-MSNRGNVY.cjs.map → chunk-TQA3BI7M.cjs.map} +1 -1
  227. package/dist/{chunk-WO6FS4DV.js → chunk-U6NH54YD.js} +5 -5
  228. package/dist/{chunk-WO6FS4DV.js.map → chunk-U6NH54YD.js.map} +1 -1
  229. package/dist/{chunk-NUTB2K4G.js → chunk-U7ALNPFJ.js} +3 -3
  230. package/dist/{chunk-NUTB2K4G.js.map → chunk-U7ALNPFJ.js.map} +1 -1
  231. package/dist/{chunk-RINP34ZG.js → chunk-UKW2C5RN.js} +4 -4
  232. package/dist/{chunk-RINP34ZG.js.map → chunk-UKW2C5RN.js.map} +1 -1
  233. package/dist/{chunk-AMFFE5UJ.js → chunk-UUVLEOSD.js} +4 -4
  234. package/dist/{chunk-AMFFE5UJ.js.map → chunk-UUVLEOSD.js.map} +1 -1
  235. package/dist/{chunk-6NTDPZWP.js → chunk-VFGSNR35.js} +4 -4
  236. package/dist/{chunk-6NTDPZWP.js.map → chunk-VFGSNR35.js.map} +1 -1
  237. package/dist/{chunk-KRZ57O2J.cjs → chunk-VGHNBMEJ.cjs} +6 -6
  238. package/dist/{chunk-KRZ57O2J.cjs.map → chunk-VGHNBMEJ.cjs.map} +1 -1
  239. package/dist/{chunk-5BCLEOFF.cjs → chunk-VHKA25IV.cjs} +15 -15
  240. package/dist/{chunk-5BCLEOFF.cjs.map → chunk-VHKA25IV.cjs.map} +1 -1
  241. package/dist/{chunk-23NN5WRP.cjs → chunk-VK4O6W2K.cjs} +6 -6
  242. package/dist/{chunk-23NN5WRP.cjs.map → chunk-VK4O6W2K.cjs.map} +1 -1
  243. package/dist/{chunk-2VOB6LEI.js → chunk-VQ7U3ASC.js} +4 -4
  244. package/dist/{chunk-2VOB6LEI.js.map → chunk-VQ7U3ASC.js.map} +1 -1
  245. package/dist/{chunk-7MN4JDP7.js → chunk-VUCMGGU5.js} +14 -14
  246. package/dist/chunk-VUCMGGU5.js.map +1 -0
  247. package/dist/{chunk-IHM2M74J.js → chunk-W2Q4PQ6I.js} +3 -3
  248. package/dist/{chunk-IHM2M74J.js.map → chunk-W2Q4PQ6I.js.map} +1 -1
  249. package/dist/{chunk-UPQHFW47.js → chunk-W3C6QQF7.js} +5 -5
  250. package/dist/{chunk-UPQHFW47.js.map → chunk-W3C6QQF7.js.map} +1 -1
  251. package/dist/{chunk-P6RAOXJA.js → chunk-WBGFFP3G.js} +6 -6
  252. package/dist/{chunk-P6RAOXJA.js.map → chunk-WBGFFP3G.js.map} +1 -1
  253. package/dist/{chunk-CZC2K5GJ.js → chunk-WBQNPBXR.js} +5 -5
  254. package/dist/{chunk-CZC2K5GJ.js.map → chunk-WBQNPBXR.js.map} +1 -1
  255. package/dist/{chunk-3TXVDCF2.js → chunk-WY5BOT7O.js} +4 -4
  256. package/dist/{chunk-3TXVDCF2.js.map → chunk-WY5BOT7O.js.map} +1 -1
  257. package/dist/{chunk-CEU7BIL6.cjs → chunk-X574M2JB.cjs} +13 -13
  258. package/dist/{chunk-CEU7BIL6.cjs.map → chunk-X574M2JB.cjs.map} +1 -1
  259. package/dist/{chunk-7PNLMDAR.cjs → chunk-XLKXFJMU.cjs} +8 -8
  260. package/dist/{chunk-7PNLMDAR.cjs.map → chunk-XLKXFJMU.cjs.map} +1 -1
  261. package/dist/{chunk-W5G7ZDQ6.cjs → chunk-XLNRO3S6.cjs} +4 -4
  262. package/dist/{chunk-W5G7ZDQ6.cjs.map → chunk-XLNRO3S6.cjs.map} +1 -1
  263. package/dist/{chunk-A66NIFJE.cjs → chunk-XXBA3KSH.cjs} +5 -5
  264. package/dist/{chunk-A66NIFJE.cjs.map → chunk-XXBA3KSH.cjs.map} +1 -1
  265. package/dist/{chunk-OWBNRALR.js → chunk-YAWVGZRC.js} +6 -6
  266. package/dist/{chunk-OWBNRALR.js.map → chunk-YAWVGZRC.js.map} +1 -1
  267. package/dist/{chunk-JEIQ5GDK.cjs → chunk-YHBYVERE.cjs} +18 -18
  268. package/dist/{chunk-JEIQ5GDK.cjs.map → chunk-YHBYVERE.cjs.map} +1 -1
  269. package/dist/{chunk-CPOYENSZ.cjs → chunk-YO3MBGBP.cjs} +4 -4
  270. package/dist/{chunk-CPOYENSZ.cjs.map → chunk-YO3MBGBP.cjs.map} +1 -1
  271. package/dist/{chunk-EVKFA5FA.cjs → chunk-YVHWOKR7.cjs} +23 -23
  272. package/dist/{chunk-EVKFA5FA.cjs.map → chunk-YVHWOKR7.cjs.map} +1 -1
  273. package/dist/{chunk-66LRFIYK.cjs → chunk-YWGYN6YV.cjs} +9 -9
  274. package/dist/{chunk-66LRFIYK.cjs.map → chunk-YWGYN6YV.cjs.map} +1 -1
  275. package/dist/{chunk-BAPCHFNX.cjs → chunk-YY6KJO5Z.cjs} +12 -12
  276. package/dist/{chunk-BAPCHFNX.cjs.map → chunk-YY6KJO5Z.cjs.map} +1 -1
  277. package/dist/{chunk-UYBGXFYX.js → chunk-YYNWZRXZ.js} +20 -18
  278. package/dist/chunk-YYNWZRXZ.js.map +1 -0
  279. package/dist/{chunk-5QPM5LUS.cjs → chunk-Z6RT3WPE.cjs} +15 -4
  280. package/dist/chunk-Z6RT3WPE.cjs.map +1 -0
  281. package/dist/{chunk-VEUZ5DZR.js → chunk-ZAX2UJBC.js} +6 -6
  282. package/dist/{chunk-VEUZ5DZR.js.map → chunk-ZAX2UJBC.js.map} +1 -1
  283. package/dist/{chunk-LHP47U6H.js → chunk-ZEA2VYX4.js} +3 -3
  284. package/dist/{chunk-LHP47U6H.js.map → chunk-ZEA2VYX4.js.map} +1 -1
  285. package/dist/{chunk-QEX7V7TI.cjs → chunk-ZFBQ4R7M.cjs} +10 -10
  286. package/dist/{chunk-QEX7V7TI.cjs.map → chunk-ZFBQ4R7M.cjs.map} +1 -1
  287. package/dist/{chunk-AX6HC2YY.cjs → chunk-ZN7CULIL.cjs} +3 -3
  288. package/dist/{chunk-AX6HC2YY.cjs.map → chunk-ZN7CULIL.cjs.map} +1 -1
  289. package/dist/{chunk-FZCBTFHY.js → chunk-ZQUPAIBS.js} +4 -4
  290. package/dist/{chunk-FZCBTFHY.js.map → chunk-ZQUPAIBS.js.map} +1 -1
  291. package/dist/{chunk-VJBBMBRT.cjs → chunk-ZTWBG2XY.cjs} +7 -7
  292. package/dist/{chunk-VJBBMBRT.cjs.map → chunk-ZTWBG2XY.cjs.map} +1 -1
  293. package/dist/components/Accordion/index.cjs +6 -7
  294. package/dist/components/Accordion/index.js +3 -4
  295. package/dist/components/Alert/index.cjs +12 -13
  296. package/dist/components/Alert/index.js +11 -12
  297. package/dist/components/AlertDialog/index.cjs +15 -16
  298. package/dist/components/AlertDialog/index.js +13 -14
  299. package/dist/components/AppShell/index.cjs +20 -21
  300. package/dist/components/AppShell/index.js +17 -18
  301. package/dist/components/AspectRatio/index.cjs +3 -3
  302. package/dist/components/AspectRatio/index.js +2 -2
  303. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts +3 -1
  304. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
  305. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts +3 -1
  306. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
  307. package/dist/components/AutocompleteInput/index.cjs +20 -21
  308. package/dist/components/AutocompleteInput/index.d.ts +1 -1
  309. package/dist/components/AutocompleteInput/index.d.ts.map +1 -1
  310. package/dist/components/AutocompleteInput/index.js +15 -16
  311. package/dist/components/AutocompleteInput/types.d.ts +3 -3
  312. package/dist/components/AutocompleteInput/types.d.ts.map +1 -1
  313. package/dist/components/Avatar/index.cjs +6 -7
  314. package/dist/components/Avatar/index.js +3 -4
  315. package/dist/components/AvatarGroup/index.cjs +6 -7
  316. package/dist/components/AvatarGroup/index.js +4 -5
  317. package/dist/components/Badge/index.cjs +1 -1
  318. package/dist/components/Badge/index.js +1 -1
  319. package/dist/components/Blockquote/index.cjs +4 -5
  320. package/dist/components/Blockquote/index.js +3 -4
  321. package/dist/components/Breadcrumbs/index.cjs +10 -11
  322. package/dist/components/Breadcrumbs/index.js +7 -8
  323. package/dist/components/Button/index.cjs +11 -12
  324. package/dist/components/Button/index.js +10 -11
  325. package/dist/components/ButtonGroup/index.cjs +1 -1
  326. package/dist/components/ButtonGroup/index.js +1 -1
  327. package/dist/components/Calendar/index.cjs +12 -13
  328. package/dist/components/Calendar/index.js +11 -12
  329. package/dist/components/Card/index.cjs +1 -1
  330. package/dist/components/Card/index.js +1 -1
  331. package/dist/components/Center/index.cjs +1 -1
  332. package/dist/components/Center/index.js +1 -1
  333. package/dist/components/CheckboxInput/index.cjs +12 -13
  334. package/dist/components/CheckboxInput/index.js +11 -12
  335. package/dist/components/CodeBlock/index.cjs +13 -14
  336. package/dist/components/CodeBlock/index.js +12 -13
  337. package/dist/components/ContextMenu/index.cjs +17 -18
  338. package/dist/components/ContextMenu/index.js +15 -16
  339. package/dist/components/DateInput/index.cjs +16 -17
  340. package/dist/components/DateInput/index.js +15 -16
  341. package/dist/components/DateRangeInput/index.cjs +16 -17
  342. package/dist/components/DateRangeInput/index.js +15 -16
  343. package/dist/components/DateTimeInput/index.cjs +18 -19
  344. package/dist/components/DateTimeInput/index.js +17 -18
  345. package/dist/components/Dialog/index.cjs +5 -6
  346. package/dist/components/Dialog/index.js +3 -4
  347. package/dist/components/Divider/index.cjs +4 -5
  348. package/dist/components/Divider/index.js +3 -4
  349. package/dist/components/Drawer/index.cjs +4 -4
  350. package/dist/components/Drawer/index.js +2 -2
  351. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  352. package/dist/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  353. package/dist/components/DropdownMenu/DropdownMenuItem.recipe.d.ts +36 -0
  354. package/dist/components/DropdownMenu/DropdownMenuItem.recipe.d.ts.map +1 -0
  355. package/dist/components/DropdownMenu/index.cjs +18 -19
  356. package/dist/components/DropdownMenu/index.js +14 -15
  357. package/dist/components/EmptyState/index.cjs +7 -8
  358. package/dist/components/EmptyState/index.js +6 -7
  359. package/dist/components/Field/index.cjs +10 -11
  360. package/dist/components/Field/index.js +8 -9
  361. package/dist/components/FileInput/index.cjs +14 -15
  362. package/dist/components/FileInput/index.js +13 -14
  363. package/dist/components/HoverCard/index.cjs +5 -5
  364. package/dist/components/HoverCard/index.js +3 -3
  365. package/dist/components/HoverCard/useHoverCard.d.ts.map +1 -1
  366. package/dist/components/Icon/index.cjs +1 -1
  367. package/dist/components/Icon/index.js +1 -1
  368. package/dist/components/InputGroup/index.cjs +13 -14
  369. package/dist/components/InputGroup/index.js +9 -10
  370. package/dist/components/Item/index.cjs +8 -9
  371. package/dist/components/Item/index.js +7 -8
  372. package/dist/components/Kbd/index.cjs +4 -5
  373. package/dist/components/Kbd/index.js +3 -4
  374. package/dist/components/Layout/index.cjs +16 -17
  375. package/dist/components/Layout/index.js +11 -12
  376. package/dist/components/Lightbox/index.cjs +13 -14
  377. package/dist/components/Lightbox/index.js +11 -12
  378. package/dist/components/Link/index.cjs +8 -9
  379. package/dist/components/Link/index.js +5 -6
  380. package/dist/components/List/index.cjs +11 -12
  381. package/dist/components/List/index.js +9 -10
  382. package/dist/components/MetadataList/index.cjs +7 -8
  383. package/dist/components/MetadataList/index.js +5 -6
  384. package/dist/components/MultiSelect/index.cjs +15 -16
  385. package/dist/components/MultiSelect/index.js +14 -15
  386. package/dist/components/NavIcon/index.cjs +3 -3
  387. package/dist/components/NavIcon/index.js +2 -2
  388. package/dist/components/NumberInput/index.cjs +15 -16
  389. package/dist/components/NumberInput/index.js +14 -15
  390. package/dist/components/Pagination/index.cjs +12 -13
  391. package/dist/components/Pagination/index.js +11 -12
  392. package/dist/components/PasswordInput/index.cjs +16 -17
  393. package/dist/components/PasswordInput/index.js +15 -16
  394. package/dist/components/Popover/Popover.d.ts.map +1 -1
  395. package/dist/components/Popover/index.cjs +13 -14
  396. package/dist/components/Popover/index.js +11 -12
  397. package/dist/components/Progress/index.cjs +5 -6
  398. package/dist/components/Progress/index.js +4 -5
  399. package/dist/components/RadioGroup/index.cjs +13 -14
  400. package/dist/components/RadioGroup/index.js +11 -12
  401. package/dist/components/Rating/index.cjs +5 -6
  402. package/dist/components/Rating/index.js +4 -5
  403. package/dist/components/Schedule/ListView.d.ts.map +1 -1
  404. package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
  405. package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
  406. package/dist/components/Schedule/index.cjs +26 -27
  407. package/dist/components/Schedule/index.js +15 -16
  408. package/dist/components/Schedule/shared.d.ts.map +1 -1
  409. package/dist/components/SearchFilterInput/index.cjs +33 -34
  410. package/dist/components/SearchFilterInput/index.js +25 -26
  411. package/dist/components/SegmentedControl/index.cjs +5 -5
  412. package/dist/components/SegmentedControl/index.js +3 -3
  413. package/dist/components/Select/index.cjs +17 -18
  414. package/dist/components/Select/index.js +15 -16
  415. package/dist/components/SideNav/index.cjs +19 -20
  416. package/dist/components/SideNav/index.js +13 -14
  417. package/dist/components/Skeleton/index.cjs +1 -1
  418. package/dist/components/Skeleton/index.js +1 -1
  419. package/dist/components/Slider/index.cjs +10 -11
  420. package/dist/components/Slider/index.js +9 -10
  421. package/dist/components/Spinner/index.cjs +7 -8
  422. package/dist/components/Spinner/index.js +6 -7
  423. package/dist/components/SplitButton/index.cjs +16 -17
  424. package/dist/components/SplitButton/index.js +15 -16
  425. package/dist/components/Stack/index.cjs +1 -1
  426. package/dist/components/Stack/index.js +1 -1
  427. package/dist/components/Stepper/index.cjs +8 -9
  428. package/dist/components/Stepper/index.js +5 -6
  429. package/dist/components/Switch/index.cjs +9 -10
  430. package/dist/components/Switch/index.js +8 -9
  431. package/dist/components/Table/index.cjs +57 -58
  432. package/dist/components/Table/index.js +29 -30
  433. package/dist/components/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
  434. package/dist/components/Tabs/index.cjs +17 -18
  435. package/dist/components/Tabs/index.js +12 -13
  436. package/dist/components/Tag/index.cjs +8 -9
  437. package/dist/components/Tag/index.js +7 -8
  438. package/dist/components/TagsInput/TagsInput.d.ts +3 -1
  439. package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
  440. package/dist/components/TagsInput/index.cjs +17 -18
  441. package/dist/components/TagsInput/index.js +16 -17
  442. package/dist/components/Text/index.cjs +6 -6
  443. package/dist/components/Text/index.js +4 -4
  444. package/dist/components/TextArea/index.cjs +11 -12
  445. package/dist/components/TextArea/index.js +10 -11
  446. package/dist/components/TextInput/index.cjs +15 -16
  447. package/dist/components/TextInput/index.js +14 -15
  448. package/dist/components/Thumbnail/index.cjs +12 -13
  449. package/dist/components/Thumbnail/index.js +11 -12
  450. package/dist/components/TimeInput/index.cjs +14 -15
  451. package/dist/components/TimeInput/index.js +13 -14
  452. package/dist/components/Toast/index.cjs +14 -15
  453. package/dist/components/Toast/index.js +11 -12
  454. package/dist/components/ToggleButton/index.cjs +10 -11
  455. package/dist/components/ToggleButton/index.js +8 -9
  456. package/dist/components/Tooltip/index.cjs +5 -5
  457. package/dist/components/Tooltip/index.js +3 -3
  458. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
  459. package/dist/components/TopNav/index.cjs +19 -20
  460. package/dist/components/TopNav/index.js +13 -14
  461. package/dist/components/TreeView/index.cjs +3 -3
  462. package/dist/components/TreeView/index.js +2 -2
  463. package/dist/index.cjs +243 -244
  464. package/dist/index.cjs.map +1 -1
  465. package/dist/index.d.ts +1 -1
  466. package/dist/index.d.ts.map +1 -1
  467. package/dist/index.js +74 -75
  468. package/dist/index.js.map +1 -1
  469. package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
  470. package/dist/internal/useLayer.d.ts.map +1 -1
  471. package/package.json +1 -1
  472. package/dist/chunk-3ZFEBOXD.cjs.map +0 -1
  473. package/dist/chunk-5GNYP3PH.cjs.map +0 -1
  474. package/dist/chunk-5QPM5LUS.cjs.map +0 -1
  475. package/dist/chunk-6BK4LUK4.cjs +0 -17
  476. package/dist/chunk-6BK4LUK4.cjs.map +0 -1
  477. package/dist/chunk-7GN6YTSS.cjs.map +0 -1
  478. package/dist/chunk-7MN4JDP7.js.map +0 -1
  479. package/dist/chunk-D2DOHX4W.js.map +0 -1
  480. package/dist/chunk-EHCAF6D3.js.map +0 -1
  481. package/dist/chunk-EMHLPPQZ.js.map +0 -1
  482. package/dist/chunk-GUKZNXTB.js +0 -15
  483. package/dist/chunk-GUKZNXTB.js.map +0 -1
  484. package/dist/chunk-HM7IEGQ2.cjs.map +0 -1
  485. package/dist/chunk-LX64ENLC.cjs.map +0 -1
  486. package/dist/chunk-M3RNFDA2.cjs.map +0 -1
  487. package/dist/chunk-MGVEX3RS.js.map +0 -1
  488. package/dist/chunk-PYW5UO2Z.js.map +0 -1
  489. package/dist/chunk-QCT4BPB6.cjs.map +0 -1
  490. package/dist/chunk-U2WVHZ24.cjs.map +0 -1
  491. package/dist/chunk-UXDXE7Z6.cjs.map +0 -1
  492. package/dist/chunk-UYBGXFYX.js.map +0 -1
  493. package/dist/chunk-XUJZTD4E.js.map +0 -1
  494. package/dist/chunk-YSTESYUB.js.map +0 -1
  495. package/dist/chunk-ZNUOFLCQ.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Alert/Alert.recipe.ts","../src/components/Alert/Alert.tsx"],"names":["sva","jsx","Icon","XCircle","Info","CheckCircle2","TriangleAlert","useId","useState","isReactNode","jsxs","cx","Text","Button","ChevronDown","X"],"mappings":"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","file":"chunk-M3BF3BBJ.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Symmetric padding overrides for the collapsible body. Keys mirror the\n * `SpacingToken` scale so the `padding` prop maps onto build-time-validated\n * spacing tokens instead of a runtime token lookup.\n */\nconst paddingVariants = {\n 0: {bodyContent: {px: '0', py: '0'}},\n 0.5: {bodyContent: {px: '0.5', py: '0.5'}},\n 1: {bodyContent: {px: '1', py: '1'}},\n 1.5: {bodyContent: {px: '1.5', py: '1.5'}},\n 2: {bodyContent: {px: '2', py: '2'}},\n 3: {bodyContent: {px: '3', py: '3'}},\n 4: {bodyContent: {px: '4', py: '4'}},\n 5: {bodyContent: {px: '5', py: '5'}},\n 6: {bodyContent: {px: '6', py: '6'}},\n 8: {bodyContent: {px: '8', py: '8'}},\n 10: {bodyContent: {px: '10', py: '10'}},\n};\n\nexport const alertRecipe = sva({\n slots: [\n 'root',\n 'header',\n 'icon',\n 'content',\n 'endArea',\n 'chevron',\n 'body',\n 'bodyContent',\n ],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n fontFamily: 'body',\n },\n header: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '2',\n px: '4',\n py: '3',\n },\n icon: {\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n },\n content: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n minW: 0,\n },\n endArea: {\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n gap: '2',\n ms: 'auto',\n },\n // The body stays mounted so child state and the `aria-controls` target are\n // preserved; it is collapsed with a `grid-template-rows` 1fr -> 0fr\n // transition (mirroring `AccordionItem`). `overflow: hidden` lives on this\n // grid so the body chrome on `bodyContent` is fully clipped when collapsed.\n body: {\n display: 'grid',\n gridTemplateRows: '1fr',\n overflow: 'hidden',\n // `visibility` is transitioned alongside the rows so the content stays\n // readable while collapsing, then becomes `hidden` (removing it from the\n // a11y tree and tab order) once closed. The inline `visibility` style in\n // the component drives the open/closed value.\n transitionProperty: 'grid-template-rows, visibility',\n transitionDuration: 'normal',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01s',\n },\n },\n bodyContent: {\n minH: 0,\n bg: 'bg',\n borderBlockEndWidth: 'default',\n borderColor: 'border',\n borderInlineWidth: 'default',\n borderStyle: 'solid',\n px: '4',\n py: '3',\n },\n },\n variants: {\n status: {\n error: {\n header: {\n bg: 'surface.red',\n color: 'surface.red.fg',\n '--silver-text-color': 'token(colors.surface.red.fg)',\n '--silver-text-color-muted': 'token(colors.surface.red.fg)',\n },\n },\n info: {\n header: {\n bg: 'surface.blue',\n color: 'surface.blue.fg',\n '--silver-text-color': 'token(colors.surface.blue.fg)',\n '--silver-text-color-muted': 'token(colors.surface.blue.fg)',\n },\n },\n success: {\n header: {\n bg: 'surface.green',\n color: 'surface.green.fg',\n '--silver-text-color': 'token(colors.surface.green.fg)',\n '--silver-text-color-muted': 'token(colors.surface.green.fg)',\n },\n },\n warning: {\n header: {\n bg: 'surface.yellow',\n color: 'surface.yellow.fg',\n '--silver-text-color': 'token(colors.surface.yellow.fg)',\n '--silver-text-color-muted': 'token(colors.surface.yellow.fg)',\n },\n },\n },\n container: {\n card: {\n header: {borderTopRadius: 'lg'},\n bodyContent: {borderBottomRadius: 'lg'},\n },\n section: {},\n },\n // Squares off the header's bottom corners while the body is revealed; the\n // compound variant rounds them back when there is no expanded content.\n hasContent: {\n true: {},\n false: {},\n },\n isCentered: {\n true: {header: {alignItems: 'center'}},\n false: {},\n },\n isExpanded: {\n true: {chevron: {transform: 'rotate(180deg)'}},\n false: {body: {gridTemplateRows: '0fr'}},\n },\n padding: paddingVariants,\n },\n compoundVariants: [\n {\n container: 'card',\n css: {header: {borderBottomRadius: 'lg'}},\n hasContent: false,\n },\n ],\n defaultVariants: {\n container: 'card',\n hasContent: false,\n isCentered: false,\n isExpanded: false,\n status: 'info',\n },\n});\n\nexport type AlertVariants = RecipeVariantProps<typeof alertRecipe>;\n","import {\n CheckCircle2,\n ChevronDown,\n Info,\n TriangleAlert,\n X,\n XCircle,\n} from 'lucide-react';\nimport {\n useId,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport type {SpacingToken} from '../../internal/spacingTokens';\nimport {Button} from '../Button';\nimport {Icon} from '../Icon';\nimport {Text} from '../Text';\nimport {alertRecipe, type AlertVariants} from './Alert.recipe';\n\n/**\n * Derived from the recipe's `container` variant so the prop stays in sync with\n * the styles.\n */\nexport type AlertContainer = NonNullable<\n NonNullable<AlertVariants>['container']\n>;\n/**\n * Derived from the recipe's `status` variant so the prop stays in sync with the\n * styles.\n */\nexport type AlertStatus = NonNullable<NonNullable<AlertVariants>['status']>;\n\nexport interface AlertProps {\n /**\n * Extra content rendered below the alert header in a collapsible area.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Visual container style.\n * @default 'card'\n */\n container?: AlertContainer;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Supporting description displayed below the title.\n */\n description?: ReactNode;\n /**\n * Content rendered at the end of the header, before collapse and dismiss controls.\n */\n endContent?: ReactNode;\n /**\n * Custom status icon. A default icon is rendered when omitted.\n */\n icon?: ReactNode;\n /**\n * Whether collapsible children are expanded initially.\n * @default false\n */\n isDefaultExpanded?: boolean;\n /**\n * Whether the alert can be dismissed.\n * @default false\n */\n isDismissable?: boolean;\n /**\n * Called when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n /**\n * Inner padding step.\n * @default 4\n */\n padding?: SpacingToken;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Status controlling role, icon, and color.\n */\n status: AlertStatus;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Primary alert title.\n */\n title: ReactNode;\n}\n\nconst statusRole: Record<AlertStatus, 'alert' | 'status'> = {\n error: 'alert',\n info: 'status',\n success: 'status',\n warning: 'alert',\n};\n\nconst defaultIcons: Record<AlertStatus, ReactNode> = {\n error: <Icon color=\"error\" icon={XCircle} />,\n info: <Icon color=\"info\" icon={Info} />,\n success: <Icon color=\"success\" icon={CheckCircle2} />,\n warning: <Icon color=\"warning\" icon={TriangleAlert} />,\n};\n\n/**\n * Displays a contextual message with status-based styling, an optional\n * collapsible body, and dismiss functionality.\n */\nexport function Alert({\n children,\n className,\n container = 'card',\n 'data-testid': dataTestId,\n description,\n endContent,\n icon,\n isDefaultExpanded = false,\n isDismissable = false,\n onDismiss,\n padding,\n ref,\n status,\n style,\n title,\n}: AlertProps): React.JSX.Element | null {\n const bodyId = useId();\n const [isDismissed, setIsDismissed] = useState(false);\n const [isExpanded, setIsExpanded] = useState(isDefaultExpanded);\n const hasChildren = isReactNode(children);\n // The body is kept mounted whenever there are children (so child state and\n // the `aria-controls` target survive collapsing); `isExpanded` only drives\n // the visual collapse. `showContent` reflects whether the body is currently\n // revealed, which the header uses to square off its bottom corners.\n const showContent = hasChildren && isExpanded;\n const showEndArea = isReactNode(endContent) || isDismissable || hasChildren;\n const isSingleLine =\n !isReactNode(description) &&\n (isReactNode(endContent) || isDismissable || hasChildren);\n\n if (isDismissed) {\n return null;\n }\n\n const classes = alertRecipe({\n container,\n hasContent: showContent,\n isCentered: isSingleLine,\n isExpanded,\n padding,\n status,\n });\n\n return (\n <div\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role={statusRole[status]}\n style={style}>\n <div className={classes.header}>\n <span aria-hidden=\"true\" className={classes.icon}>\n {icon ?? defaultIcons[status]}\n </span>\n <div className={classes.content}>\n <Text as=\"p\" type=\"label\" weight=\"semibold\">\n {title}\n </Text>\n {isReactNode(description) ? (\n <Text as=\"p\" color=\"secondary\" type=\"supporting\">\n {description}\n </Text>\n ) : null}\n </div>\n {showEndArea ? (\n <div className={classes.endArea}>\n {endContent}\n {hasChildren ? (\n <Button\n aria-controls={bodyId}\n aria-expanded={isExpanded}\n className={classes.chevron}\n icon={ChevronDown}\n isIconOnly\n label={isExpanded ? 'Collapse' : 'Expand'}\n onClick={() => setIsExpanded(value => !value)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {isDismissable ? (\n <Button\n icon={X}\n isIconOnly\n label=\"Dismiss\"\n onClick={() => {\n setIsDismissed(true);\n onDismiss?.();\n }}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n </div>\n ) : null}\n </div>\n {hasChildren ? (\n <div\n className={classes.body}\n id={bodyId}\n style={{visibility: isExpanded ? undefined : 'hidden'}}>\n <div className={classes.bodyContent}>{children}</div>\n </div>\n ) : null}\n </div>\n );\n}\n\nAlert.displayName = 'Alert';\n"]}
1
+ {"version":3,"sources":["../src/components/Alert/Alert.recipe.ts","../src/components/Alert/Alert.tsx"],"names":["sva","jsx","Icon","XCircle","Info","CheckCircle2","TriangleAlert","useId","useState","isReactNode","jsxs","cx","Text","Button","ChevronDown","X"],"mappings":"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","file":"chunk-J4OEETYQ.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Symmetric padding overrides for the collapsible body. Keys mirror the\n * `SpacingToken` scale so the `padding` prop maps onto build-time-validated\n * spacing tokens instead of a runtime token lookup.\n */\nconst paddingVariants = {\n 0: {bodyContent: {px: '0', py: '0'}},\n 0.5: {bodyContent: {px: '0.5', py: '0.5'}},\n 1: {bodyContent: {px: '1', py: '1'}},\n 1.5: {bodyContent: {px: '1.5', py: '1.5'}},\n 2: {bodyContent: {px: '2', py: '2'}},\n 3: {bodyContent: {px: '3', py: '3'}},\n 4: {bodyContent: {px: '4', py: '4'}},\n 5: {bodyContent: {px: '5', py: '5'}},\n 6: {bodyContent: {px: '6', py: '6'}},\n 8: {bodyContent: {px: '8', py: '8'}},\n 10: {bodyContent: {px: '10', py: '10'}},\n};\n\nexport const alertRecipe = sva({\n slots: [\n 'root',\n 'header',\n 'icon',\n 'content',\n 'endArea',\n 'chevron',\n 'body',\n 'bodyContent',\n ],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n fontFamily: 'body',\n },\n header: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '2',\n px: '4',\n py: '3',\n },\n icon: {\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n },\n content: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n minW: 0,\n },\n endArea: {\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n gap: '2',\n ms: 'auto',\n },\n // The body stays mounted so child state and the `aria-controls` target are\n // preserved; it is collapsed with a `grid-template-rows` 1fr -> 0fr\n // transition (mirroring `AccordionItem`). `overflow: hidden` lives on this\n // grid so the body chrome on `bodyContent` is fully clipped when collapsed.\n body: {\n display: 'grid',\n gridTemplateRows: '1fr',\n overflow: 'hidden',\n // `visibility` is transitioned alongside the rows so the content stays\n // readable while collapsing, then becomes `hidden` (removing it from the\n // a11y tree and tab order) once closed. The inline `visibility` style in\n // the component drives the open/closed value.\n transitionProperty: 'grid-template-rows, visibility',\n transitionDuration: 'normal',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01s',\n },\n },\n bodyContent: {\n minH: 0,\n bg: 'bg',\n borderBlockEndWidth: 'default',\n borderColor: 'border',\n borderInlineWidth: 'default',\n borderStyle: 'solid',\n px: '4',\n py: '3',\n },\n },\n variants: {\n status: {\n error: {\n header: {\n bg: 'surface.red',\n color: 'surface.red.fg',\n '--silver-text-color': 'token(colors.surface.red.fg)',\n '--silver-text-color-muted': 'token(colors.surface.red.fg)',\n },\n },\n info: {\n header: {\n bg: 'surface.blue',\n color: 'surface.blue.fg',\n '--silver-text-color': 'token(colors.surface.blue.fg)',\n '--silver-text-color-muted': 'token(colors.surface.blue.fg)',\n },\n },\n success: {\n header: {\n bg: 'surface.green',\n color: 'surface.green.fg',\n '--silver-text-color': 'token(colors.surface.green.fg)',\n '--silver-text-color-muted': 'token(colors.surface.green.fg)',\n },\n },\n warning: {\n header: {\n bg: 'surface.yellow',\n color: 'surface.yellow.fg',\n '--silver-text-color': 'token(colors.surface.yellow.fg)',\n '--silver-text-color-muted': 'token(colors.surface.yellow.fg)',\n },\n },\n },\n container: {\n card: {\n header: {borderTopRadius: 'lg'},\n bodyContent: {borderBottomRadius: 'lg'},\n },\n section: {},\n },\n // Squares off the header's bottom corners while the body is revealed; the\n // compound variant rounds them back when there is no expanded content.\n hasContent: {\n true: {},\n false: {},\n },\n isCentered: {\n true: {header: {alignItems: 'center'}},\n false: {},\n },\n isExpanded: {\n true: {chevron: {transform: 'rotate(180deg)'}},\n false: {body: {gridTemplateRows: '0fr'}},\n },\n padding: paddingVariants,\n },\n compoundVariants: [\n {\n container: 'card',\n css: {header: {borderBottomRadius: 'lg'}},\n hasContent: false,\n },\n ],\n defaultVariants: {\n container: 'card',\n hasContent: false,\n isCentered: false,\n isExpanded: false,\n status: 'info',\n },\n});\n\nexport type AlertVariants = RecipeVariantProps<typeof alertRecipe>;\n","import {\n CheckCircle2,\n ChevronDown,\n Info,\n TriangleAlert,\n X,\n XCircle,\n} from 'lucide-react';\nimport {\n useId,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport type {SpacingToken} from '../../internal/spacingTokens';\nimport {Button} from '../Button';\nimport {Icon} from '../Icon';\nimport {Text} from '../Text';\nimport {alertRecipe, type AlertVariants} from './Alert.recipe';\n\n/**\n * Derived from the recipe's `container` variant so the prop stays in sync with\n * the styles.\n */\nexport type AlertContainer = NonNullable<\n NonNullable<AlertVariants>['container']\n>;\n/**\n * Derived from the recipe's `status` variant so the prop stays in sync with the\n * styles.\n */\nexport type AlertStatus = NonNullable<NonNullable<AlertVariants>['status']>;\n\nexport interface AlertProps {\n /**\n * Extra content rendered below the alert header in a collapsible area.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Visual container style.\n * @default 'card'\n */\n container?: AlertContainer;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Supporting description displayed below the title.\n */\n description?: ReactNode;\n /**\n * Content rendered at the end of the header, before collapse and dismiss controls.\n */\n endContent?: ReactNode;\n /**\n * Custom status icon. A default icon is rendered when omitted.\n */\n icon?: ReactNode;\n /**\n * Whether collapsible children are expanded initially.\n * @default false\n */\n isDefaultExpanded?: boolean;\n /**\n * Whether the alert can be dismissed.\n * @default false\n */\n isDismissable?: boolean;\n /**\n * Called when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n /**\n * Inner padding step.\n * @default 4\n */\n padding?: SpacingToken;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Status controlling role, icon, and color.\n */\n status: AlertStatus;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Primary alert title.\n */\n title: ReactNode;\n}\n\nconst statusRole: Record<AlertStatus, 'alert' | 'status'> = {\n error: 'alert',\n info: 'status',\n success: 'status',\n warning: 'alert',\n};\n\nconst defaultIcons: Record<AlertStatus, ReactNode> = {\n error: <Icon color=\"error\" icon={XCircle} />,\n info: <Icon color=\"info\" icon={Info} />,\n success: <Icon color=\"success\" icon={CheckCircle2} />,\n warning: <Icon color=\"warning\" icon={TriangleAlert} />,\n};\n\n/**\n * Displays a contextual message with status-based styling, an optional\n * collapsible body, and dismiss functionality.\n */\nexport function Alert({\n children,\n className,\n container = 'card',\n 'data-testid': dataTestId,\n description,\n endContent,\n icon,\n isDefaultExpanded = false,\n isDismissable = false,\n onDismiss,\n padding,\n ref,\n status,\n style,\n title,\n}: AlertProps): React.JSX.Element | null {\n const bodyId = useId();\n const [isDismissed, setIsDismissed] = useState(false);\n const [isExpanded, setIsExpanded] = useState(isDefaultExpanded);\n const hasChildren = isReactNode(children);\n // The body is kept mounted whenever there are children (so child state and\n // the `aria-controls` target survive collapsing); `isExpanded` only drives\n // the visual collapse. `showContent` reflects whether the body is currently\n // revealed, which the header uses to square off its bottom corners.\n const showContent = hasChildren && isExpanded;\n const showEndArea = isReactNode(endContent) || isDismissable || hasChildren;\n const isSingleLine =\n !isReactNode(description) &&\n (isReactNode(endContent) || isDismissable || hasChildren);\n\n if (isDismissed) {\n return null;\n }\n\n const classes = alertRecipe({\n container,\n hasContent: showContent,\n isCentered: isSingleLine,\n isExpanded,\n padding,\n status,\n });\n\n return (\n <div\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role={statusRole[status]}\n style={style}>\n <div className={classes.header}>\n <span aria-hidden=\"true\" className={classes.icon}>\n {icon ?? defaultIcons[status]}\n </span>\n <div className={classes.content}>\n <Text as=\"p\" type=\"label\" weight=\"semibold\">\n {title}\n </Text>\n {isReactNode(description) ? (\n <Text as=\"p\" color=\"secondary\" type=\"supporting\">\n {description}\n </Text>\n ) : null}\n </div>\n {showEndArea ? (\n <div className={classes.endArea}>\n {endContent}\n {hasChildren ? (\n <Button\n aria-controls={bodyId}\n aria-expanded={isExpanded}\n className={classes.chevron}\n icon={ChevronDown}\n isIconOnly\n label={isExpanded ? 'Collapse' : 'Expand'}\n onClick={() => setIsExpanded(value => !value)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {isDismissable ? (\n <Button\n icon={X}\n isIconOnly\n label=\"Dismiss\"\n onClick={() => {\n setIsDismissed(true);\n onDismiss?.();\n }}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n </div>\n ) : null}\n </div>\n {hasChildren ? (\n <div\n className={classes.body}\n id={bodyId}\n style={{visibility: isExpanded ? undefined : 'hidden'}}>\n <div className={classes.bodyContent}>{children}</div>\n </div>\n ) : null}\n </div>\n );\n}\n\nAlert.displayName = 'Alert';\n"]}
@@ -1,15 +1,15 @@
1
- import { BaseAutocompleteInput } from './chunk-HNROO7CR.js';
2
- import { Tag } from './chunk-M3IKL2VG.js';
1
+ import { BaseAutocompleteInput } from './chunk-SBOXHIES.js';
2
+ import { Tag } from './chunk-AFI4V7LI.js';
3
3
  import { inputStyles, inputRecipe } from './chunk-3M23WX6K.js';
4
- import { getNecessity, Field } from './chunk-ASJ5CBCR.js';
4
+ import { getNecessity, Field } from './chunk-RLOGQBFD.js';
5
5
  import { getStatusMessageID, getDescribedBy } from './chunk-WOIWI2UO.js';
6
- import { Button } from './chunk-RVENUWRD.js';
7
- import { useLayer, useIsomorphicLayoutEffect } from './chunk-ZNUOFLCQ.js';
6
+ import { Button } from './chunk-2LABTS4P.js';
7
+ import { useLayer, useIsomorphicLayoutEffect } from './chunk-HINS4GY6.js';
8
8
  import { mergeRefs } from './chunk-SGLIDI6R.js';
9
9
  import { isReactNode } from './chunk-2PSZAWLC.js';
10
10
  import { Icon } from './chunk-7T3SWOY7.js';
11
- import { cx } from './chunk-PPNETWIP.js';
12
11
  import { css } from './chunk-OD4DHHZH.js';
12
+ import { cx } from './chunk-PPNETWIP.js';
13
13
  import { X } from 'lucide-react';
14
14
  import { useId, useRef, useState, useCallback, useMemo, useImperativeHandle, Children } from 'react';
15
15
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
@@ -624,5 +624,5 @@ function TagsInput({
624
624
  TagsInput.displayName = "TagsInput";
625
625
 
626
626
  export { TagsInput };
627
- //# sourceMappingURL=chunk-YSTESYUB.js.map
628
- //# sourceMappingURL=chunk-YSTESYUB.js.map
627
+ //# sourceMappingURL=chunk-J5IRFGUP.js.map
628
+ //# sourceMappingURL=chunk-J5IRFGUP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/OverflowList.tsx","../src/components/TagsInput/TagsInput.tsx"],"names":["styles","useRef","useState","useCallback","jsx","Fragment","jsxs"],"mappings":"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","file":"chunk-J5IRFGUP.js","sourcesContent":["import {\n Children,\n useCallback,\n useRef,\n useState,\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from './cx';\nimport isReactNode from './isReactNode';\nimport {mergeRefs} from './mergeRefs';\nimport {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';\n\nexport interface OverflowItem {\n child: ReactElement;\n index: number;\n}\n\nexport interface OverflowListProps {\n behavior?: 'observeParent' | 'observeSelf';\n children: ReactNode;\n className?: string;\n collapseFrom?: 'end' | 'start';\n gap?: number;\n minVisibleItems?: number;\n overflowRenderer?: (overflowItems: OverflowItem[]) => ReactNode;\n ref?: Ref<HTMLDivElement>;\n style?: CSSProperties;\n}\n\nconst styles = {\n container: css({\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n minW: 0,\n }),\n fillParent: css({\n flex: '1 1 0',\n }),\n measureContainer: css({\n position: 'absolute',\n visibility: 'hidden',\n h: 0,\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n pointerEvents: 'none',\n }),\n measureIndicator: css({\n display: 'inline-flex',\n }),\n} as const;\n\nfunction getAvailableWidth(\n container: HTMLElement,\n observeParent: boolean,\n): number {\n if (observeParent && container.parentElement != null) {\n const parent = container.parentElement;\n const parentStyle = window.getComputedStyle(parent);\n const paddingLeft = Number.parseFloat(parentStyle.paddingLeft) || 0;\n const paddingRight = Number.parseFloat(parentStyle.paddingRight) || 0;\n return parent.clientWidth - paddingLeft - paddingRight;\n }\n\n return container.offsetWidth;\n}\n\nexport function OverflowList({\n behavior = 'observeSelf',\n children,\n className,\n collapseFrom = 'end',\n gap = 0,\n minVisibleItems = 0,\n overflowRenderer,\n ref,\n style,\n}: OverflowListProps): React.JSX.Element {\n // eslint-disable-next-line @eslint-react/no-children-to-array -- matches XDSOverflowList: normalizes children before width measurement\n const childArray = Children.toArray(children) as ReactElement[];\n const itemCount = childArray.length;\n const observeParent = behavior === 'observeParent';\n const [visibleCount, setVisibleCount] = useState(itemCount);\n const containerRef = useRef<HTMLElement | null>(null);\n const measureRef = useRef<HTMLElement | null>(null);\n\n const calculate = useCallback(() => {\n const container = containerRef.current;\n const measure = measureRef.current;\n if (container == null || measure == null) {\n return;\n }\n\n const availableWidth = Math.min(\n getAvailableWidth(container, observeParent),\n container.offsetWidth || Number.POSITIVE_INFINITY,\n );\n const allChildren = Array.from(measure.children) as HTMLElement[];\n const hasIndicator = allChildren.length > itemCount;\n const measuredItems = hasIndicator\n ? allChildren.slice(0, itemCount)\n : allChildren;\n const indicatorWidth = hasIndicator\n ? allChildren[allChildren.length - 1].offsetWidth\n : 0;\n\n if (measuredItems.length === 0) {\n // eslint-disable-next-line @eslint-react/set-state-in-effect -- visible count is derived from measured DOM widths\n setVisibleCount(0);\n return;\n }\n\n const measuredWidths = measuredItems.map(item => item.offsetWidth);\n const orderedWidths =\n collapseFrom === 'end' ? measuredWidths : [...measuredWidths].reverse();\n let totalWidth = 0;\n let count = 0;\n\n for (const itemWidth of orderedWidths) {\n const gapWidth = count > 0 ? gap : 0;\n const candidateWidth = totalWidth + itemWidth + gapWidth;\n const isLastItem = count === orderedWidths.length - 1;\n const reservedWidth = isLastItem\n ? 0\n : indicatorWidth + (count > 0 || indicatorWidth > 0 ? gap : 0);\n\n if (\n candidateWidth + reservedWidth > availableWidth &&\n count >= minVisibleItems\n ) {\n break;\n }\n\n totalWidth = candidateWidth;\n count++;\n }\n\n // eslint-disable-next-line @eslint-react/set-state-in-effect -- visible count is derived from measured DOM widths\n setVisibleCount(Math.max(Math.min(count, itemCount), minVisibleItems));\n }, [collapseFrom, gap, itemCount, minVisibleItems, observeParent]);\n\n const containerRefCallback = useCallback((element: HTMLDivElement | null) => {\n containerRef.current = element;\n }, []);\n\n const measureRefCallback = useCallback(\n (element: HTMLDivElement | null) => {\n measureRef.current = element;\n if (element != null) {\n calculate();\n }\n },\n [calculate],\n );\n\n useIsomorphicLayoutEffect(() => {\n calculate();\n }, [calculate]);\n\n useIsomorphicLayoutEffect(() => {\n const container = containerRef.current;\n if (container == null || typeof ResizeObserver === 'undefined') {\n return;\n }\n\n const target =\n observeParent && container.parentElement != null\n ? container.parentElement\n : container;\n const observer = new ResizeObserver(calculate);\n observer.observe(target);\n return () => observer.disconnect();\n }, [calculate, observeParent]);\n\n const allItems: OverflowItem[] = childArray.map((child, index) => ({\n child,\n index,\n }));\n const visibleItems =\n collapseFrom === 'end'\n ? allItems.slice(0, visibleCount)\n : allItems.slice(itemCount - visibleCount);\n const overflowItems =\n collapseFrom === 'end'\n ? allItems.slice(visibleCount)\n : allItems.slice(0, itemCount - visibleCount);\n const hasOverflow = visibleCount < itemCount;\n const measureIndicator = overflowRenderer?.(allItems);\n\n return (\n <>\n <div\n aria-hidden=\"true\"\n className={styles.measureContainer}\n inert\n ref={measureRefCallback}\n style={{gap}}>\n {childArray}\n {isReactNode(measureIndicator) ? (\n <div className={styles.measureIndicator}>{measureIndicator}</div>\n ) : null}\n </div>\n <div\n className={cx(\n styles.container,\n observeParent && hasOverflow ? styles.fillParent : undefined,\n className,\n )}\n ref={mergeRefs(ref, containerRefCallback)}\n style={{gap, ...style}}>\n {collapseFrom === 'start' && hasOverflow\n ? overflowRenderer?.(overflowItems)\n : null}\n {visibleItems.map(({child}) => child)}\n {collapseFrom === 'end' && hasOverflow\n ? overflowRenderer?.(overflowItems)\n : null}\n </div>\n </>\n );\n}\n","import {X} from 'lucide-react';\nimport {\n useCallback,\n useImperativeHandle,\n useId,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {OverflowList} from '../../internal/OverflowList';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useLayer} from '../../internal/useLayer';\nimport {BaseAutocompleteInput} from '../AutocompleteInput';\nimport type {SearchableItem, SearchSource} from '../AutocompleteInput';\nimport {Button} from '../Button';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from '../Field';\nimport {inputRecipe, inputStyles} from '../Field/inputStyles';\nimport {getDescribedBy, getStatusMessageID} from '../Field/inputUtils';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Tag} from '../Tag';\n\nexport type TagsInputChange<T extends SearchableItem> =\n | {item: T; type: 'add'}\n | {item: T; type: 'create'}\n | {item: T; type: 'remove'}\n | {items: T[]; type: 'remove-all'};\n\nexport type TagsInputOverflowBehavior =\n | 'none'\n | 'unfocusedInline'\n | 'unfocusedLayer';\n\nexport interface TagsInputHandle {\n /**\n * Blur the input.\n */\n blur(): void;\n /**\n * Focus the input.\n */\n focus(): void;\n}\n\nexport type TagsInputProps<T extends SearchableItem = SearchableItem> = {\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input wrapper.\n */\n 'data-testid'?: string;\n /**\n * Debounce delay in milliseconds before search runs.\n * @default 150\n */\n debounceMs?: number;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Empty state text.\n * @default 'No results found'\n */\n emptySearchResultsText?: string;\n /**\n * Content rendered at the end of the input row.\n */\n endContent?: ReactNode;\n /**\n * Imperative focus/blur handle.\n */\n handleRef?: Ref<TagsInputHandle>;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a clear button that removes all tags.\n * @default false\n */\n hasClear?: boolean;\n /**\n * Whether users can create a tag from free text.\n * @default false\n */\n hasCreate?: boolean;\n /**\n * Whether to show bootstrap results on focus before typing.\n * @default false\n */\n hasEntriesOnFocus?: 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 read-only. Prevents typing and hides the clear\n * button without applying disabled opacity.\n * @default false\n */\n isReadOnly?: 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 number of selected tags.\n */\n maxEntries?: number;\n /**\n * Maximum number of menu items.\n * @default 10\n */\n maxMenuItems?: number;\n /**\n * Called when focus leaves the tags-input.\n */\n onBlur?: (event: FocusEvent<HTMLDivElement>) => void;\n /**\n * Called when selected tags change.\n */\n onChange: (items: T[], change: TagsInputChange<T>) => void;\n /**\n * Called when focus enters the tags-input.\n */\n onFocus?: (event: FocusEvent<HTMLDivElement>) => void;\n /**\n * Called when the query changes.\n */\n onQueryChange?: (query: string) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the field root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Custom result renderer.\n */\n renderItem?: (item: T) => ReactNode;\n /**\n * Custom tag renderer.\n */\n renderTag?: (item: T, onRemove: () => void) => ReactNode;\n /**\n * Provides results for the menu. Use `createStaticSearchSource` for\n * in-memory data, or implement {@link SearchSource} for async/remote\n * search.\n */\n searchSource: SearchSource<T>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Icon shown before the input.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the tags-input.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Controls how tags overflow when the container is too narrow.\n * - `'none'`: Tags wrap to multiple lines (default).\n * - `'unfocusedInline'`: Single line with \"+ N more\" when unfocused; expands inline on focus.\n * - `'unfocusedLayer'`: Single line with \"+ N more\" when unfocused; expands as overlay on focus.\n * @default 'none'\n */\n tagOverflowBehavior?: TagsInputOverflowBehavior;\n /**\n * Selected items.\n */\n value: T[];\n} & FieldNecessity;\n\nconst CREATABLE_ID_PREFIX = '__silver_create__';\n\nconst styles = {\n wrapper: css({\n cursor: 'text',\n flexWrap: 'wrap',\n alignItems: 'center',\n h: 'auto',\n }),\n wrapperWithTags: css({\n rowGap: '1',\n }),\n wrapperWithTagsSize: {\n sm: css({pt: '0px', pb: '0.5'}),\n md: css({py: '1'}),\n lg: css({py: '1'}),\n },\n layerPopover: css({\n w: 'anchor-size(width)',\n }),\n truncatedWrapper: css({\n flexWrap: 'nowrap',\n overflow: 'hidden',\n }),\n truncatedSize: {\n sm: css({h: 'component.sm'}),\n md: css({h: 'component.md'}),\n lg: css({h: 'component.lg'}),\n },\n tag: css({flexShrink: 0}),\n input: css({\n minW: '10',\n flex: '1 1 40px',\n }),\n inputHidden: css({\n position: 'absolute',\n opacity: 0,\n w: 0,\n minW: 0,\n flexBasis: 0,\n }),\n endContent: css({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n }),\n overflowText: css({\n flexShrink: 0,\n whiteSpace: 'nowrap',\n fontSize: 'sm',\n color: 'fg.muted',\n px: '1',\n }),\n liveRegion: css({\n position: 'absolute',\n w: '1px',\n h: '1px',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n whiteSpace: 'nowrap',\n }),\n} as const;\n\nfunction isCreatableItem<T extends SearchableItem>(item: T): boolean {\n return item.id.startsWith(CREATABLE_ID_PREFIX);\n}\n\n/**\n * Multi-select combobox that renders selected values as removable tags.\n */\nexport function TagsInput<T extends SearchableItem>({\n className,\n 'data-testid': dataTestId,\n debounceMs,\n description,\n emptySearchResultsText,\n endContent,\n hasAutoFocus = false,\n hasClear = false,\n hasCreate = false,\n hasEntriesOnFocus = false,\n handleRef,\n isDisabled = false,\n isLabelHidden = false,\n isReadOnly = false,\n isOptional,\n isRequired,\n label,\n labelIcon,\n labelTooltip,\n maxEntries,\n maxMenuItems,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n placeholder,\n ref,\n renderItem,\n renderTag,\n searchSource,\n size = 'md',\n startIcon,\n status,\n style,\n tagOverflowBehavior = 'none',\n value,\n}: TagsInputProps<T>): 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 const inputRef = useRef<HTMLInputElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const [isFocusedWithin, setIsFocusedWithin] = useState(false);\n const [announcement, setAnnouncement] = useState('');\n const [queryValue, setQueryValue] = useState('');\n const isLayerMode = tagOverflowBehavior === 'unfocusedLayer';\n const layer = useLayer();\n const layerContentRef = useRef<HTMLDivElement>(null);\n const selectedIDsRef = useRef(new Set<string>());\n // eslint-disable-next-line @eslint-react/refs -- latest-ref pattern: synchronous, idempotent sync with props\n selectedIDsRef.current = new Set(value.map(item => item.id));\n const isAtMax = maxEntries != null && value.length >= maxEntries;\n const isAtMaxRef = useRef(false);\n // eslint-disable-next-line @eslint-react/refs -- latest-ref pattern\n isAtMaxRef.current = isAtMax;\n const isTruncated =\n !isFocusedWithin && tagOverflowBehavior !== 'none' && value.length > 0;\n\n const placeholderRef = useCallback(\n (element: HTMLElement | null) => {\n if (isLayerMode) {\n layer.ref(element);\n }\n },\n [isLayerMode, layer],\n );\n\n const isFocusInTagsInput = useCallback(\n (target: EventTarget | null): boolean => {\n if (!(target instanceof Node)) {\n return false;\n }\n if (wrapperRef.current?.contains(target)) {\n return true;\n }\n if (layerContentRef.current?.contains(target)) {\n return true;\n }\n const popoverElement = document.getElementById(layer.id);\n return popoverElement?.contains(target) ?? false;\n },\n [layer.id],\n );\n\n const filteredSource = useMemo<SearchSource<T>>(\n () => ({\n cancel: () => searchSource.cancel?.(),\n async bootstrap() {\n const results = await searchSource.bootstrap();\n return results.filter(item => !selectedIDsRef.current.has(item.id));\n },\n async search(searchQuery) {\n const results = await searchSource.search(searchQuery);\n const filteredResults = results.filter(\n item => !selectedIDsRef.current.has(item.id),\n );\n if (!hasCreate || searchQuery.trim() === '' || isAtMaxRef.current) {\n return filteredResults;\n }\n const existing = filteredResults.some(\n item => item.label.toLowerCase() === searchQuery.trim().toLowerCase(),\n );\n if (existing) {\n return filteredResults;\n }\n return [\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n {\n id: `${CREATABLE_ID_PREFIX}${searchQuery}`,\n label: `Create \"${searchQuery}\"`,\n auxiliaryData: {value: searchQuery},\n } as T,\n ...filteredResults,\n ];\n },\n }),\n [hasCreate, searchSource],\n );\n\n useImperativeHandle(\n handleRef,\n () => ({\n blur: () => inputRef.current?.blur(),\n focus: () => inputRef.current?.focus(),\n }),\n [],\n );\n\n const valueRef = useRef(value);\n // eslint-disable-next-line @eslint-react/refs -- latest-ref pattern\n valueRef.current = value;\n const onChangeRef = useRef(onChange);\n // eslint-disable-next-line @eslint-react/refs -- latest-ref pattern\n onChangeRef.current = onChange;\n\n const announce = useCallback((message: string) => {\n setAnnouncement('');\n requestAnimationFrame(() => setAnnouncement(message));\n }, []);\n\n const removeItem = useCallback(\n (item: T) => {\n onChangeRef.current(\n valueRef.current.filter(selectedItem => selectedItem.id !== item.id),\n {item, type: 'remove'},\n );\n announce(`Removed ${item.label}`);\n },\n [announce],\n );\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n const comingFromOutside = !isFocusInTagsInput(event.relatedTarget);\n setIsFocusedWithin(true);\n if (isLayerMode) {\n layer.show();\n }\n if (comingFromOutside) {\n onFocus?.(event);\n }\n },\n [isFocusInTagsInput, isLayerMode, layer, onFocus],\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n if (!isFocusInTagsInput(event.relatedTarget)) {\n setIsFocusedWithin(false);\n if (isLayerMode) {\n layer.hide();\n }\n onBlur?.(event);\n }\n },\n [isFocusInTagsInput, isLayerMode, layer, onBlur],\n );\n\n const handleWrapperPointerDown = useCallback(() => {\n if (!isDisabled) {\n if (isLayerMode) {\n layer.show();\n setIsFocusedWithin(true);\n }\n document.addEventListener(\n 'click',\n event => {\n // Focus the input only when the click that completes this press lands\n // inside the TagsInput. A press on a tag may open a popover anchored to\n // it (e.g. SearchFilterInput's edit popover); since the tag's own click\n // can stop propagation, this listener instead fires on the next click\n // — which might be a control in that popover. Focusing the input then\n // would steal focus back and briefly re-open the input's surface.\n if (isFocusInTagsInput(event.target)) {\n requestAnimationFrame(() => inputRef.current?.focus());\n }\n },\n {once: true},\n );\n }\n }, [isDisabled, isFocusInTagsInput, isLayerMode, layer]);\n\n const necessity = getNecessity(isOptional, isRequired);\n\n const tokens = value.map(item => (\n <span className={styles.tag} key={item.id}>\n {renderTag == null ? (\n <Tag\n isDisabled={isDisabled}\n label={item.label}\n onRemove={() => removeItem(item)}\n size={size}\n />\n ) : (\n renderTag(item, () => removeItem(item))\n )}\n </span>\n ));\n\n const wrapperContent = (\n <>\n {/* eslint-disable-next-line jsx-a11y-x/no-noninteractive-element-interactions -- pointerdown delegates to inner input for focus convenience */}\n <div\n aria-label={label}\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n value.length > 0 && !isTruncated ? styles.wrapperWithTags : undefined,\n value.length > 0 && !isTruncated\n ? styles.wrapperWithTagsSize[size]\n : undefined,\n isTruncated ? styles.truncatedWrapper : undefined,\n isTruncated ? styles.truncatedSize[size] : undefined,\n )}\n data-testid={dataTestId}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onPointerDown={handleWrapperPointerDown}\n ref={wrapperRef}\n role=\"group\">\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n {isTruncated ? (\n <OverflowList\n behavior=\"observeParent\"\n gap={4}\n overflowRenderer={overflowItems => (\n <span className={styles.overflowText}>\n +{overflowItems.length} more\n </span>\n )}>\n {tokens}\n </OverflowList>\n ) : (\n tokens\n )}\n <BaseAutocompleteInput\n anchorRef={wrapperRef}\n ariaDescribedBy={describedBy}\n className={cx(\n styles.input,\n isAtMax || isTruncated ? styles.inputHidden : undefined,\n )}\n debounceMs={debounceMs}\n emptySearchResultsText={emptySearchResultsText}\n hasAutoFocus={hasAutoFocus}\n hasEntriesOnFocus={hasEntriesOnFocus}\n hasReopenOnSelect={hasEntriesOnFocus}\n inputId={inputId}\n isDisabled={isDisabled || isReadOnly || isAtMax}\n maxMenuItems={maxMenuItems}\n onChange={item => {\n if (item == null) {\n return;\n }\n if (isCreatableItem(item)) {\n const rawValue =\n typeof item.auxiliaryData === 'object' &&\n item.auxiliaryData != null &&\n 'value' in item.auxiliaryData\n ? String(item.auxiliaryData.value)\n : item.label;\n const createdItem = {\n ...item,\n id: rawValue,\n label: rawValue,\n };\n onChangeRef.current([...valueRef.current, createdItem], {\n item: createdItem,\n type: 'create',\n });\n announce(`Added ${rawValue}`);\n return;\n }\n onChangeRef.current([...valueRef.current, item], {\n item,\n type: 'add',\n });\n announce(`Added ${item.label}`);\n }}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (\n event.key === 'Backspace' &&\n event.currentTarget.value === '' &&\n valueRef.current.length > 0\n ) {\n const item = valueRef.current[valueRef.current.length - 1];\n removeItem(item);\n }\n }}\n onQueryChange={nextQuery => {\n setQueryValue(nextQuery);\n onQueryChange?.(nextQuery);\n }}\n placeholder={value.length === 0 ? placeholder : undefined}\n query={queryValue}\n ref={inputRef}\n renderItem={renderItem}\n searchSource={filteredSource}\n size={size}\n value={null}\n />\n {isReactNode(endContent) ? (\n <span className={styles.endContent}>{endContent}</span>\n ) : null}\n {hasClear && value.length > 0 && !isDisabled && !isReadOnly ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={event => {\n event.stopPropagation();\n onChangeRef.current([], {\n items: valueRef.current,\n type: 'remove-all',\n });\n announce('Cleared all tags');\n }}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n <span aria-live=\"polite\" className={styles.liveRegion} role=\"status\">\n {announcement}\n </span>\n </div>\n </>\n );\n\n const popoverOverrideStyle: CSSProperties = {\n positionArea: undefined,\n positionTryFallbacks: undefined,\n top: 'anchor(top)',\n left: 'anchor(start)',\n };\n\n const inputContent = isLayerMode ? (\n <>\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n isTruncated ? styles.truncatedWrapper : undefined,\n styles.truncatedSize[size],\n )}\n onPointerDown={handleWrapperPointerDown}\n ref={placeholderRef}>\n {isTruncated ? (\n <>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <OverflowList\n behavior=\"observeParent\"\n gap={4}\n overflowRenderer={overflowItems => (\n <span className={styles.overflowText}>\n +{overflowItems.length} more\n </span>\n )}>\n {tokens}\n </OverflowList>\n </>\n ) : null}\n </div>\n {layer.render(\n <div\n data-testid={dataTestId == null ? undefined : `${dataTestId}-layer`}\n ref={layerContentRef}>\n {wrapperContent}\n </div>,\n {\n alignment: 'start',\n className: styles.layerPopover,\n placement: 'below',\n style: popoverOverrideStyle,\n },\n )}\n </>\n ) : (\n wrapperContent\n );\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 ref={ref}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n {inputContent}\n </Field>\n );\n}\n\nTagsInput.displayName = 'TagsInput';\n"]}
@@ -1,9 +1,9 @@
1
- import { TimeInput } from './chunk-S4LVSSJI.js';
2
- import { DateInput } from './chunk-BA4A7C7U.js';
1
+ import { TimeInput } from './chunk-S7INL5NI.js';
2
+ import { DateInput } from './chunk-BSAZRW6T.js';
3
3
  import { plainDateIsEqual } from './chunk-QSEDH7T2.js';
4
- import { getNecessity, Field } from './chunk-ASJ5CBCR.js';
5
- import { cx } from './chunk-PPNETWIP.js';
4
+ import { getNecessity, Field } from './chunk-RLOGQBFD.js';
6
5
  import { css } from './chunk-OD4DHHZH.js';
6
+ import { cx } from './chunk-PPNETWIP.js';
7
7
  import { Temporal } from '@js-temporal/polyfill';
8
8
  import { useId, useMemo, useCallback } from 'react';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -150,5 +150,5 @@ function DateTimeInput({
150
150
  DateTimeInput.displayName = "DateTimeInput";
151
151
 
152
152
  export { DateTimeInput };
153
- //# sourceMappingURL=chunk-5D4LRSIV.js.map
154
- //# sourceMappingURL=chunk-5D4LRSIV.js.map
153
+ //# sourceMappingURL=chunk-JDAJ2HJQ.js.map
154
+ //# sourceMappingURL=chunk-JDAJ2HJQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/DateTimeInput/DateTimeInput.tsx"],"names":[],"mappings":"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","file":"chunk-5D4LRSIV.js","sourcesContent":["import {Temporal} from '@js-temporal/polyfill';\nimport {\n useCallback,\n useId,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {plainDateIsEqual, type PlainDate} from '../../internal/plainDate';\nimport {DateInput} from '../DateInput';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from '../Field';\nimport type {IconComponent} from '../Icon';\nimport {TimeInput, type PlainTime} from '../TimeInput';\n\nexport type PlainDateTime = Temporal.PlainDateTime;\n\nexport type DateTimeInputProps = {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Returns true for dates that should be disabled.\n */\n getIsDateDisabled?: (date: PlainDate) => boolean;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Whether to show the seconds field in the time input.\n * @default false\n */\n hasSeconds?: 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-time.\n */\n max?: PlainDateTime;\n /**\n * Minimum selectable date-time.\n */\n min?: PlainDateTime;\n /**\n * Called when the selected date-time changes.\n */\n onChange: (value: PlainDateTime | undefined) => void;\n /**\n * Ref forwarded to the date input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the inputs.\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 root element.\n */\n style?: CSSProperties;\n /**\n * Currently selected date-time.\n */\n value: PlainDateTime | undefined;\n} & FieldNecessity;\n\nconst styles = {\n row: css({\n display: 'grid',\n gridTemplateColumns: 'minmax(0, 1fr) minmax(0, 0.75fr)',\n gap: '2',\n }),\n} as const;\n\nfunction splitDateTime(value: PlainDateTime | undefined): {\n date: PlainDate | undefined;\n time: PlainTime | undefined;\n} {\n if (value == null) {\n return {date: undefined, time: undefined};\n }\n return {\n date: value.toPlainDate(),\n time: value.toPlainTime(),\n };\n}\n\nfunction combineDateTime(\n date: PlainDate | undefined,\n time: PlainTime | undefined,\n): PlainDateTime | undefined {\n if (date == null && time == null) {\n return undefined;\n }\n const resolvedDate = date ?? Temporal.Now.plainDateISO();\n const resolvedTime = time ?? Temporal.Now.plainTimeISO();\n return resolvedDate.toPlainDateTime(resolvedTime);\n}\n\nfunction clampTime(\n time: PlainTime,\n min: PlainTime | undefined,\n max: PlainTime | undefined,\n): PlainTime {\n if (min != null && Temporal.PlainTime.compare(time, min) < 0) {\n return min;\n }\n if (max != null && Temporal.PlainTime.compare(time, max) > 0) {\n return max;\n }\n return time;\n}\n\n/**\n * A combined date and time input with calendar popover and time fields.\n */\nexport function DateTimeInput({\n label,\n value,\n onChange,\n min,\n max,\n getIsDateDisabled,\n hasSeconds = false,\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n status,\n labelIcon,\n labelTooltip,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: DateTimeInputProps): React.JSX.Element {\n const fieldId = useId();\n const {date, time} = useMemo(() => splitDateTime(value), [value]);\n const minParts = useMemo(() => splitDateTime(min), [min]);\n const maxParts = useMemo(() => splitDateTime(max), [max]);\n\n const handleDateChange = useCallback(\n (nextDate: PlainDate | undefined) => {\n if (nextDate == null || time == null) {\n onChange(combineDateTime(nextDate, time));\n return;\n }\n const effectiveTimeMin =\n min != null && nextDate.equals(min.toPlainDate())\n ? min.toPlainTime()\n : undefined;\n const effectiveTimeMax =\n max != null && nextDate.equals(max.toPlainDate())\n ? max.toPlainTime()\n : undefined;\n onChange(\n combineDateTime(\n nextDate,\n clampTime(time, effectiveTimeMin, effectiveTimeMax),\n ),\n );\n },\n [onChange, time, min, max],\n );\n const handleTimeChange = useCallback(\n (nextTime: PlainTime | undefined) =>\n onChange(combineDateTime(date, nextTime)),\n [onChange, date],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n description={description}\n inputId={fieldId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={status}>\n <div\n className={cx(styles.row, className)}\n data-testid={dataTestId}\n style={style}>\n <DateInput\n getIsDateDisabled={getIsDateDisabled}\n htmlId={fieldId}\n isDisabled={isDisabled}\n isLabelHidden\n isLoading={isLoading}\n label={`${label} date`}\n max={maxParts.date}\n min={minParts.date}\n onChange={handleDateChange}\n ref={ref}\n size={size}\n value={date}\n />\n <TimeInput\n hasSeconds={hasSeconds}\n isDisabled={isDisabled}\n isLabelHidden\n isLoading={isLoading}\n label={`${label} time`}\n max={\n date != null &&\n maxParts.date != null &&\n plainDateIsEqual(date, maxParts.date)\n ? maxParts.time\n : undefined\n }\n min={\n date != null &&\n minParts.date != null &&\n plainDateIsEqual(date, minParts.date)\n ? minParts.time\n : undefined\n }\n onChange={handleTimeChange}\n size={size}\n value={time}\n />\n </div>\n </Field>\n );\n}\n\nDateTimeInput.displayName = 'DateTimeInput';\n"]}
1
+ {"version":3,"sources":["../src/components/DateTimeInput/DateTimeInput.tsx"],"names":[],"mappings":"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","file":"chunk-JDAJ2HJQ.js","sourcesContent":["import {Temporal} from '@js-temporal/polyfill';\nimport {\n useCallback,\n useId,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {plainDateIsEqual, type PlainDate} from '../../internal/plainDate';\nimport {DateInput} from '../DateInput';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from '../Field';\nimport type {IconComponent} from '../Icon';\nimport {TimeInput, type PlainTime} from '../TimeInput';\n\nexport type PlainDateTime = Temporal.PlainDateTime;\n\nexport type DateTimeInputProps = {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Returns true for dates that should be disabled.\n */\n getIsDateDisabled?: (date: PlainDate) => boolean;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Whether to show the seconds field in the time input.\n * @default false\n */\n hasSeconds?: 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-time.\n */\n max?: PlainDateTime;\n /**\n * Minimum selectable date-time.\n */\n min?: PlainDateTime;\n /**\n * Called when the selected date-time changes.\n */\n onChange: (value: PlainDateTime | undefined) => void;\n /**\n * Ref forwarded to the date input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the inputs.\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 root element.\n */\n style?: CSSProperties;\n /**\n * Currently selected date-time.\n */\n value: PlainDateTime | undefined;\n} & FieldNecessity;\n\nconst styles = {\n row: css({\n display: 'grid',\n gridTemplateColumns: 'minmax(0, 1fr) minmax(0, 0.75fr)',\n gap: '2',\n }),\n} as const;\n\nfunction splitDateTime(value: PlainDateTime | undefined): {\n date: PlainDate | undefined;\n time: PlainTime | undefined;\n} {\n if (value == null) {\n return {date: undefined, time: undefined};\n }\n return {\n date: value.toPlainDate(),\n time: value.toPlainTime(),\n };\n}\n\nfunction combineDateTime(\n date: PlainDate | undefined,\n time: PlainTime | undefined,\n): PlainDateTime | undefined {\n if (date == null && time == null) {\n return undefined;\n }\n const resolvedDate = date ?? Temporal.Now.plainDateISO();\n const resolvedTime = time ?? Temporal.Now.plainTimeISO();\n return resolvedDate.toPlainDateTime(resolvedTime);\n}\n\nfunction clampTime(\n time: PlainTime,\n min: PlainTime | undefined,\n max: PlainTime | undefined,\n): PlainTime {\n if (min != null && Temporal.PlainTime.compare(time, min) < 0) {\n return min;\n }\n if (max != null && Temporal.PlainTime.compare(time, max) > 0) {\n return max;\n }\n return time;\n}\n\n/**\n * A combined date and time input with calendar popover and time fields.\n */\nexport function DateTimeInput({\n label,\n value,\n onChange,\n min,\n max,\n getIsDateDisabled,\n hasSeconds = false,\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n status,\n labelIcon,\n labelTooltip,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: DateTimeInputProps): React.JSX.Element {\n const fieldId = useId();\n const {date, time} = useMemo(() => splitDateTime(value), [value]);\n const minParts = useMemo(() => splitDateTime(min), [min]);\n const maxParts = useMemo(() => splitDateTime(max), [max]);\n\n const handleDateChange = useCallback(\n (nextDate: PlainDate | undefined) => {\n if (nextDate == null || time == null) {\n onChange(combineDateTime(nextDate, time));\n return;\n }\n const effectiveTimeMin =\n min != null && nextDate.equals(min.toPlainDate())\n ? min.toPlainTime()\n : undefined;\n const effectiveTimeMax =\n max != null && nextDate.equals(max.toPlainDate())\n ? max.toPlainTime()\n : undefined;\n onChange(\n combineDateTime(\n nextDate,\n clampTime(time, effectiveTimeMin, effectiveTimeMax),\n ),\n );\n },\n [onChange, time, min, max],\n );\n const handleTimeChange = useCallback(\n (nextTime: PlainTime | undefined) =>\n onChange(combineDateTime(date, nextTime)),\n [onChange, date],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n description={description}\n inputId={fieldId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={status}>\n <div\n className={cx(styles.row, className)}\n data-testid={dataTestId}\n style={style}>\n <DateInput\n getIsDateDisabled={getIsDateDisabled}\n htmlId={fieldId}\n isDisabled={isDisabled}\n isLabelHidden\n isLoading={isLoading}\n label={`${label} date`}\n max={maxParts.date}\n min={minParts.date}\n onChange={handleDateChange}\n ref={ref}\n size={size}\n value={date}\n />\n <TimeInput\n hasSeconds={hasSeconds}\n isDisabled={isDisabled}\n isLabelHidden\n isLoading={isLoading}\n label={`${label} time`}\n max={\n date != null &&\n maxParts.date != null &&\n plainDateIsEqual(date, maxParts.date)\n ? maxParts.time\n : undefined\n }\n min={\n date != null &&\n minParts.date != null &&\n plainDateIsEqual(date, minParts.date)\n ? minParts.time\n : undefined\n }\n onChange={handleTimeChange}\n size={size}\n value={time}\n />\n </div>\n </Field>\n );\n}\n\nDateTimeInput.displayName = 'DateTimeInput';\n"]}
@@ -1,7 +1,7 @@
1
- import { Dialog } from './chunk-P3SMNZCT.js';
2
- import { Layout, LayoutHeader, LayoutFooter, LayoutContent } from './chunk-DIIE44GO.js';
3
- import { Button } from './chunk-RVENUWRD.js';
4
- import { Text } from './chunk-76B2VLID.js';
1
+ import { Dialog } from './chunk-3JPUXC5U.js';
2
+ import { Layout, LayoutHeader, LayoutFooter, LayoutContent } from './chunk-2N6FOSNM.js';
3
+ import { Button } from './chunk-2LABTS4P.js';
4
+ import { Text } from './chunk-QRFDPG34.js';
5
5
  import { useRef, useEffect, useCallback, useState } from 'react';
6
6
  import { jsx } from 'react/jsx-runtime';
7
7
 
@@ -101,5 +101,5 @@ function useAlertDialog() {
101
101
  }
102
102
 
103
103
  export { AlertDialog, useAlertDialog };
104
- //# sourceMappingURL=chunk-3DJ46WN4.js.map
105
- //# sourceMappingURL=chunk-3DJ46WN4.js.map
104
+ //# sourceMappingURL=chunk-JIVYPJKO.js.map
105
+ //# sourceMappingURL=chunk-JIVYPJKO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/AlertDialog/AlertDialog.tsx","../src/components/AlertDialog/useAlertDialog.tsx"],"names":["useCallback","jsx"],"mappings":"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","file":"chunk-3DJ46WN4.js","sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {Button} from '../Button';\nimport {Dialog} from '../Dialog';\nimport {Layout, LayoutContent, LayoutFooter, LayoutHeader} from '../Layout';\nimport {Text} from '../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 {AlertDialog, type AlertDialogProps} from './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"]}
1
+ {"version":3,"sources":["../src/components/AlertDialog/AlertDialog.tsx","../src/components/AlertDialog/useAlertDialog.tsx"],"names":["useCallback","jsx"],"mappings":"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","file":"chunk-JIVYPJKO.js","sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {Button} from '../Button';\nimport {Dialog} from '../Dialog';\nimport {Layout, LayoutContent, LayoutFooter, LayoutHeader} from '../Layout';\nimport {Text} from '../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 {AlertDialog, type AlertDialogProps} from './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"]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk6SHL7FYO_cjs = require('./chunk-6SHL7FYO.cjs');
4
- var chunk6BK4LUK4_cjs = require('./chunk-6BK4LUK4.cjs');
5
4
  var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
5
+ var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
 
@@ -73,7 +73,7 @@ function HoverLayerTrigger({
73
73
  "span",
74
74
  {
75
75
  "aria-describedby": describedBy,
76
- className: chunk6BK4LUK4_cjs.cx(
76
+ className: chunkSPDVNY2Z_cjs.cx(
77
77
  styles.wrapperInline,
78
78
  showHoverIndication ? styles.hoverIndication : void 0,
79
79
  className
@@ -89,7 +89,7 @@ function HoverLayerTrigger({
89
89
  ] });
90
90
  }
91
91
  const nonTextWrapperRef = shouldForwardNonTextWrapperProps ? chunk6SHL7FYO_cjs.mergeRefs(ownWrapperRef, wrapperRef) : ownWrapperRef;
92
- const nonTextWrapperClassName = chunk6BK4LUK4_cjs.cx(
92
+ const nonTextWrapperClassName = chunkSPDVNY2Z_cjs.cx(
93
93
  styles.wrapperContents,
94
94
  shouldForwardNonTextWrapperProps ? className : void 0
95
95
  );
@@ -234,7 +234,7 @@ function useLayer({
234
234
  id,
235
235
  role: props?.role,
236
236
  popover: hasLightDismiss ? "auto" : "manual",
237
- className: chunk6BK4LUK4_cjs.cx(styles2.layer, props?.className),
237
+ className: chunkSPDVNY2Z_cjs.cx(styles2.layer, props?.className),
238
238
  style: { ...anchorStyle, ...props?.style }
239
239
  };
240
240
  return react.createElement("div", layerProps, children);
@@ -440,5 +440,5 @@ exports.HoverLayerTrigger = HoverLayerTrigger;
440
440
  exports.useHoverLayer = useHoverLayer;
441
441
  exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
442
442
  exports.useLayer = useLayer;
443
- //# sourceMappingURL=chunk-U2WVHZ24.cjs.map
444
- //# sourceMappingURL=chunk-U2WVHZ24.cjs.map
443
+ //# sourceMappingURL=chunk-JJ324PSZ.cjs.map
444
+ //# sourceMappingURL=chunk-JJ324PSZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/useIsomorphicLayoutEffect.ts","../src/internal/HoverLayerTrigger.tsx","../src/internal/useLayer.tsx","../src/internal/useHoverLayer.ts"],"names":["useLayoutEffect","useEffect","css","useRef","jsxs","Fragment","jsx","cx","mergeRefs","styles","useId","useState","useCallback","createElement","useMemo"],"mappings":"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","file":"chunk-JJ324PSZ.cjs","sourcesContent":["import {useEffect, useLayoutEffect} from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n","import {\n useRef,\n type CSSProperties,\n type ReactNode,\n type Ref,\n type RefCallback,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from './cx';\nimport {mergeRefs} from './mergeRefs';\nimport {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';\n\nexport type HoverLayerTriggerIndication = 'auto' | boolean;\n\nexport interface HoverLayerTriggerProps {\n children: ReactNode;\n className?: string;\n 'data-testid'?: string;\n describedBy: string;\n hasHoverIndication?: HoverLayerTriggerIndication;\n layer: ReactNode;\n nonTextWrapperElement?: 'div' | 'span';\n shouldForwardNonTextWrapperProps?: boolean;\n style?: CSSProperties;\n triggerRef: RefCallback<HTMLElement>;\n wrapperRef?: Ref<HTMLElement>;\n}\n\nconst styles = {\n wrapperContents: css({\n display: 'contents',\n }),\n wrapperInline: css({\n display: 'inline',\n }),\n hoverIndication: css({\n textDecorationLine: 'underline',\n textDecorationStyle: 'dashed',\n textDecorationColor: 'fg.muted',\n textUnderlineOffset: '2px',\n }),\n} as const;\n\nfunction isTextOnly(children: ReactNode): boolean {\n return typeof children === 'string' || typeof children === 'number';\n}\n\nfunction mergeIds(...ids: (string | undefined | null)[]): string | undefined {\n const filtered = ids.filter(Boolean);\n return filtered.length > 0 ? filtered.join(' ') : undefined;\n}\n\nexport function HoverLayerTrigger({\n children,\n className,\n 'data-testid': dataTestId,\n describedBy,\n hasHoverIndication = 'auto',\n layer,\n nonTextWrapperElement = 'span',\n shouldForwardNonTextWrapperProps = true,\n style,\n triggerRef,\n wrapperRef,\n}: HoverLayerTriggerProps): React.JSX.Element {\n const ownWrapperRef = useRef<HTMLDivElement | HTMLSpanElement>(null);\n const textOnly = isTextOnly(children);\n const showHoverIndication =\n hasHoverIndication === true || (hasHoverIndication === 'auto' && textOnly);\n\n useIsomorphicLayoutEffect(() => {\n if (textOnly) {\n return;\n }\n\n const firstChild = ownWrapperRef.current?.firstElementChild;\n if (!(firstChild instanceof HTMLElement)) {\n return;\n }\n\n triggerRef(firstChild);\n const existingDescribedBy = firstChild.getAttribute('aria-describedby');\n firstChild.setAttribute(\n 'aria-describedby',\n mergeIds(existingDescribedBy, describedBy) ?? '',\n );\n\n return () => {\n triggerRef(null);\n if (existingDescribedBy != null) {\n firstChild.setAttribute('aria-describedby', existingDescribedBy);\n return;\n }\n\n firstChild.removeAttribute('aria-describedby');\n };\n }, [describedBy, textOnly, triggerRef]);\n\n if (textOnly) {\n return (\n <>\n <span\n aria-describedby={describedBy}\n className={cx(\n styles.wrapperInline,\n showHoverIndication ? styles.hoverIndication : undefined,\n className,\n )}\n data-testid={dataTestId}\n ref={mergeRefs(triggerRef as Ref<HTMLSpanElement>, wrapperRef)}\n style={style}\n tabIndex={0}>\n {children}\n </span>\n {layer}\n </>\n );\n }\n\n const nonTextWrapperRef = shouldForwardNonTextWrapperProps\n ? mergeRefs(ownWrapperRef, wrapperRef)\n : ownWrapperRef;\n const nonTextWrapperClassName = cx(\n styles.wrapperContents,\n shouldForwardNonTextWrapperProps ? className : undefined,\n );\n const nonTextWrapperTestId = shouldForwardNonTextWrapperProps\n ? dataTestId\n : undefined;\n const nonTextWrapperStyle = shouldForwardNonTextWrapperProps\n ? style\n : undefined;\n const wrappedChildren =\n nonTextWrapperElement === 'div' ? (\n <div\n className={nonTextWrapperClassName}\n data-testid={nonTextWrapperTestId}\n ref={nonTextWrapperRef as Ref<HTMLDivElement>}\n style={nonTextWrapperStyle}>\n {children}\n </div>\n ) : (\n <span\n className={nonTextWrapperClassName}\n data-testid={nonTextWrapperTestId}\n ref={nonTextWrapperRef}\n style={nonTextWrapperStyle}>\n {children}\n </span>\n );\n\n return (\n <>\n {wrappedChildren}\n {layer}\n </>\n );\n}\n","import {\n createElement,\n useCallback,\n useId,\n useRef,\n useState,\n type ReactNode,\n type RefCallback,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from './cx';\n\nexport type LayerPlacement = 'above' | 'below' | 'start' | 'end';\nexport type LayerAlignment = 'start' | 'center' | 'end';\n\nexport interface ContextRenderProps {\n alignment?: LayerAlignment;\n className?: string;\n placement?: LayerPlacement;\n role?: string;\n style?: React.CSSProperties;\n}\n\ninterface LayerOptions {\n hasLightDismiss?: boolean;\n onHide?: () => void;\n onShow?: () => void;\n}\n\ntype PopoverValue = 'auto' | 'manual' | 'hint' | '';\n\ntype LayerElementProps = React.HTMLAttributes<HTMLDivElement> & {\n popover: PopoverValue;\n ref: RefCallback<HTMLElement>;\n};\n\nexport interface LayerReturn {\n anchorId: string;\n hide: () => void;\n id: string;\n isOpen: boolean;\n ref: RefCallback<HTMLElement>;\n render: (children: ReactNode, props?: ContextRenderProps) => ReactNode;\n show: () => void;\n}\n\nconst styles = {\n layer: css({\n m: 0,\n p: 0,\n borderWidth: 0,\n borderStyle: 'none',\n borderColor: 'transparent',\n overflow: 'visible',\n bg: 'transparent',\n }),\n};\n\nfunction getPositionArea(\n placement: LayerPlacement = 'above',\n alignment: LayerAlignment = 'center',\n): string {\n const placementMap: Record<LayerPlacement, string> = {\n above: 'top',\n below: 'bottom',\n start: 'left',\n end: 'right',\n };\n\n const cssPlacement = placementMap[placement];\n\n if (placement === 'above' || placement === 'below') {\n if (alignment === 'start') {\n return `${cssPlacement} span-right`;\n }\n if (alignment === 'end') {\n return `${cssPlacement} span-left`;\n }\n return cssPlacement;\n }\n\n if (alignment === 'start') {\n return `${cssPlacement} span-bottom`;\n }\n if (alignment === 'end') {\n return `${cssPlacement} span-top`;\n }\n return `${cssPlacement} center`;\n}\n\nexport function useLayer({\n onShow,\n onHide,\n hasLightDismiss = false,\n}: LayerOptions = {}): LayerReturn {\n const id = useId();\n const anchorId = `--silver-layer-${id.replace(/:/g, '')}`;\n const [isOpen, setIsOpen] = useState(false);\n const popoverRef = useRef<HTMLElement | null>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n const isOpenRef = useRef(false);\n\n const show = useCallback(() => {\n if (popoverRef.current == null || isOpenRef.current) {\n return;\n }\n\n popoverRef.current.showPopover();\n isOpenRef.current = true;\n setIsOpen(true);\n onShow?.();\n }, [onShow]);\n\n const hide = useCallback(() => {\n if (!isOpenRef.current) {\n return;\n }\n\n popoverRef.current?.hidePopover();\n isOpenRef.current = false;\n setIsOpen(false);\n onHide?.();\n }, [onHide]);\n\n const ref: RefCallback<HTMLElement> = useCallback(\n element => {\n if (triggerRef.current != null) {\n (\n triggerRef.current.style as unknown as Record<string, string>\n ).anchorName = '';\n }\n\n if (element != null) {\n (element.style as unknown as Record<string, string>).anchorName =\n anchorId;\n }\n\n triggerRef.current = element;\n },\n [anchorId],\n );\n\n const handleToggle = useCallback(\n (event: Event) => {\n const toggleEvent = event as ToggleEvent;\n if (toggleEvent.newState === 'closed' && isOpenRef.current) {\n isOpenRef.current = false;\n setIsOpen(false);\n onHide?.();\n }\n },\n [onHide],\n );\n\n const popoverRefCallback = useCallback(\n (element: HTMLElement | null) => {\n if (popoverRef.current != null) {\n popoverRef.current.removeEventListener('toggle', handleToggle);\n }\n\n popoverRef.current = element;\n\n if (element != null) {\n element.addEventListener('toggle', handleToggle);\n }\n },\n [handleToggle],\n );\n\n const render = useCallback(\n (children: ReactNode, props?: ContextRenderProps) => {\n const placement = props?.placement ?? 'above';\n const alignment = props?.alignment ?? 'center';\n const anchorStyle: React.CSSProperties = {\n border: 'none',\n positionAnchor: anchorId,\n positionArea: getPositionArea(placement, alignment),\n positionTryFallbacks: 'flip-block, flip-inline, flip-block flip-inline',\n };\n\n const layerProps: LayerElementProps = {\n ref: popoverRefCallback,\n id,\n role: props?.role,\n popover: hasLightDismiss ? 'auto' : 'manual',\n className: cx(styles.layer, props?.className),\n style: {...anchorStyle, ...props?.style},\n };\n\n return createElement('div', layerProps, children);\n },\n [anchorId, hasLightDismiss, id, popoverRefCallback],\n );\n\n return {\n ref,\n anchorId,\n show,\n hide,\n isOpen,\n id,\n render,\n };\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n type RefCallback,\n type RefObject,\n} from 'react';\nimport {useLayer, type LayerReturn} from './useLayer';\n\nexport type HoverLayerFocusTrigger = 'auto' | 'always' | 'never';\n\nexport interface UseHoverLayerOptions {\n delay?: number;\n focusTrigger?: HoverLayerFocusTrigger;\n hideDelay?: number;\n isEnabled?: boolean;\n onFocusIn?: (event: FocusEvent) => boolean;\n onFocusOut?: (event: FocusEvent) => boolean;\n onHide?: () => void;\n onShow?: () => void;\n onTriggerEscape?: (event: KeyboardEvent) => void;\n shouldHide?: () => boolean;\n}\n\nexport interface UseHoverLayerReturn {\n anchorId: string;\n clearTimeouts: () => void;\n describedBy: string;\n hide: () => void;\n interactionRef: RefCallback<HTMLElement>;\n layer: LayerReturn;\n positionRef: RefCallback<HTMLElement>;\n ref: RefCallback<HTMLElement>;\n scheduleHide: () => void;\n show: () => void;\n triggerRef: RefObject<HTMLElement | null>;\n}\n\nfunction isFocusable(element: HTMLElement): boolean {\n if (element.hasAttribute('tabindex')) {\n return element.tabIndex >= 0;\n }\n\n if (\n ['A', 'BUTTON', 'INPUT', 'SELECT', 'TEXTAREA'].includes(element.tagName)\n ) {\n return !(element as HTMLButtonElement).disabled;\n }\n\n return element.isContentEditable;\n}\n\nfunction isTouchDevice(): boolean {\n return (\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(hover: none)').matches\n );\n}\n\nexport function useHoverLayer({\n delay = 200,\n focusTrigger = 'auto',\n hideDelay = 0,\n isEnabled = true,\n onFocusIn,\n onFocusOut,\n onHide,\n onShow,\n onTriggerEscape,\n shouldHide,\n}: UseHoverLayerOptions = {}): UseHoverLayerReturn {\n const layer = useLayer({onShow, onHide});\n const showTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n\n const clearTimeouts = useCallback(() => {\n if (showTimeoutRef.current != null) {\n clearTimeout(showTimeoutRef.current);\n showTimeoutRef.current = null;\n }\n\n if (hideTimeoutRef.current != null) {\n clearTimeout(hideTimeoutRef.current);\n hideTimeoutRef.current = null;\n }\n }, []);\n\n const scheduleShow = useCallback(() => {\n if (!isEnabled) {\n return;\n }\n\n clearTimeouts();\n showTimeoutRef.current = setTimeout(() => layer.show(), delay);\n }, [clearTimeouts, delay, isEnabled, layer]);\n\n const hideIfAllowed = useCallback(() => {\n if (shouldHide?.() === false) {\n return;\n }\n\n layer.hide();\n }, [layer, shouldHide]);\n\n const scheduleHide = useCallback(() => {\n clearTimeouts();\n\n if (hideDelay > 0) {\n hideTimeoutRef.current = setTimeout(hideIfAllowed, hideDelay);\n return;\n }\n\n hideIfAllowed();\n }, [clearTimeouts, hideDelay, hideIfAllowed]);\n\n const handleMouseEnter = useCallback(() => {\n if (isTouchDevice()) {\n return;\n }\n\n scheduleShow();\n }, [scheduleShow]);\n\n const handleMouseLeave = useCallback(() => {\n scheduleHide();\n }, [scheduleHide]);\n\n const handleFocusIn = useCallback(\n (event: FocusEvent) => {\n if (!isEnabled || onFocusIn?.(event) === false) {\n return;\n }\n\n clearTimeouts();\n layer.show();\n },\n [clearTimeouts, isEnabled, layer, onFocusIn],\n );\n\n const handleFocusOut = useCallback(\n (event: FocusEvent) => {\n if (onFocusOut?.(event) === false) {\n return;\n }\n\n scheduleHide();\n },\n [onFocusOut, scheduleHide],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape' && layer.isOpen) {\n onTriggerEscape?.(event);\n }\n },\n [layer.isOpen, onTriggerEscape],\n );\n\n const handlersRef = useRef({\n focusIn: handleFocusIn,\n focusOut: handleFocusOut,\n keyDown: handleKeyDown,\n mouseEnter: handleMouseEnter,\n mouseLeave: handleMouseLeave,\n });\n // eslint-disable-next-line @eslint-react/refs -- latest-ref pattern for stable DOM listeners\n handlersRef.current = {\n focusIn: handleFocusIn,\n focusOut: handleFocusOut,\n keyDown: handleKeyDown,\n mouseEnter: handleMouseEnter,\n mouseLeave: handleMouseLeave,\n };\n\n const stableMouseEnter = useCallback(() => {\n handlersRef.current.mouseEnter();\n }, []);\n const stableMouseLeave = useCallback(() => {\n handlersRef.current.mouseLeave();\n }, []);\n const stableFocusIn = useCallback((event: Event) => {\n handlersRef.current.focusIn(event as FocusEvent);\n }, []);\n const stableFocusOut = useCallback((event: Event) => {\n handlersRef.current.focusOut(event as FocusEvent);\n }, []);\n const stableKeyDown = useCallback((event: Event) => {\n handlersRef.current.keyDown(event as KeyboardEvent);\n }, []);\n\n const interactionRef: RefCallback<HTMLElement> = useCallback(\n element => {\n if (triggerRef.current != null) {\n triggerRef.current.removeEventListener('mouseenter', stableMouseEnter);\n triggerRef.current.removeEventListener('mouseleave', stableMouseLeave);\n triggerRef.current.removeEventListener('focusin', stableFocusIn);\n triggerRef.current.removeEventListener('focusout', stableFocusOut);\n triggerRef.current.removeEventListener('keydown', stableKeyDown);\n }\n\n if (element != null) {\n element.addEventListener('mouseenter', stableMouseEnter);\n element.addEventListener('mouseleave', stableMouseLeave);\n\n const shouldAttachFocus =\n focusTrigger === 'always' ||\n (focusTrigger === 'auto' && isFocusable(element));\n\n if (shouldAttachFocus) {\n element.addEventListener('focusin', stableFocusIn);\n element.addEventListener('focusout', stableFocusOut);\n }\n\n if (onTriggerEscape != null) {\n element.addEventListener('keydown', stableKeyDown);\n }\n }\n\n triggerRef.current = element;\n },\n [\n focusTrigger,\n onTriggerEscape,\n stableFocusIn,\n stableFocusOut,\n stableKeyDown,\n stableMouseEnter,\n stableMouseLeave,\n ],\n );\n\n const ref: RefCallback<HTMLElement> = useCallback(\n element => {\n layer.ref(element);\n interactionRef(element);\n },\n [interactionRef, layer],\n );\n\n useEffect(() => {\n return () => clearTimeouts();\n }, [clearTimeouts]);\n\n return useMemo(\n () => ({\n anchorId: layer.anchorId,\n clearTimeouts,\n describedBy: layer.id,\n hide: layer.hide,\n interactionRef,\n layer,\n positionRef: layer.ref,\n ref,\n scheduleHide,\n show: layer.show,\n triggerRef,\n }),\n [clearTimeouts, interactionRef, layer, ref, scheduleHide],\n );\n}\n"]}
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWGCGHFXE_cjs = require('./chunk-WGCGHFXE.cjs');
4
- var chunkBRB52QFV_cjs = require('./chunk-BRB52QFV.cjs');
5
- var chunkKFDHP4WP_cjs = require('./chunk-KFDHP4WP.cjs');
6
- var chunk7GN6YTSS_cjs = require('./chunk-7GN6YTSS.cjs');
4
+ var chunkQOKEU3DC_cjs = require('./chunk-QOKEU3DC.cjs');
5
+ var chunkSBS7U7CN_cjs = require('./chunk-SBS7U7CN.cjs');
6
+ var chunk7CCXHH6Y_cjs = require('./chunk-7CCXHH6Y.cjs');
7
7
  var chunk4TIAKZ4Q_cjs = require('./chunk-4TIAKZ4Q.cjs');
8
- var chunk5QPM5LUS_cjs = require('./chunk-5QPM5LUS.cjs');
8
+ var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
9
9
  var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
10
10
  var lucideReact = require('lucide-react');
11
11
  var react = require('react');
12
12
  var jsxRuntime = require('react/jsx-runtime');
13
13
 
14
14
  // src/components/Thumbnail/Thumbnail.recipe.ts
15
- var thumbnailRecipe = chunk5QPM5LUS_cjs.sva({
15
+ var thumbnailRecipe = chunkZ6RT3WPE_cjs.sva({
16
16
  slots: [
17
17
  "root",
18
18
  "imageContainer",
@@ -159,9 +159,9 @@ function ThumbnailImageArea({
159
159
  }
160
160
  ) : imageContent,
161
161
  hasImage ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.insetBorder }) : null,
162
- isLoading && hasImage ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.overlay, children: /* @__PURE__ */ jsxRuntime.jsx(chunkKFDHP4WP_cjs.Spinner, { size: "sm", variant: "onMedia" }) }) : null,
162
+ isLoading && hasImage ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.overlay, children: /* @__PURE__ */ jsxRuntime.jsx(chunkSBS7U7CN_cjs.Spinner, { size: "sm", variant: "onMedia" }) }) : null,
163
163
  onRemove != null && !isDisabled ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.remove, children: /* @__PURE__ */ jsxRuntime.jsx(
164
- chunkBRB52QFV_cjs.Button,
164
+ chunkQOKEU3DC_cjs.Button,
165
165
  {
166
166
  icon: lucideReact.X,
167
167
  isIconOnly: true,
@@ -217,10 +217,10 @@ function Thumbnail({
217
217
  )
218
218
  }
219
219
  );
220
- return label != null ? /* @__PURE__ */ jsxRuntime.jsx(chunk7GN6YTSS_cjs.Tooltip, { content: label, children: thumbnail }) : thumbnail;
220
+ return label != null ? /* @__PURE__ */ jsxRuntime.jsx(chunk7CCXHH6Y_cjs.Tooltip, { content: label, children: thumbnail }) : thumbnail;
221
221
  }
222
222
  Thumbnail.displayName = "Thumbnail";
223
223
 
224
224
  exports.Thumbnail = Thumbnail;
225
- //# sourceMappingURL=chunk-EE2O457Z.cjs.map
226
- //# sourceMappingURL=chunk-EE2O457Z.cjs.map
225
+ //# sourceMappingURL=chunk-JSINCF2R.cjs.map
226
+ //# sourceMappingURL=chunk-JSINCF2R.cjs.map