@mdigital_ui/ui 0.3.8 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion/index.d.ts.map +1 -1
- package/dist/accordion/index.js +2 -2
- package/dist/badge/index.d.ts +1 -1
- package/dist/badge/index.d.ts.map +1 -1
- package/dist/badge/index.js +2 -2
- package/dist/breadcrumbs/index.js +5 -4
- package/dist/button/index.d.ts +9 -0
- package/dist/button/index.d.ts.map +1 -1
- package/dist/button/index.js +4 -3
- package/dist/button/types.d.ts +18 -0
- package/dist/button/types.d.ts.map +1 -1
- package/dist/card/index.d.ts +14 -14
- package/dist/card/index.d.ts.map +1 -1
- package/dist/card/index.js +2 -2
- package/dist/carousel/index.d.ts +1 -1
- package/dist/carousel/index.d.ts.map +1 -1
- package/dist/carousel/index.js +1 -1
- package/dist/cascader/index.js +2 -2
- package/dist/checkbox/index.js +2 -2
- package/dist/{chunk-7P3Q6H2V.js → chunk-2F5MMMVP.js} +4 -4
- package/dist/{chunk-7P3Q6H2V.js.map → chunk-2F5MMMVP.js.map} +1 -1
- package/dist/chunk-2TLOWZE4.js +689 -0
- package/dist/chunk-2TLOWZE4.js.map +1 -0
- package/dist/{chunk-ITCXCSUS.js → chunk-3BZE6BBJ.js} +9 -4
- package/dist/chunk-3BZE6BBJ.js.map +1 -0
- package/dist/{chunk-6QZFWSN7.js → chunk-3PWILVOE.js} +13 -6
- package/dist/chunk-3PWILVOE.js.map +1 -0
- package/dist/{chunk-M3AALH7G.js → chunk-4F7U5UPY.js} +16 -8
- package/dist/chunk-4F7U5UPY.js.map +1 -0
- package/dist/{chunk-QKSDVYKF.js → chunk-4FFVNUTK.js} +5 -8
- package/dist/chunk-4FFVNUTK.js.map +1 -0
- package/dist/{chunk-OV6K6GML.js → chunk-5QQH5LYU.js} +8 -8
- package/dist/chunk-5QQH5LYU.js.map +1 -0
- package/dist/{chunk-FCODTRKL.js → chunk-6BAP6QUT.js} +3 -3
- package/dist/{chunk-FCODTRKL.js.map → chunk-6BAP6QUT.js.map} +1 -1
- package/dist/chunk-6G3BMY4N.js +349 -0
- package/dist/chunk-6G3BMY4N.js.map +1 -0
- package/dist/{chunk-WMTEAMPB.js → chunk-6LYRMQOI.js} +83 -9
- package/dist/chunk-6LYRMQOI.js.map +1 -0
- package/dist/{chunk-DUNER5Q3.js → chunk-6YOOKE6C.js} +11 -6
- package/dist/chunk-6YOOKE6C.js.map +1 -0
- package/dist/chunk-764UKE6X.js +359 -0
- package/dist/chunk-764UKE6X.js.map +1 -0
- package/dist/{chunk-EGNF7BRT.js → chunk-C4SHFLFR.js} +3 -3
- package/dist/{chunk-EGNF7BRT.js.map → chunk-C4SHFLFR.js.map} +1 -1
- package/dist/{chunk-ZQTJBYKO.js → chunk-C5IGZLIT.js} +3 -3
- package/dist/{chunk-ZQTJBYKO.js.map → chunk-C5IGZLIT.js.map} +1 -1
- package/dist/{chunk-SX5UNM6C.js → chunk-CH3YMDCF.js} +6 -6
- package/dist/chunk-CH3YMDCF.js.map +1 -0
- package/dist/{chunk-I75ZSXD6.js → chunk-DUIL5BYS.js} +3 -3
- package/dist/{chunk-I75ZSXD6.js.map → chunk-DUIL5BYS.js.map} +1 -1
- package/dist/{chunk-ZPVBIQ2R.js → chunk-EHWXPH76.js} +3 -3
- package/dist/chunk-EHWXPH76.js.map +1 -0
- package/dist/{chunk-ZSS6E4T2.js → chunk-EPE3OODP.js} +31 -7
- package/dist/chunk-EPE3OODP.js.map +1 -0
- package/dist/{chunk-E222IQHF.js → chunk-ERRZ2CSG.js} +16 -8
- package/dist/chunk-ERRZ2CSG.js.map +1 -0
- package/dist/{chunk-GVEEUHM2.js → chunk-FAD45WRP.js} +7 -6
- package/dist/chunk-FAD45WRP.js.map +1 -0
- package/dist/{chunk-YPHVSPWM.js → chunk-FZSCLZF6.js} +5 -5
- package/dist/{chunk-YPHVSPWM.js.map → chunk-FZSCLZF6.js.map} +1 -1
- package/dist/{chunk-S2DZXTRN.js → chunk-GJPZOMFE.js} +8 -8
- package/dist/{chunk-S2DZXTRN.js.map → chunk-GJPZOMFE.js.map} +1 -1
- package/dist/{chunk-SB3JGUGE.js → chunk-GOLARX5K.js} +3 -3
- package/dist/{chunk-SB3JGUGE.js.map → chunk-GOLARX5K.js.map} +1 -1
- package/dist/{chunk-OR4GO5XL.js → chunk-GVVP5TZM.js} +71 -233
- package/dist/chunk-GVVP5TZM.js.map +1 -0
- package/dist/{chunk-WIR52JXZ.js → chunk-H6G4BUPA.js} +98 -237
- package/dist/chunk-H6G4BUPA.js.map +1 -0
- package/dist/{chunk-MOQDO4XZ.js → chunk-HCOTO5WX.js} +3 -3
- package/dist/{chunk-MOQDO4XZ.js.map → chunk-HCOTO5WX.js.map} +1 -1
- package/dist/chunk-HECAAILV.js +94 -0
- package/dist/chunk-HECAAILV.js.map +1 -0
- package/dist/{chunk-OKCKLIFP.js → chunk-HK3NJMSY.js} +8 -6
- package/dist/chunk-HK3NJMSY.js.map +1 -0
- package/dist/{chunk-GGDDE7LC.js → chunk-HQLHE5RX.js} +3 -9
- package/dist/chunk-HQLHE5RX.js.map +1 -0
- package/dist/{chunk-56BHCAPI.js → chunk-I32ZQUYY.js} +6 -6
- package/dist/chunk-I32ZQUYY.js.map +1 -0
- package/dist/{chunk-D53OQERO.js → chunk-JWTWPZ32.js} +14 -6
- package/dist/chunk-JWTWPZ32.js.map +1 -0
- package/dist/{chunk-KYDQJSSW.js → chunk-KH577UDI.js} +46 -82
- package/dist/chunk-KH577UDI.js.map +1 -0
- package/dist/{chunk-XOIX5WIL.js → chunk-KJTMZJ7V.js} +6 -6
- package/dist/{chunk-XOIX5WIL.js.map → chunk-KJTMZJ7V.js.map} +1 -1
- package/dist/{chunk-XHDUO3UW.js → chunk-L5UYN5LX.js} +3 -3
- package/dist/{chunk-XHDUO3UW.js.map → chunk-L5UYN5LX.js.map} +1 -1
- package/dist/{chunk-DRCT6VZ7.js → chunk-N2WHJ3FI.js} +3 -3
- package/dist/{chunk-DRCT6VZ7.js.map → chunk-N2WHJ3FI.js.map} +1 -1
- package/dist/{chunk-ZHPYJTWP.js → chunk-O3V3BTIJ.js} +16 -6
- package/dist/chunk-O3V3BTIJ.js.map +1 -0
- package/dist/chunk-OFUPJH35.js +74 -0
- package/dist/chunk-OFUPJH35.js.map +1 -0
- package/dist/{chunk-6YVT3AL2.js → chunk-OLTQAMV2.js} +4 -5
- package/dist/chunk-OLTQAMV2.js.map +1 -0
- package/dist/chunk-ONGJXAYQ.js +144 -0
- package/dist/chunk-ONGJXAYQ.js.map +1 -0
- package/dist/{chunk-KJRKPYYZ.js → chunk-OQFYIKWR.js} +27 -25
- package/dist/chunk-OQFYIKWR.js.map +1 -0
- package/dist/{chunk-X5XIBIEF.js → chunk-PMA4VCAH.js} +3 -3
- package/dist/{chunk-X5XIBIEF.js.map → chunk-PMA4VCAH.js.map} +1 -1
- package/dist/chunk-POLVJ36Y.js +210 -0
- package/dist/chunk-POLVJ36Y.js.map +1 -0
- package/dist/{chunk-LK4EPTNG.js → chunk-POXI7JJ4.js} +27 -121
- package/dist/chunk-POXI7JJ4.js.map +1 -0
- package/dist/{chunk-L76WWJGR.js → chunk-R3TLU26W.js} +21 -33
- package/dist/chunk-R3TLU26W.js.map +1 -0
- package/dist/chunk-RFHTC6AH.js +250 -0
- package/dist/chunk-RFHTC6AH.js.map +1 -0
- package/dist/{chunk-IAQDQN6W.js → chunk-RPWYIGD3.js} +15 -36
- package/dist/chunk-RPWYIGD3.js.map +1 -0
- package/dist/{chunk-HXPMYGSR.js → chunk-T7RWQLUB.js} +4 -10
- package/dist/chunk-T7RWQLUB.js.map +1 -0
- package/dist/chunk-WRSG7WU5.js +278 -0
- package/dist/chunk-WRSG7WU5.js.map +1 -0
- package/dist/{chunk-ZYWDJMHF.js → chunk-X3YNHX77.js} +4 -4
- package/dist/{chunk-ZYWDJMHF.js.map → chunk-X3YNHX77.js.map} +1 -1
- package/dist/chunk-Y4XAXZHB.js +42 -0
- package/dist/chunk-Y4XAXZHB.js.map +1 -0
- package/dist/{chunk-JZ5F6XDO.js → chunk-YS5AIY4A.js} +3 -3
- package/dist/{chunk-JZ5F6XDO.js.map → chunk-YS5AIY4A.js.map} +1 -1
- package/dist/chunk-ZIYA7TGX.js +141 -0
- package/dist/chunk-ZIYA7TGX.js.map +1 -0
- package/dist/{chunk-QLUGKHAA.js → chunk-ZKEDJ536.js} +4 -4
- package/dist/{chunk-QLUGKHAA.js.map → chunk-ZKEDJ536.js.map} +1 -1
- package/dist/clipboard/index.d.ts.map +1 -1
- package/dist/clipboard/index.js +3 -2
- package/dist/collapse/index.js +2 -2
- package/dist/command/index.js +1 -1
- package/dist/context-menu/index.d.ts.map +1 -1
- package/dist/context-menu/index.js +2 -1
- package/dist/date-picker/index.d.ts.map +1 -1
- package/dist/date-picker/index.js +3 -3
- package/dist/date-picker/types.d.ts +0 -2
- package/dist/date-picker/types.d.ts.map +1 -1
- package/dist/dropdown/index.d.ts.map +1 -1
- package/dist/dropdown/index.js +4 -3
- package/dist/fetching-overlay/index.d.ts +1 -1
- package/dist/fetching-overlay/index.d.ts.map +1 -1
- package/dist/fetching-overlay/index.js +3 -3
- package/dist/float-input/index.js +3 -3
- package/dist/grid/index.d.ts +1 -1
- package/dist/grid/index.d.ts.map +1 -1
- package/dist/grid/index.js +1 -1
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useControllable.d.ts +6 -0
- package/dist/hooks/useControllable.d.ts.map +1 -0
- package/dist/hooks/useDebounce.d.ts +2 -0
- package/dist/hooks/useDebounce.d.ts.map +1 -0
- package/dist/hooks/useMediaQuery.d.ts +2 -0
- package/dist/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/hooks/useRipple.d.ts +29 -0
- package/dist/hooks/useRipple.d.ts.map +1 -0
- package/dist/hooks/useThrottle.d.ts +2 -0
- package/dist/hooks/useThrottle.d.ts.map +1 -0
- package/dist/image/index.d.ts.map +1 -1
- package/dist/image/index.js +1 -1
- package/dist/image/types.d.ts +4 -0
- package/dist/image/types.d.ts.map +1 -1
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +114 -56
- package/dist/index.js.map +1 -1
- package/dist/input/index.d.ts.map +1 -1
- package/dist/input/index.js +3 -3
- package/dist/input-otp/index.js +1 -1
- package/dist/input-password/index.js +4 -4
- package/dist/kbd/index.js +2 -2
- package/dist/link/index.d.ts +1 -1
- package/dist/link/index.d.ts.map +1 -1
- package/dist/link/index.js +1 -1
- package/dist/menubar/index.js +3 -3
- package/dist/multi-select/index.d.ts.map +1 -1
- package/dist/multi-select/index.js +5 -3
- package/dist/multi-select/utils.d.ts.map +1 -1
- package/dist/navigation-menu/index.js +1 -1
- package/dist/notification/index.js +2 -2
- package/dist/number-input/index.d.ts.map +1 -1
- package/dist/number-input/index.js +4 -3
- package/dist/pagination/index.d.ts.map +1 -1
- package/dist/pagination/index.js +2 -1
- package/dist/popover/index.js +2 -2
- package/dist/progress/index.d.ts.map +1 -1
- package/dist/progress/index.js +1 -1
- package/dist/progress/styles.d.ts +39 -0
- package/dist/progress/styles.d.ts.map +1 -0
- package/dist/radio/index.d.ts.map +1 -1
- package/dist/radio/index.js +2 -2
- package/dist/select/index.d.ts.map +1 -1
- package/dist/select/index.js +5 -4
- package/dist/shared/useSelectBase.d.ts +56 -0
- package/dist/shared/useSelectBase.d.ts.map +1 -0
- package/dist/skeleton/index.js +2 -2
- package/dist/slider/index.d.ts.map +1 -1
- package/dist/slider/index.js +1 -1
- package/dist/spinner/index.d.ts +1 -1
- package/dist/spinner/index.d.ts.map +1 -1
- package/dist/spinner/index.js +2 -2
- package/dist/stepper/index.js +1 -1
- package/dist/switch/index.d.ts.map +1 -1
- package/dist/switch/index.js +2 -2
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +10 -9
- package/dist/table/variants.d.ts +0 -4
- package/dist/table/variants.d.ts.map +1 -1
- package/dist/tabs/index.d.ts.map +1 -1
- package/dist/tabs/index.js +2 -2
- package/dist/tabs/types.d.ts +4 -0
- 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 +2 -2
- package/dist/timeline/index.d.ts.map +1 -1
- package/dist/timeline/index.js +1 -1
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toast/index.js +2 -2
- package/dist/toggle/index.d.ts.map +1 -1
- package/dist/toggle/index.js +2 -1
- package/dist/toggle-group/index.d.ts.map +1 -1
- package/dist/toggle-group/index.js +2 -1
- package/dist/tooltip/index.js +2 -2
- package/dist/transfer/index.d.ts +0 -1
- package/dist/transfer/index.d.ts.map +1 -1
- package/dist/transfer/index.js +3 -3
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +1 -1
- package/dist/tree-select/index.js +4 -4
- package/dist/upload/index.d.ts.map +1 -1
- package/dist/upload/index.js +2 -1
- package/dist/variants.d.ts +44 -163
- package/dist/variants.d.ts.map +1 -1
- package/package.json +44 -231
- package/styles/global.css +327 -220
- package/styles/themes/dark.css +57 -44
- package/styles/themes/light.css +3 -3
- package/styles/themes/presets/corporate.css +32 -30
- package/styles/themes/presets/minimal.css +32 -30
- package/styles/themes/presets/vibrant.css +38 -36
- package/dist/chunk-2K7MDR7K.js +0 -212
- package/dist/chunk-2K7MDR7K.js.map +0 -1
- package/dist/chunk-2SYAIIJE.js +0 -143
- package/dist/chunk-2SYAIIJE.js.map +0 -1
- package/dist/chunk-56BHCAPI.js.map +0 -1
- package/dist/chunk-6QZFWSN7.js.map +0 -1
- package/dist/chunk-6YVT3AL2.js.map +0 -1
- package/dist/chunk-D53OQERO.js.map +0 -1
- package/dist/chunk-DRL4CJMI.js +0 -147
- package/dist/chunk-DRL4CJMI.js.map +0 -1
- package/dist/chunk-DUNER5Q3.js.map +0 -1
- package/dist/chunk-E222IQHF.js.map +0 -1
- package/dist/chunk-FVTMKQUE.js +0 -67
- package/dist/chunk-FVTMKQUE.js.map +0 -1
- package/dist/chunk-GGDDE7LC.js.map +0 -1
- package/dist/chunk-GVEEUHM2.js.map +0 -1
- package/dist/chunk-HQVTIFXN.js +0 -494
- package/dist/chunk-HQVTIFXN.js.map +0 -1
- package/dist/chunk-HXPMYGSR.js.map +0 -1
- package/dist/chunk-IAQDQN6W.js.map +0 -1
- package/dist/chunk-ITCXCSUS.js.map +0 -1
- package/dist/chunk-KJRKPYYZ.js.map +0 -1
- package/dist/chunk-KYDQJSSW.js.map +0 -1
- package/dist/chunk-L76WWJGR.js.map +0 -1
- package/dist/chunk-LK4EPTNG.js.map +0 -1
- package/dist/chunk-M3AALH7G.js.map +0 -1
- package/dist/chunk-MBAZ7OW5.js +0 -607
- package/dist/chunk-MBAZ7OW5.js.map +0 -1
- package/dist/chunk-MGKFJWQU.js +0 -194
- package/dist/chunk-MGKFJWQU.js.map +0 -1
- package/dist/chunk-OKCKLIFP.js.map +0 -1
- package/dist/chunk-OR4GO5XL.js.map +0 -1
- package/dist/chunk-OV6K6GML.js.map +0 -1
- package/dist/chunk-PHQOHVG3.js +0 -45
- package/dist/chunk-PHQOHVG3.js.map +0 -1
- package/dist/chunk-QKSDVYKF.js.map +0 -1
- package/dist/chunk-SJHNFRXG.js +0 -276
- package/dist/chunk-SJHNFRXG.js.map +0 -1
- package/dist/chunk-SX5UNM6C.js.map +0 -1
- package/dist/chunk-T4MGK3WE.js +0 -143
- package/dist/chunk-T4MGK3WE.js.map +0 -1
- package/dist/chunk-WAPZ4QAN.js +0 -76
- package/dist/chunk-WAPZ4QAN.js.map +0 -1
- package/dist/chunk-WIR52JXZ.js.map +0 -1
- package/dist/chunk-WMTEAMPB.js.map +0 -1
- package/dist/chunk-ZHPYJTWP.js.map +0 -1
- package/dist/chunk-ZPVBIQ2R.js.map +0 -1
- package/dist/chunk-ZSS6E4T2.js.map +0 -1
- package/dist/form/index.d.ts +0 -31
- package/dist/form/index.d.ts.map +0 -1
- package/dist/form/index.js +0 -4
- package/dist/form/index.js.map +0 -1
- package/dist/form/types.d.ts +0 -45
- package/dist/form/types.d.ts.map +0 -1
- package/dist/ribbon/index.d.ts +0 -6
- package/dist/ribbon/index.d.ts.map +0 -1
- package/dist/ribbon/index.js +0 -4
- package/dist/ribbon/index.js.map +0 -1
- package/dist/ribbon/types.d.ts +0 -26
- package/dist/ribbon/types.d.ts.map +0 -1
package/dist/chunk-2SYAIIJE.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { createAllColorVariants, componentColors } from './chunk-LK4EPTNG.js';
|
|
2
|
-
import { cn } from './chunk-NGYLRX6F.js';
|
|
3
|
-
import { cva } from 'class-variance-authority';
|
|
4
|
-
import { X } from 'lucide-react';
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
|
-
|
|
8
|
-
var tagVariants = cva("inline-flex items-center gap-1.5 whitespace-nowrap rounded font-medium transition-colors", {
|
|
9
|
-
variants: {
|
|
10
|
-
variant: {
|
|
11
|
-
default: "border",
|
|
12
|
-
solid: "",
|
|
13
|
-
outline: "border",
|
|
14
|
-
soft: ""
|
|
15
|
-
},
|
|
16
|
-
color: {
|
|
17
|
-
default: "",
|
|
18
|
-
primary: "",
|
|
19
|
-
secondary: "",
|
|
20
|
-
accent: "",
|
|
21
|
-
success: "",
|
|
22
|
-
error: "",
|
|
23
|
-
warning: "",
|
|
24
|
-
info: ""
|
|
25
|
-
},
|
|
26
|
-
size: {
|
|
27
|
-
xs: "text-[10px] px-1.5 py-0.5",
|
|
28
|
-
sm: "text-xs px-2 py-1",
|
|
29
|
-
md: "text-sm px-2.5 py-1",
|
|
30
|
-
lg: "text-base px-3 py-1.5"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
compoundVariants: createAllColorVariants(componentColors, ["default", "solid", "outline", "soft"]),
|
|
34
|
-
defaultVariants: {
|
|
35
|
-
variant: "solid",
|
|
36
|
-
color: "primary",
|
|
37
|
-
size: "sm"
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
var iconSizeClasses = {
|
|
41
|
-
xs: "size-2.5",
|
|
42
|
-
sm: "size-3",
|
|
43
|
-
md: "size-3.5",
|
|
44
|
-
lg: "size-4"
|
|
45
|
-
};
|
|
46
|
-
var Tag = React.memo(
|
|
47
|
-
({
|
|
48
|
-
children,
|
|
49
|
-
color = "primary",
|
|
50
|
-
variant = "solid",
|
|
51
|
-
size = "sm",
|
|
52
|
-
closable = false,
|
|
53
|
-
onClose,
|
|
54
|
-
icon,
|
|
55
|
-
className,
|
|
56
|
-
classNames,
|
|
57
|
-
onClick,
|
|
58
|
-
disableKeyboardRemoval = false,
|
|
59
|
-
...props
|
|
60
|
-
}) => {
|
|
61
|
-
const handleClose = (e) => {
|
|
62
|
-
e.stopPropagation();
|
|
63
|
-
onClose?.(e);
|
|
64
|
-
};
|
|
65
|
-
const handleCloseKeyDown = (e) => {
|
|
66
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
67
|
-
e.preventDefault();
|
|
68
|
-
e.stopPropagation();
|
|
69
|
-
onClose?.(e);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
const handleTagKeyDown = (e) => {
|
|
73
|
-
if (!disableKeyboardRemoval && closable && (e.key === "Delete" || e.key === "Backspace")) {
|
|
74
|
-
e.preventDefault();
|
|
75
|
-
e.stopPropagation();
|
|
76
|
-
onClose?.(e);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (onClick && (e.key === "Enter" || e.key === " ")) {
|
|
80
|
-
e.preventDefault();
|
|
81
|
-
e.stopPropagation();
|
|
82
|
-
onClick(e);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
return /* @__PURE__ */ jsxs(
|
|
86
|
-
"span",
|
|
87
|
-
{
|
|
88
|
-
className: cn(
|
|
89
|
-
"tag_root",
|
|
90
|
-
tagVariants({ variant, color, size }),
|
|
91
|
-
(onClick || closable) && "cursor-pointer",
|
|
92
|
-
(onClick || !disableKeyboardRemoval && closable) && "focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary",
|
|
93
|
-
classNames?.root,
|
|
94
|
-
className
|
|
95
|
-
),
|
|
96
|
-
onClick,
|
|
97
|
-
onKeyDown: onClick || !disableKeyboardRemoval && closable ? handleTagKeyDown : void 0,
|
|
98
|
-
role: onClick || !disableKeyboardRemoval && closable ? "button" : void 0,
|
|
99
|
-
tabIndex: onClick || !disableKeyboardRemoval && closable ? 0 : void 0,
|
|
100
|
-
"aria-label": (onClick || !disableKeyboardRemoval && closable) && typeof children === "string" ? children : void 0,
|
|
101
|
-
"data-slot": "root",
|
|
102
|
-
...props,
|
|
103
|
-
children: [
|
|
104
|
-
icon && /* @__PURE__ */ jsx("span", { className: cn("inline-flex items-center justify-center flex-shrink-0", iconSizeClasses[size]), children: React.isValidElement(icon) ? React.cloneElement(icon, {
|
|
105
|
-
className: cn("w-full h-full", icon.props.className)
|
|
106
|
-
}) : icon }),
|
|
107
|
-
/* @__PURE__ */ jsx(
|
|
108
|
-
"span",
|
|
109
|
-
{
|
|
110
|
-
className: cn("tag_content", classNames?.content),
|
|
111
|
-
"data-slot": "content",
|
|
112
|
-
children
|
|
113
|
-
}
|
|
114
|
-
),
|
|
115
|
-
closable && /* @__PURE__ */ jsx(
|
|
116
|
-
"button",
|
|
117
|
-
{
|
|
118
|
-
type: "button",
|
|
119
|
-
onClick: handleClose,
|
|
120
|
-
onKeyDown: handleCloseKeyDown,
|
|
121
|
-
className: cn(
|
|
122
|
-
"tag_closeButton",
|
|
123
|
-
"inline-flex items-center justify-center flex-shrink-0 cursor-pointer rounded-sm opacity-70 hover:opacity-100 transition-[opacity,transform] active:scale-[0.85] focus:outline-none focus:ring-2 focus:ring-current focus:ring-offset-1",
|
|
124
|
-
iconSizeClasses[size],
|
|
125
|
-
classNames?.closeButton
|
|
126
|
-
),
|
|
127
|
-
"aria-label": typeof children === "string" ? `Remove ${children}` : "Remove tag",
|
|
128
|
-
tabIndex: disableKeyboardRemoval ? 0 : -1,
|
|
129
|
-
"data-slot": "closeButton",
|
|
130
|
-
children: /* @__PURE__ */ jsx(X, { className: "w-full h-full" })
|
|
131
|
-
}
|
|
132
|
-
)
|
|
133
|
-
]
|
|
134
|
-
}
|
|
135
|
-
);
|
|
136
|
-
}
|
|
137
|
-
);
|
|
138
|
-
Tag.displayName = "Tag";
|
|
139
|
-
var tag_default = Tag;
|
|
140
|
-
|
|
141
|
-
export { tag_default };
|
|
142
|
-
//# sourceMappingURL=chunk-2SYAIIJE.js.map
|
|
143
|
-
//# sourceMappingURL=chunk-2SYAIIJE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tag/index.tsx"],"names":[],"mappings":"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","file":"chunk-2SYAIIJE.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport React from 'react';\n\nimport { cn } from '../utils';\nimport { componentColors, createAllColorVariants } from '../variants';\nimport type { TagProps } from './types';\n\n/**\n * Class variance authority configuration for the Tag component\n * Defines style variants for color, variant, and size\n */\nconst tagVariants = cva('inline-flex items-center gap-1.5 whitespace-nowrap rounded font-medium transition-colors', {\n variants: {\n variant: {\n default: 'border',\n solid: '',\n outline: 'border',\n soft: '',\n },\n color: {\n default: '',\n primary: '',\n secondary: '',\n accent: '',\n success: '',\n error: '',\n warning: '',\n info: '',\n },\n size: {\n xs: 'text-[10px] px-1.5 py-0.5',\n sm: 'text-xs px-2 py-1',\n md: 'text-sm px-2.5 py-1',\n lg: 'text-base px-3 py-1.5',\n },\n },\n compoundVariants: createAllColorVariants(componentColors, ['default', 'solid', 'outline', 'soft']),\n defaultVariants: {\n variant: 'solid',\n color: 'primary',\n size: 'sm',\n },\n});\n\n/**\n * Icon and close button size variants for different tag sizes\n */\nconst iconSizeClasses = {\n xs: 'size-2.5',\n sm: 'size-3',\n md: 'size-3.5',\n lg: 'size-4',\n};\n\n/**\n * Tag Component\n *\n * An interactive badge variant that can be used for labels, categories, or removable items.\n * Supports multiple variants, colors, sizes, icons, and close functionality.\n *\n * @component\n * @example\n * // Basic tag\n * <Tag>Label</Tag>\n *\n * @example\n * // Tag with close button\n * <Tag closable onClose={(e) => console.log('Tag removed')}>\n * Removable Tag\n * </Tag>\n *\n * @example\n * // Tag with icon\n * <Tag icon={<Star />} color=\"warning\">\n * Featured\n * </Tag>\n *\n * @example\n * // Different variants\n * <Tag variant=\"outline\" color=\"success\">Outline Tag</Tag>\n * <Tag variant=\"soft\" color=\"info\">Soft Tag</Tag>\n *\n * @example\n * // Disable keyboard removal (Backspace/Delete on tag)\n * <Tag closable disableKeyboardRemoval onClose={(e) => console.log('Tag removed')}>\n * No keyboard removal\n * </Tag>\n *\n * @example\n * // Tag with keyboard removal enabled (focus on tag and press Delete/Backspace)\n * <Tag closable onClose={(e) => console.log('Tag removed')}>\n * Press Delete or Backspace to remove\n * </Tag>\n *\n * @param {TagProps} props - Component props\n * @returns {JSX.Element} Rendered tag component\n */\nconst Tag = React.memo<TagProps>(\n ({\n children,\n color = 'primary',\n variant = 'solid',\n size = 'sm',\n closable = false,\n onClose,\n icon,\n className,\n classNames,\n onClick,\n disableKeyboardRemoval = false,\n ...props\n }) => {\n /**\n * Handles the close button click event\n * Stops event propagation to prevent triggering parent onClick handlers\n *\n * @param {React.MouseEvent<HTMLButtonElement>} e - Mouse event\n */\n const handleClose = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onClose?.(e);\n };\n\n /**\n * Handles keyboard events for the close button\n * Always responds to Enter/Space for activation (accessibility requirement)\n *\n * @param {React.KeyboardEvent<HTMLButtonElement>} e - Keyboard event\n */\n const handleCloseKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n // Always allow Enter/Space for activation (accessibility requirement)\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n onClose?.(e);\n }\n };\n\n /**\n * Handles keyboard events for the tag\n * Removes tag when Delete or Backspace is pressed (takes priority)\n * Activates onClick when Enter or Space is pressed\n *\n * @param {React.KeyboardEvent<HTMLSpanElement>} e - Keyboard event\n */\n const handleTagKeyDown = (e: React.KeyboardEvent<HTMLSpanElement>) => {\n // Handle deletion for closable tags (takes priority over onClick)\n if (!disableKeyboardRemoval && closable && (e.key === 'Delete' || e.key === 'Backspace')) {\n e.preventDefault();\n e.stopPropagation();\n onClose?.(e);\n return;\n }\n\n // Handle activation for clickable tags\n if (onClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n e.stopPropagation();\n onClick(e);\n }\n };\n\n return (\n <span\n className={cn(\n 'tag_root',\n tagVariants({ variant, color, size }),\n (onClick || closable) && 'cursor-pointer',\n (onClick || (!disableKeyboardRemoval && closable)) &&\n 'focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary',\n classNames?.root,\n className\n )}\n onClick={onClick}\n onKeyDown={onClick || (!disableKeyboardRemoval && closable) ? handleTagKeyDown : undefined}\n role={onClick || (!disableKeyboardRemoval && closable) ? 'button' : undefined}\n tabIndex={onClick || (!disableKeyboardRemoval && closable) ? 0 : undefined}\n aria-label={\n (onClick || (!disableKeyboardRemoval && closable)) && typeof children === 'string' ? children : undefined\n }\n data-slot='root'\n {...props}\n >\n {icon && (\n <span className={cn('inline-flex items-center justify-center flex-shrink-0', iconSizeClasses[size])}>\n {React.isValidElement(icon)\n ? React.cloneElement(icon, {\n className: cn('w-full h-full', (icon.props as { className?: string }).className),\n } as React.HTMLAttributes<HTMLElement>)\n : icon}\n </span>\n )}\n <span\n className={cn('tag_content', classNames?.content)}\n data-slot='content'\n >\n {children}\n </span>\n {closable && (\n <button\n type='button'\n onClick={handleClose}\n onKeyDown={handleCloseKeyDown}\n className={cn(\n 'tag_closeButton',\n 'inline-flex items-center justify-center flex-shrink-0 cursor-pointer rounded-sm opacity-70 hover:opacity-100 transition-[opacity,transform] active:scale-[0.85] focus:outline-none focus:ring-2 focus:ring-current focus:ring-offset-1',\n iconSizeClasses[size],\n classNames?.closeButton\n )}\n aria-label={typeof children === 'string' ? `Remove ${children}` : 'Remove tag'}\n tabIndex={disableKeyboardRemoval ? 0 : -1}\n data-slot='closeButton'\n >\n <X className='w-full h-full' />\n </button>\n )}\n </span>\n );\n }\n);\n\nTag.displayName = 'Tag';\n\nexport type * from './types';\nexport default Tag;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/checkbox/index.tsx"],"names":[],"mappings":"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","file":"chunk-56BHCAPI.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Check, Minus } from \"lucide-react\";\nimport React, { useState, useCallback, useEffect, useId } from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport {\n checkboxBorderColorClasses,\n focusRingColorClasses,\n textColorClasses,\n} from \"../variants\";\nimport type { CheckboxProps } from \"./types\";\n\n/**\n * Merges multiple refs into a single callback ref.\n * Handles both callback refs and RefObject refs safely.\n */\nfunction useMergeRefs<T>(\n ...refs: (React.Ref<T> | undefined)[]\n): React.RefCallback<T> {\n // Store refs in a ref to avoid dependency array issues\n const refsRef = React.useRef(refs);\n refsRef.current = refs;\n\n return useCallback((instance: T | null) => {\n refsRef.current.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(instance);\n } else if (ref && typeof ref === \"object\") {\n (ref as React.MutableRefObject<T | null>).current = instance;\n }\n });\n }, []);\n}\n\nconst checkboxVariants = cva(\n \"appearance-none rounded border bg-background 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 color: checkboxBorderColorClasses,\n size: {\n xs: \"w-(--checkbox-size-xs) h-(--checkbox-size-xs)\",\n sm: \"w-(--checkbox-size-sm) h-(--checkbox-size-sm)\",\n md: \"w-(--checkbox-size-md) h-(--checkbox-size-md)\",\n lg: \"w-(--checkbox-size-lg) h-(--checkbox-size-lg)\",\n },\n error: {\n true: \"border-error checked:border-error\",\n false: \"\",\n },\n },\n defaultVariants: {\n color: \"primary\",\n size: \"md\",\n },\n },\n);\n\nconst Checkbox = React.memo<CheckboxProps>(\n ({\n color = \"primary\",\n size = \"md\",\n label,\n helperText,\n error,\n indeterminate = false,\n className,\n checked,\n defaultChecked,\n ref,\n classNames,\n ...props\n }) => {\n const [internalChecked, setInternalChecked] = useState(\n defaultChecked ?? false,\n );\n const internalRef = React.useRef<HTMLInputElement>(null);\n\n // Generate unique ID for accessibility\n const uniqueId = useId();\n const checkboxId = props.id || `checkbox-${uniqueId}`;\n const helperId = `checkbox-helper-${uniqueId}`;\n const hasHelperText = !!(helperText || error);\n\n // Safely merge refs - handles both callback refs and RefObject refs\n const mergedRef = useMergeRefs(ref, internalRef);\n\n // Determine if controlled\n const isControlled = checked !== undefined;\n const currentChecked = isControlled ? checked : internalChecked;\n\n const onChangeRef = React.useRef(props.onChange);\n onChangeRef.current = props.onChange;\n\n const onChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalChecked(event.target.checked);\n }\n onChangeRef.current?.(event);\n },\n [isControlled],\n );\n\n useEffect(() => {\n if (internalRef.current) {\n internalRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n const checkboxElement = (\n <div className=\"relative inline-flex\" data-slot=\"wrapper\">\n <input\n ref={mergedRef}\n type=\"checkbox\"\n className={cn(\n \"checkbox_checkbox\",\n checkboxVariants({ color, size, error: !!error }),\n focusRingColorClasses[color],\n className,\n classNames?.checkbox,\n )}\n aria-checked={indeterminate ? \"mixed\" : currentChecked}\n aria-invalid={!!error || undefined}\n aria-describedby={hasHelperText ? helperId : undefined}\n {...props}\n id={checkboxId}\n onChange={onChange}\n checked={currentChecked}\n data-slot=\"checkbox\"\n />\n {(currentChecked || indeterminate) && (\n <div\n className={cn(\n \"checkbox_indicator\",\n \"absolute inset-0 flex items-center justify-center pointer-events-none\",\n classNames?.indicator,\n )}\n data-slot=\"indicator\"\n >\n {indeterminate ? (\n <Minus\n className={cn(iconSizes[size], textColorClasses[color])}\n strokeWidth={3}\n />\n ) : (\n <Check className={cn(iconSizes[size], textColorClasses[color])} />\n )}\n </div>\n )}\n </div>\n );\n\n return (\n <div\n className={cn(\"checkbox_root\", \"w-full\", classNames?.root)}\n data-slot=\"root\"\n >\n <label\n htmlFor={checkboxId}\n className={cn(\n \"flex items-center gap-2\",\n !props.disabled && \"cursor-pointer\",\n )}\n >\n {checkboxElement}\n {label && (\n <span\n className={cn(\n \"checkbox_label\",\n \"text-sm text-text-primary select-none\",\n error && \"text-error\",\n props.disabled && \"opacity-50\",\n classNames?.label,\n )}\n data-slot=\"label\"\n >\n {label}\n </span>\n )}\n </label>\n {(helperText || error) && (\n <p\n id={helperId}\n className={cn(\n \"checkbox_description\",\n \"mt-1 ml-0 text-xs\",\n error ? \"text-error\" : \"text-text-secondary\",\n classNames?.description,\n )}\n data-slot=\"description\"\n >\n {typeof error === \"string\" ? error : helperText}\n </p>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport type * from \"./types\";\nexport default Checkbox;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/clipboard/index.tsx"],"names":[],"mappings":"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","file":"chunk-6QZFWSN7.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 { cn, iconSizes } from \"../utils\";\nimport { focusRingColorClasses } from \"../variants\";\nimport type { ClipboardProps } from \"./types\";\n\nconst clipboardVariants = cva(\n \"inline-flex items-center justify-between gap-2 rounded-md font-medium transition-[colors,transform] cursor-pointer border focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background active:scale-[0.97]\",\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 colorStyles = {\n default: {\n default: \"bg-background border-border text-text-primary hover:bg-surface\",\n solid: \"bg-surface border-border text-text-primary hover:bg-surface/80\",\n soft: \"bg-surface/50 border-border text-text-primary hover:bg-surface\",\n },\n primary: {\n default: \"bg-background border-primary text-primary hover:bg-primary/10\",\n solid: \"bg-primary border-primary text-background hover:bg-primary/90\",\n soft: \"bg-primary/10 border-primary/30 text-primary hover:bg-primary/20\",\n },\n secondary: {\n default:\n \"bg-background border-secondary text-secondary hover:bg-secondary/10\",\n solid:\n \"bg-secondary border-secondary text-background hover:bg-secondary/90\",\n soft: \"bg-secondary/10 border-secondary/30 text-secondary hover:bg-secondary/20\",\n },\n accent: {\n default: \"bg-background border-accent text-accent hover:bg-accent/10\",\n solid: \"bg-accent border-accent text-background hover:bg-accent/90\",\n soft: \"bg-accent/10 border-accent/30 text-accent hover:bg-accent/20\",\n },\n success: {\n default: \"bg-background border-success text-success hover:bg-success/10\",\n solid: \"bg-success border-success text-background hover:bg-success/90\",\n soft: \"bg-success/10 border-success/30 text-success hover:bg-success/20\",\n },\n error: {\n default: \"bg-background border-error text-error hover:bg-error/10\",\n solid: \"bg-error border-error text-background hover:bg-error/90\",\n soft: \"bg-error/10 border-error/30 text-error hover:bg-error/20\",\n },\n warning: {\n default: \"bg-background border-warning text-warning hover:bg-warning/10\",\n solid: \"bg-warning border-warning text-background hover:bg-warning/90\",\n soft: \"bg-warning/10 border-warning/30 text-warning hover:bg-warning/20\",\n },\n info: {\n default: \"bg-background border-info text-info hover:bg-info/10\",\n solid: \"bg-info border-info text-background hover:bg-info/90\",\n soft: \"bg-info/10 border-info/30 text-info hover:bg-info/20\",\n },\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\n // Cleanup timeout on unmount to prevent memory leak\n useEffect(() => {\n return () => {\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 navigator.clipboard.writeText(value);\n 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 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 onKeyDown={handleKeyDown}\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 colorStyles[color][variant],\n focusRingColorClasses[color],\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 </div>\n );\n },\n);\n\nClipboard.displayName = \"Clipboard\";\n\nexport type * from \"./types\";\nexport default Clipboard;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/toast/index.tsx"],"names":["sonnerToast","toast"],"mappings":";;;;;;;;AAyBA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,6EAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,EAAA;AAAA,QACT,KAAA,EAAO,EAAA;AAAA,QACP,OAAA,EAAS,UAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,EAAA;AAAA,QACT,OAAA,EAAS,EAAA;AAAA,QACT,SAAA,EAAW,EAAA;AAAA,QACX,MAAA,EAAQ,EAAA;AAAA,QACR,OAAA,EAAS,EAAA;AAAA,QACT,KAAA,EAAO,EAAA;AAAA,QACP,OAAA,EAAS,EAAA;AAAA,QACT,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,gBAAA,EAAkB,gCAAgC,eAAA,EAAiB;AAAA,MACjE,SAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,IACD,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,MAAA;AAAA,MACT,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;AAKA,IAAM,YAAA,GAA4D;AAAA,EAChE,OAAA,kBAAS,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,EAC3C,KAAA,kBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,EACxC,OAAA,kBAAS,GAAA,CAAC,aAAA,EAAA,EAAc,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,EAC5C,IAAA,kBAAM,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU;AAClC,CAAA;AAKA,IAAM,gBAAgB,CAAC;AAAA,EACrB,EAAA;AAAA,EACA;AACF,CAAA,KAGM;AACJ,EAAA,MAAM,OAAA,GAAU,QAAQ,OAAA,IAAW,SAAA;AACnC,EAAA,MAAM,KAAA,GAAQ,QAAQ,KAAA,IAAS,SAAA;AAC/B,EAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,QAAA,IAAY,CAAC,OAAA,CAAQ,OAAA;AAC9C,EAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,OAAA,mBACnB,GAAA,CAAC,WAAQ,SAAA,EAAU,sBAAA,EAAuB,CAAA,GACxC,OAAA,CAAQ,IAAA,KAAS,MAAA,GACnB,OAAA,CAAQ,IAAA,GAER,aAAa,KAAK,CAAA;AAGpB,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,KAAA,EAAO,CAAC,CAAA,EACjD,QAAA,EAAA;AAAA,IAAA,IAAA,oBAAQ,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAmB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,oBAChD,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,OAAA,CAAQ,yBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EAAiB,kBAAQ,KAAA,EAAM,CAAA;AAAA,MAC/D,QAAQ,WAAA,oBACP,GAAA,CAAC,SAAI,SAAA,EAAU,mBAAA,EAAqB,kBAAQ,WAAA,EAAY,CAAA;AAAA,MAEzD,QAAQ,MAAA,oBACP,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,QAAQ,MAAA,CAAO,OAAA;AAAA,UACxB,SAAA,EAAU,uDAAA;AAAA,UAET,kBAAQ,MAAA,CAAO;AAAA;AAAA;AAClB,KAAA,EAEJ,CAAA;AAAA,IACC,QAAA,oBACC,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,MAAMA,KAAA,CAAY,OAAA,CAAQ,EAAE,CAAA;AAAA,QACrC,SAAA,EAAU,qEAAA;AAAA,QACV,YAAA,EAAW,OAAA;AAAA,QAEX,QAAA,kBAAA,GAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAU,SAAA,EAAU,eAAY,MAAA,EAAO;AAAA;AAAA;AAC5C,GAAA,EAEJ,CAAA;AAEJ,CAAA;AAKA,IAAM,SAAA,GAAY,CAAC,OAAA,KACjBA,KAAA,CAAY,MAAA,CAAO,CAAC,EAAA,qBAAO,GAAA,CAAC,aAAA,EAAA,EAAc,EAAA,EAAQ,OAAA,EAAkB,CAAA,EAAI;AAAA,EACtE,QAAA,EAAU,OAAA,CAAQ,QAAA,KAAa,CAAA,GAAI,WAAW,OAAA,CAAQ,QAAA;AAAA,EACtD,WAAA,EAAa,QAAQ,QAAA,IAAY,IAAA;AAAA,EACjC,WAAW,OAAA,CAAQ,OAAA;AAAA,EACnB,aAAa,OAAA,CAAQ;AACvB,CAAC,CAAA;AAKH,IAAM,YAAA,GAAe,cAAwC,IAAI,CAAA;AAK1D,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EACjC,CAAC;AAAA,IACC,QAAA;AAAA,IACA,QAAA,GAAW,WAAA;AAAA,IACX,SAAA,GAAY,CAAA;AAAA,IACZ,MAAA,GAAS,EAAA;AAAA,IACT,KAAA,GAAQ,QAAA;AAAA,IACR,WAAA,GAAc,KAAA;AAAA,IACd,QAAA,GAAW,GAAA;AAAA,IACX;AAAA,GACF,KAAM;AACJ,IAAA,MAAMC,OAAA,GAAQ,WAAA;AAAA,MACZ,CAAC,OAAA,KAA2C,SAAA,CAAU,OAAO,CAAA;AAAA,MAC7D;AAAC,KACH;AAEA,IAAA,MAAM,OAAA,GAAU,WAAA;AAAA,MACd,CAAC,OAAe,WAAA,KACd,SAAA,CAAU,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,MACpD;AAAC,KACH;AAEA,IAAA,MAAM,KAAA,GAAQ,WAAA;AAAA,MACZ,CAAC,OAAe,WAAA,KACd,SAAA,CAAU,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,OAAA,EAAS,CAAA;AAAA,MAClD;AAAC,KACH;AAEA,IAAA,MAAM,OAAA,GAAU,WAAA;AAAA,MACd,CAAC,OAAe,WAAA,KACd,SAAA,CAAU,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,MACpD;AAAC,KACH;AAEA,IAAA,MAAM,IAAA,GAAO,WAAA;AAAA,MACX,CAAC,OAAe,WAAA,KACd,SAAA,CAAU,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,MAAA,EAAQ,CAAA;AAAA,MACjD;AAAC,KACH;AAEA,IAAA,MAAM,OAAA,GAAU,WAAA;AAAA,MACd,CACE,GACA,IAAA,KAKoB;AACpB,QAAA,MAAM,EAAA,GAAKD,KAAA,CAAY,MAAA,CAAO,CAAC,GAAA,qBAC7B,GAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI,GAAA;AAAA,YACJ,SAAS,EAAE,KAAA,EAAO,IAAA,CAAK,OAAA,EAAS,SAAS,IAAA;AAAK;AAAA,SAEjD,CAAA;AAED,QAAA,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,KAAS;AACf,UAAAA,KAAA,CAAY,MAAA;AAAA,YACV,CAAC,GAAA,qBACC,GAAA;AAAA,cAAC,aAAA;AAAA,cAAA;AAAA,gBACC,EAAA,EAAI,GAAA;AAAA,gBACJ,OAAA,EAAS;AAAA,kBACP,KAAA,EACE,OAAO,IAAA,CAAK,OAAA,KAAY,aACpB,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAA,GACjB,IAAA,CAAK,OAAA;AAAA,kBACX,KAAA,EAAO;AAAA;AACT;AAAA,aACF;AAAA,YAEF,EAAE,EAAA;AAAG,WACP;AAAA,QACF,CAAC,CAAA,CAAE,KAAA,CAAM,CAAC,GAAA,KAAQ;AAChB,UAAAA,KAAA,CAAY,MAAA;AAAA,YACV,CAAC,GAAA,qBACC,GAAA;AAAA,cAAC,aAAA;AAAA,cAAA;AAAA,gBACC,EAAA,EAAI,GAAA;AAAA,gBACJ,OAAA,EAAS;AAAA,kBACP,KAAA,EACE,OAAO,IAAA,CAAK,KAAA,KAAU,aAClB,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,GACd,IAAA,CAAK,KAAA;AAAA,kBACX,KAAA,EAAO;AAAA;AACT;AAAA,aACF;AAAA,YAEF,EAAE,EAAA;AAAG,WACP;AAAA,QACF,CAAC,CAAA;AAED,QAAA,OAAO,EAAA;AAAA,MACT,CAAA;AAAA,MACA;AAAC,KACH;AAEA,IAAA,MAAM,OAAA,GAAU,WAAA,CAAY,CAAC,EAAA,KAAwB;AACnD,MAAAA,KAAA,CAAY,QAAQ,EAAE,CAAA;AAAA,IACxB,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,UAAA,GAAa,YAAY,MAAM;AACnC,MAAAA,KAAA,CAAY,OAAA,EAAQ;AAAA,IACtB,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,YAAA,GAAe,OAAA;AAAA,MACnB,OAAO;AAAA,eACLC,OAAA;AAAA,QACA,OAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAACA,SAAO,OAAA,EAAS,KAAA,EAAO,SAAS,IAAA,EAAM,OAAA,EAAS,SAAS,UAAU;AAAA,KACrE;AAEA,IAAA,uBACE,IAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,OAAO,YAAA,EAC3B,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACD,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,QAAA;AAAA,UACA,aAAA,EAAe,SAAA;AAAA,UACf,MAAA;AAAA,UACA,KAAA;AAAA,UACA,WAAA;AAAA,UACA,QAAA;AAAA,UACA,SAAA;AAAA,UACA,YAAA,EAAc,EAAE,QAAA,EAAU,IAAA;AAAK;AAAA;AACjC,KAAA,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAKrB,IAAM,WAAW,MAAyB;AAC/C,EAAA,MAAM,OAAA,GAAU,WAAW,YAAY,CAAA;AACvC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,OAAA;AACT","file":"chunk-6YVT3AL2.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport {\n AlertCircle,\n AlertTriangle,\n CheckCircle2,\n Info,\n Loader2,\n X,\n} from \"lucide-react\";\nimport React, { useCallback, useContext, createContext, useMemo } from \"react\";\nimport { Toaster, toast as sonnerToast } from \"sonner\";\n\nimport { cn } from \"../utils\";\nimport { componentColors, createNotificationColorVariants } from \"../variants\";\nimport type {\n ToastContextValue,\n ToastOptions,\n ToastProviderProps,\n} from \"./types\";\n\n/**\n * Toast CVA — reuses the shared notification color variant system\n */\nconst toastVariants = cva(\n \"relative flex items-start gap-3 rounded-lg p-3 text-sm w-full min-w-[300px]\",\n {\n variants: {\n variant: {\n default: \"\",\n solid: \"\",\n outline: \"border-2\",\n soft: \"backdrop-blur-[5px] will-change-[backdrop-filter]\",\n },\n color: {\n default: \"\",\n primary: \"\",\n secondary: \"\",\n accent: \"\",\n success: \"\",\n error: \"\",\n warning: \"\",\n info: \"\",\n },\n },\n compoundVariants: createNotificationColorVariants(componentColors, [\n \"default\",\n \"solid\",\n \"outline\",\n \"soft\",\n ]),\n defaultVariants: {\n variant: \"soft\",\n color: \"default\",\n },\n },\n);\n\n/**\n * Default icons per semantic color\n */\nconst defaultIcons: Partial<Record<string, React.ReactElement>> = {\n success: <CheckCircle2 className=\"w-5 h-5\" />,\n error: <AlertCircle className=\"w-5 h-5\" />,\n warning: <AlertTriangle className=\"w-5 h-5\" />,\n info: <Info className=\"w-5 h-5\" />,\n};\n\n/**\n * Internal toast renderer — styled with our CVA system\n */\nconst ToastRenderer = ({\n id,\n options,\n}: {\n id: string | number;\n options: Omit<ToastOptions, \"duration\"> & { loading?: boolean };\n}) => {\n const variant = options.variant ?? \"default\";\n const color = options.color ?? \"default\";\n const closable = options.closable ?? !options.loading;\n const icon = options.loading ? (\n <Loader2 className=\"w-5 h-5 animate-spin\" />\n ) : options.icon !== undefined ? (\n options.icon\n ) : (\n defaultIcons[color]\n );\n\n return (\n <div className={cn(toastVariants({ variant, color }))}>\n {icon && <div className=\"shrink-0 mt-0.5\">{icon}</div>}\n <div className=\"flex-1 min-w-0\">\n {options.title && <div className=\"font-semibold\">{options.title}</div>}\n {options.description && (\n <div className=\"opacity-90 mt-0.5\">{options.description}</div>\n )}\n {options.action && (\n <button\n type=\"button\"\n onClick={options.action.onClick}\n className=\"mt-2 text-sm font-medium underline hover:no-underline\"\n >\n {options.action.label}\n </button>\n )}\n </div>\n {closable && (\n <button\n type=\"button\"\n onClick={() => sonnerToast.dismiss(id)}\n className=\"shrink-0 rounded-sm opacity-70 hover:opacity-100 transition-opacity\"\n aria-label=\"Close\"\n >\n <X className=\"w-4 h-4\" aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n};\n\n/**\n * Fire a toast with custom renderer\n */\nconst fireToast = (options: ToastOptions): string | number =>\n sonnerToast.custom((id) => <ToastRenderer id={id} options={options} />, {\n duration: options.duration === 0 ? Infinity : options.duration,\n dismissible: options.closable ?? true,\n onDismiss: options.onClose,\n onAutoClose: options.onClose,\n }) as string | number;\n\n/**\n * Toast Context\n */\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\n/**\n * Toast Provider — Sonner handles positioning/stacking, we handle rendering\n */\nexport const ToastProvider = React.memo<ToastProviderProps>(\n ({\n children,\n position = \"top-right\",\n maxToasts = 5,\n offset = 16,\n theme = \"system\",\n closeButton = false,\n duration = 5000,\n className,\n }) => {\n const toast = useCallback(\n (options: ToastOptions): string | number => fireToast(options),\n [],\n );\n\n const success = useCallback(\n (title: string, description?: string): string | number =>\n fireToast({ title, description, color: \"success\" }),\n [],\n );\n\n const error = useCallback(\n (title: string, description?: string): string | number =>\n fireToast({ title, description, color: \"error\" }),\n [],\n );\n\n const warning = useCallback(\n (title: string, description?: string): string | number =>\n fireToast({ title, description, color: \"warning\" }),\n [],\n );\n\n const info = useCallback(\n (title: string, description?: string): string | number =>\n fireToast({ title, description, color: \"info\" }),\n [],\n );\n\n const promise = useCallback(\n <T,>(\n p: Promise<T>,\n opts: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((err: unknown) => string);\n },\n ): string | number => {\n const id = sonnerToast.custom((tid) => (\n <ToastRenderer\n id={tid}\n options={{ title: opts.loading, loading: true }}\n />\n )) as string | number;\n\n p.then((data) => {\n sonnerToast.custom(\n (tid) => (\n <ToastRenderer\n id={tid}\n options={{\n title:\n typeof opts.success === \"function\"\n ? opts.success(data)\n : opts.success,\n color: \"success\",\n }}\n />\n ),\n { id },\n );\n }).catch((err) => {\n sonnerToast.custom(\n (tid) => (\n <ToastRenderer\n id={tid}\n options={{\n title:\n typeof opts.error === \"function\"\n ? opts.error(err)\n : opts.error,\n color: \"error\",\n }}\n />\n ),\n { id },\n );\n });\n\n return id;\n },\n [],\n );\n\n const dismiss = useCallback((id: string | number) => {\n sonnerToast.dismiss(id);\n }, []);\n\n const dismissAll = useCallback(() => {\n sonnerToast.dismiss();\n }, []);\n\n const contextValue = useMemo<ToastContextValue>(\n () => ({\n toast,\n success,\n error,\n warning,\n info,\n promise,\n dismiss,\n dismissAll,\n }),\n [toast, success, error, warning, info, promise, dismiss, dismissAll],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {children}\n <Toaster\n position={position}\n visibleToasts={maxToasts}\n offset={offset}\n theme={theme}\n closeButton={closeButton}\n duration={duration}\n className={className}\n toastOptions={{ unstyled: true }}\n />\n </ToastContext.Provider>\n );\n },\n);\n\nToastProvider.displayName = \"ToastProvider\";\n\n/**\n * useToast Hook\n */\nexport const useToast = (): ToastContextValue => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error(\"useToast must be used within a ToastProvider\");\n }\n return context;\n};\n\nexport type * from \"./types\";\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/number-input/index.tsx"],"names":[],"mappings":"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","file":"chunk-D53OQERO.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Plus, Minus } from \"lucide-react\";\nimport React, { useId, useMemo, useCallback, useState } from \"react\";\n\nimport Spinner from \"../spinner\";\n\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from \"../utils\";\nimport type { NumberInputProps } from \"./types\";\n\nconst numberInputVariants = cva(\n \"w-full placeholder:text-text-secondary/50 rounded-md disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none text-text-primary transition-colors\",\n {\n variants: {\n status: {\n default: \"bg-background border border-border focus:border-primary\",\n error: \"bg-background border border-error focus:border-error\",\n warning: \"bg-background border border-warning focus:border-warning\",\n info: \"bg-background border border-info focus:border-info\",\n success: \"bg-background border border-success focus:border-success\",\n },\n size: {\n xs: \"h-(--input-height-xs) px-(--input-padding-x-xs) text-xs\",\n sm: \"h-(--input-height-sm) px-(--input-padding-x-sm) text-sm\",\n md: \"h-(--input-height-md) px-(--input-padding-x-md) text-base\",\n lg: \"h-(--input-height-lg) px-(--input-padding-x-lg) text-lg\",\n },\n fullWidth: {\n true: \"w-full\",\n false: \"max-w-full\",\n },\n controlsPosition: {\n right: \"\",\n sides: \"\",\n },\n },\n defaultVariants: {\n status: \"default\",\n size: \"md\",\n fullWidth: true,\n controlsPosition: \"right\",\n },\n },\n);\n\nconst controlButtonVariants = cva(\n \"flex items-center justify-center cursor-pointer transition-[colors,transform] disabled:opacity-30 disabled:cursor-not-allowed active:scale-[0.9]\",\n {\n variants: {\n size: {\n xs: \"w-6 h-6\",\n sm: \"w-7 h-7\",\n md: \"w-8 h-8\",\n lg: \"w-10 h-10\",\n },\n position: {\n right: \"hover:bg-surface-hover\",\n sides: \"hover:bg-surface-hover\",\n },\n },\n defaultVariants: {\n size: \"md\",\n position: \"right\",\n },\n },\n);\n\nconst NumberInput = React.memo<NumberInputProps>(\n ({\n value,\n defaultValue,\n onChange,\n min,\n max,\n step = 1,\n precision,\n size = \"md\",\n label,\n placeholder,\n disabled = false,\n readOnly = false,\n required = false,\n controls = true,\n controlsPosition = \"right\",\n clampOnBlur = true,\n className,\n classNames,\n error,\n warning,\n info,\n success,\n helperText,\n loading = false,\n fullWidth = true,\n ref,\n id,\n name,\n }) => {\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState<number | undefined>(\n defaultValue,\n );\n const currentValue = value !== undefined ? value : internalValue;\n\n // Generate unique IDs for accessibility\n const uniqueId = useId();\n const inputId = id || `number-input-${uniqueId}`;\n const helperId = `number-input-helper-${uniqueId}`;\n\n // Use shared validation status utility - memoized\n const { status, message: helperMessage } = useMemo(\n () => getValidationStatus({ error, warning, info, success, helperText }),\n [error, warning, info, success, helperText],\n );\n\n // Format number to precision\n const formatValue = useCallback(\n (val: number | undefined): string => {\n if (val === undefined || isNaN(val)) return \"\";\n if (precision !== undefined) {\n return val.toFixed(precision);\n }\n return String(val);\n },\n [precision],\n );\n\n // Parse string to number\n const parseValue = useCallback((str: string): number | undefined => {\n if (str === \"\" || str === \"-\") return undefined;\n const parsed = parseFloat(str);\n return isNaN(parsed) ? undefined : parsed;\n }, []);\n\n // Clamp value to min/max\n const clampValue = useCallback(\n (val: number | undefined): number | undefined => {\n if (val === undefined) return undefined;\n let clamped = val;\n if (min !== undefined && clamped < min) clamped = min;\n if (max !== undefined && clamped > max) clamped = max;\n return clamped;\n },\n [min, max],\n );\n\n // Update value\n const updateValue = useCallback(\n (newValue: number | undefined) => {\n if (value === undefined) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n },\n [value, onChange],\n );\n\n // Handle input change\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n\n // Allow empty, minus sign, and valid numbers\n if (inputValue === \"\" || inputValue === \"-\") {\n updateValue(undefined);\n return;\n }\n\n const parsed = parseValue(inputValue);\n updateValue(parsed);\n },\n [parseValue, updateValue],\n );\n\n // Handle blur - clamp if needed\n const handleBlur = useCallback(() => {\n if (clampOnBlur && currentValue !== undefined) {\n const clamped = clampValue(currentValue);\n if (clamped !== currentValue) {\n updateValue(clamped);\n }\n }\n }, [clampOnBlur, currentValue, clampValue, updateValue]);\n\n // Increment value\n const handleIncrement = useCallback(() => {\n const newValue = (currentValue ?? 0) + step;\n const clamped = clampValue(newValue);\n updateValue(clamped);\n }, [currentValue, step, clampValue, updateValue]);\n\n // Decrement value\n const handleDecrement = useCallback(() => {\n const newValue = (currentValue ?? 0) - step;\n const clamped = clampValue(newValue);\n updateValue(clamped);\n }, [currentValue, step, clampValue, updateValue]);\n\n // Handle keyboard events\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (readOnly || disabled) return;\n\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n handleIncrement();\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n handleDecrement();\n }\n },\n [readOnly, disabled, handleIncrement, handleDecrement],\n );\n\n // Check if buttons should be disabled\n const isIncrementDisabled = useMemo(() => {\n if (disabled || readOnly || loading) return true;\n if (\n max !== undefined &&\n currentValue !== undefined &&\n currentValue >= max\n )\n return true;\n return false;\n }, [disabled, readOnly, loading, max, currentValue]);\n\n const isDecrementDisabled = useMemo(() => {\n if (disabled || readOnly || loading) return true;\n if (\n min !== undefined &&\n currentValue !== undefined &&\n currentValue <= min\n )\n return true;\n return false;\n }, [disabled, readOnly, loading, min, currentValue]);\n\n // Memoize aria-describedby\n const ariaDescribedBy = useMemo(() => {\n return helperMessage ? helperId : undefined;\n }, [helperMessage, helperId]);\n\n // Memoized className computations\n const rootClass = useMemo(\n () =>\n cn(\n \"number-input_root\",\n \"w-full flex flex-col relative\",\n !fullWidth && \"inline-block\",\n classNames?.root,\n ),\n [fullWidth, classNames?.root],\n );\n\n const labelClass = useMemo(\n () =>\n cn(\n \"number-input_label\",\n \"text-sm font-medium text-text-secondary mb-0.5\",\n classNames?.label,\n ),\n [classNames?.label],\n );\n\n const wrapperClass = useMemo(\n () =>\n cn(\n \"number-input_wrapper\",\n \"relative flex items-center\",\n loading && \"opacity-50 cursor-not-allowed\",\n controlsPosition === \"sides\" && \"gap-1\",\n classNames?.wrapper,\n ),\n [loading, controlsPosition, classNames?.wrapper],\n );\n\n const inputClass = useMemo(\n () =>\n cn(\n \"number-input_input\",\n numberInputVariants({ status, size, fullWidth, controlsPosition }),\n controls && controlsPosition === \"right\" && \"pr-16\",\n controls && controlsPosition === \"sides\" && \"text-center\",\n className,\n classNames?.input,\n ),\n [\n status,\n size,\n fullWidth,\n controlsPosition,\n controls,\n className,\n classNames?.input,\n ],\n );\n\n const controlsClass = useMemo(\n () =>\n cn(\n \"number-input_controls\",\n \"flex\",\n controlsPosition === \"right\" &&\n \"absolute right-0 top-0 h-full border-l border-border\",\n controlsPosition === \"sides\" && \"gap-1\",\n classNames?.controls,\n ),\n [controlsPosition, classNames?.controls],\n );\n\n const helperClass = useMemo(\n () =>\n cn(\n \"number-input_helper\",\n statusMessageVariants({ status }),\n \"mt-0.5\",\n status === \"error\" ? classNames?.error : classNames?.helper,\n ),\n [status, classNames?.error, classNames?.helper],\n );\n\n const iconSize = iconSizes[size];\n\n const incrementButton = (\n <button\n type=\"button\"\n onClick={handleIncrement}\n disabled={isIncrementDisabled}\n data-slot=\"increment\"\n className={cn(\n \"number-input_increment h-full!\",\n controlButtonVariants({ size, position: controlsPosition }),\n controlsPosition === \"right\" && \"\",\n classNames?.increment,\n )}\n aria-label=\"Increment value\"\n tabIndex={-1}\n >\n <Plus className={iconSize} aria-hidden=\"true\" />\n </button>\n );\n\n const decrementButton = (\n <button\n type=\"button\"\n onClick={handleDecrement}\n disabled={isDecrementDisabled}\n data-slot=\"decrement\"\n className={cn(\n \"number-input_decrement h-full!\",\n controlButtonVariants({ size, position: controlsPosition }),\n controlsPosition === \"right\" && \"border-r border-border\",\n classNames?.decrement,\n )}\n aria-label=\"Decrement value\"\n tabIndex={-1}\n >\n <Minus className={iconSize} aria-hidden=\"true\" />\n </button>\n );\n\n const inputElement = (\n <div data-slot=\"wrapper\" className={wrapperClass}>\n {controls && controlsPosition === \"sides\" && decrementButton}\n <input\n ref={ref}\n id={inputId}\n name={name}\n type=\"text\"\n inputMode=\"decimal\"\n data-slot=\"input\"\n className={inputClass}\n value={formatValue(currentValue)}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder}\n aria-invalid={status === \"error\"}\n aria-describedby={ariaDescribedBy}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentValue}\n />\n {controls && controlsPosition === \"right\" && (\n <div data-slot=\"controls\" className={controlsClass}>\n <div className=\"flex flex-row h-full\">\n {decrementButton}\n {incrementButton}\n </div>\n </div>\n )}\n {controls && controlsPosition === \"sides\" && incrementButton}\n {loading && (\n <div className=\"absolute right-3 flex items-center\">\n <Spinner aria-hidden=\"true\" />\n </div>\n )}\n </div>\n );\n\n return (\n <div data-slot=\"root\" className={rootClass}>\n {label && (\n <label htmlFor={inputId} data-slot=\"label\" className={labelClass}>\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </label>\n )}\n {inputElement}\n {helperMessage && (\n <p id={helperId} data-slot=\"helper\" className={helperClass}>\n {helperMessage}\n </p>\n )}\n </div>\n );\n },\n);\n\nNumberInput.displayName = \"NumberInput\";\n\nexport type * from \"./types\";\nexport default NumberInput;\n"]}
|
package/dist/chunk-DRL4CJMI.js
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { cn, iconSizes } from './chunk-NGYLRX6F.js';
|
|
2
|
-
import { cva } from 'class-variance-authority';
|
|
3
|
-
import { ExternalLink } from 'lucide-react';
|
|
4
|
-
import React from 'react';
|
|
5
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
var linkVariants = cva(
|
|
8
|
-
"inline-flex items-center gap-1 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
9
|
-
{
|
|
10
|
-
variants: {
|
|
11
|
-
color: {
|
|
12
|
-
default: "text-text-primary hover:text-text-primary/80",
|
|
13
|
-
primary: "text-primary hover:text-primary/80",
|
|
14
|
-
secondary: "text-secondary hover:text-secondary/80",
|
|
15
|
-
accent: "text-accent hover:text-accent/80",
|
|
16
|
-
success: "text-success hover:text-success/80",
|
|
17
|
-
error: "text-error hover:text-error/80",
|
|
18
|
-
warning: "text-warning hover:text-warning/80",
|
|
19
|
-
info: "text-info hover:text-info/80"
|
|
20
|
-
},
|
|
21
|
-
size: {
|
|
22
|
-
xs: "text-xs",
|
|
23
|
-
sm: "text-sm",
|
|
24
|
-
md: "text-base",
|
|
25
|
-
lg: "text-lg"
|
|
26
|
-
},
|
|
27
|
-
underline: {
|
|
28
|
-
always: "underline",
|
|
29
|
-
hover: "no-underline hover:underline",
|
|
30
|
-
none: "no-underline"
|
|
31
|
-
},
|
|
32
|
-
disabled: {
|
|
33
|
-
true: "opacity-50 pointer-events-none cursor-not-allowed",
|
|
34
|
-
false: "cursor-pointer"
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
defaultVariants: {
|
|
38
|
-
color: "default",
|
|
39
|
-
size: "md",
|
|
40
|
-
underline: "hover",
|
|
41
|
-
disabled: false
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
);
|
|
45
|
-
var Link = React.memo(
|
|
46
|
-
({
|
|
47
|
-
children,
|
|
48
|
-
color = "default",
|
|
49
|
-
size = "md",
|
|
50
|
-
underline = "hover",
|
|
51
|
-
external = false,
|
|
52
|
-
showExternalIcon = true,
|
|
53
|
-
disabled = false,
|
|
54
|
-
leftIcon,
|
|
55
|
-
rightIcon,
|
|
56
|
-
className,
|
|
57
|
-
classNames,
|
|
58
|
-
href,
|
|
59
|
-
ref,
|
|
60
|
-
onClick,
|
|
61
|
-
...props
|
|
62
|
-
}) => {
|
|
63
|
-
const handleClick = (e) => {
|
|
64
|
-
if (disabled) {
|
|
65
|
-
e.preventDefault();
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
onClick?.(e);
|
|
69
|
-
};
|
|
70
|
-
const externalProps = external ? {
|
|
71
|
-
target: "_blank",
|
|
72
|
-
rel: "noopener noreferrer"
|
|
73
|
-
} : {};
|
|
74
|
-
const showExternalIconRendered = external && showExternalIcon;
|
|
75
|
-
return /* @__PURE__ */ jsxs(
|
|
76
|
-
"a",
|
|
77
|
-
{
|
|
78
|
-
ref,
|
|
79
|
-
href: disabled ? void 0 : href,
|
|
80
|
-
className: cn(
|
|
81
|
-
"link_root",
|
|
82
|
-
(leftIcon || rightIcon) && "align-top",
|
|
83
|
-
linkVariants({
|
|
84
|
-
color,
|
|
85
|
-
size,
|
|
86
|
-
underline,
|
|
87
|
-
disabled
|
|
88
|
-
}),
|
|
89
|
-
classNames?.root,
|
|
90
|
-
className
|
|
91
|
-
),
|
|
92
|
-
onClick: handleClick,
|
|
93
|
-
"aria-disabled": disabled || void 0,
|
|
94
|
-
"data-slot": "root",
|
|
95
|
-
...externalProps,
|
|
96
|
-
...props,
|
|
97
|
-
children: [
|
|
98
|
-
leftIcon && /* @__PURE__ */ jsx(
|
|
99
|
-
"span",
|
|
100
|
-
{
|
|
101
|
-
className: cn(
|
|
102
|
-
"link_icon",
|
|
103
|
-
"inline-flex items-center justify-center shrink-0",
|
|
104
|
-
iconSizes[size],
|
|
105
|
-
classNames?.icon
|
|
106
|
-
),
|
|
107
|
-
"data-slot": "icon",
|
|
108
|
-
children: leftIcon
|
|
109
|
-
}
|
|
110
|
-
),
|
|
111
|
-
children,
|
|
112
|
-
rightIcon && /* @__PURE__ */ jsx(
|
|
113
|
-
"span",
|
|
114
|
-
{
|
|
115
|
-
className: cn(
|
|
116
|
-
"link_icon",
|
|
117
|
-
"inline-flex items-center justify-center shrink-0",
|
|
118
|
-
iconSizes[size],
|
|
119
|
-
classNames?.icon
|
|
120
|
-
),
|
|
121
|
-
"data-slot": "icon",
|
|
122
|
-
children: rightIcon
|
|
123
|
-
}
|
|
124
|
-
),
|
|
125
|
-
showExternalIconRendered && /* @__PURE__ */ jsx(
|
|
126
|
-
ExternalLink,
|
|
127
|
-
{
|
|
128
|
-
className: cn(
|
|
129
|
-
"link_externalIcon",
|
|
130
|
-
iconSizes[size],
|
|
131
|
-
classNames?.externalIcon
|
|
132
|
-
),
|
|
133
|
-
"aria-label": "Opens in new tab",
|
|
134
|
-
"data-slot": "externalIcon"
|
|
135
|
-
}
|
|
136
|
-
)
|
|
137
|
-
]
|
|
138
|
-
}
|
|
139
|
-
);
|
|
140
|
-
}
|
|
141
|
-
);
|
|
142
|
-
Link.displayName = "Link";
|
|
143
|
-
var link_default = Link;
|
|
144
|
-
|
|
145
|
-
export { link_default };
|
|
146
|
-
//# sourceMappingURL=chunk-DRL4CJMI.js.map
|
|
147
|
-
//# sourceMappingURL=chunk-DRL4CJMI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/link/index.tsx"],"names":[],"mappings":"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","file":"chunk-DRL4CJMI.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { ExternalLink } from \"lucide-react\";\nimport React from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport type { LinkProps, LinkSize } from \"./types\";\n\n/**\n * Link variants\n */\nconst linkVariants = cva(\n \"inline-flex items-center gap-1 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n {\n variants: {\n color: {\n default: \"text-text-primary hover:text-text-primary/80\",\n primary: \"text-primary hover:text-primary/80\",\n secondary: \"text-secondary hover:text-secondary/80\",\n accent: \"text-accent hover:text-accent/80\",\n success: \"text-success hover:text-success/80\",\n error: \"text-error hover:text-error/80\",\n warning: \"text-warning hover:text-warning/80\",\n info: \"text-info hover:text-info/80\",\n },\n size: {\n xs: \"text-xs\",\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-lg\",\n },\n underline: {\n always: \"underline\",\n hover: \"no-underline hover:underline\",\n none: \"no-underline\",\n },\n disabled: {\n true: \"opacity-50 pointer-events-none cursor-not-allowed\",\n false: \"cursor-pointer\",\n },\n },\n defaultVariants: {\n color: \"default\",\n size: \"md\",\n underline: \"hover\",\n disabled: false,\n },\n },\n);\n\n/**\n * Link Component\n */\nconst Link = React.memo<LinkProps>(\n ({\n children,\n color = \"default\",\n size = \"md\",\n underline = \"hover\",\n external = false,\n showExternalIcon = true,\n disabled = false,\n leftIcon,\n rightIcon,\n className,\n classNames,\n href,\n ref,\n onClick,\n ...props\n }) => {\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n const externalProps = external\n ? {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n }\n : {};\n\n const showExternalIconRendered = external && showExternalIcon;\n\n return (\n <a\n ref={ref}\n href={disabled ? undefined : href}\n className={cn(\n \"link_root\",\n (leftIcon || rightIcon) && \"align-top\",\n linkVariants({\n color,\n size,\n underline,\n disabled,\n }),\n classNames?.root,\n className,\n )}\n onClick={handleClick}\n aria-disabled={disabled || undefined}\n data-slot=\"root\"\n {...externalProps}\n {...props}\n >\n {leftIcon && (\n <span\n className={cn(\n \"link_icon\",\n \"inline-flex items-center justify-center shrink-0\",\n iconSizes[size as LinkSize],\n classNames?.icon,\n )}\n data-slot=\"icon\"\n >\n {leftIcon}\n </span>\n )}\n {children}\n {rightIcon && (\n <span\n className={cn(\n \"link_icon\",\n \"inline-flex items-center justify-center shrink-0\",\n iconSizes[size as LinkSize],\n classNames?.icon,\n )}\n data-slot=\"icon\"\n >\n {rightIcon}\n </span>\n )}\n {showExternalIconRendered && (\n <ExternalLink\n className={cn(\n \"link_externalIcon\",\n iconSizes[size as LinkSize],\n classNames?.externalIcon,\n )}\n aria-label=\"Opens in new tab\"\n data-slot=\"externalIcon\"\n />\n )}\n </a>\n );\n },\n);\n\nLink.displayName = \"Link\";\n\nexport type * from \"./types\";\nexport default Link;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/toggle/index.tsx"],"names":[],"mappings":"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","file":"chunk-DUNER5Q3.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState } from 'react'\n\nimport { cn } from '../utils'\nimport type { SingleToggleProps } from './types'\n\n// Inactive hover states for each color\nconst inactiveHoverClasses = {\n default: 'text-text-secondary hover:text-text-primary hover:bg-surface',\n primary: 'text-text-secondary hover:text-primary hover:bg-primary/10',\n secondary: 'text-text-secondary hover:text-secondary hover:bg-secondary/10',\n accent: 'text-text-secondary hover:text-accent hover:bg-accent/10',\n success: 'text-text-secondary hover:text-success hover:bg-success/10',\n error: 'text-text-secondary hover:text-error hover:bg-error/10',\n warning: 'text-text-secondary hover:text-warning hover:bg-warning/10',\n info: 'text-text-secondary hover:text-info hover:bg-info/10',\n} as const\n\n// Active solid variant classes\nconst activeSolidClasses = {\n default: 'bg-border text-text-primary',\n primary: 'bg-primary text-background',\n secondary: 'bg-secondary text-background',\n accent: 'bg-accent text-background',\n success: 'bg-success text-background',\n error: 'bg-error text-background',\n warning: 'bg-warning text-background',\n info: 'bg-info text-background',\n} as const\n\n// Active soft variant classes\nconst activeSoftClasses = {\n default: 'bg-border/20 text-text-primary',\n primary: 'bg-primary/20 text-primary',\n secondary: 'bg-secondary/20 text-secondary',\n accent: 'bg-accent/20 text-accent',\n success: 'bg-success/20 text-success',\n error: 'bg-error/20 text-error',\n warning: 'bg-warning/20 text-warning',\n info: 'bg-info/20 text-info',\n} as const\n\n// Active default variant classes\nconst activeDefaultClasses = {\n default: 'bg-surface text-text-primary',\n primary: 'border-primary bg-primary/10 text-primary',\n secondary: 'border-secondary bg-secondary/10 text-secondary',\n accent: 'border-accent bg-accent/10 text-accent',\n success: 'border-success bg-success/10 text-success',\n error: 'border-error bg-error/10 text-error',\n warning: 'border-warning bg-warning/10 text-warning',\n info: 'border-info bg-info/10 text-info',\n} as const\n\ntype ToggleColor = keyof typeof inactiveHoverClasses\n\nconst getToggleClasses = (\n color: string,\n variant: string,\n isActive: boolean,\n) => {\n const toggleColor = color as ToggleColor\n\n if (!isActive) {\n return inactiveHoverClasses[toggleColor] || inactiveHoverClasses.default\n }\n\n // Active state\n if (variant === 'solid') {\n return activeSolidClasses[toggleColor] || activeSolidClasses.default\n }\n if (variant === 'soft') {\n return activeSoftClasses[toggleColor] || activeSoftClasses.default\n }\n return activeDefaultClasses[toggleColor] || activeDefaultClasses.default\n}\n\nconst singleToggleVariants = cva(\n 'inline-flex items-center gap-2 font-medium transition-[colors,transform] cursor-pointer border rounded-md active:scale-[0.95] focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2',\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\n// Single toggle uses the same class logic as toggle group\nconst getSingleToggleClasses = (\n color: string,\n variant: string,\n isPressed: boolean,\n) => {\n return getToggleClasses(color, variant, isPressed)\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 }) => {\n const [internalPressed, setInternalPressed] = useState(defaultPressed)\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 type=\"button\"\n className={cn(\n 'toggle_root',\n singleToggleVariants({ size }),\n getSingleToggleClasses(color, variant, pressed),\n 'border',\n disabled && 'opacity-50 cursor-not-allowed',\n classNames?.root,\n className,\n )}\n onClick={handleClick}\n disabled={disabled}\n aria-pressed={pressed}\n aria-label={ariaLabel}\n >\n {icon}\n {children}\n </button>\n )\n },\n)\n\nToggle.displayName = 'Toggle'\n\nexport type * from './types'\nexport default Toggle\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/toggle-group/index.tsx"],"names":[],"mappings":"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","file":"chunk-E222IQHF.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState } from 'react'\n\nimport { cn } from '../utils'\nimport type { ToggleGroupProps } from './types'\n\nconst toggleGroupVariants = cva(\n 'inline-flex border rounded-md overflow-hidden',\n {\n variants: {\n size: {\n xs: 'gap-0',\n sm: 'gap-0',\n md: 'gap-0',\n lg: 'gap-0',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst toggleItemVariants = cva(\n 'font-medium transition-[colors,transform] cursor-pointer border-r last:border-r-0 active:scale-[0.97] focus:outline-none focus-visible:ring-2 focus-visible:ring-inset',\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\n// Inactive hover states for each color\nconst inactiveHoverClasses = {\n default: 'text-text-secondary hover:text-text-primary hover:bg-surface',\n primary: 'text-text-secondary hover:text-primary hover:bg-primary/10',\n secondary: 'text-text-secondary hover:text-secondary hover:bg-secondary/10',\n accent: 'text-text-secondary hover:text-accent hover:bg-accent/10',\n success: 'text-text-secondary hover:text-success hover:bg-success/10',\n error: 'text-text-secondary hover:text-error hover:bg-error/10',\n warning: 'text-text-secondary hover:text-warning hover:bg-warning/10',\n info: 'text-text-secondary hover:text-info hover:bg-info/10',\n} as const\n\n// Active solid variant classes\nconst activeSolidClasses = {\n default: 'bg-border text-text-primary',\n primary: 'bg-primary text-background',\n secondary: 'bg-secondary text-background',\n accent: 'bg-accent text-background',\n success: 'bg-success text-background',\n error: 'bg-error text-background',\n warning: 'bg-warning text-background',\n info: 'bg-info text-background',\n} as const\n\n// Active soft variant classes\nconst activeSoftClasses = {\n default: 'bg-border/20 text-text-primary',\n primary: 'bg-primary/20 text-primary',\n secondary: 'bg-secondary/20 text-secondary',\n accent: 'bg-accent/20 text-accent',\n success: 'bg-success/20 text-success',\n error: 'bg-error/20 text-error',\n warning: 'bg-warning/20 text-warning',\n info: 'bg-info/20 text-info',\n} as const\n\n// Active default variant classes\nconst activeDefaultClasses = {\n default: 'bg-surface text-text-primary',\n primary: 'border-primary bg-primary/10 text-primary',\n secondary: 'border-secondary bg-secondary/10 text-secondary',\n accent: 'border-accent bg-accent/10 text-accent',\n success: 'border-success bg-success/10 text-success',\n error: 'border-error bg-error/10 text-error',\n warning: 'border-warning bg-warning/10 text-warning',\n info: 'border-info bg-info/10 text-info',\n} as const\n\ntype ToggleColor = keyof typeof inactiveHoverClasses\n\nconst getToggleClasses = (\n color: string,\n variant: string,\n isActive: boolean,\n) => {\n const toggleColor = color as ToggleColor\n\n if (!isActive) {\n return inactiveHoverClasses[toggleColor] || inactiveHoverClasses.default\n }\n\n // Active state\n if (variant === 'solid') {\n return activeSolidClasses[toggleColor] || activeSolidClasses.default\n }\n if (variant === 'soft') {\n return activeSoftClasses[toggleColor] || activeSoftClasses.default\n }\n return activeDefaultClasses[toggleColor] || activeDefaultClasses.default\n}\n\nexport const ToggleGroup = React.memo<ToggleGroupProps>(\n ({\n options,\n value: controlledValue,\n defaultValue,\n multiple = false,\n color = 'primary',\n size = 'md',\n variant = 'default',\n onChange,\n fullWidth = false,\n disabled = false,\n className,\n centered = false,\n classNames,\n }) => {\n const [internalValue, setInternalValue] = useState<string | string[]>(\n defaultValue || (multiple ? [] : options[0]?.value || ''),\n )\n\n const value =\n controlledValue !== undefined ? controlledValue : internalValue\n\n const handleToggleClick = (\n optionValue: string,\n optionDisabled?: boolean,\n ) => {\n if (disabled || optionDisabled) return\n\n let newValue: string | string[]\n\n if (multiple) {\n const currentValues = Array.isArray(value) ? value : []\n if (currentValues.includes(optionValue)) {\n newValue = currentValues.filter((v) => v !== optionValue)\n } else {\n newValue = [...currentValues, optionValue]\n }\n } else {\n newValue = optionValue\n }\n\n if (controlledValue === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n }\n\n const isActive = (optionValue: string) => {\n if (multiple && Array.isArray(value)) {\n return value.includes(optionValue)\n }\n return optionValue === value\n }\n\n return (\n <div\n role=\"group\"\n className={cn(\n 'toggleGroup_root',\n toggleGroupVariants({ size }),\n 'border-border bg-background',\n classNames?.root,\n className,\n fullWidth && 'grid w-full',\n )}\n style={fullWidth ? { gridTemplateColumns: `repeat(${options.length}, 1fr)` } : undefined}\n >\n {options.map((option) => {\n const active = isActive(option.value)\n const isDisabled = disabled || option.disabled\n\n return (\n <button\n type=\"button\"\n key={option.value}\n className={cn(\n 'toggleGroup_item',\n toggleItemVariants({ size }),\n getToggleClasses(color, variant, active),\n\n 'border-border flex items-center justify-center',\n isDisabled && 'opacity-50 cursor-not-allowed',\n centered && 'text-center',\n classNames?.item,\n )}\n onClick={() => handleToggleClick(option.value, option.disabled)}\n disabled={isDisabled}\n aria-pressed={active}\n >\n <div className=\"flex items-center gap-2\">\n {option.icon}\n {option.label}\n </div>\n </button>\n )\n })}\n </div>\n )\n },\n)\n\nToggleGroup.displayName = 'ToggleGroup'\n\nexport type * from './types'\nexport default ToggleGroup\n"]}
|
package/dist/chunk-FVTMKQUE.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-NGYLRX6F.js';
|
|
2
|
-
import { cva } from 'class-variance-authority';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { jsx } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
var ribbonVariants = cva(
|
|
7
|
-
"absolute z-10 rounded-md font-semibold whitespace-nowrap",
|
|
8
|
-
{
|
|
9
|
-
variants: {
|
|
10
|
-
size: {
|
|
11
|
-
xs: "px-2 py-0.5 text-xs",
|
|
12
|
-
sm: "px-3 py-1 text-xs",
|
|
13
|
-
md: "px-4 py-1.5 text-sm",
|
|
14
|
-
lg: "px-5 py-2 text-base"
|
|
15
|
-
},
|
|
16
|
-
position: {
|
|
17
|
-
"top-left": "-top-2 -left-2",
|
|
18
|
-
"top-right": "-top-2 -right-2",
|
|
19
|
-
"bottom-left": "-bottom-2 -left-2",
|
|
20
|
-
"bottom-right": "-bottom-2 -right-2"
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
defaultVariants: {
|
|
24
|
-
size: "md",
|
|
25
|
-
position: "top-right"
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
);
|
|
29
|
-
var ribbonColorStyles = {
|
|
30
|
-
default: "bg-surface text-text-primary",
|
|
31
|
-
primary: "bg-primary text-white",
|
|
32
|
-
secondary: "bg-secondary text-white",
|
|
33
|
-
accent: "bg-accent text-white",
|
|
34
|
-
success: "bg-success text-white",
|
|
35
|
-
error: "bg-error text-white",
|
|
36
|
-
warning: "bg-warning text-white",
|
|
37
|
-
info: "bg-info text-white"
|
|
38
|
-
};
|
|
39
|
-
var Ribbon = React.memo(
|
|
40
|
-
({
|
|
41
|
-
children,
|
|
42
|
-
color = "primary",
|
|
43
|
-
size = "md",
|
|
44
|
-
position = "top-right",
|
|
45
|
-
className
|
|
46
|
-
}) => {
|
|
47
|
-
return /* @__PURE__ */ jsx(
|
|
48
|
-
"div",
|
|
49
|
-
{
|
|
50
|
-
"data-slot": "root",
|
|
51
|
-
className: cn(
|
|
52
|
-
"ribbon_root",
|
|
53
|
-
ribbonVariants({ size, position }),
|
|
54
|
-
ribbonColorStyles[color],
|
|
55
|
-
className
|
|
56
|
-
),
|
|
57
|
-
children
|
|
58
|
-
}
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
);
|
|
62
|
-
Ribbon.displayName = "Ribbon";
|
|
63
|
-
var ribbon_default = Ribbon;
|
|
64
|
-
|
|
65
|
-
export { Ribbon, ribbon_default };
|
|
66
|
-
//# sourceMappingURL=chunk-FVTMKQUE.js.map
|
|
67
|
-
//# sourceMappingURL=chunk-FVTMKQUE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ribbon/index.tsx"],"names":[],"mappings":";;;;;AAMA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,0DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,QAAA,EAAU;AAAA,QACR,UAAA,EAAY,gBAAA;AAAA,QACZ,WAAA,EAAa,iBAAA;AAAA,QACb,aAAA,EAAe,mBAAA;AAAA,QACf,cAAA,EAAgB;AAAA;AAClB,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,QAAA,EAAU;AAAA;AACZ;AAEJ,CAAA;AAEA,IAAM,iBAAA,GAAoB;AAAA,EACxB,OAAA,EAAS,8BAAA;AAAA,EACT,OAAA,EAAS,uBAAA;AAAA,EACT,SAAA,EAAW,yBAAA;AAAA,EACX,MAAA,EAAQ,sBAAA;AAAA,EACR,OAAA,EAAS,uBAAA;AAAA,EACT,KAAA,EAAO,qBAAA;AAAA,EACP,OAAA,EAAS,uBAAA;AAAA,EACT,IAAA,EAAM;AACR,CAAA;AAEO,IAAM,SAAS,KAAA,CAAM,IAAA;AAAA,EAC1B,CAAC;AAAA,IACC,QAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,QAAA,GAAW,WAAA;AAAA,IACX;AAAA,GACF,KAAM;AACJ,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,aAAA;AAAA,UACA,cAAA,CAAe,EAAE,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,UACjC,kBAAkB,KAAK,CAAA;AAAA,UACvB;AAAA,SACF;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;AAGrB,IAAO,cAAA,GAAQ","file":"chunk-FVTMKQUE.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { RibbonProps } from './types'\n\nconst ribbonVariants = cva(\n 'absolute z-10 rounded-md font-semibold whitespace-nowrap',\n {\n variants: {\n size: {\n xs: 'px-2 py-0.5 text-xs',\n sm: 'px-3 py-1 text-xs',\n md: 'px-4 py-1.5 text-sm',\n lg: 'px-5 py-2 text-base',\n },\n position: {\n 'top-left': '-top-2 -left-2',\n 'top-right': '-top-2 -right-2',\n 'bottom-left': '-bottom-2 -left-2',\n 'bottom-right': '-bottom-2 -right-2',\n },\n },\n defaultVariants: {\n size: 'md',\n position: 'top-right',\n },\n },\n)\n\nconst ribbonColorStyles = {\n default: 'bg-surface text-text-primary',\n primary: 'bg-primary text-white',\n secondary: 'bg-secondary text-white',\n accent: 'bg-accent text-white',\n success: 'bg-success text-white',\n error: 'bg-error text-white',\n warning: 'bg-warning text-white',\n info: 'bg-info text-white',\n}\n\nexport const Ribbon = React.memo<RibbonProps>(\n ({\n children,\n color = 'primary',\n size = 'md',\n position = 'top-right',\n className,\n }) => {\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'ribbon_root',\n ribbonVariants({ size, position }),\n ribbonColorStyles[color],\n className,\n )}\n >\n {children}\n </div>\n )\n },\n)\n\nRibbon.displayName = 'Ribbon'\n\nexport type * from './types'\nexport default Ribbon\n"]}
|