silver-ui 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (705) hide show
  1. package/README.md +14 -4
  2. package/dist/{chunk-KEPCKSDE.js → chunk-2AY74YXP.js} +3 -2
  3. package/dist/chunk-2AY74YXP.js.map +1 -0
  4. package/dist/{chunk-PGBYMBGH.js → chunk-2FR4VA32.js} +18 -17
  5. package/dist/chunk-2FR4VA32.js.map +1 -0
  6. package/dist/{chunk-OUUG4RHO.js → chunk-2I6BJICE.js} +7 -6
  7. package/dist/chunk-2I6BJICE.js.map +1 -0
  8. package/dist/{chunk-FUU3I22W.js → chunk-35MIAFP2.js} +4 -3
  9. package/dist/{chunk-FUU3I22W.js.map → chunk-35MIAFP2.js.map} +1 -1
  10. package/dist/{chunk-5FQKELP6.js → chunk-3IX2FJWH.js} +3 -2
  11. package/dist/chunk-3IX2FJWH.js.map +1 -0
  12. package/dist/{chunk-H7LOOHWU.cjs → chunk-3JCYTBXI.cjs} +3 -2
  13. package/dist/chunk-3JCYTBXI.cjs.map +1 -0
  14. package/dist/{chunk-FTNEAX24.js → chunk-3MNRY6XK.js} +5 -4
  15. package/dist/chunk-3MNRY6XK.js.map +1 -0
  16. package/dist/{chunk-LTHPJRFK.cjs → chunk-3PHJWXBO.cjs} +10 -9
  17. package/dist/{chunk-LTHPJRFK.cjs.map → chunk-3PHJWXBO.cjs.map} +1 -1
  18. package/dist/{chunk-3W3ST5Y3.cjs → chunk-3USKXV4M.cjs} +7 -6
  19. package/dist/chunk-3USKXV4M.cjs.map +1 -0
  20. package/dist/{chunk-S4IHNNA2.js → chunk-3UYPIVBY.js} +3 -2
  21. package/dist/{chunk-S4IHNNA2.js.map → chunk-3UYPIVBY.js.map} +1 -1
  22. package/dist/{chunk-3PCXFOOS.js → chunk-42KJXH3P.js} +7 -6
  23. package/dist/chunk-42KJXH3P.js.map +1 -0
  24. package/dist/{chunk-XUCLNECV.js → chunk-446LQC5C.js} +4 -3
  25. package/dist/chunk-446LQC5C.js.map +1 -0
  26. package/dist/{chunk-CQYBC3RJ.cjs → chunk-4GT65SRC.cjs} +10 -9
  27. package/dist/chunk-4GT65SRC.cjs.map +1 -0
  28. package/dist/{chunk-MN2NCSQQ.js → chunk-4MX4DKWA.js} +3 -2
  29. package/dist/{chunk-MN2NCSQQ.js.map → chunk-4MX4DKWA.js.map} +1 -1
  30. package/dist/{chunk-6KGF66TR.js → chunk-57GO7S77.js} +4 -3
  31. package/dist/{chunk-6KGF66TR.js.map → chunk-57GO7S77.js.map} +1 -1
  32. package/dist/{chunk-RLIBY7XB.cjs → chunk-5AUBRSYO.cjs} +3 -2
  33. package/dist/chunk-5AUBRSYO.cjs.map +1 -0
  34. package/dist/{chunk-3PEK2Q54.cjs → chunk-5FNYOPUL.cjs} +3 -2
  35. package/dist/chunk-5FNYOPUL.cjs.map +1 -0
  36. package/dist/{chunk-YQIDUJW2.cjs → chunk-5HMAMGEL.cjs} +6 -5
  37. package/dist/{chunk-YQIDUJW2.cjs.map → chunk-5HMAMGEL.cjs.map} +1 -1
  38. package/dist/{chunk-Y2GYPMLW.cjs → chunk-5OHIMYY7.cjs} +6 -5
  39. package/dist/{chunk-Y2GYPMLW.cjs.map → chunk-5OHIMYY7.cjs.map} +1 -1
  40. package/dist/{chunk-6SKIBUCY.js → chunk-5PW34XKA.js} +5 -4
  41. package/dist/chunk-5PW34XKA.js.map +1 -0
  42. package/dist/{chunk-OCYZKZ24.cjs → chunk-6VY3VM5W.cjs} +4 -4
  43. package/dist/{chunk-OCYZKZ24.cjs.map → chunk-6VY3VM5W.cjs.map} +1 -1
  44. package/dist/{chunk-QQCEGAUQ.cjs → chunk-6WMG7TU2.cjs} +12 -11
  45. package/dist/chunk-6WMG7TU2.cjs.map +1 -0
  46. package/dist/{chunk-AC4E3WQA.cjs → chunk-7275FFQA.cjs} +13 -12
  47. package/dist/chunk-7275FFQA.cjs.map +1 -0
  48. package/dist/{chunk-YAQB3UMC.js → chunk-74B6CLZK.js} +5 -4
  49. package/dist/{chunk-YAQB3UMC.js.map → chunk-74B6CLZK.js.map} +1 -1
  50. package/dist/{chunk-VCM4MR7N.cjs → chunk-7IBLSZ7G.cjs} +53 -52
  51. package/dist/{chunk-VCM4MR7N.cjs.map → chunk-7IBLSZ7G.cjs.map} +1 -1
  52. package/dist/{chunk-GJZAGTPV.cjs → chunk-7KUEWO4T.cjs} +6 -5
  53. package/dist/chunk-7KUEWO4T.cjs.map +1 -0
  54. package/dist/{chunk-X2P5SPGB.js → chunk-7SGBGPZW.js} +3 -3
  55. package/dist/{chunk-X2P5SPGB.js.map → chunk-7SGBGPZW.js.map} +1 -1
  56. package/dist/{chunk-UNS7OCEA.cjs → chunk-7SUCVCOC.cjs} +6 -5
  57. package/dist/{chunk-UNS7OCEA.cjs.map → chunk-7SUCVCOC.cjs.map} +1 -1
  58. package/dist/{chunk-HPNY32G6.js → chunk-7TYZLVLZ.js} +3 -2
  59. package/dist/{chunk-HPNY32G6.js.map → chunk-7TYZLVLZ.js.map} +1 -1
  60. package/dist/{chunk-GA77PPVL.cjs → chunk-A36BE56K.cjs} +8 -7
  61. package/dist/{chunk-GA77PPVL.cjs.map → chunk-A36BE56K.cjs.map} +1 -1
  62. package/dist/{chunk-ESWYWWY2.js → chunk-A377P2JF.js} +5 -4
  63. package/dist/chunk-A377P2JF.js.map +1 -0
  64. package/dist/{chunk-5RFHYDQY.js → chunk-AUXMMTKN.js} +3 -2
  65. package/dist/chunk-AUXMMTKN.js.map +1 -0
  66. package/dist/{chunk-6SMVH3ON.cjs → chunk-B333LIQQ.cjs} +9 -8
  67. package/dist/chunk-B333LIQQ.cjs.map +1 -0
  68. package/dist/{chunk-NGNVNRAZ.cjs → chunk-BMJ4AK5X.cjs} +18 -17
  69. package/dist/chunk-BMJ4AK5X.cjs.map +1 -0
  70. package/dist/{chunk-KLPVBJGZ.cjs → chunk-BSOYEVZW.cjs} +6 -5
  71. package/dist/{chunk-KLPVBJGZ.cjs.map → chunk-BSOYEVZW.cjs.map} +1 -1
  72. package/dist/{chunk-PG4CZRTU.js → chunk-CRYF4JDH.js} +3 -2
  73. package/dist/chunk-CRYF4JDH.js.map +1 -0
  74. package/dist/{chunk-GKYGZWSQ.js → chunk-CTXAQNQI.js} +6 -5
  75. package/dist/{chunk-GKYGZWSQ.js.map → chunk-CTXAQNQI.js.map} +1 -1
  76. package/dist/{chunk-HEF53COU.js → chunk-CWDZJH7A.js} +4 -3
  77. package/dist/{chunk-HEF53COU.js.map → chunk-CWDZJH7A.js.map} +1 -1
  78. package/dist/{chunk-EZFQCREN.cjs → chunk-CZAKWWZE.cjs} +10 -9
  79. package/dist/chunk-CZAKWWZE.cjs.map +1 -0
  80. package/dist/{chunk-UJDHRILS.cjs → chunk-D2JOFRA3.cjs} +7 -6
  81. package/dist/chunk-D2JOFRA3.cjs.map +1 -0
  82. package/dist/{chunk-BUYZZOOU.js → chunk-D57CFXDZ.js} +3 -2
  83. package/dist/{chunk-BUYZZOOU.js.map → chunk-D57CFXDZ.js.map} +1 -1
  84. package/dist/{chunk-IU2YRN35.cjs → chunk-DUZBTPSH.cjs} +3 -2
  85. package/dist/{chunk-IU2YRN35.cjs.map → chunk-DUZBTPSH.cjs.map} +1 -1
  86. package/dist/{chunk-FHUOUARL.js → chunk-DXUFYSNR.js} +5 -4
  87. package/dist/{chunk-FHUOUARL.js.map → chunk-DXUFYSNR.js.map} +1 -1
  88. package/dist/{chunk-AXTX3IOR.js → chunk-DZYO3YLL.js} +4 -3
  89. package/dist/{chunk-AXTX3IOR.js.map → chunk-DZYO3YLL.js.map} +1 -1
  90. package/dist/{chunk-VK7DXUGH.cjs → chunk-E5TRE2YG.cjs} +3 -2
  91. package/dist/chunk-E5TRE2YG.cjs.map +1 -0
  92. package/dist/{chunk-ARUOMLOJ.cjs → chunk-ECVWXA4H.cjs} +3 -2
  93. package/dist/chunk-ECVWXA4H.cjs.map +1 -0
  94. package/dist/{chunk-NYTSAO5I.cjs → chunk-EFYWVWSL.cjs} +3 -2
  95. package/dist/{chunk-NYTSAO5I.cjs.map → chunk-EFYWVWSL.cjs.map} +1 -1
  96. package/dist/{chunk-OPBELSKN.js → chunk-ENBVF5OB.js} +8 -7
  97. package/dist/chunk-ENBVF5OB.js.map +1 -0
  98. package/dist/{chunk-CKDB7QNT.cjs → chunk-EPQKIFGY.cjs} +10 -9
  99. package/dist/{chunk-CKDB7QNT.cjs.map → chunk-EPQKIFGY.cjs.map} +1 -1
  100. package/dist/{chunk-VWG54F6X.cjs → chunk-FE3ZOSFJ.cjs} +9 -8
  101. package/dist/{chunk-VWG54F6X.cjs.map → chunk-FE3ZOSFJ.cjs.map} +1 -1
  102. package/dist/{chunk-O3UT5D57.js → chunk-FL53ZLSY.js} +15 -14
  103. package/dist/{chunk-O3UT5D57.js.map → chunk-FL53ZLSY.js.map} +1 -1
  104. package/dist/{chunk-6KG76KUZ.js → chunk-FP6EP2CX.js} +4 -3
  105. package/dist/{chunk-6KG76KUZ.js.map → chunk-FP6EP2CX.js.map} +1 -1
  106. package/dist/{chunk-KWZMXX4F.js → chunk-FPKXEI3W.js} +4 -3
  107. package/dist/chunk-FPKXEI3W.js.map +1 -0
  108. package/dist/{chunk-4MIIXRZN.cjs → chunk-G2RX3FZ7.cjs} +21 -20
  109. package/dist/chunk-G2RX3FZ7.cjs.map +1 -0
  110. package/dist/{chunk-6SFMORQF.cjs → chunk-GIGV6XFT.cjs} +8 -7
  111. package/dist/chunk-GIGV6XFT.cjs.map +1 -0
  112. package/dist/{chunk-UW3KCCBT.cjs → chunk-GIOMLAL2.cjs} +5 -4
  113. package/dist/{chunk-UW3KCCBT.cjs.map → chunk-GIOMLAL2.cjs.map} +1 -1
  114. package/dist/{chunk-5MCI3ILK.cjs → chunk-GKYJZNJQ.cjs} +44 -43
  115. package/dist/{chunk-5MCI3ILK.cjs.map → chunk-GKYJZNJQ.cjs.map} +1 -1
  116. package/dist/{chunk-5K3C3INR.cjs → chunk-GOAIWDHB.cjs} +11 -10
  117. package/dist/chunk-GOAIWDHB.cjs.map +1 -0
  118. package/dist/{chunk-O4PO6AMS.cjs → chunk-HAUMZ357.cjs} +3 -2
  119. package/dist/{chunk-O4PO6AMS.cjs.map → chunk-HAUMZ357.cjs.map} +1 -1
  120. package/dist/{chunk-RX2FXCIH.cjs → chunk-HIFJC2HY.cjs} +8 -8
  121. package/dist/{chunk-RX2FXCIH.cjs.map → chunk-HIFJC2HY.cjs.map} +1 -1
  122. package/dist/{chunk-ACGPBJIS.js → chunk-HRXPB4YH.js} +6 -5
  123. package/dist/chunk-HRXPB4YH.js.map +1 -0
  124. package/dist/{chunk-QM7NQK2K.js → chunk-I2X76NIY.js} +5 -4
  125. package/dist/{chunk-QM7NQK2K.js.map → chunk-I2X76NIY.js.map} +1 -1
  126. package/dist/{chunk-BF2DUOC3.cjs → chunk-IA4TPVHR.cjs} +15 -14
  127. package/dist/{chunk-BF2DUOC3.cjs.map → chunk-IA4TPVHR.cjs.map} +1 -1
  128. package/dist/{chunk-JIF5TZHC.cjs → chunk-IFRIXTF5.cjs} +3 -2
  129. package/dist/chunk-IFRIXTF5.cjs.map +1 -0
  130. package/dist/{chunk-JMVYWHJ7.js → chunk-IJWWTBJ6.js} +5 -4
  131. package/dist/chunk-IJWWTBJ6.js.map +1 -0
  132. package/dist/{chunk-JTPVAZE6.cjs → chunk-IVDCRMY3.cjs} +12 -11
  133. package/dist/{chunk-JTPVAZE6.cjs.map → chunk-IVDCRMY3.cjs.map} +1 -1
  134. package/dist/{chunk-Q6YOSQAM.js → chunk-J52N3BTJ.js} +8 -7
  135. package/dist/chunk-J52N3BTJ.js.map +1 -0
  136. package/dist/{chunk-HENIVDYQ.cjs → chunk-J6XNDFK7.cjs} +15 -14
  137. package/dist/chunk-J6XNDFK7.cjs.map +1 -0
  138. package/dist/{chunk-3NIDAKCF.cjs → chunk-J6XRX6DD.cjs} +3 -2
  139. package/dist/chunk-J6XRX6DD.cjs.map +1 -0
  140. package/dist/{chunk-HC57X3U4.js → chunk-JASZ7XTT.js} +6 -5
  141. package/dist/chunk-JASZ7XTT.js.map +1 -0
  142. package/dist/{chunk-EBV3EX3J.js → chunk-JJ32AVLU.js} +8 -7
  143. package/dist/chunk-JJ32AVLU.js.map +1 -0
  144. package/dist/{chunk-2N3PIXZ5.cjs → chunk-JLDYPQIB.cjs} +8 -7
  145. package/dist/chunk-JLDYPQIB.cjs.map +1 -0
  146. package/dist/{chunk-NSWKBWPP.js → chunk-JQHJJAX3.js} +6 -5
  147. package/dist/{chunk-NSWKBWPP.js.map → chunk-JQHJJAX3.js.map} +1 -1
  148. package/dist/{chunk-ZDZ7FW6V.cjs → chunk-K2KOXVGA.cjs} +10 -9
  149. package/dist/chunk-K2KOXVGA.cjs.map +1 -0
  150. package/dist/{chunk-GQ73VKKN.js → chunk-K57TGBAB.js} +9 -8
  151. package/dist/{chunk-GQ73VKKN.js.map → chunk-K57TGBAB.js.map} +1 -1
  152. package/dist/{chunk-BYV7NXC5.cjs → chunk-KGLCG2W5.cjs} +8 -7
  153. package/dist/chunk-KGLCG2W5.cjs.map +1 -0
  154. package/dist/{chunk-DTNIUZ3C.cjs → chunk-KGVNCMUT.cjs} +8 -7
  155. package/dist/{chunk-DTNIUZ3C.cjs.map → chunk-KGVNCMUT.cjs.map} +1 -1
  156. package/dist/{chunk-V5XVXQWE.js → chunk-KJRFBFBP.js} +6 -5
  157. package/dist/{chunk-V5XVXQWE.js.map → chunk-KJRFBFBP.js.map} +1 -1
  158. package/dist/{chunk-6ZPHID26.cjs → chunk-KNXDDKGK.cjs} +10 -9
  159. package/dist/chunk-KNXDDKGK.cjs.map +1 -0
  160. package/dist/{chunk-5GSRIOXE.js → chunk-KPAOAYDY.js} +5 -4
  161. package/dist/{chunk-5GSRIOXE.js.map → chunk-KPAOAYDY.js.map} +1 -1
  162. package/dist/{chunk-L747HIHG.js → chunk-KSDY2S25.js} +5 -4
  163. package/dist/chunk-KSDY2S25.js.map +1 -0
  164. package/dist/{chunk-BIKVMVWF.js → chunk-LHQM533G.js} +3 -2
  165. package/dist/{chunk-BIKVMVWF.js.map → chunk-LHQM533G.js.map} +1 -1
  166. package/dist/{chunk-KVJ27734.cjs → chunk-LIDE7FVO.cjs} +5 -4
  167. package/dist/{chunk-KVJ27734.cjs.map → chunk-LIDE7FVO.cjs.map} +1 -1
  168. package/dist/{chunk-EIJSWHG7.js → chunk-LT4P67TG.js} +6 -5
  169. package/dist/{chunk-EIJSWHG7.js.map → chunk-LT4P67TG.js.map} +1 -1
  170. package/dist/{chunk-D7TT4HUI.cjs → chunk-LT7DJ7FN.cjs} +17 -16
  171. package/dist/{chunk-D7TT4HUI.cjs.map → chunk-LT7DJ7FN.cjs.map} +1 -1
  172. package/dist/{chunk-GLFWSLJB.cjs → chunk-M3DVXO4U.cjs} +11 -10
  173. package/dist/{chunk-GLFWSLJB.cjs.map → chunk-M3DVXO4U.cjs.map} +1 -1
  174. package/dist/{chunk-YQVWDHP4.cjs → chunk-M7ADKAJB.cjs} +8 -7
  175. package/dist/{chunk-YQVWDHP4.cjs.map → chunk-M7ADKAJB.cjs.map} +1 -1
  176. package/dist/{chunk-BQWUTDTN.js → chunk-MCCOQSSC.js} +3 -2
  177. package/dist/{chunk-BQWUTDTN.js.map → chunk-MCCOQSSC.js.map} +1 -1
  178. package/dist/{chunk-ZW2ZOEYM.cjs → chunk-MCVMBH7P.cjs} +11 -10
  179. package/dist/chunk-MCVMBH7P.cjs.map +1 -0
  180. package/dist/{chunk-PK3NJSHQ.js → chunk-MNQFCWT7.js} +8 -7
  181. package/dist/{chunk-PK3NJSHQ.js.map → chunk-MNQFCWT7.js.map} +1 -1
  182. package/dist/{chunk-5HPXPF3F.js → chunk-MQUO663S.js} +6 -5
  183. package/dist/chunk-MQUO663S.js.map +1 -0
  184. package/dist/{chunk-6OWEKKOC.js → chunk-N26PQY3D.js} +6 -5
  185. package/dist/chunk-N26PQY3D.js.map +1 -0
  186. package/dist/{chunk-KLCEDPJ4.cjs → chunk-NKQAHJBB.cjs} +19 -18
  187. package/dist/chunk-NKQAHJBB.cjs.map +1 -0
  188. package/dist/{chunk-J242UTPO.cjs → chunk-NQD46M2L.cjs} +12 -11
  189. package/dist/chunk-NQD46M2L.cjs.map +1 -0
  190. package/dist/{chunk-56PY2CD7.js → chunk-NSA33LOE.js} +6 -5
  191. package/dist/chunk-NSA33LOE.js.map +1 -0
  192. package/dist/{chunk-KVEXSDEM.js → chunk-OI4GH7DO.js} +5 -4
  193. package/dist/{chunk-KVEXSDEM.js.map → chunk-OI4GH7DO.js.map} +1 -1
  194. package/dist/{chunk-AKAXQ4RL.js → chunk-OLJIILEI.js} +4 -3
  195. package/dist/{chunk-AKAXQ4RL.js.map → chunk-OLJIILEI.js.map} +1 -1
  196. package/dist/{chunk-S4WWBV4N.js → chunk-ONOKHFK3.js} +6 -5
  197. package/dist/chunk-ONOKHFK3.js.map +1 -0
  198. package/dist/{chunk-BSXUNRET.cjs → chunk-ONRLHP46.cjs} +3 -2
  199. package/dist/chunk-ONRLHP46.cjs.map +1 -0
  200. package/dist/{chunk-NYOZQE6P.js → chunk-OQL6XRT7.js} +6 -5
  201. package/dist/chunk-OQL6XRT7.js.map +1 -0
  202. package/dist/{chunk-WLWSQKWI.js → chunk-ORBYW3LT.js} +9 -8
  203. package/dist/{chunk-WLWSQKWI.js.map → chunk-ORBYW3LT.js.map} +1 -1
  204. package/dist/{chunk-5UGHDUMO.js → chunk-OXBBLHTC.js} +3 -2
  205. package/dist/chunk-OXBBLHTC.js.map +1 -0
  206. package/dist/{chunk-HN4W6TM6.cjs → chunk-PB7LE5VJ.cjs} +10 -9
  207. package/dist/chunk-PB7LE5VJ.cjs.map +1 -0
  208. package/dist/{chunk-N6C37HXD.js → chunk-PER4RJRF.js} +8 -7
  209. package/dist/chunk-PER4RJRF.js.map +1 -0
  210. package/dist/{chunk-PQXPYN23.js → chunk-PLQDNBCW.js} +8 -7
  211. package/dist/chunk-PLQDNBCW.js.map +1 -0
  212. package/dist/{chunk-DE7JLNSO.js → chunk-PTDBPRZD.js} +3 -2
  213. package/dist/chunk-PTDBPRZD.js.map +1 -0
  214. package/dist/{chunk-USEA7DB5.js → chunk-PZBY3JI7.js} +4 -4
  215. package/dist/{chunk-USEA7DB5.js.map → chunk-PZBY3JI7.js.map} +1 -1
  216. package/dist/{chunk-PZHRFASW.js → chunk-Q4UI2MP4.js} +3 -2
  217. package/dist/chunk-Q4UI2MP4.js.map +1 -0
  218. package/dist/{chunk-I2DXEPDF.js → chunk-Q4UMGL6Z.js} +7 -6
  219. package/dist/chunk-Q4UMGL6Z.js.map +1 -0
  220. package/dist/{chunk-BPAZTKMC.cjs → chunk-QEYGPANV.cjs} +11 -10
  221. package/dist/{chunk-BPAZTKMC.cjs.map → chunk-QEYGPANV.cjs.map} +1 -1
  222. package/dist/{chunk-FQSVY4QB.js → chunk-QMFPPGSZ.js} +4 -3
  223. package/dist/chunk-QMFPPGSZ.js.map +1 -0
  224. package/dist/{chunk-2AOR4EVA.cjs → chunk-QTR5LIUW.cjs} +9 -8
  225. package/dist/chunk-QTR5LIUW.cjs.map +1 -0
  226. package/dist/{chunk-LBOWHXOF.js → chunk-R3B46QJO.js} +5 -4
  227. package/dist/chunk-R3B46QJO.js.map +1 -0
  228. package/dist/{chunk-EEOUWM2F.cjs → chunk-RCRUFF6F.cjs} +5 -4
  229. package/dist/{chunk-EEOUWM2F.cjs.map → chunk-RCRUFF6F.cjs.map} +1 -1
  230. package/dist/{chunk-AO4RVSCG.js → chunk-RZ52RCTU.js} +6 -5
  231. package/dist/{chunk-AO4RVSCG.js.map → chunk-RZ52RCTU.js.map} +1 -1
  232. package/dist/{chunk-54B36CSW.js → chunk-S3UQUP3Q.js} +6 -5
  233. package/dist/{chunk-54B36CSW.js.map → chunk-S3UQUP3Q.js.map} +1 -1
  234. package/dist/{chunk-WOVSJHY6.cjs → chunk-S5FJ3FHH.cjs} +15 -14
  235. package/dist/chunk-S5FJ3FHH.cjs.map +1 -0
  236. package/dist/{chunk-TACO5IWI.cjs → chunk-SEELGNIC.cjs} +20 -19
  237. package/dist/chunk-SEELGNIC.cjs.map +1 -0
  238. package/dist/{chunk-JWMS6LHN.cjs → chunk-SG2ZHIDQ.cjs} +9 -8
  239. package/dist/{chunk-JWMS6LHN.cjs.map → chunk-SG2ZHIDQ.cjs.map} +1 -1
  240. package/dist/{chunk-WTCH3QCQ.js → chunk-SHJNMFEV.js} +3 -2
  241. package/dist/chunk-SHJNMFEV.js.map +1 -0
  242. package/dist/{chunk-DDMUYVSV.cjs → chunk-SQUWNP5G.cjs} +17 -16
  243. package/dist/{chunk-DDMUYVSV.cjs.map → chunk-SQUWNP5G.cjs.map} +1 -1
  244. package/dist/{chunk-E6AKSBSP.js → chunk-SXLGTRY7.js} +7 -6
  245. package/dist/{chunk-E6AKSBSP.js.map → chunk-SXLGTRY7.js.map} +1 -1
  246. package/dist/{chunk-PYN75QAG.js → chunk-TS3FMP6Z.js} +4 -3
  247. package/dist/chunk-TS3FMP6Z.js.map +1 -0
  248. package/dist/{chunk-QB2BSOM4.cjs → chunk-TT65RNBY.cjs} +3 -2
  249. package/dist/{chunk-QB2BSOM4.cjs.map → chunk-TT65RNBY.cjs.map} +1 -1
  250. package/dist/{chunk-GTZQT6MK.js → chunk-TUUYGOLQ.js} +6 -5
  251. package/dist/chunk-TUUYGOLQ.js.map +1 -0
  252. package/dist/{chunk-BNGYGCT2.js → chunk-UCSMB46R.js} +4 -3
  253. package/dist/{chunk-BNGYGCT2.js.map → chunk-UCSMB46R.js.map} +1 -1
  254. package/dist/{chunk-UUVI3TYW.js → chunk-USZQJXPE.js} +8 -7
  255. package/dist/chunk-USZQJXPE.js.map +1 -0
  256. package/dist/{chunk-CWZCBYVZ.cjs → chunk-UTUX5WM7.cjs} +14 -13
  257. package/dist/chunk-UTUX5WM7.cjs.map +1 -0
  258. package/dist/{chunk-BBLAZNCC.js → chunk-UUNVNLQN.js} +9 -8
  259. package/dist/chunk-UUNVNLQN.js.map +1 -0
  260. package/dist/{chunk-PXTTIAC4.cjs → chunk-VCEPRU6Y.cjs} +9 -8
  261. package/dist/chunk-VCEPRU6Y.cjs.map +1 -0
  262. package/dist/{chunk-63QPCV4F.cjs → chunk-VISYC2ZD.cjs} +38 -37
  263. package/dist/chunk-VISYC2ZD.cjs.map +1 -0
  264. package/dist/{chunk-DVCDAKPK.cjs → chunk-VSTO7LZJ.cjs} +7 -6
  265. package/dist/chunk-VSTO7LZJ.cjs.map +1 -0
  266. package/dist/{chunk-CPDWUT2H.cjs → chunk-W6UBDEMN.cjs} +3 -2
  267. package/dist/{chunk-CPDWUT2H.cjs.map → chunk-W6UBDEMN.cjs.map} +1 -1
  268. package/dist/{chunk-DXUFDJHA.cjs → chunk-WBVSDRWB.cjs} +11 -10
  269. package/dist/{chunk-DXUFDJHA.cjs.map → chunk-WBVSDRWB.cjs.map} +1 -1
  270. package/dist/{chunk-U7QJJ3NR.cjs → chunk-WPP3FZLW.cjs} +9 -8
  271. package/dist/{chunk-U7QJJ3NR.cjs.map → chunk-WPP3FZLW.cjs.map} +1 -1
  272. package/dist/{chunk-6R2UZNVE.js → chunk-WQU2M64E.js} +7 -6
  273. package/dist/chunk-WQU2M64E.js.map +1 -0
  274. package/dist/{chunk-YGESCFX2.js → chunk-WZGS7FX6.js} +4 -3
  275. package/dist/chunk-WZGS7FX6.js.map +1 -0
  276. package/dist/{chunk-MDQSVB2Y.js → chunk-XBQKPRWG.js} +3 -2
  277. package/dist/chunk-XBQKPRWG.js.map +1 -0
  278. package/dist/{chunk-MYSLJWCW.cjs → chunk-XOJ5HGIP.cjs} +11 -10
  279. package/dist/chunk-XOJ5HGIP.cjs.map +1 -0
  280. package/dist/{chunk-CVT7JW6C.cjs → chunk-XY5GXS62.cjs} +5 -4
  281. package/dist/{chunk-CVT7JW6C.cjs.map → chunk-XY5GXS62.cjs.map} +1 -1
  282. package/dist/{chunk-PKZSJX53.cjs → chunk-Y3TUHGI2.cjs} +3 -2
  283. package/dist/chunk-Y3TUHGI2.cjs.map +1 -0
  284. package/dist/{chunk-WG4NNC3P.js → chunk-YKUNVCXP.js} +6 -5
  285. package/dist/{chunk-WG4NNC3P.js.map → chunk-YKUNVCXP.js.map} +1 -1
  286. package/dist/{chunk-BKKLUIIU.js → chunk-YNGDGY2J.js} +3 -2
  287. package/dist/chunk-YNGDGY2J.js.map +1 -0
  288. package/dist/{chunk-2K4I2MB3.cjs → chunk-YPTBGFPT.cjs} +3 -2
  289. package/dist/{chunk-2K4I2MB3.cjs.map → chunk-YPTBGFPT.cjs.map} +1 -1
  290. package/dist/{chunk-LWB2CTX6.cjs → chunk-YSLDYF2F.cjs} +5 -4
  291. package/dist/{chunk-LWB2CTX6.cjs.map → chunk-YSLDYF2F.cjs.map} +1 -1
  292. package/dist/{chunk-MJHEPDDX.cjs → chunk-YV4AL52O.cjs} +21 -20
  293. package/dist/chunk-YV4AL52O.cjs.map +1 -0
  294. package/dist/{chunk-IREOTHD3.cjs → chunk-Z2KSHRDD.cjs} +6 -5
  295. package/dist/chunk-Z2KSHRDD.cjs.map +1 -0
  296. package/dist/{chunk-VPWNRWNO.cjs → chunk-Z5EY2GRO.cjs} +3 -2
  297. package/dist/chunk-Z5EY2GRO.cjs.map +1 -0
  298. package/dist/{chunk-TP6RGZ6A.js → chunk-ZEBWF24G.js} +14 -13
  299. package/dist/{chunk-TP6RGZ6A.js.map → chunk-ZEBWF24G.js.map} +1 -1
  300. package/dist/{chunk-NIKT7XSO.js → chunk-ZF522WPX.js} +7 -6
  301. package/dist/chunk-ZF522WPX.js.map +1 -0
  302. package/dist/{chunk-OX2FNKIV.cjs → chunk-ZKSEIA5Q.cjs} +11 -10
  303. package/dist/{chunk-OX2FNKIV.cjs.map → chunk-ZKSEIA5Q.cjs.map} +1 -1
  304. package/dist/{chunk-D3CHBU46.js → chunk-ZLJOIPTJ.js} +4 -3
  305. package/dist/{chunk-D3CHBU46.js.map → chunk-ZLJOIPTJ.js.map} +1 -1
  306. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  307. package/dist/components/Accordion/AccordionContext.d.ts.map +1 -1
  308. package/dist/components/Accordion/AccordionItem.d.ts.map +1 -1
  309. package/dist/components/Accordion/index.cjs +4 -4
  310. package/dist/components/Accordion/index.js +1 -1
  311. package/dist/components/Accordion/useAccordionDevWarning.d.ts.map +1 -1
  312. package/dist/components/Accordion/useCollapsible.d.ts.map +1 -1
  313. package/dist/components/Alert/Alert.d.ts.map +1 -1
  314. package/dist/components/Alert/index.cjs +10 -10
  315. package/dist/components/Alert/index.js +9 -9
  316. package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -1
  317. package/dist/components/AlertDialog/index.cjs +16 -16
  318. package/dist/components/AlertDialog/index.js +14 -14
  319. package/dist/components/AlertDialog/useAlertDialog.d.ts.map +1 -1
  320. package/dist/components/AppShell/AppShell.d.ts.map +1 -1
  321. package/dist/components/AppShell/AppShellMobileContext.d.ts.map +1 -1
  322. package/dist/components/AppShell/index.cjs +21 -21
  323. package/dist/components/AppShell/index.js +18 -18
  324. package/dist/components/AppShell/useSlotPresence.d.ts.map +1 -1
  325. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
  326. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
  327. package/dist/components/AutocompleteInput/index.cjs +17 -17
  328. package/dist/components/AutocompleteInput/index.js +13 -13
  329. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  330. package/dist/components/Avatar/AvatarSizeContext.d.ts.map +1 -1
  331. package/dist/components/Avatar/AvatarStatusDot.d.ts.map +1 -1
  332. package/dist/components/Avatar/index.cjs +4 -4
  333. package/dist/components/Avatar/index.js +1 -1
  334. package/dist/components/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  335. package/dist/components/AvatarGroup/AvatarGroupContext.d.ts.map +1 -1
  336. package/dist/components/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  337. package/dist/components/AvatarGroup/index.cjs +4 -4
  338. package/dist/components/AvatarGroup/index.js +2 -2
  339. package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  340. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  341. package/dist/components/Breadcrumbs/BreadcrumbsContext.d.ts.map +1 -1
  342. package/dist/components/Breadcrumbs/index.cjs +5 -5
  343. package/dist/components/Breadcrumbs/index.js +2 -2
  344. package/dist/components/Button/Button.d.ts.map +1 -1
  345. package/dist/components/Button/index.cjs +9 -9
  346. package/dist/components/Button/index.js +8 -8
  347. package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  348. package/dist/components/ButtonGroup/ButtonGroupContext.d.ts.map +1 -1
  349. package/dist/components/ButtonGroup/index.cjs +3 -3
  350. package/dist/components/ButtonGroup/index.js +2 -2
  351. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  352. package/dist/components/Calendar/index.cjs +10 -10
  353. package/dist/components/Calendar/index.js +9 -9
  354. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -1
  355. package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts.map +1 -1
  356. package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts.map +1 -1
  357. package/dist/components/CheckboxGroup/index.cjs +12 -12
  358. package/dist/components/CheckboxGroup/index.js +10 -10
  359. package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  360. package/dist/components/CheckboxInput/index.cjs +9 -9
  361. package/dist/components/CheckboxInput/index.js +8 -8
  362. package/dist/components/CodeBlock/index.cjs +11 -11
  363. package/dist/components/CodeBlock/index.js +10 -10
  364. package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -1
  365. package/dist/components/ContextMenu/index.cjs +15 -15
  366. package/dist/components/ContextMenu/index.js +13 -13
  367. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  368. package/dist/components/DateInput/index.cjs +13 -13
  369. package/dist/components/DateInput/index.js +12 -12
  370. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  371. package/dist/components/DateRangeInput/index.cjs +13 -13
  372. package/dist/components/DateRangeInput/index.js +12 -12
  373. package/dist/components/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  374. package/dist/components/DateTimeInput/index.cjs +15 -15
  375. package/dist/components/DateTimeInput/index.js +14 -14
  376. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  377. package/dist/components/Dialog/DialogContext.d.ts.map +1 -1
  378. package/dist/components/Dialog/index.cjs +8 -8
  379. package/dist/components/Dialog/index.js +4 -4
  380. package/dist/components/Dialog/useDialog.d.ts.map +1 -1
  381. package/dist/components/Divider/Divider.d.ts.map +1 -1
  382. package/dist/components/Divider/index.cjs +2 -2
  383. package/dist/components/Divider/index.js +1 -1
  384. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  385. package/dist/components/Drawer/index.cjs +5 -5
  386. package/dist/components/Drawer/index.js +3 -3
  387. package/dist/components/Drawer/useDrawer.d.ts.map +1 -1
  388. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  389. package/dist/components/DropdownMenu/DropdownMenuContext.d.ts.map +1 -1
  390. package/dist/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  391. package/dist/components/DropdownMenu/index.cjs +16 -16
  392. package/dist/components/DropdownMenu/index.js +12 -12
  393. package/dist/components/DropdownMenu/menuUtils.d.ts.map +1 -1
  394. package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
  395. package/dist/components/EmptyState/index.cjs +5 -5
  396. package/dist/components/EmptyState/index.js +4 -4
  397. package/dist/components/Field/index.cjs +6 -6
  398. package/dist/components/Field/index.js +4 -4
  399. package/dist/components/FileInput/FileInput.d.ts.map +1 -1
  400. package/dist/components/FileInput/index.cjs +11 -11
  401. package/dist/components/FileInput/index.js +10 -10
  402. package/dist/components/HoverCard/HoverCard.d.ts.map +1 -1
  403. package/dist/components/HoverCard/index.cjs +4 -4
  404. package/dist/components/HoverCard/index.js +2 -2
  405. package/dist/components/HoverCard/useHoverCard.d.ts.map +1 -1
  406. package/dist/components/InputGroup/InputGroup.d.ts.map +1 -1
  407. package/dist/components/InputGroup/InputGroupContext.d.ts.map +1 -1
  408. package/dist/components/InputGroup/index.cjs +9 -9
  409. package/dist/components/InputGroup/index.js +5 -5
  410. package/dist/components/Item/Item.d.ts.map +1 -1
  411. package/dist/components/Item/index.cjs +7 -7
  412. package/dist/components/Item/index.js +6 -6
  413. package/dist/components/Kbd/Kbd.d.ts.map +1 -1
  414. package/dist/components/Kbd/index.cjs +2 -2
  415. package/dist/components/Kbd/index.js +1 -1
  416. package/dist/components/Layout/Layout.d.ts.map +1 -1
  417. package/dist/components/Layout/LayoutContext.d.ts.map +1 -1
  418. package/dist/components/Layout/LayoutFooter.d.ts.map +1 -1
  419. package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
  420. package/dist/components/Layout/LayoutPanel.d.ts.map +1 -1
  421. package/dist/components/Layout/index.cjs +15 -15
  422. package/dist/components/Layout/index.js +10 -10
  423. package/dist/components/Lightbox/Lightbox.d.ts.map +1 -1
  424. package/dist/components/Lightbox/index.cjs +12 -12
  425. package/dist/components/Lightbox/index.js +10 -10
  426. package/dist/components/Lightbox/useLightbox.d.ts.map +1 -1
  427. package/dist/components/Link/Link.d.ts.map +1 -1
  428. package/dist/components/Link/LinkContext.d.ts.map +1 -1
  429. package/dist/components/Link/LinkProvider.d.ts.map +1 -1
  430. package/dist/components/Link/index.cjs +8 -8
  431. package/dist/components/Link/index.js +5 -5
  432. package/dist/components/Link/useLinkComponent.d.ts.map +1 -1
  433. package/dist/components/List/List.d.ts.map +1 -1
  434. package/dist/components/List/ListContext.d.ts.map +1 -1
  435. package/dist/components/List/ListItem.d.ts.map +1 -1
  436. package/dist/components/List/index.cjs +9 -9
  437. package/dist/components/List/index.js +7 -7
  438. package/dist/components/MetadataList/MetadataList.d.ts.map +1 -1
  439. package/dist/components/MetadataList/MetadataListContext.d.ts.map +1 -1
  440. package/dist/components/MetadataList/MetadataListItem.d.ts.map +1 -1
  441. package/dist/components/MetadataList/index.cjs +6 -6
  442. package/dist/components/MetadataList/index.js +4 -4
  443. package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
  444. package/dist/components/MultiSelect/index.cjs +13 -13
  445. package/dist/components/MultiSelect/index.js +12 -12
  446. package/dist/components/NumberInput/NumberInput.d.ts.map +1 -1
  447. package/dist/components/NumberInput/index.cjs +12 -12
  448. package/dist/components/NumberInput/index.js +11 -11
  449. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  450. package/dist/components/Pagination/index.cjs +10 -10
  451. package/dist/components/Pagination/index.js +9 -9
  452. package/dist/components/PasswordInput/PasswordInput.d.ts.map +1 -1
  453. package/dist/components/PasswordInput/index.cjs +13 -13
  454. package/dist/components/PasswordInput/index.js +12 -12
  455. package/dist/components/Popover/Popover.d.ts.map +1 -1
  456. package/dist/components/Popover/index.cjs +11 -11
  457. package/dist/components/Popover/index.js +9 -9
  458. package/dist/components/Popover/usePopover.d.ts.map +1 -1
  459. package/dist/components/Progress/Progress.d.ts.map +1 -1
  460. package/dist/components/Progress/index.cjs +2 -2
  461. package/dist/components/Progress/index.js +1 -1
  462. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  463. package/dist/components/RadioGroup/RadioGroupContext.d.ts.map +1 -1
  464. package/dist/components/RadioGroup/RadioGroupItem.d.ts.map +1 -1
  465. package/dist/components/RadioGroup/index.cjs +10 -10
  466. package/dist/components/RadioGroup/index.js +8 -8
  467. package/dist/components/Rating/Rating.d.ts.map +1 -1
  468. package/dist/components/Rating/index.cjs +2 -2
  469. package/dist/components/Rating/index.js +1 -1
  470. package/dist/components/Schedule/DayView.d.ts.map +1 -1
  471. package/dist/components/Schedule/ListView.d.ts.map +1 -1
  472. package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
  473. package/dist/components/Schedule/Schedule.d.ts.map +1 -1
  474. package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
  475. package/dist/components/Schedule/WeeklyView.d.ts.map +1 -1
  476. package/dist/components/Schedule/context.d.ts.map +1 -1
  477. package/dist/components/Schedule/index.cjs +34 -34
  478. package/dist/components/Schedule/index.js +19 -19
  479. package/dist/components/Schedule/plugins/EventMovePlugin.d.ts.map +1 -1
  480. package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts.map +1 -1
  481. package/dist/components/Schedule/plugins/EventResizePlugin.d.ts.map +1 -1
  482. package/dist/components/Schedule/plugins/PaginationPlugin.d.ts.map +1 -1
  483. package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts.map +1 -1
  484. package/dist/components/Schedule/plugins/ViewSelectorPlugin.d.ts.map +1 -1
  485. package/dist/components/Schedule/shared.d.ts.map +1 -1
  486. package/dist/components/Schedule/useCurrentTime.d.ts.map +1 -1
  487. package/dist/components/SearchFilterInput/SearchFilterInput.d.ts.map +1 -1
  488. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.d.ts.map +1 -1
  489. package/dist/components/SearchFilterInput/SearchFilterInputFilterEditor.d.ts.map +1 -1
  490. package/dist/components/SearchFilterInput/SearchFilterInputTag.d.ts.map +1 -1
  491. package/dist/components/SearchFilterInput/SearchFilterInputValueEditor.d.ts.map +1 -1
  492. package/dist/components/SearchFilterInput/index.cjs +32 -32
  493. package/dist/components/SearchFilterInput/index.js +24 -24
  494. package/dist/components/SearchFilterInput/internalConfig.d.ts.map +1 -1
  495. package/dist/components/SearchFilterInput/useSearchFilterInputConfig.d.ts.map +1 -1
  496. package/dist/components/SearchFilterInput/useSearchFilterInputSource.d.ts.map +1 -1
  497. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  498. package/dist/components/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
  499. package/dist/components/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  500. package/dist/components/SegmentedControl/index.cjs +3 -3
  501. package/dist/components/SegmentedControl/index.js +1 -1
  502. package/dist/components/Select/Select.d.ts.map +1 -1
  503. package/dist/components/Select/index.cjs +15 -15
  504. package/dist/components/Select/index.js +13 -13
  505. package/dist/components/SideNav/SideNav.d.ts.map +1 -1
  506. package/dist/components/SideNav/SideNavContext.d.ts.map +1 -1
  507. package/dist/components/SideNav/SideNavHeading.d.ts.map +1 -1
  508. package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
  509. package/dist/components/SideNav/SideNavSection.d.ts.map +1 -1
  510. package/dist/components/SideNav/index.cjs +19 -19
  511. package/dist/components/SideNav/index.js +13 -13
  512. package/dist/components/SideNav/internal/SideNavCollapseButton.d.ts.map +1 -1
  513. package/dist/components/Slider/Slider.d.ts.map +1 -1
  514. package/dist/components/Slider/index.cjs +6 -6
  515. package/dist/components/Slider/index.js +5 -5
  516. package/dist/components/Spinner/index.cjs +5 -5
  517. package/dist/components/Spinner/index.js +4 -4
  518. package/dist/components/SplitButton/SplitButton.d.ts.map +1 -1
  519. package/dist/components/SplitButton/index.cjs +15 -15
  520. package/dist/components/SplitButton/index.js +14 -14
  521. package/dist/components/Stepper/Stepper.d.ts.map +1 -1
  522. package/dist/components/Stepper/index.cjs +5 -5
  523. package/dist/components/Stepper/index.js +4 -4
  524. package/dist/components/Stepper/internal/Step.d.ts.map +1 -1
  525. package/dist/components/Switch/Switch.d.ts.map +1 -1
  526. package/dist/components/Switch/index.cjs +6 -6
  527. package/dist/components/Switch/index.js +5 -5
  528. package/dist/components/Table/Table.d.ts.map +1 -1
  529. package/dist/components/Table/TableCell.d.ts.map +1 -1
  530. package/dist/components/Table/TableContext.d.ts.map +1 -1
  531. package/dist/components/Table/TableHeaderCell.d.ts.map +1 -1
  532. package/dist/components/Table/TableRow.d.ts.map +1 -1
  533. package/dist/components/Table/index.cjs +54 -54
  534. package/dist/components/Table/index.js +28 -28
  535. package/dist/components/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  536. package/dist/components/Table/plugins/columnSettings/useTableColumnSettings.d.ts.map +1 -1
  537. package/dist/components/Table/plugins/columnSettings/useTableColumnSettingsState.d.ts.map +1 -1
  538. package/dist/components/Table/plugins/filtering/useTableFilterState.d.ts.map +1 -1
  539. package/dist/components/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
  540. package/dist/components/Table/plugins/pagination/useTablePagination.d.ts.map +1 -1
  541. package/dist/components/Table/plugins/selection/useTableSelection.d.ts.map +1 -1
  542. package/dist/components/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
  543. package/dist/components/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  544. package/dist/components/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
  545. package/dist/components/Table/useBaseTablePlugins.d.ts.map +1 -1
  546. package/dist/components/Tabs/Tab.d.ts.map +1 -1
  547. package/dist/components/Tabs/TabMenu.d.ts.map +1 -1
  548. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  549. package/dist/components/Tabs/TabsContext.d.ts.map +1 -1
  550. package/dist/components/Tabs/index.cjs +15 -15
  551. package/dist/components/Tabs/index.js +10 -10
  552. package/dist/components/Tag/Tag.d.ts.map +1 -1
  553. package/dist/components/Tag/index.cjs +7 -7
  554. package/dist/components/Tag/index.js +6 -6
  555. package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
  556. package/dist/components/TagsInput/index.cjs +15 -15
  557. package/dist/components/TagsInput/index.js +14 -14
  558. package/dist/components/Text/Heading.d.ts.map +1 -1
  559. package/dist/components/Text/Text.d.ts.map +1 -1
  560. package/dist/components/Text/index.cjs +5 -5
  561. package/dist/components/Text/index.js +3 -3
  562. package/dist/components/Text/useTruncation.d.ts.map +1 -1
  563. package/dist/components/TextArea/TextArea.d.ts.map +1 -1
  564. package/dist/components/TextArea/index.cjs +7 -7
  565. package/dist/components/TextArea/index.js +6 -6
  566. package/dist/components/TextInput/TextInput.d.ts.map +1 -1
  567. package/dist/components/TextInput/index.cjs +12 -12
  568. package/dist/components/TextInput/index.js +11 -11
  569. package/dist/components/Theme/Theme.d.ts.map +1 -1
  570. package/dist/components/Theme/index.cjs +2 -2
  571. package/dist/components/Theme/index.js +1 -1
  572. package/dist/components/Thumbnail/Thumbnail.d.ts.map +1 -1
  573. package/dist/components/Thumbnail/index.cjs +10 -10
  574. package/dist/components/Thumbnail/index.js +9 -9
  575. package/dist/components/TimeInput/TimeInput.d.ts.map +1 -1
  576. package/dist/components/TimeInput/index.cjs +11 -11
  577. package/dist/components/TimeInput/index.js +10 -10
  578. package/dist/components/Toast/Toast.d.ts.map +1 -1
  579. package/dist/components/Toast/ToastContext.d.ts.map +1 -1
  580. package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
  581. package/dist/components/Toast/index.cjs +12 -12
  582. package/dist/components/Toast/index.js +9 -9
  583. package/dist/components/Toast/useToast.d.ts.map +1 -1
  584. package/dist/components/ToggleButton/ToggleButton.d.ts.map +1 -1
  585. package/dist/components/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  586. package/dist/components/ToggleButton/index.cjs +7 -7
  587. package/dist/components/ToggleButton/index.js +5 -5
  588. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  589. package/dist/components/Tooltip/index.cjs +4 -4
  590. package/dist/components/Tooltip/index.js +2 -2
  591. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
  592. package/dist/components/TopNav/TopNav.d.ts.map +1 -1
  593. package/dist/components/TopNav/TopNavContext.d.ts.map +1 -1
  594. package/dist/components/TopNav/TopNavHeading.d.ts.map +1 -1
  595. package/dist/components/TopNav/TopNavItem.d.ts.map +1 -1
  596. package/dist/components/TopNav/index.cjs +18 -18
  597. package/dist/components/TopNav/index.js +13 -13
  598. package/dist/components/TreeView/TreeView.d.ts.map +1 -1
  599. package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
  600. package/dist/components/TreeView/index.cjs +3 -3
  601. package/dist/components/TreeView/index.js +2 -2
  602. package/dist/index.cjs +246 -246
  603. package/dist/index.js +76 -76
  604. package/dist/internal/ActionElement.d.ts.map +1 -1
  605. package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
  606. package/dist/internal/MobileNav/MobileNav.d.ts.map +1 -1
  607. package/dist/internal/MobileNav/MobileNavToggle.d.ts.map +1 -1
  608. package/dist/internal/OverflowList.d.ts.map +1 -1
  609. package/dist/internal/linkAccessibility.d.ts.map +1 -1
  610. package/dist/internal/useBackdropDismiss.d.ts.map +1 -1
  611. package/dist/internal/useConstant.d.ts.map +1 -1
  612. package/dist/internal/useFocusTrap.d.ts.map +1 -1
  613. package/dist/internal/useGridFocus.d.ts.map +1 -1
  614. package/dist/internal/useHoverLayer.d.ts.map +1 -1
  615. package/dist/internal/useLatest.d.ts.map +1 -1
  616. package/dist/internal/useLayer.d.ts.map +1 -1
  617. package/dist/internal/useListboxNavigation.d.ts.map +1 -1
  618. package/dist/internal/useMediaQuery.d.ts.map +1 -1
  619. package/dist/internal/useScrollLock.d.ts.map +1 -1
  620. package/dist/internal/useSelectListbox.d.ts.map +1 -1
  621. package/dist/internal/useShallowEqualMemo.d.ts.map +1 -1
  622. package/package.json +3 -2
  623. package/dist/chunk-2AOR4EVA.cjs.map +0 -1
  624. package/dist/chunk-2N3PIXZ5.cjs.map +0 -1
  625. package/dist/chunk-3NIDAKCF.cjs.map +0 -1
  626. package/dist/chunk-3PCXFOOS.js.map +0 -1
  627. package/dist/chunk-3PEK2Q54.cjs.map +0 -1
  628. package/dist/chunk-3W3ST5Y3.cjs.map +0 -1
  629. package/dist/chunk-4MIIXRZN.cjs.map +0 -1
  630. package/dist/chunk-56PY2CD7.js.map +0 -1
  631. package/dist/chunk-5FQKELP6.js.map +0 -1
  632. package/dist/chunk-5HPXPF3F.js.map +0 -1
  633. package/dist/chunk-5K3C3INR.cjs.map +0 -1
  634. package/dist/chunk-5RFHYDQY.js.map +0 -1
  635. package/dist/chunk-5UGHDUMO.js.map +0 -1
  636. package/dist/chunk-63QPCV4F.cjs.map +0 -1
  637. package/dist/chunk-6OWEKKOC.js.map +0 -1
  638. package/dist/chunk-6R2UZNVE.js.map +0 -1
  639. package/dist/chunk-6SFMORQF.cjs.map +0 -1
  640. package/dist/chunk-6SKIBUCY.js.map +0 -1
  641. package/dist/chunk-6SMVH3ON.cjs.map +0 -1
  642. package/dist/chunk-6ZPHID26.cjs.map +0 -1
  643. package/dist/chunk-AC4E3WQA.cjs.map +0 -1
  644. package/dist/chunk-ACGPBJIS.js.map +0 -1
  645. package/dist/chunk-ARUOMLOJ.cjs.map +0 -1
  646. package/dist/chunk-BBLAZNCC.js.map +0 -1
  647. package/dist/chunk-BKKLUIIU.js.map +0 -1
  648. package/dist/chunk-BSXUNRET.cjs.map +0 -1
  649. package/dist/chunk-BYV7NXC5.cjs.map +0 -1
  650. package/dist/chunk-CQYBC3RJ.cjs.map +0 -1
  651. package/dist/chunk-CWZCBYVZ.cjs.map +0 -1
  652. package/dist/chunk-DE7JLNSO.js.map +0 -1
  653. package/dist/chunk-DVCDAKPK.cjs.map +0 -1
  654. package/dist/chunk-EBV3EX3J.js.map +0 -1
  655. package/dist/chunk-ESWYWWY2.js.map +0 -1
  656. package/dist/chunk-EZFQCREN.cjs.map +0 -1
  657. package/dist/chunk-FQSVY4QB.js.map +0 -1
  658. package/dist/chunk-FTNEAX24.js.map +0 -1
  659. package/dist/chunk-GJZAGTPV.cjs.map +0 -1
  660. package/dist/chunk-GTZQT6MK.js.map +0 -1
  661. package/dist/chunk-H7LOOHWU.cjs.map +0 -1
  662. package/dist/chunk-HC57X3U4.js.map +0 -1
  663. package/dist/chunk-HENIVDYQ.cjs.map +0 -1
  664. package/dist/chunk-HN4W6TM6.cjs.map +0 -1
  665. package/dist/chunk-I2DXEPDF.js.map +0 -1
  666. package/dist/chunk-IREOTHD3.cjs.map +0 -1
  667. package/dist/chunk-J242UTPO.cjs.map +0 -1
  668. package/dist/chunk-JIF5TZHC.cjs.map +0 -1
  669. package/dist/chunk-JMVYWHJ7.js.map +0 -1
  670. package/dist/chunk-KEPCKSDE.js.map +0 -1
  671. package/dist/chunk-KLCEDPJ4.cjs.map +0 -1
  672. package/dist/chunk-KWZMXX4F.js.map +0 -1
  673. package/dist/chunk-L747HIHG.js.map +0 -1
  674. package/dist/chunk-LBOWHXOF.js.map +0 -1
  675. package/dist/chunk-MDQSVB2Y.js.map +0 -1
  676. package/dist/chunk-MJHEPDDX.cjs.map +0 -1
  677. package/dist/chunk-MYSLJWCW.cjs.map +0 -1
  678. package/dist/chunk-N6C37HXD.js.map +0 -1
  679. package/dist/chunk-NGNVNRAZ.cjs.map +0 -1
  680. package/dist/chunk-NIKT7XSO.js.map +0 -1
  681. package/dist/chunk-NYOZQE6P.js.map +0 -1
  682. package/dist/chunk-OPBELSKN.js.map +0 -1
  683. package/dist/chunk-OUUG4RHO.js.map +0 -1
  684. package/dist/chunk-PG4CZRTU.js.map +0 -1
  685. package/dist/chunk-PGBYMBGH.js.map +0 -1
  686. package/dist/chunk-PKZSJX53.cjs.map +0 -1
  687. package/dist/chunk-PQXPYN23.js.map +0 -1
  688. package/dist/chunk-PXTTIAC4.cjs.map +0 -1
  689. package/dist/chunk-PYN75QAG.js.map +0 -1
  690. package/dist/chunk-PZHRFASW.js.map +0 -1
  691. package/dist/chunk-Q6YOSQAM.js.map +0 -1
  692. package/dist/chunk-QQCEGAUQ.cjs.map +0 -1
  693. package/dist/chunk-RLIBY7XB.cjs.map +0 -1
  694. package/dist/chunk-S4WWBV4N.js.map +0 -1
  695. package/dist/chunk-TACO5IWI.cjs.map +0 -1
  696. package/dist/chunk-UJDHRILS.cjs.map +0 -1
  697. package/dist/chunk-UUVI3TYW.js.map +0 -1
  698. package/dist/chunk-VK7DXUGH.cjs.map +0 -1
  699. package/dist/chunk-VPWNRWNO.cjs.map +0 -1
  700. package/dist/chunk-WOVSJHY6.cjs.map +0 -1
  701. package/dist/chunk-WTCH3QCQ.js.map +0 -1
  702. package/dist/chunk-XUCLNECV.js.map +0 -1
  703. package/dist/chunk-YGESCFX2.js.map +0 -1
  704. package/dist/chunk-ZDZ7FW6V.cjs.map +0 -1
  705. package/dist/chunk-ZW2ZOEYM.cjs.map +0 -1
