@mdigital_ui/ui 0.2.5 → 0.2.7
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/LICENSE +21 -0
- package/README.md +1023 -341
- package/dist/accordion/index.js +3 -3
- package/dist/avatar/index.js +4 -0
- package/dist/avatar/index.js.map +1 -0
- package/dist/badge/index.js +3 -3
- package/dist/breadcrumbs/index.js +5 -5
- package/dist/button/index.js +4 -4
- package/dist/button-group/index.js +2 -2
- package/dist/card/index.js +2 -2
- package/dist/carousel/index.js +2 -1
- package/dist/cascader/index.js +2 -2
- package/dist/chart/index.js +2 -2
- package/dist/checkbox/index.js +3 -3
- package/dist/checkbox-group/index.js +2 -2
- package/dist/chunk-27QEPVKU.js +115 -0
- package/dist/chunk-27QEPVKU.js.map +1 -0
- package/dist/{chunk-Y5A26EGR.js → chunk-2J57G7XG.js} +82 -24
- package/dist/chunk-2J57G7XG.js.map +1 -0
- package/dist/{chunk-FPOXTCYV.js → chunk-2NYVRAG4.js} +29 -20
- package/dist/chunk-2NYVRAG4.js.map +1 -0
- package/dist/chunk-2OUGJBXK.js +742 -0
- package/dist/chunk-2OUGJBXK.js.map +1 -0
- package/dist/{chunk-ROR4E6IE.js → chunk-2WZVD7P3.js} +38 -12
- package/dist/chunk-2WZVD7P3.js.map +1 -0
- package/dist/chunk-3UCZ4GMN.js +84 -0
- package/dist/chunk-3UCZ4GMN.js.map +1 -0
- package/dist/{chunk-RPAQAZTI.js → chunk-4LSKRZOT.js} +12 -7
- package/dist/chunk-4LSKRZOT.js.map +1 -0
- package/dist/{chunk-ASW7TEAN.js → chunk-4SQOFZ3N.js} +35 -18
- package/dist/chunk-4SQOFZ3N.js.map +1 -0
- package/dist/chunk-5PUATOLR.js +127 -0
- package/dist/chunk-5PUATOLR.js.map +1 -0
- package/dist/chunk-6TMOKYR7.js +75 -0
- package/dist/chunk-6TMOKYR7.js.map +1 -0
- package/dist/chunk-7UCNBMCV.js +261 -0
- package/dist/chunk-7UCNBMCV.js.map +1 -0
- package/dist/chunk-AQYOVYPS.js +237 -0
- package/dist/chunk-AQYOVYPS.js.map +1 -0
- package/dist/{chunk-BP434VYV.js → chunk-C5YO5VZS.js} +17 -17
- package/dist/chunk-C5YO5VZS.js.map +1 -0
- package/dist/{chunk-ZNJ7M5QK.js → chunk-CHGJX5F2.js} +69 -46
- package/dist/chunk-CHGJX5F2.js.map +1 -0
- package/dist/chunk-CK6A2R66.js +336 -0
- package/dist/chunk-CK6A2R66.js.map +1 -0
- package/dist/{chunk-I5ANSIDK.js → chunk-CMGCJXE5.js} +280 -100
- package/dist/chunk-CMGCJXE5.js.map +1 -0
- package/dist/chunk-CSRMVLPR.js +394 -0
- package/dist/chunk-CSRMVLPR.js.map +1 -0
- package/dist/chunk-DH7R6NBG.js +107 -0
- package/dist/chunk-DH7R6NBG.js.map +1 -0
- package/dist/{chunk-XMAH5PDW.js → chunk-FEMHXG2P.js} +28 -11
- package/dist/chunk-FEMHXG2P.js.map +1 -0
- package/dist/chunk-FIGSNRWY.js +382 -0
- package/dist/chunk-FIGSNRWY.js.map +1 -0
- package/dist/{chunk-C7SXY3ZV.js → chunk-FVTMKQUE.js} +5 -3
- package/dist/chunk-FVTMKQUE.js.map +1 -0
- package/dist/{chunk-UAMFKX6L.js → chunk-GBVIACYQ.js} +103 -42
- package/dist/chunk-GBVIACYQ.js.map +1 -0
- package/dist/chunk-H47C2ENJ.js +215 -0
- package/dist/chunk-H47C2ENJ.js.map +1 -0
- package/dist/chunk-HWFI4GJE.js +130 -0
- package/dist/chunk-HWFI4GJE.js.map +1 -0
- package/dist/chunk-IA42ELUP.js +72 -0
- package/dist/chunk-IA42ELUP.js.map +1 -0
- package/dist/{chunk-HUVXKOJC.js → chunk-INQI3UUI.js} +80 -22
- package/dist/chunk-INQI3UUI.js.map +1 -0
- package/dist/{chunk-BNILRB4T.js → chunk-J525ROGL.js} +12 -7
- package/dist/chunk-J525ROGL.js.map +1 -0
- package/dist/chunk-JLS4MBHN.js +205 -0
- package/dist/chunk-JLS4MBHN.js.map +1 -0
- package/dist/{chunk-SK5ECBBK.js → chunk-KTHWXHDN.js} +15 -6
- package/dist/chunk-KTHWXHDN.js.map +1 -0
- package/dist/{chunk-SOV4PE3P.js → chunk-LMR7TKDJ.js} +25 -7
- package/dist/chunk-LMR7TKDJ.js.map +1 -0
- package/dist/{chunk-NNSS366W.js → chunk-MRFCITKK.js} +53 -11
- package/dist/chunk-MRFCITKK.js.map +1 -0
- package/dist/chunk-MXDTUN3V.js +459 -0
- package/dist/chunk-MXDTUN3V.js.map +1 -0
- package/dist/{chunk-YNNAOXU5.js → chunk-NGYLRX6F.js} +3 -18
- package/dist/chunk-NGYLRX6F.js.map +1 -0
- package/dist/chunk-NTPWR57C.js +445 -0
- package/dist/chunk-NTPWR57C.js.map +1 -0
- package/dist/chunk-OWXQ45GS.js +276 -0
- package/dist/chunk-OWXQ45GS.js.map +1 -0
- package/dist/{chunk-75XESYGN.js → chunk-P6A75RAH.js} +7 -13
- package/dist/chunk-P6A75RAH.js.map +1 -0
- package/dist/{chunk-RMGIO27V.js → chunk-PXOHJJBE.js} +39 -10
- package/dist/chunk-PXOHJJBE.js.map +1 -0
- package/dist/{chunk-SAVE5ACL.js → chunk-Q57THXIU.js} +28 -10
- package/dist/chunk-Q57THXIU.js.map +1 -0
- package/dist/{chunk-J3G5WWGR.js → chunk-QDHGE7IF.js} +7 -15
- package/dist/chunk-QDHGE7IF.js.map +1 -0
- package/dist/{chunk-7PKVBUGL.js → chunk-QKSDVYKF.js} +4 -4
- package/dist/chunk-QKSDVYKF.js.map +1 -0
- package/dist/chunk-ROA7BYGB.js +123 -0
- package/dist/chunk-ROA7BYGB.js.map +1 -0
- package/dist/{chunk-DPOSWW22.js → chunk-RPIJ2KY7.js} +11 -4
- package/dist/chunk-RPIJ2KY7.js.map +1 -0
- package/dist/{chunk-R225A5II.js → chunk-RW4RW4DV.js} +80 -30
- package/dist/chunk-RW4RW4DV.js.map +1 -0
- package/dist/chunk-RYKVZFGB.js +607 -0
- package/dist/chunk-RYKVZFGB.js.map +1 -0
- package/dist/chunk-SAVEKACZ.js +552 -0
- package/dist/chunk-SAVEKACZ.js.map +1 -0
- package/dist/chunk-SDNT2JGC.js +143 -0
- package/dist/chunk-SDNT2JGC.js.map +1 -0
- package/dist/{chunk-DOKTHDG3.js → chunk-SGRACNBP.js} +12 -7
- package/dist/chunk-SGRACNBP.js.map +1 -0
- package/dist/{chunk-OALOWWO7.js → chunk-TTEBZZ3T.js} +55 -42
- package/dist/chunk-TTEBZZ3T.js.map +1 -0
- package/dist/{chunk-FCMVKFVV.js → chunk-US4ZCMNU.js} +26 -20
- package/dist/chunk-US4ZCMNU.js.map +1 -0
- package/dist/chunk-UUP7YGOS.js +299 -0
- package/dist/chunk-UUP7YGOS.js.map +1 -0
- package/dist/{chunk-QPJL66S7.js → chunk-VUBU7Y4F.js} +123 -55
- package/dist/chunk-VUBU7Y4F.js.map +1 -0
- package/dist/chunk-WUBMNJGC.js +141 -0
- package/dist/chunk-WUBMNJGC.js.map +1 -0
- package/dist/chunk-WVG3QQDN.js +283 -0
- package/dist/chunk-WVG3QQDN.js.map +1 -0
- package/dist/chunk-WZ2KDHFP.js +109 -0
- package/dist/chunk-WZ2KDHFP.js.map +1 -0
- package/dist/{chunk-FGWSUPVW.js → chunk-X5SCI7KH.js} +190 -137
- package/dist/chunk-X5SCI7KH.js.map +1 -0
- package/dist/{chunk-D3JWPGCA.js → chunk-XJCWPPMM.js} +10 -56
- package/dist/chunk-XJCWPPMM.js.map +1 -0
- package/dist/{chunk-LEKLQR4I.js → chunk-YAAV7FQG.js} +70 -45
- package/dist/chunk-YAAV7FQG.js.map +1 -0
- package/dist/chunk-YOG5GXIC.js +196 -0
- package/dist/chunk-YOG5GXIC.js.map +1 -0
- package/dist/chunk-Z5VJ6MJP.js +234 -0
- package/dist/chunk-Z5VJ6MJP.js.map +1 -0
- package/dist/{chunk-267WNY3E.js → chunk-ZC3E3PWH.js} +109 -73
- package/dist/chunk-ZC3E3PWH.js.map +1 -0
- package/dist/clipboard/index.js +2 -2
- package/dist/collapse/index.js +2 -2
- package/dist/command/index.js +3 -3
- package/dist/context-menu/index.js +4 -0
- package/dist/context-menu/index.js.map +1 -0
- package/dist/date-picker/index.js +4 -3
- package/dist/descriptions/index.js +2 -2
- package/dist/divider/index.js +4 -0
- package/dist/divider/index.js.map +1 -0
- package/dist/drawer/index.js +2 -2
- package/dist/dropdown/index.js +4 -3
- package/dist/empty/index.js +2 -2
- package/dist/fetching-overlay/index.js +4 -3
- package/dist/grid/index.js +2 -2
- package/dist/image/index.js +2 -2
- package/dist/index.d.ts +2494 -211
- package/dist/index.js +63 -186
- package/dist/index.js.map +1 -1
- package/dist/input/index.js +4 -3
- package/dist/input-group/index.js +2 -2
- package/dist/input-otp/index.js +2 -2
- package/dist/input-password/index.js +5 -4
- package/dist/kbd/index.js +3 -2
- package/dist/modal/index.js +2 -2
- package/dist/multi-select/index.js +4 -3
- package/dist/notification/index.js +3 -2
- package/dist/pagination/index.js +2 -2
- package/dist/popover/index.js +3 -2
- package/dist/progress/index.js +2 -2
- package/dist/radio/index.js +3 -2
- package/dist/radio-group/index.js +2 -2
- package/dist/rating/index.js +2 -2
- package/dist/ribbon/index.js +2 -2
- package/dist/select/index.js +5 -4
- package/dist/skeleton/index.js +3 -2
- package/dist/slider/index.js +2 -2
- package/dist/spinner/index.js +3 -2
- package/dist/stepper/index.js +2 -2
- package/dist/styles/base.css +2165 -1375
- package/dist/styles/global.css +2393 -1036
- package/dist/styles/themes/dark.css +3 -1
- package/dist/styles/themes/light.css +3 -1
- package/dist/styles/themes/presets/corporate.css +126 -0
- package/dist/styles/themes/presets/minimal.css +126 -0
- package/dist/styles/themes/presets/vibrant.css +126 -0
- package/dist/switch/index.js +3 -2
- package/dist/table/index.js +10 -10
- package/dist/tabs/index.js +3 -3
- package/dist/tag/index.js +5 -0
- package/dist/tag/index.js.map +1 -0
- package/dist/textarea/index.js +2 -2
- package/dist/theme/index.js +3 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/toggle/index.js +2 -2
- package/dist/toggle-group/index.js +2 -2
- package/dist/tooltip/index.js +3 -2
- package/dist/transfer/index.js +4 -4
- package/dist/tree/index.js +2 -2
- package/dist/tree-select/index.js +5 -4
- package/dist/upload/index.js +2 -2
- package/package.json +460 -70
- package/dist/chunk-267WNY3E.js.map +0 -1
- package/dist/chunk-2EKAF6EJ.js +0 -128
- package/dist/chunk-2EKAF6EJ.js.map +0 -1
- package/dist/chunk-3PFA3YG6.js +0 -228
- package/dist/chunk-3PFA3YG6.js.map +0 -1
- package/dist/chunk-56IXGP5C.js +0 -56
- package/dist/chunk-56IXGP5C.js.map +0 -1
- package/dist/chunk-5UEWVFF6.js +0 -212
- package/dist/chunk-5UEWVFF6.js.map +0 -1
- package/dist/chunk-6V5I5HJ2.js +0 -39
- package/dist/chunk-6V5I5HJ2.js.map +0 -1
- package/dist/chunk-75XESYGN.js.map +0 -1
- package/dist/chunk-7PKVBUGL.js.map +0 -1
- package/dist/chunk-ASW7TEAN.js.map +0 -1
- package/dist/chunk-AWPKZYHT.js +0 -152
- package/dist/chunk-AWPKZYHT.js.map +0 -1
- package/dist/chunk-BFO3ARVJ.js +0 -104
- package/dist/chunk-BFO3ARVJ.js.map +0 -1
- package/dist/chunk-BNILRB4T.js.map +0 -1
- package/dist/chunk-BP434VYV.js.map +0 -1
- package/dist/chunk-C3MX5EXL.js +0 -95
- package/dist/chunk-C3MX5EXL.js.map +0 -1
- package/dist/chunk-C7SXY3ZV.js.map +0 -1
- package/dist/chunk-D3JWPGCA.js.map +0 -1
- package/dist/chunk-DOKTHDG3.js.map +0 -1
- package/dist/chunk-DPOSWW22.js.map +0 -1
- package/dist/chunk-FCMVKFVV.js.map +0 -1
- package/dist/chunk-FGWSUPVW.js.map +0 -1
- package/dist/chunk-FPOXTCYV.js.map +0 -1
- package/dist/chunk-FYHQDFKE.js +0 -164
- package/dist/chunk-FYHQDFKE.js.map +0 -1
- package/dist/chunk-G6TAVRTJ.js +0 -640
- package/dist/chunk-G6TAVRTJ.js.map +0 -1
- package/dist/chunk-GEWR5ROK.js +0 -102
- package/dist/chunk-GEWR5ROK.js.map +0 -1
- package/dist/chunk-HUVXKOJC.js.map +0 -1
- package/dist/chunk-I5ANSIDK.js.map +0 -1
- package/dist/chunk-J3G5WWGR.js.map +0 -1
- package/dist/chunk-JLTDJ3VZ.js +0 -452
- package/dist/chunk-JLTDJ3VZ.js.map +0 -1
- package/dist/chunk-KBCBVH7B.js +0 -51
- package/dist/chunk-KBCBVH7B.js.map +0 -1
- package/dist/chunk-KNQ7UQ2W.js +0 -143
- package/dist/chunk-KNQ7UQ2W.js.map +0 -1
- package/dist/chunk-KTAIRCOL.js +0 -100
- package/dist/chunk-KTAIRCOL.js.map +0 -1
- package/dist/chunk-LEKLQR4I.js.map +0 -1
- package/dist/chunk-MLDX3Z67.js +0 -470
- package/dist/chunk-MLDX3Z67.js.map +0 -1
- package/dist/chunk-NNSS366W.js.map +0 -1
- package/dist/chunk-OALOWWO7.js.map +0 -1
- package/dist/chunk-OOS3B7YZ.js +0 -94
- package/dist/chunk-OOS3B7YZ.js.map +0 -1
- package/dist/chunk-OQANRZPV.js +0 -197
- package/dist/chunk-OQANRZPV.js.map +0 -1
- package/dist/chunk-OW5A5IIF.js +0 -175
- package/dist/chunk-OW5A5IIF.js.map +0 -1
- package/dist/chunk-QPJL66S7.js.map +0 -1
- package/dist/chunk-R225A5II.js.map +0 -1
- package/dist/chunk-RMGIO27V.js.map +0 -1
- package/dist/chunk-ROR4E6IE.js.map +0 -1
- package/dist/chunk-RPAQAZTI.js.map +0 -1
- package/dist/chunk-S5XJXU52.js +0 -178
- package/dist/chunk-S5XJXU52.js.map +0 -1
- package/dist/chunk-SAVE5ACL.js.map +0 -1
- package/dist/chunk-SK5ECBBK.js.map +0 -1
- package/dist/chunk-SOV4PE3P.js.map +0 -1
- package/dist/chunk-UAMFKX6L.js.map +0 -1
- package/dist/chunk-XMAH5PDW.js.map +0 -1
- package/dist/chunk-XMKNYG7I.js +0 -181
- package/dist/chunk-XMKNYG7I.js.map +0 -1
- package/dist/chunk-Y5A26EGR.js.map +0 -1
- package/dist/chunk-YNNAOXU5.js.map +0 -1
- package/dist/chunk-YZ6V6BQ7.js +0 -134
- package/dist/chunk-YZ6V6BQ7.js.map +0 -1
- package/dist/chunk-YZVSDRJD.js +0 -253
- package/dist/chunk-YZVSDRJD.js.map +0 -1
- package/dist/chunk-ZNJ7M5QK.js.map +0 -1
package/dist/chunk-FYHQDFKE.js
DELETED
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-YNNAOXU5.js';
|
|
2
|
-
import { cva } from 'class-variance-authority';
|
|
3
|
-
import { Star } from 'lucide-react';
|
|
4
|
-
import React, { useState } from 'react';
|
|
5
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
var ratingVariants = cva("inline-flex items-center gap-1", {
|
|
8
|
-
variants: {
|
|
9
|
-
size: {
|
|
10
|
-
xs: "text-xs",
|
|
11
|
-
sm: "text-sm",
|
|
12
|
-
md: "text-base",
|
|
13
|
-
lg: "text-lg"
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
defaultVariants: {
|
|
17
|
-
size: "md"
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
var starSizes = {
|
|
21
|
-
xs: 12,
|
|
22
|
-
sm: 16,
|
|
23
|
-
md: 20,
|
|
24
|
-
lg: 24
|
|
25
|
-
};
|
|
26
|
-
var getStarClasses = (color, variant, isFilled, isHovered) => {
|
|
27
|
-
const state = isFilled || isHovered ? "filled" : "empty";
|
|
28
|
-
if (state === "empty") {
|
|
29
|
-
if (variant === "solid") {
|
|
30
|
-
if (color === "default") return "fill-transparent stroke-border";
|
|
31
|
-
return `fill-transparent stroke-${color} opacity-20`;
|
|
32
|
-
}
|
|
33
|
-
if (variant === "soft") {
|
|
34
|
-
if (color === "default") return "fill-transparent stroke-border/50";
|
|
35
|
-
return `fill-transparent stroke-${color} opacity-20`;
|
|
36
|
-
}
|
|
37
|
-
if (color === "default") return "fill-transparent stroke-border";
|
|
38
|
-
return `fill-transparent stroke-${color} opacity-20`;
|
|
39
|
-
}
|
|
40
|
-
if (variant === "solid") {
|
|
41
|
-
if (color === "default") return "fill-border stroke-border";
|
|
42
|
-
return `fill-${color} stroke-${color}`;
|
|
43
|
-
}
|
|
44
|
-
if (variant === "soft") {
|
|
45
|
-
if (color === "default") return "fill-border/50 stroke-border";
|
|
46
|
-
return `fill-${color} opacity-20 stroke-${color}`;
|
|
47
|
-
}
|
|
48
|
-
if (color === "default") return "fill-border stroke-border";
|
|
49
|
-
return `fill-${color} stroke-${color}`;
|
|
50
|
-
};
|
|
51
|
-
var Rating = React.memo(
|
|
52
|
-
({
|
|
53
|
-
value: controlledValue,
|
|
54
|
-
defaultValue = 0,
|
|
55
|
-
count = 5,
|
|
56
|
-
allowHalf = false,
|
|
57
|
-
color = "warning",
|
|
58
|
-
size = "md",
|
|
59
|
-
variant = "solid",
|
|
60
|
-
onChange,
|
|
61
|
-
disabled = false,
|
|
62
|
-
readOnly = false,
|
|
63
|
-
className
|
|
64
|
-
}) => {
|
|
65
|
-
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
66
|
-
const [hoverValue, setHoverValue] = useState(null);
|
|
67
|
-
const value = controlledValue !== void 0 ? controlledValue : internalValue;
|
|
68
|
-
const displayValue = hoverValue !== null ? hoverValue : value;
|
|
69
|
-
const handleStarClick = (index, isHalf) => {
|
|
70
|
-
if (disabled || readOnly) return;
|
|
71
|
-
const newValue = isHalf ? index + 0.5 : index + 1;
|
|
72
|
-
if (controlledValue === void 0) {
|
|
73
|
-
setInternalValue(newValue);
|
|
74
|
-
}
|
|
75
|
-
onChange?.(newValue);
|
|
76
|
-
};
|
|
77
|
-
const handleStarHover = (index, isHalf) => {
|
|
78
|
-
if (disabled || readOnly) return;
|
|
79
|
-
const newValue = isHalf ? index + 0.5 : index + 1;
|
|
80
|
-
setHoverValue(newValue);
|
|
81
|
-
};
|
|
82
|
-
const handleMouseLeave = () => {
|
|
83
|
-
setHoverValue(null);
|
|
84
|
-
};
|
|
85
|
-
const getStarFill = (index) => {
|
|
86
|
-
const fillValue = displayValue - index;
|
|
87
|
-
if (fillValue >= 1) return "full";
|
|
88
|
-
if (fillValue > 0 && fillValue < 1) return "half";
|
|
89
|
-
return "empty";
|
|
90
|
-
};
|
|
91
|
-
return /* @__PURE__ */ jsx("div", { className: cn(ratingVariants({ size }), className), children: /* @__PURE__ */ jsx(
|
|
92
|
-
"div",
|
|
93
|
-
{
|
|
94
|
-
className: "inline-flex items-center gap-0.5",
|
|
95
|
-
onMouseLeave: handleMouseLeave,
|
|
96
|
-
children: Array.from({ length: count }, (_, index) => {
|
|
97
|
-
const fillType = getStarFill(index);
|
|
98
|
-
const isHovered = hoverValue !== null && index < Math.ceil(hoverValue);
|
|
99
|
-
return /* @__PURE__ */ jsxs(
|
|
100
|
-
"div",
|
|
101
|
-
{
|
|
102
|
-
className: cn(
|
|
103
|
-
"relative inline-flex",
|
|
104
|
-
!disabled && !readOnly && "cursor-pointer",
|
|
105
|
-
disabled && "opacity-50 cursor-not-allowed"
|
|
106
|
-
),
|
|
107
|
-
children: [
|
|
108
|
-
allowHalf && /* @__PURE__ */ jsx(
|
|
109
|
-
"div",
|
|
110
|
-
{
|
|
111
|
-
className: "absolute inset-0 w-1/2 z-10",
|
|
112
|
-
onClick: () => handleStarClick(index, true),
|
|
113
|
-
onMouseEnter: () => handleStarHover(index, true)
|
|
114
|
-
}
|
|
115
|
-
),
|
|
116
|
-
/* @__PURE__ */ jsx(
|
|
117
|
-
"div",
|
|
118
|
-
{
|
|
119
|
-
className: cn(
|
|
120
|
-
"absolute inset-0 z-10",
|
|
121
|
-
allowHalf ? "left-1/2" : "left-0"
|
|
122
|
-
),
|
|
123
|
-
onClick: () => handleStarClick(index, false),
|
|
124
|
-
onMouseEnter: () => handleStarHover(index, false)
|
|
125
|
-
}
|
|
126
|
-
),
|
|
127
|
-
/* @__PURE__ */ jsx(
|
|
128
|
-
Star,
|
|
129
|
-
{
|
|
130
|
-
size: starSizes[size],
|
|
131
|
-
className: cn(
|
|
132
|
-
getStarClasses(color, variant, false, false),
|
|
133
|
-
"transition-colors"
|
|
134
|
-
)
|
|
135
|
-
}
|
|
136
|
-
),
|
|
137
|
-
fillType !== "empty" && /* @__PURE__ */ jsx(
|
|
138
|
-
Star,
|
|
139
|
-
{
|
|
140
|
-
size: starSizes[size],
|
|
141
|
-
className: cn(
|
|
142
|
-
"absolute top-0 left-0 transition-colors",
|
|
143
|
-
getStarClasses(color, variant, true, isHovered)
|
|
144
|
-
),
|
|
145
|
-
style: {
|
|
146
|
-
clipPath: fillType === "half" ? "polygon(0 0, 50% 0, 50% 100%, 0 100%)" : "none"
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
)
|
|
150
|
-
]
|
|
151
|
-
},
|
|
152
|
-
index
|
|
153
|
-
);
|
|
154
|
-
})
|
|
155
|
-
}
|
|
156
|
-
) });
|
|
157
|
-
}
|
|
158
|
-
);
|
|
159
|
-
Rating.displayName = "Rating";
|
|
160
|
-
var rating_default = Rating;
|
|
161
|
-
|
|
162
|
-
export { rating_default };
|
|
163
|
-
//# sourceMappingURL=chunk-FYHQDFKE.js.map
|
|
164
|
-
//# sourceMappingURL=chunk-FYHQDFKE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rating/index.tsx"],"names":[],"mappings":"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","file":"chunk-FYHQDFKE.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { Star } from 'lucide-react'\nimport React, { useState } from 'react'\n\nimport { cn } from '../utils'\nimport type { RatingProps } from './types'\n\nconst ratingVariants = cva('inline-flex items-center gap-1', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst starSizes = {\n xs: 12,\n sm: 16,\n md: 20,\n lg: 24,\n}\n\nconst getStarClasses = (\n color: string,\n variant: string,\n isFilled: boolean,\n isHovered: boolean,\n) => {\n const state = isFilled || isHovered ? 'filled' : 'empty'\n\n if (state === 'empty') {\n if (variant === 'solid') {\n if (color === 'default') return 'fill-transparent stroke-border'\n return `fill-transparent stroke-${color} opacity-20`\n }\n if (variant === 'soft') {\n if (color === 'default') return 'fill-transparent stroke-border/50'\n return `fill-transparent stroke-${color} opacity-20`\n }\n if (color === 'default') return 'fill-transparent stroke-border'\n return `fill-transparent stroke-${color} opacity-20`\n }\n\n // filled state\n if (variant === 'solid') {\n if (color === 'default') return 'fill-border stroke-border'\n return `fill-${color} stroke-${color}`\n }\n if (variant === 'soft') {\n if (color === 'default') return 'fill-border/50 stroke-border'\n return `fill-${color} opacity-20 stroke-${color}`\n }\n if (color === 'default') return 'fill-border stroke-border'\n return `fill-${color} stroke-${color}`\n}\n\nconst Rating = React.memo<RatingProps>(\n ({\n value: controlledValue,\n defaultValue = 0,\n count = 5,\n allowHalf = false,\n color = 'warning',\n size = 'md',\n variant = 'solid',\n onChange,\n disabled = false,\n readOnly = false,\n className,\n }) => {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const [hoverValue, setHoverValue] = useState<number | null>(null)\n\n const value =\n controlledValue !== undefined ? controlledValue : internalValue\n const displayValue = hoverValue !== null ? hoverValue : value\n\n const handleStarClick = (index: number, isHalf: boolean) => {\n if (disabled || readOnly) return\n\n const newValue = isHalf ? index + 0.5 : index + 1\n\n if (controlledValue === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n }\n\n const handleStarHover = (index: number, isHalf: boolean) => {\n if (disabled || readOnly) return\n const newValue = isHalf ? index + 0.5 : index + 1\n setHoverValue(newValue)\n }\n\n const handleMouseLeave = () => {\n setHoverValue(null)\n }\n\n const getStarFill = (index: number) => {\n const fillValue = displayValue - index\n if (fillValue >= 1) return 'full'\n if (fillValue > 0 && fillValue < 1) return 'half'\n return 'empty'\n }\n\n return (\n <div className={cn(ratingVariants({ size }), className)}>\n <div\n className=\"inline-flex items-center gap-0.5\"\n onMouseLeave={handleMouseLeave}\n >\n {Array.from({ length: count }, (_, index) => {\n const fillType = getStarFill(index)\n const isHovered =\n hoverValue !== null && index < Math.ceil(hoverValue)\n\n return (\n <div\n key={index}\n className={cn(\n 'relative inline-flex',\n !disabled && !readOnly && 'cursor-pointer',\n disabled && 'opacity-50 cursor-not-allowed',\n )}\n >\n {/* Left half */}\n {allowHalf && (\n <div\n className=\"absolute inset-0 w-1/2 z-10\"\n onClick={() => handleStarClick(index, true)}\n onMouseEnter={() => handleStarHover(index, true)}\n />\n )}\n {/* Right half or full star */}\n <div\n className={cn(\n 'absolute inset-0 z-10',\n allowHalf ? 'left-1/2' : 'left-0',\n )}\n onClick={() => handleStarClick(index, false)}\n onMouseEnter={() => handleStarHover(index, false)}\n />\n\n {/* Background star (empty) */}\n <Star\n size={starSizes[size]}\n className={cn(\n getStarClasses(color, variant, false, false),\n 'transition-colors',\n )}\n />\n\n {/* Foreground star (filled) */}\n {fillType !== 'empty' && (\n <Star\n size={starSizes[size]}\n className={cn(\n 'absolute top-0 left-0 transition-colors',\n getStarClasses(color, variant, true, isHovered),\n )}\n style={{\n clipPath:\n fillType === 'half'\n ? 'polygon(0 0, 50% 0, 50% 100%, 0 100%)'\n : 'none',\n }}\n />\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n },\n)\n\nRating.displayName = 'Rating'\n\nexport type * from './types'\nexport default Rating\n"]}
|