@mdigital_ui/ui 0.4.2 → 0.4.3

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 (481) hide show
  1. package/dist/accordion/index.d.ts.map +1 -1
  2. package/dist/accordion/index.js +3 -3
  3. package/dist/accordion/types.d.ts +2 -42
  4. package/dist/accordion/types.d.ts.map +1 -1
  5. package/dist/avatar/index.d.ts +0 -6
  6. package/dist/avatar/index.d.ts.map +1 -1
  7. package/dist/avatar/index.js +2 -2
  8. package/dist/avatar/types.d.ts +0 -48
  9. package/dist/avatar/types.d.ts.map +1 -1
  10. package/dist/badge/index.d.ts +1 -23
  11. package/dist/badge/index.d.ts.map +1 -1
  12. package/dist/badge/index.js +3 -3
  13. package/dist/badge/types.d.ts +1 -20
  14. package/dist/badge/types.d.ts.map +1 -1
  15. package/dist/breadcrumbs/index.d.ts.map +1 -1
  16. package/dist/breadcrumbs/index.js +7 -6
  17. package/dist/breadcrumbs/types.d.ts +3 -38
  18. package/dist/breadcrumbs/types.d.ts.map +1 -1
  19. package/dist/button/index.d.ts +1 -1
  20. package/dist/button/index.d.ts.map +1 -1
  21. package/dist/button/index.js +5 -5
  22. package/dist/button/types.d.ts +2 -8
  23. package/dist/button/types.d.ts.map +1 -1
  24. package/dist/button-group/index.d.ts +0 -28
  25. package/dist/button-group/index.d.ts.map +1 -1
  26. package/dist/button-group/index.js +2 -2
  27. package/dist/button-group/types.d.ts +0 -19
  28. package/dist/button-group/types.d.ts.map +1 -1
  29. package/dist/card/index.d.ts +0 -40
  30. package/dist/card/index.d.ts.map +1 -1
  31. package/dist/card/index.js +3 -3
  32. package/dist/card/types.d.ts +3 -29
  33. package/dist/card/types.d.ts.map +1 -1
  34. package/dist/carousel/index.d.ts +4 -0
  35. package/dist/carousel/index.d.ts.map +1 -1
  36. package/dist/carousel/index.js +2 -2
  37. package/dist/cascader/index.d.ts +0 -21
  38. package/dist/cascader/index.d.ts.map +1 -1
  39. package/dist/cascader/index.js +3 -3
  40. package/dist/cascader/types.d.ts +3 -89
  41. package/dist/cascader/types.d.ts.map +1 -1
  42. package/dist/checkbox/index.d.ts.map +1 -1
  43. package/dist/checkbox/index.js +3 -3
  44. package/dist/checkbox/types.d.ts +2 -2
  45. package/dist/checkbox/types.d.ts.map +1 -1
  46. package/dist/checkbox-group/index.d.ts.map +1 -1
  47. package/dist/checkbox-group/index.js +2 -2
  48. package/dist/checkbox-group/types.d.ts +0 -24
  49. package/dist/checkbox-group/types.d.ts.map +1 -1
  50. package/dist/{chunk-H6G4BUPA.js → chunk-2FYXBW4S.js} +201 -161
  51. package/dist/chunk-2FYXBW4S.js.map +1 -0
  52. package/dist/{chunk-KH577UDI.js → chunk-2OBMSB5S.js} +9 -6
  53. package/dist/chunk-2OBMSB5S.js.map +1 -0
  54. package/dist/{chunk-3BIV3QE2.js → chunk-3FXOQC6P.js} +60 -28
  55. package/dist/chunk-3FXOQC6P.js.map +1 -0
  56. package/dist/{chunk-YXLIGJTN.js → chunk-3KISIZGP.js} +6 -6
  57. package/dist/chunk-3KISIZGP.js.map +1 -0
  58. package/dist/{chunk-6G3BMY4N.js → chunk-3QD7AQX7.js} +76 -85
  59. package/dist/chunk-3QD7AQX7.js.map +1 -0
  60. package/dist/{chunk-ROA7BYGB.js → chunk-3YP7HY3Y.js} +7 -5
  61. package/dist/chunk-3YP7HY3Y.js.map +1 -0
  62. package/dist/{chunk-OLTQAMV2.js → chunk-442OQLPK.js} +9 -24
  63. package/dist/chunk-442OQLPK.js.map +1 -0
  64. package/dist/{chunk-OFUPJH35.js → chunk-4TEZWGX7.js} +3 -3
  65. package/dist/{chunk-OFUPJH35.js.map → chunk-4TEZWGX7.js.map} +1 -1
  66. package/dist/chunk-4WZDQI22.js +378 -0
  67. package/dist/chunk-4WZDQI22.js.map +1 -0
  68. package/dist/{chunk-TLNHWOQQ.js → chunk-54Z7XTJA.js} +30 -19
  69. package/dist/chunk-54Z7XTJA.js.map +1 -0
  70. package/dist/{chunk-64NHVOZS.js → chunk-5CIJ7UCP.js} +25 -15
  71. package/dist/chunk-5CIJ7UCP.js.map +1 -0
  72. package/dist/{chunk-ON2CMF6J.js → chunk-5XLCUGLQ.js} +14 -10
  73. package/dist/chunk-5XLCUGLQ.js.map +1 -0
  74. package/dist/{chunk-DUIL5BYS.js → chunk-62LTLXVG.js} +72 -48
  75. package/dist/chunk-62LTLXVG.js.map +1 -0
  76. package/dist/{chunk-G6NVGBYZ.js → chunk-6ZPCKFRS.js} +23 -22
  77. package/dist/chunk-6ZPCKFRS.js.map +1 -0
  78. package/dist/{chunk-N2WHJ3FI.js → chunk-7OYMEXY3.js} +7 -5
  79. package/dist/chunk-7OYMEXY3.js.map +1 -0
  80. package/dist/{chunk-ONGJXAYQ.js → chunk-AEPBQO7U.js} +6 -5
  81. package/dist/chunk-AEPBQO7U.js.map +1 -0
  82. package/dist/{chunk-UTWQ2FZK.js → chunk-AOXTD7QZ.js} +47 -93
  83. package/dist/chunk-AOXTD7QZ.js.map +1 -0
  84. package/dist/{chunk-ZJNGZCRB.js → chunk-BLFXVSZU.js} +54 -153
  85. package/dist/chunk-BLFXVSZU.js.map +1 -0
  86. package/dist/{chunk-VOODO2ZE.js → chunk-BMA4E3T6.js} +6 -14
  87. package/dist/chunk-BMA4E3T6.js.map +1 -0
  88. package/dist/{chunk-4FFVNUTK.js → chunk-BNHRUHI4.js} +7 -6
  89. package/dist/chunk-BNHRUHI4.js.map +1 -0
  90. package/dist/{chunk-3BZE6BBJ.js → chunk-C46VTIW7.js} +41 -23
  91. package/dist/chunk-C46VTIW7.js.map +1 -0
  92. package/dist/{chunk-BVO2BNFG.js → chunk-CHGABWIV.js} +3 -3
  93. package/dist/chunk-CHGABWIV.js.map +1 -0
  94. package/dist/chunk-DF2ICSNI.js +99 -0
  95. package/dist/chunk-DF2ICSNI.js.map +1 -0
  96. package/dist/chunk-DOI7OTYV.js +81 -0
  97. package/dist/chunk-DOI7OTYV.js.map +1 -0
  98. package/dist/{chunk-2TLOWZE4.js → chunk-DPIXBBXK.js} +40 -179
  99. package/dist/chunk-DPIXBBXK.js.map +1 -0
  100. package/dist/{chunk-OQFYIKWR.js → chunk-EC5DXYME.js} +21 -12
  101. package/dist/chunk-EC5DXYME.js.map +1 -0
  102. package/dist/{chunk-KJTMZJ7V.js → chunk-EHNWVQBL.js} +65 -48
  103. package/dist/chunk-EHNWVQBL.js.map +1 -0
  104. package/dist/{chunk-I32ZQUYY.js → chunk-F4GLUQOF.js} +9 -8
  105. package/dist/chunk-F4GLUQOF.js.map +1 -0
  106. package/dist/{chunk-GJPZOMFE.js → chunk-FCU2ENQQ.js} +63 -31
  107. package/dist/chunk-FCU2ENQQ.js.map +1 -0
  108. package/dist/{chunk-JWTWPZ32.js → chunk-FZXMRXWE.js} +10 -9
  109. package/dist/chunk-FZXMRXWE.js.map +1 -0
  110. package/dist/{chunk-LOYLJRCF.js → chunk-G27HGKWO.js} +15 -5
  111. package/dist/chunk-G27HGKWO.js.map +1 -0
  112. package/dist/{chunk-Y4XAXZHB.js → chunk-GGQF5PQN.js} +9 -8
  113. package/dist/chunk-GGQF5PQN.js.map +1 -0
  114. package/dist/chunk-GLJDHW73.js +24 -0
  115. package/dist/chunk-GLJDHW73.js.map +1 -0
  116. package/dist/{chunk-LX4FDH4J.js → chunk-GPSZJWU3.js} +10 -11
  117. package/dist/chunk-GPSZJWU3.js.map +1 -0
  118. package/dist/{chunk-6LYRMQOI.js → chunk-H6PCGSIT.js} +21 -16
  119. package/dist/chunk-H6PCGSIT.js.map +1 -0
  120. package/dist/{chunk-WRSG7WU5.js → chunk-HJITFPBT.js} +78 -94
  121. package/dist/chunk-HJITFPBT.js.map +1 -0
  122. package/dist/{chunk-HECAAILV.js → chunk-HRVOTFU4.js} +24 -16
  123. package/dist/chunk-HRVOTFU4.js.map +1 -0
  124. package/dist/{chunk-O3V3BTIJ.js → chunk-HSW64H23.js} +54 -87
  125. package/dist/chunk-HSW64H23.js.map +1 -0
  126. package/dist/{chunk-YS5AIY4A.js → chunk-K5RV3GF4.js} +6 -5
  127. package/dist/chunk-K5RV3GF4.js.map +1 -0
  128. package/dist/{chunk-2WZVD7P3.js → chunk-KZZJAZ5M.js} +6 -5
  129. package/dist/chunk-KZZJAZ5M.js.map +1 -0
  130. package/dist/{chunk-6HGUDHHE.js → chunk-L5BU2QTI.js} +3 -5
  131. package/dist/chunk-L5BU2QTI.js.map +1 -0
  132. package/dist/{chunk-C5IGZLIT.js → chunk-LM6CJZX5.js} +8 -22
  133. package/dist/chunk-LM6CJZX5.js.map +1 -0
  134. package/dist/{chunk-RFHTC6AH.js → chunk-LXHOS74B.js} +16 -38
  135. package/dist/chunk-LXHOS74B.js.map +1 -0
  136. package/dist/{chunk-674JC24S.js → chunk-MZDAQSI4.js} +27 -28
  137. package/dist/chunk-MZDAQSI4.js.map +1 -0
  138. package/dist/{chunk-3PWILVOE.js → chunk-NHM6DZOF.js} +35 -50
  139. package/dist/chunk-NHM6DZOF.js.map +1 -0
  140. package/dist/chunk-NZHKNUGE.js +96 -0
  141. package/dist/chunk-NZHKNUGE.js.map +1 -0
  142. package/dist/{chunk-2PNLIQYM.js → chunk-ON76IMMI.js} +3 -3
  143. package/dist/chunk-ON76IMMI.js.map +1 -0
  144. package/dist/{chunk-POLVJ36Y.js → chunk-QNLTSHMB.js} +13 -38
  145. package/dist/chunk-QNLTSHMB.js.map +1 -0
  146. package/dist/{chunk-7UCNBMCV.js → chunk-QZ67UOPR.js} +13 -19
  147. package/dist/chunk-QZ67UOPR.js.map +1 -0
  148. package/dist/{chunk-NGYLRX6F.js → chunk-RAS6HUEI.js} +2 -2
  149. package/dist/chunk-RAS6HUEI.js.map +1 -0
  150. package/dist/{chunk-R3TLU26W.js → chunk-S7R4NTOI.js} +9 -7
  151. package/dist/chunk-S7R4NTOI.js.map +1 -0
  152. package/dist/{chunk-L5UYN5LX.js → chunk-SHUHAORE.js} +78 -44
  153. package/dist/chunk-SHUHAORE.js.map +1 -0
  154. package/dist/{chunk-SGRACNBP.js → chunk-STAYOHDI.js} +13 -5
  155. package/dist/chunk-STAYOHDI.js.map +1 -0
  156. package/dist/{chunk-ERRZ2CSG.js → chunk-SUNCSPDF.js} +45 -74
  157. package/dist/chunk-SUNCSPDF.js.map +1 -0
  158. package/dist/{chunk-YJOLLSHH.js → chunk-TS2PG6Z4.js} +42 -34
  159. package/dist/chunk-TS2PG6Z4.js.map +1 -0
  160. package/dist/{chunk-X3YNHX77.js → chunk-U3RHF7QF.js} +32 -33
  161. package/dist/chunk-U3RHF7QF.js.map +1 -0
  162. package/dist/{chunk-GVVP5TZM.js → chunk-UIVOI7HE.js} +231 -197
  163. package/dist/chunk-UIVOI7HE.js.map +1 -0
  164. package/dist/{chunk-D4SUSZDN.js → chunk-USHR3MWQ.js} +13 -13
  165. package/dist/chunk-USHR3MWQ.js.map +1 -0
  166. package/dist/{chunk-764UKE6X.js → chunk-VIK6UTVN.js} +7 -6
  167. package/dist/chunk-VIK6UTVN.js.map +1 -0
  168. package/dist/{chunk-HUXODBIO.js → chunk-VKY3JXAQ.js} +42 -101
  169. package/dist/chunk-VKY3JXAQ.js.map +1 -0
  170. package/dist/{chunk-FZSCLZF6.js → chunk-VV3VO5TS.js} +64 -101
  171. package/dist/chunk-VV3VO5TS.js.map +1 -0
  172. package/dist/{chunk-ZIYA7TGX.js → chunk-W5L7C7WS.js} +12 -22
  173. package/dist/chunk-W5L7C7WS.js.map +1 -0
  174. package/dist/{chunk-GOLARX5K.js → chunk-X3CNTOKQ.js} +13 -10
  175. package/dist/chunk-X3CNTOKQ.js.map +1 -0
  176. package/dist/{chunk-EHWXPH76.js → chunk-XKDN5PWJ.js} +8 -6
  177. package/dist/chunk-XKDN5PWJ.js.map +1 -0
  178. package/dist/{chunk-HCOTO5WX.js → chunk-XWCWTPEM.js} +7 -8
  179. package/dist/chunk-XWCWTPEM.js.map +1 -0
  180. package/dist/{chunk-BPRCBPVJ.js → chunk-YSV5GQS7.js} +55 -17
  181. package/dist/chunk-YSV5GQS7.js.map +1 -0
  182. package/dist/{chunk-6JGNJI5T.js → chunk-ZNNIXMJZ.js} +35 -21
  183. package/dist/chunk-ZNNIXMJZ.js.map +1 -0
  184. package/dist/{chunk-CN74CNAN.js → chunk-ZZZGD5EF.js} +8 -22
  185. package/dist/chunk-ZZZGD5EF.js.map +1 -0
  186. package/dist/clipboard/index.d.ts.map +1 -1
  187. package/dist/clipboard/index.js +4 -4
  188. package/dist/clipboard/types.d.ts +2 -35
  189. package/dist/clipboard/types.d.ts.map +1 -1
  190. package/dist/collapse/index.d.ts.map +1 -1
  191. package/dist/collapse/index.js +3 -3
  192. package/dist/collapse/types.d.ts +2 -35
  193. package/dist/collapse/types.d.ts.map +1 -1
  194. package/dist/command/index.d.ts +39 -66
  195. package/dist/command/index.d.ts.map +1 -1
  196. package/dist/command/index.js +3 -3
  197. package/dist/command/types.d.ts +2 -2
  198. package/dist/command/types.d.ts.map +1 -1
  199. package/dist/context-menu/index.d.ts +1 -45
  200. package/dist/context-menu/index.d.ts.map +1 -1
  201. package/dist/context-menu/index.js +4 -3
  202. package/dist/context-menu/types.d.ts +9 -63
  203. package/dist/context-menu/types.d.ts.map +1 -1
  204. package/dist/date-picker/index.d.ts.map +1 -1
  205. package/dist/date-picker/index.js +4 -4
  206. package/dist/date-picker/types.d.ts +2 -2
  207. package/dist/date-picker/types.d.ts.map +1 -1
  208. package/dist/descriptions/index.d.ts.map +1 -1
  209. package/dist/descriptions/index.js +2 -2
  210. package/dist/divider/index.d.ts.map +1 -1
  211. package/dist/divider/index.js +3 -2
  212. package/dist/divider/types.d.ts +0 -12
  213. package/dist/divider/types.d.ts.map +1 -1
  214. package/dist/drawer/index.d.ts +4 -1
  215. package/dist/drawer/index.d.ts.map +1 -1
  216. package/dist/drawer/index.js +2 -2
  217. package/dist/drawer/types.d.ts +2 -145
  218. package/dist/drawer/types.d.ts.map +1 -1
  219. package/dist/dropdown/index.d.ts.map +1 -1
  220. package/dist/dropdown/index.js +6 -5
  221. package/dist/dropdown/types.d.ts +2 -71
  222. package/dist/dropdown/types.d.ts.map +1 -1
  223. package/dist/empty/index.d.ts.map +1 -1
  224. package/dist/empty/index.js +2 -2
  225. package/dist/empty/types.d.ts +3 -40
  226. package/dist/empty/types.d.ts.map +1 -1
  227. package/dist/fetching-overlay/index.d.ts.map +1 -1
  228. package/dist/fetching-overlay/index.js +4 -4
  229. package/dist/float-input/index.d.ts.map +1 -1
  230. package/dist/float-input/index.js +4 -4
  231. package/dist/float-input/types.d.ts +5 -10
  232. package/dist/float-input/types.d.ts.map +1 -1
  233. package/dist/grid/index.d.ts +1 -1
  234. package/dist/grid/index.d.ts.map +1 -1
  235. package/dist/grid/index.js +2 -2
  236. package/dist/grid/types.d.ts +1 -9
  237. package/dist/grid/types.d.ts.map +1 -1
  238. package/dist/hooks/index.d.ts +1 -0
  239. package/dist/hooks/index.d.ts.map +1 -1
  240. package/dist/hooks/useMenuNavigation.d.ts +18 -0
  241. package/dist/hooks/useMenuNavigation.d.ts.map +1 -0
  242. package/dist/image/index.d.ts.map +1 -1
  243. package/dist/image/index.js +2 -2
  244. package/dist/image/types.d.ts +2 -34
  245. package/dist/image/types.d.ts.map +1 -1
  246. package/dist/index.d.ts +2 -1
  247. package/dist/index.d.ts.map +1 -1
  248. package/dist/index.js +68 -67
  249. package/dist/index.js.map +1 -1
  250. package/dist/input/index.d.ts.map +1 -1
  251. package/dist/input/index.js +4 -4
  252. package/dist/input/types.d.ts +9 -4
  253. package/dist/input/types.d.ts.map +1 -1
  254. package/dist/input-group/index.d.ts.map +1 -1
  255. package/dist/input-group/index.js +2 -2
  256. package/dist/input-group/types.d.ts +7 -19
  257. package/dist/input-group/types.d.ts.map +1 -1
  258. package/dist/input-otp/index.d.ts.map +1 -1
  259. package/dist/input-otp/index.js +2 -2
  260. package/dist/input-otp/types.d.ts +3 -81
  261. package/dist/input-otp/types.d.ts.map +1 -1
  262. package/dist/input-password/index.d.ts.map +1 -1
  263. package/dist/input-password/index.js +5 -5
  264. package/dist/input-password/types.d.ts +0 -6
  265. package/dist/input-password/types.d.ts.map +1 -1
  266. package/dist/kbd/index.d.ts.map +1 -1
  267. package/dist/kbd/index.js +3 -3
  268. package/dist/kbd/types.d.ts +2 -17
  269. package/dist/kbd/types.d.ts.map +1 -1
  270. package/dist/link/index.d.ts +1 -1
  271. package/dist/link/index.d.ts.map +1 -1
  272. package/dist/link/index.js +2 -2
  273. package/dist/menubar/index.d.ts.map +1 -1
  274. package/dist/menubar/index.js +5 -4
  275. package/dist/modal/index.d.ts.map +1 -1
  276. package/dist/modal/index.js +2 -2
  277. package/dist/modal/types.d.ts +2 -44
  278. package/dist/modal/types.d.ts.map +1 -1
  279. package/dist/multi-select/index.d.ts.map +1 -1
  280. package/dist/multi-select/index.js +7 -6
  281. package/dist/multi-select/types.d.ts +2 -34
  282. package/dist/multi-select/types.d.ts.map +1 -1
  283. package/dist/navigation-menu/index.js +2 -2
  284. package/dist/notification/index.d.ts.map +1 -1
  285. package/dist/notification/index.js +3 -3
  286. package/dist/notification/types.d.ts +2 -62
  287. package/dist/notification/types.d.ts.map +1 -1
  288. package/dist/number-input/index.d.ts.map +1 -1
  289. package/dist/number-input/index.js +5 -5
  290. package/dist/number-input/types.d.ts +5 -2
  291. package/dist/number-input/types.d.ts.map +1 -1
  292. package/dist/pagination/index.d.ts.map +1 -1
  293. package/dist/pagination/index.js +4 -3
  294. package/dist/pagination/types.d.ts +3 -53
  295. package/dist/pagination/types.d.ts.map +1 -1
  296. package/dist/popover/index.d.ts +1 -1
  297. package/dist/popover/index.d.ts.map +1 -1
  298. package/dist/popover/index.js +3 -3
  299. package/dist/popover/types.d.ts +3 -17
  300. package/dist/popover/types.d.ts.map +1 -1
  301. package/dist/progress/index.d.ts.map +1 -1
  302. package/dist/progress/index.js +3 -2
  303. package/dist/progress/styles.d.ts +4 -5
  304. package/dist/progress/styles.d.ts.map +1 -1
  305. package/dist/progress/types.d.ts +2 -44
  306. package/dist/progress/types.d.ts.map +1 -1
  307. package/dist/radio/index.d.ts.map +1 -1
  308. package/dist/radio/index.js +3 -3
  309. package/dist/radio/types.d.ts +2 -2
  310. package/dist/radio/types.d.ts.map +1 -1
  311. package/dist/radio-group/index.d.ts.map +1 -1
  312. package/dist/radio-group/index.js +2 -2
  313. package/dist/radio-group/types.d.ts +0 -24
  314. package/dist/radio-group/types.d.ts.map +1 -1
  315. package/dist/rating/index.d.ts.map +1 -1
  316. package/dist/rating/index.js +2 -2
  317. package/dist/rating/types.d.ts +2 -2
  318. package/dist/rating/types.d.ts.map +1 -1
  319. package/dist/scroll-area/index.d.ts.map +1 -1
  320. package/dist/scroll-area/index.js +2 -2
  321. package/dist/select/index.d.ts.map +1 -1
  322. package/dist/select/index.js +7 -6
  323. package/dist/select/types.d.ts +8 -3
  324. package/dist/select/types.d.ts.map +1 -1
  325. package/dist/shared/useSelectBase.d.ts +4 -2
  326. package/dist/shared/useSelectBase.d.ts.map +1 -1
  327. package/dist/skeleton/index.d.ts.map +1 -1
  328. package/dist/skeleton/index.js +3 -3
  329. package/dist/skeleton/types.d.ts +1 -1
  330. package/dist/skeleton/types.d.ts.map +1 -1
  331. package/dist/slider/index.d.ts.map +1 -1
  332. package/dist/slider/index.js +3 -2
  333. package/dist/slider/types.d.ts +2 -36
  334. package/dist/slider/types.d.ts.map +1 -1
  335. package/dist/spinner/index.d.ts +2 -1
  336. package/dist/spinner/index.d.ts.map +1 -1
  337. package/dist/spinner/index.js +3 -3
  338. package/dist/spinner/types.d.ts +1 -1
  339. package/dist/spinner/types.d.ts.map +1 -1
  340. package/dist/stepper/index.d.ts.map +1 -1
  341. package/dist/stepper/index.js +3 -2
  342. package/dist/stepper/types.d.ts +3 -2
  343. package/dist/stepper/types.d.ts.map +1 -1
  344. package/dist/switch/index.d.ts.map +1 -1
  345. package/dist/switch/index.js +3 -3
  346. package/dist/switch/types.d.ts +2 -31
  347. package/dist/switch/types.d.ts.map +1 -1
  348. package/dist/table/index.d.ts.map +1 -1
  349. package/dist/table/index.js +11 -11
  350. package/dist/table/types.d.ts +2 -2
  351. package/dist/table/types.d.ts.map +1 -1
  352. package/dist/tabs/index.d.ts.map +1 -1
  353. package/dist/tabs/index.js +3 -3
  354. package/dist/tabs/types.d.ts +3 -53
  355. package/dist/tabs/types.d.ts.map +1 -1
  356. package/dist/tag/index.d.ts +1 -1
  357. package/dist/tag/index.d.ts.map +1 -1
  358. package/dist/tag/index.js +3 -3
  359. package/dist/tag/types.d.ts +1 -1
  360. package/dist/tag/types.d.ts.map +1 -1
  361. package/dist/textarea/index.d.ts.map +1 -1
  362. package/dist/textarea/index.js +2 -2
  363. package/dist/textarea/types.d.ts +3 -54
  364. package/dist/textarea/types.d.ts.map +1 -1
  365. package/dist/theme/types.d.ts +0 -12
  366. package/dist/theme/types.d.ts.map +1 -1
  367. package/dist/timeline/index.d.ts.map +1 -1
  368. package/dist/timeline/index.js +2 -2
  369. package/dist/toast/index.d.ts.map +1 -1
  370. package/dist/toast/index.js +3 -3
  371. package/dist/toast/types.d.ts +0 -6
  372. package/dist/toast/types.d.ts.map +1 -1
  373. package/dist/toggle/index.d.ts.map +1 -1
  374. package/dist/toggle/index.js +4 -3
  375. package/dist/toggle/types.d.ts +3 -26
  376. package/dist/toggle/types.d.ts.map +1 -1
  377. package/dist/toggle-group/index.d.ts.map +1 -1
  378. package/dist/toggle-group/index.js +4 -3
  379. package/dist/toggle-group/types.d.ts +3 -44
  380. package/dist/toggle-group/types.d.ts.map +1 -1
  381. package/dist/tooltip/index.d.ts.map +1 -1
  382. package/dist/tooltip/index.js +3 -3
  383. package/dist/tooltip/types.d.ts +2 -44
  384. package/dist/tooltip/types.d.ts.map +1 -1
  385. package/dist/transfer/index.d.ts.map +1 -1
  386. package/dist/transfer/index.js +4 -4
  387. package/dist/transfer/types.d.ts +0 -20
  388. package/dist/transfer/types.d.ts.map +1 -1
  389. package/dist/transfer/utils.d.ts.map +1 -1
  390. package/dist/tree/index.d.ts.map +1 -1
  391. package/dist/tree/index.js +2 -2
  392. package/dist/tree/types.d.ts +2 -73
  393. package/dist/tree/types.d.ts.map +1 -1
  394. package/dist/tree-select/index.d.ts.map +1 -1
  395. package/dist/tree-select/index.js +5 -5
  396. package/dist/tree-select/types.d.ts +3 -91
  397. package/dist/tree-select/types.d.ts.map +1 -1
  398. package/dist/types.d.ts +1 -35
  399. package/dist/types.d.ts.map +1 -1
  400. package/dist/upload/index.d.ts.map +1 -1
  401. package/dist/upload/index.js +3 -3
  402. package/dist/upload/types.d.ts +5 -32
  403. package/dist/upload/types.d.ts.map +1 -1
  404. package/dist/upload/utils.d.ts +1 -0
  405. package/dist/upload/utils.d.ts.map +1 -1
  406. package/dist/utils.d.ts +0 -39
  407. package/dist/utils.d.ts.map +1 -1
  408. package/dist/variants.d.ts +3 -314
  409. package/dist/variants.d.ts.map +1 -1
  410. package/package.json +1 -1
  411. package/styles/global.css +300 -977
  412. package/dist/chunk-2PNLIQYM.js.map +0 -1
  413. package/dist/chunk-2TLOWZE4.js.map +0 -1
  414. package/dist/chunk-2WZVD7P3.js.map +0 -1
  415. package/dist/chunk-3BIV3QE2.js.map +0 -1
  416. package/dist/chunk-3BZE6BBJ.js.map +0 -1
  417. package/dist/chunk-3PWILVOE.js.map +0 -1
  418. package/dist/chunk-4FFVNUTK.js.map +0 -1
  419. package/dist/chunk-64NHVOZS.js.map +0 -1
  420. package/dist/chunk-674JC24S.js.map +0 -1
  421. package/dist/chunk-6BAP6QUT.js +0 -72
  422. package/dist/chunk-6BAP6QUT.js.map +0 -1
  423. package/dist/chunk-6G3BMY4N.js.map +0 -1
  424. package/dist/chunk-6HGUDHHE.js.map +0 -1
  425. package/dist/chunk-6JGNJI5T.js.map +0 -1
  426. package/dist/chunk-6LYRMQOI.js.map +0 -1
  427. package/dist/chunk-6YOOKE6C.js +0 -138
  428. package/dist/chunk-6YOOKE6C.js.map +0 -1
  429. package/dist/chunk-764UKE6X.js.map +0 -1
  430. package/dist/chunk-7UCNBMCV.js.map +0 -1
  431. package/dist/chunk-BPRCBPVJ.js.map +0 -1
  432. package/dist/chunk-BVO2BNFG.js.map +0 -1
  433. package/dist/chunk-C5IGZLIT.js.map +0 -1
  434. package/dist/chunk-CN74CNAN.js.map +0 -1
  435. package/dist/chunk-D4SUSZDN.js.map +0 -1
  436. package/dist/chunk-DUIL5BYS.js.map +0 -1
  437. package/dist/chunk-EHWXPH76.js.map +0 -1
  438. package/dist/chunk-ERRZ2CSG.js.map +0 -1
  439. package/dist/chunk-EZGK67T6.js +0 -383
  440. package/dist/chunk-EZGK67T6.js.map +0 -1
  441. package/dist/chunk-FZSCLZF6.js.map +0 -1
  442. package/dist/chunk-G6NVGBYZ.js.map +0 -1
  443. package/dist/chunk-GJPZOMFE.js.map +0 -1
  444. package/dist/chunk-GOLARX5K.js.map +0 -1
  445. package/dist/chunk-GVVP5TZM.js.map +0 -1
  446. package/dist/chunk-H6G4BUPA.js.map +0 -1
  447. package/dist/chunk-HCOTO5WX.js.map +0 -1
  448. package/dist/chunk-HECAAILV.js.map +0 -1
  449. package/dist/chunk-HUXODBIO.js.map +0 -1
  450. package/dist/chunk-I32ZQUYY.js.map +0 -1
  451. package/dist/chunk-JWTWPZ32.js.map +0 -1
  452. package/dist/chunk-KH577UDI.js.map +0 -1
  453. package/dist/chunk-KJTMZJ7V.js.map +0 -1
  454. package/dist/chunk-L5UYN5LX.js.map +0 -1
  455. package/dist/chunk-LOYLJRCF.js.map +0 -1
  456. package/dist/chunk-LX4FDH4J.js.map +0 -1
  457. package/dist/chunk-N2WHJ3FI.js.map +0 -1
  458. package/dist/chunk-NGYLRX6F.js.map +0 -1
  459. package/dist/chunk-O3V3BTIJ.js.map +0 -1
  460. package/dist/chunk-OLTQAMV2.js.map +0 -1
  461. package/dist/chunk-ON2CMF6J.js.map +0 -1
  462. package/dist/chunk-ONGJXAYQ.js.map +0 -1
  463. package/dist/chunk-OQFYIKWR.js.map +0 -1
  464. package/dist/chunk-POLVJ36Y.js.map +0 -1
  465. package/dist/chunk-POXI7JJ4.js +0 -351
  466. package/dist/chunk-POXI7JJ4.js.map +0 -1
  467. package/dist/chunk-R3TLU26W.js.map +0 -1
  468. package/dist/chunk-RFHTC6AH.js.map +0 -1
  469. package/dist/chunk-ROA7BYGB.js.map +0 -1
  470. package/dist/chunk-SGRACNBP.js.map +0 -1
  471. package/dist/chunk-TLNHWOQQ.js.map +0 -1
  472. package/dist/chunk-UTWQ2FZK.js.map +0 -1
  473. package/dist/chunk-VOODO2ZE.js.map +0 -1
  474. package/dist/chunk-WRSG7WU5.js.map +0 -1
  475. package/dist/chunk-X3YNHX77.js.map +0 -1
  476. package/dist/chunk-Y4XAXZHB.js.map +0 -1
  477. package/dist/chunk-YJOLLSHH.js.map +0 -1
  478. package/dist/chunk-YS5AIY4A.js.map +0 -1
  479. package/dist/chunk-YXLIGJTN.js.map +0 -1
  480. package/dist/chunk-ZIYA7TGX.js.map +0 -1
  481. package/dist/chunk-ZJNGZCRB.js.map +0 -1
