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 +0,0 @@
1
- {"version":3,"sources":["../src/components/ToggleButton/ToggleButton.recipe.ts","../src/components/ToggleButton/ToggleButtonGroup.tsx","../src/components/ToggleButton/ToggleButton.tsx"],"names":["current","jsx"],"mappings":"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","file":"chunk-6SKIBUCY.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const toggleButtonRecipe = sva({\n slots: [\n 'root',\n 'content',\n 'labelWrapper',\n 'label',\n 'widthReservation',\n 'icon',\n 'spinner',\n ],\n base: {\n content: {\n display: 'contents',\n },\n labelWrapper: {\n display: 'inline-flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minW: 0,\n },\n label: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n minW: 0,\n // The label is a (blockified) flex item, so `overflow: hidden` clips it to\n // its line box. With a tight line-height that crops descenders (e.g. the\n // \"g\" in \"Going\"), so pad the clip box vertically and cancel the padding\n // with a negative margin to keep layout unchanged.\n py: '0.25em',\n mt: '-0.35em',\n mb: '-0.25em',\n },\n widthReservation: {\n display: 'block',\n h: 0,\n overflow: 'hidden',\n visibility: 'hidden',\n pointerEvents: 'none',\n fontWeight: 'semibold',\n },\n icon: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n },\n spinner: {\n display: 'inline-flex',\n alignItems: 'center',\n color: 'inherit',\n },\n },\n variants: {\n // The core button visuals (size/variant/iconOnly) come from the shared\n // `buttonRecipe`; this recipe only layers the selected-state override on the\n // root, which is composed with the button root via `cx`.\n isSelected: {\n true: {\n root: {\n bg: 'bg.subtle',\n fontWeight: 'semibold',\n _hover: {bg: 'bg.subtle'},\n _active: {bg: 'bg.subtle'},\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isSelected: false,\n },\n});\n\nexport type ToggleButtonVariants = RecipeVariantProps<\n typeof toggleButtonRecipe\n>;\n","import {\n createContext,\n use,\n useCallback,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport type {ButtonSize} from 'components/Button';\nimport {cx} from 'internal/cx';\nimport {css} from 'styled-system/css';\n\nexport type ToggleButtonGroupOrientation = 'horizontal' | 'vertical';\n\ninterface ToggleButtonGroupContextValue {\n isDisabled?: boolean;\n onToggle: (value: string) => void;\n selectedValues: Set<string>;\n size?: ButtonSize;\n}\n\nconst ToggleButtonGroupContext =\n createContext<ToggleButtonGroupContextValue | null>(null);\n\nToggleButtonGroupContext.displayName = 'ToggleButtonGroupContext';\n\nexport function useToggleButtonGroup(): ToggleButtonGroupContextValue | null {\n return use(ToggleButtonGroupContext);\n}\n\ninterface ToggleButtonGroupBaseProps {\n /**\n * Toggle button children.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the group root.\n */\n className?: string;\n /**\n * Test ID applied to the group root.\n */\n 'data-testid'?: string;\n /**\n * Whether all buttons in the group are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Accessible label for the group.\n */\n label: string;\n /**\n * Group orientation.\n * @default 'horizontal'\n */\n orientation?: ToggleButtonGroupOrientation;\n /**\n * Ref forwarded to the group root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Default size for buttons in the group.\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the group root.\n */\n style?: CSSProperties;\n}\n\nexport interface ToggleButtonGroupSingleProps extends ToggleButtonGroupBaseProps {\n /**\n * Called with the selected value when selection changes, or `null`\n * when the active button is deselected.\n */\n onChange: (value: string | null) => void;\n /**\n * Single-selection mode. Clicking the active button clears selection.\n * @default 'single'\n */\n type?: 'single';\n /**\n * Currently selected value, or `null` for no selection.\n */\n value: string | null;\n}\n\nexport interface ToggleButtonGroupMultipleProps extends ToggleButtonGroupBaseProps {\n /**\n * Called with the array of selected values when selection changes.\n */\n onChange: (value: string[]) => void;\n /**\n * Multiple-selection mode.\n */\n type: 'multiple';\n /**\n * Currently selected values.\n */\n value: string[];\n}\n\nexport type ToggleButtonGroupProps =\n | ToggleButtonGroupSingleProps\n | ToggleButtonGroupMultipleProps;\n\nconst styles = {\n group: css({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '1',\n }),\n vertical: css({\n flexDirection: 'column',\n alignItems: 'stretch',\n }),\n} as const;\n\n/**\n * Groups related ToggleButtons and manages shared selection state.\n */\nexport function ToggleButtonGroup({\n children,\n className,\n 'data-testid': dataTestId,\n isDisabled = false,\n label,\n orientation = 'horizontal',\n ref,\n size,\n style,\n ...props\n}: ToggleButtonGroupProps): React.JSX.Element {\n const isMultiple = props.type === 'multiple';\n const {onChange, value} = props;\n\n const selectedValues = useMemo(() => {\n if (isMultiple) {\n return new Set(value as string[]);\n }\n\n return value == null ? new Set<string>() : new Set([value as string]);\n }, [isMultiple, value]);\n\n const onToggle = useCallback(\n (itemValue: string) => {\n if (isMultiple) {\n const current = value as string[];\n (onChange as (v: string[]) => void)(\n current.includes(itemValue)\n ? current.filter(v => v !== itemValue)\n : [...current, itemValue],\n );\n return;\n }\n\n const current = value as string | null;\n (onChange as (v: string | null) => void)(\n current === itemValue ? null : itemValue,\n );\n },\n [isMultiple, value, onChange],\n );\n\n const contextValue = useMemo(\n () => ({isDisabled, onToggle, selectedValues, size}),\n [isDisabled, onToggle, selectedValues, size],\n );\n\n return (\n <ToggleButtonGroupContext value={contextValue}>\n <div\n aria-disabled={isDisabled || undefined}\n aria-label={label}\n className={cx(\n styles.group,\n orientation === 'vertical' ? styles.vertical : undefined,\n className,\n )}\n data-orientation={orientation}\n data-testid={dataTestId}\n ref={ref}\n role=\"group\"\n style={style}>\n {children}\n </div>\n </ToggleButtonGroupContext>\n );\n}\n\nToggleButtonGroup.displayName = 'ToggleButtonGroup';\n","import type {CSSProperties, MouseEvent, Ref} from 'react';\nimport type {ButtonSize} from 'components/Button';\nimport {buttonRecipe} from 'components/Button/Button.recipe';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Spinner} from 'components/Spinner';\nimport {toggleButtonRecipe} from 'components/ToggleButton/ToggleButton.recipe';\nimport {useToggleButtonGroup} from 'components/ToggleButton/ToggleButtonGroup';\nimport {Tooltip} from 'components/Tooltip';\nimport {cx} from 'internal/cx';\n\nexport interface ToggleButtonProps {\n /**\n * Additional CSS class names applied to the button root.\n */\n className?: string;\n /**\n * Test ID applied to the button root.\n */\n 'data-testid'?: string;\n /**\n * Icon element rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the button is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label and render a square icon button.\n * @default false\n */\n isIconOnly?: boolean;\n /**\n * Whether the button is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Whether the button is currently selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Accessible label for the button.\n */\n label: string;\n /**\n * Called when the selected state should change.\n */\n onChange?: (isSelected: boolean) => void;\n /**\n * Ref forwarded to the button root.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Icon element rendered when the button is selected.\n */\n selectedIcon?: IconComponent;\n /**\n * Visual size of the button.\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the button root.\n */\n style?: CSSProperties;\n /**\n * Tooltip text shown on hover.\n */\n tooltip?: string;\n /**\n * Value identifier when used inside `ToggleButtonGroup`.\n */\n value?: string;\n}\n\n/**\n * Button that toggles between selected and unselected states.\n */\nexport function ToggleButton({\n className,\n 'data-testid': dataTestId,\n icon,\n isDisabled: isDisabledProp = false,\n isIconOnly = false,\n isLoading = false,\n isSelected: isSelectedProp = false,\n label,\n onChange,\n selectedIcon,\n ref,\n size: sizeProp,\n style,\n tooltip,\n value,\n}: ToggleButtonProps): React.JSX.Element {\n const group = useToggleButtonGroup();\n\n if (process.env.NODE_ENV !== 'production') {\n if (group != null && value == null) {\n throw new Error(\n 'ToggleButton: `value` prop is required when used inside a ToggleButtonGroup.',\n );\n }\n }\n\n const isSelected =\n group != null && value != null\n ? group.selectedValues.has(value)\n : isSelectedProp;\n const size = sizeProp ?? group?.size ?? 'md';\n const isDisabled = isDisabledProp || group?.isDisabled === true;\n const resolvedIcon = isSelected && selectedIcon != null ? selectedIcon : icon;\n const classes = toggleButtonRecipe({isSelected});\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (isDisabled || isLoading) {\n event.preventDefault();\n return;\n }\n\n if (group != null && value != null) {\n group.onToggle(value);\n return;\n }\n\n onChange?.(!isSelected);\n };\n\n const button = (\n <button\n aria-busy={isLoading || undefined}\n aria-label={isIconOnly || isLoading ? label : undefined}\n aria-pressed={isSelected}\n className={cx(\n buttonRecipe({variant: 'ghost', size, iconOnly: isIconOnly}).root,\n classes.root,\n className,\n )}\n data-testid={dataTestId}\n disabled={isDisabled || isLoading}\n onClick={handleClick}\n ref={ref}\n style={style}\n type=\"button\">\n <span aria-hidden={isLoading || undefined} className={classes.content}>\n {resolvedIcon != null ? (\n <span className={classes.icon}>\n {isIconOnly && isLoading ? (\n <Spinner size={size} />\n ) : (\n <Icon icon={resolvedIcon} size={size} />\n )}\n </span>\n ) : null}\n {!isIconOnly ? (\n <span className={classes.labelWrapper}>\n <span className={classes.label}>{label}</span>\n <span aria-hidden=\"true\" className={classes.widthReservation}>\n {label}\n </span>\n </span>\n ) : null}\n {!isIconOnly && isLoading ? (\n <span aria-hidden=\"true\" className={classes.spinner}>\n <Spinner size={size} />\n </span>\n ) : null}\n </span>\n </button>\n );\n\n if (tooltip != null) {\n return <Tooltip content={tooltip}>{button}</Tooltip>;\n }\n\n return button;\n}\n\nToggleButton.displayName = 'ToggleButton';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/SplitButton/SplitButton.tsx"],"names":["jsxs","ButtonGroup","jsx","Button","DropdownMenu","ChevronDown"],"mappings":";;;;;;;;AA2FO,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-6SMVH3ON.cjs","sourcesContent":["import {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"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":["css","useMemo","jsx","Button","Text","cx","jsxs","ChevronLeft","ChevronRight"],"mappings":";;;;;;;;;;AA+EA,IAAM,MAAA,GAAS;AAAA,EACb,MAAMA,qBAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,eAAA;AAAA,IAChB,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,UAAUA,qBAAA,CAAI;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,UAAUA,qBAAA,CAAI;AAAA,IACZ,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,KAAA,EAAO,UAAA;AAAA,IACP,UAAA,EAAY,MAAA;AAAA,IACZ,QAAA,EAAU,IAAA;AAAA,IACV,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,UAAUA,qBAAA,CAAI;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,YAAYA,qBAAA,CAAI;AAAA,IACd,EAAA,EAAI,UAAA;AAAA,IACJ,UAAA,EAAY;AAAA,GACb;AACH,CAAA;AAEA,SAAS,iBAAA,CACP,WAAA,EACA,UAAA,EACA,YAAA,EACoB;AACpB,EAAA,MAAM,UAAA,GAAa,IAAI,CAAA,GAAI,YAAA;AAE3B,EAAA,IAAI,cAAc,UAAA,EAAY;AAC5B,IAAA,OAAO,KAAA,CAAM,IAAA,CAAK,EAAC,MAAA,EAAQ,UAAA,IAAa,CAAC,CAAA,EAAG,KAAA,KAAU,KAAA,GAAQ,CAAC,CAAA;AAAA,EACjE;AAEA,EAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,GAAA,CAAI,WAAA,GAAc,cAAc,CAAC,CAAA;AAC/D,EAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,GAAA,CAAI,WAAA,GAAc,cAAc,UAAU,CAAA;AACzE,EAAA,MAAM,mBAAmB,gBAAA,GAAmB,CAAA;AAC5C,EAAA,MAAM,iBAAA,GAAoB,oBAAoB,UAAA,GAAa,CAAA;AAE3D,EAAA,IAAI,CAAC,oBAAoB,iBAAA,EAAmB;AAC1C,IAAA,MAAM,SAAA,GAAY,IAAI,CAAA,GAAI,YAAA;AAC1B,IAAA,OAAO;AAAA,MACL,GAAG,KAAA,CAAM,IAAA,CAAK,EAAC,MAAA,EAAQ,SAAA,EAAS,EAAG,CAAC,CAAA,EAAG,KAAA,KAAU,KAAA,GAAQ,CAAC,CAAA;AAAA,MAC1D,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAEA,EAAA,IAAI,gBAAA,IAAoB,CAAC,iBAAA,EAAmB;AAC1C,IAAA,MAAM,UAAA,GAAa,IAAI,CAAA,GAAI,YAAA;AAC3B,IAAA,OAAO;AAAA,MACL,CAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAG,KAAA,CAAM,IAAA;AAAA,QACP,EAAC,QAAQ,UAAA,EAAU;AAAA,QACnB,CAAC,CAAA,EAAG,KAAA,KAAU,UAAA,GAAa,aAAa,KAAA,GAAQ;AAAA;AAClD,KACF;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,CAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG,KAAA,CAAM,IAAA;AAAA,MACP,EAAC,MAAA,EAAQ,iBAAA,GAAoB,gBAAA,GAAmB,CAAA,EAAC;AAAA,MACjD,CAAC,CAAA,EAAG,KAAA,KAAU,gBAAA,GAAmB;AAAA,KACnC;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF;AACF;AAMO,SAAS,UAAA,CAAW;AAAA,EACzB,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,OAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,KAAA,GAAQ,YAAA;AAAA,EACR,QAAA;AAAA,EACA,IAAA,EAAM,aAAA;AAAA,EACN,UAAU,iBAAA,GAAoB,EAAA;AAAA,EAC9B,GAAA;AAAA,EACA,cAAc,qBAAA,GAAwB,CAAA;AAAA,EACtC,IAAA,GAAO,IAAA;AAAA,EACP,KAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA,EAAY,cAAA;AAAA,EACZ,OAAA,GAAU;AACZ,CAAA,EAA8C;AAC5C,EAAA,MAAM,YAAA,GAAe,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,qBAAqB,CAAA;AACtD,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,iBAAiB,CAAA;AAC9C,EAAA,MAAM,kBAAA,GACJ,mBACC,UAAA,IAAc,IAAA,GAAO,KAAK,IAAA,CAAK,UAAA,GAAa,QAAQ,CAAA,GAAI,MAAA,CAAA;AAC3D,EAAA,MAAM,OAAO,IAAA,CAAK,GAAA;AAAA,IAChB,CAAA;AAAA,IACA,sBAAsB,IAAA,GAClB,IAAA,CAAK,GAAA,CAAI,aAAA,EAAe,kBAAkB,CAAA,GAC1C;AAAA,GACN;AACA,EAAA,MAAM,cAAc,IAAA,GAAO,CAAA;AAC3B,EAAA,MAAM,OAAA,GACJ,kBAAA,IAAsB,IAAA,GAAO,IAAA,GAAO,qBAAsB,OAAA,IAAW,KAAA;AAEvE,EAAA,MAAM,SAAA,GAAYC,aAAA;AAAA,IAChB,MACE,sBAAsB,IAAA,GAClB,iBAAA,CAAkB,MAAM,kBAAA,EAAoB,YAAY,IACxD,EAAC;AAAA,IACP,CAAC,IAAA,EAAM,kBAAA,EAAoB,YAAY;AAAA,GACzC;AAEA,EAAA,IAAI,UAAA,IAAc,IAAA,IAAQ,UAAA,IAAc,CAAA,EAAG;AACzC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,kBAAA,IAAsB,IAAA,IAAQ,kBAAA,IAAsB,CAAA,EAAG;AACzD,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,OAAA,KAAoB;AAC5C,IAAA,IAAI,UAAA,EAAY;AACd,MAAA;AAAA,IACF;AAEA,IAAA,QAAA,CAAS,OAAO,CAAA;AAAA,EAClB,CAAA;AAEA,EAAA,MAAM,UAAA,GAAA,CAAc,IAAA,GAAO,CAAA,IAAK,QAAA,GAAW,CAAA;AAC3C,EAAA,MAAM,QAAA,GACJ,cAAc,IAAA,GACV,IAAA,GAAO,WACP,IAAA,CAAK,GAAA,CAAI,IAAA,GAAO,QAAA,EAAU,UAAU,CAAA;AAE1C,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,QAAQ,OAAA;AAAS,MACf,KAAK,OAAA,EAAS;AACZ,QAAA,IAAI,sBAAsB,IAAA,EAAM;AAC9B,UAAA,OAAO,IAAA;AAAA,QACT;AAEA,QAAA,OAAO,SAAA,CAAU,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AACpC,UAAA,IAAI,SAAS,KAAA,EAAO;AAClB,YAAA,uBACEC,cAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,aAAA,EAAY,MAAA;AAAA,gBACZ,WAAW,MAAA,CAAO,QAAA;AAAA,gBAC+C,QAAA,EAAA;AAAA,eAAA;AAAA,cAA5D,CAAA,SAAA,EAAY,UAAU,KAAA,GAAQ,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,KAAA,GAAQ,CAAC,CAAC,CAAA;AAAA,aAE/D;AAAA,UAEJ;AAEA,UAAA,MAAM,WAAW,IAAA,KAAS,IAAA;AAC1B,UAAA,uBACEA,cAAA;AAAA,YAACC,wBAAA;AAAA,YAAA;AAAA,cACC,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,cAClC,cACE,QAAA,GAAW,CAAA,KAAA,EAAQ,IAAI,CAAA,cAAA,CAAA,GAAmB,cAAc,IAAI,CAAA,CAAA;AAAA,cAE9D,SAAA,EAAW,QAAA,GAAW,MAAA,CAAO,UAAA,GAAa,MAAA;AAAA,cAC1C,UAAA;AAAA,cAEA,KAAA,EAAO,OAAO,IAAI,CAAA;AAAA,cAClB,OAAA,EAAS,QAAA,GAAW,MAAA,GAAY,MAAM,iBAAiB,IAAI,CAAA;AAAA,cAC3D,IAAA;AAAA,cACA,OAAA,EAAQ;AAAA,aAAA;AAAA,YAJH;AAAA,WAKP;AAAA,QAEJ,CAAC,CAAA;AAAA,MACH;AAAA,MAEA,KAAK,OAAA;AACH,QAAA,OAAO,UAAA,IAAc,IAAA,GAAO,IAAA,mBAC1BD,cAAA,CAAC,MAAA,EAAA,EAAK,aAAU,QAAA,EAAS,SAAA,EAAW,MAAA,CAAO,QAAA,EACzC,QAAA,kBAAAA,cAAA,CAACE,sBAAA,EAAA,EAAK,OAAM,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,IAAA,EAAK,MAAA,EAClC,QAAA,EAAA,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,QAAQ,CAAA,IAAA,EAAO,UAAU,CAAA,CAAA,EAC7C,CAAA,EACF,CAAA;AAAA,MAGJ,KAAK,SAAA;AACH,QAAA,OAAO,kBAAA,IAAsB,OAAO,IAAA,mBAClCF,cAAA,CAAC,UAAK,WAAA,EAAU,QAAA,EAAS,SAAA,EAAW,MAAA,CAAO,QAAA,EACzC,QAAA,kBAAAA,cAAA,CAACE,0BAAK,KAAA,EAAM,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,IAAA,EAAK,MAAA,EAClC,kBAAQ,IAAI,CAAA,IAAA,EAAO,kBAAkB,CAAA,CAAA,EACxC,CAAA,EACF,CAAA;AAAA,MAGJ,KAAK,MAAA;AAAA,MACL;AACE,QAAA,OAAO,IAAA;AAAA;AACX,EACF,CAAA;AAEA,EAAA,uBACEF,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAWG,oBAAA,CAAG,MAAA,CAAO,IAAA,EAAM,SAAS,CAAA;AAAA,MACpC,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA,kBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,QAAA,EACrB,QAAA,EAAA;AAAA,wBAAAJ,cAAA;AAAA,UAACC,wBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAMI,uBAAA;AAAA,YACN,UAAA,EAAY,cAAc,CAAC,WAAA;AAAA,YAC3B,UAAA,EAAU,IAAA;AAAA,YACV,KAAA,EAAM,qBAAA;AAAA,YACN,OAAA,EAAS,MAAM,gBAAA,CAAiB,IAAA,GAAO,CAAC,CAAA;AAAA,YACxC,IAAA;AAAA,YACA,OAAA,EAAQ;AAAA;AAAA,SACV;AAAA,QACC,eAAA,EAAgB;AAAA,wBACjBL,cAAA;AAAA,UAACC,wBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAMK,wBAAA;AAAA,YACN,UAAA,EAAY,cAAc,CAAC,OAAA;AAAA,YAC3B,UAAA,EAAU,IAAA;AAAA,YACV,KAAA,EAAM,iBAAA;AAAA,YACN,OAAA,EAAS,MAAM,gBAAA,CAAiB,IAAA,GAAO,CAAC,CAAA;AAAA,YACxC,IAAA;AAAA,YACA,OAAA,EAAQ;AAAA;AAAA;AACV,OAAA,EACF;AAAA;AAAA,GACF;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-6ZPHID26.cjs","sourcesContent":["import {ChevronLeft, ChevronRight} from 'lucide-react';\nimport type {CSSProperties, Ref} from 'react';\nimport {useMemo} from 'react';\nimport {Button} from 'components/Button';\nimport type {ButtonSize} from 'components/Button';\nimport {Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport {css} from 'styled-system/css';\n\nexport type PaginationVariant = 'pages' | 'count' | 'compact' | 'none';\n\ninterface PaginationBaseProps {\n /**\n * Additional CSS class names applied to the navigation root.\n */\n className?: string;\n /**\n * Test ID applied to the navigation root.\n */\n 'data-testid'?: string;\n /**\n * Whether another page exists when the total page count is unknown.\n */\n hasMore?: boolean;\n /**\n * Whether the pagination controls are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Accessible label for the navigation landmark.\n * @default 'Pagination'\n */\n label?: string;\n /**\n * Called when the page changes.\n */\n onChange: (page: number) => void;\n /**\n * Current page number, starting at 1.\n */\n page: number;\n /**\n * Number of items per page.\n * @default 10\n */\n pageSize?: number;\n /**\n * Ref forwarded to the navigation root.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Number of page buttons to show on each side of the current page.\n * @default 1\n */\n siblingCount?: number;\n /**\n * Control size.\n * @default 'md'\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the navigation root.\n */\n style?: CSSProperties;\n /**\n * Display variant.\n * @default 'pages'\n */\n variant?: PaginationVariant;\n}\n\nexport type PaginationProps = PaginationBaseProps &\n (\n | {totalItems: number; totalPages?: never}\n | {totalItems?: never; totalPages: number}\n | {totalItems?: never; totalPages?: never}\n );\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '4',\n }),\n controls: css({\n display: 'flex',\n alignItems: 'center',\n gap: '1',\n }),\n ellipsis: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n userSelect: 'none',\n }),\n infoText: css({\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n }),\n activePage: css({\n bg: 'bg.hover',\n fontWeight: 'medium',\n }),\n} as const;\n\nfunction generatePageRange(\n currentPage: number,\n totalPages: number,\n siblingCount: number,\n): (number | '...')[] {\n const totalSlots = 5 + 2 * siblingCount;\n\n if (totalPages <= totalSlots) {\n return Array.from({length: totalPages}, (_, index) => index + 1);\n }\n\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);\n const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages);\n const showLeftEllipsis = leftSiblingIndex > 2;\n const showRightEllipsis = rightSiblingIndex < totalPages - 1;\n\n if (!showLeftEllipsis && showRightEllipsis) {\n const leftRange = 3 + 2 * siblingCount;\n return [\n ...Array.from({length: leftRange}, (_, index) => index + 1),\n '...',\n totalPages,\n ];\n }\n\n if (showLeftEllipsis && !showRightEllipsis) {\n const rightRange = 3 + 2 * siblingCount;\n return [\n 1,\n '...',\n ...Array.from(\n {length: rightRange},\n (_, index) => totalPages - rightRange + index + 1,\n ),\n ];\n }\n\n return [\n 1,\n '...',\n ...Array.from(\n {length: rightSiblingIndex - leftSiblingIndex + 1},\n (_, index) => leftSiblingIndex + index,\n ),\n '...',\n totalPages,\n ];\n}\n\n/**\n * Page navigation controls with multiple display variants\n * (numbered pages, count summary, compact label, or none).\n */\nexport function Pagination({\n className,\n 'data-testid': dataTestId,\n hasMore,\n isDisabled = false,\n label = 'Pagination',\n onChange,\n page: pageFromProps,\n pageSize: pageSizeFromProps = 10,\n ref,\n siblingCount: siblingCountFromProps = 1,\n size = 'md',\n style,\n totalItems,\n totalPages: totalPagesProp,\n variant = 'pages',\n}: PaginationProps): React.JSX.Element | null {\n const siblingCount = Math.max(0, siblingCountFromProps);\n const pageSize = Math.max(1, pageSizeFromProps);\n const computedTotalPages =\n totalPagesProp ??\n (totalItems != null ? Math.ceil(totalItems / pageSize) : undefined);\n const page = Math.max(\n 1,\n computedTotalPages != null\n ? Math.min(pageFromProps, computedTotalPages)\n : pageFromProps,\n );\n const hasPrevious = page > 1;\n const hasNext =\n computedTotalPages != null ? page < computedTotalPages : (hasMore ?? false);\n\n const pageRange = useMemo(\n () =>\n computedTotalPages != null\n ? generatePageRange(page, computedTotalPages, siblingCount)\n : [],\n [page, computedTotalPages, siblingCount],\n );\n\n if (totalItems != null && totalItems <= 0) {\n return null;\n }\n\n if (computedTotalPages != null && computedTotalPages <= 0) {\n return null;\n }\n\n const handlePageChange = (newPage: number) => {\n if (isDisabled) {\n return;\n }\n\n onChange(newPage);\n };\n\n const rangeStart = (page - 1) * pageSize + 1;\n const rangeEnd =\n totalItems == null\n ? page * pageSize\n : Math.min(page * pageSize, totalItems);\n\n const renderIndicator = () => {\n switch (variant) {\n case 'pages': {\n if (computedTotalPages == null) {\n return null;\n }\n\n return pageRange.map((item, index) => {\n if (item === '...') {\n return (\n <span\n aria-hidden=\"true\"\n className={styles.ellipsis}\n key={`ellipsis-${pageRange[index - 1]}-${pageRange[index + 1]}`}>\n ...\n </span>\n );\n }\n\n const isActive = item === page;\n return (\n <Button\n aria-current={isActive ? 'page' : undefined}\n aria-label={\n isActive ? `Page ${item}, current page` : `Go to page ${item}`\n }\n className={isActive ? styles.activePage : undefined}\n isDisabled={isDisabled}\n key={item}\n label={String(item)}\n onClick={isActive ? undefined : () => handlePageChange(item)}\n size={size}\n variant=\"ghost\"\n />\n );\n });\n }\n\n case 'count':\n return totalItems == null ? null : (\n <span aria-live=\"polite\" className={styles.infoText}>\n <Text color=\"primary\" size=\"sm\" type=\"body\">\n {`${rangeStart}-${rangeEnd} of ${totalItems}`}\n </Text>\n </span>\n );\n\n case 'compact':\n return computedTotalPages == null ? null : (\n <span aria-live=\"polite\" className={styles.infoText}>\n <Text color=\"primary\" size=\"sm\" type=\"body\">\n {`Page ${page} of ${computedTotalPages}`}\n </Text>\n </span>\n );\n\n case 'none':\n default:\n return null;\n }\n };\n\n return (\n <nav\n aria-label={label}\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <div className={styles.controls}>\n <Button\n icon={ChevronLeft}\n isDisabled={isDisabled || !hasPrevious}\n isIconOnly\n label=\"Go to previous page\"\n onClick={() => handlePageChange(page - 1)}\n size={size}\n variant=\"ghost\"\n />\n {renderIndicator()}\n <Button\n icon={ChevronRight}\n isDisabled={isDisabled || !hasNext}\n isIconOnly\n label=\"Go to next page\"\n onClick={() => handlePageChange(page + 1)}\n size={size}\n variant=\"ghost\"\n />\n </div>\n </nav>\n );\n}\n\nPagination.displayName = 'Pagination';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/DropdownMenu/DropdownMenuContext.ts","../src/components/DropdownMenu/DropdownMenuItem.recipe.ts","../src/components/DropdownMenu/DropdownMenuItem.tsx","../src/components/DropdownMenu/menuUtils.tsx","../src/components/DropdownMenu/DropdownMenu.tsx"],"names":["createContext","use","sva","jsx","cx","Item","Icon","css","Divider","jsxs","Text","useCallback","useState","useRef","isReactNode","useMemo","Popover","Button","Fragment","ChevronDown"],"mappings":"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","file":"chunk-AC4E3WQA.cjs","sourcesContent":["import {createContext, use} from 'react';\nimport type {ButtonSize} from 'components/Button';\n\nexport interface DropdownMenuContextValue {\n closeMenu: () => void;\n menuSize: ButtonSize;\n}\n\nexport const DropdownMenuContext =\n createContext<DropdownMenuContextValue | null>(null);\n\nDropdownMenuContext.displayName = 'DropdownMenuContext';\n\nexport function useDropdownMenuContext(): DropdownMenuContextValue | null {\n return use(DropdownMenuContext);\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const dropdownMenuItemRecipe = sva({\n slots: ['root', 'icon'],\n base: {\n root: {\n display: 'block',\n w: 'full',\n borderRadius: 'md',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'body',\n textAlign: 'start',\n _hover: {bg: 'bg.subtle'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffsetTight',\n },\n _disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n },\n icon: {\n display: 'inline-flex',\n flexShrink: 0,\n color: 'fg.muted',\n },\n },\n variants: {\n size: {\n sm: {\n root: {\n minH: 'component.sm',\n '& > *': {py: '0.5', px: '1.5', gap: '1.5'},\n },\n },\n md: {\n root: {minH: 'component.md', '& > *': {py: '1.5', px: '2'}},\n },\n lg: {\n root: {\n minH: 'component.lg',\n '& > *': {py: '2.5', px: '2.5', gap: '2.5'},\n },\n },\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport type DropdownMenuItemVariants = RecipeVariantProps<\n typeof dropdownMenuItemRecipe\n>;\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useDropdownMenuContext} from 'components/DropdownMenu/DropdownMenuContext';\nimport {dropdownMenuItemRecipe} from 'components/DropdownMenu/DropdownMenuItem.recipe';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Item} from 'components/Item';\nimport {cx} from 'internal/cx';\n\nexport interface DropdownMenuItemProps {\n /**\n * Additional CSS class names applied to the item.\n */\n className?: string;\n /**\n * Test ID applied to the item.\n */\n 'data-testid'?: string;\n /**\n * Supporting text shown below the label.\n */\n description?: ReactNode;\n /**\n * Trailing content.\n */\n endContent?: ReactNode;\n /**\n * Icon rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Item label.\n */\n label: string;\n /**\n * Called when the item is selected.\n */\n onClick?: () => void;\n /**\n * Ref forwarded to the item button.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Inline styles applied to the item.\n */\n style?: CSSProperties;\n}\n\n/**\n * Action item inside a `DropdownMenu`.\n */\nexport function DropdownMenuItem({\n className,\n 'data-testid': dataTestId,\n description,\n endContent,\n icon,\n isDisabled = false,\n label,\n onClick,\n ref,\n style,\n}: DropdownMenuItemProps): React.JSX.Element {\n const context = useDropdownMenuContext();\n const menuSize = context?.menuSize ?? 'md';\n const classes = dropdownMenuItemRecipe({size: menuSize});\n\n return (\n <button\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n disabled={isDisabled}\n onClick={() => {\n onClick?.();\n context?.closeMenu();\n }}\n ref={ref}\n role=\"menuitem\"\n style={style}\n type=\"button\">\n <Item\n as=\"span\"\n description={description}\n endContent={endContent}\n label={label}\n startContent={\n icon != null ? (\n <span className={classes.icon}>\n <Icon color=\"secondary\" icon={icon} size=\"sm\" />\n </span>\n ) : null\n }\n />\n </button>\n );\n}\n\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n","/* eslint-disable @eslint-react/no-array-index-key */\nimport {useCallback, type KeyboardEvent, type ReactNode} from 'react';\nimport {Divider} from 'components/Divider';\nimport {DropdownMenuItem} from 'components/DropdownMenu/DropdownMenuItem';\nimport type {DropdownMenuOption} from 'components/DropdownMenu/types';\nimport {Text} from 'components/Text';\nimport {css} from 'styled-system/css';\n\nconst menuStyles = {\n section: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n }),\n heading: css({\n px: '2',\n py: '1',\n userSelect: 'none',\n }),\n divider: css({\n my: '1',\n }),\n} as const;\n\nexport function formatMenuWidth(\n value: number | string | undefined,\n): string | undefined {\n if (value == null) {\n return undefined;\n }\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nexport function renderMenuItems(\n items: ReadonlyArray<DropdownMenuOption>,\n): ReactNode {\n return items.map((item, index) => {\n if ('type' in item && item.type === 'divider') {\n return (\n <Divider className={menuStyles.divider} key={`divider-${index}`} />\n );\n }\n\n if ('type' in item) {\n return (\n <div\n aria-label={item.title}\n className={menuStyles.section}\n key={`section-${item.title ?? index}`}\n role=\"group\">\n {item.title != null ? (\n <Text\n as=\"span\"\n className={menuStyles.heading}\n color=\"secondary\"\n type=\"supporting\">\n {item.title}\n </Text>\n ) : null}\n {item.items.map(sectionItem => (\n <DropdownMenuItem\n description={sectionItem.description}\n icon={sectionItem.icon}\n isDisabled={sectionItem.isDisabled}\n key={sectionItem.label}\n label={sectionItem.label}\n onClick={sectionItem.onClick}\n />\n ))}\n </div>\n );\n }\n\n return (\n <DropdownMenuItem\n description={item.description}\n icon={item.icon}\n isDisabled={item.isDisabled}\n key={item.label}\n label={item.label}\n onClick={item.onClick}\n />\n );\n });\n}\n\nexport function useMenuKeyboard(\n menuRef: React.RefObject<HTMLElement | null>,\n onClose: () => void,\n): (event: KeyboardEvent<HTMLElement>) => void {\n const getMenuItems = useCallback(() => {\n if (menuRef.current == null) {\n return [];\n }\n return Array.from(\n menuRef.current.querySelectorAll<HTMLElement>(\n '[role=\"menuitem\"]:not(:disabled):not([aria-disabled=\"true\"])',\n ),\n );\n }, [menuRef]);\n\n return useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n const menuItems = getMenuItems();\n if (menuItems.length === 0) {\n return;\n }\n const currentIndex = menuItems.findIndex(\n item => item === document.activeElement,\n );\n let nextIndex: number;\n\n switch (event.key) {\n case 'ArrowDown':\n nextIndex =\n currentIndex === -1 ? 0 : (currentIndex + 1) % menuItems.length;\n break;\n case 'ArrowUp':\n nextIndex =\n currentIndex === -1\n ? menuItems.length - 1\n : (currentIndex - 1 + menuItems.length) % menuItems.length;\n break;\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = menuItems.length - 1;\n break;\n case 'Escape':\n event.preventDefault();\n onClose();\n return;\n case 'Enter':\n case ' ':\n if (document.activeElement instanceof HTMLElement) {\n event.preventDefault();\n document.activeElement.click();\n }\n return;\n default:\n if (event.key.length === 1) {\n const char = event.key.toLowerCase();\n const startIndex = currentIndex === -1 ? 0 : currentIndex + 1;\n for (let i = 0; i < menuItems.length; i++) {\n const index = (startIndex + i) % menuItems.length;\n const label = menuItems[index].textContent.trim().toLowerCase();\n if (label.startsWith(char)) {\n event.preventDefault();\n menuItems[index].focus();\n return;\n }\n }\n }\n return;\n }\n\n event.preventDefault();\n menuItems[nextIndex]?.focus();\n },\n [getMenuItems, onClose],\n );\n}\n","import {ChevronDown} from 'lucide-react';\nimport {\n useCallback,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button, type ButtonProps, type ButtonSize} from 'components/Button';\nimport {DropdownMenuContext} from 'components/DropdownMenu/DropdownMenuContext';\nimport {\n formatMenuWidth,\n renderMenuItems,\n useMenuKeyboard,\n} from 'components/DropdownMenu/menuUtils';\nimport type {DropdownMenuOption} from 'components/DropdownMenu/types';\nimport {Icon} from 'components/Icon';\nimport {Popover} from 'components/Popover';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\n\nexport type {\n DropdownMenuDivider,\n DropdownMenuItemData,\n DropdownMenuOption,\n DropdownMenuSection,\n} from 'components/DropdownMenu/types';\n\ntype DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, K>\n : never;\n\nexport type DropdownMenuButtonProps = DistributiveOmit<ButtonProps, 'onClick'>;\n\nexport interface DropdownMenuProps {\n /**\n * Trigger button props.\n */\n button?: DropdownMenuButtonProps;\n /**\n * Compound menu content (alternative to `items`).\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the menu surface.\n */\n className?: string;\n /**\n * Test ID applied to the trigger 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 * Whether to show a chevron on the trigger button.\n * @default true\n */\n hasChevron?: boolean;\n /**\n * Controlled open state.\n */\n isMenuOpen?: boolean;\n /**\n * Data-driven menu items.\n */\n items?: ReadonlyArray<DropdownMenuOption>;\n /**\n * Width of the menu surface.\n */\n menuWidth?: number | string;\n /**\n * Click handler for the trigger button.\n */\n onClick?: () => void;\n /**\n * Called when the menu open state changes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the trigger button.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Inline styles applied to the menu surface.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n menu: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n maxH: '80',\n overflowY: 'auto',\n p: '1',\n }),\n} as const;\n\nconst defaultButton = {label: 'Menu'} satisfies DropdownMenuButtonProps;\n\n/**\n * Button-triggered menu for grouped actions.\n */\nexport function DropdownMenu({\n button = defaultButton,\n children,\n className,\n 'data-testid': dataTestId,\n hasAutoFocus = true,\n hasChevron = true,\n isMenuOpen,\n items,\n menuWidth,\n onClick,\n onOpenChange,\n ref,\n style,\n}: DropdownMenuProps): React.JSX.Element {\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = isMenuOpen !== undefined;\n const isOpen = isControlled ? isMenuOpen : internalOpen;\n const menuSize: ButtonSize = button.size ?? 'md';\n const menuRef = useRef<HTMLDivElement>(null);\n\n if (process.env.NODE_ENV !== 'production') {\n if (items != null && isReactNode(children)) {\n throw new Error(\n 'DropdownMenu: pass either `items` or `children`, not both.',\n );\n }\n if (items == null && !isReactNode(children)) {\n throw new Error('DropdownMenu: provide either `items` or `children`.');\n }\n }\n\n const hide = useCallback(() => {\n if (isControlled) {\n onOpenChange?.(false);\n } else {\n setInternalOpen(false);\n }\n }, [isControlled, onOpenChange]);\n\n const handleMenuKeyDown = useMenuKeyboard(menuRef, hide);\n\n const contextValue = useMemo(\n () => ({\n closeMenu: hide,\n menuSize,\n }),\n [hide, menuSize],\n );\n\n const menuNode = useMemo(\n (): ReactNode => (items == null ? children : renderMenuItems(items)),\n [items, children],\n );\n\n return (\n <Popover\n content={\n <DropdownMenuContext value={contextValue}>\n {/* eslint-disable-next-line jsx-a11y-x/no-static-element-interactions -- keyboard handler captures events for the parent role=\"menu\" element */}\n <div\n className={cx(styles.menu, className)}\n onKeyDown={handleMenuKeyDown}\n ref={menuRef}\n tabIndex={-1}>\n {menuNode}\n </div>\n </DropdownMenuContext>\n }\n hasAutoFocus={hasAutoFocus}\n hasCloseButton={false}\n isOpen={isOpen}\n onOpenChange={(isNextOpen: boolean): void => {\n if (isControlled) {\n onOpenChange?.(isNextOpen);\n } else {\n setInternalOpen(isNextOpen);\n }\n }}\n role=\"menu\"\n style={{width: formatMenuWidth(menuWidth), ...style}}>\n <Button\n {...button}\n data-testid={dataTestId}\n endContent={\n <>\n {button.endContent}\n {hasChevron ? <Icon icon={ChevronDown} size=\"sm\" /> : null}\n </>\n }\n onClick={onClick}\n ref={ref}\n />\n </Popover>\n );\n}\n\nDropdownMenu.displayName = 'DropdownMenu';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/PasswordInput/PasswordInput.tsx"],"names":[],"mappings":";;;;;;;AAmBO,SAAS,aAAA,CAAc;AAAA,EAC5B,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA,GAAa,KAAA;AAAA,EACb,UAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0C;AACxC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,KAAK,CAAA;AAChD,EAAA,MAAM,gBAAA,GAAmB,YAAY,MAAM,YAAA,CAAa,OAAK,CAAC,CAAC,CAAA,EAAG,EAAE,CAAA;AAEpE,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACH,GAAG,YAAA,CAAa,UAAA,EAAY,UAAU,CAAA;AAAA,MACvC,SAAA;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,UAAA,kBACE,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,YAAY,MAAA,GAAS,GAAA;AAAA,UAC3B,UAAA;AAAA,UACA,UAAA,EAAU,IAAA;AAAA,UACV,KAAA,EAAO,YAAY,eAAA,GAAkB,eAAA;AAAA,UACrC,OAAA,EAAS,gBAAA;AAAA,UACT,IAAA,EAAK,IAAA;AAAA,UACL,OAAA,EAAQ;AAAA;AAAA,OACV;AAAA,MAEF,UAAA;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA,EAAM,YAAY,MAAA,GAAS;AAAA;AAAA,GAC7B;AAEJ;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA","file":"chunk-ACGPBJIS.js","sourcesContent":["import {Eye, EyeOff} from 'lucide-react';\nimport {useCallback, useState, type Ref} from 'react';\nimport {Button} from 'components/Button';\nimport {getNecessity} from 'components/Field';\nimport {TextInput, type TextInputProps} from 'components/TextInput';\n\nexport type PasswordInputProps = Omit<\n TextInputProps,\n 'endContent' | 'hasClear' | 'startIcon' | 'type'\n> & {\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n};\n\n/**\n * Password input with a toggle to show or hide the entered value.\n */\nexport function PasswordInput({\n className,\n 'data-testid': dataTestId,\n isDisabled = false,\n isOptional,\n isRequired,\n ref,\n style,\n ...props\n}: PasswordInputProps): React.JSX.Element {\n const [isVisible, setIsVisible] = useState(false);\n const toggleVisibility = useCallback(() => setIsVisible(v => !v), []);\n\n return (\n <TextInput\n {...props}\n {...getNecessity(isOptional, isRequired)}\n className={className}\n data-testid={dataTestId}\n endContent={\n <Button\n icon={isVisible ? EyeOff : Eye}\n isDisabled={isDisabled}\n isIconOnly\n label={isVisible ? 'Hide password' : 'Show password'}\n onClick={toggleVisibility}\n size=\"sm\"\n variant=\"ghost\"\n />\n }\n isDisabled={isDisabled}\n ref={ref}\n style={style}\n type={isVisible ? 'text' : 'password'}\n />\n );\n}\n\nPasswordInput.displayName = 'PasswordInput';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Accordion/AccordionContext.tsx","../src/components/Accordion/useAccordionDevWarning.ts","../src/components/Accordion/Accordion.tsx","../src/components/Accordion/AccordionItem.recipe.ts","../src/components/Accordion/useCollapsible.ts","../src/components/Accordion/AccordionItem.tsx","../src/components/Accordion/Collapsible.tsx"],"names":["createContext","useRef","useEffect","css","useState","useMemo","useCallback","jsx","cx","sva","use","useId","jsxs","Icon","ChevronDown"],"mappings":"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","file":"chunk-ARUOMLOJ.cjs","sourcesContent":["import {createContext} from 'react';\n\nexport interface AccordionContextValue {\n getIsOpen: (value: string) => boolean;\n toggle: (value: string) => void;\n}\n\nexport const AccordionContext = createContext<AccordionContextValue | null>(\n null,\n);\nAccordionContext.displayName = 'AccordionContext';\n","import {useEffect, useRef} from 'react';\n\n/**\n * Dev-only: warns when a controlled `value` array is recreated each render with\n * the same contents, which defeats the `openValues` memo and forces unnecessary\n * re-renders. Runs in an effect (not during render) so the ref reads/writes stay\n * pure, and the whole hook is inert in production.\n */\nexport function useAccordionDevWarning(\n controlledValue: string | string[] | null | undefined,\n): void {\n const prevControlledArrayRef = useRef<ReadonlyArray<string> | undefined>(\n undefined,\n );\n const hasWarnedUnstableValueRef = useRef(false);\n useEffect(() => {\n if (\n process.env.NODE_ENV === 'production' ||\n !Array.isArray(controlledValue)\n ) {\n return;\n }\n const prev = prevControlledArrayRef.current;\n if (\n !hasWarnedUnstableValueRef.current &&\n prev !== undefined &&\n prev !== controlledValue &&\n prev.length === controlledValue.length &&\n prev.every((item, i) => item === controlledValue[i])\n ) {\n hasWarnedUnstableValueRef.current = true;\n console.warn(\n 'Accordion: the `value` array changed identity between renders but ' +\n 'contains the same items. Memoize it (e.g. with `useMemo`) to ' +\n 'avoid unnecessary re-renders of the accordion items.',\n );\n }\n prevControlledArrayRef.current = controlledValue;\n }, [controlledValue]);\n}\n","import {\n useCallback,\n useMemo,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {\n AccordionContext,\n type AccordionContextValue,\n} from 'components/Accordion/AccordionContext';\nimport {useAccordionDevWarning} from 'components/Accordion/useAccordionDevWarning';\nimport {cx} from 'internal/cx';\nimport {css} from 'styled-system/css';\n\n/**\n * A container that coordinates multiple `AccordionItem` children so that\n * one (`type=\"single\"`) or several (`type=\"multiple\"`) can be open at a\n * time. For a standalone disclosure widget, use `Collapsible` instead.\n */\ninterface AccordionBaseProps {\n /**\n * Accessible label for the accordion group. Provide either `aria-label`\n * or `aria-labelledby`, not both.\n */\n 'aria-label'?: string;\n /**\n * ID of an element that labels the accordion group. Provide either\n * `aria-label` or `aria-labelledby`, not both.\n */\n 'aria-labelledby'?: string;\n /**\n * One or more `AccordionItem` elements.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nexport type AccordionProps =\n | (AccordionBaseProps & {\n /**\n * Item value that is open on initial render, or `null` for all\n * closed. Ignored when `value` is provided.\n */\n defaultValue?: string | null;\n /**\n * Called when the open item changes. Receives the item value string,\n * or `null` when all items are closed.\n */\n onChange?: (value: string | null) => void;\n /**\n * Only one item can be open at a time. This is the default.\n */\n type?: 'single';\n /**\n * Controls which item is open externally. Pass `null` to close all\n * items. When set, the component becomes controlled and `onChange`\n * should be provided.\n */\n value?: string | null;\n })\n | (AccordionBaseProps & {\n /**\n * Item values that are open on initial render. Ignored when `value` is\n * provided.\n */\n defaultValue?: string[];\n /**\n * Called when the set of open items changes. Receives an array of\n * open item values.\n */\n onChange?: (value: string[]) => void;\n /**\n * Multiple items can be open simultaneously.\n */\n type: 'multiple';\n /**\n * Controls which items are open externally. When set, the component\n * becomes controlled and `onChange` should be provided. Memoize array\n * values to avoid unnecessary re-renders.\n */\n value?: string[];\n });\n\nfunction normalizeToSet(\n value: string | string[] | null | undefined,\n): ReadonlySet<string> {\n if (value == null) {\n return new Set();\n }\n return new Set(Array.isArray(value) ? value : [value]);\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '3',\n }),\n};\n\nexport function Accordion({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n type = 'single',\n defaultValue,\n value: controlledValue,\n onChange,\n children,\n className,\n 'data-testid': dataTestId,\n ref,\n style,\n}: AccordionProps): React.JSX.Element {\n const isControlled = controlledValue !== undefined;\n const [internalValue, setInternalValue] = useState<ReadonlySet<string>>(() =>\n normalizeToSet(defaultValue),\n );\n\n useAccordionDevWarning(controlledValue);\n\n const openValues = useMemo(\n () => (isControlled ? normalizeToSet(controlledValue) : internalValue),\n [isControlled, controlledValue, internalValue],\n );\n\n const getIsOpen = useCallback(\n (itemValue: string) => openValues.has(itemValue),\n [openValues],\n );\n\n const toggle = useCallback(\n (itemValue: string) => {\n let nextValues: ReadonlySet<string>;\n\n if (type === 'single') {\n nextValues = openValues.has(itemValue)\n ? new Set()\n : new Set([itemValue]);\n } else {\n const next = new Set(openValues);\n if (next.has(itemValue)) {\n next.delete(itemValue);\n } else {\n next.add(itemValue);\n }\n nextValues = next;\n }\n\n if (!isControlled) {\n setInternalValue(nextValues);\n }\n\n if (onChange) {\n const arr = [...nextValues];\n if (type === 'single') {\n (onChange as (value: string | null) => void)(arr[0] ?? null);\n } else {\n (onChange as (value: string[]) => void)(arr);\n }\n }\n },\n [type, openValues, isControlled, onChange],\n );\n\n const contextValue = useMemo<AccordionContextValue>(\n () => ({getIsOpen, toggle}),\n [getIsOpen, toggle],\n );\n\n return (\n <AccordionContext value={contextValue}>\n <div\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"group\"\n style={style}>\n {children}\n </div>\n </AccordionContext>\n );\n}\n\nAccordion.displayName = 'Accordion';\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const accordionItemRecipe = sva({\n slots: ['root', 'trigger', 'chevron', 'panel', 'panelInner'],\n base: {\n root: {\n w: '100%',\n },\n trigger: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n w: '100%',\n cursor: 'pointer',\n fontFamily: 'body',\n fontSize: 'lg',\n fontWeight: 'semibold',\n color: 'fg',\n textAlign: 'start',\n py: 0,\n _disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n borderRadius: 'sm',\n },\n },\n chevron: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n transitionProperty: 'transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n color: 'fg.muted',\n },\n panel: {\n display: 'grid',\n gridTemplateRows: '1fr',\n // `visibility` is transitioned alongside the rows so the content stays\n // readable while collapsing, then becomes `hidden` (removing it from the\n // a11y tree and tab order) once closed. The inline `visibility` style in\n // the component drives the open/closed value.\n transitionProperty: 'grid-template-rows, visibility',\n transitionDuration: 'normal',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01s',\n },\n },\n panelInner: {\n overflow: 'hidden',\n minH: 0,\n pt: '1',\n },\n },\n variants: {\n isOpen: {\n true: {\n chevron: {transform: 'rotate(180deg)'},\n },\n false: {\n panel: {gridTemplateRows: '0fr'},\n },\n },\n },\n defaultVariants: {\n isOpen: false,\n },\n});\n\nexport type AccordionItemVariants = RecipeVariantProps<\n typeof accordionItemRecipe\n>;\n","import {use, useCallback, useState} from 'react';\nimport {AccordionContext} from 'components/Accordion/AccordionContext';\n\nexport interface CollapsibleConfig {\n isDefaultOpen?: boolean;\n isOpen?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n}\n\nexport interface UseCollapsibleOptions {\n config?: CollapsibleConfig;\n value?: string;\n}\n\nexport interface UseCollapsibleReturn {\n isOpen: boolean;\n toggle: () => void;\n}\n\nexport function useCollapsible(\n options: UseCollapsibleOptions,\n): UseCollapsibleReturn {\n const {config, value} = options;\n\n const group = use(AccordionContext);\n const isMissingGroupValue = group != null && value == null;\n const isControlledByGroup = group != null && value != null;\n\n if (process.env.NODE_ENV !== 'production') {\n if (isMissingGroupValue) {\n throw new Error(\n 'AccordionItem: `value` prop is required when used inside an Accordion.',\n );\n }\n }\n\n const [internalIsOpen, setInternalIsOpen] = useState(() => {\n if (isControlledByGroup) {\n return true;\n }\n if (config?.isOpen !== undefined) {\n return config.isOpen;\n }\n return config?.isDefaultOpen ?? true;\n });\n\n let isOpen: boolean;\n if (isControlledByGroup) {\n isOpen = group.getIsOpen(value);\n } else if (isMissingGroupValue) {\n isOpen = false;\n } else if (config?.isOpen !== undefined) {\n isOpen = config.isOpen;\n } else {\n isOpen = internalIsOpen;\n }\n\n const configIsOpen = config?.isOpen;\n const onOpenChange = config?.onOpenChange;\n\n // Depend on the primitive config fields rather than the `config` object so\n // the toggle keeps a stable identity across renders (callers commonly build\n // a fresh `config` object each render). Re-checking `group`/`value` inside\n // the callback also gives TypeScript the non-null narrowing it needs.\n const toggle = useCallback(() => {\n if (group != null && value != null) {\n group.toggle(value);\n } else if (group != null) {\n // Inside a group but missing a `value` prop: nothing to toggle.\n return;\n } else if (configIsOpen !== undefined) {\n onOpenChange?.(!configIsOpen);\n } else {\n setInternalIsOpen(prev => !prev);\n onOpenChange?.(!isOpen);\n }\n }, [group, value, configIsOpen, onOpenChange, isOpen]);\n\n return {isOpen, toggle};\n}\n","import {ChevronDown} from 'lucide-react';\nimport {useId, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {accordionItemRecipe} from 'components/Accordion/AccordionItem.recipe';\nimport {useCollapsible} from 'components/Accordion/useCollapsible';\nimport {Icon} from 'components/Icon';\nimport {cx} from 'internal/cx';\n\n/**\n * A single expandable section within an `Accordion`, or a standalone\n * collapsible panel when used outside of an `Accordion` context. Prefer\n * the `Collapsible` wrapper for standalone usage.\n */\nexport interface AccordionItemProps {\n /**\n * Content revealed when the item is open.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Whether the item is open on initial render. Ignored when `isOpen` is\n * provided or the item is inside an `Accordion`. Defaults to `true`.\n */\n isDefaultOpen?: boolean;\n /**\n * Whether the trigger is disabled. Prevents toggling and applies disabled\n * styling.\n */\n isDisabled?: boolean;\n /**\n * Controls the open state externally. When set, the component becomes\n * controlled and `onOpenChange` should be provided. Ignored when the\n * item is inside an `Accordion`.\n */\n isOpen?: boolean;\n /**\n * Called when the open state changes from user interaction.\n */\n onOpenChange?: (isOpen: boolean) => void;\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 * Content rendered as the clickable trigger. Must be phrasing content\n * (text, `<span>`, `<strong>`, icons, etc.) since it is placed inside a\n * `<button>` element.\n */\n trigger: ReactNode;\n /**\n * Unique identifier used by a parent `Accordion` to track which items\n * are open. Required when used inside an `Accordion`, ignored otherwise.\n */\n value?: string;\n}\n\nexport function AccordionItem({\n trigger,\n children,\n isDefaultOpen,\n isDisabled = false,\n isOpen: controlledIsOpen,\n onOpenChange,\n value,\n ref,\n className,\n 'data-testid': dataTestId,\n style,\n}: AccordionItemProps): React.JSX.Element {\n const collapsibleConfig =\n controlledIsOpen !== undefined\n ? {isOpen: controlledIsOpen, onOpenChange}\n : {isDefaultOpen: isDefaultOpen ?? true, onOpenChange};\n\n const {isOpen, toggle} = useCollapsible({\n config: collapsibleConfig,\n value,\n });\n\n const id = useId();\n const triggerId = `${id}-trigger`;\n const panelId = `${id}-panel`;\n\n const classes = accordionItemRecipe({isOpen});\n\n return (\n <div\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <button\n aria-controls={panelId}\n aria-expanded={isOpen}\n className={classes.trigger}\n disabled={isDisabled}\n id={triggerId}\n onClick={toggle}\n type=\"button\">\n {trigger}\n <span className={classes.chevron}>\n <Icon icon={ChevronDown} size=\"md\" />\n </span>\n </button>\n <div\n aria-labelledby={triggerId}\n className={classes.panel}\n id={panelId}\n role=\"region\"\n style={{visibility: isOpen ? undefined : 'hidden'}}>\n <div className={classes.panelInner}>{children}</div>\n </div>\n </div>\n );\n}\n\nAccordionItem.displayName = 'AccordionItem';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {AccordionItem} from 'components/Accordion/AccordionItem';\n\n/**\n * A standalone disclosure widget that toggles the visibility of a content\n * panel. Use `Collapsible` for individual expand/collapse sections. For\n * coordinated groups where only one (or a subset) can be open at a time,\n * use `Accordion` with `AccordionItem` instead.\n */\nexport interface CollapsibleProps {\n /**\n * Content revealed when the collapsible is open.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Whether the collapsible is open on initial render. Ignored when `isOpen`\n * is provided. Defaults to `true`.\n */\n isDefaultOpen?: boolean;\n /**\n * Whether the trigger is disabled. Prevents toggling and applies disabled\n * styling.\n */\n isDisabled?: boolean;\n /**\n * Controls the open state externally. When set, the component becomes\n * controlled and `onOpenChange` should be provided to handle toggling.\n */\n isOpen?: boolean;\n /**\n * Called when the open state changes, either from a user click on the\n * trigger or from a keyboard interaction.\n */\n onOpenChange?: (isOpen: boolean) => void;\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 * Content rendered as the clickable trigger that toggles the panel. Must be\n * phrasing content (text, `<span>`, `<strong>`, icons, etc.) since it is\n * placed inside a `<button>` element.\n */\n trigger: ReactNode;\n}\n\nexport function Collapsible({\n className,\n 'data-testid': dataTestId,\n ref,\n style,\n ...props\n}: CollapsibleProps): React.JSX.Element {\n return (\n <AccordionItem\n {...props}\n className={className}\n data-testid={dataTestId}\n ref={ref}\n style={style}\n />\n );\n}\n\nCollapsible.displayName = 'Collapsible';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AutocompleteInput/AutocompleteInput.recipe.ts","../src/components/AutocompleteInput/AutocompleteInputItem.tsx","../src/components/AutocompleteInput/BaseAutocompleteInput.tsx","../src/components/AutocompleteInput/AutocompleteInput.tsx","../src/components/AutocompleteInput/types.ts"],"names":["jsx","jsxs","Fragment","styles","useId","useRef","useState","useCallback"],"mappings":"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","file":"chunk-BBLAZNCC.js","sourcesContent":["import {css, sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const autocompleteMenuRecipe = sva({\n slots: ['menu', 'option', 'check', 'loading', 'empty'],\n base: {\n menu: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n maxH: '80',\n overflowY: 'auto',\n p: '1',\n },\n option: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '2',\n w: 'full',\n borderWidth: 0,\n borderRadius: 'md',\n bg: 'transparent',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'body',\n textAlign: 'start',\n _hover: {bg: 'bg.subtle'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffsetTight',\n },\n },\n check: {\n display: 'inline-flex',\n flexShrink: 0,\n color: 'primary',\n },\n loading: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '1',\n p: '2',\n color: 'fg.muted',\n '& > svg': {\n animation: 'spin 0.8s linear infinite',\n },\n '@media (prefers-reduced-motion: reduce)': {\n '& > svg': {animation: 'none'},\n },\n },\n empty: {\n p: '3',\n textAlign: 'center',\n },\n },\n variants: {\n size: {\n sm: {option: {px: '2', py: '1'}},\n md: {option: {px: '2', py: '2'}},\n lg: {option: {px: '3', py: '2.5'}},\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport type AutocompleteMenuVariants = RecipeVariantProps<\n typeof autocompleteMenuRecipe\n>;\n\n/**\n * Per-option state styles applied via `cx()` since they vary per-row\n * rather than per-component instance.\n */\nexport const optionHighlightedStyle = css({bg: 'bg.subtle'});\nexport const optionSelectedStyle = css({fontWeight: 'medium'});\n\nexport const autocompleteItemRecipe = sva({\n slots: ['root', 'icon', 'text'],\n base: {\n root: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n minW: 0,\n },\n icon: {\n display: 'inline-flex',\n flexShrink: 0,\n color: 'fg.muted',\n },\n text: {\n display: 'flex',\n flexDirection: 'column',\n minW: 0,\n },\n },\n variants: {\n isDisabled: {\n true: {root: {opacity: 0.55}},\n false: {},\n },\n },\n defaultVariants: {\n isDisabled: false,\n },\n});\n\nexport type AutocompleteItemVariants = RecipeVariantProps<\n typeof autocompleteItemRecipe\n>;\n","/* eslint-disable silver-ui/require-component-props -- discriminated union: custom-element items render item.element directly; passthrough props only apply to standard items */\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {autocompleteItemRecipe} from 'components/AutocompleteInput/AutocompleteInput.recipe';\nimport type {SearchableItem} from 'components/AutocompleteInput/types';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\n/**\n * Props for an item with a custom `element`. The element is rendered\n * directly — layout props like `icon` and `description` do not apply.\n */\ninterface AutocompleteInputCustomItemProps {\n /**\n * Search result item with custom element content.\n */\n item: SearchableItem & {element: ReactNode};\n}\n\n/**\n * Props for a standard item rendered with the default layout.\n */\ninterface AutocompleteInputStandardItemProps {\n /**\n * Additional CSS class names applied to the item layout.\n */\n className?: string;\n /**\n * Test ID applied to the item layout.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Icon or avatar rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Search result item without a custom element.\n */\n item: SearchableItem & {element?: undefined};\n /**\n * Ref forwarded to the item layout.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the item layout.\n */\n style?: CSSProperties;\n}\n\nexport type AutocompleteInputItemProps =\n | AutocompleteInputCustomItemProps\n | AutocompleteInputStandardItemProps;\n\n/**\n * Default layout for AutocompleteInput and TagsInput result rows.\n *\n * When the item has a pre-rendered `element`, it is returned directly.\n * Otherwise the component renders a flex row with an optional icon,\n * primary label, and description.\n */\nexport function AutocompleteInputItem(\n props: AutocompleteInputItemProps,\n): React.JSX.Element {\n if (isReactNode(props.item.element)) {\n return <>{props.item.element}</>;\n }\n\n const {\n className,\n 'data-testid': dataTestId,\n description,\n icon,\n isDisabled = false,\n item,\n ref,\n style,\n } = props as AutocompleteInputStandardItemProps;\n\n const classes = autocompleteItemRecipe({isDisabled});\n\n return (\n <div\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {icon != null ? (\n <span className={classes.icon}>\n <Icon color=\"secondary\" icon={icon} size=\"sm\" />\n </span>\n ) : null}\n <span className={classes.text}>\n <Text as=\"span\" color=\"inherit\" type=\"label\">\n {item.label}\n </Text>\n {isReactNode(description) ? (\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n {description}\n </Text>\n ) : null}\n </span>\n </div>\n );\n}\n\nAutocompleteInputItem.displayName = 'AutocompleteInputItem';\n","import {Check, LoaderCircle} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n type RefObject,\n} from 'react';\nimport {\n autocompleteMenuRecipe,\n optionHighlightedStyle,\n optionSelectedStyle,\n} from 'components/AutocompleteInput/AutocompleteInput.recipe';\nimport {AutocompleteInputItem} from 'components/AutocompleteInput/AutocompleteInputItem';\nimport type {\n SearchableItem,\n SearchSource,\n} from 'components/AutocompleteInput/types';\nimport {Icon} from 'components/Icon';\nimport {Popover} from 'components/Popover';\nimport {Spinner} from 'components/Spinner';\nimport {Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {css} from 'styled-system/css';\n\nexport interface BaseAutocompleteInputProps<T extends SearchableItem> {\n /**\n * Ref to the element the result popover should align to.\n */\n anchorRef?: RefObject<HTMLElement | null>;\n /**\n * IDs describing the input.\n */\n ariaDescribedBy?: string;\n /**\n * Additional CSS class names applied to the input.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Debounce delay in milliseconds before search runs.\n * @default 150\n */\n debounceMs?: number;\n /**\n * Empty state text.\n * @default 'No results found'\n */\n emptySearchResultsText?: string;\n /**\n * Text shown in the menu when a search fails.\n * @default 'Something went wrong'\n */\n errorText?: string;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show bootstrap results on focus before typing.\n * @default false\n */\n hasEntriesOnFocus?: boolean;\n /**\n * Whether to re-bootstrap results after selecting an item. Useful for\n * multi-select comboboxes where the user picks several items in a row.\n * @default false\n */\n hasReopenOnSelect?: boolean;\n /**\n * Optional ID for the input.\n */\n inputId?: string;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the input is required.\n * @default false\n */\n isRequired?: boolean;\n /**\n * Maximum number of menu items.\n * @default 10\n */\n maxMenuItems?: number;\n /**\n * Called when a result is selected.\n */\n onChange: (item: T | null) => void;\n /**\n * Keyboard handler invoked before internal navigation.\n */\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n /**\n * Called when the result popover opens or closes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Called when the query changes.\n */\n onQueryChange: (query: string) => void;\n /**\n * Placeholder text.\n * @default 'Search...'\n */\n placeholder?: string;\n /**\n * Current query string.\n */\n query: string;\n /**\n * Ref forwarded to the input.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Custom result renderer.\n */\n renderItem?: (item: T) => ReactNode;\n /**\n * Provides results for the menu. Use `createStaticSearchSource` for\n * in-memory data, or implement {@link SearchSource} for async/remote\n * search.\n */\n searchSource: SearchSource<T>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: 'sm' | 'md' | 'lg';\n /**\n * Inline styles applied to the input.\n */\n style?: CSSProperties;\n /**\n * Selected item.\n */\n value: T | null;\n}\n\nconst styles = {\n input: css({\n display: 'block',\n flex: 1,\n minW: '15',\n borderWidth: 0,\n p: 0,\n fontFamily: 'body',\n fontSize: 'md',\n lineHeight: 'normal',\n color: 'fg',\n bg: 'transparent',\n outline: 'none',\n _placeholder: {color: 'fg.muted'},\n _disabled: {cursor: 'not-allowed'},\n }),\n} as const;\n\n/**\n * Internal combobox engine used by AutocompleteInput and TagsInput.\n */\nexport function BaseAutocompleteInput<T extends SearchableItem>({\n anchorRef,\n ariaDescribedBy,\n className,\n 'data-testid': dataTestId,\n debounceMs = 150,\n emptySearchResultsText = 'No results found',\n errorText = 'Something went wrong',\n hasAutoFocus = false,\n hasEntriesOnFocus = false,\n hasReopenOnSelect = false,\n inputId,\n isDisabled = false,\n isRequired = false,\n maxMenuItems = 10,\n onChange,\n onKeyDown,\n onOpenChange,\n onQueryChange,\n placeholder = 'Search...',\n query,\n ref,\n renderItem,\n searchSource,\n size = 'md',\n style,\n value,\n}: BaseAutocompleteInputProps<T>): React.JSX.Element {\n const generatedId = useId();\n const listboxId = useId();\n const resolvedInputId = inputId ?? generatedId;\n const inputRef = useRef<HTMLInputElement>(null);\n const fallbackAnchorRef = useRef<HTMLInputElement>(null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const generationRef = useRef(0);\n const [results, setResults] = useState<T[]>([]);\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const [isLoading, setIsLoading] = useState(false);\n const [hasSearched, setHasSearched] = useState(false);\n const [hasError, setHasError] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n const selectingRef = useRef(false);\n\n const setOpen = useCallback(\n (isNextOpen: boolean) => {\n setIsOpen(isNextOpen);\n onOpenChange?.(isNextOpen);\n if (!isNextOpen) {\n searchSource.cancel?.();\n setHighlightedIndex(-1);\n }\n },\n [onOpenChange, searchSource],\n );\n\n const showMenu = useCallback(() => {\n setOpen(true);\n }, [setOpen]);\n\n const runSearch = useCallback(\n async (nextQuery: string, kind: 'bootstrap' | 'search') => {\n const generation = ++generationRef.current;\n searchSource.cancel?.();\n setIsLoading(true);\n setHasSearched(true);\n setHasError(false);\n\n try {\n const nextResults =\n kind === 'bootstrap'\n ? await searchSource.bootstrap()\n : await searchSource.search(nextQuery);\n if (generationRef.current !== generation) {\n return;\n }\n const limitedResults = nextResults.slice(0, maxMenuItems);\n setResults(limitedResults);\n setHighlightedIndex(limitedResults.length > 0 ? 0 : -1);\n if (limitedResults.length > 0 || nextQuery !== '') {\n showMenu();\n } else {\n setOpen(false);\n }\n } catch {\n if (generationRef.current === generation) {\n setResults([]);\n setHighlightedIndex(-1);\n setHasError(true);\n showMenu();\n }\n } finally {\n if (generationRef.current === generation) {\n setIsLoading(false);\n }\n }\n },\n [maxMenuItems, searchSource, setOpen, showMenu],\n );\n\n const updateQuery = useCallback(\n (nextQuery: string) => {\n onQueryChange(nextQuery);\n\n if (timeoutRef.current != null) {\n clearTimeout(timeoutRef.current);\n }\n\n if (nextQuery === '' && !hasEntriesOnFocus) {\n generationRef.current++;\n searchSource.cancel?.();\n setResults([]);\n setHasSearched(false);\n setHasError(false);\n setIsLoading(false);\n setOpen(false);\n return;\n }\n\n const searchKind = nextQuery === '' ? 'bootstrap' : 'search';\n if (debounceMs <= 0) {\n void runSearch(nextQuery, searchKind);\n return;\n }\n\n timeoutRef.current = setTimeout(() => {\n void runSearch(nextQuery, searchKind);\n }, debounceMs);\n },\n [\n debounceMs,\n hasEntriesOnFocus,\n onQueryChange,\n runSearch,\n searchSource,\n setOpen,\n ],\n );\n\n const selectItem = useCallback(\n (item: T) => {\n generationRef.current++;\n if (timeoutRef.current != null) {\n clearTimeout(timeoutRef.current);\n }\n searchSource.cancel?.();\n onQueryChange('');\n setResults([]);\n setHasSearched(false);\n setHasError(false);\n setIsLoading(false);\n onChange(item);\n selectingRef.current = true;\n inputRef.current?.focus();\n selectingRef.current = false;\n if (hasReopenOnSelect && hasEntriesOnFocus) {\n void runSearch('', 'bootstrap');\n } else {\n setOpen(false);\n }\n },\n [\n hasEntriesOnFocus,\n hasReopenOnSelect,\n onChange,\n onQueryChange,\n runSearch,\n searchSource,\n setOpen,\n ],\n );\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current != null) {\n clearTimeout(timeoutRef.current);\n }\n searchSource.cancel?.();\n };\n }, [searchSource]);\n\n const menuClasses = autocompleteMenuRecipe({size});\n\n const menu = (\n <div\n aria-label=\"Search results\"\n className={menuClasses.menu}\n id={listboxId}\n role=\"listbox\">\n {isLoading ? (\n <div className={menuClasses.loading} role=\"status\">\n <Icon icon={LoaderCircle} size=\"sm\" />\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n Loading\n </Text>\n </div>\n ) : hasError ? (\n <div className={menuClasses.empty} role=\"alert\">\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n {errorText}\n </Text>\n </div>\n ) : results.length === 0 && hasSearched ? (\n <div className={menuClasses.empty}>\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n {emptySearchResultsText}\n </Text>\n </div>\n ) : (\n results.map((item, index) => {\n const isSelected = value?.id === item.id;\n return (\n // eslint-disable-next-line jsx-a11y-x/click-events-have-key-events -- keyboard navigation is handled by the combobox input, not individual options\n <div\n aria-selected={isSelected}\n className={cx(\n menuClasses.option,\n index === highlightedIndex ? optionHighlightedStyle : undefined,\n isSelected ? optionSelectedStyle : undefined,\n )}\n id={`${listboxId}-option-${index}`}\n key={item.id}\n onClick={() => selectItem(item)}\n onMouseEnter={() => setHighlightedIndex(index)}\n role=\"option\"\n tabIndex={-1}>\n {renderItem == null ? (\n <AutocompleteInputItem item={item} />\n ) : (\n renderItem(item)\n )}\n {isSelected ? (\n <span className={menuClasses.check}>\n <Icon color=\"accent\" icon={Check} size=\"sm\" />\n </span>\n ) : null}\n </div>\n );\n })\n )}\n </div>\n );\n\n return (\n <>\n <input\n aria-activedescendant={\n isOpen && highlightedIndex >= 0\n ? `${listboxId}-option-${highlightedIndex}`\n : undefined\n }\n aria-autocomplete=\"list\"\n aria-controls={listboxId}\n aria-describedby={ariaDescribedBy}\n aria-expanded={isOpen}\n aria-required={isRequired || undefined}\n autoComplete=\"off\"\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={cx(styles.input, className)}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={resolvedInputId}\n onBlur={() => {\n // Defer so we can check whether focus moved to an option inside\n // the popover (e.g. the user clicked a result). If focus left\n // both the input and the popover, close the menu.\n requestAnimationFrame(() => {\n if (\n !inputRef.current?.contains(document.activeElement) &&\n !document.activeElement?.closest('[role=\"listbox\"]')\n ) {\n setOpen(false);\n }\n });\n }}\n onChange={event => updateQuery(event.target.value)}\n onFocus={() => {\n if (selectingRef.current) {\n return;\n }\n if (query !== '' && results.length === 0) {\n void runSearch(query, 'search');\n } else if (\n hasEntriesOnFocus &&\n query === '' &&\n results.length === 0\n ) {\n void runSearch('', 'bootstrap');\n } else if (results.length > 0) {\n showMenu();\n }\n }}\n onKeyDown={event => {\n onKeyDown?.(event);\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n if (!isOpen) {\n if (results.length > 0) {\n showMenu();\n } else if (hasEntriesOnFocus) {\n void runSearch('', 'bootstrap');\n }\n return;\n }\n setHighlightedIndex(index =>\n results.length === 0 ? -1 : (index + 1) % results.length,\n );\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n setHighlightedIndex(index =>\n results.length === 0\n ? -1\n : (index - 1 + results.length) % results.length,\n );\n } else if (\n event.key === 'Enter' &&\n isOpen &&\n highlightedIndex >= 0 &&\n highlightedIndex < results.length\n ) {\n event.preventDefault();\n selectItem(results[highlightedIndex]);\n } else if (event.key === 'Escape' && isOpen) {\n event.preventDefault();\n setOpen(false);\n }\n }}\n placeholder={placeholder}\n ref={mergeRefs(ref, inputRef, fallbackAnchorRef)}\n role=\"combobox\"\n style={style}\n type=\"text\"\n value={query}\n />\n {isLoading ? <Spinner size=\"sm\" /> : null}\n <Popover\n anchorRef={anchorRef ?? fallbackAnchorRef}\n content={menu}\n hasAutoFocus={false}\n hasCloseButton={false}\n isDismissable={false}\n isOpen={isOpen}\n onOpenChange={setOpen}\n />\n </>\n );\n}\n\nBaseAutocompleteInput.displayName = 'BaseAutocompleteInput';\n","import {X} from 'lucide-react';\nimport {\n useCallback,\n useId,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {BaseAutocompleteInput} from 'components/AutocompleteInput/BaseAutocompleteInput';\nimport type {\n SearchableItem,\n SearchSource,\n} from 'components/AutocompleteInput/types';\nimport {Button} from 'components/Button';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from 'components/Field';\nimport {inputRecipe, inputStyles} from 'components/Field/inputStyles';\nimport {getDescribedBy, getStatusMessageID} from 'components/Field/inputUtils';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Tag} from 'components/Tag';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\n\nexport type AutocompleteInputProps<T extends SearchableItem = SearchableItem> =\n {\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input wrapper.\n */\n 'data-testid'?: string;\n /**\n * Debounce delay in milliseconds before search runs.\n * @default 150\n */\n debounceMs?: number;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Empty state text.\n * @default 'No results found'\n */\n emptySearchResultsText?: string;\n /**\n * Text shown in the menu when a search fails.\n * @default 'Something went wrong'\n */\n errorText?: string;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a clear button when a value is selected.\n * @default true\n */\n hasClear?: boolean;\n /**\n * Whether to show bootstrap results on focus before typing.\n * @default false\n */\n hasEntriesOnFocus?: boolean;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum number of menu items.\n * @default 10\n */\n maxMenuItems?: number;\n /**\n * Called when selection changes.\n */\n onChange: (item: T | null) => void;\n /**\n * Called when the result popover opens or closes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Called when the query changes.\n */\n onQueryChange?: (query: string) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the field root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Custom result renderer.\n */\n renderItem?: (item: T) => ReactNode;\n /**\n * Provides results for the menu. Use `createStaticSearchSource` for\n * in-memory data, or implement {@link SearchSource} for async/remote\n * search.\n */\n searchSource: SearchSource<T>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Icon shown before the input.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the selector.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Selected item.\n */\n value: T | null;\n } & FieldNecessity;\n\nconst styles = {\n wrapper: css({\n cursor: 'text',\n flexWrap: 'wrap',\n }),\n tag: css({\n my: '-1',\n ms: '-1',\n }),\n inputHidden: css({\n position: 'absolute',\n opacity: 0,\n w: 0,\n minW: 0,\n flexBasis: 0,\n }),\n clearButton: css({\n ms: 'auto',\n }),\n} as const;\n\n/**\n * Search-as-you-type field for selecting a single item from a search source.\n */\nexport function AutocompleteInput<T extends SearchableItem>({\n className,\n 'data-testid': dataTestId,\n debounceMs,\n description,\n emptySearchResultsText,\n errorText,\n hasAutoFocus = false,\n hasClear = true,\n hasEntriesOnFocus = false,\n isDisabled = false,\n isLabelHidden = false,\n isOptional,\n isRequired,\n label,\n labelIcon,\n labelTooltip,\n maxMenuItems,\n onChange,\n onOpenChange,\n onQueryChange,\n placeholder,\n ref,\n renderItem,\n searchSource,\n size = 'md',\n startIcon,\n status,\n style,\n value,\n}: AutocompleteInputProps<T>): React.JSX.Element {\n const inputId = useId();\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [isEditing, setIsEditing] = useState(false);\n const [queryValue, setQueryValue] = useState('');\n const showTag = value != null && !isEditing;\n const fieldStatus = useMemo(\n () =>\n status == null ? undefined : {...status, messageID: statusMessageID},\n [status, statusMessageID],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n const startEditing = useCallback(\n (seedQuery: string) => {\n if (isDisabled) {\n return;\n }\n setIsEditing(true);\n setQueryValue(seedQuery);\n requestAnimationFrame(() => {\n const input = inputRef.current;\n if (input != null) {\n input.focus();\n input.setSelectionRange(seedQuery.length, seedQuery.length);\n }\n });\n },\n [isDisabled],\n );\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n ref={ref}\n status={fieldStatus}\n style={style}>\n {/* eslint-disable-next-line jsx-a11y-x/click-events-have-key-events, jsx-a11y-x/no-static-element-interactions -- wrapper delegates focus to the inner input; keyboard users interact with the input directly */}\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n )}\n data-testid={dataTestId}\n onClick={() => {\n if (showTag) {\n startEditing(value.label);\n }\n }}\n ref={wrapperRef}>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n {showTag ? (\n <Tag\n className={styles.tag}\n isDisabled={isDisabled}\n label={value.label}\n onClick={() => startEditing(value.label)}\n size={size}\n />\n ) : null}\n <BaseAutocompleteInput\n anchorRef={wrapperRef}\n ariaDescribedBy={describedBy}\n className={showTag ? styles.inputHidden : undefined}\n debounceMs={debounceMs}\n emptySearchResultsText={emptySearchResultsText}\n errorText={errorText}\n hasAutoFocus={hasAutoFocus}\n hasEntriesOnFocus={hasEntriesOnFocus}\n inputId={inputId}\n isDisabled={isDisabled}\n isRequired={isRequired}\n maxMenuItems={maxMenuItems}\n onChange={item => {\n setIsEditing(false);\n setQueryValue('');\n onChange(item);\n }}\n onOpenChange={onOpenChange}\n onQueryChange={nextQuery => {\n setQueryValue(nextQuery);\n onQueryChange?.(nextQuery);\n }}\n placeholder={showTag ? undefined : placeholder}\n query={queryValue}\n ref={inputRef}\n renderItem={renderItem}\n searchSource={searchSource}\n size={size}\n value={value}\n />\n {hasClear && value != null && !isDisabled ? (\n <Button\n className={styles.clearButton}\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={event => {\n event.stopPropagation();\n setIsEditing(false);\n onChange(null);\n inputRef.current?.focus();\n }}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n </div>\n </Field>\n );\n}\n\nAutocompleteInput.displayName = 'AutocompleteInput';\n","import type {ReactNode} from 'react';\n\n/**\n * A search result item with a fully custom pre-rendered element. When\n * `element` is set, `AutocompleteInputItem` renders it directly — props\n * like `icon`, `description`, and `className` do not apply.\n */\nexport interface CustomSearchableItem<TAuxiliaryData = unknown> {\n /**\n * Custom data associated with the item.\n */\n auxiliaryData?: TAuxiliaryData;\n /**\n * Pre-rendered item content. When set, `AutocompleteInputItem` renders\n * this element directly and ignores layout props like `icon` and\n * `description`.\n */\n element: ReactNode;\n /**\n * Stable unique identifier.\n */\n id: string;\n /**\n * Display text used for the selected-value tag chip.\n */\n label: string;\n}\n\n/**\n * A search result item rendered by the default `AutocompleteInputItem`\n * layout with an optional icon and description.\n */\nexport interface StandardSearchableItem<TAuxiliaryData = unknown> {\n /**\n * Custom data associated with the item.\n */\n auxiliaryData?: TAuxiliaryData;\n /**\n * Must be omitted to use the standard layout. Set `element` on a\n * {@link CustomSearchableItem} for fully custom rendering.\n */\n element?: undefined;\n /**\n * Stable unique identifier.\n */\n id: string;\n /**\n * Display text.\n */\n label: string;\n}\n\n/**\n * A search result item. Items without `element` use the default\n * `AutocompleteInputItem` layout; items with `element` render fully\n * custom content.\n */\nexport type SearchableItem<TAuxiliaryData = unknown> =\n | CustomSearchableItem<TAuxiliaryData>\n | StandardSearchableItem<TAuxiliaryData>;\n\nexport interface SearchSource<T extends SearchableItem = SearchableItem> {\n /**\n * Return initial items, usually recent or common selections.\n */\n bootstrap(): Promise<T[]> | T[];\n /**\n * Optional cancellation for in-flight async searches.\n */\n cancel?(): void;\n /**\n * Return items matching the query.\n */\n search(query: string): Promise<T[]> | T[];\n}\n\nexport interface CreateStaticSearchSourceOptions<\n T extends SearchableItem = SearchableItem,\n> {\n /**\n * Extra searchable terms for each item.\n */\n getKeywords?: (item: T) => string[];\n}\n\nexport function createStaticSearchSource<T extends SearchableItem>(\n items: T[],\n options?: CreateStaticSearchSourceOptions<T>,\n): SearchSource<T> {\n return {\n bootstrap: () => items,\n search(query) {\n const normalizedQuery = query.trim().toLowerCase();\n if (normalizedQuery === '') {\n return items;\n }\n\n return items.filter(item => {\n if (item.label.toLowerCase().includes(normalizedQuery)) {\n return true;\n }\n return (\n options\n ?.getKeywords?.(item)\n .some(keyword => keyword.toLowerCase().includes(normalizedQuery)) ??\n false\n );\n });\n },\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Dialog/DialogContext.ts"],"names":[],"mappings":";;;AAYO,IAAM,aAAA,GAAgB,cAAyC,IAAI;AAC1E,aAAA,CAAc,WAAA,GAAc,eAAA;AAErB,SAAS,gBAAA,GAA8C;AAC5D,EAAA,OAAO,IAAI,aAAa,CAAA;AAC1B","file":"chunk-BKKLUIIU.js","sourcesContent":["import {createContext, use} from 'react';\n\nexport interface DialogContextValue {\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Stable ID for the dialog's title heading. LayoutHeader applies this ID\n * to its heading element so the dialog can reference it via\n * `aria-labelledby`.\n */\n titleId: string;\n}\n\nexport const DialogContext = createContext<DialogContextValue | null>(null);\nDialogContext.displayName = 'DialogContext';\n\nexport function useDialogContext(): DialogContextValue | null {\n return use(DialogContext);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Avatar/Avatar.recipe.ts","../src/components/Avatar/AvatarSizeContext.ts","../src/components/AvatarGroup/AvatarGroupContext.ts","../src/components/Avatar/Avatar.tsx","../src/components/Avatar/AvatarStatusDot.tsx"],"names":["sva","createContext","use","useMemo","jsx","jsxs","cx","Icon","User","isReactNode","useState","css"],"mappings":"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","file":"chunk-BSXUNRET.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const avatarRecipe = sva({\n slots: ['root', 'content', 'image', 'fallback', 'status'],\n base: {\n root: {\n position: 'relative',\n display: 'inline-flex',\n flexShrink: 0,\n verticalAlign: 'middle',\n borderRadius: 'full',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n overflow: 'hidden',\n userSelect: 'none',\n bg: 'bg.subtle',\n color: 'fg.muted',\n },\n image: {\n w: '100%',\n h: '100%',\n objectFit: 'cover',\n },\n fallback: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '100%',\n h: '100%',\n bg: 'bg.subtle',\n color: 'fg.muted',\n fontFamily: 'body',\n fontWeight: 'medium',\n textTransform: 'uppercase',\n },\n status: {\n position: 'absolute',\n },\n },\n variants: {\n isGrouped: {\n true: {\n root: {\n borderRadius: 'full',\n borderWidth: 'emphasized',\n borderStyle: 'solid',\n borderColor: 'bg',\n bg: 'bg',\n boxSizing: 'content-box',\n '&:not(:first-child)': {\n marginInlineStart: 'var(--avatar-group-overlap)',\n },\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isGrouped: false,\n },\n});\n\nexport type AvatarVariants = RecipeVariantProps<typeof avatarRecipe>;\n","import {createContext, use} from 'react';\n\nconst DEFAULT_AVATAR_SIZE = 36;\n\nexport const AvatarSizeContext = createContext<number>(DEFAULT_AVATAR_SIZE);\nAvatarSizeContext.displayName = 'AvatarSizeContext';\n\nexport function useAvatarSize(): number {\n return use(AvatarSizeContext);\n}\n","import {createContext, use} from 'react';\nimport type {AvatarSize} from 'components/Avatar';\n\nexport interface AvatarGroupContextValue {\n numericSize: number;\n overlap: number;\n size: AvatarSize;\n}\n\nexport const AvatarGroupContext = createContext<AvatarGroupContextValue | null>(\n null,\n);\nAvatarGroupContext.displayName = 'AvatarGroupContext';\n\nexport function useAvatarGroup(): AvatarGroupContextValue | null {\n return use(AvatarGroupContext);\n}\n","import {User} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useMemo, useState} from 'react';\nimport {avatarRecipe} from 'components/Avatar/Avatar.recipe';\nimport {AvatarSizeContext} from 'components/Avatar/AvatarSizeContext';\nimport {useAvatarGroup} from 'components/AvatarGroup/AvatarGroupContext';\nimport {Icon} from 'components/Icon';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nconst CIRCLE_EDGE_OFFSET_RATIO = (1 - 1 / Math.SQRT2) / 2;\nconst INITIALS_FONT_SIZE_RATIO = 0.4;\n\nexport type AvatarNamedSize = 'tiny' | 'xsmall' | 'small' | 'medium' | 'large';\n\nexport type AvatarNumericSize =\n | 16\n | 20\n | 24\n | 32\n | 36\n | 40\n | 48\n | 60\n | 64\n | 72\n | 96\n | 128\n | 144\n | 180;\n\nexport type AvatarSize = AvatarNamedSize | AvatarNumericSize;\n\n/**\n * Resolve an Avatar size token to its pixel size.\n */\nexport function resolveAvatarSize(size: AvatarSize): number {\n if (typeof size === 'number') {\n return size;\n }\n\n switch (size) {\n case 'tiny':\n return 20;\n case 'xsmall':\n return 24;\n case 'small':\n return 36;\n case 'medium':\n return 48;\n case 'large':\n return 128;\n }\n}\n\n/**\n * Displays a user profile image, initials, or a fallback icon.\n */\nexport interface AvatarProps {\n /**\n * Accessible text for the avatar image. Defaults to `name`, then \"Avatar\".\n */\n alt?: string;\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 * Image URL to use if `src` fails to load.\n */\n fallbackSrc?: string;\n /**\n * User name used as fallback accessible text and initials.\n */\n name?: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Avatar size. Named sizes map to the same pixel values as the XDS source.\n * Default is `small`.\n */\n size?: AvatarSize;\n /**\n * Primary image URL.\n */\n src?: string;\n /**\n * Corner content, usually an AvatarStatusDot.\n */\n status?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nfunction getInitials(name: string): string {\n const words = name.trim().split(/\\s+/).filter(Boolean);\n\n if (words.length === 0) {\n return '';\n }\n\n if (words.length === 1) {\n return words[0].charAt(0).toUpperCase();\n }\n\n return `${words[0].charAt(0)}${words[words.length - 1].charAt(\n 0,\n )}`.toUpperCase();\n}\n\nexport function Avatar({\n alt,\n className,\n 'data-testid': dataTestId,\n fallbackSrc,\n name,\n ref,\n size = 'small',\n src,\n style,\n status,\n}: AvatarProps): React.JSX.Element {\n const avatarGroup = useAvatarGroup();\n const resolvedSize = avatarGroup?.size ?? size;\n const numericSize = useMemo(\n () => resolveAvatarSize(resolvedSize),\n [resolvedSize],\n );\n const classes = avatarRecipe({isGrouped: avatarGroup != null});\n const initials = name != null ? getInitials(name) : '';\n const showInitials = initials !== '';\n const accessibleName = alt ?? (showInitials ? name : undefined) ?? 'Avatar';\n const contentStyle = {\n width: numericSize,\n height: numericSize,\n };\n const fallbackStyle = {\n fontSize: numericSize * INITIALS_FONT_SIZE_RATIO,\n };\n const statusStyle = {\n bottom: numericSize * CIRCLE_EDGE_OFFSET_RATIO,\n right: numericSize * CIRCLE_EDGE_OFFSET_RATIO,\n transform: 'translate(50%, 50%)',\n };\n\n return (\n <AvatarSizeContext value={numericSize}>\n <div\n aria-label={accessibleName}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={style}>\n <div className={classes.content} style={contentStyle}>\n <AvatarImage\n classes={classes}\n fallbackSrc={fallbackSrc}\n key={`${src}\\0${fallbackSrc}`}\n src={src}>\n {showInitials ? (\n <div className={classes.fallback} style={fallbackStyle}>\n {initials}\n </div>\n ) : (\n <div className={classes.fallback}>\n <Icon\n icon={User}\n size={\n numericSize < 48 ? 'sm' : numericSize < 96 ? 'md' : 'lg'\n }\n />\n </div>\n )}\n </AvatarImage>\n </div>\n {isReactNode(status) ? (\n <div className={classes.status} style={statusStyle}>\n {status}\n </div>\n ) : null}\n </div>\n </AvatarSizeContext>\n );\n}\n\nfunction AvatarImage({\n children,\n classes,\n fallbackSrc,\n src,\n}: {\n children: ReactNode;\n classes: {image?: string};\n fallbackSrc?: string;\n src?: string;\n}): React.JSX.Element {\n const [imageError, setImageError] = useState(false);\n const [fallbackError, setFallbackError] = useState(false);\n const showImage = src != null && src !== '' && !imageError;\n const showFallbackImage =\n !showImage && fallbackSrc != null && fallbackSrc !== '' && !fallbackError;\n\n if (showImage) {\n return (\n <img\n alt=\"\"\n className={classes.image}\n onError={() => setImageError(true)}\n src={src}\n />\n );\n }\n\n if (showFallbackImage) {\n return (\n <img\n alt=\"\"\n className={classes.image}\n onError={() => setFallbackError(true)}\n src={fallbackSrc}\n />\n );\n }\n\n return <>{children}</>;\n}\n\nAvatar.displayName = 'Avatar';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useAvatarSize} from 'components/Avatar/AvatarSizeContext';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\n\nexport type AvatarStatusDotVariant = 'success' | 'neutral' | 'error';\n\n/**\n * Size-aware status indicator intended for Avatar's `status` prop.\n */\nexport interface AvatarStatusDotProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Optional icon rendered inside medium and large dots.\n */\n icon?: ReactNode;\n /**\n * Accessible label describing the status, such as \"Online\".\n */\n label: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Semantic dot color. Default is `success`.\n */\n variant?: AvatarStatusDotVariant;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n borderStyle: 'solid',\n borderColor: 'bg',\n }),\n success: css({\n bg: 'presence.success',\n }),\n neutral: css({\n bg: 'presence.neutral',\n }),\n error: css({\n bg: 'presence.error',\n }),\n icon: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'fg.onPrimary',\n lineHeight: 0,\n '& > svg': {\n w: '100%',\n h: '100%',\n },\n }),\n};\n\nconst variantClassName: Record<AvatarStatusDotVariant, string> = {\n success: styles.success,\n neutral: styles.neutral,\n error: styles.error,\n};\n\nfunction resolveStatusDotSize(avatarSize: number): {\n borderWidth: number;\n dotSize: number;\n iconSize: number;\n} {\n if (avatarSize <= 36) {\n return {borderWidth: 1, dotSize: 10, iconSize: 0};\n }\n\n if (avatarSize <= 72) {\n return {borderWidth: 2, dotSize: 20, iconSize: 12};\n }\n\n return {borderWidth: 4, dotSize: 32, iconSize: 18};\n}\n\n/**\n * Size-aware status indicator dot rendered in the corner of an Avatar.\n */\nexport function AvatarStatusDot({\n className,\n 'data-testid': dataTestId,\n icon,\n label,\n ref,\n style,\n variant = 'success',\n}: AvatarStatusDotProps): React.JSX.Element {\n const avatarSize = useAvatarSize();\n const {borderWidth, dotSize, iconSize} = resolveStatusDotSize(avatarSize);\n const hasVisibleIcon = isReactNode(icon) && iconSize > 0;\n\n if (process.env.NODE_ENV !== 'production') {\n if (isReactNode(icon) && iconSize === 0) {\n console.warn(\n 'AvatarStatusDot: `icon` is not visible at avatar sizes 36px or ' +\n 'smaller. Use a larger avatar size or remove the `icon` prop.',\n );\n }\n }\n\n return (\n <div\n aria-label={label}\n className={cx(styles.root, variantClassName[variant], className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={{width: dotSize, height: dotSize, borderWidth, ...style}}>\n {hasVisibleIcon ? (\n <span\n aria-hidden=\"true\"\n className={styles.icon}\n style={{width: iconSize, height: iconSize}}>\n {icon}\n </span>\n ) : null}\n </div>\n );\n}\n\nAvatarStatusDot.displayName = 'AvatarStatusDot';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AppShell/AppShellMobileContext.tsx","../src/internal/MobileNav/MobileNav.recipe.ts","../src/internal/MobileNav/MobileNav.tsx","../src/internal/MobileNav/MobileNavToggle.tsx"],"names":["createContext","use","cva","css","useCallback","useRef","useEffect","useScrollLock","jsx","cx","mergeRefs","jsxs","Button","X","Menu"],"mappings":"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","file":"chunk-BYV7NXC5.cjs","sourcesContent":["import {createContext, use} from 'react';\n\nexport interface AppShellMobileContextValue {\n closeMobileNav: () => void;\n hasAutoToggle: boolean;\n isMobile: boolean;\n isMobileNavEnabled: boolean;\n isMobileNavOpen: boolean;\n openMobileNav: () => void;\n toggleMobileNav: () => void;\n}\n\nconst defaultValue: AppShellMobileContextValue = {\n closeMobileNav: () => {},\n hasAutoToggle: true,\n isMobile: false,\n isMobileNavEnabled: false,\n isMobileNavOpen: false,\n openMobileNav: () => {},\n toggleMobileNav: () => {},\n};\n\nexport const AppShellMobileContext =\n createContext<AppShellMobileContextValue>(defaultValue);\nAppShellMobileContext.displayName = 'AppShellMobileContext';\n\nexport function useAppShellMobile(): AppShellMobileContextValue {\n return use(AppShellMobileContext);\n}\n","import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const mobileNavRecipe = cva({\n base: {\n position: 'fixed',\n inset: 0,\n m: 0,\n p: 0,\n borderWidth: 0,\n maxW: 'none',\n maxH: 'none',\n w: '100vw',\n h: '100dvh',\n bg: 'transparent',\n overflow: 'hidden',\n display: 'none',\n '&::backdrop': {\n bg: 'overlay.scrim',\n backdropFilter: 'blur(2px)',\n },\n },\n variants: {\n isOpen: {\n true: {\n display: 'flex',\n },\n false: {},\n },\n },\n defaultVariants: {\n isOpen: false,\n },\n});\n\nexport type MobileNavVariants = RecipeVariantProps<typeof mobileNavRecipe>;\n","import {X} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useCallback, useEffect, useRef} from 'react';\nimport {useAppShellMobile} from 'components/AppShell/AppShellMobileContext';\nimport {Button} from 'components/Button';\nimport {mobileNavRecipe} from 'internal/MobileNav/MobileNav.recipe';\nimport {cx} from 'internal/cx';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {useScrollLock} from 'internal/useScrollLock';\nimport {css} from 'styled-system/css';\n\nexport type MobileNavSide = 'start' | 'end';\n\n/**\n * Slide-out drawer for mobile navigation.\n */\nexport interface MobileNavProps {\n /**\n * Drawer body content.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the dialog element.\n */\n className?: string;\n /**\n * Test ID applied to the dialog element.\n */\n 'data-testid'?: string;\n /**\n * Content rendered in the drawer header bar.\n */\n header?: ReactNode;\n /**\n * Whether the drawer is open.\n */\n isOpen?: boolean;\n /**\n * Accessible label for the dialog.\n */\n label?: string;\n /**\n * Called when the drawer requests an open-state change.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Which edge of the viewport the drawer slides from.\n * @default 'end'\n */\n side?: MobileNavSide;\n /**\n * Maximum drawer width.\n * @default 320\n */\n size?: number | string;\n /**\n * Inline styles applied to the dialog element.\n */\n style?: CSSProperties;\n}\n\nfunction formatSize(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nconst CLOSE_BUTTON_SELECTOR = '[aria-label=\"Close navigation\"]';\n\nconst styles = {\n drawer: css({\n position: 'absolute',\n insetBlock: 0,\n display: 'flex',\n flexDirection: 'column',\n bg: 'bg',\n borderColor: 'border',\n overflow: 'hidden',\n transitionProperty: 'transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01s',\n },\n }),\n drawerStart: css({\n insetInlineStart: 0,\n borderInlineEndWidth: 'default',\n transform: 'translateX(-100%)',\n _rtl: {transform: 'translateX(100%)'},\n }),\n drawerEnd: css({\n insetInlineEnd: 0,\n borderInlineStartWidth: 'default',\n transform: 'translateX(100%)',\n _rtl: {transform: 'translateX(-100%)'},\n }),\n drawerOpen: css({\n transform: 'translateX(0)',\n }),\n header: css({\n h: '12',\n px: '2',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n flexShrink: 0,\n }),\n body: css({\n flex: 1,\n overflowY: 'auto',\n overflowX: 'hidden',\n p: '2',\n }),\n};\n\nexport function MobileNav({\n children,\n className,\n 'data-testid': dataTestId,\n header,\n isOpen: isOpenFromProps,\n label,\n onOpenChange: onOpenChangeFromProps,\n ref,\n side = 'end',\n size = 320,\n style,\n}: MobileNavProps): React.JSX.Element {\n const appShellMobile = useAppShellMobile();\n const isOpen = isOpenFromProps ?? appShellMobile.isMobileNavOpen;\n const {openMobileNav, closeMobileNav} = appShellMobile;\n const onOpenChange = useCallback(\n (isNextOpen: boolean) => {\n if (onOpenChangeFromProps != null) {\n onOpenChangeFromProps(isNextOpen);\n } else if (isNextOpen) {\n openMobileNav();\n } else {\n closeMobileNav();\n }\n },\n [openMobileNav, closeMobileNav, onOpenChangeFromProps],\n );\n const dialogRef = useRef<HTMLDialogElement>(null);\n\n useEffect(() => {\n const dialog = dialogRef.current;\n\n if (dialog == null) {\n return;\n }\n\n if (isOpen && !dialog.open) {\n dialog.showModal();\n\n const firstFocusable = dialog.querySelector<HTMLElement>(\n `a[href], button:not(${CLOSE_BUTTON_SELECTOR}):not([disabled])`,\n );\n if (firstFocusable != null) {\n firstFocusable.focus();\n }\n } else if (!isOpen && dialog.open) {\n dialog.close();\n }\n }, [isOpen]);\n\n useScrollLock(isOpen);\n\n const formattedSize = formatSize(size);\n\n return (\n <dialog\n aria-label={label ?? (typeof header === 'string' ? header : 'Navigation')}\n className={cx(mobileNavRecipe({isOpen}), className)}\n data-testid={dataTestId}\n onCancel={event => {\n event.preventDefault();\n onOpenChange(false);\n }}\n onClick={event => {\n if (event.target === event.currentTarget) {\n onOpenChange(false);\n }\n }}\n ref={mergeRefs(ref, dialogRef)}\n style={style}>\n <div\n className={cx(\n styles.drawer,\n side === 'start' ? styles.drawerStart : styles.drawerEnd,\n isOpen && styles.drawerOpen,\n )}\n style={{maxWidth: formattedSize, width: '100vw'}}>\n <div className={styles.header}>\n {header ?? <span />}\n <Button\n icon={X}\n isIconOnly\n label=\"Close navigation\"\n onClick={() => onOpenChange(false)}\n variant=\"ghost\"\n />\n </div>\n <div className={styles.body}>{children}</div>\n </div>\n </dialog>\n );\n}\n\nMobileNav.displayName = 'MobileNav';\n","import {Menu} from 'lucide-react';\nimport type {CSSProperties, Ref} from 'react';\nimport {useAppShellMobile} from 'components/AppShell/AppShellMobileContext';\nimport {Button} from 'components/Button';\n\n/**\n * Props for {@link MobileNavToggle}.\n */\nexport interface MobileNavToggleProps {\n /**\n * Additional CSS class names applied to the toggle button.\n */\n className?: string;\n /**\n * Test ID applied to the toggle button.\n */\n 'data-testid'?: string;\n /**\n * Accessible label for the toggle button.\n * @default 'Open navigation'\n */\n label?: string;\n /**\n * Ref forwarded to the toggle button.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the toggle button.\n */\n style?: CSSProperties;\n}\n\n/**\n * Hamburger-style button that toggles the mobile navigation drawer.\n * Renders nothing when the viewport is above the mobile breakpoint or\n * mobile navigation is disabled.\n */\nexport function MobileNavToggle({\n className,\n 'data-testid': dataTestId,\n label = 'Open navigation',\n ref,\n style,\n}: MobileNavToggleProps): React.JSX.Element | null {\n const {isMobile, isMobileNavEnabled, toggleMobileNav} = useAppShellMobile();\n\n if (!isMobile || !isMobileNavEnabled) {\n return null;\n }\n\n return (\n <Button\n className={className}\n data-testid={dataTestId}\n icon={Menu}\n isIconOnly\n label={label}\n onClick={toggleMobileNav}\n ref={ref}\n style={style}\n variant=\"ghost\"\n />\n );\n}\n\nMobileNavToggle.displayName = 'MobileNavToggle';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/DateTimeInput/DateTimeInput.tsx"],"names":["css","Temporal","useId","useMemo","useCallback","getNecessity","jsx","Field","jsxs","cx","DateInput","TimeInput","plainDateIsEqual"],"mappings":";;;;;;;;;;;;AA6GA,IAAM,MAAA,GAAS;AAAA,EACb,KAAKA,qBAAA,CAAI;AAAA,IACP,OAAA,EAAS,MAAA;AAAA,IACT,mBAAA,EAAqB,kCAAA;AAAA,IACrB,GAAA,EAAK;AAAA,GACN;AACH,CAAA;AAEA,SAAS,cAAc,KAAA,EAGrB;AACA,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO,EAAC,IAAA,EAAM,MAAA,EAAW,IAAA,EAAM,MAAA,EAAS;AAAA,EAC1C;AACA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,MAAM,WAAA,EAAY;AAAA,IACxB,IAAA,EAAM,MAAM,WAAA;AAAY,GAC1B;AACF;AAEA,SAAS,eAAA,CACP,MACA,IAAA,EACsB;AACtB,EAAA,IAAI,IAAA,IAAQ,IAAA,IAAQ,IAAA,IAAQ,IAAA,EAAM;AAChC,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,YAAA,GAAe,IAAA,IAAQC,iBAAA,CAAS,GAAA,CAAI,YAAA,EAAa;AACvD,EAAA,MAAM,YAAA,GAAe,IAAA,IAAQA,iBAAA,CAAS,GAAA,CAAI,YAAA,EAAa;AACvD,EAAA,OAAO,YAAA,CAAa,gBAAgB,YAAY,CAAA;AAClD;AAEA,SAAS,SAAA,CACP,IAAA,EACA,GAAA,EACA,GAAA,EACW;AACX,EAAA,IAAI,GAAA,IAAO,QAAQA,iBAAA,CAAS,SAAA,CAAU,QAAQ,IAAA,EAAM,GAAG,IAAI,CAAA,EAAG;AAC5D,IAAA,OAAO,GAAA;AAAA,EACT;AACA,EAAA,IAAI,GAAA,IAAO,QAAQA,iBAAA,CAAS,SAAA,CAAU,QAAQ,IAAA,EAAM,GAAG,IAAI,CAAA,EAAG;AAC5D,IAAA,OAAO,GAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;AAKO,SAAS,aAAA,CAAc;AAAA,EAC5B,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,iBAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,IAAA,GAAO,IAAA;AAAA,EACP,WAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,SAAA,GAAY,KAAA;AAAA,EACZ,MAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,KAAA;AAAA,EACA;AACF,CAAA,EAA0C;AACxC,EAAA,MAAM,UAAUC,WAAA,EAAM;AACtB,EAAA,MAAM,EAAC,IAAA,EAAM,IAAA,EAAI,GAAIC,aAAA,CAAQ,MAAM,aAAA,CAAc,KAAK,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAChE,EAAA,MAAM,QAAA,GAAWA,cAAQ,MAAM,aAAA,CAAc,GAAG,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AACxD,EAAA,MAAM,QAAA,GAAWA,cAAQ,MAAM,aAAA,CAAc,GAAG,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAExD,EAAA,MAAM,gBAAA,GAAmBC,iBAAA;AAAA,IACvB,CAAC,QAAA,KAA+B;AAC9B,MAAA,IAAI,QAAA,IAAY,IAAA,IAAQ,IAAA,IAAQ,IAAA,EAAM;AACpC,QAAA,QAAA,CAAS,eAAA,CAAgB,QAAA,EAAU,IAAI,CAAC,CAAA;AACxC,QAAA;AAAA,MACF;AACA,MAAA,MAAM,gBAAA,GACJ,GAAA,IAAO,IAAA,IAAQ,QAAA,CAAS,MAAA,CAAO,GAAA,CAAI,WAAA,EAAa,CAAA,GAC5C,GAAA,CAAI,WAAA,EAAY,GAChB,MAAA;AACN,MAAA,MAAM,gBAAA,GACJ,GAAA,IAAO,IAAA,IAAQ,QAAA,CAAS,MAAA,CAAO,GAAA,CAAI,WAAA,EAAa,CAAA,GAC5C,GAAA,CAAI,WAAA,EAAY,GAChB,MAAA;AACN,MAAA,QAAA;AAAA,QACE,eAAA;AAAA,UACE,QAAA;AAAA,UACA,SAAA,CAAU,IAAA,EAAM,gBAAA,EAAkB,gBAAgB;AAAA;AACpD,OACF;AAAA,IACF,CAAA;AAAA,IACA,CAAC,QAAA,EAAU,IAAA,EAAM,GAAA,EAAK,GAAG;AAAA,GAC3B;AACA,EAAA,MAAM,gBAAA,GAAmBA,iBAAA;AAAA,IACvB,CAAC,QAAA,KAA+B,QAAA,CAAS,eAAA,CAAgB,IAAA,EAAM,QAAQ,CAAC,CAAA;AAAA,IACxE,CAAC,UAAU,IAAI;AAAA,GACjB;AAEA,EAAA,MAAM,SAAA,GAAYC,8BAAA,CAAa,UAAA,EAAY,UAAU,CAAA;AAErD,EAAA,uBACEC,cAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,WAAA;AAAA,MACA,OAAA,EAAS,OAAA;AAAA,MACT,UAAA;AAAA,MACA,aAAA;AAAA,MACC,GAAG,SAAA;AAAA,MACJ,KAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA,kBAAAC,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAWC,oBAAA,CAAG,MAAA,CAAO,GAAA,EAAK,SAAS,CAAA;AAAA,UACnC,aAAA,EAAa,UAAA;AAAA,UACb,KAAA;AAAA,UACA,QAAA,EAAA;AAAA,4BAAAH,cAAA;AAAA,cAACI,2BAAA;AAAA,cAAA;AAAA,gBACC,iBAAA;AAAA,gBACA,MAAA,EAAQ,OAAA;AAAA,gBACR,UAAA;AAAA,gBACA,aAAA,EAAa,IAAA;AAAA,gBACb,SAAA;AAAA,gBACA,KAAA,EAAO,GAAG,KAAK,CAAA,KAAA,CAAA;AAAA,gBACf,KAAK,QAAA,CAAS,IAAA;AAAA,gBACd,KAAK,QAAA,CAAS,IAAA;AAAA,gBACd,QAAA,EAAU,gBAAA;AAAA,gBACV,GAAA;AAAA,gBACA,IAAA;AAAA,gBACA,OAAO,IAAA,IAAQ;AAAA;AAAA,aACjB;AAAA,4BACAJ,cAAA;AAAA,cAACK,2BAAA;AAAA,cAAA;AAAA,gBACC,UAAA;AAAA,gBACA,UAAA;AAAA,gBACA,aAAA,EAAa,IAAA;AAAA,gBACb,SAAA;AAAA,gBACA,KAAA,EAAO,GAAG,KAAK,CAAA,KAAA,CAAA;AAAA,gBACf,GAAA,EACE,IAAA,IAAQ,IAAA,IACR,QAAA,CAAS,IAAA,IAAQ,IAAA,IACjBC,kCAAA,CAAiB,IAAA,EAAM,QAAA,CAAS,IAAI,CAAA,GAChC,QAAA,CAAS,IAAA,GACT,MAAA;AAAA,gBAEN,GAAA,EACE,IAAA,IAAQ,IAAA,IACR,QAAA,CAAS,IAAA,IAAQ,IAAA,IACjBA,kCAAA,CAAiB,IAAA,EAAM,QAAA,CAAS,IAAI,CAAA,GAChC,QAAA,CAAS,IAAA,GACT,MAAA;AAAA,gBAEN,QAAA,EAAU,gBAAA;AAAA,gBACV,IAAA;AAAA,gBACA,OAAO,IAAA,IAAQ;AAAA;AAAA;AACjB;AAAA;AAAA;AACF;AAAA,GACF;AAEJ;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA","file":"chunk-CQYBC3RJ.cjs","sourcesContent":["import {Temporal} from '@js-temporal/polyfill';\nimport {\n useCallback,\n useId,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {DateInput} from 'components/DateInput';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from 'components/Field';\nimport type {IconComponent} from 'components/Icon';\nimport {TimeInput, type PlainTime} from 'components/TimeInput';\nimport {cx} from 'internal/cx';\nimport {plainDateIsEqual, type PlainDate} from 'internal/plainDate';\nimport {css} from 'styled-system/css';\n\nexport type PlainDateTime = Temporal.PlainDateTime;\n\nexport type DateTimeInputProps = {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Returns true for dates that should be disabled.\n */\n getIsDateDisabled?: (date: PlainDate) => boolean;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Whether to show the seconds field in the time input.\n * @default false\n */\n hasSeconds?: boolean;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the input is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label text.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum selectable date-time.\n */\n max?: PlainDateTime;\n /**\n * Minimum selectable date-time.\n */\n min?: PlainDateTime;\n /**\n * Called when the selected date-time changes.\n */\n onChange: (value: PlainDateTime | null) => void;\n /**\n * Ref forwarded to the date input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the inputs.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Currently selected date-time. Pass `null` for an empty input.\n */\n value: PlainDateTime | null;\n} & FieldNecessity;\n\nconst styles = {\n row: css({\n display: 'grid',\n gridTemplateColumns: 'minmax(0, 1fr) minmax(0, 0.75fr)',\n gap: '2',\n }),\n} as const;\n\nfunction splitDateTime(value: PlainDateTime | null | undefined): {\n date: PlainDate | undefined;\n time: PlainTime | undefined;\n} {\n if (value == null) {\n return {date: undefined, time: undefined};\n }\n return {\n date: value.toPlainDate(),\n time: value.toPlainTime(),\n };\n}\n\nfunction combineDateTime(\n date: PlainDate | null | undefined,\n time: PlainTime | null | undefined,\n): PlainDateTime | null {\n if (date == null && time == null) {\n return null;\n }\n const resolvedDate = date ?? Temporal.Now.plainDateISO();\n const resolvedTime = time ?? Temporal.Now.plainTimeISO();\n return resolvedDate.toPlainDateTime(resolvedTime);\n}\n\nfunction clampTime(\n time: PlainTime,\n min: PlainTime | undefined,\n max: PlainTime | undefined,\n): PlainTime {\n if (min != null && Temporal.PlainTime.compare(time, min) < 0) {\n return min;\n }\n if (max != null && Temporal.PlainTime.compare(time, max) > 0) {\n return max;\n }\n return time;\n}\n\n/**\n * A combined date and time input with calendar popover and time fields.\n */\nexport function DateTimeInput({\n label,\n value,\n onChange,\n min,\n max,\n getIsDateDisabled,\n hasSeconds = false,\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n status,\n labelIcon,\n labelTooltip,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: DateTimeInputProps): React.JSX.Element {\n const fieldId = useId();\n const {date, time} = useMemo(() => splitDateTime(value), [value]);\n const minParts = useMemo(() => splitDateTime(min), [min]);\n const maxParts = useMemo(() => splitDateTime(max), [max]);\n\n const handleDateChange = useCallback(\n (nextDate: PlainDate | null) => {\n if (nextDate == null || time == null) {\n onChange(combineDateTime(nextDate, time));\n return;\n }\n const effectiveTimeMin =\n min != null && nextDate.equals(min.toPlainDate())\n ? min.toPlainTime()\n : undefined;\n const effectiveTimeMax =\n max != null && nextDate.equals(max.toPlainDate())\n ? max.toPlainTime()\n : undefined;\n onChange(\n combineDateTime(\n nextDate,\n clampTime(time, effectiveTimeMin, effectiveTimeMax),\n ),\n );\n },\n [onChange, time, min, max],\n );\n const handleTimeChange = useCallback(\n (nextTime: PlainTime | null) => onChange(combineDateTime(date, nextTime)),\n [onChange, date],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n description={description}\n inputId={fieldId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={status}>\n <div\n className={cx(styles.row, className)}\n data-testid={dataTestId}\n style={style}>\n <DateInput\n getIsDateDisabled={getIsDateDisabled}\n htmlId={fieldId}\n isDisabled={isDisabled}\n isLabelHidden\n isLoading={isLoading}\n label={`${label} date`}\n max={maxParts.date}\n min={minParts.date}\n onChange={handleDateChange}\n ref={ref}\n size={size}\n value={date ?? null}\n />\n <TimeInput\n hasSeconds={hasSeconds}\n isDisabled={isDisabled}\n isLabelHidden\n isLoading={isLoading}\n label={`${label} time`}\n max={\n date != null &&\n maxParts.date != null &&\n plainDateIsEqual(date, maxParts.date)\n ? maxParts.time\n : undefined\n }\n min={\n date != null &&\n minParts.date != null &&\n plainDateIsEqual(date, minParts.date)\n ? minParts.time\n : undefined\n }\n onChange={handleTimeChange}\n size={size}\n value={time ?? null}\n />\n </div>\n </Field>\n );\n}\n\nDateTimeInput.displayName = 'DateTimeInput';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AlertDialog/AlertDialog.tsx","../src/components/AlertDialog/useAlertDialog.tsx"],"names":["useRef","useEffect","useCallback","jsx","Dialog","Layout","LayoutContent","Text","LayoutFooter","Button","LayoutHeader","useState"],"mappings":";;;;;;;;;AAqFO,SAAS,WAAA,CAAY;AAAA,EAC1B,WAAA;AAAA,EACA,aAAA,GAAgB,aAAA;AAAA,EAChB,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,WAAA;AAAA,EACA,eAAA,GAAkB,KAAA;AAAA,EAClB,MAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA,GAAQ;AACV,CAAA,EAA+C;AAO7C,EAAA,MAAM,cAAA,GAAiBA,aAAO,KAAK,CAAA;AAEnC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,MAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AAAA,IAC3B;AAAA,EACF,CAAA,EAAG,CAAC,eAAe,CAAC,CAAA;AAEpB,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AAAA,IAC3B;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,MAAM,YAAA,GAAeC,kBAAY,MAAM;AACrC,IAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,MAAA;AAAA,IACF;AACA,IAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,IAAA,QAAA,EAAS;AAAA,EACX,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,uBACEC,cAAA;AAAA,IAACC,wBAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,eAAA,EAAiB,KAAA;AAAA,MACjB,MAAA;AAAA,MACA,YAAA;AAAA,MACA,GAAA;AAAA,MACA,IAAA,EAAK,aAAA;AAAA,MACL,KAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA,kBAAAD,cAAA;AAAA,QAACE,wBAAA;AAAA,QAAA;AAAA,UACC,OAAA,kBACEF,cAAA,CAACG,+BAAA,EAAA,EACC,QAAA,kBAAAH,cAAA,CAACI,sBAAA,EAAA,EAAK,IAAG,GAAA,EAAI,KAAA,EAAM,WAAA,EAChB,QAAA,EAAA,WAAA,EACH,CAAA,EACF,CAAA;AAAA,UAEF,MAAA,kBACEJ,cAAA;AAAA,YAACK,8BAAA;AAAA,YAAA;AAAA,cACC,aAAA,kBACEL,cAAA;AAAA,gBAACM,wBAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,eAAA;AAAA,kBACX,KAAA,EAAO,WAAA;AAAA,kBACP,OAAA,EAAS,YAAA;AAAA,kBACT,OAAA,EAAS;AAAA;AAAA,eACX;AAAA,cAEF,eAAA,kBACEN,cAAA;AAAA,gBAACM,wBAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAO,WAAA;AAAA,kBACP,OAAA,EAAS,MAAM,YAAA,CAAa,KAAK,CAAA;AAAA,kBACjC,OAAA,EAAQ;AAAA;AAAA;AACV;AAAA,WAEJ;AAAA,UAEF,WAAA,EAAW,IAAA;AAAA,UACX,MAAA,kBAAQN,cAAA,CAACO,8BAAA,EAAA,EAAa,KAAA,EAAc;AAAA;AAAA;AACtC;AAAA,GACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AChJnB,SAAS,cAAA,GAAuC;AACrD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,eAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,eAAoC,IAAI,CAAA;AAEtE,EAAA,MAAM,IAAA,GAAOT,iBAAAA,CAAY,CAAC,WAAA,KAAoC;AAC5D,IAAA,UAAA,CAAW,WAAW,CAAA;AACtB,IAAA,SAAA,CAAU,IAAI,CAAA;AAAA,EAChB,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,MAAM,IAAA,GAAOA,kBAAY,MAAM;AAC7B,IAAA,SAAA,CAAU,KAAK,CAAA;AACf,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,OAAA,GACJ,OAAA,IAAW,IAAA,GAAO,IAAA,mBAChBC,cAAAA,CAAC,WAAA,EAAA,EAAa,GAAG,OAAA,EAAS,MAAA,EAAgB,YAAA,EAAc,SAAA,EAAW,CAAA;AAGvE,EAAA,OAAO,EAAC,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAI;AACrC","file":"chunk-CWZCBYVZ.cjs","sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {Dialog} from 'components/Dialog';\nimport {\n Layout,\n LayoutContent,\n LayoutFooter,\n LayoutHeader,\n} from 'components/Layout';\nimport {Text} from 'components/Text';\n\nexport type AlertDialogActionVariant = 'destructive' | 'primary';\n\nexport interface AlertDialogProps {\n /**\n * Action button label.\n */\n actionLabel: string;\n /**\n * Visual variant for the action button.\n * @default 'destructive'\n */\n actionVariant?: AlertDialogActionVariant;\n /**\n * Cancel button label.\n * @default 'Cancel'\n */\n cancelLabel?: string;\n /**\n * Additional CSS class names applied to the dialog.\n */\n className?: string;\n /**\n * Test ID applied to the dialog.\n */\n 'data-testid'?: string;\n /**\n * Consequence description.\n */\n description: string;\n /**\n * Whether the action button is loading.\n * @default false\n */\n isActionLoading?: boolean;\n /**\n * Whether the dialog is open.\n */\n isOpen: boolean;\n /**\n * Called when the primary action is clicked.\n */\n onAction: () => void;\n /**\n * Called when the dialog requests an open-state change.\n */\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Inline styles applied to the dialog.\n */\n style?: CSSProperties;\n /**\n * Dialog title.\n */\n title: string;\n /**\n * Dialog width. Numbers are treated as pixels.\n * @default 400\n */\n width?: number | string;\n}\n\n/**\n * A modal confirmation dialog for destructive or irreversible actions.\n */\nexport function AlertDialog({\n actionLabel,\n actionVariant = 'destructive',\n cancelLabel = 'Cancel',\n className,\n 'data-testid': dataTestId,\n description,\n isActionLoading = false,\n isOpen,\n onAction,\n onOpenChange,\n ref,\n style,\n title,\n width = 400,\n}: AlertDialogProps): React.JSX.Element | null {\n /**\n * Synchronous guard against rapid double-invocation of onAction.\n * The ref flips immediately on the first call — before React can\n * re-render with `isActionLoading=true` — so a second Enter/click\n * in the same event-loop tick is ignored.\n */\n const actionFiredRef = useRef(false);\n\n useEffect(() => {\n if (!isActionLoading) {\n actionFiredRef.current = false;\n }\n }, [isActionLoading]);\n\n useEffect(() => {\n if (!isOpen) {\n actionFiredRef.current = false;\n }\n }, [isOpen]);\n\n const handleAction = useCallback(() => {\n if (actionFiredRef.current) {\n return;\n }\n actionFiredRef.current = true;\n onAction();\n }, [onAction]);\n\n return (\n <Dialog\n className={className}\n data-testid={dataTestId}\n dismissBehavior={false}\n isOpen={isOpen}\n onOpenChange={onOpenChange}\n ref={ref}\n role=\"alertdialog\"\n style={style}\n width={width}>\n <Layout\n content={\n <LayoutContent>\n <Text as=\"p\" color=\"secondary\">\n {description}\n </Text>\n </LayoutContent>\n }\n footer={\n <LayoutFooter\n primaryButton={\n <Button\n isLoading={isActionLoading}\n label={actionLabel}\n onClick={handleAction}\n variant={actionVariant}\n />\n }\n secondaryButton={\n <Button\n label={cancelLabel}\n onClick={() => onOpenChange(false)}\n variant=\"ghost\"\n />\n }\n />\n }\n hasDividers\n header={<LayoutHeader title={title} />}\n />\n </Dialog>\n );\n}\n\nAlertDialog.displayName = 'AlertDialog';\n","import {useCallback, useState, type ReactNode} from 'react';\nimport {\n AlertDialog,\n type AlertDialogProps,\n} from 'components/AlertDialog/AlertDialog';\n\nexport type AlertDialogOptions = Omit<\n AlertDialogProps,\n 'isOpen' | 'onOpenChange'\n>;\n\nexport interface UseAlertDialogReturn {\n /**\n * Render this element in your tree.\n */\n element: ReactNode;\n /**\n * Hide the current alert dialog.\n */\n hide: () => void;\n /**\n * Whether the alert dialog is open.\n */\n isOpen: boolean;\n /**\n * Show an alert dialog with the provided options.\n */\n show: (options: AlertDialogOptions) => void;\n}\n\nexport function useAlertDialog(): UseAlertDialogReturn {\n const [isOpen, setIsOpen] = useState(false);\n const [options, setOptions] = useState<AlertDialogOptions | null>(null);\n\n const show = useCallback((nextOptions: AlertDialogOptions) => {\n setOptions(nextOptions);\n setIsOpen(true);\n }, []);\n const hide = useCallback(() => {\n setIsOpen(false);\n setOptions(null);\n }, []);\n\n const element: ReactNode =\n options == null ? null : (\n <AlertDialog {...options} isOpen={isOpen} onOpenChange={setIsOpen} />\n );\n\n return {element, hide, isOpen, show};\n}\n"]}