@mdigital_ui/ui 0.4.2 → 0.4.4
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/README.md +45 -5
- package/dist/accordion/index.d.ts.map +1 -1
- package/dist/accordion/index.js +3 -3
- package/dist/accordion/types.d.ts +2 -42
- package/dist/accordion/types.d.ts.map +1 -1
- package/dist/alert/index.d.ts +6 -0
- package/dist/alert/index.d.ts.map +1 -0
- package/dist/alert/index.js +5 -0
- package/dist/alert/types.d.ts +24 -0
- package/dist/alert/types.d.ts.map +1 -0
- package/dist/anchor/index.d.ts +6 -0
- package/dist/anchor/index.d.ts.map +1 -0
- package/dist/anchor/types.d.ts +26 -0
- package/dist/anchor/types.d.ts.map +1 -0
- package/dist/autocomplete/index.d.ts +6 -0
- package/dist/autocomplete/index.d.ts.map +1 -0
- package/dist/autocomplete/types.d.ts +39 -0
- package/dist/autocomplete/types.d.ts.map +1 -0
- package/dist/avatar/index.d.ts +0 -6
- package/dist/avatar/index.d.ts.map +1 -1
- package/dist/avatar/index.js +3 -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/calendar/index.d.ts +6 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/types.d.ts +29 -0
- package/dist/calendar/types.d.ts.map +1 -0
- package/dist/card/index.d.ts +1 -41
- 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/carousel-navigation.d.ts.map +1 -1
- package/dist/carousel/index.d.ts +5 -2
- package/dist/carousel/index.d.ts.map +1 -1
- package/dist/carousel/index.js +2 -2
- package/dist/carousel/styles.d.ts +12 -0
- package/dist/carousel/styles.d.ts.map +1 -0
- package/dist/cascader/CascaderMenu.d.ts +41 -0
- package/dist/cascader/CascaderMenu.d.ts.map +1 -0
- 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-HCOTO5WX.js → chunk-253JZOYG.js} +8 -9
- package/dist/chunk-253JZOYG.js.map +1 -0
- package/dist/{chunk-FZSCLZF6.js → chunk-3D77IPKB.js} +68 -113
- package/dist/chunk-3D77IPKB.js.map +1 -0
- package/dist/{chunk-GJPZOMFE.js → chunk-3XOHSE3X.js} +71 -34
- package/dist/chunk-3XOHSE3X.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-4HKPDSA6.js +378 -0
- package/dist/chunk-4HKPDSA6.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-TLNHWOQQ.js → chunk-4ZXHLPRS.js} +53 -44
- package/dist/chunk-4ZXHLPRS.js.map +1 -0
- package/dist/{chunk-6LYRMQOI.js → chunk-5MBKTMDW.js} +21 -16
- package/dist/chunk-5MBKTMDW.js.map +1 -0
- package/dist/{chunk-CN74CNAN.js → chunk-5SEVPU6C.js} +8 -22
- package/dist/chunk-5SEVPU6C.js.map +1 -0
- package/dist/{chunk-6JGNJI5T.js → chunk-7RT65ZGV.js} +38 -26
- package/dist/chunk-7RT65ZGV.js.map +1 -0
- package/dist/{chunk-I32ZQUYY.js → chunk-A4MYCEGM.js} +15 -16
- package/dist/chunk-A4MYCEGM.js.map +1 -0
- package/dist/{chunk-KJTMZJ7V.js → chunk-ADZWWBAX.js} +76 -110
- package/dist/chunk-ADZWWBAX.js.map +1 -0
- package/dist/{chunk-YXLIGJTN.js → chunk-AFW2ORFT.js} +16 -8
- package/dist/chunk-AFW2ORFT.js.map +1 -0
- package/dist/{chunk-OLTQAMV2.js → chunk-BGMYX7L5.js} +9 -24
- package/dist/chunk-BGMYX7L5.js.map +1 -0
- package/dist/chunk-BKLJDEUX.js +857 -0
- package/dist/chunk-BKLJDEUX.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-DUIL5BYS.js → chunk-BS4PZPY6.js} +82 -53
- package/dist/chunk-BS4PZPY6.js.map +1 -0
- package/dist/{chunk-POLVJ36Y.js → chunk-C32HL4XU.js} +13 -38
- package/dist/chunk-C32HL4XU.js.map +1 -0
- package/dist/chunk-C65SCJD6.js +138 -0
- package/dist/chunk-C65SCJD6.js.map +1 -0
- package/dist/{chunk-3BZE6BBJ.js → chunk-CUXQZRDI.js} +45 -34
- package/dist/chunk-CUXQZRDI.js.map +1 -0
- package/dist/{chunk-674JC24S.js → chunk-DDZCRCTQ.js} +28 -29
- package/dist/chunk-DDZCRCTQ.js.map +1 -0
- package/dist/{chunk-64NHVOZS.js → chunk-FU5Q4WVX.js} +26 -16
- package/dist/chunk-FU5Q4WVX.js.map +1 -0
- package/dist/chunk-G6QIIWKU.js +24 -0
- package/dist/chunk-G6QIIWKU.js.map +1 -0
- package/dist/{chunk-UTWQ2FZK.js → chunk-GOBUFGGJ.js} +45 -108
- package/dist/chunk-GOBUFGGJ.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-ZJNGZCRB.js → chunk-HR5TGNOF.js} +54 -153
- package/dist/chunk-HR5TGNOF.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-LX4FDH4J.js → chunk-HSMO2BR4.js} +13 -22
- package/dist/chunk-HSMO2BR4.js.map +1 -0
- package/dist/chunk-HVHQA34X.js +534 -0
- package/dist/chunk-HVHQA34X.js.map +1 -0
- package/dist/{chunk-6G3BMY4N.js → chunk-I5AD247M.js} +80 -85
- package/dist/chunk-I5AD247M.js.map +1 -0
- package/dist/chunk-I7HJBHQU.js +99 -0
- package/dist/chunk-I7HJBHQU.js.map +1 -0
- package/dist/{chunk-3PWILVOE.js → chunk-J2WIZULN.js} +50 -50
- package/dist/chunk-J2WIZULN.js.map +1 -0
- package/dist/{chunk-VOODO2ZE.js → chunk-JFTSWOGE.js} +12 -32
- package/dist/chunk-JFTSWOGE.js.map +1 -0
- package/dist/{chunk-LOYLJRCF.js → chunk-JIXINKUJ.js} +8 -17
- package/dist/chunk-JIXINKUJ.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-LJOQ2C5W.js +81 -0
- package/dist/chunk-LJOQ2C5W.js.map +1 -0
- package/dist/chunk-LWYZCSX4.js +531 -0
- package/dist/chunk-LWYZCSX4.js.map +1 -0
- package/dist/{chunk-3BIV3QE2.js → chunk-LXHFGQOI.js} +61 -29
- package/dist/chunk-LXHFGQOI.js.map +1 -0
- package/dist/{chunk-ZIYA7TGX.js → chunk-NMP4HY6M.js} +13 -23
- package/dist/chunk-NMP4HY6M.js.map +1 -0
- package/dist/{chunk-2TLOWZE4.js → chunk-NTCAZ2LF.js} +64 -183
- package/dist/chunk-NTCAZ2LF.js.map +1 -0
- package/dist/chunk-NZHKNUGE.js +96 -0
- package/dist/chunk-NZHKNUGE.js.map +1 -0
- package/dist/{chunk-764UKE6X.js → chunk-OGB5QPNZ.js} +11 -92
- package/dist/chunk-OGB5QPNZ.js.map +1 -0
- package/dist/chunk-OJAHIPPP.js +198 -0
- package/dist/chunk-OJAHIPPP.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-HUXODBIO.js → chunk-PB5VGXS5.js} +42 -101
- package/dist/chunk-PB5VGXS5.js.map +1 -0
- package/dist/chunk-PQOIW5CM.js +27 -0
- package/dist/chunk-PQOIW5CM.js.map +1 -0
- package/dist/{chunk-BVO2BNFG.js → chunk-PRDJLQLB.js} +23 -103
- package/dist/chunk-PRDJLQLB.js.map +1 -0
- package/dist/{chunk-N2WHJ3FI.js → chunk-QEAALOJC.js} +14 -16
- package/dist/chunk-QEAALOJC.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-C5IGZLIT.js → chunk-ROQGBDET.js} +9 -23
- package/dist/chunk-ROQGBDET.js.map +1 -0
- package/dist/{chunk-Y4XAXZHB.js → chunk-RRPMZYVN.js} +9 -8
- package/dist/chunk-RRPMZYVN.js.map +1 -0
- package/dist/{chunk-D4SUSZDN.js → chunk-S6HO7HUY.js} +19 -17
- package/dist/chunk-S6HO7HUY.js.map +1 -0
- package/dist/{chunk-YS5AIY4A.js → chunk-SFP77VS3.js} +6 -5
- package/dist/chunk-SFP77VS3.js.map +1 -0
- package/dist/{chunk-RFHTC6AH.js → chunk-SJLH5ZDW.js} +16 -38
- package/dist/chunk-SJLH5ZDW.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-ON2CMF6J.js → chunk-TBKPQOXF.js} +58 -35
- package/dist/chunk-TBKPQOXF.js.map +1 -0
- package/dist/{chunk-GOLARX5K.js → chunk-TDNPACQD.js} +14 -11
- package/dist/chunk-TDNPACQD.js.map +1 -0
- package/dist/{chunk-7UCNBMCV.js → chunk-TQEMGWZ2.js} +27 -34
- package/dist/chunk-TQEMGWZ2.js.map +1 -0
- package/dist/{chunk-X3YNHX77.js → chunk-U4JPTWK6.js} +33 -34
- package/dist/chunk-U4JPTWK6.js.map +1 -0
- package/dist/{chunk-R3TLU26W.js → chunk-UFC3RGIN.js} +9 -7
- package/dist/chunk-UFC3RGIN.js.map +1 -0
- package/dist/{chunk-KH577UDI.js → chunk-W5VLFE4U.js} +11 -8
- package/dist/chunk-W5VLFE4U.js.map +1 -0
- package/dist/{chunk-G6NVGBYZ.js → chunk-WG5AYAC6.js} +27 -35
- package/dist/chunk-WG5AYAC6.js.map +1 -0
- package/dist/{chunk-YJOLLSHH.js → chunk-WQT24BGG.js} +44 -49
- package/dist/chunk-WQT24BGG.js.map +1 -0
- package/dist/{chunk-JWTWPZ32.js → chunk-X7MF3TIF.js} +15 -19
- package/dist/chunk-X7MF3TIF.js.map +1 -0
- package/dist/chunk-XAM5EKOS.js +150 -0
- package/dist/chunk-XAM5EKOS.js.map +1 -0
- package/dist/{chunk-EHWXPH76.js → chunk-XBXPY7U3.js} +9 -7
- package/dist/chunk-XBXPY7U3.js.map +1 -0
- package/dist/{chunk-5PUATOLR.js → chunk-XCK62GVU.js} +4 -4
- package/dist/chunk-XCK62GVU.js.map +1 -0
- package/dist/{chunk-ONGJXAYQ.js → chunk-XMBZBXXS.js} +9 -16
- package/dist/chunk-XMBZBXXS.js.map +1 -0
- package/dist/{chunk-H6G4BUPA.js → chunk-XOEEAMMY.js} +210 -183
- package/dist/chunk-XOEEAMMY.js.map +1 -0
- package/dist/{chunk-O3V3BTIJ.js → chunk-Z3DIBMBQ.js} +60 -107
- package/dist/chunk-Z3DIBMBQ.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 +4 -3
- package/dist/collapse/types.d.ts +2 -35
- package/dist/collapse/types.d.ts.map +1 -1
- package/dist/color-picker/index.d.ts +8 -0
- package/dist/color-picker/index.d.ts.map +1 -0
- package/dist/color-picker/types.d.ts +42 -0
- package/dist/color-picker/types.d.ts.map +1 -0
- package/dist/command/index.d.ts +39 -66
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +4 -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 +2 -46
- package/dist/context-menu/index.d.ts.map +1 -1
- package/dist/context-menu/index.js +5 -3
- package/dist/context-menu/types.d.ts +21 -63
- package/dist/context-menu/types.d.ts.map +1 -1
- package/dist/date-picker/CalendarHeader.d.ts +18 -0
- package/dist/date-picker/CalendarHeader.d.ts.map +1 -0
- package/dist/date-picker/MonthSelector.d.ts +11 -0
- package/dist/date-picker/MonthSelector.d.ts.map +1 -0
- package/dist/date-picker/PickerWrapper.d.ts +18 -0
- package/dist/date-picker/PickerWrapper.d.ts.map +1 -0
- package/dist/date-picker/RangePicker.d.ts +4 -0
- package/dist/date-picker/RangePicker.d.ts.map +1 -0
- package/dist/date-picker/TimePicker.d.ts +4 -0
- package/dist/date-picker/TimePicker.d.ts.map +1 -0
- package/dist/date-picker/YearSelector.d.ts +10 -0
- package/dist/date-picker/YearSelector.d.ts.map +1 -0
- package/dist/date-picker/index.d.ts +6 -6
- package/dist/date-picker/index.d.ts.map +1 -1
- package/dist/date-picker/index.js +4 -4
- package/dist/date-picker/shared.d.ts +3 -0
- package/dist/date-picker/shared.d.ts.map +1 -0
- package/dist/date-picker/types.d.ts +2 -2
- package/dist/date-picker/types.d.ts.map +1 -1
- package/dist/date-picker/utils.d.ts +1 -1
- package/dist/date-picker/utils.d.ts.map +1 -1
- package/dist/descriptions/index.d.ts.map +1 -1
- package/dist/descriptions/index.js +3 -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/fetching-overlay/index.d.ts.map +1 -1
- package/dist/fetching-overlay/index.js +4 -4
- package/dist/float-button/index.d.ts +9 -0
- package/dist/float-button/index.d.ts.map +1 -0
- package/dist/float-button/types.d.ts +45 -0
- package/dist/float-button/types.d.ts.map +1 -0
- 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 +30 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3030 -90
- 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 +3 -2
- package/dist/mentions/index.d.ts +6 -0
- package/dist/mentions/index.d.ts.map +1 -0
- package/dist/mentions/types.d.ts +36 -0
- package/dist/mentions/types.d.ts.map +1 -0
- package/dist/menubar/index.d.ts.map +1 -1
- package/dist/menubar/index.js +5 -4
- package/dist/modal/index.d.ts +1 -1
- package/dist/modal/index.d.ts.map +1 -1
- package/dist/modal/index.js +2 -2
- package/dist/modal/types.d.ts +7 -41
- 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 +8 -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.d.ts.map +1 -1
- package/dist/navigation-menu/index.js +2 -2
- package/dist/navigation-menu/types.d.ts +2 -0
- package/dist/navigation-menu/types.d.ts.map +1 -1
- 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 +6 -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/qr-code/index.d.ts +6 -0
- package/dist/qr-code/index.d.ts.map +1 -0
- package/dist/qr-code/types.d.ts +49 -0
- package/dist/qr-code/types.d.ts.map +1 -0
- 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 +3 -2
- package/dist/rating/types.d.ts +2 -2
- package/dist/rating/types.d.ts.map +1 -1
- package/dist/resizable/index.d.ts +7 -0
- package/dist/resizable/index.d.ts.map +1 -0
- package/dist/resizable/types.d.ts +8 -0
- package/dist/resizable/types.d.ts.map +1 -0
- package/dist/result/index.d.ts +6 -0
- package/dist/result/index.d.ts.map +1 -0
- package/dist/result/types.d.ts +22 -0
- package/dist/result/types.d.ts.map +1 -0
- 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 +8 -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 +3 -3
- 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/TableHeaderCell.d.ts.map +1 -1
- package/dist/table/index.d.ts +1 -1
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +11 -11
- package/dist/table/types.d.ts +8 -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/tags-input/index.d.ts +6 -0
- package/dist/tags-input/index.d.ts.map +1 -0
- package/dist/tags-input/types.d.ts +36 -0
- package/dist/tags-input/types.d.ts.map +1 -0
- 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/ThemeProvider.d.ts +11 -3
- package/dist/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/theme/index.js +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 +3 -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/tour/index.d.ts +6 -0
- package/dist/tour/index.d.ts.map +1 -0
- package/dist/tour/types.d.ts +45 -0
- package/dist/tour/types.d.ts.map +1 -0
- 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/typography/index.d.ts +8 -0
- package/dist/typography/index.d.ts.map +1 -0
- package/dist/typography/types.d.ts +33 -0
- package/dist/typography/types.d.ts.map +1 -0
- package/dist/upload/index.d.ts.map +1 -1
- package/dist/upload/index.js +4 -3
- package/dist/upload/types.d.ts +5 -32
- package/dist/upload/types.d.ts.map +1 -1
- package/dist/upload/utils.d.ts +2 -1
- 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/dist/watermark/index.d.ts +6 -0
- package/dist/watermark/index.d.ts.map +1 -0
- package/dist/watermark/types.d.ts +24 -0
- package/dist/watermark/types.d.ts.map +1 -0
- package/package.json +5 -2
- package/styles/global.css +575 -2012
- package/styles/themes/dark.css +15 -5
- package/styles/themes/light.css +20 -2
- package/styles/themes/presets/corporate.css +2 -0
- package/styles/themes/presets/minimal.css +2 -0
- package/styles/themes/presets/vibrant.css +2 -0
- package/dist/chunk-2PNLIQYM.js.map +0 -1
- package/dist/chunk-2TLOWZE4.js.map +0 -1
- package/dist/chunk-2WZVD7P3.js +0 -145
- 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-5PUATOLR.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-BPRCBPVJ.js +0 -253
- package/dist/chunk-BPRCBPVJ.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 +0 -192
- package/dist/chunk-ERRZ2CSG.js.map +0 -1
- package/dist/chunk-EZGK67T6.js +0 -383
- package/dist/chunk-EZGK67T6.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 +0 -506
- 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-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 +0 -787
- 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 +0 -1264
- package/dist/chunk-OQFYIKWR.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
- package/dist/empty/index.d.ts +0 -6
- package/dist/empty/index.d.ts.map +0 -1
- package/dist/empty/index.js +0 -4
- package/dist/empty/types.d.ts +0 -62
- package/dist/empty/types.d.ts.map +0 -1
- package/dist/styles/tokens.d.ts +0 -428
- package/dist/styles/tokens.d.ts.map +0 -1
- /package/dist/{empty → alert}/index.js.map +0 -0
|
@@ -1,68 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { cn } from './chunk-
|
|
1
|
+
import { colorVars } from './chunk-G6QIIWKU.js';
|
|
2
|
+
import { cn } from './chunk-RAS6HUEI.js';
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
|
-
import React, { useState, useRef, useId, useLayoutEffect, useEffect
|
|
4
|
+
import React, { useState, useRef, useId, useCallback, useLayoutEffect, useEffect } from 'react';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
8
|
-
var
|
|
9
|
-
default: "text-text-primary",
|
|
10
|
-
primary: "text-white",
|
|
11
|
-
secondary: "text-white",
|
|
12
|
-
accent: "text-white",
|
|
13
|
-
success: "text-white",
|
|
14
|
-
error: "text-white",
|
|
15
|
-
warning: "text-white",
|
|
16
|
-
info: "text-white"
|
|
17
|
-
};
|
|
18
|
-
var defaultActiveClasses = {
|
|
19
|
-
default: "text-text-primary",
|
|
20
|
-
primary: "text-primary",
|
|
21
|
-
secondary: "text-secondary",
|
|
22
|
-
accent: "text-accent",
|
|
23
|
-
success: "text-success",
|
|
24
|
-
error: "text-error",
|
|
25
|
-
warning: "text-warning",
|
|
26
|
-
info: "text-info"
|
|
27
|
-
};
|
|
28
|
-
var softActiveClasses = {
|
|
29
|
-
default: "text-text-primary",
|
|
30
|
-
primary: "text-primary",
|
|
31
|
-
secondary: "text-secondary",
|
|
32
|
-
accent: "text-accent",
|
|
33
|
-
success: "text-success",
|
|
34
|
-
error: "text-error",
|
|
35
|
-
warning: "text-warning",
|
|
36
|
-
info: "text-info"
|
|
37
|
-
};
|
|
38
|
-
var pillIndicatorClasses = {
|
|
39
|
-
default: "bg-background",
|
|
40
|
-
primary: "bg-primary",
|
|
41
|
-
secondary: "bg-secondary",
|
|
42
|
-
accent: "bg-accent",
|
|
43
|
-
success: "bg-success",
|
|
44
|
-
error: "bg-error",
|
|
45
|
-
warning: "bg-warning",
|
|
46
|
-
info: "bg-info"
|
|
47
|
-
};
|
|
48
|
-
var underlineIndicatorClasses = {
|
|
49
|
-
default: "bg-border",
|
|
50
|
-
primary: "bg-primary",
|
|
51
|
-
secondary: "bg-secondary",
|
|
52
|
-
accent: "bg-accent",
|
|
53
|
-
success: "bg-success",
|
|
54
|
-
error: "bg-error",
|
|
55
|
-
warning: "bg-warning",
|
|
56
|
-
info: "bg-info"
|
|
57
|
-
};
|
|
58
|
-
var createActiveTabVariants = (variant, classMap) => {
|
|
59
|
-
return componentColors.map((color) => ({
|
|
60
|
-
variant,
|
|
61
|
-
color,
|
|
62
|
-
active: true,
|
|
63
|
-
className: classMap[color] || classMap.default
|
|
64
|
-
}));
|
|
65
|
-
};
|
|
8
|
+
var componentColors = ["default", "primary", "secondary", "accent", "success", "error", "warning", "info"];
|
|
66
9
|
var tabListVariants = cva("flex relative", {
|
|
67
10
|
variants: {
|
|
68
11
|
size: {
|
|
@@ -121,14 +64,32 @@ var tabItemVariants = cva(
|
|
|
121
64
|
active: false,
|
|
122
65
|
className: "text-text-secondary hover:text-text-primary"
|
|
123
66
|
})),
|
|
124
|
-
// Active pill variant
|
|
125
|
-
...
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
67
|
+
// Active pill variant - uses foreground text
|
|
68
|
+
...componentColors.map((color) => ({
|
|
69
|
+
variant: "pill",
|
|
70
|
+
color,
|
|
71
|
+
active: true,
|
|
72
|
+
className: "text-slot-fg"
|
|
73
|
+
})),
|
|
74
|
+
// Active default/solid/soft variants - uses accent text
|
|
75
|
+
...componentColors.map((color) => ({
|
|
76
|
+
variant: "default",
|
|
77
|
+
color,
|
|
78
|
+
active: true,
|
|
79
|
+
className: "text-slot"
|
|
80
|
+
})),
|
|
81
|
+
...componentColors.map((color) => ({
|
|
82
|
+
variant: "solid",
|
|
83
|
+
color,
|
|
84
|
+
active: true,
|
|
85
|
+
className: "text-slot"
|
|
86
|
+
})),
|
|
87
|
+
...componentColors.map((color) => ({
|
|
88
|
+
variant: "soft",
|
|
89
|
+
color,
|
|
90
|
+
active: true,
|
|
91
|
+
className: "text-slot"
|
|
92
|
+
})),
|
|
132
93
|
// Inactive pill variant hover
|
|
133
94
|
...componentColors.map((color) => ({
|
|
134
95
|
variant: "pill",
|
|
@@ -168,31 +129,67 @@ var Tabs = React.memo(
|
|
|
168
129
|
const [hasInitialized, setHasInitialized] = useState(false);
|
|
169
130
|
const uniqueId = useId();
|
|
170
131
|
const activeKey = controlledActiveKey !== void 0 ? controlledActiveKey : internalActiveKey;
|
|
171
|
-
|
|
132
|
+
const updateIndicatorPosition = useCallback(() => {
|
|
172
133
|
const activeTab = tabRefs.current.get(activeKey);
|
|
173
134
|
const tabList = tabListRef.current;
|
|
174
135
|
if (!activeTab || !tabList) return;
|
|
175
|
-
const
|
|
176
|
-
const
|
|
136
|
+
const left = activeTab.offsetLeft;
|
|
137
|
+
const width = activeTab.offsetWidth;
|
|
138
|
+
const height = activeTab.offsetHeight;
|
|
177
139
|
const isPill2 = variant === "pill";
|
|
178
140
|
if (isPill2) {
|
|
141
|
+
let paddingLeft = 0;
|
|
142
|
+
if (typeof window !== "undefined") {
|
|
143
|
+
const computedStyle = window.getComputedStyle(tabList);
|
|
144
|
+
paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;
|
|
145
|
+
}
|
|
179
146
|
setIndicatorStyle({
|
|
180
|
-
transform: `translateX(${
|
|
181
|
-
width: `${
|
|
182
|
-
height: `${
|
|
147
|
+
transform: `translateX(${left - paddingLeft}px)`,
|
|
148
|
+
width: `${width}px`,
|
|
149
|
+
height: `${height}px`,
|
|
183
150
|
opacity: 1
|
|
184
151
|
});
|
|
185
152
|
} else {
|
|
186
153
|
setIndicatorStyle({
|
|
187
|
-
transform: `translateX(${
|
|
188
|
-
width: `${
|
|
154
|
+
transform: `translateX(${left}px)`,
|
|
155
|
+
width: `${width}px`,
|
|
189
156
|
opacity: 1
|
|
190
157
|
});
|
|
191
158
|
}
|
|
192
159
|
if (!hasInitialized) {
|
|
193
160
|
requestAnimationFrame(() => setHasInitialized(true));
|
|
194
161
|
}
|
|
195
|
-
}, [activeKey,
|
|
162
|
+
}, [activeKey, variant, hasInitialized]);
|
|
163
|
+
useIsomorphicLayoutEffect(() => {
|
|
164
|
+
updateIndicatorPosition();
|
|
165
|
+
}, [updateIndicatorPosition, items, size]);
|
|
166
|
+
useEffect(() => {
|
|
167
|
+
if (typeof window === "undefined") return;
|
|
168
|
+
const handleResize = () => {
|
|
169
|
+
requestAnimationFrame(() => {
|
|
170
|
+
updateIndicatorPosition();
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
window.addEventListener("resize", handleResize);
|
|
174
|
+
window.addEventListener("orientationchange", handleResize);
|
|
175
|
+
return () => {
|
|
176
|
+
window.removeEventListener("resize", handleResize);
|
|
177
|
+
window.removeEventListener("orientationchange", handleResize);
|
|
178
|
+
};
|
|
179
|
+
}, [updateIndicatorPosition]);
|
|
180
|
+
useEffect(() => {
|
|
181
|
+
const tabList = tabListRef.current;
|
|
182
|
+
if (!tabList || typeof ResizeObserver === "undefined") return;
|
|
183
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
184
|
+
requestAnimationFrame(() => {
|
|
185
|
+
updateIndicatorPosition();
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
resizeObserver.observe(tabList);
|
|
189
|
+
return () => {
|
|
190
|
+
resizeObserver.disconnect();
|
|
191
|
+
};
|
|
192
|
+
}, [updateIndicatorPosition]);
|
|
196
193
|
const handleTabClick = useCallback(
|
|
197
194
|
(key, disabled) => {
|
|
198
195
|
if (disabled) return;
|
|
@@ -241,12 +238,11 @@ var Tabs = React.memo(
|
|
|
241
238
|
);
|
|
242
239
|
const activeItem = items.find((item) => item.key === activeKey);
|
|
243
240
|
const isPill = variant === "pill";
|
|
244
|
-
const indicatorColorClass = isPill ? pillIndicatorClasses[color] || pillIndicatorClasses.default : underlineIndicatorClasses[color] || underlineIndicatorClasses.default;
|
|
245
241
|
return /* @__PURE__ */ jsxs(
|
|
246
242
|
"div",
|
|
247
243
|
{
|
|
248
244
|
"data-slot": "tabs_root",
|
|
249
|
-
className: cn("tabs_root w-full", classNames?.root, className),
|
|
245
|
+
className: cn("tabs_root w-full", colorVars[color], classNames?.root, className),
|
|
250
246
|
children: [
|
|
251
247
|
/* @__PURE__ */ jsxs(
|
|
252
248
|
"div",
|
|
@@ -256,7 +252,7 @@ var Tabs = React.memo(
|
|
|
256
252
|
"aria-orientation": "horizontal",
|
|
257
253
|
"data-slot": "tabs_list",
|
|
258
254
|
className: cn(
|
|
259
|
-
"tabs_list",
|
|
255
|
+
"tabs_list overflow-x-auto",
|
|
260
256
|
tabListVariants({ size, variant }),
|
|
261
257
|
variant !== "pill" && "border-border",
|
|
262
258
|
classNames?.list
|
|
@@ -268,7 +264,7 @@ var Tabs = React.memo(
|
|
|
268
264
|
"data-slot": "tabs_indicator",
|
|
269
265
|
className: cn(
|
|
270
266
|
"tabs_indicator absolute pointer-events-none",
|
|
271
|
-
isPill ? cn("rounded-md shadow-sm top-0.5",
|
|
267
|
+
isPill ? cn("rounded-md shadow-sm top-0.5", "bg-slot") : cn("bottom-0 h-0.5 rounded-full", "bg-slot"),
|
|
272
268
|
hasInitialized ? "transition-[transform,width] duration-300 ease-out" : "",
|
|
273
269
|
classNames?.indicator
|
|
274
270
|
),
|
|
@@ -326,7 +322,6 @@ var Tabs = React.memo(
|
|
|
326
322
|
id: `panel-${uniqueId}-${activeItem.key}`,
|
|
327
323
|
role: "tabpanel",
|
|
328
324
|
"aria-labelledby": `tab-${uniqueId}-${activeItem.key}`,
|
|
329
|
-
tabIndex: 0,
|
|
330
325
|
"data-slot": "tabs_panel",
|
|
331
326
|
className: cn(
|
|
332
327
|
"tabs_panel",
|
|
@@ -345,5 +340,5 @@ Tabs.displayName = "Tabs";
|
|
|
345
340
|
var tabs_default = Tabs;
|
|
346
341
|
|
|
347
342
|
export { tabs_default };
|
|
348
|
-
//# sourceMappingURL=chunk-
|
|
349
|
-
//# sourceMappingURL=chunk-
|
|
343
|
+
//# sourceMappingURL=chunk-I5AD247M.js.map
|
|
344
|
+
//# sourceMappingURL=chunk-I5AD247M.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tabs/index.tsx"],"names":["isPill"],"mappings":"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","file":"chunk-I5AD247M.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport React, {\n useState,\n useId,\n useCallback,\n useRef,\n useLayoutEffect,\n useEffect,\n} from \"react\";\n\nimport { cn } from \"../utils\";\nimport { colorVars } from \"../variants\";\nimport type { TabsColor, TabsProps } from \"./types\";\n\n// Use useLayoutEffect on client, useEffect on server (SSR safe)\nconst useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\n// Component colors for compound variants\nconst componentColors = ['default', 'primary', 'secondary', 'accent', 'success', 'error', 'warning', 'info'] as const;\n\nconst tabListVariants = cva(\"flex relative\", {\n variants: {\n size: {\n xs: \"gap-(--tabs-gap-xs)\",\n sm: \"gap-(--tabs-gap-sm)\",\n md: \"gap-(--tabs-gap-md)\",\n lg: \"gap-(--tabs-gap-lg)\",\n },\n variant: {\n default: \"border-b\",\n solid: \"border-b\",\n soft: \"border-b\",\n pill: \"bg-surface p-0.5 rounded-lg border border-border gap-0 w-fit\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n});\n\nconst tabItemVariants = cva(\n \"relative z-[1] font-medium transition-colors duration-200 ease-out cursor-pointer flex items-center gap-2\",\n {\n variants: {\n size: {\n xs: \"text-xs px-(--tabs-padding-x-xs) py-(--tabs-padding-y-xs)\",\n sm: \"text-sm px-(--tabs-padding-x-sm) py-(--tabs-padding-y-sm)\",\n md: \"text-base px-(--tabs-padding-x-md) py-(--tabs-padding-y-md)\",\n lg: \"text-lg px-(--tabs-padding-x-lg) py-(--tabs-padding-y-lg)\",\n },\n variant: {\n default: \"pb-2 -mb-px\",\n solid: \"pb-2 -mb-px\",\n soft: \"pb-2 -mb-px\",\n pill: \"rounded-md\",\n },\n color: {\n default: \"\",\n primary: \"\",\n secondary: \"\",\n accent: \"\",\n success: \"\",\n error: \"\",\n warning: \"\",\n info: \"\",\n },\n active: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n // Inactive states (all variants)\n ...componentColors.map((color) => ({\n color: color as TabsColor,\n active: false as const,\n className: \"text-text-secondary hover:text-text-primary\",\n })),\n\n // Active pill variant - uses foreground text\n ...componentColors.map((color) => ({\n variant: \"pill\" as const,\n color: color as TabsColor,\n active: true as const,\n className: \"text-slot-fg\",\n })),\n\n // Active default/solid/soft variants - uses accent text\n ...componentColors.map((color) => ({\n variant: \"default\" as const,\n color: color as TabsColor,\n active: true as const,\n className: \"text-slot\",\n })),\n ...componentColors.map((color) => ({\n variant: \"solid\" as const,\n color: color as TabsColor,\n active: true as const,\n className: \"text-slot\",\n })),\n ...componentColors.map((color) => ({\n variant: \"soft\" as const,\n color: color as TabsColor,\n active: true as const,\n className: \"text-slot\",\n })),\n\n // Inactive pill variant hover\n ...componentColors.map((color) => ({\n variant: \"pill\" as const,\n color: color as TabsColor,\n active: false as const,\n className: \"bg-transparent hover:bg-background/50\",\n })),\n ],\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n color: \"primary\",\n active: false,\n },\n },\n);\n\nconst Tabs = React.memo<TabsProps>(\n ({\n items,\n defaultActiveKey,\n activeKey: controlledActiveKey,\n color = \"primary\",\n size = \"md\",\n variant = \"default\",\n onChange,\n className,\n classNames,\n }) => {\n const [internalActiveKey, setInternalActiveKey] = useState(\n defaultActiveKey || items[0]?.key || \"\",\n );\n const tabListRef = useRef<HTMLDivElement>(null);\n const tabRefs = useRef<Map<string, HTMLButtonElement>>(new Map());\n const [indicatorStyle, setIndicatorStyle] = useState<React.CSSProperties>(\n {},\n );\n const [hasInitialized, setHasInitialized] = useState(false);\n\n // Generate unique IDs for accessibility\n const uniqueId = useId();\n\n const activeKey =\n controlledActiveKey !== undefined\n ? controlledActiveKey\n : internalActiveKey;\n\n // Measure and position the sliding indicator\n const updateIndicatorPosition = useCallback(() => {\n const activeTab = tabRefs.current.get(activeKey);\n const tabList = tabListRef.current;\n if (!activeTab || !tabList) return;\n\n // Use offsetLeft for parent-relative positioning (more reliable than getBoundingClientRect)\n const left = activeTab.offsetLeft;\n const width = activeTab.offsetWidth;\n const height = activeTab.offsetHeight;\n\n const isPill = variant === \"pill\";\n\n if (isPill) {\n // For pill variant, account for padding (SSR-safe guard)\n let paddingLeft = 0;\n if (typeof window !== \"undefined\") {\n const computedStyle = window.getComputedStyle(tabList);\n paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;\n }\n \n setIndicatorStyle({\n transform: `translateX(${left - paddingLeft}px)`,\n width: `${width}px`,\n height: `${height}px`,\n opacity: 1,\n });\n } else {\n setIndicatorStyle({\n transform: `translateX(${left}px)`,\n width: `${width}px`,\n opacity: 1,\n });\n }\n\n // Enable transitions after initial positioning\n if (!hasInitialized) {\n requestAnimationFrame(() => setHasInitialized(true));\n }\n }, [activeKey, variant, hasInitialized]);\n\n useIsomorphicLayoutEffect(() => {\n updateIndicatorPosition();\n }, [updateIndicatorPosition, items, size]);\n\n // Handle window resize and orientation changes (SSR-safe)\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n const handleResize = () => {\n requestAnimationFrame(() => {\n updateIndicatorPosition();\n });\n };\n\n window.addEventListener('resize', handleResize);\n window.addEventListener('orientationchange', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n window.removeEventListener('orientationchange', handleResize);\n };\n }, [updateIndicatorPosition]);\n\n // Observe tab list resize (handles mobile reflows, font size changes, etc.)\n useEffect(() => {\n const tabList = tabListRef.current;\n if (!tabList || typeof ResizeObserver === 'undefined') return;\n\n const resizeObserver = new ResizeObserver(() => {\n requestAnimationFrame(() => {\n updateIndicatorPosition();\n });\n });\n\n resizeObserver.observe(tabList);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [updateIndicatorPosition]);\n\n const handleTabClick = useCallback(\n (key: string, disabled?: boolean) => {\n if (disabled) return;\n\n if (controlledActiveKey === undefined) {\n setInternalActiveKey(key);\n }\n onChange?.(key);\n },\n [controlledActiveKey, onChange],\n );\n\n // Handle keyboard navigation (arrow keys, Home, End)\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>, currentIndex: number) => {\n const enabledIndices = items\n .map((item, i) => (!item.disabled ? i : -1))\n .filter((i): i is number => i !== -1);\n const currentEnabledIndex = enabledIndices.indexOf(currentIndex);\n\n let newIndex: number | undefined;\n\n switch (event.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n newIndex =\n enabledIndices[\n currentEnabledIndex > 0\n ? currentEnabledIndex - 1\n : enabledIndices.length - 1\n ];\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n newIndex =\n enabledIndices[\n currentEnabledIndex < enabledIndices.length - 1\n ? currentEnabledIndex + 1\n : 0\n ];\n break;\n case \"Home\":\n event.preventDefault();\n newIndex = enabledIndices[0];\n break;\n case \"End\":\n event.preventDefault();\n newIndex = enabledIndices[enabledIndices.length - 1];\n break;\n }\n\n if (newIndex !== undefined) {\n const newItem = items[newIndex];\n if (newItem) {\n handleTabClick(newItem.key);\n // Focus the new tab\n const btn = tabRefs.current.get(newItem.key);\n btn?.focus();\n }\n }\n },\n [items, handleTabClick],\n );\n\n const activeItem = items.find((item) => item.key === activeKey);\n const isPill = variant === \"pill\";\n\n return (\n <div\n data-slot=\"tabs_root\"\n className={cn(\"tabs_root w-full\", colorVars[color], classNames?.root, className)}\n >\n <div\n ref={tabListRef}\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n data-slot=\"tabs_list\"\n className={cn(\n \"tabs_list overflow-x-auto\",\n tabListVariants({ size, variant }),\n variant !== \"pill\" && \"border-border\",\n classNames?.list,\n )}\n >\n {/* Sliding indicator */}\n <span\n data-slot=\"tabs_indicator\"\n className={cn(\n \"tabs_indicator absolute pointer-events-none\",\n isPill\n ? cn(\"rounded-md shadow-sm top-0.5\", \"bg-slot\")\n : cn(\"bottom-0 h-0.5 rounded-full\", \"bg-slot\"),\n hasInitialized\n ? \"transition-[transform,width] duration-300 ease-out\"\n : \"\",\n classNames?.indicator,\n )}\n style={indicatorStyle}\n aria-hidden=\"true\"\n />\n\n {items.map((item, index) => {\n const isActive = item.key === activeKey;\n const tabId = `tab-${uniqueId}-${item.key}`;\n const panelId = `panel-${uniqueId}-${item.key}`;\n\n return (\n <button\n key={item.key}\n ref={(el) => {\n if (el) tabRefs.current.set(item.key, el);\n else tabRefs.current.delete(item.key);\n }}\n id={tabId}\n role=\"tab\"\n type=\"button\"\n aria-selected={isActive}\n aria-controls={panelId}\n tabIndex={isActive ? 0 : -1}\n data-slot=\"tabs_tab\"\n className={cn(\n \"tabs_tab\",\n tabItemVariants({\n size,\n variant,\n color,\n active: isActive,\n }),\n item.disabled && \"opacity-50 cursor-not-allowed\",\n classNames?.tab,\n isActive && classNames?.tabActive,\n )}\n onClick={() => handleTabClick(item.key, item.disabled)}\n onKeyDown={(e) => handleKeyDown(e, index)}\n disabled={item.disabled}\n >\n {item.icon && <span aria-hidden=\"true\">{item.icon}</span>}\n {item.label}\n </button>\n );\n })}\n </div>\n\n {activeItem?.content && (\n <div\n id={`panel-${uniqueId}-${activeItem.key}`}\n role=\"tabpanel\"\n aria-labelledby={`tab-${uniqueId}-${activeItem.key}`}\n data-slot=\"tabs_panel\"\n className={cn(\n \"tabs_panel\",\n \"py-4 animate-in fade-in slide-in-from-bottom-2 duration-300\",\n classNames?.panel,\n )}\n >\n {activeItem?.content}\n </div>\n )}\n </div>\n );\n },\n);\n\nTabs.displayName = \"Tabs\";\n\nexport type { TabsClassNames } from \"./types\";\nexport type * from \"./types\";\nexport default Tabs;\n"]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { useRipple, RippleContainer } from './chunk-4TEZWGX7.js';
|
|
2
|
+
import { colorVars } from './chunk-G6QIIWKU.js';
|
|
3
|
+
import { cn } from './chunk-RAS6HUEI.js';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import React, { useState } from 'react';
|
|
6
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var getToggleClasses = (color, variant, isActive) => {
|
|
9
|
+
const baseColor = colorVars[color] || colorVars.default;
|
|
10
|
+
if (!isActive) {
|
|
11
|
+
return cn(baseColor, "text-text-secondary hover:text-slot hover:bg-slot-10");
|
|
12
|
+
}
|
|
13
|
+
if (variant === "solid") {
|
|
14
|
+
return cn(baseColor, "bg-slot text-slot-fg");
|
|
15
|
+
}
|
|
16
|
+
if (variant === "soft") {
|
|
17
|
+
return cn(baseColor, "bg-slot-20 text-slot");
|
|
18
|
+
}
|
|
19
|
+
return cn(baseColor, "border-slot bg-slot-10 text-slot");
|
|
20
|
+
};
|
|
21
|
+
var singleToggleVariants = cva(
|
|
22
|
+
"inline-flex items-center gap-2 font-medium transition-colors cursor-pointer border rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
23
|
+
{
|
|
24
|
+
variants: {
|
|
25
|
+
size: {
|
|
26
|
+
xs: "text-xs px-2 py-1",
|
|
27
|
+
sm: "text-sm px-3 py-1.5",
|
|
28
|
+
md: "text-base px-4 py-2",
|
|
29
|
+
lg: "text-lg px-5 py-2.5"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
defaultVariants: {
|
|
33
|
+
size: "md"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
var Toggle = React.memo(
|
|
38
|
+
({
|
|
39
|
+
pressed: controlledPressed,
|
|
40
|
+
defaultPressed = false,
|
|
41
|
+
color = "primary",
|
|
42
|
+
size = "md",
|
|
43
|
+
variant = "default",
|
|
44
|
+
onChange,
|
|
45
|
+
disabled = false,
|
|
46
|
+
icon,
|
|
47
|
+
children,
|
|
48
|
+
"aria-label": ariaLabel,
|
|
49
|
+
className,
|
|
50
|
+
classNames,
|
|
51
|
+
ref
|
|
52
|
+
}) => {
|
|
53
|
+
const [internalPressed, setInternalPressed] = useState(defaultPressed);
|
|
54
|
+
const { ripples, onPointerDown: ripplePointerDown, onKeyDown: rippleKeyDown, onAnimationEnd: rippleAnimationEnd } = useRipple(!disabled);
|
|
55
|
+
const pressed = controlledPressed !== void 0 ? controlledPressed : internalPressed;
|
|
56
|
+
const handleClick = () => {
|
|
57
|
+
if (disabled) return;
|
|
58
|
+
const newPressed = !pressed;
|
|
59
|
+
if (controlledPressed === void 0) {
|
|
60
|
+
setInternalPressed(newPressed);
|
|
61
|
+
}
|
|
62
|
+
onChange?.(newPressed);
|
|
63
|
+
};
|
|
64
|
+
return /* @__PURE__ */ jsxs(
|
|
65
|
+
"button",
|
|
66
|
+
{
|
|
67
|
+
"data-slot": "root",
|
|
68
|
+
ref,
|
|
69
|
+
type: "button",
|
|
70
|
+
className: cn(
|
|
71
|
+
"toggle_root",
|
|
72
|
+
singleToggleVariants({ size }),
|
|
73
|
+
getToggleClasses(color, variant, pressed),
|
|
74
|
+
"border relative overflow-hidden",
|
|
75
|
+
disabled && "opacity-50 cursor-not-allowed",
|
|
76
|
+
classNames?.root,
|
|
77
|
+
className
|
|
78
|
+
),
|
|
79
|
+
onClick: handleClick,
|
|
80
|
+
onPointerDown: ripplePointerDown,
|
|
81
|
+
onKeyDown: rippleKeyDown,
|
|
82
|
+
disabled,
|
|
83
|
+
"aria-pressed": pressed,
|
|
84
|
+
"aria-label": ariaLabel,
|
|
85
|
+
children: [
|
|
86
|
+
icon,
|
|
87
|
+
children,
|
|
88
|
+
/* @__PURE__ */ jsx(RippleContainer, { ripples, onAnimationEnd: rippleAnimationEnd })
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
Toggle.displayName = "Toggle";
|
|
95
|
+
var toggle_default = Toggle;
|
|
96
|
+
|
|
97
|
+
export { toggle_default };
|
|
98
|
+
//# sourceMappingURL=chunk-I7HJBHQU.js.map
|
|
99
|
+
//# sourceMappingURL=chunk-I7HJBHQU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/toggle/index.tsx"],"names":[],"mappings":"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","file":"chunk-I7HJBHQU.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState } from 'react'\n\nimport { useRipple, RippleContainer } from '../hooks/useRipple'\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { SingleToggleProps } from './types'\n\nconst getToggleClasses = (\n color: string,\n variant: string,\n isActive: boolean,\n) => {\n const baseColor = colorVars[color as keyof typeof colorVars] || colorVars.default\n\n if (!isActive) {\n // Inactive: text-secondary with hover to accent color\n return cn(baseColor, 'text-text-secondary hover:text-slot hover:bg-slot-10')\n }\n\n // Active state\n if (variant === 'solid') {\n return cn(baseColor, 'bg-slot text-slot-fg')\n }\n if (variant === 'soft') {\n return cn(baseColor, 'bg-slot-20 text-slot')\n }\n // default variant\n return cn(baseColor, 'border-slot bg-slot-10 text-slot')\n}\n\nconst singleToggleVariants = cva(\n 'inline-flex items-center gap-2 font-medium transition-colors cursor-pointer border rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n {\n variants: {\n size: {\n xs: 'text-xs px-2 py-1',\n sm: 'text-sm px-3 py-1.5',\n md: 'text-base px-4 py-2',\n lg: 'text-lg px-5 py-2.5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst Toggle = React.memo<SingleToggleProps>(\n ({\n pressed: controlledPressed,\n defaultPressed = false,\n color = 'primary',\n size = 'md',\n variant = 'default',\n onChange,\n disabled = false,\n icon,\n children,\n 'aria-label': ariaLabel,\n className,\n classNames,\n ref,\n }) => {\n const [internalPressed, setInternalPressed] = useState(defaultPressed)\n const { ripples, onPointerDown: ripplePointerDown, onKeyDown: rippleKeyDown, onAnimationEnd: rippleAnimationEnd } = useRipple(!disabled)\n\n const pressed =\n controlledPressed !== undefined ? controlledPressed : internalPressed\n\n const handleClick = () => {\n if (disabled) return\n\n const newPressed = !pressed\n if (controlledPressed === undefined) {\n setInternalPressed(newPressed)\n }\n onChange?.(newPressed)\n }\n\n return (\n <button\n data-slot=\"root\"\n ref={ref}\n type=\"button\"\n className={cn(\n 'toggle_root',\n singleToggleVariants({ size }),\n getToggleClasses(color, variant, pressed),\n 'border relative overflow-hidden',\n disabled && 'opacity-50 cursor-not-allowed',\n classNames?.root,\n className,\n )}\n onClick={handleClick}\n onPointerDown={ripplePointerDown}\n onKeyDown={rippleKeyDown}\n disabled={disabled}\n aria-pressed={pressed}\n aria-label={ariaLabel}\n >\n {icon}\n {children}\n <RippleContainer ripples={ripples} onAnimationEnd={rippleAnimationEnd} />\n </button>\n )\n },\n)\n\nToggle.displayName = 'Toggle'\n\nexport type * from './types'\nexport default Toggle\n"]}
|
|
@@ -1,11 +1,40 @@
|
|
|
1
|
-
import { useRipple, RippleContainer } from './chunk-
|
|
2
|
-
import {
|
|
3
|
-
import { cn, iconSizes } from './chunk-
|
|
1
|
+
import { useRipple, RippleContainer } from './chunk-4TEZWGX7.js';
|
|
2
|
+
import { colorVars } from './chunk-G6QIIWKU.js';
|
|
3
|
+
import { cn, iconSizes } from './chunk-RAS6HUEI.js';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
5
5
|
import { Check, Copy } from 'lucide-react';
|
|
6
6
|
import React, { useState, useRef, useEffect } from 'react';
|
|
7
7
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
8
|
|
|
9
|
+
async function copyToClipboard(text) {
|
|
10
|
+
if (navigator.clipboard?.writeText) {
|
|
11
|
+
await navigator.clipboard.writeText(text);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (typeof ClipboardItem !== "undefined" && navigator.clipboard?.write) {
|
|
15
|
+
const blob = new Blob([text], { type: "text/plain" });
|
|
16
|
+
await navigator.clipboard.write([new ClipboardItem({ "text/plain": blob })]);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const textarea = document.createElement("textarea");
|
|
20
|
+
textarea.value = text;
|
|
21
|
+
textarea.style.cssText = "position:fixed;opacity:0;left:-9999px";
|
|
22
|
+
document.body.appendChild(textarea);
|
|
23
|
+
textarea.focus();
|
|
24
|
+
textarea.select();
|
|
25
|
+
try {
|
|
26
|
+
const selection = document.getSelection();
|
|
27
|
+
if (selection) {
|
|
28
|
+
const range = document.createRange();
|
|
29
|
+
range.selectNodeContents(textarea);
|
|
30
|
+
selection.removeAllRanges();
|
|
31
|
+
selection.addRange(range);
|
|
32
|
+
}
|
|
33
|
+
document.execCommand("copy");
|
|
34
|
+
} finally {
|
|
35
|
+
document.body.removeChild(textarea);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
9
38
|
var clipboardVariants = cva(
|
|
10
39
|
"inline-flex items-center justify-between gap-2 rounded-md font-medium transition-colors cursor-pointer border focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background relative overflow-hidden",
|
|
11
40
|
{
|
|
@@ -22,47 +51,15 @@ var clipboardVariants = cva(
|
|
|
22
51
|
}
|
|
23
52
|
}
|
|
24
53
|
);
|
|
25
|
-
var
|
|
26
|
-
default
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
default: "bg-background border-primary text-primary hover:bg-primary/10",
|
|
33
|
-
solid: "bg-primary border-primary text-background hover:bg-primary/90",
|
|
34
|
-
soft: "bg-primary/10 border-primary/30 text-primary hover:bg-primary/20"
|
|
35
|
-
},
|
|
36
|
-
secondary: {
|
|
37
|
-
default: "bg-background border-secondary text-secondary hover:bg-secondary/10",
|
|
38
|
-
solid: "bg-secondary border-secondary text-background hover:bg-secondary/90",
|
|
39
|
-
soft: "bg-secondary/10 border-secondary/30 text-secondary hover:bg-secondary/20"
|
|
40
|
-
},
|
|
41
|
-
accent: {
|
|
42
|
-
default: "bg-background border-accent text-accent hover:bg-accent/10",
|
|
43
|
-
solid: "bg-accent border-accent text-background hover:bg-accent/90",
|
|
44
|
-
soft: "bg-accent/10 border-accent/30 text-accent hover:bg-accent/20"
|
|
45
|
-
},
|
|
46
|
-
success: {
|
|
47
|
-
default: "bg-background border-success text-success hover:bg-success/10",
|
|
48
|
-
solid: "bg-success border-success text-background hover:bg-success/90",
|
|
49
|
-
soft: "bg-success/10 border-success/30 text-success hover:bg-success/20"
|
|
50
|
-
},
|
|
51
|
-
error: {
|
|
52
|
-
default: "bg-background border-error text-error hover:bg-error/10",
|
|
53
|
-
solid: "bg-error border-error text-background hover:bg-error/90",
|
|
54
|
-
soft: "bg-error/10 border-error/30 text-error hover:bg-error/20"
|
|
55
|
-
},
|
|
56
|
-
warning: {
|
|
57
|
-
default: "bg-background border-warning text-warning hover:bg-warning/10",
|
|
58
|
-
solid: "bg-warning border-warning text-background hover:bg-warning/90",
|
|
59
|
-
soft: "bg-warning/10 border-warning/30 text-warning hover:bg-warning/20"
|
|
60
|
-
},
|
|
61
|
-
info: {
|
|
62
|
-
default: "bg-background border-info text-info hover:bg-info/10",
|
|
63
|
-
solid: "bg-info border-info text-background hover:bg-info/90",
|
|
64
|
-
soft: "bg-info/10 border-info/30 text-info hover:bg-info/20"
|
|
54
|
+
var getClipboardStyles = (color, variant) => {
|
|
55
|
+
const baseColor = colorVars[color] || colorVars.default;
|
|
56
|
+
if (variant === "solid") {
|
|
57
|
+
return cn(baseColor, "bg-slot border-slot text-slot-fg hover:bg-slot-90");
|
|
58
|
+
}
|
|
59
|
+
if (variant === "soft") {
|
|
60
|
+
return cn(baseColor, "bg-slot-10 border-slot-30 text-slot hover:bg-slot-20");
|
|
65
61
|
}
|
|
62
|
+
return cn(baseColor, "bg-background border-slot text-slot hover:bg-slot-10");
|
|
66
63
|
};
|
|
67
64
|
var Clipboard = React.memo(
|
|
68
65
|
({
|
|
@@ -80,9 +77,11 @@ var Clipboard = React.memo(
|
|
|
80
77
|
}) => {
|
|
81
78
|
const [copied, setCopied] = useState(false);
|
|
82
79
|
const timerRef = useRef(null);
|
|
80
|
+
const isMountedRef = useRef(true);
|
|
83
81
|
const { ripples, onPointerDown: ripplePointerDown, onKeyDown: rippleKeyDown, onAnimationEnd: rippleAnimationEnd } = useRipple(!disabled);
|
|
84
82
|
useEffect(() => {
|
|
85
83
|
return () => {
|
|
84
|
+
isMountedRef.current = false;
|
|
86
85
|
if (timerRef.current) {
|
|
87
86
|
clearTimeout(timerRef.current);
|
|
88
87
|
}
|
|
@@ -91,14 +90,14 @@ var Clipboard = React.memo(
|
|
|
91
90
|
const handleCopy = async () => {
|
|
92
91
|
if (disabled) return;
|
|
93
92
|
try {
|
|
94
|
-
await
|
|
95
|
-
setCopied(true);
|
|
93
|
+
await copyToClipboard(value);
|
|
94
|
+
if (isMountedRef.current) setCopied(true);
|
|
96
95
|
onCopy?.();
|
|
97
96
|
if (timerRef.current) {
|
|
98
97
|
clearTimeout(timerRef.current);
|
|
99
98
|
}
|
|
100
99
|
timerRef.current = setTimeout(() => {
|
|
101
|
-
setCopied(false);
|
|
100
|
+
if (isMountedRef.current) setCopied(false);
|
|
102
101
|
}, successDuration);
|
|
103
102
|
} catch {
|
|
104
103
|
}
|
|
@@ -126,8 +125,9 @@ var Clipboard = React.memo(
|
|
|
126
125
|
"aria-live": "polite",
|
|
127
126
|
className: cn(
|
|
128
127
|
clipboardVariants({ size }),
|
|
129
|
-
|
|
130
|
-
|
|
128
|
+
getClipboardStyles(color, variant),
|
|
129
|
+
colorVars[color],
|
|
130
|
+
"focus-visible:ring-slot",
|
|
131
131
|
disabled && "opacity-50 cursor-not-allowed",
|
|
132
132
|
!showValue && "aspect-square justify-center",
|
|
133
133
|
"clipboard_root",
|
|
@@ -178,5 +178,5 @@ Clipboard.displayName = "Clipboard";
|
|
|
178
178
|
var clipboard_default = Clipboard;
|
|
179
179
|
|
|
180
180
|
export { clipboard_default };
|
|
181
|
-
//# sourceMappingURL=chunk-
|
|
182
|
-
//# sourceMappingURL=chunk-
|
|
181
|
+
//# sourceMappingURL=chunk-J2WIZULN.js.map
|
|
182
|
+
//# sourceMappingURL=chunk-J2WIZULN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/clipboard/index.tsx"],"names":[],"mappings":"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","file":"chunk-J2WIZULN.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Check, Copy } from \"lucide-react\";\nimport React, { useState, useRef, useEffect } from \"react\";\n\nimport { useRipple, RippleContainer } from \"../hooks/useRipple\";\nimport { cn, iconSizes } from \"../utils\";\nimport { colorVars } from \"../variants\";\nimport type { ClipboardProps } from \"./types\";\n\nasync function copyToClipboard(text: string): Promise<void> {\n if (navigator.clipboard?.writeText) {\n await navigator.clipboard.writeText(text);\n return;\n }\n // Fallback using ClipboardItem API (works in iframes / insecure contexts with user gesture)\n if (typeof ClipboardItem !== \"undefined\" && navigator.clipboard?.write) {\n const blob = new Blob([text], { type: \"text/plain\" });\n await navigator.clipboard.write([new ClipboardItem({ \"text/plain\": blob })]);\n return;\n }\n // Last resort: textarea + Selection API (no deprecated execCommand)\n const textarea = document.createElement(\"textarea\");\n textarea.value = text;\n textarea.style.cssText = \"position:fixed;opacity:0;left:-9999px\";\n document.body.appendChild(textarea);\n textarea.focus();\n textarea.select();\n try {\n const selection = document.getSelection();\n if (selection) {\n const range = document.createRange();\n range.selectNodeContents(textarea);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n // execCommand is deprecated but still the only sync fallback in old browsers\n document.execCommand(\"copy\");\n } finally {\n document.body.removeChild(textarea);\n }\n}\n\nconst clipboardVariants = cva(\n \"inline-flex items-center justify-between gap-2 rounded-md font-medium transition-colors cursor-pointer border focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background relative overflow-hidden\",\n {\n variants: {\n size: {\n xs: \"px-1.5 py-1 text-xs\",\n sm: \"px-2 py-1.5 text-xs\",\n md: \"px-2.5 py-2 text-sm\",\n lg: \"px-3.5 py-2 text-lg\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nconst getClipboardStyles = (color: string, variant: string) => {\n const baseColor = colorVars[color as keyof typeof colorVars] || colorVars.default\n\n if (variant === 'solid') {\n return cn(baseColor, 'bg-slot border-slot text-slot-fg hover:bg-slot-90')\n }\n if (variant === 'soft') {\n return cn(baseColor, 'bg-slot-10 border-slot-30 text-slot hover:bg-slot-20')\n }\n // default variant\n return cn(baseColor, 'bg-background border-slot text-slot hover:bg-slot-10')\n}\n\nconst Clipboard = React.memo<ClipboardProps>(\n ({\n value,\n color = \"default\",\n size = \"md\",\n variant = \"default\",\n showValue = true,\n successDuration = 2000,\n disabled = false,\n onCopy,\n className,\n classNames,\n ref,\n }) => {\n const [copied, setCopied] = useState(false);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isMountedRef = useRef(true);\n const { ripples, onPointerDown: ripplePointerDown, onKeyDown: rippleKeyDown, onAnimationEnd: rippleAnimationEnd } = useRipple(!disabled);\n\n // Cleanup timeout on unmount to prevent memory leak\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, []);\n\n const handleCopy = async () => {\n if (disabled) return;\n\n try {\n await copyToClipboard(value);\n if (isMountedRef.current) setCopied(true);\n onCopy?.();\n\n // Clear any existing timer before setting a new one\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n\n timerRef.current = setTimeout(() => {\n if (isMountedRef.current) setCopied(false);\n }, successDuration);\n } catch {\n // Copy failed - user can try again\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleCopy();\n }\n };\n\n return (\n <div\n ref={ref}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onClick={handleCopy}\n onPointerDown={ripplePointerDown}\n onKeyDown={(e) => { rippleKeyDown(e); handleKeyDown(e); }}\n aria-label={\n copied\n ? \"Copied to clipboard\"\n : `Copy ${showValue ? value : \"to clipboard\"}`\n }\n aria-disabled={disabled}\n aria-live=\"polite\"\n className={cn(\n clipboardVariants({ size }),\n getClipboardStyles(color, variant),\n colorVars[color],\n 'focus-visible:ring-slot',\n disabled && \"opacity-50 cursor-not-allowed\",\n !showValue && \"aspect-square justify-center\",\n \"clipboard_root\",\n classNames?.root,\n className,\n )}\n data-slot=\"root\"\n >\n {showValue && (\n <span\n className={cn(\n \"font-mono truncate clipboard_input\",\n classNames?.input,\n )}\n data-slot=\"input\"\n >\n {value}\n </span>\n )}\n {copied ? (\n <Check\n className={cn(\n iconSizes[size],\n \"shrink-0 clipboard_button animate-in zoom-in-75 duration-200\",\n classNames?.button,\n )}\n data-slot=\"icon\"\n />\n ) : (\n <Copy\n className={cn(\n iconSizes[size],\n \"shrink-0 clipboard_button\",\n classNames?.button,\n )}\n data-slot=\"icon\"\n />\n )}\n <RippleContainer ripples={ripples} onAnimationEnd={rippleAnimationEnd} />\n </div>\n );\n },\n);\n\nClipboard.displayName = \"Clipboard\";\n\nexport type * from \"./types\";\nexport default Clipboard;\n"]}
|