@mdigital_ui/ui 0.4.1 → 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.
- package/dist/accordion/index.d.ts.map +1 -1
- package/dist/accordion/index.js +3 -3
- package/dist/accordion/types.d.ts +6 -45
- package/dist/accordion/types.d.ts.map +1 -1
- package/dist/avatar/index.d.ts +0 -6
- package/dist/avatar/index.d.ts.map +1 -1
- package/dist/avatar/index.js +2 -2
- package/dist/avatar/types.d.ts +0 -48
- package/dist/avatar/types.d.ts.map +1 -1
- package/dist/badge/index.d.ts +1 -23
- package/dist/badge/index.d.ts.map +1 -1
- package/dist/badge/index.js +3 -3
- package/dist/badge/types.d.ts +1 -20
- package/dist/badge/types.d.ts.map +1 -1
- package/dist/breadcrumbs/index.d.ts.map +1 -1
- package/dist/breadcrumbs/index.js +7 -6
- package/dist/breadcrumbs/types.d.ts +3 -38
- package/dist/breadcrumbs/types.d.ts.map +1 -1
- package/dist/button/index.d.ts +1 -1
- package/dist/button/index.d.ts.map +1 -1
- package/dist/button/index.js +5 -5
- package/dist/button/types.d.ts +2 -8
- package/dist/button/types.d.ts.map +1 -1
- package/dist/button-group/index.d.ts +0 -28
- package/dist/button-group/index.d.ts.map +1 -1
- package/dist/button-group/index.js +2 -2
- package/dist/button-group/types.d.ts +0 -19
- package/dist/button-group/types.d.ts.map +1 -1
- package/dist/card/index.d.ts +0 -40
- package/dist/card/index.d.ts.map +1 -1
- package/dist/card/index.js +3 -3
- package/dist/card/types.d.ts +3 -29
- package/dist/card/types.d.ts.map +1 -1
- package/dist/carousel/index.d.ts +4 -0
- package/dist/carousel/index.d.ts.map +1 -1
- package/dist/carousel/index.js +2 -2
- package/dist/cascader/index.d.ts +0 -21
- package/dist/cascader/index.d.ts.map +1 -1
- package/dist/cascader/index.js +3 -3
- package/dist/cascader/types.d.ts +3 -89
- package/dist/cascader/types.d.ts.map +1 -1
- package/dist/checkbox/index.d.ts.map +1 -1
- package/dist/checkbox/index.js +3 -3
- package/dist/checkbox/types.d.ts +2 -2
- package/dist/checkbox/types.d.ts.map +1 -1
- package/dist/checkbox-group/index.d.ts.map +1 -1
- package/dist/checkbox-group/index.js +2 -2
- package/dist/checkbox-group/types.d.ts +0 -24
- package/dist/checkbox-group/types.d.ts.map +1 -1
- package/dist/{chunk-H6G4BUPA.js → chunk-2FYXBW4S.js} +201 -161
- package/dist/chunk-2FYXBW4S.js.map +1 -0
- package/dist/{chunk-KH577UDI.js → chunk-2OBMSB5S.js} +9 -6
- package/dist/chunk-2OBMSB5S.js.map +1 -0
- package/dist/{chunk-3BIV3QE2.js → chunk-3FXOQC6P.js} +60 -28
- package/dist/chunk-3FXOQC6P.js.map +1 -0
- package/dist/{chunk-YXLIGJTN.js → chunk-3KISIZGP.js} +6 -6
- package/dist/chunk-3KISIZGP.js.map +1 -0
- package/dist/{chunk-6G3BMY4N.js → chunk-3QD7AQX7.js} +76 -85
- package/dist/chunk-3QD7AQX7.js.map +1 -0
- package/dist/{chunk-ROA7BYGB.js → chunk-3YP7HY3Y.js} +7 -5
- package/dist/chunk-3YP7HY3Y.js.map +1 -0
- package/dist/{chunk-OLTQAMV2.js → chunk-442OQLPK.js} +9 -24
- package/dist/chunk-442OQLPK.js.map +1 -0
- package/dist/{chunk-OFUPJH35.js → chunk-4TEZWGX7.js} +3 -3
- package/dist/{chunk-OFUPJH35.js.map → chunk-4TEZWGX7.js.map} +1 -1
- package/dist/chunk-4WZDQI22.js +378 -0
- package/dist/chunk-4WZDQI22.js.map +1 -0
- package/dist/{chunk-TLNHWOQQ.js → chunk-54Z7XTJA.js} +30 -19
- package/dist/chunk-54Z7XTJA.js.map +1 -0
- package/dist/{chunk-64NHVOZS.js → chunk-5CIJ7UCP.js} +25 -15
- package/dist/chunk-5CIJ7UCP.js.map +1 -0
- package/dist/{chunk-ON2CMF6J.js → chunk-5XLCUGLQ.js} +14 -10
- package/dist/chunk-5XLCUGLQ.js.map +1 -0
- package/dist/{chunk-DUIL5BYS.js → chunk-62LTLXVG.js} +72 -48
- package/dist/chunk-62LTLXVG.js.map +1 -0
- package/dist/{chunk-G6NVGBYZ.js → chunk-6ZPCKFRS.js} +23 -22
- package/dist/chunk-6ZPCKFRS.js.map +1 -0
- package/dist/{chunk-N2WHJ3FI.js → chunk-7OYMEXY3.js} +7 -5
- package/dist/chunk-7OYMEXY3.js.map +1 -0
- package/dist/{chunk-ONGJXAYQ.js → chunk-AEPBQO7U.js} +6 -5
- package/dist/chunk-AEPBQO7U.js.map +1 -0
- package/dist/{chunk-UTWQ2FZK.js → chunk-AOXTD7QZ.js} +47 -93
- package/dist/chunk-AOXTD7QZ.js.map +1 -0
- package/dist/{chunk-ZJNGZCRB.js → chunk-BLFXVSZU.js} +54 -153
- package/dist/chunk-BLFXVSZU.js.map +1 -0
- package/dist/{chunk-VOODO2ZE.js → chunk-BMA4E3T6.js} +6 -14
- package/dist/chunk-BMA4E3T6.js.map +1 -0
- package/dist/{chunk-4FFVNUTK.js → chunk-BNHRUHI4.js} +7 -6
- package/dist/chunk-BNHRUHI4.js.map +1 -0
- package/dist/{chunk-3BZE6BBJ.js → chunk-C46VTIW7.js} +41 -23
- package/dist/chunk-C46VTIW7.js.map +1 -0
- package/dist/{chunk-BVO2BNFG.js → chunk-CHGABWIV.js} +3 -3
- package/dist/chunk-CHGABWIV.js.map +1 -0
- package/dist/chunk-DF2ICSNI.js +99 -0
- package/dist/chunk-DF2ICSNI.js.map +1 -0
- package/dist/chunk-DOI7OTYV.js +81 -0
- package/dist/chunk-DOI7OTYV.js.map +1 -0
- package/dist/{chunk-2TLOWZE4.js → chunk-DPIXBBXK.js} +40 -179
- package/dist/chunk-DPIXBBXK.js.map +1 -0
- package/dist/{chunk-OQFYIKWR.js → chunk-EC5DXYME.js} +21 -12
- package/dist/chunk-EC5DXYME.js.map +1 -0
- package/dist/{chunk-KJTMZJ7V.js → chunk-EHNWVQBL.js} +65 -48
- package/dist/chunk-EHNWVQBL.js.map +1 -0
- package/dist/{chunk-I32ZQUYY.js → chunk-F4GLUQOF.js} +9 -8
- package/dist/chunk-F4GLUQOF.js.map +1 -0
- package/dist/{chunk-GJPZOMFE.js → chunk-FCU2ENQQ.js} +63 -31
- package/dist/chunk-FCU2ENQQ.js.map +1 -0
- package/dist/{chunk-JWTWPZ32.js → chunk-FZXMRXWE.js} +10 -9
- package/dist/chunk-FZXMRXWE.js.map +1 -0
- package/dist/{chunk-LOYLJRCF.js → chunk-G27HGKWO.js} +15 -5
- package/dist/chunk-G27HGKWO.js.map +1 -0
- package/dist/{chunk-Y4XAXZHB.js → chunk-GGQF5PQN.js} +9 -8
- package/dist/chunk-GGQF5PQN.js.map +1 -0
- package/dist/chunk-GLJDHW73.js +24 -0
- package/dist/chunk-GLJDHW73.js.map +1 -0
- package/dist/{chunk-LX4FDH4J.js → chunk-GPSZJWU3.js} +10 -11
- package/dist/chunk-GPSZJWU3.js.map +1 -0
- package/dist/{chunk-6LYRMQOI.js → chunk-H6PCGSIT.js} +21 -16
- package/dist/chunk-H6PCGSIT.js.map +1 -0
- package/dist/{chunk-WRSG7WU5.js → chunk-HJITFPBT.js} +78 -94
- package/dist/chunk-HJITFPBT.js.map +1 -0
- package/dist/{chunk-HECAAILV.js → chunk-HRVOTFU4.js} +24 -16
- package/dist/chunk-HRVOTFU4.js.map +1 -0
- package/dist/{chunk-O3V3BTIJ.js → chunk-HSW64H23.js} +54 -87
- package/dist/chunk-HSW64H23.js.map +1 -0
- package/dist/{chunk-YS5AIY4A.js → chunk-K5RV3GF4.js} +6 -5
- package/dist/chunk-K5RV3GF4.js.map +1 -0
- package/dist/{chunk-2WZVD7P3.js → chunk-KZZJAZ5M.js} +6 -5
- package/dist/chunk-KZZJAZ5M.js.map +1 -0
- package/dist/{chunk-6HGUDHHE.js → chunk-L5BU2QTI.js} +3 -5
- package/dist/chunk-L5BU2QTI.js.map +1 -0
- package/dist/{chunk-C5IGZLIT.js → chunk-LM6CJZX5.js} +8 -22
- package/dist/chunk-LM6CJZX5.js.map +1 -0
- package/dist/{chunk-RFHTC6AH.js → chunk-LXHOS74B.js} +16 -38
- package/dist/chunk-LXHOS74B.js.map +1 -0
- package/dist/{chunk-674JC24S.js → chunk-MZDAQSI4.js} +27 -28
- package/dist/chunk-MZDAQSI4.js.map +1 -0
- package/dist/{chunk-3PWILVOE.js → chunk-NHM6DZOF.js} +35 -50
- package/dist/chunk-NHM6DZOF.js.map +1 -0
- package/dist/chunk-NZHKNUGE.js +96 -0
- package/dist/chunk-NZHKNUGE.js.map +1 -0
- package/dist/{chunk-2PNLIQYM.js → chunk-ON76IMMI.js} +3 -3
- package/dist/chunk-ON76IMMI.js.map +1 -0
- package/dist/{chunk-POLVJ36Y.js → chunk-QNLTSHMB.js} +13 -38
- package/dist/chunk-QNLTSHMB.js.map +1 -0
- package/dist/{chunk-7UCNBMCV.js → chunk-QZ67UOPR.js} +13 -19
- package/dist/chunk-QZ67UOPR.js.map +1 -0
- package/dist/{chunk-NGYLRX6F.js → chunk-RAS6HUEI.js} +2 -2
- package/dist/chunk-RAS6HUEI.js.map +1 -0
- package/dist/{chunk-R3TLU26W.js → chunk-S7R4NTOI.js} +9 -7
- package/dist/chunk-S7R4NTOI.js.map +1 -0
- package/dist/{chunk-L5UYN5LX.js → chunk-SHUHAORE.js} +78 -44
- package/dist/chunk-SHUHAORE.js.map +1 -0
- package/dist/{chunk-SGRACNBP.js → chunk-STAYOHDI.js} +13 -5
- package/dist/chunk-STAYOHDI.js.map +1 -0
- package/dist/{chunk-ERRZ2CSG.js → chunk-SUNCSPDF.js} +45 -74
- package/dist/chunk-SUNCSPDF.js.map +1 -0
- package/dist/{chunk-YJOLLSHH.js → chunk-TS2PG6Z4.js} +42 -34
- package/dist/chunk-TS2PG6Z4.js.map +1 -0
- package/dist/{chunk-X3YNHX77.js → chunk-U3RHF7QF.js} +32 -33
- package/dist/chunk-U3RHF7QF.js.map +1 -0
- package/dist/{chunk-GVVP5TZM.js → chunk-UIVOI7HE.js} +231 -197
- package/dist/chunk-UIVOI7HE.js.map +1 -0
- package/dist/{chunk-D4SUSZDN.js → chunk-USHR3MWQ.js} +13 -13
- package/dist/chunk-USHR3MWQ.js.map +1 -0
- package/dist/{chunk-764UKE6X.js → chunk-VIK6UTVN.js} +7 -6
- package/dist/chunk-VIK6UTVN.js.map +1 -0
- package/dist/{chunk-HUXODBIO.js → chunk-VKY3JXAQ.js} +42 -101
- package/dist/chunk-VKY3JXAQ.js.map +1 -0
- package/dist/{chunk-FZSCLZF6.js → chunk-VV3VO5TS.js} +64 -101
- package/dist/chunk-VV3VO5TS.js.map +1 -0
- package/dist/{chunk-ZIYA7TGX.js → chunk-W5L7C7WS.js} +12 -22
- package/dist/chunk-W5L7C7WS.js.map +1 -0
- package/dist/{chunk-GOLARX5K.js → chunk-X3CNTOKQ.js} +13 -10
- package/dist/chunk-X3CNTOKQ.js.map +1 -0
- package/dist/{chunk-EHWXPH76.js → chunk-XKDN5PWJ.js} +8 -6
- package/dist/chunk-XKDN5PWJ.js.map +1 -0
- package/dist/{chunk-HCOTO5WX.js → chunk-XWCWTPEM.js} +7 -8
- package/dist/chunk-XWCWTPEM.js.map +1 -0
- package/dist/{chunk-PMA4VCAH.js → chunk-YSV5GQS7.js} +55 -17
- package/dist/chunk-YSV5GQS7.js.map +1 -0
- package/dist/{chunk-6JGNJI5T.js → chunk-ZNNIXMJZ.js} +35 -21
- package/dist/chunk-ZNNIXMJZ.js.map +1 -0
- package/dist/{chunk-CN74CNAN.js → chunk-ZZZGD5EF.js} +8 -22
- package/dist/chunk-ZZZGD5EF.js.map +1 -0
- package/dist/clipboard/index.d.ts.map +1 -1
- package/dist/clipboard/index.js +4 -4
- package/dist/clipboard/types.d.ts +2 -35
- package/dist/clipboard/types.d.ts.map +1 -1
- package/dist/collapse/index.d.ts.map +1 -1
- package/dist/collapse/index.js +3 -3
- package/dist/collapse/types.d.ts +2 -35
- package/dist/collapse/types.d.ts.map +1 -1
- package/dist/command/index.d.ts +39 -66
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +3 -3
- package/dist/command/types.d.ts +2 -2
- package/dist/command/types.d.ts.map +1 -1
- package/dist/context-menu/index.d.ts +1 -45
- package/dist/context-menu/index.d.ts.map +1 -1
- package/dist/context-menu/index.js +4 -3
- package/dist/context-menu/types.d.ts +9 -63
- package/dist/context-menu/types.d.ts.map +1 -1
- package/dist/date-picker/index.d.ts.map +1 -1
- package/dist/date-picker/index.js +4 -4
- package/dist/date-picker/types.d.ts +2 -2
- package/dist/date-picker/types.d.ts.map +1 -1
- package/dist/descriptions/index.d.ts.map +1 -1
- package/dist/descriptions/index.js +2 -2
- package/dist/divider/index.d.ts.map +1 -1
- package/dist/divider/index.js +3 -2
- package/dist/divider/types.d.ts +0 -12
- package/dist/divider/types.d.ts.map +1 -1
- package/dist/drawer/index.d.ts +4 -1
- package/dist/drawer/index.d.ts.map +1 -1
- package/dist/drawer/index.js +2 -2
- package/dist/drawer/types.d.ts +2 -145
- package/dist/drawer/types.d.ts.map +1 -1
- package/dist/dropdown/index.d.ts.map +1 -1
- package/dist/dropdown/index.js +6 -5
- package/dist/dropdown/types.d.ts +2 -71
- package/dist/dropdown/types.d.ts.map +1 -1
- package/dist/empty/index.d.ts.map +1 -1
- package/dist/empty/index.js +2 -2
- package/dist/empty/types.d.ts +3 -40
- package/dist/empty/types.d.ts.map +1 -1
- package/dist/fetching-overlay/index.d.ts.map +1 -1
- package/dist/fetching-overlay/index.js +4 -4
- package/dist/float-input/index.d.ts.map +1 -1
- package/dist/float-input/index.js +4 -4
- package/dist/float-input/types.d.ts +5 -10
- package/dist/float-input/types.d.ts.map +1 -1
- package/dist/grid/index.d.ts +1 -1
- package/dist/grid/index.d.ts.map +1 -1
- package/dist/grid/index.js +2 -2
- package/dist/grid/types.d.ts +1 -9
- package/dist/grid/types.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useMenuNavigation.d.ts +18 -0
- package/dist/hooks/useMenuNavigation.d.ts.map +1 -0
- package/dist/image/index.d.ts.map +1 -1
- package/dist/image/index.js +2 -2
- package/dist/image/types.d.ts +2 -34
- package/dist/image/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -67
- package/dist/index.js.map +1 -1
- package/dist/input/index.d.ts.map +1 -1
- package/dist/input/index.js +4 -4
- package/dist/input/types.d.ts +9 -4
- package/dist/input/types.d.ts.map +1 -1
- package/dist/input-group/index.d.ts.map +1 -1
- package/dist/input-group/index.js +2 -2
- package/dist/input-group/types.d.ts +7 -19
- package/dist/input-group/types.d.ts.map +1 -1
- package/dist/input-otp/index.d.ts.map +1 -1
- package/dist/input-otp/index.js +2 -2
- package/dist/input-otp/types.d.ts +3 -81
- package/dist/input-otp/types.d.ts.map +1 -1
- package/dist/input-password/index.d.ts.map +1 -1
- package/dist/input-password/index.js +5 -5
- package/dist/input-password/types.d.ts +0 -6
- package/dist/input-password/types.d.ts.map +1 -1
- package/dist/kbd/index.d.ts.map +1 -1
- package/dist/kbd/index.js +3 -3
- package/dist/kbd/types.d.ts +2 -17
- package/dist/kbd/types.d.ts.map +1 -1
- package/dist/link/index.d.ts +1 -1
- package/dist/link/index.d.ts.map +1 -1
- package/dist/link/index.js +2 -2
- package/dist/menubar/index.d.ts.map +1 -1
- package/dist/menubar/index.js +5 -4
- package/dist/modal/index.d.ts.map +1 -1
- package/dist/modal/index.js +2 -2
- package/dist/modal/types.d.ts +2 -44
- package/dist/modal/types.d.ts.map +1 -1
- package/dist/multi-select/index.d.ts.map +1 -1
- package/dist/multi-select/index.js +7 -6
- package/dist/multi-select/types.d.ts +2 -34
- package/dist/multi-select/types.d.ts.map +1 -1
- package/dist/navigation-menu/index.js +2 -2
- package/dist/notification/index.d.ts.map +1 -1
- package/dist/notification/index.js +3 -3
- package/dist/notification/types.d.ts +2 -62
- package/dist/notification/types.d.ts.map +1 -1
- package/dist/number-input/index.d.ts.map +1 -1
- package/dist/number-input/index.js +5 -5
- package/dist/number-input/types.d.ts +5 -2
- package/dist/number-input/types.d.ts.map +1 -1
- package/dist/pagination/index.d.ts.map +1 -1
- package/dist/pagination/index.js +4 -3
- package/dist/pagination/types.d.ts +3 -53
- package/dist/pagination/types.d.ts.map +1 -1
- package/dist/popover/index.d.ts +1 -1
- package/dist/popover/index.d.ts.map +1 -1
- package/dist/popover/index.js +3 -3
- package/dist/popover/types.d.ts +3 -17
- package/dist/popover/types.d.ts.map +1 -1
- package/dist/progress/index.d.ts.map +1 -1
- package/dist/progress/index.js +3 -2
- package/dist/progress/styles.d.ts +4 -5
- package/dist/progress/styles.d.ts.map +1 -1
- package/dist/progress/types.d.ts +2 -44
- package/dist/progress/types.d.ts.map +1 -1
- package/dist/radio/index.d.ts.map +1 -1
- package/dist/radio/index.js +3 -3
- package/dist/radio/types.d.ts +2 -2
- package/dist/radio/types.d.ts.map +1 -1
- package/dist/radio-group/index.d.ts.map +1 -1
- package/dist/radio-group/index.js +2 -2
- package/dist/radio-group/types.d.ts +0 -24
- package/dist/radio-group/types.d.ts.map +1 -1
- package/dist/rating/index.d.ts.map +1 -1
- package/dist/rating/index.js +2 -2
- package/dist/rating/types.d.ts +2 -2
- package/dist/rating/types.d.ts.map +1 -1
- package/dist/scroll-area/index.d.ts.map +1 -1
- package/dist/scroll-area/index.js +2 -2
- package/dist/select/index.d.ts.map +1 -1
- package/dist/select/index.js +7 -6
- package/dist/select/types.d.ts +8 -3
- package/dist/select/types.d.ts.map +1 -1
- package/dist/shared/useSelectBase.d.ts +4 -2
- package/dist/shared/useSelectBase.d.ts.map +1 -1
- package/dist/skeleton/index.d.ts.map +1 -1
- package/dist/skeleton/index.js +3 -3
- package/dist/skeleton/types.d.ts +1 -1
- package/dist/skeleton/types.d.ts.map +1 -1
- package/dist/slider/index.d.ts.map +1 -1
- package/dist/slider/index.js +3 -2
- package/dist/slider/types.d.ts +2 -36
- package/dist/slider/types.d.ts.map +1 -1
- package/dist/spinner/index.d.ts +2 -1
- package/dist/spinner/index.d.ts.map +1 -1
- package/dist/spinner/index.js +3 -3
- package/dist/spinner/types.d.ts +1 -1
- package/dist/spinner/types.d.ts.map +1 -1
- package/dist/stepper/index.d.ts.map +1 -1
- package/dist/stepper/index.js +3 -2
- package/dist/stepper/types.d.ts +3 -2
- package/dist/stepper/types.d.ts.map +1 -1
- package/dist/switch/index.d.ts.map +1 -1
- package/dist/switch/index.js +3 -3
- package/dist/switch/types.d.ts +2 -31
- package/dist/switch/types.d.ts.map +1 -1
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +11 -11
- package/dist/table/types.d.ts +2 -2
- package/dist/table/types.d.ts.map +1 -1
- package/dist/tabs/index.d.ts.map +1 -1
- package/dist/tabs/index.js +3 -3
- package/dist/tabs/types.d.ts +3 -53
- package/dist/tabs/types.d.ts.map +1 -1
- package/dist/tag/index.d.ts +1 -1
- package/dist/tag/index.d.ts.map +1 -1
- package/dist/tag/index.js +3 -3
- package/dist/tag/types.d.ts +1 -1
- package/dist/tag/types.d.ts.map +1 -1
- package/dist/textarea/index.d.ts.map +1 -1
- package/dist/textarea/index.js +2 -2
- package/dist/textarea/types.d.ts +3 -54
- package/dist/textarea/types.d.ts.map +1 -1
- package/dist/theme/types.d.ts +0 -12
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/timeline/index.d.ts.map +1 -1
- package/dist/timeline/index.js +2 -2
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toast/index.js +3 -3
- package/dist/toast/types.d.ts +0 -6
- package/dist/toast/types.d.ts.map +1 -1
- package/dist/toggle/index.d.ts.map +1 -1
- package/dist/toggle/index.js +4 -3
- package/dist/toggle/types.d.ts +3 -26
- package/dist/toggle/types.d.ts.map +1 -1
- package/dist/toggle-group/index.d.ts.map +1 -1
- package/dist/toggle-group/index.js +4 -3
- package/dist/toggle-group/types.d.ts +3 -44
- package/dist/toggle-group/types.d.ts.map +1 -1
- package/dist/tooltip/index.d.ts.map +1 -1
- package/dist/tooltip/index.js +3 -3
- package/dist/tooltip/types.d.ts +2 -44
- package/dist/tooltip/types.d.ts.map +1 -1
- package/dist/transfer/index.d.ts.map +1 -1
- package/dist/transfer/index.js +4 -4
- package/dist/transfer/types.d.ts +0 -20
- package/dist/transfer/types.d.ts.map +1 -1
- package/dist/transfer/utils.d.ts.map +1 -1
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +2 -2
- package/dist/tree/types.d.ts +2 -73
- package/dist/tree/types.d.ts.map +1 -1
- package/dist/tree-select/index.d.ts.map +1 -1
- package/dist/tree-select/index.js +5 -5
- package/dist/tree-select/types.d.ts +3 -91
- package/dist/tree-select/types.d.ts.map +1 -1
- package/dist/types.d.ts +1 -35
- package/dist/types.d.ts.map +1 -1
- package/dist/upload/index.d.ts.map +1 -1
- package/dist/upload/index.js +3 -3
- package/dist/upload/types.d.ts +5 -32
- package/dist/upload/types.d.ts.map +1 -1
- package/dist/upload/utils.d.ts +1 -0
- package/dist/upload/utils.d.ts.map +1 -1
- package/dist/utils.d.ts +0 -39
- package/dist/utils.d.ts.map +1 -1
- package/dist/variants.d.ts +3 -314
- package/dist/variants.d.ts.map +1 -1
- package/package.json +1 -1
- package/styles/global.css +305 -979
- package/dist/chunk-2PNLIQYM.js.map +0 -1
- package/dist/chunk-2TLOWZE4.js.map +0 -1
- package/dist/chunk-2WZVD7P3.js.map +0 -1
- package/dist/chunk-3BIV3QE2.js.map +0 -1
- package/dist/chunk-3BZE6BBJ.js.map +0 -1
- package/dist/chunk-3PWILVOE.js.map +0 -1
- package/dist/chunk-4FFVNUTK.js.map +0 -1
- package/dist/chunk-64NHVOZS.js.map +0 -1
- package/dist/chunk-674JC24S.js.map +0 -1
- package/dist/chunk-6BAP6QUT.js +0 -72
- package/dist/chunk-6BAP6QUT.js.map +0 -1
- package/dist/chunk-6G3BMY4N.js.map +0 -1
- package/dist/chunk-6HGUDHHE.js.map +0 -1
- package/dist/chunk-6JGNJI5T.js.map +0 -1
- package/dist/chunk-6LYRMQOI.js.map +0 -1
- package/dist/chunk-6YOOKE6C.js +0 -138
- package/dist/chunk-6YOOKE6C.js.map +0 -1
- package/dist/chunk-764UKE6X.js.map +0 -1
- package/dist/chunk-7UCNBMCV.js.map +0 -1
- package/dist/chunk-BVO2BNFG.js.map +0 -1
- package/dist/chunk-C5IGZLIT.js.map +0 -1
- package/dist/chunk-CN74CNAN.js.map +0 -1
- package/dist/chunk-D4SUSZDN.js.map +0 -1
- package/dist/chunk-DUIL5BYS.js.map +0 -1
- package/dist/chunk-EHWXPH76.js.map +0 -1
- package/dist/chunk-ERRZ2CSG.js.map +0 -1
- package/dist/chunk-FZSCLZF6.js.map +0 -1
- package/dist/chunk-G6NVGBYZ.js.map +0 -1
- package/dist/chunk-GJPZOMFE.js.map +0 -1
- package/dist/chunk-GOLARX5K.js.map +0 -1
- package/dist/chunk-GVVP5TZM.js.map +0 -1
- package/dist/chunk-H6G4BUPA.js.map +0 -1
- package/dist/chunk-HCOTO5WX.js.map +0 -1
- package/dist/chunk-HECAAILV.js.map +0 -1
- package/dist/chunk-HK3NJMSY.js +0 -383
- package/dist/chunk-HK3NJMSY.js.map +0 -1
- package/dist/chunk-HUXODBIO.js.map +0 -1
- package/dist/chunk-I32ZQUYY.js.map +0 -1
- package/dist/chunk-JWTWPZ32.js.map +0 -1
- package/dist/chunk-KH577UDI.js.map +0 -1
- package/dist/chunk-KJTMZJ7V.js.map +0 -1
- package/dist/chunk-L5UYN5LX.js.map +0 -1
- package/dist/chunk-LOYLJRCF.js.map +0 -1
- package/dist/chunk-LX4FDH4J.js.map +0 -1
- package/dist/chunk-N2WHJ3FI.js.map +0 -1
- package/dist/chunk-NGYLRX6F.js.map +0 -1
- package/dist/chunk-O3V3BTIJ.js.map +0 -1
- package/dist/chunk-OLTQAMV2.js.map +0 -1
- package/dist/chunk-ON2CMF6J.js.map +0 -1
- package/dist/chunk-ONGJXAYQ.js.map +0 -1
- package/dist/chunk-OQFYIKWR.js.map +0 -1
- package/dist/chunk-PMA4VCAH.js.map +0 -1
- package/dist/chunk-POLVJ36Y.js.map +0 -1
- package/dist/chunk-POXI7JJ4.js +0 -351
- package/dist/chunk-POXI7JJ4.js.map +0 -1
- package/dist/chunk-R3TLU26W.js.map +0 -1
- package/dist/chunk-RFHTC6AH.js.map +0 -1
- package/dist/chunk-ROA7BYGB.js.map +0 -1
- package/dist/chunk-SGRACNBP.js.map +0 -1
- package/dist/chunk-TLNHWOQQ.js.map +0 -1
- package/dist/chunk-UTWQ2FZK.js.map +0 -1
- package/dist/chunk-VOODO2ZE.js.map +0 -1
- package/dist/chunk-WRSG7WU5.js.map +0 -1
- package/dist/chunk-X3YNHX77.js.map +0 -1
- package/dist/chunk-Y4XAXZHB.js.map +0 -1
- package/dist/chunk-YJOLLSHH.js.map +0 -1
- package/dist/chunk-YS5AIY4A.js.map +0 -1
- package/dist/chunk-YXLIGJTN.js.map +0 -1
- package/dist/chunk-ZIYA7TGX.js.map +0 -1
- package/dist/chunk-ZJNGZCRB.js.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Popover, PopoverTrigger, PopoverContent } from './chunk-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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,
|
|
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
|
|
145
|
-
(
|
|
146
|
-
if (
|
|
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,
|
|
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:
|
|
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:
|
|
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: () =>
|
|
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-
|
|
337
|
-
//# sourceMappingURL=chunk-
|
|
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 {
|
|
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
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
|
93
|
-
default
|
|
94
|
-
|
|
95
|
-
|
|
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
|
|
135
|
-
|
|
136
|
-
|
|
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
|
-
|
|
216
|
-
|
|
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
|
-
[
|
|
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,
|
|
125
|
+
[disabled, updateValue, getValue]
|
|
234
126
|
);
|
|
235
127
|
const [isDraggingState, setIsDraggingState] = useState(false);
|
|
236
|
-
const handlePointerDown = (
|
|
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
|
-
|
|
157
|
+
const currentValue = valueRef.current;
|
|
158
|
+
if (range && Array.isArray(currentValue)) {
|
|
265
159
|
let closestThumbIndex = 0;
|
|
266
|
-
let minDistance = Math.abs(newValue - (
|
|
267
|
-
for (let i = 1; i <
|
|
268
|
-
const distance = Math.abs(newValue - (
|
|
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 = [...
|
|
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 = (
|
|
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
|
-
|
|
302
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
405
|
-
onKeyDown: handleThumbKeyDown
|
|
406
|
-
children:
|
|
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-
|
|
440
|
-
//# sourceMappingURL=chunk-
|
|
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":"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","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"]}
|