@@ -1,8 +1,9 @@
1
- import { Popover, PopoverTrigger, PopoverContent } from './chunk-C5IGZLIT.js';
2
- import { useRipple, RippleContainer } from './chunk-OFUPJH35.js';
3
- import { cn } from './chunk-NGYLRX6F.js';
1
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-LM6CJZX5.js';
2
+ import { useMenuNavigation } from './chunk-NZHKNUGE.js';
3
+ import { useRipple, RippleContainer } from './chunk-4TEZWGX7.js';
4
+ import { cn } from './chunk-RAS6HUEI.js';
4
5
  import { cva } from 'class-variance-authority';
5
- import React, { useState, useRef, useId, useMemo, useEffect, useCallback } from 'react';
6
+ import React, { useState, useRef, useId, useMemo, useCallback, useEffect } from 'react';
6
7
  import { jsx, jsxs } from 'react/jsx-runtime';
7
8
 
8
9
  var dropdownItemVariants = cva(
@@ -27,14 +28,14 @@ var dropdownItemVariants = cva(
27
28
  }
28
29
  );
29
30
  var dropdownItemHoverClasses = {
30
- default: "hover:bg-surface focus:bg-surface",
31
- primary: "hover:bg-primary/10 focus:bg-primary/10",
32
- secondary: "hover:bg-secondary/10 focus:bg-secondary/10",
33
- accent: "hover:bg-accent/10 focus:bg-accent/10",
34
- success: "hover:bg-success/10 focus:bg-success/10",
35
- error: "hover:bg-error/10 focus:bg-error/10",
36
- warning: "hover:bg-warning/10 focus:bg-warning/10",
37
- info: "hover:bg-info/10 focus:bg-info/10"
31
+ default: "hover:bg-surface focus-visible:bg-surface",
32
+ primary: "hover:bg-primary/10 focus-visible:bg-primary/10",
33
+ secondary: "hover:bg-secondary/10 focus-visible:bg-secondary/10",
34
+ accent: "hover:bg-accent/10 focus-visible:bg-accent/10",
35
+ success: "hover:bg-success/10 focus-visible:bg-success/10",
36
+ error: "hover:bg-error/10 focus-visible:bg-error/10",
37
+ warning: "hover:bg-warning/10 focus-visible:bg-warning/10",
38
+ info: "hover:bg-info/10 focus-visible:bg-info/10"
38
39
  };
