@mdigital_ui/ui 0.3.9 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/dist/accordion/index.d.ts +0 -6
- package/dist/accordion/index.d.ts.map +0 -1
- package/dist/accordion/index.js +0 -5
- package/dist/accordion/index.js.map +0 -1
- package/dist/accordion/types.d.ts +0 -125
- package/dist/accordion/types.d.ts.map +0 -1
- package/dist/avatar/index.d.ts +0 -14
- package/dist/avatar/index.d.ts.map +0 -1
- package/dist/avatar/index.js +0 -4
- package/dist/avatar/index.js.map +0 -1
- package/dist/avatar/types.d.ts +0 -147
- package/dist/avatar/types.d.ts.map +0 -1
- package/dist/badge/index.d.ts +0 -28
- package/dist/badge/index.d.ts.map +0 -1
- package/dist/badge/index.js +0 -5
- package/dist/badge/index.js.map +0 -1
- package/dist/badge/types.d.ts +0 -97
- package/dist/badge/types.d.ts.map +0 -1
- package/dist/breadcrumbs/index.d.ts +0 -13
- package/dist/breadcrumbs/index.d.ts.map +0 -1
- package/dist/breadcrumbs/index.js +0 -8
- package/dist/breadcrumbs/index.js.map +0 -1
- package/dist/breadcrumbs/types.d.ts +0 -118
- package/dist/breadcrumbs/types.d.ts.map +0 -1
- package/dist/button/index.d.ts +0 -15
- package/dist/button/index.d.ts.map +0 -1
- package/dist/button/index.js +0 -7
- package/dist/button/index.js.map +0 -1
- package/dist/button/types.d.ts +0 -103
- package/dist/button/types.d.ts.map +0 -1
- package/dist/button-group/index.d.ts +0 -34
- package/dist/button-group/index.d.ts.map +0 -1
- package/dist/button-group/index.js +0 -4
- package/dist/button-group/index.js.map +0 -1
- package/dist/button-group/types.d.ts +0 -75
- package/dist/button-group/types.d.ts.map +0 -1
- package/dist/card/index.d.ts +0 -71
- package/dist/card/index.d.ts.map +0 -1
- package/dist/card/index.js +0 -5
- package/dist/card/index.js.map +0 -1
- package/dist/card/types.d.ts +0 -136
- package/dist/card/types.d.ts.map +0 -1
- package/dist/carousel/carousel-navigation.d.ts +0 -9
- package/dist/carousel/carousel-navigation.d.ts.map +0 -1
- package/dist/carousel/index.d.ts +0 -50
- package/dist/carousel/index.d.ts.map +0 -1
- package/dist/carousel/index.js +0 -4
- package/dist/carousel/index.js.map +0 -1
- package/dist/cascader/index.d.ts +0 -27
- package/dist/cascader/index.d.ts.map +0 -1
- package/dist/cascader/index.js +0 -5
- package/dist/cascader/index.js.map +0 -1
- package/dist/cascader/types.d.ts +0 -220
- package/dist/cascader/types.d.ts.map +0 -1
- package/dist/checkbox/index.d.ts +0 -6
- package/dist/checkbox/index.d.ts.map +0 -1
- package/dist/checkbox/index.js +0 -5
- package/dist/checkbox/index.js.map +0 -1
- package/dist/checkbox/types.d.ts +0 -21
- package/dist/checkbox/types.d.ts.map +0 -1
- package/dist/checkbox-group/index.d.ts +0 -6
- package/dist/checkbox-group/index.d.ts.map +0 -1
- package/dist/checkbox-group/index.js +0 -4
- package/dist/checkbox-group/index.js.map +0 -1
- package/dist/checkbox-group/types.d.ts +0 -43
- package/dist/checkbox-group/types.d.ts.map +0 -1
- package/dist/chunk-2F5MMMVP.js +0 -272
- package/dist/chunk-2F5MMMVP.js.map +0 -1
- package/dist/chunk-2PNLIQYM.js +0 -76
- package/dist/chunk-2PNLIQYM.js.map +0 -1
- package/dist/chunk-2TLOWZE4.js +0 -689
- 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-3BZE6BBJ.js +0 -758
- package/dist/chunk-3BZE6BBJ.js.map +0 -1
- package/dist/chunk-3PWILVOE.js +0 -182
- package/dist/chunk-3PWILVOE.js.map +0 -1
- package/dist/chunk-4F7U5UPY.js +0 -429
- package/dist/chunk-4F7U5UPY.js.map +0 -1
- package/dist/chunk-4FFVNUTK.js +0 -35
- package/dist/chunk-4FFVNUTK.js.map +0 -1
- package/dist/chunk-5PUATOLR.js +0 -127
- package/dist/chunk-5PUATOLR.js.map +0 -1
- package/dist/chunk-5QQH5LYU.js +0 -345
- package/dist/chunk-5QQH5LYU.js.map +0 -1
- package/dist/chunk-6BAP6QUT.js +0 -72
- package/dist/chunk-6BAP6QUT.js.map +0 -1
- package/dist/chunk-6G3BMY4N.js +0 -349
- package/dist/chunk-6G3BMY4N.js.map +0 -1
- package/dist/chunk-6HGUDHHE.js +0 -86
- package/dist/chunk-6HGUDHHE.js.map +0 -1
- package/dist/chunk-6JGNJI5T.js +0 -174
- package/dist/chunk-6JGNJI5T.js.map +0 -1
- package/dist/chunk-6LYRMQOI.js +0 -328
- 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 +0 -359
- package/dist/chunk-764UKE6X.js.map +0 -1
- package/dist/chunk-7UCNBMCV.js +0 -261
- package/dist/chunk-7UCNBMCV.js.map +0 -1
- package/dist/chunk-BVO2BNFG.js +0 -437
- package/dist/chunk-BVO2BNFG.js.map +0 -1
- package/dist/chunk-C4SHFLFR.js +0 -75
- package/dist/chunk-C4SHFLFR.js.map +0 -1
- package/dist/chunk-C5IGZLIT.js +0 -107
- package/dist/chunk-C5IGZLIT.js.map +0 -1
- package/dist/chunk-CH3YMDCF.js +0 -334
- package/dist/chunk-CH3YMDCF.js.map +0 -1
- package/dist/chunk-DUIL5BYS.js +0 -293
- package/dist/chunk-DUIL5BYS.js.map +0 -1
- package/dist/chunk-EHWXPH76.js +0 -42
- package/dist/chunk-EHWXPH76.js.map +0 -1
- package/dist/chunk-EPE3OODP.js +0 -332
- package/dist/chunk-EPE3OODP.js.map +0 -1
- package/dist/chunk-ERRZ2CSG.js +0 -192
- package/dist/chunk-ERRZ2CSG.js.map +0 -1
- package/dist/chunk-FAD45WRP.js +0 -378
- package/dist/chunk-FAD45WRP.js.map +0 -1
- package/dist/chunk-FZSCLZF6.js +0 -552
- package/dist/chunk-FZSCLZF6.js.map +0 -1
- package/dist/chunk-GJPZOMFE.js +0 -407
- package/dist/chunk-GJPZOMFE.js.map +0 -1
- package/dist/chunk-GOLARX5K.js +0 -310
- 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 +0 -586
- package/dist/chunk-H6G4BUPA.js.map +0 -1
- package/dist/chunk-HCOTO5WX.js +0 -77
- package/dist/chunk-HCOTO5WX.js.map +0 -1
- package/dist/chunk-HECAAILV.js +0 -94
- 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-HQLHE5RX.js +0 -297
- package/dist/chunk-HQLHE5RX.js.map +0 -1
- package/dist/chunk-I32ZQUYY.js +0 -184
- package/dist/chunk-I32ZQUYY.js.map +0 -1
- package/dist/chunk-JWTWPZ32.js +0 -355
- package/dist/chunk-JWTWPZ32.js.map +0 -1
- package/dist/chunk-KH577UDI.js +0 -218
- package/dist/chunk-KH577UDI.js.map +0 -1
- package/dist/chunk-KJTMZJ7V.js +0 -239
- 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-LX4FDH4J.js +0 -299
- package/dist/chunk-LX4FDH4J.js.map +0 -1
- package/dist/chunk-N2WHJ3FI.js +0 -130
- package/dist/chunk-N2WHJ3FI.js.map +0 -1
- package/dist/chunk-NGYLRX6F.js +0 -42
- package/dist/chunk-NGYLRX6F.js.map +0 -1
- package/dist/chunk-O3V3BTIJ.js +0 -419
- package/dist/chunk-O3V3BTIJ.js.map +0 -1
- package/dist/chunk-OFUPJH35.js +0 -74
- package/dist/chunk-OFUPJH35.js.map +0 -1
- package/dist/chunk-OLTQAMV2.js +0 -210
- package/dist/chunk-OLTQAMV2.js.map +0 -1
- package/dist/chunk-ONGJXAYQ.js +0 -144
- 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-PMA4VCAH.js +0 -253
- package/dist/chunk-PMA4VCAH.js.map +0 -1
- package/dist/chunk-POLVJ36Y.js +0 -210
- 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 +0 -110
- package/dist/chunk-R3TLU26W.js.map +0 -1
- package/dist/chunk-RFHTC6AH.js +0 -250
- package/dist/chunk-RFHTC6AH.js.map +0 -1
- package/dist/chunk-ROA7BYGB.js +0 -123
- package/dist/chunk-ROA7BYGB.js.map +0 -1
- package/dist/chunk-RPWYIGD3.js +0 -1026
- package/dist/chunk-RPWYIGD3.js.map +0 -1
- package/dist/chunk-SGRACNBP.js +0 -60
- package/dist/chunk-SGRACNBP.js.map +0 -1
- package/dist/chunk-T7RWQLUB.js +0 -347
- package/dist/chunk-T7RWQLUB.js.map +0 -1
- package/dist/chunk-UN3EW2PL.js +0 -381
- package/dist/chunk-UN3EW2PL.js.map +0 -1
- package/dist/chunk-VOODO2ZE.js +0 -180
- package/dist/chunk-VOODO2ZE.js.map +0 -1
- package/dist/chunk-WRSG7WU5.js +0 -278
- package/dist/chunk-WRSG7WU5.js.map +0 -1
- package/dist/chunk-X3YNHX77.js +0 -109
- package/dist/chunk-X3YNHX77.js.map +0 -1
- package/dist/chunk-XWEI3MES.js +0 -414
- package/dist/chunk-XWEI3MES.js.map +0 -1
- package/dist/chunk-Y4XAXZHB.js +0 -42
- package/dist/chunk-Y4XAXZHB.js.map +0 -1
- package/dist/chunk-YJOLLSHH.js +0 -132
- package/dist/chunk-YJOLLSHH.js.map +0 -1
- package/dist/chunk-YS5AIY4A.js +0 -43
- package/dist/chunk-YS5AIY4A.js.map +0 -1
- package/dist/chunk-ZIYA7TGX.js +0 -141
- package/dist/chunk-ZIYA7TGX.js.map +0 -1
- package/dist/chunk-ZKEDJ536.js +0 -503
- package/dist/chunk-ZKEDJ536.js.map +0 -1
- package/dist/clipboard/index.d.ts +0 -6
- package/dist/clipboard/index.d.ts.map +0 -1
- package/dist/clipboard/index.js +0 -6
- package/dist/clipboard/index.js.map +0 -1
- package/dist/clipboard/types.d.ts +0 -65
- package/dist/clipboard/types.d.ts.map +0 -1
- package/dist/collapse/index.d.ts +0 -6
- package/dist/collapse/index.d.ts.map +0 -1
- package/dist/collapse/index.js +0 -5
- package/dist/collapse/index.js.map +0 -1
- package/dist/collapse/types.d.ts +0 -60
- package/dist/collapse/types.d.ts.map +0 -1
- package/dist/command/index.d.ts +0 -74
- package/dist/command/index.d.ts.map +0 -1
- package/dist/command/index.js +0 -5
- package/dist/command/index.js.map +0 -1
- package/dist/command/types.d.ts +0 -24
- package/dist/command/types.d.ts.map +0 -1
- package/dist/context-menu/index.d.ts +0 -63
- package/dist/context-menu/index.d.ts.map +0 -1
- package/dist/context-menu/index.js +0 -5
- package/dist/context-menu/index.js.map +0 -1
- package/dist/context-menu/types.d.ts +0 -109
- package/dist/context-menu/types.d.ts.map +0 -1
- package/dist/date-picker/index.d.ts +0 -12
- package/dist/date-picker/index.d.ts.map +0 -1
- package/dist/date-picker/index.js +0 -6
- package/dist/date-picker/index.js.map +0 -1
- package/dist/date-picker/types.d.ts +0 -64
- package/dist/date-picker/types.d.ts.map +0 -1
- package/dist/date-picker/utils.d.ts +0 -10
- package/dist/date-picker/utils.d.ts.map +0 -1
- package/dist/descriptions/index.d.ts +0 -6
- package/dist/descriptions/index.d.ts.map +0 -1
- package/dist/descriptions/index.js +0 -4
- package/dist/descriptions/index.js.map +0 -1
- package/dist/descriptions/types.d.ts +0 -34
- package/dist/descriptions/types.d.ts.map +0 -1
- package/dist/divider/index.d.ts +0 -39
- package/dist/divider/index.d.ts.map +0 -1
- package/dist/divider/index.js +0 -4
- package/dist/divider/index.js.map +0 -1
- package/dist/divider/types.d.ts +0 -63
- package/dist/divider/types.d.ts.map +0 -1
- package/dist/drawer/index.d.ts +0 -23
- package/dist/drawer/index.d.ts.map +0 -1
- package/dist/drawer/index.js +0 -4
- package/dist/drawer/index.js.map +0 -1
- package/dist/drawer/types.d.ts +0 -309
- package/dist/drawer/types.d.ts.map +0 -1
- package/dist/dropdown/index.d.ts +0 -6
- package/dist/dropdown/index.d.ts.map +0 -1
- package/dist/dropdown/index.js +0 -7
- package/dist/dropdown/index.js.map +0 -1
- package/dist/dropdown/types.d.ts +0 -116
- package/dist/dropdown/types.d.ts.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/index.js.map +0 -1
- package/dist/empty/types.d.ts +0 -62
- package/dist/empty/types.d.ts.map +0 -1
- package/dist/fetching-overlay/index.d.ts +0 -10
- package/dist/fetching-overlay/index.d.ts.map +0 -1
- package/dist/fetching-overlay/index.js +0 -6
- package/dist/fetching-overlay/index.js.map +0 -1
- package/dist/float-input/index.d.ts +0 -6
- package/dist/float-input/index.d.ts.map +0 -1
- package/dist/float-input/index.js +0 -6
- package/dist/float-input/index.js.map +0 -1
- package/dist/float-input/types.d.ts +0 -23
- package/dist/float-input/types.d.ts.map +0 -1
- package/dist/grid/index.d.ts +0 -6
- package/dist/grid/index.d.ts.map +0 -1
- package/dist/grid/index.js +0 -4
- package/dist/grid/index.js.map +0 -1
- package/dist/grid/types.d.ts +0 -21
- package/dist/grid/types.d.ts.map +0 -1
- package/dist/hooks/index.d.ts +0 -6
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/useControllable.d.ts +0 -6
- package/dist/hooks/useControllable.d.ts.map +0 -1
- package/dist/hooks/useDebounce.d.ts +0 -2
- package/dist/hooks/useDebounce.d.ts.map +0 -1
- package/dist/hooks/useMediaQuery.d.ts +0 -2
- package/dist/hooks/useMediaQuery.d.ts.map +0 -1
- package/dist/hooks/useRipple.d.ts +0 -29
- package/dist/hooks/useRipple.d.ts.map +0 -1
- package/dist/hooks/useThrottle.d.ts +0 -2
- package/dist/hooks/useThrottle.d.ts.map +0 -1
- package/dist/image/index.d.ts +0 -6
- package/dist/image/index.d.ts.map +0 -1
- package/dist/image/index.js +0 -4
- package/dist/image/index.js.map +0 -1
- package/dist/image/types.d.ts +0 -57
- package/dist/image/types.d.ts.map +0 -1
- package/dist/index.d.ts +0 -142
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -133
- package/dist/index.js.map +0 -1
- package/dist/input/index.d.ts +0 -6
- package/dist/input/index.d.ts.map +0 -1
- package/dist/input/index.js +0 -6
- package/dist/input/index.js.map +0 -1
- package/dist/input/types.d.ts +0 -28
- package/dist/input/types.d.ts.map +0 -1
- package/dist/input-group/index.d.ts +0 -9
- package/dist/input-group/index.d.ts.map +0 -1
- package/dist/input-group/index.js +0 -4
- package/dist/input-group/index.js.map +0 -1
- package/dist/input-group/types.d.ts +0 -68
- package/dist/input-group/types.d.ts.map +0 -1
- package/dist/input-otp/index.d.ts +0 -7
- package/dist/input-otp/index.d.ts.map +0 -1
- package/dist/input-otp/index.js +0 -4
- package/dist/input-otp/index.js.map +0 -1
- package/dist/input-otp/types.d.ts +0 -111
- package/dist/input-otp/types.d.ts.map +0 -1
- package/dist/input-password/index.d.ts +0 -6
- package/dist/input-password/index.d.ts.map +0 -1
- package/dist/input-password/index.js +0 -7
- package/dist/input-password/index.js.map +0 -1
- package/dist/input-password/types.d.ts +0 -16
- package/dist/input-password/types.d.ts.map +0 -1
- package/dist/kbd/index.d.ts +0 -6
- package/dist/kbd/index.d.ts.map +0 -1
- package/dist/kbd/index.js +0 -5
- package/dist/kbd/index.js.map +0 -1
- package/dist/kbd/types.d.ts +0 -26
- package/dist/kbd/types.d.ts.map +0 -1
- package/dist/link/index.d.ts +0 -9
- package/dist/link/index.d.ts.map +0 -1
- package/dist/link/index.js +0 -4
- package/dist/link/index.js.map +0 -1
- package/dist/link/types.d.ts +0 -30
- package/dist/link/types.d.ts.map +0 -1
- package/dist/menubar/index.d.ts +0 -6
- package/dist/menubar/index.d.ts.map +0 -1
- package/dist/menubar/index.js +0 -6
- package/dist/menubar/index.js.map +0 -1
- package/dist/menubar/types.d.ts +0 -40
- package/dist/menubar/types.d.ts.map +0 -1
- package/dist/modal/index.d.ts +0 -39
- package/dist/modal/index.d.ts.map +0 -1
- package/dist/modal/index.js +0 -4
- package/dist/modal/index.js.map +0 -1
- package/dist/modal/types.d.ts +0 -77
- package/dist/modal/types.d.ts.map +0 -1
- package/dist/multi-select/index.d.ts +0 -6
- package/dist/multi-select/index.d.ts.map +0 -1
- package/dist/multi-select/index.js +0 -8
- package/dist/multi-select/index.js.map +0 -1
- package/dist/multi-select/types.d.ts +0 -81
- package/dist/multi-select/types.d.ts.map +0 -1
- package/dist/multi-select/utils.d.ts +0 -12
- package/dist/multi-select/utils.d.ts.map +0 -1
- package/dist/navigation-menu/index.d.ts +0 -5
- package/dist/navigation-menu/index.d.ts.map +0 -1
- package/dist/navigation-menu/index.js +0 -4
- package/dist/navigation-menu/index.js.map +0 -1
- package/dist/navigation-menu/types.d.ts +0 -37
- package/dist/navigation-menu/types.d.ts.map +0 -1
- package/dist/notification/index.d.ts +0 -6
- package/dist/notification/index.d.ts.map +0 -1
- package/dist/notification/index.js +0 -5
- package/dist/notification/index.js.map +0 -1
- package/dist/notification/types.d.ts +0 -90
- package/dist/notification/types.d.ts.map +0 -1
- package/dist/number-input/index.d.ts +0 -6
- package/dist/number-input/index.d.ts.map +0 -1
- package/dist/number-input/index.js +0 -7
- package/dist/number-input/index.js.map +0 -1
- package/dist/number-input/types.d.ts +0 -28
- package/dist/number-input/types.d.ts.map +0 -1
- package/dist/pagination/index.d.ts +0 -6
- package/dist/pagination/index.d.ts.map +0 -1
- package/dist/pagination/index.js +0 -5
- package/dist/pagination/index.js.map +0 -1
- package/dist/pagination/types.d.ts +0 -87
- package/dist/pagination/types.d.ts.map +0 -1
- package/dist/popover/index.d.ts +0 -19
- package/dist/popover/index.d.ts.map +0 -1
- package/dist/popover/index.js +0 -5
- package/dist/popover/index.js.map +0 -1
- package/dist/popover/types.d.ts +0 -31
- package/dist/popover/types.d.ts.map +0 -1
- package/dist/progress/index.d.ts +0 -6
- package/dist/progress/index.d.ts.map +0 -1
- package/dist/progress/index.js +0 -4
- package/dist/progress/index.js.map +0 -1
- package/dist/progress/styles.d.ts +0 -39
- package/dist/progress/styles.d.ts.map +0 -1
- package/dist/progress/types.d.ts +0 -100
- package/dist/progress/types.d.ts.map +0 -1
- package/dist/radio/index.d.ts +0 -6
- package/dist/radio/index.d.ts.map +0 -1
- package/dist/radio/index.js +0 -5
- package/dist/radio/index.js.map +0 -1
- package/dist/radio/types.d.ts +0 -20
- package/dist/radio/types.d.ts.map +0 -1
- package/dist/radio-group/index.d.ts +0 -6
- package/dist/radio-group/index.d.ts.map +0 -1
- package/dist/radio-group/index.js +0 -4
- package/dist/radio-group/index.js.map +0 -1
- package/dist/radio-group/types.d.ts +0 -43
- package/dist/radio-group/types.d.ts.map +0 -1
- package/dist/rating/index.d.ts +0 -6
- package/dist/rating/index.d.ts.map +0 -1
- package/dist/rating/index.js +0 -4
- package/dist/rating/index.js.map +0 -1
- package/dist/rating/types.d.ts +0 -64
- package/dist/rating/types.d.ts.map +0 -1
- package/dist/scroll-area/index.d.ts +0 -10
- package/dist/scroll-area/index.d.ts.map +0 -1
- package/dist/scroll-area/index.js +0 -4
- package/dist/scroll-area/index.js.map +0 -1
- package/dist/scroll-area/types.d.ts +0 -24
- package/dist/scroll-area/types.d.ts.map +0 -1
- package/dist/select/index.d.ts +0 -6
- package/dist/select/index.d.ts.map +0 -1
- package/dist/select/index.js +0 -8
- package/dist/select/index.js.map +0 -1
- package/dist/select/types.d.ts +0 -34
- package/dist/select/types.d.ts.map +0 -1
- package/dist/shared/useSelectBase.d.ts +0 -56
- package/dist/shared/useSelectBase.d.ts.map +0 -1
- package/dist/skeleton/index.d.ts +0 -6
- package/dist/skeleton/index.d.ts.map +0 -1
- package/dist/skeleton/index.js +0 -5
- package/dist/skeleton/index.js.map +0 -1
- package/dist/skeleton/types.d.ts +0 -10
- package/dist/skeleton/types.d.ts.map +0 -1
- package/dist/slider/index.d.ts +0 -6
- package/dist/slider/index.d.ts.map +0 -1
- package/dist/slider/index.js +0 -4
- package/dist/slider/index.js.map +0 -1
- package/dist/slider/types.d.ts +0 -70
- package/dist/slider/types.d.ts.map +0 -1
- package/dist/spinner/index.d.ts +0 -6
- package/dist/spinner/index.d.ts.map +0 -1
- package/dist/spinner/index.js +0 -5
- package/dist/spinner/index.js.map +0 -1
- package/dist/spinner/types.d.ts +0 -10
- package/dist/spinner/types.d.ts.map +0 -1
- package/dist/stepper/index.d.ts +0 -6
- package/dist/stepper/index.d.ts.map +0 -1
- package/dist/stepper/index.js +0 -4
- package/dist/stepper/index.js.map +0 -1
- package/dist/stepper/types.d.ts +0 -86
- package/dist/stepper/types.d.ts.map +0 -1
- package/dist/styles/themes/index.d.ts +0 -9
- package/dist/styles/themes/index.d.ts.map +0 -1
- package/dist/styles/themes/presets/index.d.ts +0 -21
- package/dist/styles/themes/presets/index.d.ts.map +0 -1
- package/dist/styles/tokens.d.ts +0 -428
- package/dist/styles/tokens.d.ts.map +0 -1
- package/dist/switch/index.d.ts +0 -6
- package/dist/switch/index.d.ts.map +0 -1
- package/dist/switch/index.js +0 -5
- package/dist/switch/index.js.map +0 -1
- package/dist/switch/types.d.ts +0 -80
- package/dist/switch/types.d.ts.map +0 -1
- package/dist/table/EditableCell.d.ts +0 -13
- package/dist/table/EditableCell.d.ts.map +0 -1
- package/dist/table/TableActions.d.ts +0 -21
- package/dist/table/TableActions.d.ts.map +0 -1
- package/dist/table/TableCell.d.ts +0 -12
- package/dist/table/TableCell.d.ts.map +0 -1
- package/dist/table/TableHeaderCell.d.ts +0 -16
- package/dist/table/TableHeaderCell.d.ts.map +0 -1
- package/dist/table/TableRow.d.ts +0 -16
- package/dist/table/TableRow.d.ts.map +0 -1
- package/dist/table/TableSkeleton.d.ts +0 -13
- package/dist/table/TableSkeleton.d.ts.map +0 -1
- package/dist/table/index.d.ts +0 -15
- package/dist/table/index.d.ts.map +0 -1
- package/dist/table/index.js +0 -13
- package/dist/table/index.js.map +0 -1
- package/dist/table/types.d.ts +0 -110
- package/dist/table/types.d.ts.map +0 -1
- package/dist/table/variants.d.ts +0 -4
- package/dist/table/variants.d.ts.map +0 -1
- package/dist/tabs/index.d.ts +0 -7
- package/dist/tabs/index.d.ts.map +0 -1
- package/dist/tabs/index.js +0 -5
- package/dist/tabs/index.js.map +0 -1
- package/dist/tabs/types.d.ts +0 -90
- package/dist/tabs/types.d.ts.map +0 -1
- package/dist/tag/index.d.ts +0 -49
- package/dist/tag/index.d.ts.map +0 -1
- package/dist/tag/index.js +0 -5
- package/dist/tag/index.js.map +0 -1
- package/dist/tag/types.d.ts +0 -23
- package/dist/tag/types.d.ts.map +0 -1
- package/dist/textarea/index.d.ts +0 -6
- package/dist/textarea/index.d.ts.map +0 -1
- package/dist/textarea/index.js +0 -4
- package/dist/textarea/index.js.map +0 -1
- package/dist/textarea/types.d.ts +0 -84
- package/dist/textarea/types.d.ts.map +0 -1
- package/dist/theme/ThemeProvider.d.ts +0 -44
- package/dist/theme/ThemeProvider.d.ts.map +0 -1
- package/dist/theme/index.d.ts +0 -7
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/index.js +0 -3
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/types.d.ts +0 -47
- package/dist/theme/types.d.ts.map +0 -1
- package/dist/timeline/index.d.ts +0 -13
- package/dist/timeline/index.d.ts.map +0 -1
- package/dist/timeline/index.js +0 -4
- package/dist/timeline/index.js.map +0 -1
- package/dist/timeline/types.d.ts +0 -25
- package/dist/timeline/types.d.ts.map +0 -1
- package/dist/toast/index.d.ts +0 -12
- package/dist/toast/index.d.ts.map +0 -1
- package/dist/toast/index.js +0 -5
- package/dist/toast/index.js.map +0 -1
- package/dist/toast/types.d.ts +0 -49
- package/dist/toast/types.d.ts.map +0 -1
- package/dist/toggle/index.d.ts +0 -6
- package/dist/toggle/index.d.ts.map +0 -1
- package/dist/toggle/index.js +0 -5
- package/dist/toggle/index.js.map +0 -1
- package/dist/toggle/types.d.ts +0 -57
- package/dist/toggle/types.d.ts.map +0 -1
- package/dist/toggle-group/index.d.ts +0 -6
- package/dist/toggle-group/index.d.ts.map +0 -1
- package/dist/toggle-group/index.js +0 -5
- package/dist/toggle-group/index.js.map +0 -1
- package/dist/toggle-group/types.d.ts +0 -80
- package/dist/toggle-group/types.d.ts.map +0 -1
- package/dist/tooltip/index.d.ts +0 -9
- package/dist/tooltip/index.d.ts.map +0 -1
- package/dist/tooltip/index.js +0 -5
- package/dist/tooltip/index.js.map +0 -1
- package/dist/tooltip/types.d.ts +0 -72
- package/dist/tooltip/types.d.ts.map +0 -1
- package/dist/transfer/index.d.ts +0 -5
- package/dist/transfer/index.d.ts.map +0 -1
- package/dist/transfer/index.js +0 -6
- package/dist/transfer/index.js.map +0 -1
- package/dist/transfer/types.d.ts +0 -83
- package/dist/transfer/types.d.ts.map +0 -1
- package/dist/transfer/utils.d.ts +0 -13
- package/dist/transfer/utils.d.ts.map +0 -1
- package/dist/tree/index.d.ts +0 -6
- package/dist/tree/index.d.ts.map +0 -1
- package/dist/tree/index.js +0 -4
- package/dist/tree/index.js.map +0 -1
- package/dist/tree/types.d.ts +0 -143
- package/dist/tree/types.d.ts.map +0 -1
- package/dist/tree-select/index.d.ts +0 -6
- package/dist/tree-select/index.d.ts.map +0 -1
- package/dist/tree-select/index.js +0 -7
- package/dist/tree-select/index.js.map +0 -1
- package/dist/tree-select/types.d.ts +0 -147
- package/dist/tree-select/types.d.ts.map +0 -1
- package/dist/types.d.ts +0 -53
- package/dist/types.d.ts.map +0 -1
- package/dist/upload/index.d.ts +0 -7
- package/dist/upload/index.d.ts.map +0 -1
- package/dist/upload/index.js +0 -5
- package/dist/upload/index.js.map +0 -1
- package/dist/upload/types.d.ts +0 -94
- package/dist/upload/types.d.ts.map +0 -1
- package/dist/upload/utils.d.ts +0 -26
- package/dist/upload/utils.d.ts.map +0 -1
- package/dist/utils.d.ts +0 -63
- package/dist/utils.d.ts.map +0 -1
- package/dist/variants.d.ts +0 -315
- package/dist/variants.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cascader/index.tsx"],"names":["selectedPath","label"],"mappings":"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","file":"chunk-L5UYN5LX.js","sourcesContent":["'use client'\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cva } from \"class-variance-authority\";\nimport { Check, ChevronDown, ChevronRight, Loader2, X } from \"lucide-react\";\nimport React from \"react\";\n\nimport type { ComponentColor } from \"../types\";\nimport { cn, iconSizes } from \"../utils\";\nimport { focusRingColorClasses, textColorClasses } from \"../variants\";\nimport type { CascaderOption, CascaderProps, CascaderSize } from \"./types\";\n\nconst cascaderTriggerVariants = cva(\n \"flex items-center justify-between gap-2 rounded-md border transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n {\n variants: {\n status: {\n default: \"bg-background border-border hover:border-primary/50\",\n error: \"border-error\",\n warning: \"border-warning\",\n info: \"border-info\",\n success: \"border-success\",\n },\n size: {\n xs: \"h-(--select-height-xs) px-(--select-padding-x-xs) text-xs\",\n sm: \"h-(--select-height-sm) px-(--select-padding-x-sm) text-sm\",\n md: \"h-(--select-height-md) px-(--select-padding-x-md) text-base\",\n lg: \"h-(--select-height-lg) px-(--select-padding-x-lg) text-lg\",\n },\n fullWidth: {\n true: \"w-full\",\n false: \"max-w-full\",\n },\n },\n defaultVariants: {\n status: \"default\",\n size: \"md\",\n fullWidth: true,\n },\n },\n);\n\nconst cascaderMenuVariants = cva(\n \"overflow-auto rounded-md border bg-background w-[200px] max-h-[300px]\",\n {\n variants: {\n size: {\n xs: \"w-[160px]\",\n sm: \"w-[180px]\",\n md: \"w-[200px]\",\n lg: \"w-[220px]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nconst cascaderItemVariants = cva(\n \"relative cursor-pointer select-none text-text-primary transition-colors flex items-center gap-2 w-full\",\n {\n variants: {\n size: {\n xs: \"px-2 py-1 text-xs min-h-[28px]\",\n sm: \"px-2.5 py-1.5 text-sm min-h-[32px]\",\n md: \"px-3 py-2 text-base min-h-[36px]\",\n lg: \"px-3.5 py-2.5 text-lg min-h-[44px]\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"hover:bg-surface\",\n },\n active: {\n true: \"bg-surface\",\n false: \"\",\n },\n selected: {\n true: \"font-medium\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n disabled: false,\n active: false,\n selected: false,\n },\n },\n);\n\n/**\n * Tag size classes for multiple mode\n */\nconst tagSizeClasses: Record<CascaderSize, string> = {\n xs: \"text-[10px] px-1 py-0\",\n sm: \"text-xs px-1.5 py-0.5\",\n md: \"text-sm px-2 py-0.5\",\n lg: \"text-sm px-2.5 py-1\",\n};\n\n/**\n * Color-aware accent classes for selected items, tags, and checkboxes\n */\nconst accentBgClasses: Record<ComponentColor, string> = {\n default: \"bg-primary/10 text-primary\",\n primary: \"bg-primary/10 text-primary\",\n secondary: \"bg-secondary/10 text-secondary\",\n accent: \"bg-accent/10 text-accent\",\n success: \"bg-success/10 text-success\",\n error: \"bg-error/10 text-error\",\n warning: \"bg-warning/10 text-warning\",\n info: \"bg-info/10 text-info\",\n};\n\nconst checkboxCheckedClasses: Record<ComponentColor, string> = {\n default: \"bg-primary border-primary\",\n primary: \"bg-primary border-primary\",\n secondary: \"bg-secondary border-secondary\",\n accent: \"bg-accent border-accent\",\n success: \"bg-success border-success\",\n error: \"bg-error border-error\",\n warning: \"bg-warning border-warning\",\n info: \"bg-info border-info\",\n};\n\nconst indeterminateBgClasses: Record<ComponentColor, string> = {\n default: \"bg-primary\",\n primary: \"bg-primary\",\n secondary: \"bg-secondary\",\n accent: \"bg-accent\",\n success: \"bg-success\",\n error: \"bg-error\",\n warning: \"bg-warning\",\n info: \"bg-info\",\n};\n\n/**\n * Cascader Component\n *\n * A hierarchical selection component for selecting from nested options.\n *\n * @example\n * // Basic usage\n * <Cascader\n * options={options}\n * placeholder=\"Select location\"\n * onChange={(value, options) => console.log(value)}\n * />\n *\n * @example\n * // Multiple selection\n * <Cascader\n * options={options}\n * multiple\n * placeholder=\"Select categories\"\n * />\n */\nconst Cascader = React.memo<CascaderProps>(\n ({\n options,\n value,\n defaultValue,\n onChange,\n onSelect,\n placeholder = \"Please select\",\n label,\n helperText,\n messagePosition = \"bottom\",\n color = \"default\",\n size = \"md\",\n placement = \"bottomLeft\",\n disabled = false,\n loading = false,\n error,\n warning,\n info,\n success,\n fullWidth = true,\n expandTrigger = \"hover\",\n multiple = false,\n maxTagCount = 3,\n clearable = true,\n showPath = true,\n pathSeparator = \" / \",\n changeOnSelect = false,\n loadData,\n displayRender,\n tagRender,\n emptyContent = \"No options\",\n className,\n classNames,\n required,\n ref,\n onOpenChange,\n }) => {\n const [isOpen, setIsOpen] = React.useState(false);\n const [internalValue, setInternalValue] = React.useState<\n string[] | string[][]\n >(defaultValue || []);\n const [activeMenus, setActiveMenus] = React.useState<CascaderOption[][]>([\n options,\n ]);\n const [hoveredPath, setHoveredPath] = React.useState<number[]>([]);\n const [selectedPath, setSelectedPath] = React.useState<string[]>([]);\n const [focusedIndex, setFocusedIndex] = React.useState<{\n level: number;\n index: number;\n } | null>(null);\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const menuRefs = React.useRef<(HTMLDivElement | null)[]>([]);\n\n const currentValue = value !== undefined ? value : internalValue;\n\n // Normalize value to always be string[][]\n const normalizedValue: string[][] = React.useMemo(() => {\n if (multiple) {\n return Array.isArray(currentValue[0])\n ? (currentValue as string[][])\n : [];\n }\n return Array.isArray(currentValue) &&\n currentValue.length > 0 &&\n !Array.isArray(currentValue[0])\n ? [currentValue as string[]]\n : [];\n }, [currentValue, multiple]);\n\n // Determine status for styling\n let status: \"default\" | \"error\" | \"warning\" | \"info\" | \"success\" =\n \"default\";\n if (error) status = \"error\";\n else if (warning) status = \"warning\";\n else if (success) status = \"success\";\n else if (info) status = \"info\";\n\n const helperMessage = error || warning || info || success || helperText;\n\n // Handle open state changes\n const handleOpenChange = React.useCallback(\n (open: boolean) => {\n if (disabled || loading) return;\n\n setIsOpen(open);\n onOpenChange?.(open);\n\n if (open) {\n // Reset state when opening\n setActiveMenus([options]);\n setHoveredPath([]);\n setFocusedIndex(null);\n\n if (normalizedValue.length > 0 && !multiple) {\n setSelectedPath(normalizedValue[0] || []);\n // Expand to show current selection\n expandToPath(normalizedValue[0] || []);\n } else {\n setSelectedPath([]);\n }\n }\n },\n [disabled, loading, options, normalizedValue, multiple, onOpenChange],\n );\n\n // Expand menus to show a specific path\n const expandToPath = React.useCallback(\n (path: string[]) => {\n const menus: CascaderOption[][] = [options];\n let currentOptions = options;\n\n for (const val of path) {\n const option = currentOptions.find((opt) => opt.value === val);\n if (option?.children && option.children.length > 0) {\n menus.push(option.children);\n currentOptions = option.children;\n }\n }\n\n setActiveMenus(menus);\n },\n [options],\n );\n\n // Get selected options for a path\n const getSelectedOptions = React.useCallback(\n (path: string[]): CascaderOption[] => {\n const selected: CascaderOption[] = [];\n let currentOptions = options;\n\n for (const val of path) {\n const option = currentOptions.find((opt) => opt.value === val);\n if (option) {\n selected.push(option);\n currentOptions = option.children || [];\n }\n }\n\n return selected;\n },\n [options],\n );\n\n // Check if a path is selected\n const isPathSelected = React.useCallback(\n (path: string[]): boolean => {\n return normalizedValue.some(\n (selectedPath) =>\n selectedPath.length === path.length &&\n selectedPath.every((val, idx) => val === path[idx]),\n );\n },\n [normalizedValue],\n );\n\n // Get all leaf paths from an option\n const getAllLeafPaths = React.useCallback(\n (option: CascaderOption, currentPath: string[]): string[][] => {\n const paths: string[][] = [];\n const fullPath = [...currentPath, option.value];\n\n if (!option.children || option.children.length === 0) {\n paths.push(fullPath);\n } else {\n option.children.forEach((child) => {\n paths.push(...getAllLeafPaths(child, fullPath));\n });\n }\n\n return paths;\n },\n [],\n );\n\n // Get selection state for a node (for multiple mode checkboxes)\n const getNodeSelectionState = React.useCallback(\n (\n option: CascaderOption,\n currentPath: string[],\n ): { checked: boolean; indeterminate: boolean } => {\n if (!option.children || option.children.length === 0) {\n const fullPath = [...currentPath, option.value];\n return { checked: isPathSelected(fullPath), indeterminate: false };\n }\n\n const leafPaths = getAllLeafPaths(option, currentPath);\n const selectedCount = leafPaths.filter((path) =>\n isPathSelected(path),\n ).length;\n\n return {\n checked: selectedCount === leafPaths.length && leafPaths.length > 0,\n indeterminate: selectedCount > 0 && selectedCount < leafPaths.length,\n };\n },\n [isPathSelected, getAllLeafPaths],\n );\n\n // Handle item click\n const handleItemClick = React.useCallback(\n async (option: CascaderOption, level: number) => {\n if (option.disabled) return;\n\n const newPath = [...selectedPath.slice(0, level), option.value];\n setSelectedPath(newPath);\n\n // Handle async loading\n if (loadData && !option.children && !option.isLeaf && !option.loading) {\n const selectedOpts = getSelectedOptions(newPath);\n await loadData(selectedOpts);\n return;\n }\n\n const hasChildren = option.children && option.children.length > 0;\n const isLeaf = !hasChildren;\n\n if (hasChildren && !multiple) {\n // Single mode with children - just expand\n setActiveMenus((prev) => [\n ...prev.slice(0, level + 1),\n option.children!,\n ]);\n\n // changeOnSelect allows selecting parent nodes\n if (changeOnSelect) {\n const selectedOpts = getSelectedOptions(newPath);\n if (value === undefined) setInternalValue(newPath);\n onChange?.(newPath, selectedOpts);\n }\n } else if (hasChildren && multiple) {\n // Multiple mode with children - toggle all leaves\n const leafPaths = getAllLeafPaths(\n option,\n selectedPath.slice(0, level),\n );\n const allSelected = leafPaths.every((path) => isPathSelected(path));\n\n let newValue: string[][];\n if (allSelected) {\n newValue = normalizedValue.filter(\n (sp) =>\n !leafPaths.some(\n (lp) =>\n lp.length === sp.length && lp.every((v, i) => v === sp[i]),\n ),\n );\n } else {\n const pathsToAdd = leafPaths.filter(\n (path) => !isPathSelected(path),\n );\n newValue = [...normalizedValue, ...pathsToAdd];\n }\n\n const newSelectedOptions = newValue.map((path) =>\n getSelectedOptions(path),\n );\n if (value === undefined) setInternalValue(newValue);\n onChange?.(newValue, newSelectedOptions);\n\n // Also expand\n setActiveMenus((prev) => [\n ...prev.slice(0, level + 1),\n option.children!,\n ]);\n } else if (isLeaf) {\n // Leaf node\n if (multiple) {\n let newValue: string[][];\n if (isPathSelected(newPath)) {\n newValue = normalizedValue.filter(\n (path) =>\n !(\n path.length === newPath.length &&\n path.every((val, idx) => val === newPath[idx])\n ),\n );\n } else {\n newValue = [...normalizedValue, newPath];\n }\n\n const newSelectedOptions = newValue.map((path) =>\n getSelectedOptions(path),\n );\n if (value === undefined) setInternalValue(newValue);\n onChange?.(newValue, newSelectedOptions);\n } else {\n // Single mode - select and close\n const selectedOpts = getSelectedOptions(newPath);\n if (value === undefined) setInternalValue(newPath);\n onChange?.(newPath, selectedOpts);\n onSelect?.(newPath, selectedOpts);\n handleOpenChange(false);\n }\n }\n },\n [\n selectedPath,\n value,\n onChange,\n onSelect,\n getSelectedOptions,\n multiple,\n isPathSelected,\n normalizedValue,\n getAllLeafPaths,\n changeOnSelect,\n loadData,\n handleOpenChange,\n ],\n );\n\n // Handle item hover (for expand on hover)\n const handleItemHover = React.useCallback(\n (option: CascaderOption, level: number, index: number) => {\n if (expandTrigger !== \"hover\" || option.disabled) return;\n\n setHoveredPath((prev) => [...prev.slice(0, level), index]);\n // Track value-path so handleItemClick can build correct paths\n setSelectedPath((prev) => [...prev.slice(0, level), option.value]);\n\n if (option.children && option.children.length > 0) {\n setActiveMenus((prev) => [\n ...prev.slice(0, level + 1),\n option.children!,\n ]);\n } else {\n setActiveMenus((prev) => prev.slice(0, level + 1));\n }\n },\n [expandTrigger],\n );\n\n // Handle clear\n const handleClear = React.useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n const emptyValue = multiple ? [] : [];\n if (value === undefined) setInternalValue(emptyValue);\n onChange?.(emptyValue, []);\n },\n [value, onChange, multiple],\n );\n\n // Remove a selection in multiple mode\n const removeSelection = React.useCallback(\n (pathToRemove: string[], e: React.MouseEvent) => {\n e.stopPropagation();\n if (!multiple) return;\n\n const newValue = normalizedValue.filter(\n (path) =>\n !(\n path.length === pathToRemove.length &&\n path.every((val, idx) => val === pathToRemove[idx])\n ),\n );\n\n const newSelectedOptions = newValue.map((path) =>\n getSelectedOptions(path),\n );\n if (value === undefined) setInternalValue(newValue);\n onChange?.(newValue, newSelectedOptions);\n },\n [multiple, normalizedValue, value, onChange, getSelectedOptions],\n );\n\n // Handle keyboard navigation\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (!isOpen) {\n if (e.key === \"Enter\" || e.key === \" \" || e.key === \"ArrowDown\") {\n e.preventDefault();\n handleOpenChange(true);\n }\n return;\n }\n\n switch (e.key) {\n case \"Escape\":\n e.preventDefault();\n handleOpenChange(false);\n break;\n\n case \"ArrowDown\":\n e.preventDefault();\n if (focusedIndex === null) {\n setFocusedIndex({ level: 0, index: 0 });\n } else {\n const currentMenu = activeMenus[focusedIndex.level];\n if (currentMenu && focusedIndex.index < currentMenu.length - 1) {\n setFocusedIndex({\n ...focusedIndex,\n index: focusedIndex.index + 1,\n });\n }\n }\n break;\n\n case \"ArrowUp\":\n e.preventDefault();\n if (focusedIndex && focusedIndex.index > 0) {\n setFocusedIndex({\n ...focusedIndex,\n index: focusedIndex.index - 1,\n });\n }\n break;\n\n case \"ArrowRight\":\n e.preventDefault();\n if (focusedIndex) {\n const currentMenu = activeMenus[focusedIndex.level];\n const option = currentMenu?.[focusedIndex.index];\n if (option?.children && option.children.length > 0) {\n setActiveMenus((prev) => [\n ...prev.slice(0, focusedIndex.level + 1),\n option.children!,\n ]);\n setFocusedIndex({ level: focusedIndex.level + 1, index: 0 });\n }\n }\n break;\n\n case \"ArrowLeft\":\n e.preventDefault();\n if (focusedIndex && focusedIndex.level > 0) {\n const parentLevel = focusedIndex.level - 1;\n // Preserve parent level's active index from hoveredPath or selectedPath\n const parentIndex = hoveredPath[parentLevel] ?? 0;\n setActiveMenus((prev) => prev.slice(0, focusedIndex.level));\n setFocusedIndex({ level: parentLevel, index: parentIndex });\n }\n break;\n\n case \"Enter\":\n e.preventDefault();\n if (focusedIndex) {\n const currentMenu = activeMenus[focusedIndex.level];\n const option = currentMenu?.[focusedIndex.index];\n if (option) {\n handleItemClick(option, focusedIndex.level);\n }\n }\n break;\n }\n },\n [isOpen, focusedIndex, activeMenus, handleOpenChange, handleItemClick],\n );\n\n // Display value computation\n const displayValue = React.useMemo(() => {\n if (normalizedValue.length === 0) return null;\n\n if (displayRender) {\n if (multiple) {\n const allLabels = normalizedValue.map((path) =>\n getSelectedOptions(path).map((opt) => opt.label),\n );\n const allOptions = normalizedValue.map((path) =>\n getSelectedOptions(path),\n );\n return displayRender(allLabels, allOptions);\n } else {\n const selectedOpts = getSelectedOptions(normalizedValue[0] || []);\n const labels = selectedOpts.map((opt) => opt.label);\n return displayRender(labels, selectedOpts);\n }\n }\n\n if (!multiple) {\n const selectedOpts = getSelectedOptions(normalizedValue[0] || []);\n const labels = selectedOpts.map((opt) => opt.label);\n if (showPath) {\n return labels.join(pathSeparator);\n }\n return labels[labels.length - 1] || null;\n }\n\n return null;\n }, [\n normalizedValue,\n displayRender,\n getSelectedOptions,\n multiple,\n showPath,\n pathSeparator,\n ]);\n\n const showClearButton =\n clearable &&\n normalizedValue.length > 0 &&\n normalizedValue[0]?.[0] &&\n !disabled &&\n !loading;\n\n // Render cascader menus\n const renderCascaderMenus = () => {\n return (\n <div className={cn(\"flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:border-r-0 [&>*:not(:last-child)]:rounded-r-none cascader_dropdown\", classNames?.dropdown)} data-slot=\"dropdown\">\n {activeMenus.map((menu, level) => (\n <div\n key={level}\n ref={(el) => {\n menuRefs.current[level] = el;\n }}\n role=\"listbox\"\n className={cn(cascaderMenuVariants({ size }), \"border-border cascader_menu\", classNames?.menu)}\n data-slot=\"menu\"\n >\n {menu.length === 0 ? (\n <div className=\"px-3 py-6 text-center text-text-secondary text-sm\">\n {emptyContent}\n </div>\n ) : (\n menu.map((option, index) => {\n const isActive =\n selectedPath[level] === option.value ||\n (expandTrigger === \"hover\" && hoveredPath[level] === index);\n const isFocused =\n focusedIndex?.level === level &&\n focusedIndex?.index === index;\n const currentPath = selectedPath.slice(0, level);\n const fullPath = [...currentPath, option.value];\n const selectionState = multiple\n ? getNodeSelectionState(option, currentPath)\n : null;\n const isLeafSelected =\n !multiple &&\n isPathSelected(fullPath) &&\n (!option.children || option.children.length === 0);\n\n return (\n <div\n key={option.value}\n role=\"option\"\n aria-selected={isLeafSelected || (selectionState?.checked ?? false)}\n aria-disabled={option.disabled}\n className={cn(\n cascaderItemVariants({\n size,\n disabled: !!option.disabled,\n active: isActive || isFocused,\n selected: isLeafSelected,\n }),\n isLeafSelected && accentBgClasses[color],\n \"cascader_option\",\n classNames?.option\n )}\n onClick={() => handleItemClick(option, level)}\n onMouseEnter={() => handleItemHover(option, level, index)}\n data-slot=\"option\"\n >\n {multiple && (\n <div\n className={cn(\n \"w-4 h-4 border rounded flex items-center justify-center shrink-0\",\n selectionState?.checked\n ? checkboxCheckedClasses[color]\n : \"border-border\",\n )}\n >\n {selectionState?.checked && (\n <Check className=\"h-3 w-3 text-background\" />\n )}\n {selectionState?.indeterminate &&\n !selectionState?.checked && (\n <div className={cn(\"w-2 h-0.5\", indeterminateBgClasses[color])} />\n )}\n </div>\n )}\n <span className=\"flex-1 truncate\">{option.label}</span>\n <span\n className={cn(\n \"shrink-0 flex items-center\",\n iconSizes[size],\n )}\n >\n {option.loading && (\n <Loader2\n className={cn(\"animate-spin\", iconSizes[size])}\n />\n )}\n {!option.loading &&\n option.children &&\n option.children.length > 0 && (\n <ChevronRight className={iconSizes[size]} />\n )}\n {!option.loading && isLeafSelected && (\n <Check\n className={cn(iconSizes[size], textColorClasses[color])}\n />\n )}\n </span>\n </div>\n );\n })\n )}\n </div>\n ))}\n </div>\n );\n };\n\n // Render trigger content\n const renderTriggerContent = () => {\n if (multiple && normalizedValue.length > 0) {\n const visibleTags = normalizedValue.slice(0, maxTagCount);\n const remainingCount = normalizedValue.length - maxTagCount;\n\n return (\n <div className=\"flex-1 flex flex-wrap gap-1 items-center min-h-0 overflow-hidden\">\n {visibleTags.map((path, idx) => {\n const selectedOpts = getSelectedOptions(path);\n const label = showPath\n ? selectedOpts.map((o) => o.label).join(pathSeparator)\n : selectedOpts[selectedOpts.length - 1]?.label || \"\";\n\n if (tagRender) {\n return tagRender({\n label,\n value: path,\n closable: !disabled,\n onClose: () =>\n removeSelection(path, {\n stopPropagation: () => {},\n } as React.MouseEvent),\n });\n }\n\n return (\n <span\n key={idx}\n className={cn(\n \"inline-flex items-center gap-1 rounded whitespace-nowrap\",\n accentBgClasses[color],\n tagSizeClasses[size],\n )}\n >\n <span className=\"truncate max-w-[150px]\">{label}</span>\n {!disabled && (\n <button\n type=\"button\"\n onClick={(e) => removeSelection(path, e)}\n className=\"hover:text-error shrink-0\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n )}\n </span>\n );\n })}\n {remainingCount > 0 && (\n <span\n className={cn(\n \"inline-flex items-center bg-surface text-text-secondary rounded whitespace-nowrap\",\n tagSizeClasses[size],\n )}\n >\n +{remainingCount}\n </span>\n )}\n </div>\n );\n }\n\n return (\n <span\n className={cn(\"truncate flex-1\", !displayValue && \"text-text-secondary\")}\n >\n {displayValue || placeholder}\n </span>\n );\n };\n\n // Popover placement mapping\n const popoverSide = placement.startsWith(\"top\") ? \"top\" : \"bottom\";\n const popoverAlign = placement.endsWith(\"Right\") ? \"end\" : \"start\";\n\n const triggerElement = (\n <div\n ref={ref}\n className={cn(\n cascaderTriggerVariants({ status, size, fullWidth }),\n focusRingColorClasses[color],\n disabled && \"opacity-50 cursor-not-allowed\",\n loading && \"opacity-50 pointer-events-none\",\n \"cascader_trigger\",\n classNames?.trigger,\n className,\n )}\n onKeyDown={handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n role=\"combobox\"\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-disabled={disabled}\n aria-label={label || placeholder}\n data-slot=\"trigger\"\n >\n {renderTriggerContent()}\n <div className=\"flex items-center gap-1 text-text-secondary shrink-0\">\n {loading && (\n <Loader2\n className={cn(\"animate-spin text-text-secondary\", iconSizes[size])}\n />\n )}\n {!loading && showClearButton && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"hover:text-text-primary\"\n aria-label=\"Clear selection\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n {!loading && (\n <ChevronDown\n className={cn(\n \"transition-transform\",\n iconSizes[size],\n isOpen && \"rotate-180\",\n )}\n />\n )}\n </div>\n </div>\n );\n\n const cascaderElement = (\n <div\n ref={containerRef}\n className={cn(\"relative cascader_root\", fullWidth ? \"w-full\" : \"inline-block\", classNames?.root)}\n data-slot=\"root\"\n >\n <PopoverPrimitive.Root open={isOpen} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger asChild>\n {triggerElement}\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n side={popoverSide}\n align={popoverAlign}\n sideOffset={4}\n className=\"z-50 outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 duration-200\"\n >\n {renderCascaderMenus()}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n </div>\n );\n\n return (\n <div\n className={cn(\"flex flex-col\", fullWidth ? \"w-full\" : \"inline-block\")}\n >\n <div className=\"flex gap-2 items-center mb-0.5\">\n {label && (\n <label className=\"text-sm font-medium text-text-secondary\">\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </label>\n )}\n {helperMessage && messagePosition === \"top\" && (\n <span\n className={cn(\n \"text-xs\",\n status === \"error\" && \"text-error\",\n status === \"warning\" && \"text-warning\",\n status === \"info\" && \"text-info\",\n status === \"success\" && \"text-success\",\n status === \"default\" && \"text-text-secondary\",\n )}\n >\n {helperMessage}\n </span>\n )}\n </div>\n {cascaderElement}\n {helperMessage && messagePosition === \"bottom\" && (\n <span\n className={cn(\n \"text-xs mt-0.5\",\n status === \"error\" && \"text-error\",\n status === \"warning\" && \"text-warning\",\n status === \"info\" && \"text-info\",\n status === \"success\" && \"text-success\",\n status === \"default\" && \"text-text-secondary\",\n )}\n >\n {helperMessage}\n </span>\n )}\n </div>\n );\n },\n);\n\nCascader.displayName = \"Cascader\";\n\nexport type * from \"./types\";\nexport default Cascader;\n"]}
|
package/dist/chunk-LX4FDH4J.js
DELETED
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-NGYLRX6F.js';
|
|
2
|
-
import { cva } from 'class-variance-authority';
|
|
3
|
-
import React, { useState, useEffect } from 'react';
|
|
4
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
var avatarVariants = cva(
|
|
7
|
-
"relative inline-flex items-center justify-center font-medium select-none shrink-0",
|
|
8
|
-
{
|
|
9
|
-
variants: {
|
|
10
|
-
size: {
|
|
11
|
-
xs: "size-6 text-xs",
|
|
12
|
-
sm: "size-8 text-sm",
|
|
13
|
-
md: "size-10 text-base",
|
|
14
|
-
lg: "size-12 text-lg"
|
|
15
|
-
},
|
|
16
|
-
shape: {
|
|
17
|
-
circle: "rounded-full",
|
|
18
|
-
square: "rounded-lg"
|
|
19
|
-
},
|
|
20
|
-
color: {
|
|
21
|
-
default: "bg-surface text-text-primary",
|
|
22
|
-
primary: "bg-primary/10 text-primary",
|
|
23
|
-
secondary: "bg-secondary/10 text-secondary",
|
|
24
|
-
accent: "bg-accent/10 text-accent",
|
|
25
|
-
success: "bg-success/10 text-success",
|
|
26
|
-
error: "bg-error/10 text-error",
|
|
27
|
-
warning: "bg-warning/10 text-warning",
|
|
28
|
-
info: "bg-info/10 text-info"
|
|
29
|
-
},
|
|
30
|
-
bordered: {
|
|
31
|
-
true: "ring-2 ring-background",
|
|
32
|
-
false: ""
|
|
33
|
-
},
|
|
34
|
-
disabled: {
|
|
35
|
-
true: "opacity-50 cursor-not-allowed",
|
|
36
|
-
false: ""
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
defaultVariants: {
|
|
40
|
-
size: "md",
|
|
41
|
-
shape: "circle",
|
|
42
|
-
color: "default",
|
|
43
|
-
bordered: false,
|
|
44
|
-
disabled: false
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
);
|
|
48
|
-
var statusSizeClasses = {
|
|
49
|
-
xs: "size-1.5",
|
|
50
|
-
sm: "size-2",
|
|
51
|
-
md: "size-2.5",
|
|
52
|
-
lg: "size-3"
|
|
53
|
-
};
|
|
54
|
-
var statusColorClasses = {
|
|
55
|
-
online: "bg-success",
|
|
56
|
-
offline: "bg-border",
|
|
57
|
-
away: "bg-warning",
|
|
58
|
-
busy: "bg-error"
|
|
59
|
-
};
|
|
60
|
-
var badgeSizeClasses = {
|
|
61
|
-
xs: "min-w-3 h-3 text-[8px]",
|
|
62
|
-
sm: "min-w-4 h-4 text-[10px]",
|
|
63
|
-
md: "min-w-5 h-5 text-xs",
|
|
64
|
-
lg: "min-w-6 h-6 text-xs"
|
|
65
|
-
};
|
|
66
|
-
var overlapClasses = {
|
|
67
|
-
xs: "-space-x-1",
|
|
68
|
-
sm: "-space-x-1.5",
|
|
69
|
-
md: "-space-x-2",
|
|
70
|
-
lg: "-space-x-2.5"
|
|
71
|
-
};
|
|
72
|
-
function getInitialsFromName(name) {
|
|
73
|
-
const words = name.trim().split(/\s+/).filter(Boolean);
|
|
74
|
-
if (words.length === 0) return "";
|
|
75
|
-
const firstWord = words[0];
|
|
76
|
-
if (words.length === 1 && firstWord) {
|
|
77
|
-
return firstWord.slice(0, 2).toUpperCase();
|
|
78
|
-
}
|
|
79
|
-
const lastWord = words[words.length - 1];
|
|
80
|
-
const firstInitial = firstWord?.[0] ?? "";
|
|
81
|
-
const lastInitial = lastWord?.[0] ?? "";
|
|
82
|
-
return (firstInitial + lastInitial).toUpperCase();
|
|
83
|
-
}
|
|
84
|
-
var DefaultUserIcon = () => /* @__PURE__ */ jsx(
|
|
85
|
-
"svg",
|
|
86
|
-
{
|
|
87
|
-
className: "size-[60%] text-text-secondary",
|
|
88
|
-
fill: "currentColor",
|
|
89
|
-
viewBox: "0 0 24 24",
|
|
90
|
-
role: "img",
|
|
91
|
-
"aria-hidden": "true",
|
|
92
|
-
children: /* @__PURE__ */ jsx("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" })
|
|
93
|
-
}
|
|
94
|
-
);
|
|
95
|
-
var Avatar = React.memo(
|
|
96
|
-
({
|
|
97
|
-
src,
|
|
98
|
-
alt = "",
|
|
99
|
-
fallback,
|
|
100
|
-
name,
|
|
101
|
-
size = "md",
|
|
102
|
-
shape = "circle",
|
|
103
|
-
status,
|
|
104
|
-
color = "default",
|
|
105
|
-
bordered = false,
|
|
106
|
-
icon,
|
|
107
|
-
badge,
|
|
108
|
-
disabled = false,
|
|
109
|
-
className,
|
|
110
|
-
classNames,
|
|
111
|
-
onError,
|
|
112
|
-
ref,
|
|
113
|
-
...props
|
|
114
|
-
}) => {
|
|
115
|
-
const [imageError, setImageError] = useState(false);
|
|
116
|
-
useEffect(() => {
|
|
117
|
-
setImageError(false);
|
|
118
|
-
}, [src]);
|
|
119
|
-
const handleImageError = (e) => {
|
|
120
|
-
setImageError(true);
|
|
121
|
-
onError?.(e);
|
|
122
|
-
};
|
|
123
|
-
const getInitials = () => {
|
|
124
|
-
if (fallback) return fallback.slice(0, 2).toUpperCase();
|
|
125
|
-
if (name) return getInitialsFromName(name);
|
|
126
|
-
return "";
|
|
127
|
-
};
|
|
128
|
-
const showImage = src && !imageError;
|
|
129
|
-
const initials = getInitials();
|
|
130
|
-
const showFallback = !showImage && (initials || icon);
|
|
131
|
-
const showDefaultIcon = !showImage && !showFallback;
|
|
132
|
-
return /* @__PURE__ */ jsxs(
|
|
133
|
-
"div",
|
|
134
|
-
{
|
|
135
|
-
ref,
|
|
136
|
-
className: cn(
|
|
137
|
-
"avatar_root",
|
|
138
|
-
avatarVariants({
|
|
139
|
-
size,
|
|
140
|
-
shape,
|
|
141
|
-
color: showImage ? "default" : color,
|
|
142
|
-
bordered,
|
|
143
|
-
disabled
|
|
144
|
-
}),
|
|
145
|
-
// Apply overflow-hidden only when no badge/status to prevent clipping
|
|
146
|
-
!badge && !status && "overflow-hidden",
|
|
147
|
-
classNames?.root,
|
|
148
|
-
className
|
|
149
|
-
),
|
|
150
|
-
"aria-disabled": disabled || void 0,
|
|
151
|
-
"data-slot": "root",
|
|
152
|
-
...props,
|
|
153
|
-
children: [
|
|
154
|
-
showImage && /* @__PURE__ */ jsx(
|
|
155
|
-
"img",
|
|
156
|
-
{
|
|
157
|
-
src,
|
|
158
|
-
alt: alt || name || "User avatar",
|
|
159
|
-
onError: handleImageError,
|
|
160
|
-
className: cn(
|
|
161
|
-
"avatar_image",
|
|
162
|
-
"size-full object-cover",
|
|
163
|
-
shape === "circle" ? "rounded-full" : "rounded-lg",
|
|
164
|
-
classNames?.image
|
|
165
|
-
),
|
|
166
|
-
loading: "lazy",
|
|
167
|
-
"data-slot": "image"
|
|
168
|
-
}
|
|
169
|
-
),
|
|
170
|
-
showFallback && (icon ? /* @__PURE__ */ jsx(
|
|
171
|
-
"span",
|
|
172
|
-
{
|
|
173
|
-
className: cn(
|
|
174
|
-
"avatar_fallback",
|
|
175
|
-
"flex items-center justify-center size-[60%]",
|
|
176
|
-
classNames?.fallback
|
|
177
|
-
),
|
|
178
|
-
"data-slot": "fallback",
|
|
179
|
-
children: icon
|
|
180
|
-
}
|
|
181
|
-
) : /* @__PURE__ */ jsx(
|
|
182
|
-
"span",
|
|
183
|
-
{
|
|
184
|
-
className: cn("avatar_fallback", classNames?.fallback),
|
|
185
|
-
"aria-label": `Avatar for ${name || initials}`,
|
|
186
|
-
"data-slot": "fallback",
|
|
187
|
-
children: initials
|
|
188
|
-
}
|
|
189
|
-
)),
|
|
190
|
-
showDefaultIcon && /* @__PURE__ */ jsx(DefaultUserIcon, {}),
|
|
191
|
-
status && /* @__PURE__ */ jsx(
|
|
192
|
-
"span",
|
|
193
|
-
{
|
|
194
|
-
className: cn(
|
|
195
|
-
"avatar_status",
|
|
196
|
-
"absolute bottom-0 right-0 rounded-full ring-2 ring-background",
|
|
197
|
-
statusSizeClasses[size],
|
|
198
|
-
statusColorClasses[status],
|
|
199
|
-
classNames?.status
|
|
200
|
-
),
|
|
201
|
-
"aria-label": `Status: ${status}`,
|
|
202
|
-
"data-slot": "status"
|
|
203
|
-
}
|
|
204
|
-
),
|
|
205
|
-
badge && /* @__PURE__ */ jsx(
|
|
206
|
-
"span",
|
|
207
|
-
{
|
|
208
|
-
className: cn(
|
|
209
|
-
"absolute -top-1 -right-1 flex items-center justify-center rounded-full bg-error text-white font-medium px-1",
|
|
210
|
-
badgeSizeClasses[size]
|
|
211
|
-
),
|
|
212
|
-
"aria-label": typeof badge === "number" ? `${badge} notifications` : void 0,
|
|
213
|
-
role: typeof badge === "number" ? "status" : void 0,
|
|
214
|
-
children: badge
|
|
215
|
-
}
|
|
216
|
-
)
|
|
217
|
-
]
|
|
218
|
-
}
|
|
219
|
-
);
|
|
220
|
-
}
|
|
221
|
-
);
|
|
222
|
-
Avatar.displayName = "Avatar";
|
|
223
|
-
var AvatarGroup = React.memo(
|
|
224
|
-
({
|
|
225
|
-
children,
|
|
226
|
-
max,
|
|
227
|
-
size = "md",
|
|
228
|
-
shape = "circle",
|
|
229
|
-
showTotal = false,
|
|
230
|
-
renderSurplus,
|
|
231
|
-
bordered = false,
|
|
232
|
-
className,
|
|
233
|
-
classNames,
|
|
234
|
-
ref,
|
|
235
|
-
...props
|
|
236
|
-
}) => {
|
|
237
|
-
const childrenArray = React.Children.toArray(children);
|
|
238
|
-
const total = childrenArray.length;
|
|
239
|
-
const visibleChildren = max ? childrenArray.slice(0, max) : childrenArray;
|
|
240
|
-
const remainingCount = max && total > max ? total - max : 0;
|
|
241
|
-
const surplusDisplay = showTotal ? total : remainingCount;
|
|
242
|
-
return /* @__PURE__ */ jsxs(
|
|
243
|
-
"div",
|
|
244
|
-
{
|
|
245
|
-
ref,
|
|
246
|
-
className: cn(
|
|
247
|
-
"avatarGroup_root",
|
|
248
|
-
"flex items-center",
|
|
249
|
-
overlapClasses[size],
|
|
250
|
-
classNames?.root,
|
|
251
|
-
className
|
|
252
|
-
),
|
|
253
|
-
role: "group",
|
|
254
|
-
"aria-label": `Avatar group with ${total} members`,
|
|
255
|
-
"data-slot": "root",
|
|
256
|
-
...props,
|
|
257
|
-
children: [
|
|
258
|
-
visibleChildren.map((child, index) => {
|
|
259
|
-
if (React.isValidElement(child)) {
|
|
260
|
-
return React.cloneElement(child, {
|
|
261
|
-
key: child.key ?? index,
|
|
262
|
-
size: child.props.size ?? size,
|
|
263
|
-
shape: child.props.shape ?? shape,
|
|
264
|
-
bordered: child.props.bordered ?? bordered ?? true,
|
|
265
|
-
className: cn(child.props.className)
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
return child;
|
|
269
|
-
}),
|
|
270
|
-
remainingCount > 0 && (renderSurplus ? renderSurplus(surplusDisplay) : /* @__PURE__ */ jsx(
|
|
271
|
-
"div",
|
|
272
|
-
{
|
|
273
|
-
className: cn(
|
|
274
|
-
"avatarGroup_overflow",
|
|
275
|
-
avatarVariants({
|
|
276
|
-
size,
|
|
277
|
-
shape,
|
|
278
|
-
color: "default",
|
|
279
|
-
bordered: true
|
|
280
|
-
}),
|
|
281
|
-
"bg-surface/80 backdrop-blur-sm overflow-hidden",
|
|
282
|
-
classNames?.overflow
|
|
283
|
-
),
|
|
284
|
-
"aria-label": showTotal ? `${total} total members` : `${remainingCount} more members`,
|
|
285
|
-
"data-slot": "overflow",
|
|
286
|
-
children: /* @__PURE__ */ jsx("span", { className: "text-text-secondary font-medium", children: showTotal ? total : `+${remainingCount}` })
|
|
287
|
-
}
|
|
288
|
-
))
|
|
289
|
-
]
|
|
290
|
-
}
|
|
291
|
-
);
|
|
292
|
-
}
|
|
293
|
-
);
|
|
294
|
-
AvatarGroup.displayName = "AvatarGroup";
|
|
295
|
-
var avatar_default = Avatar;
|
|
296
|
-
|
|
297
|
-
export { Avatar, AvatarGroup, avatar_default };
|
|
298
|
-
//# sourceMappingURL=chunk-LX4FDH4J.js.map
|
|
299
|
-
//# sourceMappingURL=chunk-LX4FDH4J.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/avatar/index.tsx"],"names":[],"mappings":";;;;;AAWA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,mFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,KAAA,EAAO;AAAA,QACL,MAAA,EAAQ,cAAA;AAAA,QACR,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,8BAAA;AAAA,QACT,OAAA,EAAS,4BAAA;AAAA,QACT,SAAA,EAAW,gCAAA;AAAA,QACX,MAAA,EAAQ,0BAAA;AAAA,QACR,OAAA,EAAS,4BAAA;AAAA,QACT,KAAA,EAAO,wBAAA;AAAA,QACP,OAAA,EAAS,4BAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,wBAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,+BAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,KAAA;AAAA,MACV,QAAA,EAAU;AAAA;AACZ;AAEJ,CAAA;AAKA,IAAM,iBAAA,GAAgD;AAAA,EACpD,EAAA,EAAI,UAAA;AAAA,EACJ,EAAA,EAAI,QAAA;AAAA,EACJ,EAAA,EAAI,UAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAKA,IAAM,kBAAA,GAAqB;AAAA,EACzB,MAAA,EAAQ,YAAA;AAAA,EACR,OAAA,EAAS,WAAA;AAAA,EACT,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAKA,IAAM,gBAAA,GAA+C;AAAA,EACnD,EAAA,EAAI,wBAAA;AAAA,EACJ,EAAA,EAAI,yBAAA;AAAA,EACJ,EAAA,EAAI,qBAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAKA,IAAM,cAAA,GAA6C;AAAA,EACjD,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI,cAAA;AAAA,EACJ,EAAA,EAAI,YAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAKA,SAAS,oBAAoB,IAAA,EAAsB;AACjD,EAAA,MAAM,KAAA,GAAQ,KAAK,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AACrD,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,EAAA;AAE/B,EAAA,MAAM,SAAA,GAAY,MAAM,CAAC,CAAA;AACzB,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,IAAK,SAAA,EAAW;AACnC,IAAA,OAAO,SAAA,CAAU,KAAA,CAAM,CAAA,EAAG,CAAC,EAAE,WAAA,EAAY;AAAA,EAC3C;AAEA,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA;AACvC,EAAA,MAAM,YAAA,GAAe,SAAA,GAAY,CAAC,CAAA,IAAK,EAAA;AACvC,EAAA,MAAM,WAAA,GAAc,QAAA,GAAW,CAAC,CAAA,IAAK,EAAA;AACrC,EAAA,OAAA,CAAQ,YAAA,GAAe,aAAa,WAAA,EAAY;AAClD;AAKA,IAAM,kBAAkB,sBACtB,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAU,gCAAA;AAAA,IACV,IAAA,EAAK,cAAA;AAAA,IACL,OAAA,EAAQ,WAAA;AAAA,IACR,IAAA,EAAK,KAAA;AAAA,IACL,aAAA,EAAY,MAAA;AAAA,IAEZ,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,+GAAA,EAAgH;AAAA;AAC1H,CAAA;AAMF,IAAM,SAAS,KAAA,CAAM,IAAA;AAAA,EACnB,CAAC;AAAA,IACC,GAAA;AAAA,IACA,GAAA,GAAM,EAAA;AAAA,IACN,QAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,KAAA,GAAQ,QAAA;AAAA,IACR,MAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,QAAA,GAAW,KAAA;AAAA,IACX,IAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA;AAGlD,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,aAAA,CAAc,KAAK,CAAA;AAAA,IACrB,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAER,IAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAA8C;AACtE,MAAA,aAAA,CAAc,IAAI,CAAA;AAClB,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAGA,IAAA,MAAM,cAAc,MAAM;AACxB,MAAA,IAAI,UAAU,OAAO,QAAA,CAAS,MAAM,CAAA,EAAG,CAAC,EAAE,WAAA,EAAY;AACtD,MAAA,IAAI,IAAA,EAAM,OAAO,mBAAA,CAAoB,IAAI,CAAA;AACzC,MAAA,OAAO,EAAA;AAAA,IACT,CAAA;AAEA,IAAA,MAAM,SAAA,GAAY,OAAO,CAAC,UAAA;AAC1B,IAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,IAAA,MAAM,YAAA,GAAe,CAAC,SAAA,KAAc,QAAA,IAAY,IAAA,CAAA;AAChD,IAAA,MAAM,eAAA,GAAkB,CAAC,SAAA,IAAa,CAAC,YAAA;AAEvC,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,aAAA;AAAA,UACA,cAAA,CAAe;AAAA,YACb,IAAA;AAAA,YACA,KAAA;AAAA,YACA,KAAA,EAAO,YAAY,SAAA,GAAY,KAAA;AAAA,YAC/B,QAAA;AAAA,YACA;AAAA,WACD,CAAA;AAAA;AAAA,UAED,CAAC,KAAA,IAAS,CAAC,MAAA,IAAU,iBAAA;AAAA,UACrB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,WAAA,EAAU,MAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAGH,QAAA,EAAA;AAAA,UAAA,SAAA,oBACC,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,GAAA,EAAK,OAAO,IAAA,IAAQ,aAAA;AAAA,cACpB,OAAA,EAAS,gBAAA;AAAA,cACT,SAAA,EAAW,EAAA;AAAA,gBACT,cAAA;AAAA,gBACA,wBAAA;AAAA,gBACA,KAAA,KAAU,WAAW,cAAA,GAAiB,YAAA;AAAA,gBACtC,UAAA,EAAY;AAAA,eACd;AAAA,cACA,OAAA,EAAQ,MAAA;AAAA,cACR,WAAA,EAAU;AAAA;AAAA,WACZ;AAAA,UAID,iBACE,IAAA,mBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,iBAAA;AAAA,gBACA,6CAAA;AAAA,gBACA,UAAA,EAAY;AAAA,eACd;AAAA,cACA,WAAA,EAAU,UAAA;AAAA,cAET,QAAA,EAAA;AAAA;AAAA,WACH,mBAEA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAmB,UAAA,EAAY,QAAQ,CAAA;AAAA,cACrD,YAAA,EAAY,CAAA,WAAA,EAAc,IAAA,IAAQ,QAAQ,CAAA,CAAA;AAAA,cAC1C,WAAA,EAAU,UAAA;AAAA,cAET,QAAA,EAAA;AAAA;AAAA,WACH,CAAA;AAAA,UAIH,eAAA,wBAAoB,eAAA,EAAA,EAAgB,CAAA;AAAA,UAGpC,MAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,eAAA;AAAA,gBACA,+DAAA;AAAA,gBACA,kBAAkB,IAAI,CAAA;AAAA,gBACtB,mBAAmB,MAAM,CAAA;AAAA,gBACzB,UAAA,EAAY;AAAA,eACd;AAAA,cACA,YAAA,EAAY,WAAW,MAAM,CAAA,CAAA;AAAA,cAC7B,WAAA,EAAU;AAAA;AAAA,WACZ;AAAA,UAID,KAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,6GAAA;AAAA,gBACA,iBAAiB,IAAI;AAAA,eACvB;AAAA,cACA,cAAY,OAAO,KAAA,KAAU,QAAA,GAAW,CAAA,EAAG,KAAK,CAAA,cAAA,CAAA,GAAmB,MAAA;AAAA,cACnE,IAAA,EAAM,OAAO,KAAA,KAAU,QAAA,GAAW,QAAA,GAAW,MAAA;AAAA,cAE5C,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;AAKrB,IAAM,cAAc,KAAA,CAAM,IAAA;AAAA,EACxB,CAAC;AAAA,IACC,QAAA;AAAA,IACA,GAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,KAAA,GAAQ,QAAA;AAAA,IACR,SAAA,GAAY,KAAA;AAAA,IACZ,aAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,QAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA;AACrD,IAAA,MAAM,QAAQ,aAAA,CAAc,MAAA;AAC5B,IAAA,MAAM,kBAAkB,GAAA,GAAM,aAAA,CAAc,KAAA,CAAM,CAAA,EAAG,GAAG,CAAA,GAAI,aAAA;AAC5D,IAAA,MAAM,cAAA,GAAiB,GAAA,IAAO,KAAA,GAAQ,GAAA,GAAM,QAAQ,GAAA,GAAM,CAAA;AAC1D,IAAA,MAAM,cAAA,GAAiB,YAAY,KAAA,GAAQ,cAAA;AAE3C,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,kBAAA;AAAA,UACA,mBAAA;AAAA,UACA,eAAe,IAAI,CAAA;AAAA,UACnB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,YAAA,EAAY,qBAAqB,KAAK,CAAA,QAAA,CAAA;AAAA,QACtC,WAAA,EAAU,MAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,eAAA,CAAgB,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,KAAU;AACrC,YAAA,IAAI,KAAA,CAAM,cAAA,CAA4B,KAAK,CAAA,EAAG;AAC5C,cAAA,OAAO,KAAA,CAAM,aAAa,KAAA,EAAO;AAAA,gBAC/B,GAAA,EAAK,MAAM,GAAA,IAAO,KAAA;AAAA,gBAClB,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,IAAA,IAAQ,IAAA;AAAA,gBAC1B,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,KAAA,IAAS,KAAA;AAAA,gBAC5B,QAAA,EAAU,KAAA,CAAM,KAAA,CAAM,QAAA,IAAY,QAAA,IAAY,IAAA;AAAA,gBAC9C,SAAA,EAAW,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,SAAS;AAAA,eACpC,CAAA;AAAA,YACH;AACA,YAAA,OAAO,KAAA;AAAA,UACT,CAAC,CAAA;AAAA,UAEA,cAAA,GAAiB,CAAA,KACf,aAAA,GACC,aAAA,CAAc,cAAc,CAAA,mBAE5B,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,sBAAA;AAAA,gBACA,cAAA,CAAe;AAAA,kBACb,IAAA;AAAA,kBACA,KAAA;AAAA,kBACA,KAAA,EAAO,SAAA;AAAA,kBACP,QAAA,EAAU;AAAA,iBACX,CAAA;AAAA,gBACD,gDAAA;AAAA,gBACA,UAAA,EAAY;AAAA,eACd;AAAA,cACA,cACE,SAAA,GACI,CAAA,EAAG,KAAK,CAAA,cAAA,CAAA,GACR,GAAG,cAAc,CAAA,aAAA,CAAA;AAAA,cAEvB,WAAA,EAAU,UAAA;AAAA,cAEV,QAAA,kBAAA,GAAA,CAAC,UAAK,SAAA,EAAU,iCAAA,EACb,sBAAY,KAAA,GAAQ,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA,EACzC;AAAA;AAAA,WACF;AAAA;AAAA;AAAA,KAEN;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAI1B,IAAO,cAAA,GAAQ","file":"chunk-LX4FDH4J.js","sourcesContent":["'use client'\n\nimport { cva } from \"class-variance-authority\";\nimport React, { useState, useEffect } from \"react\";\n\nimport { cn } from \"../utils\";\nimport type { AvatarGroupProps, AvatarProps, AvatarSize } from \"./types\";\n\n/**\n * Avatar size variants\n */\nconst avatarVariants = cva(\n \"relative inline-flex items-center justify-center font-medium select-none shrink-0\",\n {\n variants: {\n size: {\n xs: \"size-6 text-xs\",\n sm: \"size-8 text-sm\",\n md: \"size-10 text-base\",\n lg: \"size-12 text-lg\",\n },\n shape: {\n circle: \"rounded-full\",\n square: \"rounded-lg\",\n },\n color: {\n default: \"bg-surface text-text-primary\",\n primary: \"bg-primary/10 text-primary\",\n secondary: \"bg-secondary/10 text-secondary\",\n accent: \"bg-accent/10 text-accent\",\n success: \"bg-success/10 text-success\",\n error: \"bg-error/10 text-error\",\n warning: \"bg-warning/10 text-warning\",\n info: \"bg-info/10 text-info\",\n },\n bordered: {\n true: \"ring-2 ring-background\",\n false: \"\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n shape: \"circle\",\n color: \"default\",\n bordered: false,\n disabled: false,\n },\n },\n);\n\n/**\n * Status indicator size classes\n */\nconst statusSizeClasses: Record<AvatarSize, string> = {\n xs: \"size-1.5\",\n sm: \"size-2\",\n md: \"size-2.5\",\n lg: \"size-3\",\n};\n\n/**\n * Status indicator color classes\n */\nconst statusColorClasses = {\n online: \"bg-success\",\n offline: \"bg-border\",\n away: \"bg-warning\",\n busy: \"bg-error\",\n};\n\n/**\n * Badge size classes\n */\nconst badgeSizeClasses: Record<AvatarSize, string> = {\n xs: \"min-w-3 h-3 text-[8px]\",\n sm: \"min-w-4 h-4 text-[10px]\",\n md: \"min-w-5 h-5 text-xs\",\n lg: \"min-w-6 h-6 text-xs\",\n};\n\n/**\n * Overlap spacing classes for AvatarGroup\n */\nconst overlapClasses: Record<AvatarSize, string> = {\n xs: \"-space-x-1\",\n sm: \"-space-x-1.5\",\n md: \"-space-x-2\",\n lg: \"-space-x-2.5\",\n};\n\n/**\n * Generate initials from a name\n */\nfunction getInitialsFromName(name: string): string {\n const words = name.trim().split(/\\s+/).filter(Boolean);\n if (words.length === 0) return \"\";\n\n const firstWord = words[0];\n if (words.length === 1 && firstWord) {\n return firstWord.slice(0, 2).toUpperCase();\n }\n\n const lastWord = words[words.length - 1];\n const firstInitial = firstWord?.[0] ?? \"\";\n const lastInitial = lastWord?.[0] ?? \"\";\n return (firstInitial + lastInitial).toUpperCase();\n}\n\n/**\n * Default user icon SVG\n */\nconst DefaultUserIcon = () => (\n <svg\n className=\"size-[60%] text-text-secondary\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n </svg>\n);\n\n/**\n * Avatar Component\n */\nconst Avatar = React.memo<AvatarProps>(\n ({\n src,\n alt = \"\",\n fallback,\n name,\n size = \"md\",\n shape = \"circle\",\n status,\n color = \"default\",\n bordered = false,\n icon,\n badge,\n disabled = false,\n className,\n classNames,\n onError,\n ref,\n ...props\n }) => {\n const [imageError, setImageError] = useState(false);\n\n // Reset image error state when src changes\n useEffect(() => {\n setImageError(false);\n }, [src]);\n\n const handleImageError = (e: React.SyntheticEvent<HTMLImageElement>) => {\n setImageError(true);\n onError?.(e);\n };\n\n // Get initials from fallback or name\n const getInitials = () => {\n if (fallback) return fallback.slice(0, 2).toUpperCase();\n if (name) return getInitialsFromName(name);\n return \"\";\n };\n\n const showImage = src && !imageError;\n const initials = getInitials();\n const showFallback = !showImage && (initials || icon);\n const showDefaultIcon = !showImage && !showFallback;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"avatar_root\",\n avatarVariants({\n size,\n shape,\n color: showImage ? \"default\" : color,\n bordered,\n disabled,\n }),\n // Apply overflow-hidden only when no badge/status to prevent clipping\n !badge && !status && \"overflow-hidden\",\n classNames?.root,\n className,\n )}\n aria-disabled={disabled || undefined}\n data-slot=\"root\"\n {...props}\n >\n {/* Image */}\n {showImage && (\n <img\n src={src}\n alt={alt || name || \"User avatar\"}\n onError={handleImageError}\n className={cn(\n \"avatar_image\",\n \"size-full object-cover\",\n shape === \"circle\" ? \"rounded-full\" : \"rounded-lg\",\n classNames?.image,\n )}\n loading=\"lazy\"\n data-slot=\"image\"\n />\n )}\n\n {/* Fallback: Icon or Initials */}\n {showFallback &&\n (icon ? (\n <span\n className={cn(\n \"avatar_fallback\",\n \"flex items-center justify-center size-[60%]\",\n classNames?.fallback,\n )}\n data-slot=\"fallback\"\n >\n {icon}\n </span>\n ) : (\n <span\n className={cn(\"avatar_fallback\", classNames?.fallback)}\n aria-label={`Avatar for ${name || initials}`}\n data-slot=\"fallback\"\n >\n {initials}\n </span>\n ))}\n\n {/* Default user icon */}\n {showDefaultIcon && <DefaultUserIcon />}\n\n {/* Status indicator */}\n {status && (\n <span\n className={cn(\n \"avatar_status\",\n \"absolute bottom-0 right-0 rounded-full ring-2 ring-background\",\n statusSizeClasses[size],\n statusColorClasses[status],\n classNames?.status,\n )}\n aria-label={`Status: ${status}`}\n data-slot=\"status\"\n />\n )}\n\n {/* Badge */}\n {badge && (\n <span\n className={cn(\n \"absolute -top-1 -right-1 flex items-center justify-center rounded-full bg-error text-white font-medium px-1\",\n badgeSizeClasses[size],\n )}\n aria-label={typeof badge === \"number\" ? `${badge} notifications` : undefined}\n role={typeof badge === \"number\" ? \"status\" : undefined}\n >\n {badge}\n </span>\n )}\n </div>\n );\n },\n);\n\nAvatar.displayName = \"Avatar\";\n\n/**\n * AvatarGroup Component\n */\nconst AvatarGroup = React.memo<AvatarGroupProps>(\n ({\n children,\n max,\n size = \"md\",\n shape = \"circle\",\n showTotal = false,\n renderSurplus,\n bordered = false,\n className,\n classNames,\n ref,\n ...props\n }) => {\n const childrenArray = React.Children.toArray(children);\n const total = childrenArray.length;\n const visibleChildren = max ? childrenArray.slice(0, max) : childrenArray;\n const remainingCount = max && total > max ? total - max : 0;\n const surplusDisplay = showTotal ? total : remainingCount;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"avatarGroup_root\",\n \"flex items-center\",\n overlapClasses[size],\n classNames?.root,\n className,\n )}\n role=\"group\"\n aria-label={`Avatar group with ${total} members`}\n data-slot=\"root\"\n {...props}\n >\n {visibleChildren.map((child, index) => {\n if (React.isValidElement<AvatarProps>(child)) {\n return React.cloneElement(child, {\n key: child.key ?? index,\n size: child.props.size ?? size,\n shape: child.props.shape ?? shape,\n bordered: child.props.bordered ?? bordered ?? true,\n className: cn(child.props.className),\n });\n }\n return child;\n })}\n\n {remainingCount > 0 &&\n (renderSurplus ? (\n renderSurplus(surplusDisplay)\n ) : (\n <div\n className={cn(\n \"avatarGroup_overflow\",\n avatarVariants({\n size,\n shape,\n color: \"default\",\n bordered: true,\n }),\n \"bg-surface/80 backdrop-blur-sm overflow-hidden\",\n classNames?.overflow,\n )}\n aria-label={\n showTotal\n ? `${total} total members`\n : `${remainingCount} more members`\n }\n data-slot=\"overflow\"\n >\n <span className=\"text-text-secondary font-medium\">\n {showTotal ? total : `+${remainingCount}`}\n </span>\n </div>\n ))}\n </div>\n );\n },\n);\n\nAvatarGroup.displayName = \"AvatarGroup\";\n\nexport type * from \"./types\";\nexport { Avatar, AvatarGroup };\nexport default Avatar;\n"]}
|
package/dist/chunk-N2WHJ3FI.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-NGYLRX6F.js';
|
|
2
|
-
import React, { useRef, useState, useEffect } from 'react';
|
|
3
|
-
import { Pagination } from 'swiper/modules';
|
|
4
|
-
import { Swiper } from 'swiper/react';
|
|
5
|
-
import 'swiper/css';
|
|
6
|
-
import 'swiper/css/pagination';
|
|
7
|
-
import { ChevronRight, ChevronLeft } from 'lucide-react';
|
|
8
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
|
-
|
|
10
|
-
function CarouselNavigation({ type, swiper, className }) {
|
|
11
|
-
const [slideConfig, setSlideConfig] = useState({
|
|
12
|
-
isBeginning: true,
|
|
13
|
-
isEnd: false
|
|
14
|
-
});
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
if (!swiper) return;
|
|
17
|
-
const updateSlideState = () => {
|
|
18
|
-
setSlideConfig({ isBeginning: swiper.isBeginning, isEnd: swiper.isEnd });
|
|
19
|
-
};
|
|
20
|
-
swiper.on("slideChange", updateSlideState);
|
|
21
|
-
return () => {
|
|
22
|
-
swiper.off("slideChange", updateSlideState);
|
|
23
|
-
};
|
|
24
|
-
}, [swiper]);
|
|
25
|
-
if (!swiper) return null;
|
|
26
|
-
if (slideConfig.isBeginning && type === "prev") return null;
|
|
27
|
-
if (slideConfig.isEnd && type === "next") return null;
|
|
28
|
-
return /* @__PURE__ */ jsx(
|
|
29
|
-
"button",
|
|
30
|
-
{
|
|
31
|
-
type: "button",
|
|
32
|
-
"aria-label": type === "next" ? "Next slide" : "Previous slide",
|
|
33
|
-
onClick: (e) => {
|
|
34
|
-
e.stopPropagation();
|
|
35
|
-
if (type === "next") {
|
|
36
|
-
swiper?.slideNext();
|
|
37
|
-
} else {
|
|
38
|
-
swiper?.slidePrev();
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
className: cn(
|
|
42
|
-
"flex items-center justify-center w-9 h-9 rounded-full border border-border bg-background shadow-sm hover:bg-surface transition cursor-pointer focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 outline-none",
|
|
43
|
-
className
|
|
44
|
-
),
|
|
45
|
-
children: type === "next" ? /* @__PURE__ */ jsx(ChevronRight, { size: 18, "aria-hidden": "true" }) : /* @__PURE__ */ jsx(ChevronLeft, { size: 18, "aria-hidden": "true" })
|
|
46
|
-
}
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
var pagination = {
|
|
50
|
-
clickable: true,
|
|
51
|
-
horizontalClass: "pagination",
|
|
52
|
-
bulletActiveClass: "bg-text-primary",
|
|
53
|
-
bulletClass: "inline-flex w-2.5 h-2.5 mx-1 rounded-full bg-border opacity-70 transition-[opacity,colors] duration-300 cursor-pointer hover:opacity-100"
|
|
54
|
-
};
|
|
55
|
-
var Carousel = React.memo(
|
|
56
|
-
({
|
|
57
|
-
withArrows = false,
|
|
58
|
-
withPagination = false,
|
|
59
|
-
children,
|
|
60
|
-
loop = false,
|
|
61
|
-
className,
|
|
62
|
-
classNames,
|
|
63
|
-
modules,
|
|
64
|
-
...props
|
|
65
|
-
}) => {
|
|
66
|
-
const swiperRef = useRef(null);
|
|
67
|
-
const [, setRenderTrigger] = useState(0);
|
|
68
|
-
return /* @__PURE__ */ jsxs(
|
|
69
|
-
"div",
|
|
70
|
-
{
|
|
71
|
-
className: cn(
|
|
72
|
-
"carousel_root",
|
|
73
|
-
"relative h-full group",
|
|
74
|
-
classNames?.root,
|
|
75
|
-
className
|
|
76
|
-
),
|
|
77
|
-
role: "region",
|
|
78
|
-
"aria-roledescription": "carousel",
|
|
79
|
-
"aria-label": "Image carousel",
|
|
80
|
-
children: [
|
|
81
|
-
withArrows && /* @__PURE__ */ jsx("div", { className: cn(
|
|
82
|
-
"carousel_navigation",
|
|
83
|
-
"absolute -translate-y-1/2 top-1/2 left-0 flex px-1 z-10 opacity-0 group-hover:opacity-100 transition-[opacity,colors] duration-200",
|
|
84
|
-
classNames?.navigation
|
|
85
|
-
), children: /* @__PURE__ */ jsx(
|
|
86
|
-
CarouselNavigation,
|
|
87
|
-
{
|
|
88
|
-
type: "prev",
|
|
89
|
-
swiper: swiperRef.current,
|
|
90
|
-
className: cn("carousel_navButton", classNames?.navButton)
|
|
91
|
-
}
|
|
92
|
-
) }),
|
|
93
|
-
/* @__PURE__ */ jsx(
|
|
94
|
-
Swiper,
|
|
95
|
-
{
|
|
96
|
-
loop,
|
|
97
|
-
...props,
|
|
98
|
-
modules: [Pagination, ...modules || []],
|
|
99
|
-
pagination: withPagination ? pagination : false,
|
|
100
|
-
className: cn("carousel_wrapper", "relative", classNames?.wrapper),
|
|
101
|
-
onBeforeInit: (swiper) => {
|
|
102
|
-
swiperRef.current = swiper;
|
|
103
|
-
setRenderTrigger((x) => x + 1);
|
|
104
|
-
},
|
|
105
|
-
children
|
|
106
|
-
}
|
|
107
|
-
),
|
|
108
|
-
withArrows && /* @__PURE__ */ jsx("div", { className: cn(
|
|
109
|
-
"carousel_navigation",
|
|
110
|
-
"absolute -translate-y-1/2 top-1/2 right-0 flex px-1 z-10 opacity-0 group-hover:opacity-100 transition-[opacity,colors] duration-200",
|
|
111
|
-
classNames?.navigation
|
|
112
|
-
), children: /* @__PURE__ */ jsx(
|
|
113
|
-
CarouselNavigation,
|
|
114
|
-
{
|
|
115
|
-
type: "next",
|
|
116
|
-
swiper: swiperRef.current,
|
|
117
|
-
className: cn("carousel_navButton", classNames?.navButton)
|
|
118
|
-
}
|
|
119
|
-
) })
|
|
120
|
-
]
|
|
121
|
-
}
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
);
|
|
125
|
-
Carousel.displayName = "Carousel";
|
|
126
|
-
var carousel_default = Carousel;
|
|
127
|
-
|
|
128
|
-
export { carousel_default };
|
|
129
|
-
//# sourceMappingURL=chunk-N2WHJ3FI.js.map
|
|
130
|
-
//# sourceMappingURL=chunk-N2WHJ3FI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/carousel/carousel-navigation.tsx","../src/carousel/index.tsx"],"names":["useState","jsx"],"mappings":"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","file":"chunk-N2WHJ3FI.js","sourcesContent":["'use client'\n\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\nimport { Swiper as SwiperType } from 'swiper/types'\nimport { useEffect, useState } from 'react'\nimport { cn } from '../utils'\n\ninterface CarouselNavigationProps {\n type: 'next' | 'prev'\n swiper: SwiperType | null\n className?: string\n}\n\nexport function CarouselNavigation({ type, swiper, className }: CarouselNavigationProps) {\n const [slideConfig, setSlideConfig] = useState({\n isBeginning: true,\n isEnd: false,\n })\n\n useEffect(() => {\n if (!swiper) return\n\n const updateSlideState = () => {\n setSlideConfig({ isBeginning: swiper.isBeginning, isEnd: swiper.isEnd })\n }\n\n swiper.on('slideChange', updateSlideState)\n\n return () => {\n swiper.off('slideChange', updateSlideState)\n }\n }, [swiper])\n\n if (!swiper) return null\n if (slideConfig.isBeginning && type === 'prev') return null\n if (slideConfig.isEnd && type === 'next') return null\n\n return (\n <button\n type=\"button\"\n aria-label={type === 'next' ? 'Next slide' : 'Previous slide'}\n onClick={(e) => {\n e.stopPropagation()\n if (type === 'next') {\n swiper?.slideNext()\n } else {\n swiper?.slidePrev()\n }\n }}\n className={cn(\n 'flex items-center justify-center w-9 h-9 rounded-full border border-border bg-background shadow-sm hover:bg-surface transition cursor-pointer focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 outline-none',\n className\n )}\n >\n {type === 'next' ? <ChevronRight size={18} aria-hidden=\"true\" /> : <ChevronLeft size={18} aria-hidden=\"true\" />}\n </button>\n )\n}\n","'use client'\n\nimport React, { useRef, useState } from 'react'\nimport { Pagination } from 'swiper/modules'\nimport { Swiper, SwiperProps } from 'swiper/react'\nimport { PaginationOptions, Swiper as SwiperType } from 'swiper/types'\n\n// Swiper core styles - required for carousel to render correctly\nimport 'swiper/css'\nimport 'swiper/css/pagination'\n\nimport { cn } from '../utils'\nimport { CarouselNavigation } from './carousel-navigation'\n\nexport interface CarouselClassNames {\n /**\n * Class name for the root container\n */\n root?: string\n\n /**\n * Class name for the wrapper element\n */\n wrapper?: string\n\n /**\n * Class name for individual slides\n */\n slide?: string\n\n /**\n * Class name for the navigation container\n */\n navigation?: string\n\n /**\n * Class name for navigation buttons\n */\n navButton?: string\n\n /**\n * Class name for the pagination container\n */\n pagination?: string\n\n /**\n * Class name for pagination dots\n */\n dot?: string\n\n /**\n * Class name for active pagination dot\n */\n dotActive?: string\n}\n\nexport interface CarouselProps extends SwiperProps {\n withArrows?: boolean\n withPagination?: boolean\n children: React.ReactNode\n /**\n * ClassNames for component parts\n */\n classNames?: CarouselClassNames\n}\n\nconst pagination: PaginationOptions = {\n clickable: true,\n horizontalClass: 'pagination',\n bulletActiveClass: 'bg-text-primary',\n bulletClass:\n 'inline-flex w-2.5 h-2.5 mx-1 rounded-full bg-border opacity-70 transition-[opacity,colors] duration-300 cursor-pointer hover:opacity-100',\n}\n\nconst Carousel = React.memo<CarouselProps>(\n ({\n withArrows = false,\n withPagination = false,\n children,\n loop = false,\n className,\n classNames,\n modules,\n ...props\n }) => {\n const swiperRef = useRef<SwiperType | null>(null)\n const [, setRenderTrigger] = useState(0)\n\n return (\n <div\n className={cn(\n 'carousel_root',\n 'relative h-full group',\n classNames?.root,\n className\n )}\n role=\"region\"\n aria-roledescription=\"carousel\"\n aria-label=\"Image carousel\"\n >\n {withArrows && (\n <div className={cn(\n 'carousel_navigation',\n 'absolute -translate-y-1/2 top-1/2 left-0 flex px-1 z-10 opacity-0 group-hover:opacity-100 transition-[opacity,colors] duration-200',\n classNames?.navigation\n )}>\n <CarouselNavigation\n type=\"prev\"\n swiper={swiperRef.current}\n className={cn('carousel_navButton', classNames?.navButton)}\n />\n </div>\n )}\n\n <Swiper\n loop={loop}\n {...props}\n modules={[Pagination, ...(modules || [])]}\n pagination={withPagination ? pagination : false}\n className={cn('carousel_wrapper', 'relative', classNames?.wrapper)}\n onBeforeInit={(swiper) => {\n swiperRef.current = swiper\n setRenderTrigger((x) => x + 1) // Trigger re-render to update navigation refs\n }}\n >\n {children}\n </Swiper>\n\n {withArrows && (\n <div className={cn(\n 'carousel_navigation',\n 'absolute -translate-y-1/2 top-1/2 right-0 flex px-1 z-10 opacity-0 group-hover:opacity-100 transition-[opacity,colors] duration-200',\n classNames?.navigation\n )}>\n <CarouselNavigation\n type=\"next\"\n swiper={swiperRef.current}\n className={cn('carousel_navButton', classNames?.navButton)}\n />\n </div>\n )}\n </div>\n )\n },\n)\n\nCarousel.displayName = 'Carousel'\n\nexport default Carousel\n"]}
|