silver-ui 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. package/README.md +2 -1
  2. package/dist/{chunk-E7UOFIBW.cjs → chunk-23NN5WRP.cjs} +7 -6
  3. package/dist/chunk-23NN5WRP.cjs.map +1 -0
  4. package/dist/{chunk-3SLWOIT4.cjs → chunk-276LEL3G.cjs} +15 -6
  5. package/dist/chunk-276LEL3G.cjs.map +1 -0
  6. package/dist/chunk-2PSZAWLC.js +8 -0
  7. package/dist/chunk-2PSZAWLC.js.map +1 -0
  8. package/dist/{chunk-5MDH6QZE.js → chunk-2XAA3CM5.js} +7 -10
  9. package/dist/chunk-2XAA3CM5.js.map +1 -0
  10. package/dist/{chunk-SA3LUT6E.js → chunk-3DJ46WN4.js} +5 -5
  11. package/dist/{chunk-SA3LUT6E.js.map → chunk-3DJ46WN4.js.map} +1 -1
  12. package/dist/{chunk-JMLJLDHO.cjs → chunk-3IBY374V.cjs} +9 -9
  13. package/dist/{chunk-JMLJLDHO.cjs.map → chunk-3IBY374V.cjs.map} +1 -1
  14. package/dist/{chunk-7MB2KK6X.js → chunk-3L6KAW7G.js} +5 -5
  15. package/dist/{chunk-7MB2KK6X.js.map → chunk-3L6KAW7G.js.map} +1 -1
  16. package/dist/{chunk-WVQDFCFQ.js → chunk-3TXVDCF2.js} +4 -4
  17. package/dist/chunk-3TXVDCF2.js.map +1 -0
  18. package/dist/{chunk-P4A7GWQY.cjs → chunk-3XDUR3IG.cjs} +7 -6
  19. package/dist/chunk-3XDUR3IG.cjs.map +1 -0
  20. package/dist/{chunk-XHTKGOQV.cjs → chunk-3ZFEBOXD.cjs} +29 -18
  21. package/dist/chunk-3ZFEBOXD.cjs.map +1 -0
  22. package/dist/{chunk-UYKFE7KF.js → chunk-4CVDLMD6.js} +15 -6
  23. package/dist/chunk-4CVDLMD6.js.map +1 -0
  24. package/dist/{chunk-UUIAGGFW.cjs → chunk-4H35H54I.cjs} +35 -33
  25. package/dist/chunk-4H35H54I.cjs.map +1 -0
  26. package/dist/chunk-4MRORQNN.js +213 -0
  27. package/dist/chunk-4MRORQNN.js.map +1 -0
  28. package/dist/{chunk-CPZWTWYQ.js → chunk-54J6FRPG.js} +21 -16
  29. package/dist/chunk-54J6FRPG.js.map +1 -0
  30. package/dist/chunk-5AYGQJOW.js +162 -0
  31. package/dist/chunk-5AYGQJOW.js.map +1 -0
  32. package/dist/{chunk-GGZGVAEF.cjs → chunk-5BCLEOFF.cjs} +19 -16
  33. package/dist/chunk-5BCLEOFF.cjs.map +1 -0
  34. package/dist/{chunk-MEBIRX2P.js → chunk-5D4LRSIV.js} +6 -5
  35. package/dist/chunk-5D4LRSIV.js.map +1 -0
  36. package/dist/{chunk-4YQTSHIB.cjs → chunk-5GNYP3PH.cjs} +256 -209
  37. package/dist/chunk-5GNYP3PH.cjs.map +1 -0
  38. package/dist/{chunk-3DZPRXMC.cjs → chunk-5TT4PGZO.cjs} +6 -6
  39. package/dist/chunk-5TT4PGZO.cjs.map +1 -0
  40. package/dist/{chunk-AJYVGSBW.cjs → chunk-65QAZWOG.cjs} +4 -4
  41. package/dist/chunk-65QAZWOG.cjs.map +1 -0
  42. package/dist/{chunk-TZQWZ7IL.cjs → chunk-66LRFIYK.cjs} +8 -7
  43. package/dist/chunk-66LRFIYK.cjs.map +1 -0
  44. package/dist/{chunk-BDPE6ZKX.cjs → chunk-6MOJEGDU.cjs} +3 -3
  45. package/dist/{chunk-BDPE6ZKX.cjs.map → chunk-6MOJEGDU.cjs.map} +1 -1
  46. package/dist/{chunk-BA2VUDQS.js → chunk-6NTDPZWP.js} +3 -3
  47. package/dist/{chunk-BA2VUDQS.js.map → chunk-6NTDPZWP.js.map} +1 -1
  48. package/dist/{chunk-35MFOORC.js → chunk-6USJ4LJJ.js} +4 -4
  49. package/dist/{chunk-35MFOORC.js.map → chunk-6USJ4LJJ.js.map} +1 -1
  50. package/dist/{chunk-36QGPGT2.cjs → chunk-6W3L6IJB.cjs} +13 -12
  51. package/dist/chunk-6W3L6IJB.cjs.map +1 -0
  52. package/dist/{chunk-7P3VY5JZ.js → chunk-75CPTIET.js} +8 -7
  53. package/dist/chunk-75CPTIET.js.map +1 -0
  54. package/dist/{chunk-J2FCNWYM.js → chunk-76B2VLID.js} +82 -88
  55. package/dist/chunk-76B2VLID.js.map +1 -0
  56. package/dist/{chunk-FHKB6MBQ.js → chunk-7MN4JDP7.js} +31 -16
  57. package/dist/chunk-7MN4JDP7.js.map +1 -0
  58. package/dist/{chunk-3DFRJSNE.cjs → chunk-7PNLMDAR.cjs} +8 -8
  59. package/dist/{chunk-3DFRJSNE.cjs.map → chunk-7PNLMDAR.cjs.map} +1 -1
  60. package/dist/{chunk-ABEOBHAM.cjs → chunk-7U7RP6N2.cjs} +8 -8
  61. package/dist/{chunk-ABEOBHAM.cjs.map → chunk-7U7RP6N2.cjs.map} +1 -1
  62. package/dist/{chunk-463O56TB.js → chunk-AJTJD5C6.js} +6 -6
  63. package/dist/{chunk-463O56TB.js.map → chunk-AJTJD5C6.js.map} +1 -1
  64. package/dist/chunk-AMFFE5UJ.js +216 -0
  65. package/dist/chunk-AMFFE5UJ.js.map +1 -0
  66. package/dist/{chunk-K6CQ45C2.js → chunk-ASJ5CBCR.js} +7 -6
  67. package/dist/chunk-ASJ5CBCR.js.map +1 -0
  68. package/dist/{chunk-ESJND7B6.js → chunk-BA4A7C7U.js} +12 -9
  69. package/dist/chunk-BA4A7C7U.js.map +1 -0
  70. package/dist/{chunk-KFEXS6OK.cjs → chunk-BAPCHFNX.cjs} +10 -9
  71. package/dist/chunk-BAPCHFNX.cjs.map +1 -0
  72. package/dist/{chunk-O3T7Z6RH.cjs → chunk-BRB52QFV.cjs} +14 -54
  73. package/dist/chunk-BRB52QFV.cjs.map +1 -0
  74. package/dist/chunk-BS55BG2U.cjs +164 -0
  75. package/dist/chunk-BS55BG2U.cjs.map +1 -0
  76. package/dist/{chunk-TH3H5UGK.cjs → chunk-CEU7BIL6.cjs} +11 -11
  77. package/dist/{chunk-TH3H5UGK.cjs.map → chunk-CEU7BIL6.cjs.map} +1 -1
  78. package/dist/{chunk-VBL5SI5N.js → chunk-CN2HJ7CP.js} +212 -183
  79. package/dist/chunk-CN2HJ7CP.js.map +1 -0
  80. package/dist/{chunk-PXVVTPRJ.js → chunk-CRQXHA7N.js} +9 -8
  81. package/dist/chunk-CRQXHA7N.js.map +1 -0
  82. package/dist/{chunk-SXIBQQ55.js → chunk-CZC2K5GJ.js} +10 -9
  83. package/dist/chunk-CZC2K5GJ.js.map +1 -0
  84. package/dist/{chunk-WA4VZ363.cjs → chunk-CZM5FAWL.cjs} +11 -10
  85. package/dist/chunk-CZM5FAWL.cjs.map +1 -0
  86. package/dist/{chunk-3JVD4AXC.js → chunk-D2DOHX4W.js} +253 -206
  87. package/dist/chunk-D2DOHX4W.js.map +1 -0
  88. package/dist/chunk-D3SSMY73.cjs +80 -0
  89. package/dist/chunk-D3SSMY73.cjs.map +1 -0
  90. package/dist/{chunk-PTZAJW3J.js → chunk-DIIE44GO.js} +14 -13
  91. package/dist/chunk-DIIE44GO.js.map +1 -0
  92. package/dist/{chunk-S54CKWKV.js → chunk-DSB4Q3AS.js} +3 -3
  93. package/dist/{chunk-S54CKWKV.js.map → chunk-DSB4Q3AS.js.map} +1 -1
  94. package/dist/{chunk-AMG3S252.js → chunk-EBQ3A4XO.js} +9 -8
  95. package/dist/chunk-EBQ3A4XO.js.map +1 -0
  96. package/dist/{chunk-2K44WLBJ.js → chunk-EC2ALHNJ.js} +73 -67
  97. package/dist/chunk-EC2ALHNJ.js.map +1 -0
  98. package/dist/{chunk-JEK5SVB5.cjs → chunk-EE2O457Z.cjs} +9 -9
  99. package/dist/{chunk-JEK5SVB5.cjs.map → chunk-EE2O457Z.cjs.map} +1 -1
  100. package/dist/{chunk-DP4KK2N4.cjs → chunk-EVKFA5FA.cjs} +32 -27
  101. package/dist/chunk-EVKFA5FA.cjs.map +1 -0
  102. package/dist/{chunk-MNVBSOAQ.cjs → chunk-F3NATTQG.cjs} +81 -75
  103. package/dist/chunk-F3NATTQG.cjs.map +1 -0
  104. package/dist/{chunk-OJCJPYXE.js → chunk-F3ZNRO6W.js} +8 -7
  105. package/dist/chunk-F3ZNRO6W.js.map +1 -0
  106. package/dist/{chunk-OHKL4DOV.js → chunk-FZCBTFHY.js} +7 -6
  107. package/dist/chunk-FZCBTFHY.js.map +1 -0
  108. package/dist/{chunk-Z7ID5TC7.cjs → chunk-GLJWAY4A.cjs} +15 -10
  109. package/dist/chunk-GLJWAY4A.cjs.map +1 -0
  110. package/dist/{chunk-7DWASA3K.js → chunk-GXRH5XQY.js} +89 -74
  111. package/dist/chunk-GXRH5XQY.js.map +1 -0
  112. package/dist/{chunk-WE2AXMPB.js → chunk-HNROO7CR.js} +230 -170
  113. package/dist/chunk-HNROO7CR.js.map +1 -0
  114. package/dist/{chunk-UJODHP7E.cjs → chunk-HPVXP3DG.cjs} +12 -11
  115. package/dist/chunk-HPVXP3DG.cjs.map +1 -0
  116. package/dist/chunk-HVUYVPQL.cjs +193 -0
  117. package/dist/chunk-HVUYVPQL.cjs.map +1 -0
  118. package/dist/{chunk-PWL6TWVC.cjs → chunk-I7KILUVL.cjs} +13 -12
  119. package/dist/chunk-I7KILUVL.cjs.map +1 -0
  120. package/dist/{chunk-UY3MYNI6.js → chunk-IHM2M74J.js} +5 -4
  121. package/dist/chunk-IHM2M74J.js.map +1 -0
  122. package/dist/{chunk-4M2KCZMO.js → chunk-IRSJHEYI.js} +5 -4
  123. package/dist/chunk-IRSJHEYI.js.map +1 -0
  124. package/dist/{chunk-MX2F3HUI.cjs → chunk-JEIQ5GDK.cjs} +25 -24
  125. package/dist/chunk-JEIQ5GDK.cjs.map +1 -0
  126. package/dist/{chunk-YXYD5HKL.cjs → chunk-KFDHP4WP.cjs} +4 -4
  127. package/dist/{chunk-YXYD5HKL.cjs.map → chunk-KFDHP4WP.cjs.map} +1 -1
  128. package/dist/{chunk-FDSUILCM.cjs → chunk-KRZ57O2J.cjs} +3 -4
  129. package/dist/chunk-KRZ57O2J.cjs.map +1 -0
  130. package/dist/{chunk-W3QVSVL7.cjs → chunk-L5YTMHDI.cjs} +11 -10
  131. package/dist/chunk-L5YTMHDI.cjs.map +1 -0
  132. package/dist/{chunk-PNYF6NS4.cjs → chunk-L7BOLGF2.cjs} +8 -7
  133. package/dist/chunk-L7BOLGF2.cjs.map +1 -0
  134. package/dist/{chunk-QPYPPJEZ.js → chunk-LHP47U6H.js} +5 -4
  135. package/dist/chunk-LHP47U6H.js.map +1 -0
  136. package/dist/{chunk-EBCHOGKT.js → chunk-LUBVZVY3.js} +17 -16
  137. package/dist/chunk-LUBVZVY3.js.map +1 -0
  138. package/dist/{chunk-47FUQCAT.cjs → chunk-LX64ENLC.cjs} +66 -51
  139. package/dist/chunk-LX64ENLC.cjs.map +1 -0
  140. package/dist/{chunk-GYUWDJXS.cjs → chunk-M3BF3BBJ.cjs} +13 -12
  141. package/dist/chunk-M3BF3BBJ.cjs.map +1 -0
  142. package/dist/chunk-M3IKL2VG.js +393 -0
  143. package/dist/chunk-M3IKL2VG.js.map +1 -0
  144. package/dist/{chunk-RSG7N5QQ.cjs → chunk-M3RNFDA2.cjs} +14 -13
  145. package/dist/chunk-M3RNFDA2.cjs.map +1 -0
  146. package/dist/{chunk-U4GWNENK.js → chunk-M4JUQCKP.js} +3 -3
  147. package/dist/chunk-M4JUQCKP.js.map +1 -0
  148. package/dist/{chunk-YUONTRNC.js → chunk-MGVEX3RS.js} +7 -7
  149. package/dist/{chunk-YUONTRNC.js.map → chunk-MGVEX3RS.js.map} +1 -1
  150. package/dist/chunk-MSNRGNVY.cjs +216 -0
  151. package/dist/chunk-MSNRGNVY.cjs.map +1 -0
  152. package/dist/{chunk-IXJOPMJX.cjs → chunk-MUUPZEZ5.cjs} +7 -6
  153. package/dist/chunk-MUUPZEZ5.cjs.map +1 -0
  154. package/dist/{chunk-XVRQSTUF.js → chunk-N2TNBDQI.js} +4 -3
  155. package/dist/chunk-N2TNBDQI.js.map +1 -0
  156. package/dist/{chunk-CBJ4APCT.js → chunk-NH7KH7QP.js} +5 -4
  157. package/dist/chunk-NH7KH7QP.js.map +1 -0
  158. package/dist/{chunk-76FHSISK.cjs → chunk-NHXJVSZZ.cjs} +7 -10
  159. package/dist/chunk-NHXJVSZZ.cjs.map +1 -0
  160. package/dist/{chunk-4I6VIR44.cjs → chunk-NYQPIBOD.cjs} +12 -11
  161. package/dist/chunk-NYQPIBOD.cjs.map +1 -0
  162. package/dist/{chunk-BTL6GUMN.js → chunk-O4RTJESR.js} +3 -3
  163. package/dist/{chunk-BTL6GUMN.js.map → chunk-O4RTJESR.js.map} +1 -1
  164. package/dist/{chunk-DZ3NHSJ4.js → chunk-O5A47TA2.js} +5 -4
  165. package/dist/chunk-O5A47TA2.js.map +1 -0
  166. package/dist/{chunk-HMWV6KCW.cjs → chunk-OSBVDRVD.cjs} +17 -16
  167. package/dist/chunk-OSBVDRVD.cjs.map +1 -0
  168. package/dist/{chunk-NF63IRZR.cjs → chunk-OULO3YDQ.cjs} +6 -5
  169. package/dist/chunk-OULO3YDQ.cjs.map +1 -0
  170. package/dist/{chunk-POW2Z7TP.js → chunk-OWBNRALR.js} +5 -5
  171. package/dist/{chunk-POW2Z7TP.js.map → chunk-OWBNRALR.js.map} +1 -1
  172. package/dist/{chunk-GEGYC7CE.js → chunk-P6RAOXJA.js} +5 -5
  173. package/dist/chunk-P6RAOXJA.js.map +1 -0
  174. package/dist/{chunk-MMQIQILP.cjs → chunk-PJMV2HTO.cjs} +27 -29
  175. package/dist/chunk-PJMV2HTO.cjs.map +1 -0
  176. package/dist/{chunk-3WMLV4VP.cjs → chunk-PL6J55JB.cjs} +6 -6
  177. package/dist/chunk-PL6J55JB.cjs.map +1 -0
  178. package/dist/chunk-PQRIV5XU.js +242 -0
  179. package/dist/chunk-PQRIV5XU.js.map +1 -0
  180. package/dist/chunk-PZ63ZCEO.cjs +470 -0
  181. package/dist/chunk-PZ63ZCEO.cjs.map +1 -0
  182. package/dist/{chunk-AKTUU5ML.js → chunk-Q3OA23V5.js} +17 -19
  183. package/dist/chunk-Q3OA23V5.js.map +1 -0
  184. package/dist/chunk-QAO6QMNQ.cjs +10 -0
  185. package/dist/chunk-QAO6QMNQ.cjs.map +1 -0
  186. package/dist/{chunk-O2ZMOBMA.cjs → chunk-QCT4BPB6.cjs} +21 -21
  187. package/dist/{chunk-O2ZMOBMA.cjs.map → chunk-QCT4BPB6.cjs.map} +1 -1
  188. package/dist/{chunk-JMNH45Q3.cjs → chunk-QEFE4QBL.cjs} +81 -87
  189. package/dist/chunk-QEFE4QBL.cjs.map +1 -0
  190. package/dist/{chunk-ZP3UZDSV.cjs → chunk-QEX7V7TI.cjs} +10 -9
  191. package/dist/chunk-QEX7V7TI.cjs.map +1 -0
  192. package/dist/chunk-QGHFUOUB.cjs +112 -0
  193. package/dist/chunk-QGHFUOUB.cjs.map +1 -0
  194. package/dist/{chunk-VQ7IRFRR.cjs → chunk-QL3YSC3H.cjs} +16 -15
  195. package/dist/chunk-QL3YSC3H.cjs.map +1 -0
  196. package/dist/{chunk-2VIJC4NW.cjs → chunk-QRKRVCA3.cjs} +238 -178
  197. package/dist/chunk-QRKRVCA3.cjs.map +1 -0
  198. package/dist/{chunk-S4GLMGFI.js → chunk-RINP34ZG.js} +5 -4
  199. package/dist/chunk-RINP34ZG.js.map +1 -0
  200. package/dist/{chunk-RRNT32KY.js → chunk-RVENUWRD.js} +15 -55
  201. package/dist/chunk-RVENUWRD.js.map +1 -0
  202. package/dist/{chunk-GTPRZCNZ.js → chunk-S4B2D427.js} +3 -3
  203. package/dist/{chunk-GTPRZCNZ.js.map → chunk-S4B2D427.js.map} +1 -1
  204. package/dist/{chunk-AXCE2HKG.js → chunk-S4LVSSJI.js} +11 -6
  205. package/dist/chunk-S4LVSSJI.js.map +1 -0
  206. package/dist/{chunk-L6JT244G.cjs → chunk-SSOAZZNR.cjs} +4 -3
  207. package/dist/chunk-SSOAZZNR.cjs.map +1 -0
  208. package/dist/{chunk-BZ4XKKNH.js → chunk-TF7IWMV2.js} +9 -8
  209. package/dist/chunk-TF7IWMV2.js.map +1 -0
  210. package/dist/{chunk-V7Q64Z3S.cjs → chunk-U2U4FMFM.cjs} +8 -8
  211. package/dist/{chunk-V7Q64Z3S.cjs.map → chunk-U2U4FMFM.cjs.map} +1 -1
  212. package/dist/chunk-U5GTHA44.cjs +395 -0
  213. package/dist/chunk-U5GTHA44.cjs.map +1 -0
  214. package/dist/chunk-UKDGDMWN.js +78 -0
  215. package/dist/chunk-UKDGDMWN.js.map +1 -0
  216. package/dist/chunk-UN35QV25.js +110 -0
  217. package/dist/chunk-UN35QV25.js.map +1 -0
  218. package/dist/{chunk-IR4COTIR.js → chunk-UPQHFW47.js} +4 -4
  219. package/dist/{chunk-IR4COTIR.js.map → chunk-UPQHFW47.js.map} +1 -1
  220. package/dist/{chunk-U5ZCQI5O.cjs → chunk-UXDXE7Z6.cjs} +41 -40
  221. package/dist/chunk-UXDXE7Z6.cjs.map +1 -0
  222. package/dist/{chunk-ZJ2NV4SQ.js → chunk-UYBGXFYX.js} +22 -21
  223. package/dist/chunk-UYBGXFYX.js.map +1 -0
  224. package/dist/{chunk-ZW2ATXTL.js → chunk-VAK4JQYL.js} +7 -6
  225. package/dist/chunk-VAK4JQYL.js.map +1 -0
  226. package/dist/{chunk-QADMIAYK.js → chunk-VEUZ5DZR.js} +6 -5
  227. package/dist/chunk-VEUZ5DZR.js.map +1 -0
  228. package/dist/{chunk-JVLE7PCJ.cjs → chunk-VJBBMBRT.cjs} +7 -7
  229. package/dist/{chunk-JVLE7PCJ.cjs.map → chunk-VJBBMBRT.cjs.map} +1 -1
  230. package/dist/chunk-VVO7GIHG.cjs +220 -0
  231. package/dist/chunk-VVO7GIHG.cjs.map +1 -0
  232. package/dist/{chunk-BDBHHJGN.cjs → chunk-W3KMDQKP.cjs} +8 -7
  233. package/dist/chunk-W3KMDQKP.cjs.map +1 -0
  234. package/dist/{chunk-UC36KIEP.cjs → chunk-WGCGHFXE.cjs} +2 -3
  235. package/dist/chunk-WGCGHFXE.cjs.map +1 -0
  236. package/dist/{chunk-74ONIT6C.js → chunk-WO6FS4DV.js} +5 -4
  237. package/dist/chunk-WO6FS4DV.js.map +1 -0
  238. package/dist/chunk-WYE3VOFK.cjs +244 -0
  239. package/dist/chunk-WYE3VOFK.cjs.map +1 -0
  240. package/dist/{chunk-3IDEWEDY.cjs → chunk-X2GRBPCJ.cjs} +89 -74
  241. package/dist/chunk-X2GRBPCJ.cjs.map +1 -0
  242. package/dist/{chunk-4YQSKCVF.cjs → chunk-XADTIY7J.cjs} +4 -4
  243. package/dist/{chunk-4YQSKCVF.cjs.map → chunk-XADTIY7J.cjs.map} +1 -1
  244. package/dist/{chunk-63RKQ237.js → chunk-XUJZTD4E.js} +9 -8
  245. package/dist/chunk-XUJZTD4E.js.map +1 -0
  246. package/dist/{chunk-OJ3KVNW2.js → chunk-Y4FH67QZ.js} +8 -7
  247. package/dist/chunk-Y4FH67QZ.js.map +1 -0
  248. package/dist/{chunk-UQV5MOGR.js → chunk-YLGAJD6Q.js} +8 -6
  249. package/dist/chunk-YLGAJD6Q.js.map +1 -0
  250. package/dist/chunk-YNTPHZFJ.js +191 -0
  251. package/dist/chunk-YNTPHZFJ.js.map +1 -0
  252. package/dist/{chunk-OBBPRWYD.js → chunk-YSTESYUB.js} +24 -13
  253. package/dist/chunk-YSTESYUB.js.map +1 -0
  254. package/dist/{chunk-K77D7H4V.cjs → chunk-ZD3NPHZ7.cjs} +5 -4
  255. package/dist/chunk-ZD3NPHZ7.cjs.map +1 -0
  256. package/dist/{chunk-2RIDPITG.cjs → chunk-ZLATP3P5.cjs} +10 -8
  257. package/dist/chunk-ZLATP3P5.cjs.map +1 -0
  258. package/dist/{chunk-6NY5DOFM.js → chunk-ZVH3BLYO.js} +8 -7
  259. package/dist/chunk-ZVH3BLYO.js.map +1 -0
  260. package/dist/{chunk-STSR3FAC.js → chunk-ZWULWVN3.js} +30 -28
  261. package/dist/chunk-ZWULWVN3.js.map +1 -0
  262. package/dist/components/Accordion/AccordionItem.recipe.d.ts +1 -1
  263. package/dist/components/Accordion/index.cjs +5 -5
  264. package/dist/components/Accordion/index.js +2 -2
  265. package/dist/components/Alert/Alert.d.ts.map +1 -1
  266. package/dist/components/Alert/Alert.recipe.d.ts +1 -1
  267. package/dist/components/Alert/index.cjs +8 -7
  268. package/dist/components/Alert/index.js +7 -6
  269. package/dist/components/AlertDialog/index.cjs +10 -9
  270. package/dist/components/AlertDialog/index.js +8 -7
  271. package/dist/components/AppShell/AppShell.d.ts.map +1 -1
  272. package/dist/components/AppShell/index.cjs +16 -15
  273. package/dist/components/AppShell/index.js +13 -12
  274. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts +6 -1
  275. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
  276. package/dist/components/AutocompleteInput/AutocompleteInput.recipe.d.ts +42 -0
  277. package/dist/components/AutocompleteInput/AutocompleteInput.recipe.d.ts.map +1 -0
  278. package/dist/components/AutocompleteInput/AutocompleteInputItem.d.ts +27 -4
  279. package/dist/components/AutocompleteInput/AutocompleteInputItem.d.ts.map +1 -1
  280. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts +22 -2
  281. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
  282. package/dist/components/AutocompleteInput/index.cjs +14 -13
  283. package/dist/components/AutocompleteInput/index.d.ts +1 -1
  284. package/dist/components/AutocompleteInput/index.d.ts.map +1 -1
  285. package/dist/components/AutocompleteInput/index.js +10 -9
  286. package/dist/components/AutocompleteInput/types.d.ts +39 -3
  287. package/dist/components/AutocompleteInput/types.d.ts.map +1 -1
  288. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  289. package/dist/components/Avatar/AvatarStatusDot.d.ts.map +1 -1
  290. package/dist/components/Avatar/index.cjs +6 -5
  291. package/dist/components/Avatar/index.js +3 -2
  292. package/dist/components/AvatarGroup/index.cjs +6 -5
  293. package/dist/components/AvatarGroup/index.js +4 -3
  294. package/dist/components/Blockquote/Blockquote.d.ts.map +1 -1
  295. package/dist/components/Blockquote/index.cjs +3 -6
  296. package/dist/components/Blockquote/index.d.ts +0 -1
  297. package/dist/components/Blockquote/index.d.ts.map +1 -1
  298. package/dist/components/Blockquote/index.js +2 -1
  299. package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  300. package/dist/components/Breadcrumbs/BreadcrumbItem.recipe.d.ts +22 -0
  301. package/dist/components/Breadcrumbs/BreadcrumbItem.recipe.d.ts.map +1 -0
  302. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  303. package/dist/components/Breadcrumbs/Breadcrumbs.recipe.d.ts +4 -0
  304. package/dist/components/Breadcrumbs/Breadcrumbs.recipe.d.ts.map +1 -0
  305. package/dist/components/Breadcrumbs/index.cjs +6 -4
  306. package/dist/components/Breadcrumbs/index.js +3 -1
  307. package/dist/components/Button/Button.d.ts.map +1 -1
  308. package/dist/components/Button/Button.recipe.d.ts +80 -62
  309. package/dist/components/Button/Button.recipe.d.ts.map +1 -1
  310. package/dist/components/Button/index.cjs +7 -6
  311. package/dist/components/Button/index.js +6 -5
  312. package/dist/components/ButtonGroup/ButtonGroup.recipe.d.ts +4 -4
  313. package/dist/components/ButtonGroup/ButtonGroup.recipe.d.ts.map +1 -1
  314. package/dist/components/ButtonGroup/index.cjs +2 -2
  315. package/dist/components/ButtonGroup/index.js +1 -1
  316. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  317. package/dist/components/Calendar/Calendar.recipe.d.ts +86 -0
  318. package/dist/components/Calendar/Calendar.recipe.d.ts.map +1 -0
  319. package/dist/components/Calendar/index.cjs +8 -7
  320. package/dist/components/Calendar/index.js +7 -6
  321. package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  322. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts +39 -0
  323. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts.map +1 -0
  324. package/dist/components/CheckboxInput/index.cjs +7 -6
  325. package/dist/components/CheckboxInput/index.js +6 -5
  326. package/dist/components/CodeBlock/index.cjs +9 -8
  327. package/dist/components/CodeBlock/index.d.ts +0 -1
  328. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  329. package/dist/components/CodeBlock/index.js +8 -7
  330. package/dist/components/ContextMenu/index.cjs +13 -12
  331. package/dist/components/ContextMenu/index.js +11 -10
  332. package/dist/components/DateInput/DateInput.d.ts +5 -1
  333. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  334. package/dist/components/DateInput/index.cjs +11 -10
  335. package/dist/components/DateInput/index.js +10 -9
  336. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  337. package/dist/components/DateRangeInput/index.cjs +11 -10
  338. package/dist/components/DateRangeInput/index.js +10 -9
  339. package/dist/components/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  340. package/dist/components/DateTimeInput/index.cjs +13 -12
  341. package/dist/components/DateTimeInput/index.js +12 -11
  342. package/dist/components/Divider/Divider.d.ts.map +1 -1
  343. package/dist/components/Divider/index.cjs +3 -2
  344. package/dist/components/Divider/index.js +2 -1
  345. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  346. package/dist/components/DropdownMenu/index.cjs +14 -13
  347. package/dist/components/DropdownMenu/index.js +10 -9
  348. package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
  349. package/dist/components/EmptyState/EmptyState.recipe.d.ts +13 -4
  350. package/dist/components/EmptyState/EmptyState.recipe.d.ts.map +1 -1
  351. package/dist/components/EmptyState/index.cjs +5 -3
  352. package/dist/components/EmptyState/index.js +4 -2
  353. package/dist/components/Field/Field.d.ts.map +1 -1
  354. package/dist/components/Field/index.cjs +6 -5
  355. package/dist/components/Field/index.js +4 -3
  356. package/dist/components/FileInput/FileInput.d.ts.map +1 -1
  357. package/dist/components/FileInput/index.cjs +9 -8
  358. package/dist/components/FileInput/index.js +8 -7
  359. package/dist/components/InputGroup/InputGroup.d.ts.map +1 -1
  360. package/dist/components/InputGroup/index.cjs +9 -8
  361. package/dist/components/InputGroup/index.js +5 -4
  362. package/dist/components/Item/Item.d.ts.map +1 -1
  363. package/dist/components/Item/index.cjs +4 -3
  364. package/dist/components/Item/index.js +3 -2
  365. package/dist/components/Kbd/index.d.ts +0 -1
  366. package/dist/components/Kbd/index.d.ts.map +1 -1
  367. package/dist/components/Layout/Layout.d.ts.map +1 -1
  368. package/dist/components/Layout/LayoutFooter.d.ts.map +1 -1
  369. package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
  370. package/dist/components/Layout/index.cjs +12 -11
  371. package/dist/components/Layout/index.js +7 -6
  372. package/dist/components/Lightbox/Lightbox.d.ts.map +1 -1
  373. package/dist/components/Lightbox/index.cjs +9 -8
  374. package/dist/components/Lightbox/index.js +7 -6
  375. package/dist/components/Link/index.cjs +1 -0
  376. package/dist/components/Link/index.js +1 -0
  377. package/dist/components/List/List.d.ts.map +1 -1
  378. package/dist/components/List/List.recipe.d.ts +42 -0
  379. package/dist/components/List/List.recipe.d.ts.map +1 -0
  380. package/dist/components/List/ListItem.d.ts.map +1 -1
  381. package/dist/components/List/index.cjs +7 -5
  382. package/dist/components/List/index.js +5 -3
  383. package/dist/components/MetadataList/index.cjs +4 -4
  384. package/dist/components/MetadataList/index.js +2 -2
  385. package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
  386. package/dist/components/MultiSelect/index.cjs +11 -10
  387. package/dist/components/MultiSelect/index.js +10 -9
  388. package/dist/components/NumberInput/NumberInput.d.ts.map +1 -1
  389. package/dist/components/NumberInput/index.cjs +10 -9
  390. package/dist/components/NumberInput/index.js +9 -8
  391. package/dist/components/Pagination/index.cjs +8 -7
  392. package/dist/components/Pagination/index.js +7 -6
  393. package/dist/components/PasswordInput/index.cjs +11 -10
  394. package/dist/components/PasswordInput/index.js +10 -9
  395. package/dist/components/Popover/Popover.d.ts.map +1 -1
  396. package/dist/components/Popover/index.cjs +9 -8
  397. package/dist/components/Popover/index.js +7 -6
  398. package/dist/components/Progress/Progress.d.ts.map +1 -1
  399. package/dist/components/Progress/Progress.recipe.d.ts +34 -16
  400. package/dist/components/Progress/Progress.recipe.d.ts.map +1 -1
  401. package/dist/components/Progress/index.cjs +4 -2
  402. package/dist/components/Progress/index.js +3 -1
  403. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  404. package/dist/components/RadioGroup/RadioGroupItem.d.ts.map +1 -1
  405. package/dist/components/RadioGroup/index.cjs +8 -7
  406. package/dist/components/RadioGroup/index.d.ts +0 -1
  407. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  408. package/dist/components/RadioGroup/index.js +6 -5
  409. package/dist/components/Rating/index.cjs +3 -7
  410. package/dist/components/Rating/index.d.ts +0 -1
  411. package/dist/components/Rating/index.d.ts.map +1 -1
  412. package/dist/components/Rating/index.js +2 -2
  413. package/dist/components/Schedule/index.cjs +23 -22
  414. package/dist/components/Schedule/index.js +12 -11
  415. package/dist/components/SearchFilterInput/SearchFilterInput.d.ts.map +1 -1
  416. package/dist/components/SearchFilterInput/index.cjs +30 -29
  417. package/dist/components/SearchFilterInput/index.js +22 -21
  418. package/dist/components/Select/Select.d.ts.map +1 -1
  419. package/dist/components/Select/Select.recipe.d.ts +25 -0
  420. package/dist/components/Select/Select.recipe.d.ts.map +1 -0
  421. package/dist/components/Select/SelectOption.d.ts.map +1 -1
  422. package/dist/components/Select/index.cjs +13 -12
  423. package/dist/components/Select/index.js +11 -10
  424. package/dist/components/SideNav/SideNav.d.ts.map +1 -1
  425. package/dist/components/SideNav/SideNavHeading.d.ts.map +1 -1
  426. package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
  427. package/dist/components/SideNav/SideNavSection.d.ts.map +1 -1
  428. package/dist/components/SideNav/index.cjs +15 -14
  429. package/dist/components/SideNav/index.js +9 -8
  430. package/dist/components/Skeleton/index.cjs +2 -6
  431. package/dist/components/Skeleton/index.d.ts +0 -1
  432. package/dist/components/Skeleton/index.d.ts.map +1 -1
  433. package/dist/components/Skeleton/index.js +1 -1
  434. package/dist/components/Slider/Slider.d.ts.map +1 -1
  435. package/dist/components/Slider/index.cjs +6 -9
  436. package/dist/components/Slider/index.d.ts +0 -1
  437. package/dist/components/Slider/index.d.ts.map +1 -1
  438. package/dist/components/Slider/index.js +5 -4
  439. package/dist/components/Spinner/index.cjs +3 -3
  440. package/dist/components/Spinner/index.js +2 -2
  441. package/dist/components/SplitButton/SplitButton.d.ts +89 -0
  442. package/dist/components/SplitButton/SplitButton.d.ts.map +1 -0
  443. package/dist/components/SplitButton/index.cjs +35 -0
  444. package/dist/components/SplitButton/index.cjs.map +1 -0
  445. package/dist/components/SplitButton/index.d.ts +2 -0
  446. package/dist/components/SplitButton/index.d.ts.map +1 -0
  447. package/dist/components/SplitButton/index.js +26 -0
  448. package/dist/components/SplitButton/index.js.map +1 -0
  449. package/dist/components/Stack/HStack.d.ts +1 -1
  450. package/dist/components/Stack/HStack.d.ts.map +1 -1
  451. package/dist/components/Stack/VStack.d.ts +1 -1
  452. package/dist/components/Stack/VStack.d.ts.map +1 -1
  453. package/dist/components/Stack/index.cjs +3 -3
  454. package/dist/components/Stack/index.d.ts +1 -1
  455. package/dist/components/Stack/index.d.ts.map +1 -1
  456. package/dist/components/Stack/index.js +1 -1
  457. package/dist/components/Stack/{Stack.d.ts → internal/Stack.d.ts} +13 -3
  458. package/dist/components/Stack/internal/Stack.d.ts.map +1 -0
  459. package/dist/components/Stack/{Stack.recipe.d.ts → internal/Stack.recipe.d.ts} +1 -1
  460. package/dist/components/Stack/internal/Stack.recipe.d.ts.map +1 -0
  461. package/dist/components/Stepper/Step.d.ts.map +1 -1
  462. package/dist/components/Stepper/index.cjs +6 -5
  463. package/dist/components/Stepper/index.js +3 -2
  464. package/dist/components/Switch/Switch.d.ts.map +1 -1
  465. package/dist/components/Switch/index.cjs +6 -5
  466. package/dist/components/Switch/index.js +5 -4
  467. package/dist/components/Table/BaseTable.d.ts.map +1 -1
  468. package/dist/components/Table/index.cjs +53 -52
  469. package/dist/components/Table/index.js +25 -24
  470. package/dist/components/Table/plugins/pagination/useTablePagination.d.ts.map +1 -1
  471. package/dist/components/Tabs/Tab.d.ts.map +1 -1
  472. package/dist/components/Tabs/index.cjs +13 -12
  473. package/dist/components/Tabs/index.js +8 -7
  474. package/dist/components/Tag/Tag.d.ts +2 -2
  475. package/dist/components/Tag/Tag.d.ts.map +1 -1
  476. package/dist/components/Tag/Tag.recipe.d.ts +103 -68
  477. package/dist/components/Tag/Tag.recipe.d.ts.map +1 -1
  478. package/dist/components/Tag/index.cjs +4 -2
  479. package/dist/components/Tag/index.js +3 -1
  480. package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
  481. package/dist/components/TagsInput/index.cjs +12 -11
  482. package/dist/components/TagsInput/index.js +11 -10
  483. package/dist/components/Text/Heading.d.ts.map +1 -1
  484. package/dist/components/Text/Text.d.ts.map +1 -1
  485. package/dist/components/Text/index.cjs +3 -3
  486. package/dist/components/Text/index.js +1 -1
  487. package/dist/components/TextArea/TextArea.d.ts.map +1 -1
  488. package/dist/components/TextArea/index.cjs +7 -6
  489. package/dist/components/TextArea/index.js +6 -5
  490. package/dist/components/TextInput/TextInput.d.ts.map +1 -1
  491. package/dist/components/TextInput/index.cjs +10 -9
  492. package/dist/components/TextInput/index.js +9 -8
  493. package/dist/components/Thumbnail/Thumbnail.recipe.d.ts +1 -1
  494. package/dist/components/Thumbnail/index.cjs +9 -8
  495. package/dist/components/Thumbnail/index.d.ts +0 -1
  496. package/dist/components/Thumbnail/index.d.ts.map +1 -1
  497. package/dist/components/Thumbnail/index.js +8 -7
  498. package/dist/components/TimeInput/TimeInput.d.ts +10 -2
  499. package/dist/components/TimeInput/TimeInput.d.ts.map +1 -1
  500. package/dist/components/TimeInput/index.cjs +9 -8
  501. package/dist/components/TimeInput/index.js +8 -7
  502. package/dist/components/Toast/Toast.d.ts.map +1 -1
  503. package/dist/components/Toast/Toast.recipe.d.ts +39 -0
  504. package/dist/components/Toast/Toast.recipe.d.ts.map +1 -0
  505. package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
  506. package/dist/components/Toast/index.cjs +10 -9
  507. package/dist/components/Toast/index.js +7 -6
  508. package/dist/components/ToggleButton/index.cjs +7 -7
  509. package/dist/components/ToggleButton/index.js +5 -5
  510. package/dist/components/TopNav/TopNav.d.ts.map +1 -1
  511. package/dist/components/TopNav/TopNavHeading.d.ts.map +1 -1
  512. package/dist/components/TopNav/index.cjs +15 -14
  513. package/dist/components/TopNav/index.js +9 -8
  514. package/dist/components/TreeView/TreeView.d.ts.map +1 -1
  515. package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
  516. package/dist/components/TreeView/index.cjs +3 -2
  517. package/dist/components/TreeView/index.js +2 -1
  518. package/dist/index.cjs +229 -227
  519. package/dist/index.cjs.map +1 -1
  520. package/dist/index.d.ts +3 -2
  521. package/dist/index.d.ts.map +1 -1
  522. package/dist/index.js +66 -64
  523. package/dist/index.js.map +1 -1
  524. package/dist/internal/MobileNav/MobileNav.d.ts.map +1 -1
  525. package/dist/internal/OverflowList.d.ts.map +1 -1
  526. package/dist/internal/index.d.ts +1 -0
  527. package/dist/internal/index.d.ts.map +1 -1
  528. package/dist/internal/isReactNode.d.ts +3 -0
  529. package/dist/internal/isReactNode.d.ts.map +1 -0
  530. package/dist/internal/useSelectListbox.d.ts +2 -2
  531. package/dist/internal/useSelectListbox.d.ts.map +1 -1
  532. package/dist/styles.css +1 -1
  533. package/package.json +1 -1
  534. package/dist/chunk-2K44WLBJ.js.map +0 -1
  535. package/dist/chunk-2RIDPITG.cjs.map +0 -1
  536. package/dist/chunk-2VIJC4NW.cjs.map +0 -1
  537. package/dist/chunk-36QGPGT2.cjs.map +0 -1
  538. package/dist/chunk-3DZPRXMC.cjs.map +0 -1
  539. package/dist/chunk-3IDEWEDY.cjs.map +0 -1
  540. package/dist/chunk-3JVD4AXC.js.map +0 -1
  541. package/dist/chunk-3SLWOIT4.cjs.map +0 -1
  542. package/dist/chunk-3WMLV4VP.cjs.map +0 -1
  543. package/dist/chunk-47FUQCAT.cjs.map +0 -1
  544. package/dist/chunk-4I6VIR44.cjs.map +0 -1
  545. package/dist/chunk-4M2KCZMO.js.map +0 -1
  546. package/dist/chunk-4YESF35X.cjs +0 -211
  547. package/dist/chunk-4YESF35X.cjs.map +0 -1
  548. package/dist/chunk-4YQTSHIB.cjs.map +0 -1
  549. package/dist/chunk-5MDH6QZE.js.map +0 -1
  550. package/dist/chunk-63RKQ237.js.map +0 -1
  551. package/dist/chunk-6D3FA247.js +0 -126
  552. package/dist/chunk-6D3FA247.js.map +0 -1
  553. package/dist/chunk-6NY5DOFM.js.map +0 -1
  554. package/dist/chunk-74ONIT6C.js.map +0 -1
  555. package/dist/chunk-76FHSISK.cjs.map +0 -1
  556. package/dist/chunk-77RGTGRM.cjs +0 -128
  557. package/dist/chunk-77RGTGRM.cjs.map +0 -1
  558. package/dist/chunk-7DWASA3K.js.map +0 -1
  559. package/dist/chunk-7P3VY5JZ.js.map +0 -1
  560. package/dist/chunk-AJYVGSBW.cjs.map +0 -1
  561. package/dist/chunk-AKTUU5ML.js.map +0 -1
  562. package/dist/chunk-AMG3S252.js.map +0 -1
  563. package/dist/chunk-AXCE2HKG.js.map +0 -1
  564. package/dist/chunk-BDBHHJGN.cjs.map +0 -1
  565. package/dist/chunk-BZ4XKKNH.js.map +0 -1
  566. package/dist/chunk-CBJ4APCT.js.map +0 -1
  567. package/dist/chunk-CPZWTWYQ.js.map +0 -1
  568. package/dist/chunk-DH2ZFYKE.cjs +0 -441
  569. package/dist/chunk-DH2ZFYKE.cjs.map +0 -1
  570. package/dist/chunk-DP4KK2N4.cjs.map +0 -1
  571. package/dist/chunk-DZ3NHSJ4.js.map +0 -1
  572. package/dist/chunk-E2JZGYKU.cjs +0 -181
  573. package/dist/chunk-E2JZGYKU.cjs.map +0 -1
  574. package/dist/chunk-E7UOFIBW.cjs.map +0 -1
  575. package/dist/chunk-EBCHOGKT.js.map +0 -1
  576. package/dist/chunk-EFO5NDBJ.js +0 -191
  577. package/dist/chunk-EFO5NDBJ.js.map +0 -1
  578. package/dist/chunk-ESJND7B6.js.map +0 -1
  579. package/dist/chunk-FDSUILCM.cjs.map +0 -1
  580. package/dist/chunk-FHKB6MBQ.js.map +0 -1
  581. package/dist/chunk-GEGYC7CE.js.map +0 -1
  582. package/dist/chunk-GGZGVAEF.cjs.map +0 -1
  583. package/dist/chunk-GYUWDJXS.cjs.map +0 -1
  584. package/dist/chunk-HMWV6KCW.cjs.map +0 -1
  585. package/dist/chunk-IXJOPMJX.cjs.map +0 -1
  586. package/dist/chunk-J2FCNWYM.js.map +0 -1
  587. package/dist/chunk-JMNH45Q3.cjs.map +0 -1
  588. package/dist/chunk-K6CQ45C2.js.map +0 -1
  589. package/dist/chunk-K77D7H4V.cjs.map +0 -1
  590. package/dist/chunk-KFEXS6OK.cjs.map +0 -1
  591. package/dist/chunk-L6JT244G.cjs.map +0 -1
  592. package/dist/chunk-L6WUK7O4.js +0 -207
  593. package/dist/chunk-L6WUK7O4.js.map +0 -1
  594. package/dist/chunk-LJLCGQRV.js +0 -99
  595. package/dist/chunk-LJLCGQRV.js.map +0 -1
  596. package/dist/chunk-MEBIRX2P.js.map +0 -1
  597. package/dist/chunk-MMQIQILP.cjs.map +0 -1
  598. package/dist/chunk-MMST4VXH.cjs +0 -392
  599. package/dist/chunk-MMST4VXH.cjs.map +0 -1
  600. package/dist/chunk-MNVBSOAQ.cjs.map +0 -1
  601. package/dist/chunk-MX2F3HUI.cjs.map +0 -1
  602. package/dist/chunk-NF63IRZR.cjs.map +0 -1
  603. package/dist/chunk-O3T7Z6RH.cjs.map +0 -1
  604. package/dist/chunk-OBBPRWYD.js.map +0 -1
  605. package/dist/chunk-OHKL4DOV.js.map +0 -1
  606. package/dist/chunk-OJ3KVNW2.js.map +0 -1
  607. package/dist/chunk-OJCJPYXE.js.map +0 -1
  608. package/dist/chunk-P4A7GWQY.cjs.map +0 -1
  609. package/dist/chunk-P4TOIB2A.cjs +0 -101
  610. package/dist/chunk-P4TOIB2A.cjs.map +0 -1
  611. package/dist/chunk-PJXJOI73.js +0 -232
  612. package/dist/chunk-PJXJOI73.js.map +0 -1
  613. package/dist/chunk-PNYF6NS4.cjs.map +0 -1
  614. package/dist/chunk-PTZAJW3J.js.map +0 -1
  615. package/dist/chunk-PWL6TWVC.cjs.map +0 -1
  616. package/dist/chunk-PXVVTPRJ.js.map +0 -1
  617. package/dist/chunk-QADMIAYK.js.map +0 -1
  618. package/dist/chunk-QPYPPJEZ.js.map +0 -1
  619. package/dist/chunk-RRNT32KY.js.map +0 -1
  620. package/dist/chunk-RSG7N5QQ.cjs.map +0 -1
  621. package/dist/chunk-S4GLMGFI.js.map +0 -1
  622. package/dist/chunk-SSOHJEHS.js +0 -390
  623. package/dist/chunk-SSOHJEHS.js.map +0 -1
  624. package/dist/chunk-STSR3FAC.js.map +0 -1
  625. package/dist/chunk-SXIBQQ55.js.map +0 -1
  626. package/dist/chunk-TO3ZPSYO.cjs +0 -234
  627. package/dist/chunk-TO3ZPSYO.cjs.map +0 -1
  628. package/dist/chunk-TZQWZ7IL.cjs.map +0 -1
  629. package/dist/chunk-U4GWNENK.js.map +0 -1
  630. package/dist/chunk-U5ZCQI5O.cjs.map +0 -1
  631. package/dist/chunk-UC36KIEP.cjs.map +0 -1
  632. package/dist/chunk-UJODHP7E.cjs.map +0 -1
  633. package/dist/chunk-UQV5MOGR.js.map +0 -1
  634. package/dist/chunk-UUIAGGFW.cjs.map +0 -1
  635. package/dist/chunk-UX2Z7LRM.cjs +0 -194
  636. package/dist/chunk-UX2Z7LRM.cjs.map +0 -1
  637. package/dist/chunk-UY3MYNI6.js.map +0 -1
  638. package/dist/chunk-UYKFE7KF.js.map +0 -1
  639. package/dist/chunk-VBL5SI5N.js.map +0 -1
  640. package/dist/chunk-VQ7IRFRR.cjs.map +0 -1
  641. package/dist/chunk-W3QVSVL7.cjs.map +0 -1
  642. package/dist/chunk-WA4VZ363.cjs.map +0 -1
  643. package/dist/chunk-WE2AXMPB.js.map +0 -1
  644. package/dist/chunk-WVQDFCFQ.js.map +0 -1
  645. package/dist/chunk-XHTKGOQV.cjs.map +0 -1
  646. package/dist/chunk-XVRQSTUF.js.map +0 -1
  647. package/dist/chunk-Z7ID5TC7.cjs.map +0 -1
  648. package/dist/chunk-ZC6GLBEL.js +0 -179
  649. package/dist/chunk-ZC6GLBEL.js.map +0 -1
  650. package/dist/chunk-ZJ2NV4SQ.js.map +0 -1
  651. package/dist/chunk-ZP3UZDSV.cjs.map +0 -1
  652. package/dist/chunk-ZW2ATXTL.js.map +0 -1
  653. package/dist/components/Stack/Stack.d.ts.map +0 -1
  654. package/dist/components/Stack/Stack.recipe.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/AutocompleteInput/AutocompleteInput.recipe.ts","../src/components/AutocompleteInput/AutocompleteInputItem.tsx","../src/components/AutocompleteInput/BaseAutocompleteInput.tsx","../src/components/AutocompleteInput/AutocompleteInput.tsx","../src/components/AutocompleteInput/types.ts"],"names":["sva","css","isReactNode","jsx","Fragment","jsxs","cx","Icon","Text","useId","useRef","useState","useCallback","useEffect","LoaderCircle","Check","mergeRefs","Spinner","Popover","styles","getStatusMessageID","getDescribedBy","useMemo","getNecessity","Field","inputRecipe","inputStyles","Tag","Button","X"],"mappings":"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","file":"chunk-QRKRVCA3.cjs","sourcesContent":["import {css, sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const autocompleteMenuRecipe = sva({\n slots: ['menu', 'option', 'check', 'loading', 'empty'],\n base: {\n menu: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n maxH: '80',\n overflowY: 'auto',\n p: '1',\n },\n option: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '2',\n w: 'full',\n borderWidth: 0,\n borderRadius: 'md',\n bg: 'transparent',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'body',\n textAlign: 'start',\n _hover: {bg: 'bg.subtle'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffsetTight',\n },\n },\n check: {\n display: 'inline-flex',\n flexShrink: 0,\n color: 'primary',\n },\n loading: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '1',\n p: '2',\n color: 'fg.muted',\n '& > svg': {\n animation: 'spin 0.8s linear infinite',\n },\n '@media (prefers-reduced-motion: reduce)': {\n '& > svg': {animation: 'none'},\n },\n },\n empty: {\n p: '3',\n textAlign: 'center',\n },\n },\n variants: {\n size: {\n sm: {option: {px: '2', py: '1'}},\n md: {option: {px: '2', py: '2'}},\n lg: {option: {px: '3', py: '2.5'}},\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport type AutocompleteMenuVariants = RecipeVariantProps<\n typeof autocompleteMenuRecipe\n>;\n\n/**\n * Per-option state styles applied via `cx()` since they vary per-row\n * rather than per-component instance.\n */\nexport const optionHighlightedStyle = css({bg: 'bg.subtle'});\nexport const optionSelectedStyle = css({fontWeight: 'medium'});\n\nexport const autocompleteItemRecipe = sva({\n slots: ['root', 'icon', 'text'],\n base: {\n root: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n minW: 0,\n },\n icon: {\n display: 'inline-flex',\n flexShrink: 0,\n color: 'fg.muted',\n },\n text: {\n display: 'flex',\n flexDirection: 'column',\n minW: 0,\n },\n },\n variants: {\n isDisabled: {\n true: {root: {opacity: 0.55}},\n false: {},\n },\n },\n defaultVariants: {\n isDisabled: false,\n },\n});\n\nexport type AutocompleteItemVariants = RecipeVariantProps<\n typeof autocompleteItemRecipe\n>;\n","/* eslint-disable silver-ui/require-component-props -- discriminated union: custom-element items render item.element directly; passthrough props only apply to standard items */\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Text} from '../Text';\nimport {autocompleteItemRecipe} from './AutocompleteInput.recipe';\nimport type {SearchableItem} from './types';\n\n/**\n * Props for an item with a custom `element`. The element is rendered\n * directly — layout props like `icon` and `description` do not apply.\n */\ninterface AutocompleteInputCustomItemProps {\n /**\n * Search result item with custom element content.\n */\n item: SearchableItem & {element: ReactNode};\n}\n\n/**\n * Props for a standard item rendered with the default layout.\n */\ninterface AutocompleteInputStandardItemProps {\n /**\n * Additional CSS class names applied to the item layout.\n */\n className?: string;\n /**\n * Test ID applied to the item layout.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Icon or avatar rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Search result item without a custom element.\n */\n item: SearchableItem & {element?: undefined};\n /**\n * Ref forwarded to the item layout.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the item layout.\n */\n style?: CSSProperties;\n}\n\nexport type AutocompleteInputItemProps =\n | AutocompleteInputCustomItemProps\n | AutocompleteInputStandardItemProps;\n\n/**\n * Default layout for AutocompleteInput and TagsInput result rows.\n *\n * When the item has a pre-rendered `element`, it is returned directly.\n * Otherwise the component renders a flex row with an optional icon,\n * primary label, and description.\n */\nexport function AutocompleteInputItem(\n props: AutocompleteInputItemProps,\n): React.JSX.Element {\n if (isReactNode(props.item.element)) {\n return <>{props.item.element}</>;\n }\n\n const {\n className,\n 'data-testid': dataTestId,\n description,\n icon,\n isDisabled = false,\n item,\n ref,\n style,\n } = props as AutocompleteInputStandardItemProps;\n\n const classes = autocompleteItemRecipe({isDisabled});\n\n return (\n <div\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {icon != null ? (\n <span className={classes.icon}>\n <Icon color=\"secondary\" icon={icon} size=\"sm\" />\n </span>\n ) : null}\n <span className={classes.text}>\n <Text as=\"span\" color=\"inherit\" type=\"label\">\n {item.label}\n </Text>\n {isReactNode(description) ? (\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n {description}\n </Text>\n ) : null}\n </span>\n </div>\n );\n}\n\nAutocompleteInputItem.displayName = 'AutocompleteInputItem';\n","import {Check, LoaderCircle} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n type RefObject,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {mergeRefs} from '../../internal/mergeRefs';\nimport {Icon} from '../Icon';\nimport {Popover} from '../Popover';\nimport {Spinner} from '../Spinner';\nimport {Text} from '../Text';\nimport {\n autocompleteMenuRecipe,\n optionHighlightedStyle,\n optionSelectedStyle,\n} from './AutocompleteInput.recipe';\nimport {AutocompleteInputItem} from './AutocompleteInputItem';\nimport type {SearchableItem, SearchSource} from './types';\n\nexport interface BaseAutocompleteInputProps<T extends SearchableItem> {\n /**\n * Ref to the element the result popover should align to.\n */\n anchorRef?: RefObject<HTMLElement | null>;\n /**\n * IDs describing the input.\n */\n ariaDescribedBy?: string;\n /**\n * Additional CSS class names applied to the input.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Debounce delay in milliseconds before search runs.\n * @default 150\n */\n debounceMs?: number;\n /**\n * Empty state text.\n * @default 'No results found'\n */\n emptySearchResultsText?: string;\n /**\n * Text shown in the menu when a search fails.\n * @default 'Something went wrong'\n */\n errorText?: string;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show bootstrap results on focus before typing.\n * @default false\n */\n hasEntriesOnFocus?: boolean;\n /**\n * Whether to re-bootstrap results after selecting an item. Useful for\n * multi-select comboboxes where the user picks several items in a row.\n * @default false\n */\n hasReopenOnSelect?: boolean;\n /**\n * Optional ID for the input.\n */\n inputId?: string;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the input is required.\n * @default false\n */\n isRequired?: boolean;\n /**\n * Maximum number of menu items.\n * @default 10\n */\n maxMenuItems?: number;\n /**\n * Called when a result is selected.\n */\n onChange: (item: T | null) => void;\n /**\n * Keyboard handler invoked before internal navigation.\n */\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n /**\n * Called when the result popover opens or closes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Called when the query changes.\n */\n onQueryChange: (query: string) => void;\n /**\n * Placeholder text.\n * @default 'Search...'\n */\n placeholder?: string;\n /**\n * Current query string.\n */\n query: string;\n /**\n * Ref forwarded to the input.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Custom result renderer.\n */\n renderItem?: (item: T) => ReactNode;\n /**\n * Search source.\n */\n searchSource: SearchSource<T>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: 'sm' | 'md' | 'lg';\n /**\n * Inline styles applied to the input.\n */\n style?: CSSProperties;\n /**\n * Selected item.\n */\n value: T | null;\n}\n\nconst styles = {\n input: css({\n display: 'block',\n flex: 1,\n minW: '15',\n borderWidth: 0,\n p: 0,\n fontFamily: 'body',\n fontSize: 'md',\n lineHeight: 'normal',\n color: 'fg',\n bg: 'transparent',\n outline: 'none',\n _placeholder: {color: 'fg.muted'},\n _disabled: {cursor: 'not-allowed'},\n }),\n} as const;\n\n/**\n * Internal combobox engine used by AutocompleteInput and TagsInput.\n */\nexport function BaseAutocompleteInput<T extends SearchableItem>({\n anchorRef,\n ariaDescribedBy,\n className,\n 'data-testid': dataTestId,\n debounceMs = 150,\n emptySearchResultsText = 'No results found',\n errorText = 'Something went wrong',\n hasAutoFocus = false,\n hasEntriesOnFocus = false,\n hasReopenOnSelect = false,\n inputId,\n isDisabled = false,\n isRequired = false,\n maxMenuItems = 10,\n onChange,\n onKeyDown,\n onOpenChange,\n onQueryChange,\n placeholder = 'Search...',\n query,\n ref,\n renderItem,\n searchSource,\n size = 'md',\n style,\n value,\n}: BaseAutocompleteInputProps<T>): React.JSX.Element {\n const generatedId = useId();\n const listboxId = useId();\n const resolvedInputId = inputId ?? generatedId;\n const inputRef = useRef<HTMLInputElement>(null);\n const fallbackAnchorRef = useRef<HTMLInputElement>(null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const generationRef = useRef(0);\n const [results, setResults] = useState<T[]>([]);\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const [isLoading, setIsLoading] = useState(false);\n const [hasSearched, setHasSearched] = useState(false);\n const [hasError, setHasError] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n const selectingRef = useRef(false);\n\n const setOpen = useCallback(\n (isNextOpen: boolean) => {\n setIsOpen(isNextOpen);\n onOpenChange?.(isNextOpen);\n if (!isNextOpen) {\n searchSource.cancel?.();\n setHighlightedIndex(-1);\n }\n },\n [onOpenChange, searchSource],\n );\n\n const showMenu = useCallback(() => {\n setOpen(true);\n }, [setOpen]);\n\n const runSearch = useCallback(\n async (nextQuery: string, kind: 'bootstrap' | 'search') => {\n const generation = ++generationRef.current;\n searchSource.cancel?.();\n setIsLoading(true);\n setHasSearched(true);\n setHasError(false);\n\n try {\n const nextResults =\n kind === 'bootstrap'\n ? await searchSource.bootstrap()\n : await searchSource.search(nextQuery);\n if (generationRef.current !== generation) {\n return;\n }\n const limitedResults = nextResults.slice(0, maxMenuItems);\n setResults(limitedResults);\n setHighlightedIndex(limitedResults.length > 0 ? 0 : -1);\n if (limitedResults.length > 0 || nextQuery !== '') {\n showMenu();\n } else {\n setOpen(false);\n }\n } catch {\n if (generationRef.current === generation) {\n setResults([]);\n setHighlightedIndex(-1);\n setHasError(true);\n showMenu();\n }\n } finally {\n if (generationRef.current === generation) {\n setIsLoading(false);\n }\n }\n },\n [maxMenuItems, searchSource, setOpen, showMenu],\n );\n\n const updateQuery = useCallback(\n (nextQuery: string) => {\n onQueryChange(nextQuery);\n\n if (timeoutRef.current != null) {\n clearTimeout(timeoutRef.current);\n }\n\n if (nextQuery === '' && !hasEntriesOnFocus) {\n generationRef.current++;\n searchSource.cancel?.();\n setResults([]);\n setHasSearched(false);\n setHasError(false);\n setIsLoading(false);\n setOpen(false);\n return;\n }\n\n const searchKind = nextQuery === '' ? 'bootstrap' : 'search';\n if (debounceMs <= 0) {\n void runSearch(nextQuery, searchKind);\n return;\n }\n\n timeoutRef.current = setTimeout(() => {\n void runSearch(nextQuery, searchKind);\n }, debounceMs);\n },\n [\n debounceMs,\n hasEntriesOnFocus,\n onQueryChange,\n runSearch,\n searchSource,\n setOpen,\n ],\n );\n\n const selectItem = useCallback(\n (item: T) => {\n generationRef.current++;\n if (timeoutRef.current != null) {\n clearTimeout(timeoutRef.current);\n }\n searchSource.cancel?.();\n onQueryChange('');\n setResults([]);\n setHasSearched(false);\n setHasError(false);\n setIsLoading(false);\n onChange(item);\n selectingRef.current = true;\n inputRef.current?.focus();\n selectingRef.current = false;\n if (hasReopenOnSelect && hasEntriesOnFocus) {\n void runSearch('', 'bootstrap');\n } else {\n setOpen(false);\n }\n },\n [\n hasEntriesOnFocus,\n hasReopenOnSelect,\n onChange,\n onQueryChange,\n runSearch,\n searchSource,\n setOpen,\n ],\n );\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current != null) {\n clearTimeout(timeoutRef.current);\n }\n searchSource.cancel?.();\n };\n }, [searchSource]);\n\n const menuClasses = autocompleteMenuRecipe({size});\n\n const menu = (\n <div\n aria-label=\"Search results\"\n className={menuClasses.menu}\n id={listboxId}\n role=\"listbox\">\n {isLoading ? (\n <div className={menuClasses.loading} role=\"status\">\n <Icon icon={LoaderCircle} size=\"sm\" />\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n Loading\n </Text>\n </div>\n ) : hasError ? (\n <div className={menuClasses.empty} role=\"alert\">\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n {errorText}\n </Text>\n </div>\n ) : results.length === 0 && hasSearched ? (\n <div className={menuClasses.empty}>\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n {emptySearchResultsText}\n </Text>\n </div>\n ) : (\n results.map((item, index) => {\n const isSelected = value?.id === item.id;\n return (\n // eslint-disable-next-line jsx-a11y-x/click-events-have-key-events -- keyboard navigation is handled by the combobox input, not individual options\n <div\n aria-selected={isSelected}\n className={cx(\n menuClasses.option,\n index === highlightedIndex ? optionHighlightedStyle : undefined,\n isSelected ? optionSelectedStyle : undefined,\n )}\n id={`${listboxId}-option-${index}`}\n key={item.id}\n onClick={() => selectItem(item)}\n onMouseEnter={() => setHighlightedIndex(index)}\n role=\"option\"\n tabIndex={-1}>\n {renderItem == null ? (\n <AutocompleteInputItem item={item} />\n ) : (\n renderItem(item)\n )}\n {isSelected ? (\n <span className={menuClasses.check}>\n <Icon color=\"accent\" icon={Check} size=\"sm\" />\n </span>\n ) : null}\n </div>\n );\n })\n )}\n </div>\n );\n\n return (\n <>\n <input\n aria-activedescendant={\n isOpen && highlightedIndex >= 0\n ? `${listboxId}-option-${highlightedIndex}`\n : undefined\n }\n aria-autocomplete=\"list\"\n aria-controls={listboxId}\n aria-describedby={ariaDescribedBy}\n aria-expanded={isOpen}\n aria-required={isRequired || undefined}\n autoComplete=\"off\"\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={cx(styles.input, className)}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={resolvedInputId}\n onBlur={() => {\n // Defer so we can check whether focus moved to an option inside\n // the popover (e.g. the user clicked a result). If focus left\n // both the input and the popover, close the menu.\n requestAnimationFrame(() => {\n if (\n !inputRef.current?.contains(document.activeElement) &&\n !document.activeElement?.closest('[role=\"listbox\"]')\n ) {\n setOpen(false);\n }\n });\n }}\n onChange={event => updateQuery(event.target.value)}\n onFocus={() => {\n if (selectingRef.current) {\n return;\n }\n if (query !== '' && results.length === 0) {\n void runSearch(query, 'search');\n } else if (\n hasEntriesOnFocus &&\n query === '' &&\n results.length === 0\n ) {\n void runSearch('', 'bootstrap');\n } else if (results.length > 0) {\n showMenu();\n }\n }}\n onKeyDown={event => {\n onKeyDown?.(event);\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n if (!isOpen) {\n if (results.length > 0) {\n showMenu();\n } else if (hasEntriesOnFocus) {\n void runSearch('', 'bootstrap');\n }\n return;\n }\n setHighlightedIndex(index =>\n results.length === 0 ? -1 : (index + 1) % results.length,\n );\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n setHighlightedIndex(index =>\n results.length === 0\n ? -1\n : (index - 1 + results.length) % results.length,\n );\n } else if (\n event.key === 'Enter' &&\n isOpen &&\n highlightedIndex >= 0 &&\n highlightedIndex < results.length\n ) {\n event.preventDefault();\n selectItem(results[highlightedIndex]);\n } else if (event.key === 'Escape' && isOpen) {\n event.preventDefault();\n setOpen(false);\n }\n }}\n placeholder={placeholder}\n ref={mergeRefs(ref, inputRef, fallbackAnchorRef)}\n role=\"combobox\"\n style={style}\n type=\"text\"\n value={query}\n />\n {isLoading ? <Spinner size=\"sm\" /> : null}\n <Popover\n anchorRef={anchorRef ?? fallbackAnchorRef}\n content={menu}\n hasAutoFocus={false}\n hasCloseButton={false}\n hasLightDismiss={false}\n isOpen={isOpen}\n onOpenChange={setOpen}\n />\n </>\n );\n}\n\nBaseAutocompleteInput.displayName = 'BaseAutocompleteInput';\n","import {X} from 'lucide-react';\nimport {\n useCallback,\n useId,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\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';\nimport {BaseAutocompleteInput} from './BaseAutocompleteInput';\nimport type {SearchableItem, SearchSource} from './types';\n\nexport type AutocompleteInputProps<T extends SearchableItem = SearchableItem> =\n {\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 * Text shown in the menu when a search fails.\n * @default 'Something went wrong'\n */\n errorText?: string;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a clear button when a value is selected.\n * @default true\n */\n hasClear?: 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 * 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 menu items.\n * @default 10\n */\n maxMenuItems?: number;\n /**\n * Called when selection changes.\n */\n onChange: (item: T | null) => void;\n /**\n * Called when the result popover opens or closes.\n */\n onOpenChange?: (isOpen: boolean) => 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 * Search source.\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 selector.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Selected item.\n */\n value: T | null;\n } & FieldNecessity;\n\nconst styles = {\n wrapper: css({\n cursor: 'text',\n flexWrap: 'wrap',\n }),\n tag: css({\n my: '-1',\n ms: '-1',\n }),\n inputHidden: css({\n position: 'absolute',\n opacity: 0,\n w: 0,\n minW: 0,\n flexBasis: 0,\n }),\n clearButton: css({\n ms: 'auto',\n }),\n} as const;\n\n/**\n * Search-as-you-type field for selecting a single item from a search source.\n */\nexport function AutocompleteInput<T extends SearchableItem>({\n className,\n 'data-testid': dataTestId,\n debounceMs,\n description,\n emptySearchResultsText,\n errorText,\n hasAutoFocus = false,\n hasClear = true,\n hasEntriesOnFocus = false,\n isDisabled = false,\n isLabelHidden = false,\n isOptional,\n isRequired,\n label,\n labelIcon,\n labelTooltip,\n maxMenuItems,\n onChange,\n onOpenChange,\n onQueryChange,\n placeholder,\n ref,\n renderItem,\n searchSource,\n size = 'md',\n startIcon,\n status,\n style,\n value,\n}: AutocompleteInputProps<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 wrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [isEditing, setIsEditing] = useState(false);\n const [queryValue, setQueryValue] = useState('');\n const showTag = value != null && !isEditing;\n const fieldStatus = useMemo(\n () =>\n status == null ? undefined : {...status, messageID: statusMessageID},\n [status, statusMessageID],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n const startEditing = useCallback(\n (seedQuery: string) => {\n if (isDisabled) {\n return;\n }\n setIsEditing(true);\n setQueryValue(seedQuery);\n requestAnimationFrame(() => {\n const input = inputRef.current;\n if (input != null) {\n input.focus();\n input.setSelectionRange(seedQuery.length, seedQuery.length);\n }\n });\n },\n [isDisabled],\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={fieldStatus}\n style={style}>\n {/* eslint-disable-next-line jsx-a11y-x/click-events-have-key-events, jsx-a11y-x/no-static-element-interactions -- wrapper delegates focus to the inner input; keyboard users interact with the input directly */}\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n )}\n data-testid={dataTestId}\n onClick={() => {\n if (showTag) {\n startEditing(value.label);\n }\n }}\n ref={wrapperRef}>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n {showTag ? (\n <Tag\n className={styles.tag}\n isDisabled={isDisabled}\n label={value.label}\n onClick={() => startEditing(value.label)}\n size={size}\n />\n ) : null}\n <BaseAutocompleteInput\n anchorRef={wrapperRef}\n ariaDescribedBy={describedBy}\n className={showTag ? styles.inputHidden : undefined}\n debounceMs={debounceMs}\n emptySearchResultsText={emptySearchResultsText}\n errorText={errorText}\n hasAutoFocus={hasAutoFocus}\n hasEntriesOnFocus={hasEntriesOnFocus}\n inputId={inputId}\n isDisabled={isDisabled}\n isRequired={isRequired}\n maxMenuItems={maxMenuItems}\n onChange={item => {\n setIsEditing(false);\n setQueryValue('');\n onChange(item);\n }}\n onOpenChange={onOpenChange}\n onQueryChange={nextQuery => {\n setQueryValue(nextQuery);\n onQueryChange?.(nextQuery);\n }}\n placeholder={showTag ? undefined : placeholder}\n query={queryValue}\n ref={inputRef}\n renderItem={renderItem}\n searchSource={searchSource}\n size={size}\n value={value}\n />\n {hasClear && value != null && !isDisabled ? (\n <Button\n className={styles.clearButton}\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={event => {\n event.stopPropagation();\n setIsEditing(false);\n onChange(null);\n inputRef.current?.focus();\n }}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n </div>\n </Field>\n );\n}\n\nAutocompleteInput.displayName = 'AutocompleteInput';\n","import type {ReactNode} from 'react';\n\n/**\n * A search result item with a fully custom pre-rendered element. When\n * `element` is set, `AutocompleteInputItem` renders it directly — props\n * like `icon`, `description`, and `className` do not apply.\n */\nexport interface CustomSearchableItem<TAuxiliaryData = unknown> {\n /**\n * Custom data associated with the item.\n */\n auxiliaryData?: TAuxiliaryData;\n /**\n * Pre-rendered item content. When set, `AutocompleteInputItem` renders\n * this element directly and ignores layout props like `icon` and\n * `description`.\n */\n element: ReactNode;\n /**\n * Stable unique identifier.\n */\n id: string;\n /**\n * Display text used for the selected-value tag chip.\n */\n label: string;\n}\n\n/**\n * A search result item rendered by the default `AutocompleteInputItem`\n * layout with an optional icon and description.\n */\nexport interface StandardSearchableItem<TAuxiliaryData = unknown> {\n /**\n * Custom data associated with the item.\n */\n auxiliaryData?: TAuxiliaryData;\n /**\n * Must be omitted to use the standard layout. Set `element` on a\n * {@link CustomSearchableItem} for fully custom rendering.\n */\n element?: undefined;\n /**\n * Stable unique identifier.\n */\n id: string;\n /**\n * Display text.\n */\n label: string;\n}\n\n/**\n * A search result item. Items without `element` use the default\n * `AutocompleteInputItem` layout; items with `element` render fully\n * custom content.\n */\nexport type SearchableItem<TAuxiliaryData = unknown> =\n | CustomSearchableItem<TAuxiliaryData>\n | StandardSearchableItem<TAuxiliaryData>;\n\nexport interface SearchSource<T extends SearchableItem = SearchableItem> {\n /**\n * Return initial items, usually recent or common selections.\n */\n bootstrap(): Promise<T[]> | T[];\n /**\n * Optional cancellation for in-flight async searches.\n */\n cancel?(): void;\n /**\n * Return items matching the query.\n */\n search(query: string): Promise<T[]> | T[];\n}\n\nexport interface CreateStaticSourceOptions<\n T extends SearchableItem = SearchableItem,\n> {\n /**\n * Extra searchable terms for each item.\n */\n keywords?: (item: T) => string[];\n}\n\nexport function createStaticSource<T extends SearchableItem>(\n items: T[],\n options?: CreateStaticSourceOptions<T>,\n): SearchSource<T> {\n return {\n bootstrap: () => items,\n search(query) {\n const normalizedQuery = query.trim().toLowerCase();\n if (normalizedQuery === '') {\n return items;\n }\n\n return items.filter(item => {\n if (item.label.toLowerCase().includes(normalizedQuery)) {\n return true;\n }\n return (\n options\n ?.keywords?.(item)\n .some(keyword => keyword.toLowerCase().includes(normalizedQuery)) ??\n false\n );\n });\n },\n };\n}\n"]}
@@ -1,4 +1,5 @@
1
- import { Text } from './chunk-J2FCNWYM.js';
1
+ import { Text } from './chunk-76B2VLID.js';
2
+ import { isReactNode } from './chunk-2PSZAWLC.js';
2
3
  import { Icon } from './chunk-7T3SWOY7.js';
3
4
  import { cva } from './chunk-FMEIPGUP.js';
4
5
  import { cx } from './chunk-PPNETWIP.js';
@@ -367,7 +368,7 @@ function Step({
367
368
  ] }),
368
369
  /* @__PURE__ */ jsxs("div", { className: styles.verticalContent, children: [
369
370
  labelNode,
370
- children != null ? /* @__PURE__ */ jsx("div", { className: styles.stepContent, children }) : null
371
+ isReactNode(children) ? /* @__PURE__ */ jsx("div", { className: styles.stepContent, children }) : null
371
372
  ] })
372
373
  ]
373
374
  }