39
40
  var dropdownItemHighlightClasses = {
40
41
  default: "bg-surface",
@@ -94,7 +95,6 @@ var Dropdown = React.memo(
94
95
  ref
95
96
  }) => {
96
97
  const [isOpen, setIsOpen] = useState(false);
97
- const [highlightedIndex, setHighlightedIndex] = useState(-1);
98
98
  const menuRef = useRef(null);
99
99
  const itemRefs = useRef([]);
100
100
  const uniqueId = useId();
@@ -104,18 +104,6 @@ var Dropdown = React.memo(
104
104
  () => items?.map((item, i) => !item.disabled ? i : -1).filter((i) => i !== -1) || [],
105
105
  [items]
106
106
  );
107
- useEffect(() => {
108
- if (!isOpen) {
109
- setHighlightedIndex(-1);
110
- }
111
- }, [isOpen]);
112
- useEffect(() => {
113
- if (highlightedIndex >= 0 && itemRefs.current[highlightedIndex]) {
114
- itemRefs.current[highlightedIndex]?.scrollIntoView({
115
- block: "nearest"
116
- });
117
- }
118
- }, [highlightedIndex]);
119
107
  const handleItemClick = useCallback(
120
108
  (item) => {
121
109
  if (!item.disabled) {
@@ -141,71 +129,37 @@ var Dropdown = React.memo(
141
129
  setIsOpen((prev) => !prev);
142
130
  }
143
131
  }, [disabled]);
144
- const handleKeyDown = useCallback(
145
- (event) => {
146
- if (disabled) return;
147
- if (!items?.length) return;
148
- const currentEnabledPosition = enabledIndices.indexOf(highlightedIndex);
149
- switch (event.key) {
150
- case "ArrowDown":
151
- event.preventDefault();
152
- if (!isOpen) {
153
- setIsOpen(true);
154
- setHighlightedIndex(enabledIndices[0] ?? -1);
155
- } else {
156
- const nextIndex = currentEnabledPosition < enabledIndices.length - 1 ? enabledIndices[currentEnabledPosition + 1] : enabledIndices[0];
157
- setHighlightedIndex(nextIndex ?? -1);
158
- }
159
- break;
160
- case "ArrowUp":
161
- event.preventDefault();
162
- if (!isOpen) {
163
- setIsOpen(true);
164
- setHighlightedIndex(
165
- enabledIndices[enabledIndices.length - 1] ?? -1
166
- );
167
- } else {
168
- const prevIndex = currentEnabledPosition > 0 ? enabledIndices[currentEnabledPosition - 1] : enabledIndices[enabledIndices.length - 1];
169
- setHighlightedIndex(prevIndex ?? -1);
170
- }
171
- break;
172
- case "Home":
173
- event.preventDefault();
174
- if (isOpen) {
175
- setHighlightedIndex(enabledIndices[0] ?? -1);
176
- }
177
- break;
178
- case "End":
179
- event.preventDefault();
180
- if (isOpen) {
181
- setHighlightedIndex(
182
- enabledIndices[enabledIndices.length - 1] ?? -1
183
- );
184
- }
185
- break;
186
- case "Enter":
187
- case " ":
188
- event.preventDefault();
189
- if (isOpen && highlightedIndex >= 0 && items[highlightedIndex]) {
190
- handleItemClick(items[highlightedIndex]);
191
- } else if (!isOpen) {
192
- setIsOpen(true);
193
- }
194
- break;
195
- case "Escape":
196
- event.preventDefault();
197
- setIsOpen(false);
198
- break;
199
- case "Tab":
200
- setIsOpen(false);
201
- break;
202
- }
132
+ const onMenuSelect = useCallback(
133
+ (index) => {
134
+ if (items?.[index]) handleItemClick(items[index]);
203
135
  },
204
- [items, isOpen, highlightedIndex, enabledIndices, handleItemClick]
136
+ [items, handleItemClick]
137
+ );
138
+ const {
139
+ highlightedIndex,
140
+ setHighlightedIndex,
141
+ handleKeyDown
142
+ } = useMenuNavigation({
143
+ enabledIndices,
144
+ isOpen,
145
+ onClose: handleClose,
146
+ onSelect: onMenuSelect,
147
+ onOpen: handleOpen
148
+ });
149
+ useEffect(() => {
150
+ if (highlightedIndex >= 0 && itemRefs.current[highlightedIndex]) {
151
+ itemRefs.current[highlightedIndex]?.scrollIntoView({
152
+ block: "nearest"
153
+ });
154
+ }
155
+ }, [highlightedIndex]);
156
+ const wrappedKeyDown = useCallback(
157
+ (e) => {
158
+ if (disabled || !items?.length) return;
159
+ handleKeyDown(e);
160
+ },
161
+ [disabled, items, handleKeyDown]
205
162
  );
206
- const handleItemMouseEnter = useCallback((index) => {
207
- setHighlightedIndex(index);
208
- }, []);
209
163
  return /* @__PURE__ */ jsx(
210
164
  "div",
211
165
  {
@@ -232,7 +186,7 @@ var Dropdown = React.memo(
232
186
  "aria-controls": isOpen ? menuId : void 0,
233
187
  "aria-disabled": disabled,
234
188
  onClick: hover ? void 0 : handleToggle,
235
- onKeyDown: handleKeyDown,
189
+ onKeyDown: wrappedKeyDown,
236
190
  className: cn(
237
191
  "dropdown_trigger flex outline-none",
238
192
  !hover && "cursor-pointer",
@@ -262,7 +216,7 @@ var Dropdown = React.memo(
262
216
  "aria-labelledby": triggerId,
263
217
  className: cn("dropdown_menu overflow-auto", classNames?.menu),
264
218
  style: { maxHeight },
265
- onKeyDown: handleKeyDown,
219
+ onKeyDown: wrappedKeyDown,
266
220
  children: render ? render({ close: handleClose }) : items?.map((item, idx) => /* @__PURE__ */ jsxs(
267
221
  DropdownItemDiv,
268
222
  {
@@ -285,7 +239,7 @@ var Dropdown = React.memo(
285
239
  classNames?.item
286
240
  ),
287
241
  onClick: () => handleItemClick(item),
288
- onMouseEnter: () => handleItemMouseEnter(idx),
242
+ onMouseEnter: () => !item.disabled && setHighlightedIndex(idx),
289
243
  onKeyDown: (e) => {
290
244
  if (e.key === "Enter" || e.key === " ") {
291
245
  e.preventDefault();
@@ -333,5 +287,5 @@ Dropdown.displayName = "Dropdown";
333
287
  var dropdown_default = Dropdown;
334
288
 
335
289
  export { dropdown_default };
336
- //# sourceMappingURL=chunk-UTWQ2FZK.js.map
337
- //# sourceMappingURL=chunk-UTWQ2FZK.js.map
290
+ //# sourceMappingURL=chunk-AOXTD7QZ.js.map
291
+ //# sourceMappingURL=chunk-AOXTD7QZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/dropdown/index.tsx"],"names":[],"mappings":"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","file":"chunk-AOXTD7QZ.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport React, {\n useCallback,\n useRef,\n useId,\n useState,\n useEffect,\n useMemo,\n} from \"react\";\n\nimport { useRipple, RippleContainer } from \"../hooks/useRipple\";\nimport { useMenuNavigation } from \"../hooks/useMenuNavigation\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover\";\nimport type { ComponentColor } from \"../types\";\nimport { cn } from \"../utils\";\nimport type { DropdownProps } from \"./types\";\n\nconst dropdownItemVariants = cva(\n \"cursor-pointer select-none text-text-primary transition-colors flex items-center gap-2 rounded-sm outline-none\",\n {\n variants: {\n size: {\n xs: \"px-2 py-1 text-xs\",\n sm: \"px-3 py-1.5 text-sm\",\n md: \"px-4 py-2 text-base\",\n lg: \"px-5 py-2.5 text-lg\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n disabled: false,\n },\n },\n);\n\nconst dropdownItemHoverClasses: Record<ComponentColor, string> = {\n default: \"hover:bg-surface focus-visible:bg-surface\",\n primary: \"hover:bg-primary/10 focus-visible:bg-primary/10\",\n secondary: \"hover:bg-secondary/10 focus-visible:bg-secondary/10\",\n accent: \"hover:bg-accent/10 focus-visible:bg-accent/10\",\n success: \"hover:bg-success/10 focus-visible:bg-success/10\",\n error: \"hover:bg-error/10 focus-visible:bg-error/10\",\n warning: \"hover:bg-warning/10 focus-visible:bg-warning/10\",\n info: \"hover:bg-info/10 focus-visible:bg-info/10\",\n};\n\nconst dropdownItemHighlightClasses: Record<ComponentColor, string> = {\n default: \"bg-surface\",\n primary: \"bg-primary/10\",\n secondary: \"bg-secondary/10\",\n accent: \"bg-accent/10\",\n success: \"bg-success/10\",\n error: \"bg-error/10\",\n warning: \"bg-warning/10\",\n info: \"bg-info/10\",\n};\n\nconst DropdownItemDiv: React.FC<{\n children: React.ReactNode;\n disabled?: boolean;\n className?: string;\n onKeyDown?: (e: React.KeyboardEvent<HTMLDivElement>) => void;\n [key: string]: any;\n}> = ({\n children,\n disabled,\n className,\n onKeyDown: externalOnKeyDown,\n ...props\n}) => {\n const {\n ripples,\n onPointerDown,\n onKeyDown: rippleOnKeyDown,\n onAnimationEnd,\n } = useRipple(!disabled);\n return (\n <div\n className={cn(className, \"relative overflow-hidden\")}\n onPointerDown={onPointerDown}\n onKeyDown={(e) => {\n rippleOnKeyDown(e);\n externalOnKeyDown?.(e);\n }}\n {...props}\n >\n {children}\n <RippleContainer ripples={ripples} onAnimationEnd={onAnimationEnd} />\n </div>\n );\n};\n\nconst Dropdown = React.memo<DropdownProps>(\n ({\n children,\n items,\n render,\n color = \"default\",\n size = \"md\",\n position = \"left\",\n maxHeight = 300,\n disabled = false,\n fullWidth = false,\n hover = false,\n className,\n classNames,\n onItemClick,\n ref,\n }) => {\n const [isOpen, setIsOpen] = useState(false);\n const menuRef = useRef<HTMLDivElement>(null);\n const itemRefs = useRef<(HTMLDivElement | null)[]>([]);\n\n const uniqueId = useId();\n const menuId = `dropdown-menu-${uniqueId}`;\n const triggerId = `dropdown-trigger-${uniqueId}`;\n\n const enabledIndices = useMemo(\n () =>\n items\n ?.map((item, i) => (!item.disabled ? i : -1))\n .filter((i) => i !== -1) || [],\n [items],\n );\n\n const handleItemClick = useCallback(\n (item: NonNullable<typeof items>[0]) => {\n if (!item.disabled) {\n item.onClick?.();\n if (item.value !== undefined) {\n onItemClick?.(item.value);\n }\n setIsOpen(false);\n }\n },\n [onItemClick],\n );\n\n const handleClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const handleOpen = useCallback(() => {\n if (!disabled) {\n setIsOpen(true);\n }\n }, [disabled]);\n\n const handleToggle = useCallback(() => {\n if (!disabled) {\n setIsOpen((prev) => !prev);\n }\n }, [disabled]);\n\n const onMenuSelect = useCallback(\n (index: number) => {\n if (items?.[index]) handleItemClick(items[index]);\n },\n [items, handleItemClick],\n );\n\n const {\n highlightedIndex,\n setHighlightedIndex,\n handleKeyDown,\n } = useMenuNavigation({\n enabledIndices,\n isOpen,\n onClose: handleClose,\n onSelect: onMenuSelect,\n onOpen: handleOpen,\n });\n\n // Scroll highlighted item into view\n useEffect(() => {\n if (highlightedIndex >= 0 && itemRefs.current[highlightedIndex]) {\n itemRefs.current[highlightedIndex]?.scrollIntoView({\n block: \"nearest\",\n });\n }\n }, [highlightedIndex]);\n\n const wrappedKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled || !items?.length) return;\n handleKeyDown(e);\n },\n [disabled, items, handleKeyDown],\n );\n\n return (\n <div\n ref={ref}\n data-slot=\"dropdown\"\n className={cn(\n \"dropdown_root relative\",\n fullWidth ? \"w-full\" : \"inline-block\",\n className,\n classNames?.root,\n )}\n onMouseEnter={hover ? handleOpen : undefined}\n onMouseLeave={hover ? handleClose : undefined}\n >\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <PopoverTrigger asChild>\n <div\n id={triggerId}\n data-slot=\"dropdown-trigger\"\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"menu\"\n aria-expanded={isOpen}\n aria-controls={isOpen ? menuId : undefined}\n aria-disabled={disabled}\n onClick={hover ? undefined : handleToggle}\n onKeyDown={wrappedKeyDown}\n className={cn(\n \"dropdown_trigger flex outline-none\",\n !hover && \"cursor-pointer\",\n fullWidth && \"w-full\",\n disabled && \"opacity-50 cursor-not-allowed\",\n classNames?.trigger,\n )}\n >\n {children}\n </div>\n </PopoverTrigger>\n\n <PopoverContent\n className=\"p-0 min-w-[140px]\"\n align={position === \"left\" ? \"start\" : \"end\"}\n sideOffset={4}\n color={color}\n style={{ maxHeight }}\n onOpenAutoFocus={(e: Event) => e.preventDefault()}\n >\n <div\n ref={menuRef}\n id={menuId}\n data-slot=\"dropdown-menu\"\n role=\"menu\"\n aria-labelledby={triggerId}\n className={cn(\"dropdown_menu overflow-auto\", classNames?.menu)}\n style={{ maxHeight }}\n onKeyDown={wrappedKeyDown}\n >\n {render\n ? render({ close: handleClose })\n : items?.map((item, idx) => (\n <DropdownItemDiv\n key={`${item.value}-${idx}`}\n ref={(el: HTMLDivElement | null) => {\n itemRefs.current[idx] = el;\n }}\n data-slot=\"dropdown-item\"\n role=\"menuitem\"\n tabIndex={item.disabled ? -1 : 0}\n aria-disabled={item.disabled}\n disabled={!!item.disabled}\n className={cn(\n \"dropdown_item\",\n dropdownItemVariants({\n size,\n disabled: !!item.disabled,\n }),\n !item.disabled && dropdownItemHoverClasses[color],\n highlightedIndex === idx &&\n !item.disabled &&\n dropdownItemHighlightClasses[color],\n classNames?.item,\n )}\n onClick={() => handleItemClick(item)}\n onMouseEnter={() => !item.disabled && setHighlightedIndex(idx)}\n onKeyDown={(e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleItemClick(item);\n }\n }}\n >\n {item.icon && (\n <span\n data-slot=\"dropdown-item-icon\"\n className={cn(\n \"dropdown_itemIcon shrink-0\",\n classNames?.itemIcon,\n )}\n aria-hidden=\"true\"\n >\n {item.icon}\n </span>\n )}\n <span\n data-slot=\"dropdown-item-label\"\n className={cn(\n \"dropdown_itemLabel flex-1\",\n classNames?.itemLabel,\n )}\n >\n {item.label}\n </span>\n </DropdownItemDiv>\n ))}\n </div>\n </PopoverContent>\n </Popover>\n </div>\n );\n },\n);\n\nDropdown.displayName = \"Dropdown\";\n\nexport type * from \"./types\";\nexport default Dropdown;\n"]}
@@ -1,4 +1,5 @@
1
- import { cn } from './chunk-NGYLRX6F.js';
1
+ import { colorVars } from './chunk-GLJDHW73.js';
2
+ import { cn } from './chunk-RAS6HUEI.js';
2
3
  import { cva } from 'class-variance-authority';
3
4
  import React, { useState, useRef, useCallback } from 'react';
4
5
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -47,131 +48,19 @@ var thumbVariants = cva(
47
48
  }
48
49
  }
49
50
  );
50
- var trackColorStyles = {
51
- default: {
52
- default: "bg-surface",
53
- solid: "bg-border",
54
- soft: "bg-surface/50"
55
- },
56
- primary: {
57
- default: "bg-primary/10",
58
- solid: "bg-primary/20",
59
- soft: "bg-primary/5"
60
- },
61
- secondary: {
62
- default: "bg-secondary/10",
63
- solid: "bg-secondary/20",
64
- soft: "bg-secondary/5"
65
- },
66
- accent: {
67
- default: "bg-accent/10",
68
- solid: "bg-accent/20",
69
- soft: "bg-accent/5"
70
- },
71
- success: {
72
- default: "bg-success/10",
73
- solid: "bg-success/20",
74
- soft: "bg-success/5"
75
- },
76
- error: {
77
- default: "bg-error/10",
78
- solid: "bg-error/20",
79
- soft: "bg-error/5"
80
- },
81
- warning: {
82
- default: "bg-warning/10",
83
- solid: "bg-warning/20",
84
- soft: "bg-warning/5"
85
- },
86
- info: {
87
- default: "bg-info/10",
88
- solid: "bg-info/20",
89
- soft: "bg-info/5"
90
- }
51
+ var getTrackColorClasses = (variant) => {
52
+ if (variant === "soft") return "bg-slot-10";
53
+ if (variant === "solid") return "bg-slot-20";
54
+ return "bg-slot-10";
91
55
  };
92
- var fillColorStyles = {
93
- default: {
94
- default: "bg-surface border-border",
95
- solid: "bg-border",
96
- soft: "bg-surface/80"
97
- },
98
- primary: {
99
- default: "bg-primary/20 border-primary",
100
- solid: "bg-primary",
101
- soft: "bg-primary/60"
102
- },
103
- secondary: {
104
- default: "bg-secondary/20 border-secondary",
105
- solid: "bg-secondary",
106
- soft: "bg-secondary/60"
107
- },
108
- accent: {
109
- default: "bg-accent/20 border-accent",
110
- solid: "bg-accent",
111
- soft: "bg-accent/60"
112
- },
113
- success: {
114
- default: "bg-success/20 border-success",
115
- solid: "bg-success",
116
- soft: "bg-success/60"
117
- },
118
- error: {
119
- default: "bg-error/20 border-error",
120
- solid: "bg-error",
121
- soft: "bg-error/60"
122
- },
123
- warning: {
124
- default: "bg-warning/20 border-warning",
125
- solid: "bg-warning",
126
- soft: "bg-warning/60"
127
- },
128
- info: {
129
- default: "bg-info/20 border-info",
130
- solid: "bg-info",
131
- soft: "bg-info/60"
132
- }
56
+ var getFillColorClasses = (variant) => {
57
+ if (variant === "default") return "bg-slot-20 border-slot";
58
+ if (variant === "solid") return "bg-slot";
59
+ return "bg-slot-50";
133
60
  };
134
- var thumbColorStyles = {
135
- default: {
136
- default: "border-border",
137
- solid: "border-border",
138
- soft: "border-surface"
139
- },
140
- primary: {
141
- default: "border-primary",
142
- solid: "border-primary",
143
- soft: "border-primary/60"
144
- },
145
- secondary: {
146
- default: "border-secondary",
147
- solid: "border-secondary",
148
- soft: "border-secondary/60"
149
- },
150
- accent: {
151
- default: "border-accent",
152
- solid: "border-accent",
153
- soft: "border-accent/60"
154
- },
155
- success: {
156
- default: "border-success",
157
- solid: "border-success",
158
- soft: "border-success/60"
159
- },
160
- error: {
161
- default: "border-error",
162
- solid: "border-error",
163
- soft: "border-error/60"
164
- },
165
- warning: {
166
- default: "border-warning",
167
- solid: "border-warning",
168
- soft: "border-warning/60"
169
- },
170
- info: {
171
- default: "border-info",
172
- solid: "border-info",
173
- soft: "border-info/60"
174
- }
61
+ var getThumbColorClasses = (variant) => {
62
+ if (variant === "soft") return "border-slot-50";
63
+ return "border-slot";
175
64
  };
176
65
  var Slider = React.memo(
177
66
  ({
@@ -201,19 +90,22 @@ var Slider = React.memo(
201
90
  const activeThumb = useRef(0);
202
91
  const value = controlledValue ?? internalValue;
203
92
  const values = Array.isArray(value) ? value : [value];
93
+ const valueRef = useRef(value);
94
+ valueRef.current = value;
204
95
  const getPercentage = (val) => (val - min) / (max - min) * 100;
205
- const getValue = (clientX, clientY) => {
96
+ const getValue = useCallback((clientX, clientY) => {
206
97
  if (!trackRef.current) return min;
207
98
  const rect = trackRef.current.getBoundingClientRect();
208
99
  const percentage = isVertical ? 1 - (clientY - rect.top) / rect.height : (clientX - rect.left) / rect.width;
209
100
  const rawValue = min + percentage * (max - min);
210
101
  const steppedValue = Math.round(rawValue / step) * step;
211
102
  return Math.max(min, Math.min(max, steppedValue));
212
- };
103
+ }, [isVertical, min, max, step]);
213
104
  const updateValue = useCallback(
214
105
  (newValue) => {
215
- if (range && Array.isArray(value)) {
216
- const newValues = [...value];
106
+ const currentValue = valueRef.current;
107
+ if (range && Array.isArray(currentValue)) {
108
+ const newValues = [...currentValue];
217
109
  newValues[activeThumb.current] = newValue;
218
110
  newValues.sort((a, b) => a - b);
219
111
  if (!controlledValue) setInternalValue(newValues);
@@ -223,18 +115,19 @@ var Slider = React.memo(
223
115
  onChange?.(newValue);
224
116
  }
225
117
  },
226
- [value, range, controlledValue, onChange]
118
+ [range, controlledValue, onChange]
227
119
  );
228
120
  const handlePointerMove = useCallback(
229
121
  (e) => {
230
122
  if (!isDragging.current || disabled) return;
231
123
  updateValue(getValue(e.clientX, e.clientY));
232
124
  },
233
- [disabled, updateValue, isVertical, min, max, step]
125
+ [disabled, updateValue, getValue]
234
126
  );
235
127
  const [isDraggingState, setIsDraggingState] = useState(false);
236
- const handlePointerDown = (thumbIndex) => (e) => {
128
+ const handlePointerDown = useCallback((e) => {
237
129
  if (disabled) return;
130
+ const thumbIndex = parseInt(e.currentTarget.dataset.index, 10);
238
131
  isDragging.current = true;
239
132
  setIsDraggingState(true);
240
133
  activeThumb.current = thumbIndex;
@@ -243,7 +136,7 @@ var Slider = React.memo(
243
136
  e.target.setPointerCapture(e.pointerId);
244
137
  }
245
138
  e.preventDefault();
246
- };
139
+ }, [disabled]);
247
140
  const handlePointerUp = useCallback(() => {
248
141
  isDragging.current = false;
249
142
  setIsDraggingState(false);
@@ -258,20 +151,21 @@ var Slider = React.memo(
258
151
  document.removeEventListener("pointerup", handlePointerUp);
259
152
  };
260
153
  }, [isDraggingState, handlePointerMove, handlePointerUp]);
261
- const handleTrackClick = (e) => {
154
+ const handleTrackClick = useCallback((e) => {
262
155
  if (disabled || isDragging.current) return;
263
156
  const newValue = getValue(e.clientX, e.clientY);
264
- if (range && Array.isArray(value)) {
157
+ const currentValue = valueRef.current;
158
+ if (range && Array.isArray(currentValue)) {
265
159
  let closestThumbIndex = 0;
266
- let minDistance = Math.abs(newValue - (value[0] || 0));
267
- for (let i = 1; i < value.length; i++) {
268
- const distance = Math.abs(newValue - (value[i] || 0));
160
+ let minDistance = Math.abs(newValue - (currentValue[0] || 0));
161
+ for (let i = 1; i < currentValue.length; i++) {
162
+ const distance = Math.abs(newValue - (currentValue[i] || 0));
269
163
  if (distance < minDistance) {
270
164
  minDistance = distance;
271
165
  closestThumbIndex = i;
272
166
  }
273
167
  }
274
- const newValues = [...value];
168
+ const newValues = [...currentValue];
275
169
  newValues[closestThumbIndex] = newValue;
276
170
  newValues.sort((a, b) => a - b);
277
171
  if (!controlledValue) setInternalValue(newValues);
@@ -280,9 +174,11 @@ var Slider = React.memo(
280
174
  if (!controlledValue) setInternalValue(newValue);
281
175
  onChange?.(newValue);
282
176
  }
283
- };
284
- const handleThumbKeyDown = (val, index) => (e) => {
177
+ }, [disabled, getValue, range, controlledValue, onChange]);
178
+ const handleThumbKeyDown = useCallback((e) => {
285
179
  if (disabled) return;
180
+ const index = parseInt(e.currentTarget.dataset.index, 10);
181
+ const val = Number(e.currentTarget.getAttribute("aria-valuenow"));
286
182
  let newValue = val;
287
183
  const increaseKeys = isVertical ? ["ArrowUp", "ArrowRight"] : ["ArrowRight", "ArrowUp"];
288
184
  const decreaseKeys = isVertical ? ["ArrowDown", "ArrowLeft"] : ["ArrowLeft", "ArrowDown"];
@@ -298,8 +194,9 @@ var Slider = React.memo(
298
194
  return;
299
195
  }
300
196
  e.preventDefault();
301
- if (range && Array.isArray(value)) {
302
- const newValues = [...value];
197
+ const currentValue = valueRef.current;
198
+ if (range && Array.isArray(currentValue)) {
199
+ const newValues = [...currentValue];
303
200
  newValues[index] = newValue;
304
201
  newValues.sort((a, b) => a - b);
305
202
  if (!controlledValue) setInternalValue(newValues);
@@ -308,14 +205,16 @@ var Slider = React.memo(
308
205
  if (!controlledValue) setInternalValue(newValue);
309
206
  onChange?.(newValue);
310
207
  }
311
- };
208
+ }, [disabled, isVertical, min, max, step, range, controlledValue, onChange]);
312
209
  const getFillStyle = (startPct, endPct) => isVertical ? { bottom: `${startPct}%`, height: `${endPct - startPct}%` } : { left: `${startPct}%`, width: `${endPct - startPct}%` };
313
210
  const getThumbStyle = (pct) => isVertical ? { bottom: `${pct}%` } : { left: `${pct}%` };
314
211
  return /* @__PURE__ */ jsxs(
315
212
  "div",
316
213
  {
214
+ "data-slot": "root",
317
215
  className: cn(
318
216
  isVertical ? "h-full inline-flex flex-col items-center" : "w-full",
217
+ colorVars[color],
319
218
  "slider_root",
320
219
  classNames?.root,
321
220
  className
@@ -329,7 +228,7 @@ var Slider = React.memo(
329
228
  onClick: handleTrackClick,
330
229
  className: cn(
331
230
  sliderTrackVariants({ size, orientation }),
332
- trackColorStyles[color][variant],
231
+ getTrackColorClasses(variant),
333
232
  "relative cursor-pointer touch-none",
334
233
  isVertical && "h-full",
335
234
  "slider_track",
@@ -346,7 +245,7 @@ var Slider = React.memo(
346
245
  className: cn(
347
246
  "absolute rounded-full",
348
247
  isVertical ? "w-full" : "h-full",
349
- fillColorStyles[color][variant],
248
+ getFillColorClasses(variant),
350
249
  "slider_range",
351
250
  classNames?.range
352
251
  ),
@@ -360,7 +259,7 @@ var Slider = React.memo(
360
259
  className: cn(
361
260
  "absolute rounded-full",
362
261
  isVertical ? "w-full" : "h-full",
363
- fillColorStyles[color][variant],
262
+ getFillColorClasses(variant),
364
263
  "slider_range",
365
264
  classNames?.range
366
265
  ),
@@ -384,10 +283,10 @@ var Slider = React.memo(
384
283
  "aria-label": range ? `Slider thumb ${index + 1}` : "Slider",
385
284
  className: cn(
386
285
  thumbVariants({ size }),
387
- thumbColorStyles[color][variant],
286
+ getThumbColorClasses(variant),
388
287
  "-translate-x-1/2",
389
288
  disabled && "cursor-not-allowed",
390
- "focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary",
289
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary",
391
290
  isVertical ? cn(
392
291
  "left-1/2 translate-y-1/2",
393
292
  isAtStart && "translate-y-0",
@@ -400,14 +299,16 @@ var Slider = React.memo(
400
299
  "slider_thumb",
401
300
  classNames?.thumb
402
301
  ),
302
+ "data-index": index,
403
303
  style: getThumbStyle(pct),
404
- onPointerDown: handlePointerDown(index),
405
- onKeyDown: handleThumbKeyDown(val, index),
406
- children: hoveredThumb === index && /* @__PURE__ */ jsx(
304
+ onPointerDown: handlePointerDown,
305
+ onKeyDown: handleThumbKeyDown,
306
+ children: /* @__PURE__ */ jsx(
407
307
  "div",
408
308
  {
409
309
  className: cn(
410
310
  "absolute bg-text-primary text-background text-xs px-2 py-1 rounded whitespace-nowrap",
311
+ hoveredThumb === index ? "opacity-100" : "opacity-0 pointer-events-none",
411
312
  isVertical ? "left-full ml-2 top-1/2 -translate-y-1/2" : "-top-8 left-1/2 -translate-x-1/2"
412
313
  ),
413
314
  children: val
@@ -436,5 +337,5 @@ Slider.displayName = "Slider";
436
337
  var slider_default = Slider;
437
338
 
438
339
  export { slider_default };
439
- //# sourceMappingURL=chunk-ZJNGZCRB.js.map
440
- //# sourceMappingURL=chunk-ZJNGZCRB.js.map
340
+ //# sourceMappingURL=chunk-BLFXVSZU.js.map
341
+ //# sourceMappingURL=chunk-BLFXVSZU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/slider/index.tsx"],"names":[],"mappings":";;;;;;AASA,IAAM,mBAAA,GAAsB,IAAI,uBAAA,EAAyB;AAAA,EACvD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,WAAA,EAAa;AAAA,MACX,UAAA,EAAY,EAAA;AAAA,MACZ,QAAA,EAAU;AAAA;AACZ,GACF;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,IACtD,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,IACtD,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,IACtD,EAAE,WAAA,EAAa,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,IACtD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,IACpD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,IACpD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA,EAAM;AAAA,IACpD,EAAE,WAAA,EAAa,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,OAAO,KAAA;AAAM,GACtD;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,IAAA;AAAA,IACN,WAAA,EAAa;AAAA;AAEjB,CAAC,CAAA;AAED,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,gIAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,aAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,oBAAA,GAAuB,CAAC,OAAA,KAAkD;AAC9E,EAAA,IAAI,OAAA,KAAY,QAAQ,OAAO,YAAA;AAC/B,EAAA,IAAI,OAAA,KAAY,SAAS,OAAO,YAAA;AAChC,EAAA,OAAO,YAAA;AACT,CAAA;AAEA,IAAM,mBAAA,GAAsB,CAAC,OAAA,KAAkD;AAC7E,EAAA,IAAI,OAAA,KAAY,WAAW,OAAO,wBAAA;AAClC,EAAA,IAAI,OAAA,KAAY,SAAS,OAAO,SAAA;AAChC,EAAA,OAAO,YAAA;AACT,CAAA;AAEA,IAAM,oBAAA,GAAuB,CAAC,OAAA,KAAkD;AAC9E,EAAA,IAAI,OAAA,KAAY,QAAQ,OAAO,gBAAA;AAC/B,EAAA,OAAO,aAAA;AACT,CAAA;AAEA,IAAM,SAAS,KAAA,CAAM,IAAA;AAAA,EACnB,CAAC;AAAA,IACC,KAAA,EAAO,eAAA;AAAA,IACP,YAAA,GAAe,EAAA;AAAA,IACf,GAAA,GAAM,CAAA;AAAA,IACN,GAAA,GAAM,GAAA;AAAA,IACN,IAAA,GAAO,CAAA;AAAA,IACP,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,OAAA,GAAU,SAAA;AAAA,IACV,WAAA,GAAc,YAAA;AAAA,IACd,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA,GAAS,KAAA;AAAA,IACT,KAAA,GAAQ;AAAA,GACV,KAAM;AACJ,IAAA,MAAM,aAAa,WAAA,KAAgB,UAAA;AACnC,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA;AAAA,MACxC;AAAA,KACF;AACA,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAwB,IAAI,CAAA;AACpE,IAAA,MAAM,QAAA,GAAW,OAAuB,IAAI,CAAA;AAC5C,IAAA,MAAM,UAAA,GAAa,OAAO,KAAK,CAAA;AAC/B,IAAA,MAAM,WAAA,GAAc,OAAe,CAAC,CAAA;AAEpC,IAAA,MAAM,QAAQ,eAAA,IAAmB,aAAA;AACjC,IAAA,MAAM,SAAS,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,CAAC,KAAK,CAAA;AAGpD,IAAA,MAAM,QAAA,GAAW,OAAO,KAAK,CAAA;AAC7B,IAAA,QAAA,CAAS,OAAA,GAAU,KAAA;AAEnB,IAAA,MAAM,gBAAgB,CAAC,GAAA,KAAA,CAAkB,GAAA,GAAM,GAAA,KAAQ,MAAM,GAAA,CAAA,GAAQ,GAAA;AAGrE,IAAA,MAAM,QAAA,GAAW,WAAA,CAAY,CAAC,OAAA,EAAiB,OAAA,KAAoB;AACjE,MAAA,IAAI,CAAC,QAAA,CAAS,OAAA,EAAS,OAAO,GAAA;AAC9B,MAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,CAAQ,qBAAA,EAAsB;AACpD,MAAA,MAAM,UAAA,GAAa,UAAA,GACf,CAAA,GAAA,CAAK,OAAA,GAAU,IAAA,CAAK,GAAA,IAAO,IAAA,CAAK,MAAA,GAAA,CAC/B,OAAA,GAAU,IAAA,CAAK,IAAA,IAAQ,IAAA,CAAK,KAAA;AACjC,MAAA,MAAM,QAAA,GAAW,GAAA,GAAM,UAAA,IAAc,GAAA,GAAM,GAAA,CAAA;AAC3C,MAAA,MAAM,YAAA,GAAe,IAAA,CAAK,KAAA,CAAM,QAAA,GAAW,IAAI,CAAA,GAAI,IAAA;AACnD,MAAA,OAAO,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,GAAA,CAAI,GAAA,EAAK,YAAY,CAAC,CAAA;AAAA,IAClD,GAAG,CAAC,UAAA,EAAY,GAAA,EAAK,GAAA,EAAK,IAAI,CAAC,CAAA;AAG/B,IAAA,MAAM,WAAA,GAAc,WAAA;AAAA,MAClB,CAAC,QAAA,KAAqB;AACpB,QAAA,MAAM,eAAe,QAAA,CAAS,OAAA;AAC9B,QAAA,IAAI,KAAA,IAAS,KAAA,CAAM,OAAA,CAAQ,YAAY,CAAA,EAAG;AACxC,UAAA,MAAM,SAAA,GAAY,CAAC,GAAG,YAAY,CAAA;AAClC,UAAA,SAAA,CAAU,WAAA,CAAY,OAAO,CAAA,GAAI,QAAA;AACjC,UAAA,SAAA,CAAU,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,IAAI,CAAC,CAAA;AAC9B,UAAA,IAAI,CAAC,eAAA,EAAiB,gBAAA,CAAiB,SAAS,CAAA;AAChD,UAAA,QAAA,GAAW,SAAS,CAAA;AAAA,QACtB,CAAA,MAAO;AACL,UAAA,IAAI,CAAC,eAAA,EAAiB,gBAAA,CAAiB,QAAQ,CAAA;AAC/C,UAAA,QAAA,GAAW,QAAQ,CAAA;AAAA,QACrB;AAAA,MACF,CAAA;AAAA,MACA,CAAC,KAAA,EAAO,eAAA,EAAiB,QAAQ;AAAA,KACnC;AAGA,IAAA,MAAM,iBAAA,GAAoB,WAAA;AAAA,MACxB,CAAC,CAAA,KAAoB;AACnB,QAAA,IAAI,CAAC,UAAA,CAAW,OAAA,IAAW,QAAA,EAAU;AACrC,QAAA,WAAA,CAAY,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,OAAO,CAAC,CAAA;AAAA,MAC5C,CAAA;AAAA,MACA,CAAC,QAAA,EAAU,WAAA,EAAa,QAAQ;AAAA,KAClC;AAEA,IAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAI,SAAS,KAAK,CAAA;AAG5D,IAAA,MAAM,iBAAA,GAAoB,WAAA,CAAY,CAAC,CAAA,KAA0C;AAC/E,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,MAAM,aAAa,QAAA,CAAS,CAAA,CAAE,aAAA,CAAc,OAAA,CAAQ,OAAQ,EAAE,CAAA;AAC9D,MAAA,UAAA,CAAW,OAAA,GAAU,IAAA;AACrB,MAAA,kBAAA,CAAmB,IAAI,CAAA;AACvB,MAAA,WAAA,CAAY,OAAA,GAAU,UAAA;AACtB,MAAA,eAAA,CAAgB,UAAU,CAAA;AAC1B,MAAA,IAAK,CAAA,CAAE,OAAuB,iBAAA,EAAmB;AAC9C,QAAC,CAAA,CAAE,MAAA,CAAuB,iBAAA,CAAkB,CAAA,CAAE,SAAS,CAAA;AAAA,MAC1D;AACA,MAAA,CAAA,CAAE,cAAA,EAAe;AAAA,IACnB,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,IAAA,MAAM,eAAA,GAAkB,YAAY,MAAM;AACxC,MAAA,UAAA,CAAW,OAAA,GAAU,KAAA;AACrB,MAAA,kBAAA,CAAmB,KAAK,CAAA;AACxB,MAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,IACtB,CAAA,EAAG,EAAE,CAAA;AAGL,IAAA,KAAA,CAAM,UAAU,MAAM;AACpB,MAAA,IAAI,CAAC,eAAA,EAAiB;AAEtB,MAAA,QAAA,CAAS,gBAAA,CAAiB,eAAe,iBAAiB,CAAA;AAC1D,MAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,eAAe,CAAA;AACtD,MAAA,OAAO,MAAM;AACX,QAAA,QAAA,CAAS,mBAAA,CAAoB,eAAe,iBAAiB,CAAA;AAC7D,QAAA,QAAA,CAAS,mBAAA,CAAoB,aAAa,eAAe,CAAA;AAAA,MAC3D,CAAA;AAAA,IACF,CAAA,EAAG,CAAC,eAAA,EAAiB,iBAAA,EAAmB,eAAe,CAAC,CAAA;AAGxD,IAAA,MAAM,gBAAA,GAAmB,WAAA,CAAY,CAAC,CAAA,KAA6E;AACjH,MAAA,IAAI,QAAA,IAAY,WAAW,OAAA,EAAS;AACpC,MAAA,MAAM,QAAA,GAAW,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AAC9C,MAAA,MAAM,eAAe,QAAA,CAAS,OAAA;AAE9B,MAAA,IAAI,KAAA,IAAS,KAAA,CAAM,OAAA,CAAQ,YAAY,CAAA,EAAG;AACxC,QAAA,IAAI,iBAAA,GAAoB,CAAA;AACxB,QAAA,IAAI,cAAc,IAAA,CAAK,GAAA,CAAI,YAAY,YAAA,CAAa,CAAC,KAAK,CAAA,CAAE,CAAA;AAC5D,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,YAAA,CAAa,QAAQ,CAAA,EAAA,EAAK;AAC5C,UAAA,MAAM,WAAW,IAAA,CAAK,GAAA,CAAI,YAAY,YAAA,CAAa,CAAC,KAAK,CAAA,CAAE,CAAA;AAC3D,UAAA,IAAI,WAAW,WAAA,EAAa;AAC1B,YAAA,WAAA,GAAc,QAAA;AACd,YAAA,iBAAA,GAAoB,CAAA;AAAA,UACtB;AAAA,QACF;AAEA,QAAA,MAAM,SAAA,GAAY,CAAC,GAAG,YAAY,CAAA;AAClC,QAAA,SAAA,CAAU,iBAAiB,CAAA,GAAI,QAAA;AAC/B,QAAA,SAAA,CAAU,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,IAAI,CAAC,CAAA;AAC9B,QAAA,IAAI,CAAC,eAAA,EAAiB,gBAAA,CAAiB,SAAS,CAAA;AAChD,QAAA,QAAA,GAAW,SAAS,CAAA;AAAA,MACtB,CAAA,MAAO;AACL,QAAA,IAAI,CAAC,eAAA,EAAiB,gBAAA,CAAiB,QAAQ,CAAA;AAC/C,QAAA,QAAA,GAAW,QAAQ,CAAA;AAAA,MACrB;AAAA,IACF,GAAG,CAAC,QAAA,EAAU,UAAU,KAAA,EAAO,eAAA,EAAiB,QAAQ,CAAC,CAAA;AAIzD,IAAA,MAAM,kBAAA,GAAqB,WAAA,CAAY,CAAC,CAAA,KAA2C;AACjF,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,MAAM,QAAQ,QAAA,CAAS,CAAA,CAAE,aAAA,CAAc,OAAA,CAAQ,OAAQ,EAAE,CAAA;AACzD,MAAA,MAAM,MAAM,MAAA,CAAO,CAAA,CAAE,aAAA,CAAc,YAAA,CAAa,eAAe,CAAC,CAAA;AAChE,MAAA,IAAI,QAAA,GAAW,GAAA;AACf,MAAA,MAAM,YAAA,GAAe,aAAa,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,CAAC,cAAc,SAAS,CAAA;AACtF,MAAA,MAAM,YAAA,GAAe,aAAa,CAAC,WAAA,EAAa,WAAW,CAAA,GAAI,CAAC,aAAa,WAAW,CAAA;AAExF,MAAA,IAAI,YAAA,CAAa,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA,EAAG;AAChC,QAAA,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,GAAA,GAAM,IAAI,CAAA;AAAA,MACrC,CAAA,MAAA,IAAW,YAAA,CAAa,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA,EAAG;AACvC,QAAA,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,GAAA,GAAM,IAAI,CAAA;AAAA,MACrC,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,MAAA,EAAQ;AAC3B,QAAA,QAAA,GAAW,GAAA;AAAA,MACb,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,KAAA,EAAO;AAC1B,QAAA,QAAA,GAAW,GAAA;AAAA,MACb,CAAA,MAAO;AACL,QAAA;AAAA,MACF;AACA,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAM,eAAe,QAAA,CAAS,OAAA;AAC9B,MAAA,IAAI,KAAA,IAAS,KAAA,CAAM,OAAA,CAAQ,YAAY,CAAA,EAAG;AACxC,QAAA,MAAM,SAAA,GAAY,CAAC,GAAG,YAAY,CAAA;AAClC,QAAA,SAAA,CAAU,KAAK,CAAA,GAAI,QAAA;AACnB,QAAA,SAAA,CAAU,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,IAAI,CAAC,CAAA;AAC9B,QAAA,IAAI,CAAC,eAAA,EAAiB,gBAAA,CAAiB,SAAS,CAAA;AAChD,QAAA,QAAA,GAAW,SAAS,CAAA;AAAA,MACtB,CAAA,MAAO;AACL,QAAA,IAAI,CAAC,eAAA,EAAiB,gBAAA,CAAiB,QAAQ,CAAA;AAC/C,QAAA,QAAA,GAAW,QAAQ,CAAA;AAAA,MACrB;AAAA,IACF,CAAA,EAAG,CAAC,QAAA,EAAU,UAAA,EAAY,GAAA,EAAK,KAAK,IAAA,EAAM,KAAA,EAAO,eAAA,EAAiB,QAAQ,CAAC,CAAA;AAG3E,IAAA,MAAM,YAAA,GAAe,CAAC,QAAA,EAAkB,MAAA,KACtC,UAAA,GACI,EAAE,MAAA,EAAQ,CAAA,EAAG,QAAQ,CAAA,CAAA,CAAA,EAAK,MAAA,EAAQ,CAAA,EAAG,SAAS,QAAQ,CAAA,CAAA,CAAA,EAAI,GAC1D,EAAE,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,CAAA,CAAA,EAAK,KAAA,EAAO,CAAA,EAAG,MAAA,GAAS,QAAQ,CAAA,CAAA,CAAA,EAAI;AAG7D,IAAA,MAAM,aAAA,GAAgB,CAAC,GAAA,KACrB,UAAA,GACI,EAAE,MAAA,EAAQ,CAAA,EAAG,GAAG,CAAA,CAAA,CAAA,EAAI,GACpB,EAAE,IAAA,EAAM,CAAA,EAAG,GAAG,CAAA,CAAA,CAAA,EAAI;AAExB,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,aAAa,0CAAA,GAA6C,QAAA;AAAA,UAC1D,UAAU,KAAK,CAAA;AAAA,UACf,aAAA;AAAA,UACA,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QAGC,QAAA,EAAA;AAAA,UAAA,UAAA,IAAc,MAAA,KAAW,IAAA,oBACxB,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,kCAAA,EAAoC,cAAA,EAAgB,UAAA,EAAY,KAAK,CAAA,EAAI,QAAA,EAAA,GAAA,EAAI,CAAA;AAAA,0BAGnG,IAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,gBAAA;AAAA,cACT,SAAA,EAAW,EAAA;AAAA,gBACT,mBAAA,CAAoB,EAAE,IAAA,EAAM,WAAA,EAAa,CAAA;AAAA,gBACzC,qBAAqB,OAAO,CAAA;AAAA,gBAC5B,oCAAA;AAAA,gBACA,UAAA,IAAc,QAAA;AAAA,gBACd,cAAA;AAAA,gBACA,UAAA,EAAY,KAAA;AAAA,gBACZ,QAAA,IAAY;AAAA,eACd;AAAA,cAGC,QAAA,EAAA;AAAA,gBAAA,KAAA,IAAS,MAAA,CAAO,MAAA,GAAS,CAAA,GACxB,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,EAAK,KAAA,KAAU;AACtC,kBAAA,MAAM,KAAA,GAAQ,cAAc,GAAG,CAAA;AAC/B,kBAAA,MAAM,GAAA,GAAM,aAAA,CAAc,MAAA,CAAO,KAAA,GAAQ,CAAC,CAAE,CAAA;AAC5C,kBAAA,uBACE,GAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBAEC,SAAA,EAAW,EAAA;AAAA,wBACT,uBAAA;AAAA,wBACA,aAAa,QAAA,GAAW,QAAA;AAAA,wBACxB,oBAAoB,OAAO,CAAA;AAAA,wBAC3B,cAAA;AAAA,wBACA,UAAA,EAAY;AAAA,uBACd;AAAA,sBACA,KAAA,EAAO,YAAA,CAAa,KAAA,EAAO,GAAG;AAAA,qBAAA;AAAA,oBARzB;AAAA,mBASP;AAAA,gBAEJ,CAAC,CAAA,mBAED,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,uBAAA;AAAA,sBACA,aAAa,QAAA,GAAW,QAAA;AAAA,sBACxB,oBAAoB,OAAO,CAAA;AAAA,sBAC3B,cAAA;AAAA,sBACA,UAAA,EAAY;AAAA,qBACd;AAAA,oBACA,KAAA,EAAO,aAAa,CAAA,EAAG,aAAA,CAAc,OAAO,CAAC,CAAA,IAAK,CAAC,CAAC;AAAA;AAAA,iBACtD;AAAA,gBAID,MAAA,CAAO,GAAA,CAAI,CAAC,GAAA,EAAK,KAAA,KAAU;AAC1B,kBAAA,MAAM,GAAA,GAAM,cAAc,GAAG,CAAA;AAC7B,kBAAA,MAAM,YAAY,GAAA,IAAO,CAAA;AACzB,kBAAA,MAAM,UAAU,GAAA,IAAO,GAAA;AACvB,kBAAA,uBACE,GAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBAEC,IAAA,EAAK,QAAA;AAAA,sBACL,QAAA,EAAU,WAAW,EAAA,GAAK,CAAA;AAAA,sBAC1B,eAAA,EAAe,GAAA;AAAA,sBACf,eAAA,EAAe,GAAA;AAAA,sBACf,eAAA,EAAe,GAAA;AAAA,sBACf,eAAA,EAAe,QAAA;AAAA,sBACf,kBAAA,EAAkB,WAAA;AAAA,sBAClB,YAAA,EAAY,KAAA,GAAQ,CAAA,aAAA,EAAgB,KAAA,GAAQ,CAAC,CAAA,CAAA,GAAK,QAAA;AAAA,sBAClD,SAAA,EAAW,EAAA;AAAA,wBACT,aAAA,CAAc,EAAE,IAAA,EAAM,CAAA;AAAA,wBACtB,qBAAqB,OAAO,CAAA;AAAA,wBAC5B,kBAAA;AAAA,wBACA,QAAA,IAAY,oBAAA;AAAA,wBACZ,gGAAA;AAAA,wBACA,UAAA,GACI,EAAA;AAAA,0BACE,0BAAA;AAAA,0BACA,SAAA,IAAa,eAAA;AAAA,0BACb,OAAA,IAAW;AAAA,yBACb,GACA,EAAA;AAAA,0BACE,0BAAA;AAAA,0BACA,SAAA,IAAa,eAAA;AAAA,0BACb,OAAA,IAAW;AAAA,yBACb;AAAA,wBACJ,cAAA;AAAA,wBACA,UAAA,EAAY;AAAA,uBACd;AAAA,sBACA,YAAA,EAAY,KAAA;AAAA,sBACZ,KAAA,EAAO,cAAc,GAAG,CAAA;AAAA,sBACxB,aAAA,EAAe,iBAAA;AAAA,sBACf,SAAA,EAAW,kBAAA;AAAA,sBAEX,QAAA,kBAAA,GAAA;AAAA,wBAAC,KAAA;AAAA,wBAAA;AAAA,0BACC,SAAA,EAAW,EAAA;AAAA,4BACT,sFAAA;AAAA,4BACA,YAAA,KAAiB,QAAQ,aAAA,GAAgB,+BAAA;AAAA,4BACzC,aACI,yCAAA,GACA;AAAA,2BACN;AAAA,0BAEC,QAAA,EAAA;AAAA;AAAA;AACH,qBAAA;AAAA,oBA5CK;AAAA,mBA6CP;AAAA,gBAEJ,CAAC;AAAA;AAAA;AAAA,WACH;AAAA,UAGC,UAAA,IAAc,MAAA,KAAW,IAAA,oBACxB,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,kCAAA,EAAoC,cAAA,EAAgB,UAAA,EAAY,KAAK,CAAA,EAAI,QAAA,EAAA,GAAA,EAAI,CAAA;AAAA,UAGlG,CAAC,UAAA,IAAc,MAAA,KAAW,wBACzB,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uDAAA,EACb,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,gBAAgB,UAAA,EAAY,KAAK,GAAI,QAAA,EAAA,GAAA,EAAI,CAAA;AAAA,gCAC5D,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,+BAAA,EAAiC,cAAA,EAAgB,YAAY,KAAK,CAAA,EACnF,QAAA,EAAA,KAAA,IAAS,KAAA,CAAM,QAAQ,KAAK,CAAA,GAAI,MAAM,IAAA,CAAK,KAAK,IAAI,KAAA,EACvD,CAAA;AAAA,4BACA,GAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,gBAAgB,UAAA,EAAY,KAAK,GAAI,QAAA,EAAA,GAAA,EAAI;AAAA,WAAA,EAC/D,CAAA;AAAA,UAED,MAAA,IAAU,OAAO,MAAA,KAAW,SAAA,IAAa;AAAA;AAAA;AAAA,KAC5C;AAAA,EAEJ;AACF,CAAA;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;AAGrB,IAAO,cAAA,GAAQ","file":"chunk-BLFXVSZU.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useCallback, useRef, useState } from 'react'\n\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { SliderProps } from './types'\n\nconst sliderTrackVariants = cva('relative rounded-full', {\n variants: {\n size: {\n xs: '',\n sm: '',\n md: '',\n lg: '',\n },\n orientation: {\n horizontal: '',\n vertical: '',\n },\n },\n compoundVariants: [\n { orientation: 'horizontal', size: 'xs', class: 'h-1' },\n { orientation: 'horizontal', size: 'sm', class: 'h-2' },\n { orientation: 'horizontal', size: 'md', class: 'h-3' },\n { orientation: 'horizontal', size: 'lg', class: 'h-4' },\n { orientation: 'vertical', size: 'xs', class: 'w-1' },\n { orientation: 'vertical', size: 'sm', class: 'w-2' },\n { orientation: 'vertical', size: 'md', class: 'w-3' },\n { orientation: 'vertical', size: 'lg', class: 'w-4' },\n ],\n defaultVariants: {\n size: 'md',\n orientation: 'horizontal',\n },\n})\n\nconst thumbVariants = cva(\n 'absolute rounded-full border-2 bg-background cursor-pointer hover:scale-110 active:scale-100 transition-transform duration-150',\n {\n variants: {\n size: {\n xs: 'w-3 h-3',\n sm: 'w-3.5 h-3.5',\n md: 'w-4 h-4',\n lg: 'w-6 h-6',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst getTrackColorClasses = (variant: 'default' | 'solid' | 'soft'): string => {\n if (variant === 'soft') return 'bg-slot-10'\n if (variant === 'solid') return 'bg-slot-20'\n return 'bg-slot-10' // default\n}\n\nconst getFillColorClasses = (variant: 'default' | 'solid' | 'soft'): string => {\n if (variant === 'default') return 'bg-slot-20 border-slot'\n if (variant === 'solid') return 'bg-slot'\n return 'bg-slot-50' // soft\n}\n\nconst getThumbColorClasses = (variant: 'default' | 'solid' | 'soft'): string => {\n if (variant === 'soft') return 'border-slot-50'\n return 'border-slot' // default and solid\n}\n\nconst Slider = React.memo<SliderProps>(\n ({\n value: controlledValue,\n defaultValue = 50,\n min = 0,\n max = 100,\n step = 1,\n color = 'primary',\n size = 'md',\n variant = 'default',\n orientation = 'horizontal',\n onChange,\n disabled = false,\n className,\n classNames,\n footer = false,\n range = false,\n }) => {\n const isVertical = orientation === 'vertical'\n const [internalValue, setInternalValue] = useState<number | number[]>(\n defaultValue,\n )\n const [hoveredThumb, setHoveredThumb] = useState<number | null>(null)\n const trackRef = useRef<HTMLDivElement>(null)\n const isDragging = useRef(false)\n const activeThumb = useRef<number>(0)\n\n const value = controlledValue ?? internalValue\n const values = Array.isArray(value) ? value : [value]\n\n // Fix 3: Mirror latest value in a ref to avoid stale closures during rapid drag\n const valueRef = useRef(value)\n valueRef.current = value\n\n const getPercentage = (val: number) => ((val - min) / (max - min)) * 100\n\n // Fix 1: Wrap getValue in useCallback to prevent stale references\n const getValue = useCallback((clientX: number, clientY: number) => {\n if (!trackRef.current) return min\n const rect = trackRef.current.getBoundingClientRect()\n const percentage = isVertical\n ? 1 - (clientY - rect.top) / rect.height // Inverted: bottom=min, top=max\n : (clientX - rect.left) / rect.width\n const rawValue = min + percentage * (max - min)\n const steppedValue = Math.round(rawValue / step) * step\n return Math.max(min, Math.min(max, steppedValue))\n }, [isVertical, min, max, step])\n\n // Fix 3: Read from valueRef.current instead of value closure\n const updateValue = useCallback(\n (newValue: number) => {\n const currentValue = valueRef.current\n if (range && Array.isArray(currentValue)) {\n const newValues = [...currentValue]\n newValues[activeThumb.current] = newValue\n newValues.sort((a, b) => a - b)\n if (!controlledValue) setInternalValue(newValues)\n onChange?.(newValues)\n } else {\n if (!controlledValue) setInternalValue(newValue)\n onChange?.(newValue)\n }\n },\n [range, controlledValue, onChange],\n )\n\n // Fix 1: Include getValue in deps (replaces isVertical, min, max, step)\n const handlePointerMove = useCallback(\n (e: PointerEvent) => {\n if (!isDragging.current || disabled) return\n updateValue(getValue(e.clientX, e.clientY))\n },\n [disabled, updateValue, getValue],\n )\n\n const [isDraggingState, setIsDraggingState] = useState(false)\n\n // Fix 2: Single useCallback handler using data-index attribute\n const handlePointerDown = useCallback((e: React.PointerEvent<HTMLDivElement>) => {\n if (disabled) return\n const thumbIndex = parseInt(e.currentTarget.dataset.index!, 10)\n isDragging.current = true\n setIsDraggingState(true)\n activeThumb.current = thumbIndex\n setHoveredThumb(thumbIndex)\n if ((e.target as HTMLElement).setPointerCapture) {\n ;(e.target as HTMLElement).setPointerCapture(e.pointerId)\n }\n e.preventDefault()\n }, [disabled])\n\n const handlePointerUp = useCallback(() => {\n isDragging.current = false\n setIsDraggingState(false)\n setHoveredThumb(null)\n }, [])\n\n // Only add global listeners when dragging - fixes memory leak\n React.useEffect(() => {\n if (!isDraggingState) return\n\n document.addEventListener('pointermove', handlePointerMove)\n document.addEventListener('pointerup', handlePointerUp)\n return () => {\n document.removeEventListener('pointermove', handlePointerMove)\n document.removeEventListener('pointerup', handlePointerUp)\n }\n }, [isDraggingState, handlePointerMove, handlePointerUp])\n\n // Fix 2: Wrap in useCallback to avoid recreation every render\n const handleTrackClick = useCallback((e: React.PointerEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement>) => {\n if (disabled || isDragging.current) return\n const newValue = getValue(e.clientX, e.clientY)\n const currentValue = valueRef.current\n\n if (range && Array.isArray(currentValue)) {\n let closestThumbIndex = 0\n let minDistance = Math.abs(newValue - (currentValue[0] || 0))\n for (let i = 1; i < currentValue.length; i++) {\n const distance = Math.abs(newValue - (currentValue[i] || 0))\n if (distance < minDistance) {\n minDistance = distance\n closestThumbIndex = i\n }\n }\n\n const newValues = [...currentValue]\n newValues[closestThumbIndex] = newValue\n newValues.sort((a, b) => a - b)\n if (!controlledValue) setInternalValue(newValues)\n onChange?.(newValues)\n } else {\n if (!controlledValue) setInternalValue(newValue)\n onChange?.(newValue)\n }\n }, [disabled, getValue, range, controlledValue, onChange])\n\n // Fix 2: Single useCallback handler using data-index attribute\n // Keyboard: ArrowUp/Right = increase, ArrowDown/Left = decrease\n const handleThumbKeyDown = useCallback((e: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return\n const index = parseInt(e.currentTarget.dataset.index!, 10)\n const val = Number(e.currentTarget.getAttribute('aria-valuenow'))\n let newValue = val\n const increaseKeys = isVertical ? ['ArrowUp', 'ArrowRight'] : ['ArrowRight', 'ArrowUp']\n const decreaseKeys = isVertical ? ['ArrowDown', 'ArrowLeft'] : ['ArrowLeft', 'ArrowDown']\n\n if (increaseKeys.includes(e.key)) {\n newValue = Math.min(max, val + step)\n } else if (decreaseKeys.includes(e.key)) {\n newValue = Math.max(min, val - step)\n } else if (e.key === 'Home') {\n newValue = min\n } else if (e.key === 'End') {\n newValue = max\n } else {\n return\n }\n e.preventDefault()\n const currentValue = valueRef.current\n if (range && Array.isArray(currentValue)) {\n const newValues = [...currentValue]\n newValues[index] = newValue\n newValues.sort((a, b) => a - b)\n if (!controlledValue) setInternalValue(newValues)\n onChange?.(newValues)\n } else {\n if (!controlledValue) setInternalValue(newValue)\n onChange?.(newValue)\n }\n }, [disabled, isVertical, min, max, step, range, controlledValue, onChange])\n\n // Fill segment styles\n const getFillStyle = (startPct: number, endPct: number) =>\n isVertical\n ? { bottom: `${startPct}%`, height: `${endPct - startPct}%` }\n : { left: `${startPct}%`, width: `${endPct - startPct}%` }\n\n // Thumb position style\n const getThumbStyle = (pct: number) =>\n isVertical\n ? { bottom: `${pct}%` }\n : { left: `${pct}%` }\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n isVertical ? 'h-full inline-flex flex-col items-center' : 'w-full',\n colorVars[color],\n 'slider_root',\n classNames?.root,\n className,\n )}\n >\n {/* Footer top (vertical: value at top) */}\n {isVertical && footer === true && (\n <span className={cn('text-sm text-text-secondary mb-1', 'slider_label', classNames?.label)}>{max}</span>\n )}\n\n <div\n ref={trackRef}\n onClick={handleTrackClick}\n className={cn(\n sliderTrackVariants({ size, orientation }),\n getTrackColorClasses(variant),\n 'relative cursor-pointer touch-none',\n isVertical && 'h-full',\n 'slider_track',\n classNames?.track,\n disabled && 'opacity-50 cursor-not-allowed',\n )}\n >\n {/* Fill segment */}\n {range && values.length > 1 ? (\n values.slice(0, -1).map((val, index) => {\n const start = getPercentage(val)\n const end = getPercentage(values[index + 1]!)\n return (\n <div\n key={index}\n className={cn(\n 'absolute rounded-full',\n isVertical ? 'w-full' : 'h-full',\n getFillColorClasses(variant),\n 'slider_range',\n classNames?.range,\n )}\n style={getFillStyle(start, end)}\n />\n )\n })\n ) : (\n <div\n className={cn(\n 'absolute rounded-full',\n isVertical ? 'w-full' : 'h-full',\n getFillColorClasses(variant),\n 'slider_range',\n classNames?.range,\n )}\n style={getFillStyle(0, getPercentage(values[0] || 0))}\n />\n )}\n\n {/* Thumbs */}\n {values.map((val, index) => {\n const pct = getPercentage(val)\n const isAtStart = pct <= 0\n const isAtEnd = pct >= 100\n return (\n <div\n key={index}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={val}\n aria-disabled={disabled}\n aria-orientation={orientation}\n aria-label={range ? `Slider thumb ${index + 1}` : 'Slider'}\n className={cn(\n thumbVariants({ size }),\n getThumbColorClasses(variant),\n '-translate-x-1/2',\n disabled && 'cursor-not-allowed',\n 'focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary',\n isVertical\n ? cn(\n 'left-1/2 translate-y-1/2',\n isAtStart && 'translate-y-0',\n isAtEnd && 'translate-y-full',\n )\n : cn(\n 'top-1/2 -translate-y-1/2',\n isAtStart && 'translate-x-0',\n isAtEnd && '-translate-x-full',\n ),\n 'slider_thumb',\n classNames?.thumb,\n )}\n data-index={index}\n style={getThumbStyle(pct)}\n onPointerDown={handlePointerDown}\n onKeyDown={handleThumbKeyDown}\n >\n <div\n className={cn(\n 'absolute bg-text-primary text-background text-xs px-2 py-1 rounded whitespace-nowrap',\n hoveredThumb === index ? 'opacity-100' : 'opacity-0 pointer-events-none',\n isVertical\n ? 'left-full ml-2 top-1/2 -translate-y-1/2'\n : '-top-8 left-1/2 -translate-x-1/2',\n )}\n >\n {val}\n </div>\n </div>\n )\n })}\n </div>\n\n {/* Footer */}\n {isVertical && footer === true && (\n <span className={cn('text-sm text-text-secondary mt-1', 'slider_label', classNames?.label)}>{min}</span>\n )}\n\n {!isVertical && footer === true && (\n <div className=\"flex justify-between mt-1 text-sm text-text-secondary\">\n <span className={cn('slider_label', classNames?.label)}>{min}</span>\n <span className={cn('font-medium text-text-primary', 'slider_value', classNames?.value)}>\n {range && Array.isArray(value) ? value.join(' - ') : value}\n </span>\n <span className={cn('slider_label', classNames?.label)}>{max}</span>\n </div>\n )}\n {footer && typeof footer !== 'boolean' && footer}\n </div>\n )\n },\n)\n\nSlider.displayName = 'Slider'\n\nexport type * from './types'\nexport default Slider\n"]}