@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.
Files changed (274) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1023 -341
  3. package/dist/accordion/index.js +3 -3
  4. package/dist/avatar/index.js +4 -0
  5. package/dist/avatar/index.js.map +1 -0
  6. package/dist/badge/index.js +3 -3
  7. package/dist/breadcrumbs/index.js +5 -5
  8. package/dist/button/index.js +4 -4
  9. package/dist/button-group/index.js +2 -2
  10. package/dist/card/index.js +2 -2
  11. package/dist/carousel/index.js +2 -1
  12. package/dist/cascader/index.js +2 -2
  13. package/dist/chart/index.js +2 -2
  14. package/dist/checkbox/index.js +3 -3
  15. package/dist/checkbox-group/index.js +2 -2
  16. package/dist/chunk-27QEPVKU.js +115 -0
  17. package/dist/chunk-27QEPVKU.js.map +1 -0
  18. package/dist/{chunk-Y5A26EGR.js → chunk-2J57G7XG.js} +82 -24
  19. package/dist/chunk-2J57G7XG.js.map +1 -0
  20. package/dist/{chunk-FPOXTCYV.js → chunk-2NYVRAG4.js} +29 -20
  21. package/dist/chunk-2NYVRAG4.js.map +1 -0
  22. package/dist/chunk-2OUGJBXK.js +742 -0
  23. package/dist/chunk-2OUGJBXK.js.map +1 -0
  24. package/dist/{chunk-ROR4E6IE.js → chunk-2WZVD7P3.js} +38 -12
  25. package/dist/chunk-2WZVD7P3.js.map +1 -0
  26. package/dist/chunk-3UCZ4GMN.js +84 -0
  27. package/dist/chunk-3UCZ4GMN.js.map +1 -0
  28. package/dist/{chunk-RPAQAZTI.js → chunk-4LSKRZOT.js} +12 -7
  29. package/dist/chunk-4LSKRZOT.js.map +1 -0
  30. package/dist/{chunk-ASW7TEAN.js → chunk-4SQOFZ3N.js} +35 -18
  31. package/dist/chunk-4SQOFZ3N.js.map +1 -0
  32. package/dist/chunk-5PUATOLR.js +127 -0
  33. package/dist/chunk-5PUATOLR.js.map +1 -0
  34. package/dist/chunk-6TMOKYR7.js +75 -0
  35. package/dist/chunk-6TMOKYR7.js.map +1 -0
  36. package/dist/chunk-7UCNBMCV.js +261 -0
  37. package/dist/chunk-7UCNBMCV.js.map +1 -0
  38. package/dist/chunk-AQYOVYPS.js +237 -0
  39. package/dist/chunk-AQYOVYPS.js.map +1 -0
  40. package/dist/{chunk-BP434VYV.js → chunk-C5YO5VZS.js} +17 -17
  41. package/dist/chunk-C5YO5VZS.js.map +1 -0
  42. package/dist/{chunk-ZNJ7M5QK.js → chunk-CHGJX5F2.js} +69 -46
  43. package/dist/chunk-CHGJX5F2.js.map +1 -0
  44. package/dist/chunk-CK6A2R66.js +336 -0
  45. package/dist/chunk-CK6A2R66.js.map +1 -0
  46. package/dist/{chunk-I5ANSIDK.js → chunk-CMGCJXE5.js} +280 -100
  47. package/dist/chunk-CMGCJXE5.js.map +1 -0
  48. package/dist/chunk-CSRMVLPR.js +394 -0
  49. package/dist/chunk-CSRMVLPR.js.map +1 -0
  50. package/dist/chunk-DH7R6NBG.js +107 -0
  51. package/dist/chunk-DH7R6NBG.js.map +1 -0
  52. package/dist/{chunk-XMAH5PDW.js → chunk-FEMHXG2P.js} +28 -11
  53. package/dist/chunk-FEMHXG2P.js.map +1 -0
  54. package/dist/chunk-FIGSNRWY.js +382 -0
  55. package/dist/chunk-FIGSNRWY.js.map +1 -0
  56. package/dist/{chunk-C7SXY3ZV.js → chunk-FVTMKQUE.js} +5 -3
  57. package/dist/chunk-FVTMKQUE.js.map +1 -0
  58. package/dist/{chunk-UAMFKX6L.js → chunk-GBVIACYQ.js} +103 -42
  59. package/dist/chunk-GBVIACYQ.js.map +1 -0
  60. package/dist/chunk-H47C2ENJ.js +215 -0
  61. package/dist/chunk-H47C2ENJ.js.map +1 -0
  62. package/dist/chunk-HWFI4GJE.js +130 -0
  63. package/dist/chunk-HWFI4GJE.js.map +1 -0
  64. package/dist/chunk-IA42ELUP.js +72 -0
  65. package/dist/chunk-IA42ELUP.js.map +1 -0
  66. package/dist/{chunk-HUVXKOJC.js → chunk-INQI3UUI.js} +80 -22
  67. package/dist/chunk-INQI3UUI.js.map +1 -0
  68. package/dist/{chunk-BNILRB4T.js → chunk-J525ROGL.js} +12 -7
  69. package/dist/chunk-J525ROGL.js.map +1 -0
  70. package/dist/chunk-JLS4MBHN.js +205 -0
  71. package/dist/chunk-JLS4MBHN.js.map +1 -0
  72. package/dist/{chunk-SK5ECBBK.js → chunk-KTHWXHDN.js} +15 -6
  73. package/dist/chunk-KTHWXHDN.js.map +1 -0
  74. package/dist/{chunk-SOV4PE3P.js → chunk-LMR7TKDJ.js} +25 -7
  75. package/dist/chunk-LMR7TKDJ.js.map +1 -0
  76. package/dist/{chunk-NNSS366W.js → chunk-MRFCITKK.js} +53 -11
  77. package/dist/chunk-MRFCITKK.js.map +1 -0
  78. package/dist/chunk-MXDTUN3V.js +459 -0
  79. package/dist/chunk-MXDTUN3V.js.map +1 -0
  80. package/dist/{chunk-YNNAOXU5.js → chunk-NGYLRX6F.js} +3 -18
  81. package/dist/chunk-NGYLRX6F.js.map +1 -0
  82. package/dist/chunk-NTPWR57C.js +445 -0
  83. package/dist/chunk-NTPWR57C.js.map +1 -0
  84. package/dist/chunk-OWXQ45GS.js +276 -0
  85. package/dist/chunk-OWXQ45GS.js.map +1 -0
  86. package/dist/{chunk-75XESYGN.js → chunk-P6A75RAH.js} +7 -13
  87. package/dist/chunk-P6A75RAH.js.map +1 -0
  88. package/dist/{chunk-RMGIO27V.js → chunk-PXOHJJBE.js} +39 -10
  89. package/dist/chunk-PXOHJJBE.js.map +1 -0
  90. package/dist/{chunk-SAVE5ACL.js → chunk-Q57THXIU.js} +28 -10
  91. package/dist/chunk-Q57THXIU.js.map +1 -0
  92. package/dist/{chunk-J3G5WWGR.js → chunk-QDHGE7IF.js} +7 -15
  93. package/dist/chunk-QDHGE7IF.js.map +1 -0
  94. package/dist/{chunk-7PKVBUGL.js → chunk-QKSDVYKF.js} +4 -4
  95. package/dist/chunk-QKSDVYKF.js.map +1 -0
  96. package/dist/chunk-ROA7BYGB.js +123 -0
  97. package/dist/chunk-ROA7BYGB.js.map +1 -0
  98. package/dist/{chunk-DPOSWW22.js → chunk-RPIJ2KY7.js} +11 -4
  99. package/dist/chunk-RPIJ2KY7.js.map +1 -0
  100. package/dist/{chunk-R225A5II.js → chunk-RW4RW4DV.js} +80 -30
  101. package/dist/chunk-RW4RW4DV.js.map +1 -0
  102. package/dist/chunk-RYKVZFGB.js +607 -0
  103. package/dist/chunk-RYKVZFGB.js.map +1 -0
  104. package/dist/chunk-SAVEKACZ.js +552 -0
  105. package/dist/chunk-SAVEKACZ.js.map +1 -0
  106. package/dist/chunk-SDNT2JGC.js +143 -0
  107. package/dist/chunk-SDNT2JGC.js.map +1 -0
  108. package/dist/{chunk-DOKTHDG3.js → chunk-SGRACNBP.js} +12 -7
  109. package/dist/chunk-SGRACNBP.js.map +1 -0
  110. package/dist/{chunk-OALOWWO7.js → chunk-TTEBZZ3T.js} +55 -42
  111. package/dist/chunk-TTEBZZ3T.js.map +1 -0
  112. package/dist/{chunk-FCMVKFVV.js → chunk-US4ZCMNU.js} +26 -20
  113. package/dist/chunk-US4ZCMNU.js.map +1 -0
  114. package/dist/chunk-UUP7YGOS.js +299 -0
  115. package/dist/chunk-UUP7YGOS.js.map +1 -0
  116. package/dist/{chunk-QPJL66S7.js → chunk-VUBU7Y4F.js} +123 -55
  117. package/dist/chunk-VUBU7Y4F.js.map +1 -0
  118. package/dist/chunk-WUBMNJGC.js +141 -0
  119. package/dist/chunk-WUBMNJGC.js.map +1 -0
  120. package/dist/chunk-WVG3QQDN.js +283 -0
  121. package/dist/chunk-WVG3QQDN.js.map +1 -0
  122. package/dist/chunk-WZ2KDHFP.js +109 -0
  123. package/dist/chunk-WZ2KDHFP.js.map +1 -0
  124. package/dist/{chunk-FGWSUPVW.js → chunk-X5SCI7KH.js} +190 -137
  125. package/dist/chunk-X5SCI7KH.js.map +1 -0
  126. package/dist/{chunk-D3JWPGCA.js → chunk-XJCWPPMM.js} +10 -56
  127. package/dist/chunk-XJCWPPMM.js.map +1 -0
  128. package/dist/{chunk-LEKLQR4I.js → chunk-YAAV7FQG.js} +70 -45
  129. package/dist/chunk-YAAV7FQG.js.map +1 -0
  130. package/dist/chunk-YOG5GXIC.js +196 -0
  131. package/dist/chunk-YOG5GXIC.js.map +1 -0
  132. package/dist/chunk-Z5VJ6MJP.js +234 -0
  133. package/dist/chunk-Z5VJ6MJP.js.map +1 -0
  134. package/dist/{chunk-267WNY3E.js → chunk-ZC3E3PWH.js} +109 -73
  135. package/dist/chunk-ZC3E3PWH.js.map +1 -0
  136. package/dist/clipboard/index.js +2 -2
  137. package/dist/collapse/index.js +2 -2
  138. package/dist/command/index.js +3 -3
  139. package/dist/context-menu/index.js +4 -0
  140. package/dist/context-menu/index.js.map +1 -0
  141. package/dist/date-picker/index.js +4 -3
  142. package/dist/descriptions/index.js +2 -2
  143. package/dist/divider/index.js +4 -0
  144. package/dist/divider/index.js.map +1 -0
  145. package/dist/drawer/index.js +2 -2
  146. package/dist/dropdown/index.js +4 -3
  147. package/dist/empty/index.js +2 -2
  148. package/dist/fetching-overlay/index.js +4 -3
  149. package/dist/grid/index.js +2 -2
  150. package/dist/image/index.js +2 -2
  151. package/dist/index.d.ts +2494 -211
  152. package/dist/index.js +63 -186
  153. package/dist/index.js.map +1 -1
  154. package/dist/input/index.js +4 -3
  155. package/dist/input-group/index.js +2 -2
  156. package/dist/input-otp/index.js +2 -2
  157. package/dist/input-password/index.js +5 -4
  158. package/dist/kbd/index.js +3 -2
  159. package/dist/modal/index.js +2 -2
  160. package/dist/multi-select/index.js +4 -3
  161. package/dist/notification/index.js +3 -2
  162. package/dist/pagination/index.js +2 -2
  163. package/dist/popover/index.js +3 -2
  164. package/dist/progress/index.js +2 -2
  165. package/dist/radio/index.js +3 -2
  166. package/dist/radio-group/index.js +2 -2
  167. package/dist/rating/index.js +2 -2
  168. package/dist/ribbon/index.js +2 -2
  169. package/dist/select/index.js +5 -4
  170. package/dist/skeleton/index.js +3 -2
  171. package/dist/slider/index.js +2 -2
  172. package/dist/spinner/index.js +3 -2
  173. package/dist/stepper/index.js +2 -2
  174. package/dist/styles/base.css +2165 -1375
  175. package/dist/styles/global.css +2393 -1036
  176. package/dist/styles/themes/dark.css +3 -1
  177. package/dist/styles/themes/light.css +3 -1
  178. package/dist/styles/themes/presets/corporate.css +126 -0
  179. package/dist/styles/themes/presets/minimal.css +126 -0
  180. package/dist/styles/themes/presets/vibrant.css +126 -0
  181. package/dist/switch/index.js +3 -2
  182. package/dist/table/index.js +10 -10
  183. package/dist/tabs/index.js +3 -3
  184. package/dist/tag/index.js +5 -0
  185. package/dist/tag/index.js.map +1 -0
  186. package/dist/textarea/index.js +2 -2
  187. package/dist/theme/index.js +3 -0
  188. package/dist/theme/index.js.map +1 -0
  189. package/dist/toggle/index.js +2 -2
  190. package/dist/toggle-group/index.js +2 -2
  191. package/dist/tooltip/index.js +3 -2
  192. package/dist/transfer/index.js +4 -4
  193. package/dist/tree/index.js +2 -2
  194. package/dist/tree-select/index.js +5 -4
  195. package/dist/upload/index.js +2 -2
  196. package/package.json +460 -70
  197. package/dist/chunk-267WNY3E.js.map +0 -1
  198. package/dist/chunk-2EKAF6EJ.js +0 -128
  199. package/dist/chunk-2EKAF6EJ.js.map +0 -1
  200. package/dist/chunk-3PFA3YG6.js +0 -228
  201. package/dist/chunk-3PFA3YG6.js.map +0 -1
  202. package/dist/chunk-56IXGP5C.js +0 -56
  203. package/dist/chunk-56IXGP5C.js.map +0 -1
  204. package/dist/chunk-5UEWVFF6.js +0 -212
  205. package/dist/chunk-5UEWVFF6.js.map +0 -1
  206. package/dist/chunk-6V5I5HJ2.js +0 -39
  207. package/dist/chunk-6V5I5HJ2.js.map +0 -1
  208. package/dist/chunk-75XESYGN.js.map +0 -1
  209. package/dist/chunk-7PKVBUGL.js.map +0 -1
  210. package/dist/chunk-ASW7TEAN.js.map +0 -1
  211. package/dist/chunk-AWPKZYHT.js +0 -152
  212. package/dist/chunk-AWPKZYHT.js.map +0 -1
  213. package/dist/chunk-BFO3ARVJ.js +0 -104
  214. package/dist/chunk-BFO3ARVJ.js.map +0 -1
  215. package/dist/chunk-BNILRB4T.js.map +0 -1
  216. package/dist/chunk-BP434VYV.js.map +0 -1
  217. package/dist/chunk-C3MX5EXL.js +0 -95
  218. package/dist/chunk-C3MX5EXL.js.map +0 -1
  219. package/dist/chunk-C7SXY3ZV.js.map +0 -1
  220. package/dist/chunk-D3JWPGCA.js.map +0 -1
  221. package/dist/chunk-DOKTHDG3.js.map +0 -1
  222. package/dist/chunk-DPOSWW22.js.map +0 -1
  223. package/dist/chunk-FCMVKFVV.js.map +0 -1
  224. package/dist/chunk-FGWSUPVW.js.map +0 -1
  225. package/dist/chunk-FPOXTCYV.js.map +0 -1
  226. package/dist/chunk-FYHQDFKE.js +0 -164
  227. package/dist/chunk-FYHQDFKE.js.map +0 -1
  228. package/dist/chunk-G6TAVRTJ.js +0 -640
  229. package/dist/chunk-G6TAVRTJ.js.map +0 -1
  230. package/dist/chunk-GEWR5ROK.js +0 -102
  231. package/dist/chunk-GEWR5ROK.js.map +0 -1
  232. package/dist/chunk-HUVXKOJC.js.map +0 -1
  233. package/dist/chunk-I5ANSIDK.js.map +0 -1
  234. package/dist/chunk-J3G5WWGR.js.map +0 -1
  235. package/dist/chunk-JLTDJ3VZ.js +0 -452
  236. package/dist/chunk-JLTDJ3VZ.js.map +0 -1
  237. package/dist/chunk-KBCBVH7B.js +0 -51
  238. package/dist/chunk-KBCBVH7B.js.map +0 -1
  239. package/dist/chunk-KNQ7UQ2W.js +0 -143
  240. package/dist/chunk-KNQ7UQ2W.js.map +0 -1
  241. package/dist/chunk-KTAIRCOL.js +0 -100
  242. package/dist/chunk-KTAIRCOL.js.map +0 -1
  243. package/dist/chunk-LEKLQR4I.js.map +0 -1
  244. package/dist/chunk-MLDX3Z67.js +0 -470
  245. package/dist/chunk-MLDX3Z67.js.map +0 -1
  246. package/dist/chunk-NNSS366W.js.map +0 -1
  247. package/dist/chunk-OALOWWO7.js.map +0 -1
  248. package/dist/chunk-OOS3B7YZ.js +0 -94
  249. package/dist/chunk-OOS3B7YZ.js.map +0 -1
  250. package/dist/chunk-OQANRZPV.js +0 -197
  251. package/dist/chunk-OQANRZPV.js.map +0 -1
  252. package/dist/chunk-OW5A5IIF.js +0 -175
  253. package/dist/chunk-OW5A5IIF.js.map +0 -1
  254. package/dist/chunk-QPJL66S7.js.map +0 -1
  255. package/dist/chunk-R225A5II.js.map +0 -1
  256. package/dist/chunk-RMGIO27V.js.map +0 -1
  257. package/dist/chunk-ROR4E6IE.js.map +0 -1
  258. package/dist/chunk-RPAQAZTI.js.map +0 -1
  259. package/dist/chunk-S5XJXU52.js +0 -178
  260. package/dist/chunk-S5XJXU52.js.map +0 -1
  261. package/dist/chunk-SAVE5ACL.js.map +0 -1
  262. package/dist/chunk-SK5ECBBK.js.map +0 -1
  263. package/dist/chunk-SOV4PE3P.js.map +0 -1
  264. package/dist/chunk-UAMFKX6L.js.map +0 -1
  265. package/dist/chunk-XMAH5PDW.js.map +0 -1
  266. package/dist/chunk-XMKNYG7I.js +0 -181
  267. package/dist/chunk-XMKNYG7I.js.map +0 -1
  268. package/dist/chunk-Y5A26EGR.js.map +0 -1
  269. package/dist/chunk-YNNAOXU5.js.map +0 -1
  270. package/dist/chunk-YZ6V6BQ7.js +0 -134
  271. package/dist/chunk-YZ6V6BQ7.js.map +0 -1
  272. package/dist/chunk-YZVSDRJD.js +0 -253
  273. package/dist/chunk-YZVSDRJD.js.map +0 -1
  274. package/dist/chunk-ZNJ7M5QK.js.map +0 -1
@@ -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"]}