@@ -445,5 +446,5 @@ function Stepper({
445
446
  Stepper.displayName = "Stepper";
446
447
 
447
448
  export { Step, Stepper, useStepperContext };
448
- //# sourceMappingURL=chunk-S4GLMGFI.js.map
449
- //# sourceMappingURL=chunk-S4GLMGFI.js.map
449
+ //# sourceMappingURL=chunk-RINP34ZG.js.map
450
+ //# sourceMappingURL=chunk-RINP34ZG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Stepper/Step.recipe.ts","../src/components/Stepper/StepperContext.ts","../src/components/Stepper/Step.tsx","../src/components/Stepper/Stepper.tsx"],"names":["styles","jsx"],"mappings":"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","file":"chunk-RINP34ZG.js","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\nimport type {StepState} from './Step';\n\nexport const stepIndicatorRecipe = cva({\n base: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '7',\n h: '7',\n borderRadius: 'full',\n fontFamily: 'body',\n fontSize: 'sm',\n fontWeight: 'semibold',\n lineHeight: 'none',\n transitionProperty: 'background-color, color, border-color, opacity',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n flexShrink: 0,\n userSelect: 'none',\n borderWidth: 'emphasized',\n borderStyle: 'solid',\n },\n variants: {\n state: {\n active: {\n bg: 'primary',\n borderColor: 'primary',\n color: 'fg.onPrimary',\n },\n completed: {\n bg: 'primary',\n borderColor: 'primary',\n color: 'fg.onPrimary',\n },\n upcoming: {\n bg: 'transparent',\n borderColor: 'border.emphasized',\n color: 'fg.muted',\n },\n disabled: {\n bg: 'transparent',\n borderColor: 'border',\n color: 'fg.disabled',\n },\n error: {\n bg: 'status.error.solid',\n borderColor: 'status.error.solid',\n color: 'status.error.solidFg',\n },\n } satisfies Record<StepState, object>,\n isClickable: {\n true: {\n cursor: 'pointer',\n _hover: {\n opacity: 0.85,\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n state: 'upcoming',\n isClickable: false,\n },\n});\n\nexport const stepLabelRecipe = cva({\n base: {\n textAlign: 'center',\n },\n variants: {\n state: {\n active: {\n color: 'fg',\n fontWeight: 'semibold',\n },\n completed: {\n color: 'fg',\n },\n upcoming: {\n color: 'fg.muted',\n },\n disabled: {\n color: 'fg.disabled',\n },\n error: {\n color: 'status.error.fg',\n },\n } satisfies Record<StepState, object>,\n orientation: {\n horizontal: {},\n vertical: {\n textAlign: 'start',\n },\n },\n },\n defaultVariants: {\n state: 'upcoming',\n orientation: 'horizontal',\n },\n});\n\nexport const stepConnectorRecipe = cva({\n base: {\n borderRadius: 'full',\n transitionProperty: 'background-color',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n },\n variants: {\n isCompleted: {\n true: {\n bg: 'primary',\n },\n false: {\n bg: 'track.emphasized',\n },\n },\n orientation: {\n horizontal: {\n h: '0.5',\n w: 'full',\n },\n vertical: {\n w: '0.5',\n h: 'full',\n },\n },\n },\n defaultVariants: {\n isCompleted: false,\n orientation: 'horizontal',\n },\n});\n\nexport type StepIndicatorVariants = RecipeVariantProps<\n typeof stepIndicatorRecipe\n>;\nexport type StepLabelVariants = RecipeVariantProps<typeof stepLabelRecipe>;\nexport type StepConnectorVariants = RecipeVariantProps<\n typeof stepConnectorRecipe\n>;\n","import {createContext, use} from 'react';\n\nexport type StepperOrientation = 'horizontal' | 'vertical';\n\nexport interface StepperContextValue {\n activeStep: number;\n isNonLinear: boolean;\n onStepClick: ((index: number) => void) | null;\n orientation: StepperOrientation;\n}\n\nexport const StepperContext = createContext<StepperContextValue | null>(null);\nStepperContext.displayName = 'StepperContext';\n\nexport function useStepperContext(): StepperContextValue {\n const context = use(StepperContext);\n\n if (context == null) {\n throw new Error('Step must be used within a Stepper.');\n }\n\n return context;\n}\n","import {Check, TriangleAlert} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {Icon} from '../Icon';\nimport {Text} from '../Text';\nimport {\n stepConnectorRecipe,\n stepIndicatorRecipe,\n stepLabelRecipe,\n} from './Step.recipe';\nimport {useStepperContext} from './StepperContext';\n\nexport type StepState =\n | 'active'\n | 'completed'\n | 'disabled'\n | 'error'\n | 'upcoming';\n\nexport interface StepProps {\n /**\n * Content rendered below the label and description in vertical steppers.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the step.\n */\n className?: string;\n /**\n * Test ID applied to the step.\n */\n 'data-testid'?: string;\n /**\n * Optional supporting text.\n */\n description?: string;\n /**\n * Whether the step has an error.\n * @default false\n */\n hasError?: boolean;\n /**\n * Custom indicator content replacing the number or check icon.\n */\n icon?: ReactNode;\n /**\n * Override the automatically computed completed state.\n */\n isCompleted?: boolean;\n /**\n * Whether the step is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Step label.\n */\n label: string;\n /**\n * Ref forwarded to the list item.\n */\n ref?: Ref<HTMLLIElement>;\n /**\n * Zero-based index of this step.\n */\n step: number;\n /**\n * Inline styles applied to the step.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n horizontalRoot: css({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n flex: 1,\n position: 'relative',\n _last: {\n flex: 'none',\n },\n '&:last-child [data-step-connector]': {\n display: 'none',\n },\n }),\n horizontalContent: css({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n position: 'relative',\n zIndex: 1,\n }),\n horizontalConnector: css({\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n px: '2',\n minW: '6',\n h: '7',\n }),\n verticalRoot: css({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'stretch',\n position: 'relative',\n minH: '12',\n '&:last-child [data-step-connector]': {\n display: 'none',\n },\n }),\n verticalIndicatorColumn: css({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n w: '7',\n flexShrink: 0,\n }),\n verticalConnector: css({\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n py: '1',\n }),\n verticalContent: css({\n display: 'flex',\n flexDirection: 'column',\n ps: '3',\n pb: '6',\n flex: 1,\n }),\n labelRow: css({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n pt: '1',\n maxW: '120px',\n }),\n labelRowVertical: css({\n alignItems: 'flex-start',\n maxW: 'none',\n pt: '0.5',\n }),\n description: css({\n textAlign: 'center',\n }),\n descriptionVertical: css({\n textAlign: 'start',\n }),\n descriptionError: css({\n color: 'status.error.fg',\n }),\n buttonReset: css({\n bg: 'none',\n borderWidth: 0,\n p: 0,\n m: 0,\n font: 'inherit',\n }),\n stepContent: css({\n pt: '3',\n }),\n} as const;\n\nfunction getStepState({\n hasError,\n isActive,\n isCompleted,\n isDisabled,\n}: {\n hasError: boolean;\n isActive: boolean;\n isCompleted: boolean;\n isDisabled: boolean;\n}): StepState {\n if (hasError) {\n return 'error';\n }\n if (isDisabled) {\n return 'disabled';\n }\n if (isActive) {\n return 'active';\n }\n if (isCompleted) {\n return 'completed';\n }\n return 'upcoming';\n}\n\n/**\n * Individual step within a `Stepper`.\n */\nexport function Step({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n hasError = false,\n icon,\n isCompleted: isCompletedFromProps,\n isDisabled = false,\n label,\n ref,\n step,\n style,\n}: StepProps): React.JSX.Element {\n const {activeStep, orientation, isNonLinear, onStepClick} =\n useStepperContext();\n const isActive = step === activeStep;\n const isCompleted = isCompletedFromProps ?? step < activeStep;\n const isVertical = orientation === 'vertical';\n const isClickable = isNonLinear && !isDisabled && (isCompleted || isActive);\n const state = getStepState({hasError, isActive, isCompleted, isDisabled});\n\n const connectorClassName = stepConnectorRecipe({\n isCompleted,\n orientation,\n });\n\n const defaultIndicatorContent = isCompleted ? (\n <Icon color=\"inherit\" icon={Check} size=\"sm\" />\n ) : (\n <span>{step + 1}</span>\n );\n const indicatorContent = hasError ? (\n <Icon color=\"inherit\" icon={TriangleAlert} size=\"sm\" />\n ) : (\n (icon ?? defaultIndicatorContent)\n );\n\n const handleClick = () => {\n if (isClickable) {\n onStepClick?.(step);\n }\n };\n\n const stepLabel = hasError\n ? `Go to step ${step + 1}: ${label} (error)`\n : `Go to step ${step + 1}: ${label}`;\n\n const indicator = isClickable ? (\n <button\n aria-label={stepLabel}\n className={cx(\n styles.buttonReset,\n stepIndicatorRecipe({state, isClickable: true}),\n )}\n onClick={handleClick}\n type=\"button\">\n {indicatorContent}\n </button>\n ) : (\n <div\n aria-hidden=\"true\"\n className={stepIndicatorRecipe({state, isClickable: false})}>\n {indicatorContent}\n </div>\n );\n\n const labelNode = (\n <div\n className={cx(\n styles.labelRow,\n isVertical ? styles.labelRowVertical : undefined,\n )}>\n <Text\n as=\"span\"\n className={stepLabelRecipe({state, orientation})}\n color=\"inherit\"\n type=\"label\">\n {label}\n </Text>\n {description != null ? (\n <Text\n as=\"span\"\n className={cx(\n styles.description,\n isVertical ? styles.descriptionVertical : undefined,\n state === 'error' ? styles.descriptionError : undefined,\n )}\n color=\"secondary\"\n type=\"supporting\">\n {description}\n </Text>\n ) : null}\n </div>\n );\n\n if (isVertical) {\n return (\n <li\n aria-current={isActive ? 'step' : undefined}\n className={cx(styles.verticalRoot, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <div className={styles.verticalIndicatorColumn}>\n {indicator}\n <div className={styles.verticalConnector} data-step-connector=\"\">\n <div className={connectorClassName} />\n </div>\n </div>\n <div className={styles.verticalContent}>\n {labelNode}\n {isReactNode(children) ? (\n <div className={styles.stepContent}>{children}</div>\n ) : null}\n </div>\n </li>\n );\n }\n\n return (\n <li\n aria-current={isActive ? 'step' : undefined}\n className={cx(styles.horizontalRoot, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <div className={styles.horizontalContent}>\n {indicator}\n {labelNode}\n </div>\n <div className={styles.horizontalConnector} data-step-connector=\"\">\n <div className={connectorClassName} />\n </div>\n </li>\n );\n}\n\nStep.displayName = 'Step';\n","import {useMemo, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {\n StepperContext,\n type StepperContextValue,\n type StepperOrientation,\n} from './StepperContext';\n\nexport type {StepperOrientation};\n\nexport interface StepperProps {\n /**\n * Zero-based index of the active step.\n */\n activeStep: number;\n /**\n * Step elements to render.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the ordered list.\n */\n className?: string;\n /**\n * Test ID applied to the ordered list.\n */\n 'data-testid'?: string;\n /**\n * Accessible label for the navigation landmark.\n * @default 'Progress'\n */\n label?: string;\n /**\n * Called when a completed or active step indicator is clicked.\n */\n onStepClick?: (index: number) => void;\n /**\n * Layout direction.\n * @default 'horizontal'\n */\n orientation?: StepperOrientation;\n /**\n * Ref forwarded to the navigation element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the ordered list.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n w: 'full',\n m: 0,\n p: 0,\n listStyleType: 'none',\n }),\n horizontal: css({\n flexDirection: 'row',\n alignItems: 'flex-start',\n }),\n vertical: css({\n flexDirection: 'column',\n }),\n} as const;\n\n/**\n * Displays progress through a sequence of logical steps.\n */\nexport function Stepper({\n activeStep,\n children,\n className,\n 'data-testid': dataTestId,\n label = 'Progress',\n onStepClick,\n orientation = 'horizontal',\n ref,\n style,\n}: StepperProps): React.JSX.Element {\n const contextValue = useMemo<StepperContextValue>(\n () => ({\n activeStep,\n isNonLinear: onStepClick != null,\n onStepClick: onStepClick ?? null,\n orientation,\n }),\n [activeStep, onStepClick, orientation],\n );\n\n return (\n <StepperContext value={contextValue}>\n <nav aria-label={label} ref={ref}>\n <ol\n className={cx(\n styles.root,\n orientation === 'horizontal' ? styles.horizontal : styles.vertical,\n className,\n )}\n data-testid={dataTestId}\n style={style}>\n {children}\n </ol>\n </nav>\n </StepperContext>\n );\n}\n\nStepper.displayName = 'Stepper';\n"]}
@@ -1,52 +1,14 @@
1
- import { buttonRecipe } from './chunk-6D3FA247.js';
2
- import { Spinner } from './chunk-S54CKWKV.js';
1
+ import { buttonRecipe } from './chunk-YNTPHZFJ.js';
2
+ import { Spinner } from './chunk-DSB4Q3AS.js';
3
3
  import { useLinkComponent, getAriaLabel, useRel } from './chunk-2IKWX66Q.js';
4
4
  import { VisuallyHidden } from './chunk-EXYBQVZT.js';
5
5
  import { Tooltip } from './chunk-EMHLPPQZ.js';
6
6
  import { useButtonGroup } from './chunk-Z4TZAJS3.js';
7
+ import { isReactNode } from './chunk-2PSZAWLC.js';
7
8
  import { Icon } from './chunk-7T3SWOY7.js';
8
9
  import { cx } from './chunk-PPNETWIP.js';
9
- import { css } from './chunk-OD4DHHZH.js';
10
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
10
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
11
11
 
12
- var styles = {
13
- content: css({
14
- display: "contents"
15
- }),
16
- label: css({
17
- overflow: "hidden",
18
- textOverflow: "ellipsis",
19
- minW: 0,
20
- // The label is a (blockified) flex item, so `overflow: hidden` clips it to
21
- // its line box. With a tight line-height that crops descenders (e.g. the
22
- // "g" in "changes"), so pad the clip box vertically and cancel the padding
23
- // with a negative margin to keep layout unchanged.
24
- py: "0.25em",
25
- mt: "-0.35em",
26
- mb: "-0.25em"
27
- }),
28
- icon: css({
29
- display: "inline-flex",
30
- alignItems: "center",
31
- justifyContent: "center",
32
- flexShrink: 0
33
- }),
34
- endContent: css({
35
- display: "inline-flex",
36
- alignItems: "center",
37
- color: "inherit"
38
- }),
39
- startContent: css({
40
- display: "inline-flex",
41
- alignItems: "center",
42
- color: "inherit"
43
- }),
44
- loadingIndicator: css({
45
- display: "inline-flex",
46
- alignItems: "center",
47
- color: "inherit"
48
- })
49
- };
50
12
  function Button({
51
13
  label,
52
14
  "aria-controls": ariaControls,
@@ -94,11 +56,12 @@ function Button({
94
56
  const renderAsLink = href != null && !buttonDisabled;
95
57
  const opensInNewTab = renderAsLink && target === "_blank";
96
58
  const ariaLabel = ariaLabelProp ?? getAriaLabel(
97
- isIconOnly || isLoading || startContent != null || endContent != null || opensInNewTab ? label : void 0,
59
+ isIconOnly || isLoading || isReactNode(startContent) || isReactNode(endContent) || opensInNewTab ? label : void 0,
98
60
  opensInNewTab
99
61
  );
100
62
  const linkRel = useRel({ target, rel });
101
63
  const spinnerVariant = variant === "primary" || variant === "destructive" || variant === "onSolid" ? "onMedia" : "default";
64
+ const classes = buttonRecipe({ variant, size, iconOnly: isIconOnly });
102
65
  const ariaAttrs = {
103
66
  "aria-controls": ariaControls,
104
67
  "aria-current": ariaCurrent,
@@ -134,19 +97,16 @@ function Button({
134
97
  onKeyDown?.(event);
135
98
  };
136
99
  const buttonContent = /* @__PURE__ */ jsxs(Fragment, { children: [
137
- /* @__PURE__ */ jsxs("span", { "aria-hidden": isLoading || void 0, className: styles.content, children: [
138
- icon != null ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: styles.icon, children: /* @__PURE__ */ jsx(Icon, { icon, size }) }) : null,
139
- !isIconOnly && startContent != null ? /* @__PURE__ */ jsx("span", { className: styles.startContent, children: startContent }) : null,
140
- !isIconOnly && /* @__PURE__ */ jsx("span", { className: styles.label, children: label }),
141
- !isIconOnly && endContent != null ? /* @__PURE__ */ jsx("span", { className: styles.endContent, children: endContent }) : null,
142
- !isIconOnly && isLoading ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: styles.loadingIndicator, children: /* @__PURE__ */ jsx(Spinner, { size, variant: spinnerVariant }) }) : null
100
+ /* @__PURE__ */ jsxs("span", { "aria-hidden": isLoading || void 0, className: classes.content, children: [
101
+ icon != null ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: classes.icon, children: isIconOnly && isLoading ? /* @__PURE__ */ jsx(Spinner, { size, variant: spinnerVariant }) : /* @__PURE__ */ jsx(Icon, { icon, size }) }) : null,
102
+ !isIconOnly && isReactNode(startContent) ? /* @__PURE__ */ jsx("span", { className: classes.startContent, children: startContent }) : null,
103
+ !isIconOnly ? /* @__PURE__ */ jsx("span", { className: classes.label, children: label }) : null,
104
+ !isIconOnly && isReactNode(endContent) ? /* @__PURE__ */ jsx("span", { className: classes.endContent, children: endContent }) : null,
105
+ !isIconOnly && isLoading ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: classes.loadingIndicator, children: /* @__PURE__ */ jsx(Spinner, { size, variant: spinnerVariant }) }) : null
143
106
  ] }),
144
107
  /* @__PURE__ */ jsx(VisuallyHidden, { "aria-live": "polite", role: "status", children: isLoading ? "Loading" : "" })
145
108
  ] });
146
- const rootClassName = cx(
147
- buttonRecipe({ variant, size, iconOnly: isIconOnly }),
148
- className
149
- );
109
+ const rootClassName = cx(classes.root, className);
150
110
  const element = renderAsLink ? /* @__PURE__ */ jsx(
151
111
  LinkComponent,
152
112
  {
@@ -193,5 +153,5 @@ function Button({
193
153
  Button.displayName = "Button";
194
154
 
195
155
  export { Button };
196
- //# sourceMappingURL=chunk-RRNT32KY.js.map
197
- //# sourceMappingURL=chunk-RRNT32KY.js.map
156
+ //# sourceMappingURL=chunk-RVENUWRD.js.map
157
+ //# sourceMappingURL=chunk-RVENUWRD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Button/Button.tsx"],"names":[],"mappings":"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","file":"chunk-RVENUWRD.js","sourcesContent":["/* eslint-disable @eslint-react/static-components -- intentional polymorphism via as prop */\n\nimport type {\n CSSProperties,\n JSX,\n KeyboardEvent,\n MouseEvent,\n MouseEventHandler,\n ReactNode,\n Ref,\n} from 'react';\nimport {VisuallyHidden} from '../../internal';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {getAriaLabel, useRel} from '../../internal/linkAccessibility';\nimport {useButtonGroup} from '../ButtonGroup/ButtonGroupContext';\nimport {Icon, type IconComponent} from '../Icon';\nimport type {LinkComponent} from '../Link';\nimport {useLinkComponent} from '../Link';\nimport {Spinner} from '../Spinner';\nimport {Tooltip} from '../Tooltip';\nimport {buttonRecipe, type ButtonVariants} from './Button.recipe';\n\nexport type ButtonSize = NonNullable<ButtonVariants>['size'];\ntype ButtonVariant = NonNullable<ButtonVariants>['variant'];\n\n/**\n * A versatile action element that renders as a `<button>` or a link depending\n * on whether `href` is provided. Supports explicit loading states, icon-only\n * modes, link buttons, and tooltips.\n */\ninterface ButtonBaseProps {\n /**\n * Identifies the element(s) whose contents are controlled by the button.\n */\n 'aria-controls'?: string;\n /**\n * Indicates the current item in a set.\n */\n 'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time';\n /**\n * Identifies the element(s) that describe the button.\n */\n 'aria-describedby'?: string;\n /**\n * Identifies the element that provides a detailed description.\n */\n 'aria-details'?: string;\n /**\n * Indicates whether a controlled element is expanded or collapsed.\n */\n 'aria-expanded'?: boolean;\n /**\n * Indicates the button opens an interactive popup element.\n */\n 'aria-haspopup'?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';\n /**\n * Indicates whether the element is exposed to the accessibility API.\n */\n 'aria-hidden'?: boolean;\n /**\n * Keyboard shortcuts that activate or focus the button.\n */\n 'aria-keyshortcuts'?: string;\n /**\n * Accessible label that overrides the visible `label` for assistive\n * technologies. Use when the visible text is too terse (e.g. a page\n * number) and a longer description is needed.\n */\n 'aria-label'?: string;\n /**\n * Identifies the element(s) that label the button.\n */\n 'aria-labelledby'?: string;\n /**\n * Identifies element(s) owned by the button that are not DOM children.\n */\n 'aria-owns'?: string;\n /**\n * Indicates the current pressed state of a toggle button.\n */\n 'aria-pressed'?: boolean | 'mixed';\n /**\n * Human-readable description of the role of the button.\n */\n 'aria-roledescription'?: string;\n /**\n * Custom link component to render when `href` is set. Falls back to the\n * component provided by `LinkProvider`, or a plain `<a>` tag.\n */\n as?: LinkComponent;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Content rendered after the label, such as a badge or count. Hidden in\n * icon-only mode.\n */\n endContent?: ReactNode;\n /**\n * HTML `form` attribute associating the button with a `<form>` by ID.\n */\n form?: string;\n /**\n * URL to navigate to. When set and the button is not disabled, the component\n * renders as a link element.\n */\n href?: string;\n /**\n * Whether the button is disabled. Prevents interaction and applies disabled\n * styling.\n */\n isDisabled?: boolean;\n /**\n * Whether the button is in a loading state. Shows a spinner overlay,\n * disables interaction, and announces \"Loading\" to assistive technologies.\n */\n isLoading?: boolean;\n /**\n * Text label for the button. Always required for accessibility even when\n * `isIconOnly` is true.\n */\n label: string;\n /**\n * HTML `name` attribute for form submission.\n */\n name?: string;\n /**\n * Click event handler.\n */\n onClick?: MouseEventHandler<HTMLElement>;\n /**\n * Keyboard event handler for the root element.\n */\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Link `rel` attribute (e.g., `\"noopener\"`). Only applies when rendering\n * as a link.\n */\n rel?: string;\n /**\n * Visual size of the button.\n */\n size?: ButtonSize;\n /**\n * Arbitrary content rendered before the label (after the icon, if present).\n * Hidden in icon-only mode.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Link `target` attribute (e.g., `\"_blank\"`). Only applies when rendering\n * as a link.\n */\n target?: string;\n /**\n * Tooltip text shown on hover. When set on a disabled button,\n * `aria-disabled` is used instead of the `disabled` attribute so the\n * tooltip remains accessible.\n */\n tooltip?: string;\n /**\n * HTML button `type` attribute.\n */\n type?: 'button' | 'submit' | 'reset';\n /**\n * HTML `value` attribute for form submission.\n */\n value?: string;\n /**\n * Visual style variant.\n */\n variant?: ButtonVariant;\n}\n\nexport type ButtonProps =\n | (ButtonBaseProps & {\n /**\n * Icon element rendered before the label. Required in icon-only mode.\n */\n icon: IconComponent;\n /**\n * Visually hides the label, showing only the icon. The `label` prop is\n * still required and used as `aria-label`.\n */\n isIconOnly: true;\n })\n | (ButtonBaseProps & {\n /**\n * Icon element rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Visually hides the label, showing only the icon. The `label` prop is\n * still required and used as `aria-label`.\n */\n isIconOnly?: false;\n });\n\nexport function Button({\n label,\n 'aria-controls': ariaControls,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabelProp,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-expanded': ariaExpanded,\n 'aria-haspopup': ariaHaspopup,\n 'aria-hidden': ariaHidden,\n 'aria-keyshortcuts': ariaKeyshortcuts,\n 'aria-labelledby': ariaLabelledby,\n 'aria-owns': ariaOwns,\n 'aria-pressed': ariaPressed,\n 'aria-roledescription': ariaRoledescription,\n href,\n as,\n target,\n rel,\n variant,\n size: sizeProp,\n className,\n 'data-testid': dataTestId,\n style,\n type = 'button',\n ref,\n isDisabled = false,\n isLoading = false,\n icon,\n isIconOnly = false,\n endContent,\n startContent,\n tooltip,\n onClick,\n onKeyDown,\n form,\n name,\n value,\n}: ButtonProps): JSX.Element {\n const LinkComponent = useLinkComponent(as);\n const buttonGroup = useButtonGroup();\n const size = sizeProp ?? buttonGroup?.size ?? 'md';\n const buttonDisabled =\n isDisabled || buttonGroup?.isDisabled === true || isLoading;\n const useAriaDisabled = tooltip != null && buttonDisabled;\n const renderAsLink = href != null && !buttonDisabled;\n const opensInNewTab = renderAsLink && target === '_blank';\n const ariaLabel =\n ariaLabelProp ??\n getAriaLabel(\n isIconOnly ||\n isLoading ||\n isReactNode(startContent) ||\n isReactNode(endContent) ||\n opensInNewTab\n ? label\n : undefined,\n opensInNewTab,\n );\n const linkRel = useRel({target, rel});\n const spinnerVariant =\n variant === 'primary' || variant === 'destructive' || variant === 'onSolid'\n ? 'onMedia'\n : 'default';\n\n const classes = buttonRecipe({variant, size, iconOnly: isIconOnly});\n\n const ariaAttrs = {\n 'aria-controls': ariaControls,\n 'aria-current': ariaCurrent,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-expanded': ariaExpanded,\n 'aria-haspopup': ariaHaspopup,\n 'aria-hidden': ariaHidden,\n 'aria-keyshortcuts': ariaKeyshortcuts,\n 'aria-labelledby': ariaLabelledby,\n 'aria-owns': ariaOwns,\n 'aria-pressed': ariaPressed,\n 'aria-roledescription': ariaRoledescription,\n };\n\n const handleButtonClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (buttonDisabled) {\n event.preventDefault();\n return;\n }\n\n onClick?.(event);\n };\n\n const handleLinkClick = (event: MouseEvent<HTMLAnchorElement>) => {\n onClick?.(event);\n };\n\n const handleButtonKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (useAriaDisabled && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n return;\n }\n\n onKeyDown?.(event);\n };\n\n const handleLinkKeyDown = (event: KeyboardEvent<HTMLAnchorElement>) => {\n onKeyDown?.(event);\n };\n\n const buttonContent = (\n <>\n <span aria-hidden={isLoading || undefined} className={classes.content}>\n {icon != null ? (\n <span aria-hidden=\"true\" className={classes.icon}>\n {isIconOnly && isLoading ? (\n <Spinner size={size} variant={spinnerVariant} />\n ) : (\n <Icon icon={icon} size={size} />\n )}\n </span>\n ) : null}\n {!isIconOnly && isReactNode(startContent) ? (\n <span className={classes.startContent}>{startContent}</span>\n ) : null}\n {!isIconOnly ? <span className={classes.label}>{label}</span> : null}\n {!isIconOnly && isReactNode(endContent) ? (\n <span className={classes.endContent}>{endContent}</span>\n ) : null}\n {!isIconOnly && isLoading ? (\n <span aria-hidden=\"true\" className={classes.loadingIndicator}>\n <Spinner size={size} variant={spinnerVariant} />\n </span>\n ) : null}\n </span>\n <VisuallyHidden aria-live=\"polite\" role=\"status\">\n {isLoading ? 'Loading' : ''}\n </VisuallyHidden>\n </>\n );\n\n const rootClassName = cx(classes.root, className);\n\n const element = renderAsLink ? (\n <LinkComponent\n {...ariaAttrs}\n aria-label={ariaLabel}\n className={rootClassName}\n data-testid={dataTestId}\n href={href}\n onClick={handleLinkClick}\n onKeyDown={handleLinkKeyDown}\n ref={ref as Ref<HTMLAnchorElement>}\n rel={linkRel}\n style={style}\n target={target}\n to={LinkComponent === 'a' ? undefined : href}>\n {buttonContent}\n </LinkComponent>\n ) : (\n <button\n {...ariaAttrs}\n aria-busy={isLoading || undefined}\n aria-disabled={useAriaDisabled || undefined}\n aria-label={ariaLabel}\n className={rootClassName}\n data-testid={dataTestId}\n disabled={useAriaDisabled ? undefined : buttonDisabled}\n form={form}\n name={name}\n onClick={handleButtonClick}\n onKeyDown={handleButtonKeyDown}\n ref={ref as Ref<HTMLButtonElement>}\n style={style}\n type={type}\n value={value}>\n {buttonContent}\n </button>\n );\n\n if (tooltip != null) {\n return <Tooltip content={tooltip}>{element}</Tooltip>;\n }\n\n return element;\n}\n\nButton.displayName = 'Button';\n"]}
@@ -1,4 +1,4 @@
1
- import { Heading } from './chunk-J2FCNWYM.js';
1
+ import { Heading } from './chunk-76B2VLID.js';
2
2
  import { Icon } from './chunk-7T3SWOY7.js';
3
3
  import { cx } from './chunk-PPNETWIP.js';
4
4
  import { css } from './chunk-OD4DHHZH.js';
@@ -138,5 +138,5 @@ function MetadataListItem({
138
138
  MetadataListItem.displayName = "MetadataListItem";
139
139
 
140
140
  export { MetadataList, MetadataListItem };
141
- //# sourceMappingURL=chunk-GTPRZCNZ.js.map
142
- //# sourceMappingURL=chunk-GTPRZCNZ.js.map
141
+ //# sourceMappingURL=chunk-S4B2D427.js.map
142
+ //# sourceMappingURL=chunk-S4B2D427.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MetadataList/MetadataListContext.ts","../src/components/MetadataList/MetadataList.tsx","../src/components/MetadataList/MetadataListItem.tsx"],"names":["styles","jsxs","jsx"],"mappings":"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","file":"chunk-GTPRZCNZ.js","sourcesContent":["import {createContext, use} from 'react';\n\nexport interface MetadataListContextValue {\n labelPosition: 'start' | 'top';\n}\n\nexport const MetadataListContext =\n createContext<MetadataListContextValue | null>(null);\n\nMetadataListContext.displayName = 'MetadataListContext';\n\nexport function useMetadataList(): MetadataListContextValue | null {\n return use(MetadataListContext);\n}\n","import {\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 {Heading} from '../Text';\nimport {MetadataListContext} from './MetadataListContext';\n\nexport type MetadataListLabelPosition = 'start' | 'top';\n\nexport interface MetadataListProps {\n /**\n * Metadata items to render inside the list.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the root.\n */\n className?: string;\n /**\n * Test ID applied to the root.\n */\n 'data-testid'?: string;\n /**\n * Position of item labels relative to their values.\n * @default 'start'\n */\n labelPosition?: MetadataListLabelPosition;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root.\n */\n style?: CSSProperties;\n /**\n * Optional title rendered above the list as a heading.\n */\n title?: string;\n}\n\nconst styles = {\n root: css({display: 'flex', flexDirection: 'column'}),\n title: css({mb: '3'}),\n dl: css({m: 0, p: 0}),\n grid: css({\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n rowGap: '3',\n columnGap: '6',\n alignItems: 'start',\n }),\n gridStacked: css({\n display: 'grid',\n gridTemplateColumns: '1fr',\n gap: '3',\n }),\n} as const;\n\n/**\n * Displays a list of label-value metadata pairs in configurable layouts.\n */\nexport function MetadataList({\n children,\n labelPosition = 'start',\n title,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: MetadataListProps): React.JSX.Element {\n const titleId = useId();\n const contextValue = useMemo(() => ({labelPosition}), [labelPosition]);\n const dlClassName =\n labelPosition === 'top' ? styles.gridStacked : styles.grid;\n\n return (\n <MetadataListContext value={contextValue}>\n <div\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {title != null ? (\n <Heading className={styles.title} id={titleId} level={5}>\n {title}\n </Heading>\n ) : null}\n <dl\n aria-labelledby={title != null ? titleId : undefined}\n className={cx(styles.dl, dlClassName)}>\n {children}\n </dl>\n </div>\n </MetadataListContext>\n );\n}\n\nMetadataList.displayName = 'MetadataList';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {Icon, type IconComponent} from '../Icon';\nimport {useMetadataList} from './MetadataListContext';\n\n/**\n * A single label-value pair rendered inside a MetadataList.\n */\nexport interface MetadataListItemProps {\n /**\n * Value content rendered beside or below the label.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Optional icon rendered before the label text.\n */\n icon?: IconComponent;\n /**\n * Descriptive label for this metadata entry.\n */\n label: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n label: css({\n color: 'fg.muted',\n fontSize: 'md',\n fontWeight: 'bold',\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n m: 0,\n minH: '6',\n }),\n value: css({\n color: 'fg',\n fontSize: 'md',\n m: 0,\n minH: '6',\n overflowWrap: 'break-word',\n }),\n stacked: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n }),\n inline: css({\n display: 'contents',\n }),\n} as const;\n\n/**\n * A single label-value pair rendered inside a MetadataList.\n */\nexport function MetadataListItem({\n children,\n icon,\n label,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: MetadataListItemProps): React.JSX.Element {\n const context = useMetadataList();\n\n if (context == null && process.env.NODE_ENV !== 'production') {\n throw new Error('MetadataListItem must be rendered inside a MetadataList.');\n }\n\n const isStacked = context?.labelPosition === 'top';\n const labelContent = (\n <>\n {icon != null ? <Icon color=\"secondary\" icon={icon} size=\"sm\" /> : null}\n {label}\n </>\n );\n\n if (isStacked) {\n return (\n <div\n className={cx(styles.stacked, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <dt className={styles.label}>{labelContent}</dt>\n <dd className={styles.value}>{children}</dd>\n </div>\n );\n }\n\n return (\n <div\n className={cx(styles.inline, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <dt className={styles.label}>{labelContent}</dt>\n <dd className={styles.value}>{children}</dd>\n </div>\n );\n}\n\nMetadataListItem.displayName = 'MetadataListItem';\n"]}
1
+ {"version":3,"sources":["../src/components/MetadataList/MetadataListContext.ts","../src/components/MetadataList/MetadataList.tsx","../src/components/MetadataList/MetadataListItem.tsx"],"names":["styles","jsxs","jsx"],"mappings":"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","file":"chunk-S4B2D427.js","sourcesContent":["import {createContext, use} from 'react';\n\nexport interface MetadataListContextValue {\n labelPosition: 'start' | 'top';\n}\n\nexport const MetadataListContext =\n createContext<MetadataListContextValue | null>(null);\n\nMetadataListContext.displayName = 'MetadataListContext';\n\nexport function useMetadataList(): MetadataListContextValue | null {\n return use(MetadataListContext);\n}\n","import {\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 {Heading} from '../Text';\nimport {MetadataListContext} from './MetadataListContext';\n\nexport type MetadataListLabelPosition = 'start' | 'top';\n\nexport interface MetadataListProps {\n /**\n * Metadata items to render inside the list.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the root.\n */\n className?: string;\n /**\n * Test ID applied to the root.\n */\n 'data-testid'?: string;\n /**\n * Position of item labels relative to their values.\n * @default 'start'\n */\n labelPosition?: MetadataListLabelPosition;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root.\n */\n style?: CSSProperties;\n /**\n * Optional title rendered above the list as a heading.\n */\n title?: string;\n}\n\nconst styles = {\n root: css({display: 'flex', flexDirection: 'column'}),\n title: css({mb: '3'}),\n dl: css({m: 0, p: 0}),\n grid: css({\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n rowGap: '3',\n columnGap: '6',\n alignItems: 'start',\n }),\n gridStacked: css({\n display: 'grid',\n gridTemplateColumns: '1fr',\n gap: '3',\n }),\n} as const;\n\n/**\n * Displays a list of label-value metadata pairs in configurable layouts.\n */\nexport function MetadataList({\n children,\n labelPosition = 'start',\n title,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: MetadataListProps): React.JSX.Element {\n const titleId = useId();\n const contextValue = useMemo(() => ({labelPosition}), [labelPosition]);\n const dlClassName =\n labelPosition === 'top' ? styles.gridStacked : styles.grid;\n\n return (\n <MetadataListContext value={contextValue}>\n <div\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {title != null ? (\n <Heading className={styles.title} id={titleId} level={5}>\n {title}\n </Heading>\n ) : null}\n <dl\n aria-labelledby={title != null ? titleId : undefined}\n className={cx(styles.dl, dlClassName)}>\n {children}\n </dl>\n </div>\n </MetadataListContext>\n );\n}\n\nMetadataList.displayName = 'MetadataList';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {Icon, type IconComponent} from '../Icon';\nimport {useMetadataList} from './MetadataListContext';\n\n/**\n * A single label-value pair rendered inside a MetadataList.\n */\nexport interface MetadataListItemProps {\n /**\n * Value content rendered beside or below the label.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Optional icon rendered before the label text.\n */\n icon?: IconComponent;\n /**\n * Descriptive label for this metadata entry.\n */\n label: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n label: css({\n color: 'fg.muted',\n fontSize: 'md',\n fontWeight: 'bold',\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n m: 0,\n minH: '6',\n }),\n value: css({\n color: 'fg',\n fontSize: 'md',\n m: 0,\n minH: '6',\n overflowWrap: 'break-word',\n }),\n stacked: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n }),\n inline: css({\n display: 'contents',\n }),\n} as const;\n\n/**\n * A single label-value pair rendered inside a MetadataList.\n */\nexport function MetadataListItem({\n children,\n icon,\n label,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: MetadataListItemProps): React.JSX.Element {\n const context = useMetadataList();\n\n if (context == null && process.env.NODE_ENV !== 'production') {\n throw new Error('MetadataListItem must be rendered inside a MetadataList.');\n }\n\n const isStacked = context?.labelPosition === 'top';\n const labelContent = (\n <>\n {icon != null ? <Icon color=\"secondary\" icon={icon} size=\"sm\" /> : null}\n {label}\n </>\n );\n\n if (isStacked) {\n return (\n <div\n className={cx(styles.stacked, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <dt className={styles.label}>{labelContent}</dt>\n <dd className={styles.value}>{children}</dd>\n </div>\n );\n }\n\n return (\n <div\n className={cx(styles.inline, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <dt className={styles.label}>{labelContent}</dt>\n <dd className={styles.value}>{children}</dd>\n </div>\n );\n}\n\nMetadataListItem.displayName = 'MetadataListItem';\n"]}
@@ -1,8 +1,9 @@
1
1
  import { inputStyles, inputRecipe } from './chunk-3M23WX6K.js';
2
- import { getNecessity, Field } from './chunk-K6CQ45C2.js';
2
+ import { getNecessity, Field } from './chunk-ASJ5CBCR.js';
3
3
  import { getStatusMessageID, getDescribedBy, getStatusIcon } from './chunk-WOIWI2UO.js';
4
- import { Button } from './chunk-RRNT32KY.js';
5
- import { Spinner } from './chunk-S54CKWKV.js';
4
+ import { Button } from './chunk-RVENUWRD.js';
5
+ import { Spinner } from './chunk-DSB4Q3AS.js';
6
+ import { isReactNode } from './chunk-2PSZAWLC.js';
6
7
  import { Icon } from './chunk-7T3SWOY7.js';
7
8
  import { cx } from './chunk-PPNETWIP.js';
8
9
  import { css } from './chunk-OD4DHHZH.js';
@@ -39,7 +40,9 @@ function fromInputString(value) {
39
40
  function TimeInput({
40
41
  label,
41
42
  value,
43
+ onBlur,
42
44
  onChange,
45
+ onFocus,
43
46
  hasSeconds = false,
44
47
  hasClear = false,
45
48
  hasAutoFocus = false,
@@ -64,7 +67,7 @@ function TimeInput({
64
67
  ref
65
68
  }) {
66
69
  const inputId = useId();
67
- const descriptionID = description != null ? `${inputId}-description` : void 0;
70
+ const descriptionID = isReactNode(description) ? `${inputId}-description` : void 0;
68
71
  const statusMessageID = getStatusMessageID(inputId, status);
69
72
  const describedBy = getDescribedBy(descriptionID, statusMessageID);
70
73
  const necessity = getNecessity(isOptional, isRequired);
@@ -109,7 +112,9 @@ function TimeInput({
109
112
  max: toInputString(max, hasSeconds),
110
113
  min: toInputString(min, hasSeconds),
111
114
  name: htmlName,
115
+ onBlur,
112
116
  onChange: (event) => onChange(fromInputString(event.target.value)),
117
+ onFocus,
113
118
  placeholder,
114
119
  ref,
115
120
  step: step ?? (hasSeconds ? 1 : 60),
@@ -139,5 +144,5 @@ function TimeInput({
139
144
  TimeInput.displayName = "TimeInput";
140
145
 
141
146
  export { TimeInput };
142
- //# sourceMappingURL=chunk-AXCE2HKG.js.map
143
- //# sourceMappingURL=chunk-AXCE2HKG.js.map
147
+ //# sourceMappingURL=chunk-S4LVSSJI.js.map
148
+ //# sourceMappingURL=chunk-S4LVSSJI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/TimeInput/TimeInput.tsx"],"names":[],"mappings":"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","file":"chunk-S4LVSSJI.js","sourcesContent":["import {Temporal} from '@js-temporal/polyfill';\nimport {Clock, X} from 'lucide-react';\nimport {\n useId,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\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 {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from '../Field/inputUtils';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Spinner} from '../Spinner';\n\nconst styles = {\n input: css({\n '&::-webkit-calendar-picker-indicator': {\n display: 'none',\n },\n }),\n} as const;\n\nexport type PlainTime = Temporal.PlainTime;\n\nexport type TimeInputProps = {\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a clear button when a value is set.\n * @default false\n */\n hasClear?: boolean;\n /**\n * Whether the input includes a seconds field.\n * @default false\n */\n hasSeconds?: boolean;\n /**\n * HTML name attribute.\n */\n htmlName?: string;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the input is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Latest allowed time.\n */\n max?: PlainTime;\n /**\n * Earliest allowed time.\n */\n min?: PlainTime;\n /**\n * Called when the input loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Called when the time value changes.\n */\n onChange: (value: PlainTime | undefined) => void;\n /**\n * Called when the input gains focus.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Placeholder text.\n * @default 'Select a time'\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Step increment in seconds for the time picker.\n */\n step?: number;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Controlled time value.\n */\n value: PlainTime | undefined;\n} & FieldNecessity;\n\nfunction toInputString(\n time: PlainTime | undefined,\n hasSeconds: boolean,\n): string {\n if (time == null) {\n return '';\n }\n return time.toString({\n smallestUnit: hasSeconds ? 'second' : 'minute',\n });\n}\n\nfunction fromInputString(value: string): PlainTime | undefined {\n if (value === '') {\n return undefined;\n }\n try {\n return Temporal.PlainTime.from(value);\n } catch {\n return undefined;\n }\n}\n\n/**\n * Time picker input field with optional seconds granularity.\n */\nexport function TimeInput({\n label,\n value,\n onBlur,\n onChange,\n onFocus,\n hasSeconds = false,\n hasClear = false,\n hasAutoFocus = false,\n min,\n max,\n step,\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n htmlName,\n status,\n labelIcon,\n labelTooltip,\n placeholder = 'Select a time',\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: TimeInputProps): React.JSX.Element {\n const inputId = useId();\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n <div\n className={inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n })}>\n <span className={inputStyles.iconSlot}>\n <Icon icon={Clock} size=\"sm\" />\n </span>\n <input\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-required={isRequired ?? undefined}\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={cx(inputStyles.control, styles.input)}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n max={toInputString(max, hasSeconds)}\n min={toInputString(min, hasSeconds)}\n name={htmlName}\n onBlur={onBlur}\n onChange={event => onChange(fromInputString(event.target.value))}\n onFocus={onFocus}\n placeholder={placeholder}\n ref={ref}\n step={step ?? (hasSeconds ? 1 : 60)}\n type=\"time\"\n value={toInputString(value, hasSeconds)}\n />\n {hasClear && value != null && !isDisabled ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={() => onChange(undefined)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n </Field>\n );\n}\n\nTimeInput.displayName = 'TimeInput';\n"]}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk2P6D43V2_cjs = require('./chunk-2P6D43V2.cjs');
4
+ var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
4
5
  var react = require('react');
5
6
  var jsxRuntime = require('react/jsx-runtime');
6
7
 
@@ -143,7 +144,7 @@ function useSelectListbox({
143
144
  status
144
145
  }) {
145
146
  const inputId = react.useId();
146
- const descriptionID = description != null ? `${inputId}-description` : void 0;
147
+ const descriptionID = chunkQAO6QMNQ_cjs.isReactNode(description) ? `${inputId}-description` : void 0;
147
148
  const statusMessageID = chunk2P6D43V2_cjs.getStatusMessageID(inputId, status);
148
149
  const describedBy = chunk2P6D43V2_cjs.getDescribedBy(descriptionID, statusMessageID);
149
150
  const [isOpen, setIsOpen] = react.useState(isDefaultOpen);
@@ -322,5 +323,5 @@ function renderSelectListboxOptions({
322
323
 
323
324
  exports.renderSelectListboxOptions = renderSelectListboxOptions;
324
325
  exports.useSelectListbox = useSelectListbox;
325
- //# sourceMappingURL=chunk-L6JT244G.cjs.map
326
- //# sourceMappingURL=chunk-L6JT244G.cjs.map
326
+ //# sourceMappingURL=chunk-SSOAZZNR.cjs.map
327
+ //# sourceMappingURL=chunk-SSOAZZNR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/useListboxNavigation.ts","../src/internal/useSelectListbox.tsx"],"names":["useState","useMemo","useCallback","useId","isReactNode","getStatusMessageID","getDescribedBy","useRef","jsx","jsxs"],"mappings":"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","file":"chunk-SSOAZZNR.cjs","sourcesContent":["import {\n useCallback,\n useMemo,\n useState,\n type Dispatch,\n type KeyboardEvent,\n type SetStateAction,\n} from 'react';\n\nexport type ListboxNavigationOption = {\n isDisabled?: boolean;\n value: string;\n};\n\nexport type UseListboxNavigationOptions = {\n shouldClearOnCommit?: boolean;\n inputId: string;\n isDisabled?: boolean;\n isOpen: boolean;\n onCommit: (value: string) => void;\n onOpenChange: (isOpen: boolean) => void;\n options: ReadonlyArray<ListboxNavigationOption>;\n selectedValues?: ReadonlySet<string>;\n};\n\nexport type UseListboxNavigationResult = {\n activeDescendantId: string | undefined;\n getOptionId: (optionValue: string) => string;\n handleKeyboardNavigation: (\n event: KeyboardEvent<HTMLInputElement | HTMLButtonElement>,\n ) => void;\n highlightedValue: string | null;\n setHighlightedValue: Dispatch<SetStateAction<string | null>>;\n};\n\nexport function useListboxNavigation({\n inputId,\n isDisabled = false,\n isOpen,\n onCommit,\n onOpenChange,\n options,\n selectedValues,\n shouldClearOnCommit = true,\n}: UseListboxNavigationOptions): UseListboxNavigationResult {\n const [highlightedValue, setHighlightedValue] = useState<string | null>(null);\n const enabledOptions = useMemo(\n () => options.filter(option => !option.isDisabled),\n [options],\n );\n\n const getOptionId = useCallback(\n (optionValue: string): string =>\n `${inputId}-option-${optionValue.replace(/[^a-zA-Z0-9_-]/g, '-')}`,\n [inputId],\n );\n\n const activeDescendantId =\n isOpen && highlightedValue != null\n ? getOptionId(highlightedValue)\n : undefined;\n\n const getInitialHighlight = useCallback(\n (direction: 'first' | 'last' = 'first'): string | null => {\n if (enabledOptions.length === 0) {\n return null;\n }\n\n const selectedEnabledOption = enabledOptions.find(option =>\n selectedValues?.has(option.value),\n );\n if (selectedEnabledOption != null) {\n return selectedEnabledOption.value;\n }\n\n return direction === 'last'\n ? enabledOptions[enabledOptions.length - 1].value\n : enabledOptions[0].value;\n },\n [enabledOptions, selectedValues],\n );\n\n const moveHighlight = useCallback(\n (direction: 1 | -1): void => {\n if (enabledOptions.length === 0) {\n setHighlightedValue(null);\n return;\n }\n\n setHighlightedValue(currentValue => {\n const currentIndex = enabledOptions.findIndex(\n option => option.value === currentValue,\n );\n const nextIndex =\n currentIndex === -1\n ? direction === 1\n ? 0\n : enabledOptions.length - 1\n : (currentIndex + direction + enabledOptions.length) %\n enabledOptions.length;\n return enabledOptions[nextIndex].value;\n });\n },\n [enabledOptions],\n );\n\n const handleKeyboardNavigation = useCallback(\n (event: KeyboardEvent<HTMLInputElement | HTMLButtonElement>): void => {\n if (isDisabled) {\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!isOpen) {\n onOpenChange(true);\n setHighlightedValue(\n getInitialHighlight(event.key === 'ArrowUp' ? 'last' : 'first'),\n );\n return;\n }\n\n moveHighlight(event.key === 'ArrowDown' ? 1 : -1);\n return;\n }\n\n if (event.key === 'Home' && isOpen) {\n event.preventDefault();\n setHighlightedValue(getInitialHighlight('first'));\n return;\n }\n\n if (event.key === 'End' && isOpen) {\n event.preventDefault();\n setHighlightedValue(getInitialHighlight('last'));\n return;\n }\n\n if (event.key === 'Enter' && isOpen && highlightedValue != null) {\n event.preventDefault();\n onCommit(highlightedValue);\n if (shouldClearOnCommit) {\n setHighlightedValue(null);\n }\n return;\n }\n\n if (event.key === 'Escape' && isOpen) {\n event.preventDefault();\n onOpenChange(false);\n setHighlightedValue(null);\n }\n },\n [\n getInitialHighlight,\n highlightedValue,\n isDisabled,\n isOpen,\n moveHighlight,\n onCommit,\n onOpenChange,\n shouldClearOnCommit,\n ],\n );\n\n return {\n activeDescendantId,\n getOptionId,\n handleKeyboardNavigation,\n highlightedValue,\n setHighlightedValue,\n };\n}\n","import {\n useCallback,\n useId,\n useMemo,\n useRef,\n useState,\n type Dispatch,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n type RefObject,\n type SetStateAction,\n} from 'react';\nimport type {InputStatus} from '../components/Field';\nimport {\n getDescribedBy,\n getStatusMessageID,\n} from '../components/Field/inputUtils';\nimport isReactNode from './isReactNode';\nimport {useListboxNavigation} from './useListboxNavigation';\n\nexport interface SelectListboxOptionData {\n isDisabled?: boolean;\n label?: string;\n value: string;\n}\n\nexport interface SelectListboxDivider {\n type: 'divider';\n}\n\nexport interface SelectListboxSection<TOption extends SelectListboxOptionData> {\n options: ReadonlyArray<TOption>;\n title?: string;\n type: 'section';\n}\n\nexport type SelectListboxOption<TOption extends SelectListboxOptionData> =\n | SelectListboxDivider\n | SelectListboxSection<TOption>\n | TOption\n | string;\n\nfunction normalizeSelectListboxOption<TOption extends SelectListboxOptionData>(\n option: string | TOption,\n): TOption {\n return (\n typeof option === 'string'\n ? {label: option, value: option}\n : {...option, label: option.label ?? option.value}\n ) as TOption;\n}\n\nfunction getSelectListboxOptions<TOption extends SelectListboxOptionData>(\n options: ReadonlyArray<SelectListboxOption<TOption>>,\n): TOption[] {\n return options.flatMap(option => {\n if (typeof option === 'string') {\n return [normalizeSelectListboxOption<TOption>(option)];\n }\n if ('type' in option) {\n return option.type === 'section'\n ? option.options.map(normalizeSelectListboxOption<TOption>)\n : [];\n }\n return [normalizeSelectListboxOption<TOption>(option)];\n });\n}\n\nexport type UseSelectListboxOptions<TOption extends SelectListboxOptionData> = {\n clearQueryOnCommit?: boolean;\n closeOnCommit?: boolean;\n description: ReactNode;\n isDefaultOpen?: boolean;\n isDisabled?: boolean;\n isLoading?: boolean;\n onCommitOption: (option: TOption) => boolean | undefined;\n options: ReadonlyArray<SelectListboxOption<TOption>>;\n selectedValues: ReadonlySet<string>;\n shouldClearOnCommit?: boolean;\n status: InputStatus | undefined;\n};\n\nexport type UseSelectListboxResult<TOption extends SelectListboxOptionData> = {\n activeDescendantId: string | undefined;\n describedBy: string | undefined;\n descriptionID: string | undefined;\n filteredValues: ReadonlySet<string>;\n getOptionId: (optionValue: string) => string;\n handleKeyboardNavigation: (\n event: KeyboardEvent<HTMLInputElement | HTMLButtonElement>,\n ) => void;\n handleOptionClick: (event: MouseEvent<HTMLElement>) => void;\n handleOptionMouseEnter: (event: MouseEvent<HTMLElement>) => void;\n highlightedValue: string | null;\n inputId: string;\n isInteractionDisabled: boolean;\n isOpen: boolean;\n listboxId: string;\n optionByValue: ReadonlyMap<string, TOption>;\n query: string;\n selectableOptions: ReadonlyArray<TOption>;\n setHighlightedValue: Dispatch<SetStateAction<string | null>>;\n setIsOpen: Dispatch<SetStateAction<boolean>>;\n setQuery: Dispatch<SetStateAction<string>>;\n statusMessageID: string | undefined;\n triggerRef: RefObject<HTMLDivElement | null>;\n visibleSelectableOptions: ReadonlyArray<TOption>;\n};\n\nexport function useSelectListbox<TOption extends SelectListboxOptionData>({\n clearQueryOnCommit = false,\n closeOnCommit = false,\n description,\n isDefaultOpen = false,\n isDisabled = false,\n isLoading = false,\n onCommitOption,\n options,\n selectedValues,\n shouldClearOnCommit = true,\n status,\n}: UseSelectListboxOptions<TOption>): UseSelectListboxResult<TOption> {\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 [isOpen, setIsOpen] = useState(isDefaultOpen);\n const [query, setQuery] = useState('');\n const triggerRef = useRef<HTMLDivElement>(null);\n const listboxId = `${inputId}-listbox`;\n const selectableOptions = useMemo(\n () => getSelectListboxOptions(options),\n [options],\n );\n const optionByValue = useMemo(\n () => new Map(selectableOptions.map(option => [option.value, option])),\n [selectableOptions],\n );\n const filteredValues = useMemo(() => {\n if (query.trim() === '') {\n return new Set(selectableOptions.map(option => option.value));\n }\n const lowerQuery = query.toLowerCase();\n return new Set(\n selectableOptions\n .filter(option =>\n (option.label ?? option.value).toLowerCase().includes(lowerQuery),\n )\n .map(option => option.value),\n );\n }, [query, selectableOptions]);\n const visibleSelectableOptions = useMemo(\n () => selectableOptions.filter(option => filteredValues.has(option.value)),\n [filteredValues, selectableOptions],\n );\n const isInteractionDisabled = isDisabled || isLoading;\n\n const {\n activeDescendantId,\n getOptionId,\n handleKeyboardNavigation,\n highlightedValue,\n setHighlightedValue,\n } = useListboxNavigation({\n inputId,\n isDisabled: isInteractionDisabled,\n isOpen,\n onCommit: optionValue => {\n const option = optionByValue.get(optionValue);\n if (option == null) {\n return;\n }\n\n if (onCommitOption(option) === false) {\n return;\n }\n\n if (closeOnCommit) {\n setIsOpen(false);\n }\n if (clearQueryOnCommit) {\n setQuery('');\n }\n },\n onOpenChange: setIsOpen,\n options: visibleSelectableOptions,\n selectedValues,\n shouldClearOnCommit,\n });\n\n const handleOptionClick = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n const optionValue = event.currentTarget.dataset.value;\n const option =\n optionValue == null ? undefined : optionByValue.get(optionValue);\n if (option == null || onCommitOption(option) === false) {\n return;\n }\n\n if (closeOnCommit) {\n setIsOpen(false);\n }\n if (clearQueryOnCommit) {\n setQuery('');\n }\n },\n [clearQueryOnCommit, closeOnCommit, onCommitOption, optionByValue],\n );\n\n const handleOptionMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n const optionValue = event.currentTarget.dataset.value;\n const option =\n optionValue == null ? undefined : optionByValue.get(optionValue);\n if (option != null && !option.isDisabled) {\n setHighlightedValue(option.value);\n }\n },\n [optionByValue, setHighlightedValue],\n );\n\n return {\n activeDescendantId,\n describedBy,\n descriptionID,\n filteredValues,\n getOptionId,\n handleKeyboardNavigation,\n handleOptionClick,\n handleOptionMouseEnter,\n highlightedValue,\n inputId,\n isInteractionDisabled,\n isOpen,\n listboxId,\n optionByValue,\n query,\n selectableOptions,\n setHighlightedValue,\n setIsOpen,\n setQuery,\n statusMessageID,\n triggerRef,\n visibleSelectableOptions,\n };\n}\n\nexport type RenderSelectListboxOptionsConfig<\n TOption extends SelectListboxOptionData,\n> = {\n dividerClassName: string;\n inputId: string;\n options: ReadonlyArray<SelectListboxOption<TOption>>;\n renderOption: (option: TOption) => ReactNode;\n sectionHeadingClassName: string;\n};\n\nexport function renderSelectListboxOptions<\n TOption extends SelectListboxOptionData,\n>({\n dividerClassName,\n inputId,\n options,\n renderOption,\n sectionHeadingClassName,\n}: RenderSelectListboxOptionsConfig<TOption>): ReactNode[] {\n const optionNodes: ReactNode[] = [];\n let dividerCount = 0;\n let sectionCount = 0;\n\n for (const option of options) {\n if (typeof option === 'string') {\n optionNodes.push(\n renderOption(normalizeSelectListboxOption<TOption>(option)),\n );\n } else if ('type' in option) {\n if (option.type === 'divider') {\n dividerCount += 1;\n optionNodes.push(\n <div\n className={dividerClassName}\n key={`divider-${dividerCount}`}\n role=\"separator\"\n />,\n );\n } else {\n const sectionKey =\n option.title ??\n option.options.map(sectionOption => sectionOption.value).join('|');\n sectionCount += 1;\n const sectionHeadingId =\n option.title == null\n ? undefined\n : `${inputId}-section-${sectionKey.replace(\n /[^a-zA-Z0-9_-]/g,\n '-',\n )}-${sectionCount}`;\n const sectionOptionNodes: ReactNode[] = [];\n for (const sectionOption of option.options) {\n sectionOptionNodes.push(\n renderOption(normalizeSelectListboxOption<TOption>(sectionOption)),\n );\n }\n optionNodes.push(\n <div\n aria-labelledby={sectionHeadingId}\n key={`section-${sectionKey}-${sectionCount}`}\n role=\"group\">\n {option.title != null ? (\n <div className={sectionHeadingClassName} id={sectionHeadingId}>\n {option.title}\n </div>\n ) : null}\n {sectionOptionNodes}\n </div>,\n );\n }\n } else {\n optionNodes.push(\n renderOption(normalizeSelectListboxOption<TOption>(option)),\n );\n }\n }\n\n return optionNodes;\n}\n"]}