@particle-academy/react-fancy 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +36 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +36 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -10,8 +10,8 @@ type ActionColor = "blue" | "emerald" | "amber" | "red" | "violet" | "indigo" |
|
|
|
10
10
|
type Placement = "top" | "bottom" | "left" | "right" | "top-start" | "top-end" | "bottom-start" | "bottom-end";
|
|
11
11
|
|
|
12
12
|
interface ActionProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "color"> {
|
|
13
|
-
/** Shape variant */
|
|
14
|
-
variant?: "default" | "circle";
|
|
13
|
+
/** Shape/fill variant */
|
|
14
|
+
variant?: "default" | "circle" | "ghost";
|
|
15
15
|
/** Standalone color (overrides state colors) */
|
|
16
16
|
color?: ActionColor;
|
|
17
17
|
size?: Size;
|
package/dist/index.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ type ActionColor = "blue" | "emerald" | "amber" | "red" | "violet" | "indigo" |
|
|
|
10
10
|
type Placement = "top" | "bottom" | "left" | "right" | "top-start" | "top-end" | "bottom-start" | "bottom-end";
|
|
11
11
|
|
|
12
12
|
interface ActionProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "color"> {
|
|
13
|
-
/** Shape variant */
|
|
14
|
-
variant?: "default" | "circle";
|
|
13
|
+
/** Shape/fill variant */
|
|
14
|
+
variant?: "default" | "circle" | "ghost";
|
|
15
15
|
/** Standalone color (overrides state colors) */
|
|
16
16
|
color?: ActionColor;
|
|
17
17
|
size?: Size;
|
package/dist/index.js
CHANGED
|
@@ -993,6 +993,22 @@ var defaultClasses = "bg-white text-zinc-700 border border-zinc-200 hover:bg-zin
|
|
|
993
993
|
var activeClasses = "bg-blue-500 text-white border border-blue-600 hover:bg-blue-600 dark:bg-blue-600 dark:border-blue-500 dark:hover:bg-blue-500";
|
|
994
994
|
var checkedClasses = "bg-emerald-500 text-white border border-emerald-600 hover:bg-emerald-600 dark:bg-emerald-600 dark:border-emerald-500 dark:hover:bg-emerald-500";
|
|
995
995
|
var warnClasses = "bg-amber-50 text-amber-700 border border-amber-200 hover:bg-amber-100 dark:bg-amber-900/30 dark:text-amber-300 dark:border-amber-700 dark:hover:bg-amber-900/50";
|
|
996
|
+
var ghostColorClasses = {
|
|
997
|
+
blue: "bg-transparent text-blue-600 hover:bg-blue-50 dark:text-blue-400 dark:hover:bg-blue-950/50",
|
|
998
|
+
emerald: "bg-transparent text-emerald-600 hover:bg-emerald-50 dark:text-emerald-400 dark:hover:bg-emerald-950/50",
|
|
999
|
+
amber: "bg-transparent text-amber-600 hover:bg-amber-50 dark:text-amber-400 dark:hover:bg-amber-950/50",
|
|
1000
|
+
red: "bg-transparent text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/50",
|
|
1001
|
+
violet: "bg-transparent text-violet-600 hover:bg-violet-50 dark:text-violet-400 dark:hover:bg-violet-950/50",
|
|
1002
|
+
indigo: "bg-transparent text-indigo-600 hover:bg-indigo-50 dark:text-indigo-400 dark:hover:bg-indigo-950/50",
|
|
1003
|
+
sky: "bg-transparent text-sky-600 hover:bg-sky-50 dark:text-sky-400 dark:hover:bg-sky-950/50",
|
|
1004
|
+
rose: "bg-transparent text-rose-600 hover:bg-rose-50 dark:text-rose-400 dark:hover:bg-rose-950/50",
|
|
1005
|
+
orange: "bg-transparent text-orange-600 hover:bg-orange-50 dark:text-orange-400 dark:hover:bg-orange-950/50",
|
|
1006
|
+
zinc: "bg-transparent text-zinc-600 hover:bg-zinc-100 dark:text-zinc-400 dark:hover:bg-zinc-800"
|
|
1007
|
+
};
|
|
1008
|
+
var ghostDefaultClasses = "bg-transparent text-zinc-700 hover:bg-zinc-100 dark:text-zinc-300 dark:hover:bg-zinc-800";
|
|
1009
|
+
var ghostActiveClasses = "bg-blue-50 text-blue-700 hover:bg-blue-100 dark:bg-blue-950/50 dark:text-blue-300 dark:hover:bg-blue-950";
|
|
1010
|
+
var ghostCheckedClasses = "bg-emerald-50 text-emerald-700 hover:bg-emerald-100 dark:bg-emerald-950/50 dark:text-emerald-300 dark:hover:bg-emerald-950";
|
|
1011
|
+
var ghostWarnClasses = "bg-transparent text-amber-700 hover:bg-amber-50 dark:text-amber-300 dark:hover:bg-amber-950/50";
|
|
996
1012
|
var horizontalSize = {
|
|
997
1013
|
xs: "px-2 py-1 text-xs",
|
|
998
1014
|
sm: "px-2 py-1 text-xs",
|
|
@@ -1031,19 +1047,32 @@ var badgeSize = {
|
|
|
1031
1047
|
function isColored(color, active, checked) {
|
|
1032
1048
|
return !!(color || active || checked);
|
|
1033
1049
|
}
|
|
1034
|
-
function getColorClasses(color, active, checked, warn) {
|
|
1050
|
+
function getColorClasses(color, active, checked, warn, ghost) {
|
|
1051
|
+
if (ghost) {
|
|
1052
|
+
if (color) return ghostColorClasses[color];
|
|
1053
|
+
if (checked) return ghostCheckedClasses;
|
|
1054
|
+
if (active) return ghostActiveClasses;
|
|
1055
|
+
if (warn) return ghostWarnClasses;
|
|
1056
|
+
return ghostDefaultClasses;
|
|
1057
|
+
}
|
|
1035
1058
|
if (color) return colorClasses[color];
|
|
1036
1059
|
if (checked) return checkedClasses;
|
|
1037
1060
|
if (active) return activeClasses;
|
|
1038
1061
|
if (warn) return warnClasses;
|
|
1039
1062
|
return defaultClasses;
|
|
1040
1063
|
}
|
|
1041
|
-
function getIconColorClasses(color, active, checked, warn) {
|
|
1064
|
+
function getIconColorClasses(color, active, checked, warn, ghost) {
|
|
1065
|
+
if (ghost) {
|
|
1066
|
+
return "text-current";
|
|
1067
|
+
}
|
|
1042
1068
|
if (color || active || checked) return "text-white";
|
|
1043
1069
|
if (warn) return "text-amber-600 dark:text-amber-400";
|
|
1044
1070
|
return "text-zinc-500 dark:text-zinc-400";
|
|
1045
1071
|
}
|
|
1046
|
-
function getBadgeClasses(color, active, checked, warn) {
|
|
1072
|
+
function getBadgeClasses(color, active, checked, warn, ghost) {
|
|
1073
|
+
if (ghost) {
|
|
1074
|
+
return "bg-current/10 text-current";
|
|
1075
|
+
}
|
|
1047
1076
|
if (isColored(color, active, checked)) return "bg-white/20 text-white";
|
|
1048
1077
|
if (warn) return "bg-amber-200 text-amber-800 dark:bg-amber-800 dark:text-amber-200";
|
|
1049
1078
|
return "bg-zinc-200 text-zinc-700 dark:bg-zinc-600 dark:text-zinc-200";
|
|
@@ -1100,13 +1129,14 @@ var Action = forwardRef(
|
|
|
1100
1129
|
...props
|
|
1101
1130
|
}, ref) => {
|
|
1102
1131
|
const isCircle = variant === "circle";
|
|
1132
|
+
const isGhost = variant === "ghost";
|
|
1103
1133
|
const { primary, secondary } = parsePlacement(iconPlace);
|
|
1104
1134
|
const isVertical = isVerticalPrimary(primary);
|
|
1105
1135
|
const isCompound = !!secondary;
|
|
1106
1136
|
const needsWrapper = isVertical || isCompound;
|
|
1107
1137
|
const isReversed = iconPlace === "right";
|
|
1108
1138
|
const sizeClass = isCircle ? circleSize[size] : horizontalSize[size];
|
|
1109
|
-
const iconColorCls = getIconColorClasses(color, active, checked, warn);
|
|
1139
|
+
const iconColorCls = getIconColorClasses(color, active, checked, warn, isGhost);
|
|
1110
1140
|
const buildElement = (key, trailing) => {
|
|
1111
1141
|
switch (key) {
|
|
1112
1142
|
case "e": {
|
|
@@ -1163,7 +1193,7 @@ var Action = forwardRef(
|
|
|
1163
1193
|
className: cn(
|
|
1164
1194
|
"inline-flex items-center justify-center font-medium rounded-full",
|
|
1165
1195
|
badgeSize[size],
|
|
1166
|
-
getBadgeClasses(color, active, checked, warn)
|
|
1196
|
+
getBadgeClasses(color, active, checked, warn, isGhost)
|
|
1167
1197
|
),
|
|
1168
1198
|
"data-action-badge": true,
|
|
1169
1199
|
children: badge
|
|
@@ -1212,7 +1242,7 @@ var Action = forwardRef(
|
|
|
1212
1242
|
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
1213
1243
|
isCircle ? "rounded-full" : "rounded-lg",
|
|
1214
1244
|
sizeClass,
|
|
1215
|
-
getColorClasses(color, active, checked, warn),
|
|
1245
|
+
getColorClasses(color, active, checked, warn, isGhost),
|
|
1216
1246
|
!isCircle && !needsWrapper && "gap-2",
|
|
1217
1247
|
!isCircle && needsWrapper && "gap-2",
|
|
1218
1248
|
isReversed && !needsWrapper && "flex-row-reverse",
|