@@ -1,6 +1,7 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
- var chunkVK7DXUGH_cjs = require('./chunk-VK7DXUGH.cjs');
4
+ var chunkE5TRE2YG_cjs = require('./chunk-E5TRE2YG.cjs');
4
5
  var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
5
6
  var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
6
7
  var react = require('react');
@@ -42,7 +43,7 @@ function useTooltip(options = {}) {
42
43
  onShow,
43
44
  onHide
44
45
  } = options;
45
- const hoverLayer = chunkVK7DXUGH_cjs.useHoverLayer({
46
+ const hoverLayer = chunkE5TRE2YG_cjs.useHoverLayer({
46
47
  delay,
47
48
  focusTrigger,
48
49
  hideDelay,
@@ -124,7 +125,7 @@ function Tooltip({
124
125
  isEnabled
125
126
  });
126
127
  return /* @__PURE__ */ jsxRuntime.jsx(
127
- chunkVK7DXUGH_cjs.HoverLayerTrigger,
128
+ chunkE5TRE2YG_cjs.HoverLayerTrigger,
128
129
  {
129
130
  className,
130
131
  "data-testid": dataTestId,
@@ -143,5 +144,5 @@ Tooltip.displayName = "Tooltip";
143
144
 
144
145
  exports.Tooltip = Tooltip;
145
146
  exports.useTooltip = useTooltip;
146
- //# sourceMappingURL=chunk-GJZAGTPV.cjs.map
147
- //# sourceMappingURL=chunk-GJZAGTPV.cjs.map
147
+ //# sourceMappingURL=chunk-7KUEWO4T.cjs.map
148
+ //# sourceMappingURL=chunk-7KUEWO4T.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Tooltip/useTooltip.tsx","../src/components/Tooltip/Tooltip.tsx"],"names":["css","useHoverLayer","useEffect","useCallback","jsx","cx","useMemo","HoverLayerTrigger"],"mappings":"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","file":"chunk-7KUEWO4T.cjs","sourcesContent":["'use client';\n\nimport {\n useCallback,\n useEffect,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type RefCallback,\n} from 'react';\nimport {cx} from 'internal/cx';\nimport {\n useHoverLayer,\n type HoverLayerFocusTrigger,\n} from 'internal/useHoverLayer';\nimport type {\n ContextRenderProps,\n LayerAlignment,\n LayerPlacement,\n} from 'internal/useLayer';\nimport {css} from 'styled-system/css';\n\nexport type TooltipFocusTrigger = HoverLayerFocusTrigger;\n\nexport interface UseTooltipOptions {\n alignment?: LayerAlignment;\n delay?: number;\n focusTrigger?: TooltipFocusTrigger;\n hideDelay?: number;\n isEnabled?: boolean;\n onHide?: () => void;\n onShow?: () => void;\n placement?: LayerPlacement;\n}\n\nexport interface TooltipRenderProps extends ContextRenderProps {\n contentStyle?: CSSProperties;\n}\n\nexport interface UseTooltipReturn {\n /**\n * ID of the anchor element, used for CSS anchor positioning.\n */\n anchorId: string;\n /**\n * ID of the tooltip element. Pass to `aria-describedby` on the trigger.\n */\n describedBy: string;\n /**\n * Attaches hover/focus/keyboard listeners only.\n * Use when another element handles positioning (e.g., a wrapper provides the anchor).\n */\n interactionRef: RefCallback<HTMLElement>;\n /**\n * Attaches CSS anchor positioning only.\n * Use when another element handles interaction listeners.\n */\n positionRef: RefCallback<HTMLElement>;\n /**\n * Combined ref that attaches both positioning and interaction.\n * Use this for the common case where one element is both the anchor and trigger.\n * Do not combine with `interactionRef` or `positionRef` — use one or the other.\n */\n ref: RefCallback<HTMLElement>;\n /**\n * Renders the tooltip content into the layer.\n */\n renderTooltip: (children: ReactNode, props?: TooltipRenderProps) => ReactNode;\n}\n\nconst styles = {\n tooltipContainer: css({\n bg: 'fg',\n color: 'bg',\n borderRadius: 'md',\n fontFamily: 'body',\n fontSize: 'sm',\n lineHeight: 'normal',\n boxShadow: 'md',\n '--silver-text-color': 'currentColor',\n '--silver-text-color-muted':\n 'color-mix(in srgb, currentColor 70%, transparent)',\n }),\n tooltipContent: css({\n px: '2',\n py: '1',\n maxW: 'xs',\n wordBreak: 'break-word',\n }),\n marginByPlacement: {\n above: css({mb: '1'}),\n below: css({mt: '1'}),\n start: css({mr: '1'}),\n end: css({ml: '1'}),\n },\n} as const;\n\nexport function useTooltip(options: UseTooltipOptions = {}): UseTooltipReturn {\n const {\n placement = 'above',\n alignment = 'center',\n delay = 200,\n hideDelay = 0,\n focusTrigger = 'auto',\n isEnabled = true,\n onShow,\n onHide,\n } = options;\n\n const hoverLayer = useHoverLayer({\n delay,\n focusTrigger,\n hideDelay,\n isEnabled,\n onFocusIn: event => {\n const target = event.target as HTMLElement;\n return target.matches(':focus-visible');\n },\n onHide,\n onShow,\n });\n\n const {interactionRef, layer, ref} = hoverLayer;\n\n useEffect(() => {\n if (!layer.isOpen) {\n return;\n }\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n layer.hide();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [layer, layer.isOpen]);\n\n const renderTooltip = useCallback(\n (children: ReactNode, props?: TooltipRenderProps): ReactNode => {\n const renderPlacement = props?.placement ?? placement;\n return layer.render(\n <div className={styles.tooltipContent} style={props?.contentStyle}>\n {children}\n </div>,\n {\n placement: renderPlacement,\n alignment: props?.alignment ?? alignment,\n className: cx(\n styles.tooltipContainer,\n styles.marginByPlacement[renderPlacement],\n props?.className,\n ),\n role: 'tooltip',\n style: props?.style,\n },\n );\n },\n [alignment, layer, placement],\n );\n\n return useMemo(\n () => ({\n ref,\n positionRef: layer.ref,\n interactionRef,\n anchorId: layer.anchorId,\n describedBy: layer.id,\n renderTooltip,\n }),\n [ref, layer.ref, interactionRef, layer.anchorId, layer.id, renderTooltip],\n );\n}\n","'use client';\n\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {\n useTooltip,\n type TooltipFocusTrigger,\n} from 'components/Tooltip/useTooltip';\nimport {HoverLayerTrigger} from 'internal/HoverLayerTrigger';\nimport type {LayerAlignment, LayerPlacement} from 'internal/useLayer';\n\nexport type {TooltipFocusTrigger} from 'components/Tooltip/useTooltip';\n\nexport interface TooltipProps {\n /**\n * Cross-axis alignment of the tooltip relative to the anchor.\n * @default 'center'\n */\n alignment?: LayerAlignment;\n /**\n * Element(s) that the tooltip is anchored to.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the wrapper.\n */\n className?: string;\n /**\n * Content rendered inside the tooltip popup.\n */\n content: ReactNode;\n /**\n * Inline styles applied to the tooltip content area.\n */\n contentStyle?: CSSProperties;\n /**\n * Test ID applied to the wrapper.\n */\n 'data-testid'?: string;\n /**\n * Delay in milliseconds before the tooltip appears.\n * @default 200\n */\n delay?: number;\n /**\n * How focus interactions trigger the tooltip.\n * @default 'auto'\n */\n focusTrigger?: TooltipFocusTrigger;\n /**\n * Delay in milliseconds before the tooltip hides after leaving.\n * @default 0\n */\n hideDelay?: number;\n /**\n * Dashed underline display for tooltip triggers.\n * @default 'auto'\n */\n hoverIndication?: 'always' | 'auto' | 'never';\n /**\n * Whether the tooltip can be shown.\n * @default true\n */\n isEnabled?: boolean;\n /**\n * Preferred placement of the tooltip relative to the anchor.\n * @default 'above'\n */\n placement?: LayerPlacement;\n /**\n * Ref forwarded to the wrapper element.\n */\n ref?: Ref<HTMLDivElement | HTMLSpanElement>;\n /**\n * Inline styles applied to the wrapper.\n */\n style?: CSSProperties;\n}\n\n/**\n * Displays contextual information in a popup anchored to a trigger element.\n *\n * For attaching a tooltip to an external ref (without wrapping children),\n * use the `useTooltip` hook directly.\n */\nexport function Tooltip({\n children,\n content,\n contentStyle,\n placement = 'above',\n alignment = 'center',\n delay = 200,\n hideDelay = 0,\n focusTrigger = 'auto',\n isEnabled = true,\n hoverIndication = 'auto',\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: TooltipProps): React.JSX.Element {\n const tooltip = useTooltip({\n placement,\n alignment,\n delay,\n hideDelay,\n focusTrigger,\n isEnabled,\n });\n\n return (\n <HoverLayerTrigger\n className={className}\n data-testid={dataTestId}\n describedBy={tooltip.describedBy}\n hoverIndication={hoverIndication}\n layer={tooltip.renderTooltip(content, {contentStyle})}\n nonTextWrapperElement=\"div\"\n style={style}\n triggerRef={tooltip.ref}\n wrapperRef={ref}>\n {children}\n </HoverLayerTrigger>\n );\n}\n\nTooltip.displayName = 'Tooltip';\n"]}
@@ -1,4 +1,4 @@
1
- import { Text } from './chunk-5GSRIOXE.js';
1
+ import { Text } from './chunk-KPAOAYDY.js';
2
2
  import { sva } from './chunk-IAVZKGZS.js';
3
3
  import { cx } from './chunk-PPNETWIP.js';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -103,5 +103,5 @@ function Spinner({
103
103
  Spinner.displayName = "Spinner";
104
104
 
105
105
  export { Spinner };
106
- //# sourceMappingURL=chunk-X2P5SPGB.js.map
107
- //# sourceMappingURL=chunk-X2P5SPGB.js.map
106
+ //# sourceMappingURL=chunk-7SGBGPZW.js.map
107
+ //# sourceMappingURL=chunk-7SGBGPZW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Spinner/Spinner.recipe.ts","../src/components/Spinner/Spinner.tsx"],"names":[],"mappings":"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","file":"chunk-X2P5SPGB.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const spinnerRecipe = sva({\n slots: ['root', 'visual'],\n base: {\n root: {\n '--spinner-size': 'var(--silver-sizes-icon-md)',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n verticalAlign: 'middle',\n color: 'primary',\n w: 'var(--spinner-size)',\n h: 'var(--spinner-size)',\n },\n visual: {\n display: 'block',\n w: 'var(--spinner-size)',\n h: 'var(--spinner-size)',\n flexShrink: 0,\n aspectRatio: 'square',\n borderRadius: 'full',\n borderWidth: 'emphasized',\n borderStyle: 'solid',\n borderColor: 'currentColor',\n borderTopColor: 'transparent',\n animation: 'spin 0.8s linear infinite',\n '@media (prefers-reduced-motion: reduce)': {\n animation: 'none',\n },\n },\n },\n variants: {\n size: {\n sm: {\n root: {'--spinner-size': 'var(--silver-sizes-icon-sm)'},\n },\n md: {\n root: {'--spinner-size': 'var(--silver-sizes-icon-md)'},\n },\n lg: {\n root: {'--spinner-size': 'var(--silver-sizes-icon-lg)'},\n },\n xl: {\n root: {'--spinner-size': '2.25rem'},\n },\n },\n variant: {\n default: {root: {color: 'primary'}},\n onMedia: {root: {color: 'fg.onPrimary'}},\n },\n hasLabel: {\n true: {\n root: {\n flexDirection: 'column',\n gap: '2',\n w: 'auto',\n h: 'auto',\n },\n },\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n hasLabel: false,\n },\n});\n\nexport type SpinnerVariants = RecipeVariantProps<typeof spinnerRecipe>;\n","import type {CSSProperties, Ref} from 'react';\nimport {spinnerRecipe} from 'components/Spinner/Spinner.recipe';\nimport type {\n SpinnerSize,\n SpinnerVariant,\n} from 'components/Spinner/Spinner.types';\nimport {Text} from 'components/Text';\nimport {cx} from 'internal/cx';\n\nexport interface SpinnerProps {\n /**\n * Accessible label for the loading status. Defaults to a string label when\n * provided, otherwise \"Loading\".\n */\n 'aria-label'?: string;\n /**\n * Optionally adjust rendering by setting the className.\n */\n className?: string;\n /**\n * Test id applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Optional visible label shown below the spinner.\n */\n label?: string;\n /**\n * Ref forwarded to the root span element.\n */\n ref?: Ref<HTMLSpanElement>;\n /**\n * Visual size of the spinner. Matches Button size names. Default is `md`.\n */\n size?: SpinnerSize;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Visual style variant for the spinner. Default is `default`.\n */\n variant?: SpinnerVariant;\n}\n\n/**\n * A compact loading indicator for pending or indeterminate work.\n *\n * Spinner renders with `role=\"status\"` and an accessible name so assistive\n * technologies can announce loading state without exposing the decorative visual.\n */\nexport function Spinner({\n size,\n variant,\n label,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n 'aria-label': ariaLabelFromProps,\n}: SpinnerProps): React.JSX.Element {\n const hasLabel = typeof label === 'string' && label !== '';\n const ariaLabel =\n ariaLabelFromProps != null && ariaLabelFromProps !== ''\n ? ariaLabelFromProps\n : hasLabel\n ? label\n : 'Loading';\n const labelColor = variant === 'onMedia' ? 'inherit' : undefined;\n const classes = spinnerRecipe({size, variant, hasLabel});\n\n return (\n <span\n aria-label={ariaLabel}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"status\"\n style={style}>\n <span aria-hidden=\"true\" className={classes.visual} />\n {hasLabel ? (\n <Text as=\"span\" color={labelColor} type=\"label\">\n {label}\n </Text>\n ) : null}\n </span>\n );\n}\n\nSpinner.displayName = 'Spinner';\n"]}
1
+ {"version":3,"sources":["../src/components/Spinner/Spinner.recipe.ts","../src/components/Spinner/Spinner.tsx"],"names":[],"mappings":"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","file":"chunk-7SGBGPZW.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const spinnerRecipe = sva({\n slots: ['root', 'visual'],\n base: {\n root: {\n '--spinner-size': 'var(--silver-sizes-icon-md)',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n verticalAlign: 'middle',\n color: 'primary',\n w: 'var(--spinner-size)',\n h: 'var(--spinner-size)',\n },\n visual: {\n display: 'block',\n w: 'var(--spinner-size)',\n h: 'var(--spinner-size)',\n flexShrink: 0,\n aspectRatio: 'square',\n borderRadius: 'full',\n borderWidth: 'emphasized',\n borderStyle: 'solid',\n borderColor: 'currentColor',\n borderTopColor: 'transparent',\n animation: 'spin 0.8s linear infinite',\n '@media (prefers-reduced-motion: reduce)': {\n animation: 'none',\n },\n },\n },\n variants: {\n size: {\n sm: {\n root: {'--spinner-size': 'var(--silver-sizes-icon-sm)'},\n },\n md: {\n root: {'--spinner-size': 'var(--silver-sizes-icon-md)'},\n },\n lg: {\n root: {'--spinner-size': 'var(--silver-sizes-icon-lg)'},\n },\n xl: {\n root: {'--spinner-size': '2.25rem'},\n },\n },\n variant: {\n default: {root: {color: 'primary'}},\n onMedia: {root: {color: 'fg.onPrimary'}},\n },\n hasLabel: {\n true: {\n root: {\n flexDirection: 'column',\n gap: '2',\n w: 'auto',\n h: 'auto',\n },\n },\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n hasLabel: false,\n },\n});\n\nexport type SpinnerVariants = RecipeVariantProps<typeof spinnerRecipe>;\n","import type {CSSProperties, Ref} from 'react';\nimport {spinnerRecipe} from 'components/Spinner/Spinner.recipe';\nimport type {\n SpinnerSize,\n SpinnerVariant,\n} from 'components/Spinner/Spinner.types';\nimport {Text} from 'components/Text';\nimport {cx} from 'internal/cx';\n\nexport interface SpinnerProps {\n /**\n * Accessible label for the loading status. Defaults to a string label when\n * provided, otherwise \"Loading\".\n */\n 'aria-label'?: string;\n /**\n * Optionally adjust rendering by setting the className.\n */\n className?: string;\n /**\n * Test id applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Optional visible label shown below the spinner.\n */\n label?: string;\n /**\n * Ref forwarded to the root span element.\n */\n ref?: Ref<HTMLSpanElement>;\n /**\n * Visual size of the spinner. Matches Button size names. Default is `md`.\n */\n size?: SpinnerSize;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Visual style variant for the spinner. Default is `default`.\n */\n variant?: SpinnerVariant;\n}\n\n/**\n * A compact loading indicator for pending or indeterminate work.\n *\n * Spinner renders with `role=\"status\"` and an accessible name so assistive\n * technologies can announce loading state without exposing the decorative visual.\n */\nexport function Spinner({\n size,\n variant,\n label,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n 'aria-label': ariaLabelFromProps,\n}: SpinnerProps): React.JSX.Element {\n const hasLabel = typeof label === 'string' && label !== '';\n const ariaLabel =\n ariaLabelFromProps != null && ariaLabelFromProps !== ''\n ? ariaLabelFromProps\n : hasLabel\n ? label\n : 'Loading';\n const labelColor = variant === 'onMedia' ? 'inherit' : undefined;\n const classes = spinnerRecipe({size, variant, hasLabel});\n\n return (\n <span\n aria-label={ariaLabel}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"status\"\n style={style}>\n <span aria-hidden=\"true\" className={classes.visual} />\n {hasLabel ? (\n <Text as=\"span\" color={labelColor} type=\"label\">\n {label}\n </Text>\n ) : null}\n </span>\n );\n}\n\nSpinner.displayName = 'Spinner';\n"]}
@@ -1,6 +1,7 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
- var chunkCKDB7QNT_cjs = require('./chunk-CKDB7QNT.cjs');
4
+ var chunkEPQKIFGY_cjs = require('./chunk-EPQKIFGY.cjs');
4
5
  var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
5
6
  var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
6
7
  var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
@@ -97,8 +98,8 @@ function EmptyState({
97
98
  children: [
98
99
  chunkQAO6QMNQ_cjs.isReactNode(illustration) ? /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: classes.illustration, children: illustration }) : null,
99
100
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.text, children: [
100
- /* @__PURE__ */ jsxRuntime.jsx(chunkCKDB7QNT_cjs.Heading, { id: headingId, level: headingLevel, children: title }),
101
- description != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkCKDB7QNT_cjs.Text, { as: "p", color: "secondary", children: description }) : null
101
+ /* @__PURE__ */ jsxRuntime.jsx(chunkEPQKIFGY_cjs.Heading, { id: headingId, level: headingLevel, children: title }),
102
+ description != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkEPQKIFGY_cjs.Text, { as: "p", color: "secondary", children: description }) : null
102
103
  ] }),
103
104
  chunkQAO6QMNQ_cjs.isReactNode(actions) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.actions, children: actions }) : null
104
105
  ]
@@ -108,5 +109,5 @@ function EmptyState({
108
109
  EmptyState.displayName = "EmptyState";
109
110
 
110
111
  exports.EmptyState = EmptyState;
111
- //# sourceMappingURL=chunk-UNS7OCEA.cjs.map
112
- //# sourceMappingURL=chunk-UNS7OCEA.cjs.map
112
+ //# sourceMappingURL=chunk-7SUCVCOC.cjs.map
113
+ //# sourceMappingURL=chunk-7SUCVCOC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/EmptyState/EmptyState.recipe.ts","../src/components/EmptyState/EmptyState.tsx"],"names":["sva","useId","jsxs","cx","isReactNode","jsx","Heading","Text"],"mappings":"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","file":"chunk-UNS7OCEA.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const emptyStateRecipe = sva({\n slots: ['root', 'illustration', 'text', 'actions'],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n gap: '4',\n w: 'full',\n px: '6',\n py: '8',\n },\n illustration: {\n display: 'inline-flex',\n color: 'fg.muted',\n w: '16',\n h: '16',\n '& > svg': {\n w: 'full',\n h: 'full',\n },\n },\n text: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '1',\n maxW: '96',\n },\n actions: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexWrap: 'wrap',\n gap: '2',\n mt: '1',\n },\n },\n variants: {\n isCompact: {\n true: {\n root: {\n gap: '2',\n px: '4',\n py: '4',\n },\n illustration: {\n w: '12',\n h: '12',\n },\n actions: {\n mt: '0',\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isCompact: false,\n },\n});\n\nexport type EmptyStateVariants = RecipeVariantProps<typeof emptyStateRecipe>;\n","import {useId, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {emptyStateRecipe} from 'components/EmptyState/EmptyState.recipe';\nimport {Heading, type HeadingLevel, Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface EmptyStateProps {\n /**\n * Action controls rendered below the text.\n */\n actions?: 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 * Supporting text.\n */\n description?: string;\n /**\n * Semantic heading level for the title.\n * @default 3\n */\n headingLevel?: HeadingLevel;\n /**\n * Decorative illustration or large icon rendered above the title.\n */\n illustration?: ReactNode;\n /**\n * Whether to use tighter spacing for constrained areas.\n * @default false\n */\n isCompact?: boolean;\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 * Primary empty-state message.\n */\n title: string;\n}\n\n/**\n * A placeholder for an empty data or content area.\n */\nexport function EmptyState({\n actions,\n className,\n 'data-testid': dataTestId,\n description,\n headingLevel = 3,\n illustration,\n isCompact = false,\n ref,\n style,\n title,\n}: EmptyStateProps): React.JSX.Element {\n const headingId = useId();\n const classes = emptyStateRecipe({isCompact});\n\n return (\n <div\n aria-labelledby={headingId}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"region\"\n style={style}>\n {isReactNode(illustration) ? (\n <div aria-hidden=\"true\" className={classes.illustration}>\n {illustration}\n </div>\n ) : null}\n <div className={classes.text}>\n <Heading id={headingId} level={headingLevel}>\n {title}\n </Heading>\n {description != null ? (\n <Text as=\"p\" color=\"secondary\">\n {description}\n </Text>\n ) : null}\n </div>\n {isReactNode(actions) ? (\n <div className={classes.actions}>{actions}</div>\n ) : null}\n </div>\n );\n}\n\nEmptyState.displayName = 'EmptyState';\n"]}
1
+ {"version":3,"sources":["../src/components/EmptyState/EmptyState.recipe.ts","../src/components/EmptyState/EmptyState.tsx"],"names":["sva","useId","jsxs","cx","isReactNode","jsx","Heading","Text"],"mappings":"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","file":"chunk-7SUCVCOC.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const emptyStateRecipe = sva({\n slots: ['root', 'illustration', 'text', 'actions'],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n gap: '4',\n w: 'full',\n px: '6',\n py: '8',\n },\n illustration: {\n display: 'inline-flex',\n color: 'fg.muted',\n w: '16',\n h: '16',\n '& > svg': {\n w: 'full',\n h: 'full',\n },\n },\n text: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '1',\n maxW: '96',\n },\n actions: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexWrap: 'wrap',\n gap: '2',\n mt: '1',\n },\n },\n variants: {\n isCompact: {\n true: {\n root: {\n gap: '2',\n px: '4',\n py: '4',\n },\n illustration: {\n w: '12',\n h: '12',\n },\n actions: {\n mt: '0',\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isCompact: false,\n },\n});\n\nexport type EmptyStateVariants = RecipeVariantProps<typeof emptyStateRecipe>;\n","'use client';\n\nimport {useId, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {emptyStateRecipe} from 'components/EmptyState/EmptyState.recipe';\nimport {Heading, type HeadingLevel, Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface EmptyStateProps {\n /**\n * Action controls rendered below the text.\n */\n actions?: 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 * Supporting text.\n */\n description?: string;\n /**\n * Semantic heading level for the title.\n * @default 3\n */\n headingLevel?: HeadingLevel;\n /**\n * Decorative illustration or large icon rendered above the title.\n */\n illustration?: ReactNode;\n /**\n * Whether to use tighter spacing for constrained areas.\n * @default false\n */\n isCompact?: boolean;\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 * Primary empty-state message.\n */\n title: string;\n}\n\n/**\n * A placeholder for an empty data or content area.\n */\nexport function EmptyState({\n actions,\n className,\n 'data-testid': dataTestId,\n description,\n headingLevel = 3,\n illustration,\n isCompact = false,\n ref,\n style,\n title,\n}: EmptyStateProps): React.JSX.Element {\n const headingId = useId();\n const classes = emptyStateRecipe({isCompact});\n\n return (\n <div\n aria-labelledby={headingId}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"region\"\n style={style}>\n {isReactNode(illustration) ? (\n <div aria-hidden=\"true\" className={classes.illustration}>\n {illustration}\n </div>\n ) : null}\n <div className={classes.text}>\n <Heading id={headingId} level={headingLevel}>\n {title}\n </Heading>\n {description != null ? (\n <Text as=\"p\" color=\"secondary\">\n {description}\n </Text>\n ) : null}\n </div>\n {isReactNode(actions) ? (\n <div className={classes.actions}>{actions}</div>\n ) : null}\n </div>\n );\n}\n\nEmptyState.displayName = 'EmptyState';\n"]}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { VisuallyHidden } from './chunk-V2V5TTTL.js';
2
3
  import { Icon } from './chunk-IUW777WZ.js';
3
4
  import { sva } from './chunk-IAVZKGZS.js';
@@ -195,5 +196,5 @@ function Rating({
195
196
  Rating.displayName = "Rating";
196
197
 
197
198
  export { Rating };
198
- //# sourceMappingURL=chunk-HPNY32G6.js.map
199
- //# sourceMappingURL=chunk-HPNY32G6.js.map
199
+ //# sourceMappingURL=chunk-7TYZLVLZ.js.map
200
+ //# sourceMappingURL=chunk-7TYZLVLZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Rating/Rating.recipe.ts","../src/components/Rating/Rating.tsx"],"names":[],"mappings":"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","file":"chunk-HPNY32G6.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const ratingRecipe = sva({\n slots: ['root', 'star', 'input'],\n base: {\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5',\n },\n star: {\n display: 'inline-flex',\n alignItems: 'center',\n cursor: 'pointer',\n p: 0,\n m: 0,\n borderWidth: 0,\n bg: 'transparent',\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n borderRadius: 'sm',\n },\n },\n input: {\n position: 'absolute',\n w: '1px',\n h: '1px',\n p: 0,\n m: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n },\n },\n variants: {\n isDisabled: {\n true: {\n root: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n star: {\n cursor: 'not-allowed',\n },\n },\n },\n isReadOnly: {\n true: {\n star: {\n cursor: 'default',\n },\n },\n },\n },\n});\n\nexport type RatingVariants = RecipeVariantProps<typeof ratingRecipe>;\n","import {Star} from 'lucide-react';\nimport {\n useState,\n useId,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Icon, type IconColor, type IconSize} from 'components/Icon';\nimport {ratingRecipe} from 'components/Rating/Rating.recipe';\nimport {VisuallyHidden} from 'internal/VisuallyHidden';\nimport {cx} from 'internal/cx';\n\nexport interface RatingProps {\n /**\n * Additional CSS class names applied to the rating root.\n */\n className?: string;\n /**\n * Number of stars to display.\n * @default 5\n */\n count?: number;\n /**\n * Test ID applied to the rating root.\n */\n 'data-testid'?: string;\n /**\n * Color of unfilled stars.\n * @default 'disabled'\n */\n emptyColor?: IconColor;\n /**\n * Color of filled stars.\n * @default 'yellow'\n */\n filledColor?: IconColor;\n /**\n * Whether the rating is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the rating is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n /**\n * Accessible label for the rating group.\n * @default 'Rating'\n */\n label?: string;\n /**\n * Called when the selected rating changes.\n */\n onChange?: (value: number) => void;\n /**\n * Ref forwarded to the rating root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the star icons.\n * @default 'md'\n */\n size?: IconSize;\n /**\n * Inline styles applied to the rating root.\n */\n style?: CSSProperties;\n /**\n * Current rating value.\n */\n value: number;\n}\n\nfunction StarIcon({\n color,\n isFilled,\n size,\n}: {\n color: IconColor;\n isFilled: boolean;\n size: IconSize;\n}): ReactNode {\n return (\n <Icon\n color={color}\n fill={isFilled ? 'currentColor' : 'none'}\n icon={Star}\n size={size}\n />\n );\n}\n\n/**\n * Star-based rating control supporting read-only and interactive modes.\n */\nexport function Rating({\n value: valueFromProps,\n onChange,\n count = 5,\n emptyColor = 'disabled',\n filledColor = 'yellow',\n size = 'md',\n isReadOnly = false,\n isDisabled = false,\n label = 'Rating',\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: RatingProps): React.JSX.Element {\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(count) || count < 1) {\n throw new Error(\n `Rating: count must be a positive integer, received ${count}.`,\n );\n }\n\n if (\n valueFromProps < 0 ||\n valueFromProps > count ||\n !Number.isInteger(valueFromProps)\n ) {\n throw new Error(\n `Rating: value must be an integer in [0, ${count}], received ${valueFromProps}.`,\n );\n }\n }\n\n const value = Math.max(0, Math.min(count, Math.round(valueFromProps)));\n const groupId = useId();\n const [hoverValue, setHoverValue] = useState<number | null>(null);\n const isInteractive = !isReadOnly && !isDisabled && onChange != null;\n const displayValue = isInteractive ? (hoverValue ?? value) : value;\n const classes = ratingRecipe({\n isDisabled: isDisabled || undefined,\n isReadOnly: isReadOnly || undefined,\n });\n\n if (!isInteractive) {\n return (\n <div\n aria-label={`${label}: ${value} out of ${count}`}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={style}>\n {Array.from({length: count}, (_, i) => (\n <span className={classes.star} key={i}>\n <StarIcon\n color={i < value ? filledColor : emptyColor}\n isFilled={i < value}\n size={size}\n />\n </span>\n ))}\n </div>\n );\n }\n\n return (\n // eslint-disable-next-line jsx-a11y-x/interactive-supports-focus -- focus is managed by the radio inputs inside\n <div\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onMouseLeave={() => setHoverValue(null)}\n ref={ref}\n role=\"radiogroup\"\n style={style}>\n {Array.from({length: count}, (_, i) => {\n const starValue = i + 1;\n return (\n // eslint-disable-next-line jsx-a11y-x/no-noninteractive-element-interactions -- label wraps its radio input\n <label\n className={classes.star}\n key={i}\n onMouseEnter={() => setHoverValue(starValue)}>\n <input\n checked={value === starValue}\n className={classes.input}\n name={groupId}\n onChange={() => onChange(starValue)}\n type=\"radio\"\n value={starValue}\n />\n <VisuallyHidden>\n {starValue} {starValue === 1 ? 'star' : 'stars'}\n </VisuallyHidden>\n <StarIcon\n color={i < displayValue ? filledColor : emptyColor}\n isFilled={i < displayValue}\n size={size}\n />\n </label>\n );\n })}\n </div>\n );\n}\n\nRating.displayName = 'Rating';\n"]}
1
+ {"version":3,"sources":["../src/components/Rating/Rating.recipe.ts","../src/components/Rating/Rating.tsx"],"names":[],"mappings":"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","file":"chunk-7TYZLVLZ.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const ratingRecipe = sva({\n slots: ['root', 'star', 'input'],\n base: {\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5',\n },\n star: {\n display: 'inline-flex',\n alignItems: 'center',\n cursor: 'pointer',\n p: 0,\n m: 0,\n borderWidth: 0,\n bg: 'transparent',\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n borderRadius: 'sm',\n },\n },\n input: {\n position: 'absolute',\n w: '1px',\n h: '1px',\n p: 0,\n m: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n },\n },\n variants: {\n isDisabled: {\n true: {\n root: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n star: {\n cursor: 'not-allowed',\n },\n },\n },\n isReadOnly: {\n true: {\n star: {\n cursor: 'default',\n },\n },\n },\n },\n});\n\nexport type RatingVariants = RecipeVariantProps<typeof ratingRecipe>;\n","'use client';\n\nimport {Star} from 'lucide-react';\nimport {\n useState,\n useId,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Icon, type IconColor, type IconSize} from 'components/Icon';\nimport {ratingRecipe} from 'components/Rating/Rating.recipe';\nimport {VisuallyHidden} from 'internal/VisuallyHidden';\nimport {cx} from 'internal/cx';\n\nexport interface RatingProps {\n /**\n * Additional CSS class names applied to the rating root.\n */\n className?: string;\n /**\n * Number of stars to display.\n * @default 5\n */\n count?: number;\n /**\n * Test ID applied to the rating root.\n */\n 'data-testid'?: string;\n /**\n * Color of unfilled stars.\n * @default 'disabled'\n */\n emptyColor?: IconColor;\n /**\n * Color of filled stars.\n * @default 'yellow'\n */\n filledColor?: IconColor;\n /**\n * Whether the rating is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the rating is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n /**\n * Accessible label for the rating group.\n * @default 'Rating'\n */\n label?: string;\n /**\n * Called when the selected rating changes.\n */\n onChange?: (value: number) => void;\n /**\n * Ref forwarded to the rating root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the star icons.\n * @default 'md'\n */\n size?: IconSize;\n /**\n * Inline styles applied to the rating root.\n */\n style?: CSSProperties;\n /**\n * Current rating value.\n */\n value: number;\n}\n\nfunction StarIcon({\n color,\n isFilled,\n size,\n}: {\n color: IconColor;\n isFilled: boolean;\n size: IconSize;\n}): ReactNode {\n return (\n <Icon\n color={color}\n fill={isFilled ? 'currentColor' : 'none'}\n icon={Star}\n size={size}\n />\n );\n}\n\n/**\n * Star-based rating control supporting read-only and interactive modes.\n */\nexport function Rating({\n value: valueFromProps,\n onChange,\n count = 5,\n emptyColor = 'disabled',\n filledColor = 'yellow',\n size = 'md',\n isReadOnly = false,\n isDisabled = false,\n label = 'Rating',\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: RatingProps): React.JSX.Element {\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(count) || count < 1) {\n throw new Error(\n `Rating: count must be a positive integer, received ${count}.`,\n );\n }\n\n if (\n valueFromProps < 0 ||\n valueFromProps > count ||\n !Number.isInteger(valueFromProps)\n ) {\n throw new Error(\n `Rating: value must be an integer in [0, ${count}], received ${valueFromProps}.`,\n );\n }\n }\n\n const value = Math.max(0, Math.min(count, Math.round(valueFromProps)));\n const groupId = useId();\n const [hoverValue, setHoverValue] = useState<number | null>(null);\n const isInteractive = !isReadOnly && !isDisabled && onChange != null;\n const displayValue = isInteractive ? (hoverValue ?? value) : value;\n const classes = ratingRecipe({\n isDisabled: isDisabled || undefined,\n isReadOnly: isReadOnly || undefined,\n });\n\n if (!isInteractive) {\n return (\n <div\n aria-label={`${label}: ${value} out of ${count}`}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={style}>\n {Array.from({length: count}, (_, i) => (\n <span className={classes.star} key={i}>\n <StarIcon\n color={i < value ? filledColor : emptyColor}\n isFilled={i < value}\n size={size}\n />\n </span>\n ))}\n </div>\n );\n }\n\n return (\n // eslint-disable-next-line jsx-a11y-x/interactive-supports-focus -- focus is managed by the radio inputs inside\n <div\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onMouseLeave={() => setHoverValue(null)}\n ref={ref}\n role=\"radiogroup\"\n style={style}>\n {Array.from({length: count}, (_, i) => {\n const starValue = i + 1;\n return (\n // eslint-disable-next-line jsx-a11y-x/no-noninteractive-element-interactions -- label wraps its radio input\n <label\n className={classes.star}\n key={i}\n onMouseEnter={() => setHoverValue(starValue)}>\n <input\n checked={value === starValue}\n className={classes.input}\n name={groupId}\n onChange={() => onChange(starValue)}\n type=\"radio\"\n value={starValue}\n />\n <VisuallyHidden>\n {starValue} {starValue === 1 ? 'star' : 'stars'}\n </VisuallyHidden>\n <StarIcon\n color={i < displayValue ? filledColor : emptyColor}\n isFilled={i < displayValue}\n size={size}\n />\n </label>\n );\n })}\n </div>\n );\n}\n\nRating.displayName = 'Rating';\n"]}
@@ -1,7 +1,8 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
- var chunkCPDWUT2H_cjs = require('./chunk-CPDWUT2H.cjs');
4
- var chunk3NIDAKCF_cjs = require('./chunk-3NIDAKCF.cjs');
4
+ var chunkW6UBDEMN_cjs = require('./chunk-W6UBDEMN.cjs');
5
+ var chunkJ6XRX6DD_cjs = require('./chunk-J6XRX6DD.cjs');
5
6
  var chunk6SHL7FYO_cjs = require('./chunk-6SHL7FYO.cjs');
6
7
  var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
7
8
  var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
@@ -131,8 +132,8 @@ function Drawer({
131
132
  }) {
132
133
  const dialogRef = react.useRef(null);
133
134
  const triggerRef = react.useRef(null);
134
- const { isBackdropDismissEnabled, isEscapeDismissEnabled } = chunkCPDWUT2H_cjs.resolveDismissBehavior(dismissBehavior);
135
- const backdropDismiss = chunkCPDWUT2H_cjs.useBackdropDismiss({
135
+ const { isBackdropDismissEnabled, isEscapeDismissEnabled } = chunkW6UBDEMN_cjs.resolveDismissBehavior(dismissBehavior);
136
+ const backdropDismiss = chunkW6UBDEMN_cjs.useBackdropDismiss({
136
137
  isEnabled: isBackdropDismissEnabled,
137
138
  onDismiss: () => onOpenChange(false)
138
139
  });
@@ -153,7 +154,7 @@ function Drawer({
153
154
  triggerRef.current = null;
154
155
  }
155
156
  }, [isOpen]);
156
- chunk3NIDAKCF_cjs.useScrollLock(isOpen);
157
+ chunkJ6XRX6DD_cjs.useScrollLock(isOpen);
157
158
  const effectiveSize = size ?? DEFAULT_SIZES[placement];
158
159
  const sizeStyle = getSizeStyle(placement, effectiveSize);
159
160
  const classes = drawerRecipe({ isOpen, placement });
@@ -213,5 +214,5 @@ function useDrawer(defaultOptions) {
213
214
 
214
215
  exports.Drawer = Drawer;
215
216
  exports.useDrawer = useDrawer;
216
- //# sourceMappingURL=chunk-GA77PPVL.cjs.map
217
- //# sourceMappingURL=chunk-GA77PPVL.cjs.map
217
+ //# sourceMappingURL=chunk-A36BE56K.cjs.map
218
+ //# sourceMappingURL=chunk-A36BE56K.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Drawer/Drawer.recipe.ts","../src/components/Drawer/Drawer.tsx","../src/components/Drawer/useDrawer.tsx"],"names":["sva","useRef","resolveDismissBehavior","useBackdropDismiss","useEffect","useScrollLock","jsx","cx","mergeRefs","useState","useCallback","useMemo"],"mappings":"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","file":"chunk-GA77PPVL.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const drawerRecipe = sva({\n slots: ['root', 'inner'],\n base: {\n root: {\n position: 'fixed',\n p: 0,\n borderWidth: 0,\n bg: 'bg',\n color: 'fg',\n boxShadow: 'xl',\n flexDirection: 'column',\n overscrollBehavior: 'contain',\n _backdrop: {\n bg: 'overlay.scrim',\n backdropFilter: 'blur(2px)',\n },\n _focusVisible: {\n outline: 'none',\n },\n },\n inner: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 1 auto',\n minH: 0,\n overflow: 'hidden',\n },\n },\n variants: {\n // When closed, the native <dialog> UA style (display: none) applies; opening\n // switches on the flex column layout.\n isOpen: {\n true: {root: {display: 'flex'}},\n false: {},\n },\n placement: {\n start: {\n root: {\n inset: 0,\n marginInlineEnd: 'auto',\n h: '100dvh',\n maxH: '100dvh',\n borderRadius: 0,\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n },\n },\n end: {\n root: {\n inset: 0,\n marginInlineStart: 'auto',\n h: '100dvh',\n maxH: '100dvh',\n borderRadius: 0,\n borderInlineStartWidth: 'default',\n borderInlineStartStyle: 'solid',\n borderInlineStartColor: 'border',\n },\n },\n top: {\n root: {\n inset: 0,\n mb: 'auto',\n w: '100dvw',\n maxW: '100dvw',\n borderRadius: 0,\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n },\n bottom: {\n root: {\n inset: 0,\n mt: 'auto',\n w: '100dvw',\n maxW: '100dvw',\n borderRadius: 0,\n borderBlockStartWidth: 'default',\n borderBlockStartStyle: 'solid',\n borderBlockStartColor: 'border',\n },\n },\n },\n },\n defaultVariants: {\n isOpen: false,\n placement: 'end',\n },\n});\n\nexport type DrawerVariants = RecipeVariantProps<typeof drawerRecipe>;\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useEffect, useRef} from 'react';\nimport {drawerRecipe} from 'components/Drawer/Drawer.recipe';\nimport {cx} from 'internal/cx';\nimport {\n resolveDismissBehavior,\n type DismissBehavior,\n} from 'internal/dismissBehavior';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {useBackdropDismiss} from 'internal/useBackdropDismiss';\nimport {useScrollLock} from 'internal/useScrollLock';\n\nexport type DrawerPlacement = 'start' | 'end' | 'top' | 'bottom';\nexport type DrawerDismissBehavior = DismissBehavior;\n\nexport interface DrawerProps {\n /**\n * Drawer body content.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the drawer.\n */\n className?: string;\n /**\n * Test ID applied to the drawer.\n */\n 'data-testid'?: string;\n /**\n * Controls whether Escape and backdrop clicks request dismissal. Pass a\n * boolean to enable or disable both behaviors together.\n * @default {isEscapeDismissEnabled: true, isBackdropDismissEnabled: true}\n */\n dismissBehavior?: DrawerDismissBehavior;\n /**\n * Whether the drawer is open.\n */\n isOpen: boolean;\n /**\n * Accessible label for the drawer.\n */\n label: string;\n /**\n * Called when the drawer requests an open-state change.\n */\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Edge of the viewport the drawer slides in from.\n * @default 'end'\n */\n placement?: DrawerPlacement;\n /**\n * Ref forwarded to the drawer element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Width (start/end) or height (top/bottom) of the drawer.\n */\n size?: number | string;\n /**\n * Inline styles applied to the drawer.\n */\n style?: CSSProperties;\n}\n\nfunction formatSize(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nconst DEFAULT_SIZES: Record<DrawerPlacement, number | string> = {\n start: 320,\n end: 320,\n top: '40vh',\n bottom: '40vh',\n};\n\nfunction getSizeStyle(\n placement: DrawerPlacement,\n size: number | string,\n): CSSProperties {\n const formatted = formatSize(size);\n if (placement === 'start' || placement === 'end') {\n return {width: formatted, maxWidth: '100dvw'};\n }\n return {height: formatted, maxHeight: '100dvh'};\n}\n\n/**\n * A slide-in panel anchored to an edge of the viewport.\n */\nexport function Drawer({\n isOpen,\n label,\n onOpenChange,\n placement = 'end',\n size,\n dismissBehavior,\n children,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: DrawerProps): React.JSX.Element {\n const dialogRef = useRef<HTMLDialogElement>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n const {isBackdropDismissEnabled, isEscapeDismissEnabled} =\n resolveDismissBehavior(dismissBehavior);\n const backdropDismiss = useBackdropDismiss<HTMLDialogElement>({\n isEnabled: isBackdropDismissEnabled,\n onDismiss: () => onOpenChange(false),\n });\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (dialog == null) {\n return;\n }\n\n if (isOpen) {\n triggerRef.current = document.activeElement as HTMLElement | null;\n if (!dialog.open) {\n dialog.showModal();\n }\n dialog\n .querySelector<HTMLElement>('[data-autofocus=\"true\"], [autofocus]')\n ?.focus();\n } else if (dialog.open) {\n dialog.close();\n triggerRef.current?.focus();\n triggerRef.current = null;\n }\n }, [isOpen]);\n\n useScrollLock(isOpen);\n\n const effectiveSize = size ?? DEFAULT_SIZES[placement];\n const sizeStyle = getSizeStyle(placement, effectiveSize);\n const classes = drawerRecipe({isOpen, placement});\n\n return (\n // eslint-disable-next-line jsx-a11y-x/click-events-have-key-events, jsx-a11y-x/no-noninteractive-element-interactions -- native dialog backdrop clicks close the drawer\n <dialog\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onCancel={event => {\n event.preventDefault();\n if (isEscapeDismissEnabled) {\n onOpenChange(false);\n }\n }}\n onClick={backdropDismiss.onClick}\n onPointerDown={backdropDismiss.onPointerDown}\n ref={mergeRefs(ref, dialogRef)}\n style={{...sizeStyle, ...style}}>\n <div className={classes.inner}>{children}</div>\n </dialog>\n );\n}\n\nDrawer.displayName = 'Drawer';\n","import {useCallback, useMemo, useState, type ReactNode} from 'react';\nimport {Drawer, type DrawerProps} from 'components/Drawer/Drawer';\n\nexport type DrawerOptions = Partial<\n Omit<DrawerProps, 'children' | 'isOpen' | 'onOpenChange'>\n>;\n\nexport interface UseDrawerReturn {\n element: ReactNode;\n hide: () => void;\n isOpen: boolean;\n show: (content: ReactNode, options?: DrawerOptions) => void;\n}\n\nexport function useDrawer(defaultOptions?: DrawerOptions): UseDrawerReturn {\n const [isOpen, setIsOpen] = useState(false);\n const [content, setContent] = useState<ReactNode>(null);\n // Options passed to the most recent `show()` call. Each call replaces these\n // rather than merging, so per-call options never bleed into later calls.\n // `defaultOptions` remains the baseline, applied beneath them below.\n const [callOptions, setCallOptions] = useState<DrawerOptions | undefined>();\n\n const show = useCallback(\n (nextContent: ReactNode, nextOptions?: DrawerOptions) => {\n setContent(nextContent);\n setCallOptions(nextOptions);\n setIsOpen(true);\n },\n [],\n );\n\n const hide = useCallback(() => setIsOpen(false), []);\n\n const element = useMemo(\n () => (\n <Drawer\n {...(defaultOptions ?? {})}\n {...(callOptions ?? {})}\n isOpen={isOpen}\n label={callOptions?.label ?? defaultOptions?.label ?? 'Drawer'}\n onOpenChange={setIsOpen}>\n {content}\n </Drawer>\n ),\n [content, defaultOptions, isOpen, callOptions],\n );\n\n return {element, hide, isOpen, show};\n}\n"]}
1
+ {"version":3,"sources":["../src/components/Drawer/Drawer.recipe.ts","../src/components/Drawer/Drawer.tsx","../src/components/Drawer/useDrawer.tsx"],"names":["sva","useRef","resolveDismissBehavior","useBackdropDismiss","useEffect","useScrollLock","jsx","cx","mergeRefs","useState","useCallback","useMemo"],"mappings":"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","file":"chunk-A36BE56K.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const drawerRecipe = sva({\n slots: ['root', 'inner'],\n base: {\n root: {\n position: 'fixed',\n p: 0,\n borderWidth: 0,\n bg: 'bg',\n color: 'fg',\n boxShadow: 'xl',\n flexDirection: 'column',\n overscrollBehavior: 'contain',\n _backdrop: {\n bg: 'overlay.scrim',\n backdropFilter: 'blur(2px)',\n },\n _focusVisible: {\n outline: 'none',\n },\n },\n inner: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 1 auto',\n minH: 0,\n overflow: 'hidden',\n },\n },\n variants: {\n // When closed, the native <dialog> UA style (display: none) applies; opening\n // switches on the flex column layout.\n isOpen: {\n true: {root: {display: 'flex'}},\n false: {},\n },\n placement: {\n start: {\n root: {\n inset: 0,\n marginInlineEnd: 'auto',\n h: '100dvh',\n maxH: '100dvh',\n borderRadius: 0,\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n },\n },\n end: {\n root: {\n inset: 0,\n marginInlineStart: 'auto',\n h: '100dvh',\n maxH: '100dvh',\n borderRadius: 0,\n borderInlineStartWidth: 'default',\n borderInlineStartStyle: 'solid',\n borderInlineStartColor: 'border',\n },\n },\n top: {\n root: {\n inset: 0,\n mb: 'auto',\n w: '100dvw',\n maxW: '100dvw',\n borderRadius: 0,\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n },\n bottom: {\n root: {\n inset: 0,\n mt: 'auto',\n w: '100dvw',\n maxW: '100dvw',\n borderRadius: 0,\n borderBlockStartWidth: 'default',\n borderBlockStartStyle: 'solid',\n borderBlockStartColor: 'border',\n },\n },\n },\n },\n defaultVariants: {\n isOpen: false,\n placement: 'end',\n },\n});\n\nexport type DrawerVariants = RecipeVariantProps<typeof drawerRecipe>;\n","'use client';\n\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useEffect, useRef} from 'react';\nimport {drawerRecipe} from 'components/Drawer/Drawer.recipe';\nimport {cx} from 'internal/cx';\nimport {\n resolveDismissBehavior,\n type DismissBehavior,\n} from 'internal/dismissBehavior';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {useBackdropDismiss} from 'internal/useBackdropDismiss';\nimport {useScrollLock} from 'internal/useScrollLock';\n\nexport type DrawerPlacement = 'start' | 'end' | 'top' | 'bottom';\nexport type DrawerDismissBehavior = DismissBehavior;\n\nexport interface DrawerProps {\n /**\n * Drawer body content.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the drawer.\n */\n className?: string;\n /**\n * Test ID applied to the drawer.\n */\n 'data-testid'?: string;\n /**\n * Controls whether Escape and backdrop clicks request dismissal. Pass a\n * boolean to enable or disable both behaviors together.\n * @default {isEscapeDismissEnabled: true, isBackdropDismissEnabled: true}\n */\n dismissBehavior?: DrawerDismissBehavior;\n /**\n * Whether the drawer is open.\n */\n isOpen: boolean;\n /**\n * Accessible label for the drawer.\n */\n label: string;\n /**\n * Called when the drawer requests an open-state change.\n */\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Edge of the viewport the drawer slides in from.\n * @default 'end'\n */\n placement?: DrawerPlacement;\n /**\n * Ref forwarded to the drawer element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Width (start/end) or height (top/bottom) of the drawer.\n */\n size?: number | string;\n /**\n * Inline styles applied to the drawer.\n */\n style?: CSSProperties;\n}\n\nfunction formatSize(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nconst DEFAULT_SIZES: Record<DrawerPlacement, number | string> = {\n start: 320,\n end: 320,\n top: '40vh',\n bottom: '40vh',\n};\n\nfunction getSizeStyle(\n placement: DrawerPlacement,\n size: number | string,\n): CSSProperties {\n const formatted = formatSize(size);\n if (placement === 'start' || placement === 'end') {\n return {width: formatted, maxWidth: '100dvw'};\n }\n return {height: formatted, maxHeight: '100dvh'};\n}\n\n/**\n * A slide-in panel anchored to an edge of the viewport.\n */\nexport function Drawer({\n isOpen,\n label,\n onOpenChange,\n placement = 'end',\n size,\n dismissBehavior,\n children,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: DrawerProps): React.JSX.Element {\n const dialogRef = useRef<HTMLDialogElement>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n const {isBackdropDismissEnabled, isEscapeDismissEnabled} =\n resolveDismissBehavior(dismissBehavior);\n const backdropDismiss = useBackdropDismiss<HTMLDialogElement>({\n isEnabled: isBackdropDismissEnabled,\n onDismiss: () => onOpenChange(false),\n });\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (dialog == null) {\n return;\n }\n\n if (isOpen) {\n triggerRef.current = document.activeElement as HTMLElement | null;\n if (!dialog.open) {\n dialog.showModal();\n }\n dialog\n .querySelector<HTMLElement>('[data-autofocus=\"true\"], [autofocus]')\n ?.focus();\n } else if (dialog.open) {\n dialog.close();\n triggerRef.current?.focus();\n triggerRef.current = null;\n }\n }, [isOpen]);\n\n useScrollLock(isOpen);\n\n const effectiveSize = size ?? DEFAULT_SIZES[placement];\n const sizeStyle = getSizeStyle(placement, effectiveSize);\n const classes = drawerRecipe({isOpen, placement});\n\n return (\n // eslint-disable-next-line jsx-a11y-x/click-events-have-key-events, jsx-a11y-x/no-noninteractive-element-interactions -- native dialog backdrop clicks close the drawer\n <dialog\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onCancel={event => {\n event.preventDefault();\n if (isEscapeDismissEnabled) {\n onOpenChange(false);\n }\n }}\n onClick={backdropDismiss.onClick}\n onPointerDown={backdropDismiss.onPointerDown}\n ref={mergeRefs(ref, dialogRef)}\n style={{...sizeStyle, ...style}}>\n <div className={classes.inner}>{children}</div>\n </dialog>\n );\n}\n\nDrawer.displayName = 'Drawer';\n","'use client';\n\nimport {useCallback, useMemo, useState, type ReactNode} from 'react';\nimport {Drawer, type DrawerProps} from 'components/Drawer/Drawer';\n\nexport type DrawerOptions = Partial<\n Omit<DrawerProps, 'children' | 'isOpen' | 'onOpenChange'>\n>;\n\nexport interface UseDrawerReturn {\n element: ReactNode;\n hide: () => void;\n isOpen: boolean;\n show: (content: ReactNode, options?: DrawerOptions) => void;\n}\n\nexport function useDrawer(defaultOptions?: DrawerOptions): UseDrawerReturn {\n const [isOpen, setIsOpen] = useState(false);\n const [content, setContent] = useState<ReactNode>(null);\n // Options passed to the most recent `show()` call. Each call replaces these\n // rather than merging, so per-call options never bleed into later calls.\n // `defaultOptions` remains the baseline, applied beneath them below.\n const [callOptions, setCallOptions] = useState<DrawerOptions | undefined>();\n\n const show = useCallback(\n (nextContent: ReactNode, nextOptions?: DrawerOptions) => {\n setContent(nextContent);\n setCallOptions(nextOptions);\n setIsOpen(true);\n },\n [],\n );\n\n const hide = useCallback(() => setIsOpen(false), []);\n\n const element = useMemo(\n () => (\n <Drawer\n {...(defaultOptions ?? {})}\n {...(callOptions ?? {})}\n isOpen={isOpen}\n label={callOptions?.label ?? defaultOptions?.label ?? 'Drawer'}\n onOpenChange={setIsOpen}>\n {content}\n </Drawer>\n ),\n [content, defaultOptions, isOpen, callOptions],\n );\n\n return {element, hide, isOpen, show};\n}\n"]}
@@ -1,5 +1,6 @@
1
- import { CheckboxInput } from './chunk-3PCXFOOS.js';
2
- import { getNecessity, Field } from './chunk-USEA7DB5.js';
1
+ 'use client';
2
+ import { CheckboxInput } from './chunk-42KJXH3P.js';
3
+ import { getNecessity, Field } from './chunk-PZBY3JI7.js';
3
4
  import { getStatusMessageID, getDescribedBy } from './chunk-G6HS52US.js';
4
5
  import { isReactNode } from './chunk-2PSZAWLC.js';
5
6
  import { cva } from './chunk-FMEIPGUP.js';
@@ -158,5 +159,5 @@ function CheckboxGroupItem({
158
159
  CheckboxGroupItem.displayName = "CheckboxGroupItem";
159
160
 
160
161
  export { CheckboxGroup, CheckboxGroupItem };
161
- //# sourceMappingURL=chunk-ESWYWWY2.js.map
162
- //# sourceMappingURL=chunk-ESWYWWY2.js.map
162
+ //# sourceMappingURL=chunk-A377P2JF.js.map
163
+ //# sourceMappingURL=chunk-A377P2JF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/CheckboxGroup/CheckboxGroup.recipe.ts","../src/components/CheckboxGroup/CheckboxGroupContext.tsx","../src/components/CheckboxGroup/CheckboxGroup.tsx","../src/components/CheckboxGroup/CheckboxGroupItem.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-A377P2JF.js","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const checkboxGroupRecipe = cva({\n base: {\n display: 'flex',\n },\n variants: {\n orientation: {\n vertical: {\n flexDirection: 'column',\n gap: '0.5',\n },\n horizontal: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n columnGap: '4',\n rowGap: '0',\n },\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport type CheckboxGroupVariants = RecipeVariantProps<\n typeof checkboxGroupRecipe\n>;\n","'use client';\n\nimport {createContext} from 'react';\nimport type {CheckboxInputSize} from 'components/CheckboxInput';\n\nexport type CheckboxGroupOrientation = 'horizontal' | 'vertical';\nexport type CheckboxGroupSize = CheckboxInputSize;\n\nexport interface CheckboxGroupContextValue {\n htmlName?: string;\n isDisabled: boolean;\n onChange: (value: string, isChecked: boolean) => void;\n orientation: CheckboxGroupOrientation;\n selectedValues: Set<string>;\n size: CheckboxGroupSize;\n}\n\nexport const CheckboxGroupContext =\n createContext<CheckboxGroupContextValue | null>(null);\n\nCheckboxGroupContext.displayName = 'CheckboxGroupContext';\n","'use client';\n\nimport {\n useCallback,\n useId,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {checkboxGroupRecipe} from 'components/CheckboxGroup/CheckboxGroup.recipe';\nimport {\n CheckboxGroupContext,\n type CheckboxGroupOrientation,\n type CheckboxGroupSize,\n} from 'components/CheckboxGroup/CheckboxGroupContext';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputStatus,\n} from 'components/Field';\nimport {getDescribedBy, getStatusMessageID} from 'components/Field/inputUtils';\nimport isReactNode from 'internal/isReactNode';\n\nexport type {CheckboxGroupOrientation} from 'components/CheckboxGroup/CheckboxGroupContext';\n\nexport type CheckboxGroupProps = {\n /**\n * Checkbox items to render.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the field root.\n */\n className?: string;\n /**\n * Test ID applied to the field root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * HTML name attribute shared by checkbox inputs for native form submission.\n */\n htmlName?: string;\n /**\n * Whether all checkbox items are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Label text for the checkbox group.\n */\n label: string;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Callback fired when the selected values change.\n * Memoize with `useCallback` to avoid unnecessary re-renders of checkbox items.\n */\n onChange: (value: string[]) => void;\n /**\n * Layout direction of the checkbox items.\n * @default 'vertical'\n */\n orientation?: CheckboxGroupOrientation;\n /**\n * Ref forwarded to the field root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the checkbox controls.\n * @default 'md'\n */\n size?: CheckboxGroupSize;\n /**\n * Validation status displayed below the group.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the field root.\n */\n style?: CSSProperties;\n /**\n * The currently selected values.\n */\n value: string[];\n} & FieldNecessity;\n\n/**\n * A controlled checkbox group for multi-value selection.\n */\nexport function CheckboxGroup({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n htmlName,\n isDisabled = false,\n isLabelHidden = false,\n isOptional,\n isRequired,\n label,\n labelTooltip,\n onChange,\n orientation = 'vertical',\n ref,\n size = 'md',\n status,\n style,\n value,\n}: CheckboxGroupProps): React.JSX.Element {\n const inputId = useId();\n const labelId = `${inputId}-label`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const handleItemChange = useCallback(\n (itemValue: string, isChecked: boolean) => {\n if (isChecked) {\n onChange(value.includes(itemValue) ? value : [...value, itemValue]);\n return;\n }\n\n onChange(value.filter(currentValue => currentValue !== itemValue));\n },\n [onChange, value],\n );\n const selectedValues = useMemo(() => new Set(value), [value]);\n const contextValue = useMemo(\n () => ({\n htmlName,\n isDisabled,\n onChange: handleItemChange,\n orientation,\n selectedValues,\n size,\n }),\n [handleItemChange, htmlName, isDisabled, orientation, selectedValues, size],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n data-testid={dataTestId}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n description={description}\n descriptionID={descriptionID}\n label={label}\n labelAs=\"span\"\n labelId={labelId}\n labelTooltip={labelTooltip}\n ref={ref}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n statusVariant=\"detached\"\n style={style}>\n <div\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-labelledby={labelId}\n className={checkboxGroupRecipe({orientation})}\n id={inputId}\n role=\"group\">\n <CheckboxGroupContext value={contextValue}>\n {children}\n </CheckboxGroupContext>\n </div>\n </Field>\n );\n}\n\nCheckboxGroup.displayName = 'CheckboxGroup';\n","'use client';\n\nimport {use, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {CheckboxGroupContext} from 'components/CheckboxGroup/CheckboxGroupContext';\nimport {CheckboxInput, type CheckboxInputProps} from 'components/CheckboxInput';\n\nexport interface CheckboxGroupItemProps {\n /**\n * Additional CSS class names applied to the item root.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the item label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the label and description.\n */\n endContent?: ReactNode;\n /**\n * Where to place `endContent` within the item.\n * @default 'inline'\n */\n endContentPosition?: CheckboxInputProps['endContentPosition'];\n /**\n * Whether this checkbox item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Label text for the checkbox item.\n */\n label: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Content rendered after the checkbox control and before the label.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the item root.\n */\n style?: CSSProperties;\n /**\n * Value represented by this checkbox item.\n */\n value: string;\n}\n\n/**\n * An individual checkbox option within a `CheckboxGroup`.\n */\nexport function CheckboxGroupItem({\n className,\n 'data-testid': dataTestId,\n description,\n endContent,\n endContentPosition = 'inline',\n isDisabled: isItemDisabled = false,\n label,\n ref,\n startContent,\n style,\n value,\n}: CheckboxGroupItemProps): React.JSX.Element {\n const context = use(CheckboxGroupContext);\n if (context == null) {\n throw new Error('CheckboxGroupItem must be used within a CheckboxGroup');\n }\n\n const isDisabled = context.isDisabled || isItemDisabled;\n const isChecked = context.selectedValues.has(value);\n\n return (\n <CheckboxInput\n className={className}\n data-testid={dataTestId}\n description={description}\n endContent={endContent}\n endContentPosition={endContentPosition}\n htmlName={context.htmlName}\n htmlValue={value}\n isDisabled={isDisabled}\n label={label}\n onChange={checked => context.onChange(value, checked)}\n ref={ref}\n size={context.size}\n startContent={startContent}\n style={style}\n value={isChecked}\n width={context.orientation === 'horizontal' ? 'auto' : 'full'}\n />\n );\n}\n\nCheckboxGroupItem.displayName = 'CheckboxGroupItem';\n"]}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { getStatusMessageID, getDescribedBy } from './chunk-G6HS52US.js';
2
3
  import { isReactNode } from './chunk-2PSZAWLC.js';
3
4
  import { useId, useState, useRef, useMemo, useCallback } from 'react';
@@ -325,5 +326,5 @@ function renderSelectListboxOptions({
325
326
  }
326
327
 
327
328
  export { renderSelectListboxOptions, useSelectListbox };
328
- //# sourceMappingURL=chunk-5RFHYDQY.js.map
329
- //# sourceMappingURL=chunk-5RFHYDQY.js.map
329
+ //# sourceMappingURL=chunk-AUXMMTKN.js.map
330
+ //# sourceMappingURL=chunk-AUXMMTKN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/useListboxNavigation.ts","../src/internal/useSelectListbox.tsx"],"names":["useState","useMemo","useCallback"],"mappings":"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","file":"chunk-AUXMMTKN.js","sourcesContent":["'use client';\n\nimport {\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","'use client';\n\nimport {\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 {getDescribedBy, getStatusMessageID} from 'components/Field/inputUtils';\nimport isReactNode from 'internal/isReactNode';\nimport {useListboxNavigation} from 'internal/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 description: ReactNode;\n isDefaultOpen?: boolean;\n isDisabled?: boolean;\n isHighlightClearedOnCommit?: boolean;\n isLoading?: boolean;\n isListboxClosedOnCommit?: boolean;\n isQueryClearedOnCommit?: boolean;\n onCommitOption: (option: TOption) => unknown;\n options: ReadonlyArray<SelectListboxOption<TOption>>;\n selectedValues: ReadonlySet<string>;\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 description,\n isDefaultOpen = false,\n isDisabled = false,\n isHighlightClearedOnCommit = true,\n isLoading = false,\n isListboxClosedOnCommit = false,\n isQueryClearedOnCommit = false,\n onCommitOption,\n options,\n selectedValues,\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 (isListboxClosedOnCommit) {\n setIsOpen(false);\n }\n if (isQueryClearedOnCommit) {\n setQuery('');\n }\n },\n onOpenChange: setIsOpen,\n options: visibleSelectableOptions,\n selectedValues,\n shouldClearOnCommit: isHighlightClearedOnCommit,\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 (isListboxClosedOnCommit) {\n setIsOpen(false);\n }\n if (isQueryClearedOnCommit) {\n setQuery('');\n }\n },\n [\n isListboxClosedOnCommit,\n isQueryClearedOnCommit,\n onCommitOption,\n optionByValue,\n ],\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"]}
@@ -1,8 +1,9 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
- var chunkAC4E3WQA_cjs = require('./chunk-AC4E3WQA.cjs');
4
- var chunkKVJ27734_cjs = require('./chunk-KVJ27734.cjs');
5
- var chunkWOVSJHY6_cjs = require('./chunk-WOVSJHY6.cjs');
4
+ var chunk7275FFQA_cjs = require('./chunk-7275FFQA.cjs');
5
+ var chunkLIDE7FVO_cjs = require('./chunk-LIDE7FVO.cjs');
6
+ var chunkS5FJ3FHH_cjs = require('./chunk-S5FJ3FHH.cjs');
6
7
  var lucideReact = require('lucide-react');
7
8
  var jsxRuntime = require('react/jsx-runtime');
8
9
 
@@ -29,7 +30,7 @@ function SplitButton({
29
30
  variant = "secondary"
30
31
  }) {
31
32
  return /* @__PURE__ */ jsxRuntime.jsxs(
32
- chunkKVJ27734_cjs.ButtonGroup,
33
+ chunkLIDE7FVO_cjs.ButtonGroup,
33
34
  {
34
35
  className,
35
36
  isDisabled,
@@ -38,7 +39,7 @@ function SplitButton({
38
39
  style,
39
40
  children: [
40
41
  /* @__PURE__ */ jsxRuntime.jsx(
41
- chunkWOVSJHY6_cjs.Button,
42
+ chunkS5FJ3FHH_cjs.Button,
42
43
  {
43
44
  "data-testid": dataTestId,
44
45
  endContent,
@@ -52,7 +53,7 @@ function SplitButton({
52
53
  }
53
54
  ),
54
55
  /* @__PURE__ */ jsxRuntime.jsx(
55
- chunkAC4E3WQA_cjs.DropdownMenu,
56
+ chunk7275FFQA_cjs.DropdownMenu,
56
57
  {
57
58
  button: {
58
59
  icon: lucideReact.ChevronDown,
@@ -76,5 +77,5 @@ function SplitButton({
76
77
  SplitButton.displayName = "SplitButton";
77
78
 
78
79
  exports.SplitButton = SplitButton;
79
- //# sourceMappingURL=chunk-6SMVH3ON.cjs.map
80
- //# sourceMappingURL=chunk-6SMVH3ON.cjs.map
80
+ //# sourceMappingURL=chunk-B333LIQQ.cjs.map
81
+ //# sourceMappingURL=chunk-B333LIQQ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/SplitButton/SplitButton.tsx"],"names":["jsxs","ButtonGroup","jsx","Button","DropdownMenu","ChevronDown"],"mappings":";;;;;;;;AA6FO,SAAS,WAAA,CAAY;AAAA,EAC1B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,cAAA;AAAA,EACZ,SAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,YAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA,GAAU;AACZ,CAAA,EAAwC;AACtC,EAAA,uBACEA,eAAA;AAAA,IAACC,6BAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAACC,wBAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAa,UAAA;AAAA,YACb,UAAA;AAAA,YACA,IAAA;AAAA,YACA,SAAA;AAAA,YACA,KAAA;AAAA,YACA,OAAA;AAAA,YACA,GAAA;AAAA,YACA,YAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,wBACAD,cAAA;AAAA,UAACE,8BAAA;AAAA,UAAA;AAAA,YACC,MAAA,EAAQ;AAAA,cACN,IAAA,EAAMC,uBAAA;AAAA,cACN,UAAA,EAAY,IAAA;AAAA,cACZ,KAAA,EAAO,SAAA;AAAA,cACP;AAAA,aACF;AAAA,YACA,YAAA;AAAA,YACA,UAAA,EAAY,KAAA;AAAA,YACZ,UAAA;AAAA,YACA,KAAA;AAAA,YACA,SAAA;AAAA,YACA,YAAA;AAAA,YACC;AAAA;AAAA;AACH;AAAA;AAAA,GACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-B333LIQQ.cjs","sourcesContent":["'use client';\n\nimport {ChevronDown} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {Button, type ButtonProps, type ButtonSize} from 'components/Button';\nimport {ButtonGroup} from 'components/ButtonGroup';\nimport {DropdownMenu, type DropdownMenuOption} from 'components/DropdownMenu';\nimport type {IconComponent} from 'components/Icon';\n\n/**\n * A directly-clickable primary action paired with an attached chevron toggle\n * that opens a menu of related actions. A thin composition of `ButtonGroup`,\n * `Button`, and `DropdownMenu`.\n */\nexport interface SplitButtonProps extends Pick<\n ButtonProps,\n 'endContent' | 'isLoading' | 'onClick' | 'startContent'\n> {\n /**\n * Compound menu content (`<DropdownMenuItem>`), an alternative to `items`.\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 primary action button.\n */\n 'data-testid'?: string;\n /**\n * Whether to auto-focus the first menu item on open.\n * @default true\n */\n hasAutoFocus?: boolean;\n /**\n * Icon rendered before the primary action's label.\n */\n icon?: IconComponent;\n /**\n * Whether both the primary action and the menu toggle are disabled.\n */\n isDisabled?: boolean;\n /**\n * Controlled open state of the menu.\n */\n isMenuOpen?: boolean;\n /**\n * Data-driven menu items (alternative to `children`).\n */\n items?: ReadonlyArray<DropdownMenuOption>;\n /**\n * Visible text for the primary action. Also used as the group's accessible\n * label.\n */\n label: string;\n /**\n * Accessible label for the chevron toggle that opens the menu.\n * @default 'More actions'\n */\n menuLabel?: string;\n /**\n * Width of the menu surface.\n */\n menuWidth?: number | string;\n /**\n * Called when the menu open state changes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the primary action button.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Default size for both buttons.\n * @default 'md'\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Visual style variant shared by both buttons.\n * @default 'secondary'\n */\n variant?: ButtonProps['variant'];\n}\n\n/**\n * A directly-clickable primary action paired with an attached chevron toggle\n * that opens a menu of related actions.\n */\nexport function SplitButton({\n children,\n className,\n 'data-testid': dataTestId,\n endContent,\n hasAutoFocus,\n icon,\n isDisabled = false,\n isLoading,\n isMenuOpen,\n items,\n label,\n menuLabel = 'More actions',\n menuWidth,\n onClick,\n onOpenChange,\n ref,\n size = 'md',\n startContent,\n style,\n variant = 'secondary',\n}: SplitButtonProps): React.JSX.Element {\n return (\n <ButtonGroup\n className={className}\n isDisabled={isDisabled}\n label={label}\n size={size}\n style={style}>\n <Button\n data-testid={dataTestId}\n endContent={endContent}\n icon={icon}\n isLoading={isLoading}\n label={label}\n onClick={onClick}\n ref={ref}\n startContent={startContent}\n variant={variant}\n />\n <DropdownMenu\n button={{\n icon: ChevronDown,\n isIconOnly: true,\n label: menuLabel,\n variant,\n }}\n hasAutoFocus={hasAutoFocus}\n hasChevron={false}\n isMenuOpen={isMenuOpen}\n items={items}\n menuWidth={menuWidth}\n onOpenChange={onOpenChange}>\n {children}\n </DropdownMenu>\n </ButtonGroup>\n );\n}\n\nSplitButton.displayName = 'SplitButton';\n"]}