@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 CHANGED
@@ -1284,6 +1284,22 @@ var defaultClasses = "bg-white text-zinc-700 border border-zinc-200 hover:bg-zin
1284
1284
  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";
1285
1285
  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";
1286
1286
  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";
1287
+ var ghostColorClasses = {
1288
+ blue: "bg-transparent text-blue-600 hover:bg-blue-50 dark:text-blue-400 dark:hover:bg-blue-950/50",
1289
+ emerald: "bg-transparent text-emerald-600 hover:bg-emerald-50 dark:text-emerald-400 dark:hover:bg-emerald-950/50",
1290
+ amber: "bg-transparent text-amber-600 hover:bg-amber-50 dark:text-amber-400 dark:hover:bg-amber-950/50",
1291
+ red: "bg-transparent text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/50",
1292
+ violet: "bg-transparent text-violet-600 hover:bg-violet-50 dark:text-violet-400 dark:hover:bg-violet-950/50",
1293
+ indigo: "bg-transparent text-indigo-600 hover:bg-indigo-50 dark:text-indigo-400 dark:hover:bg-indigo-950/50",
1294
+ sky: "bg-transparent text-sky-600 hover:bg-sky-50 dark:text-sky-400 dark:hover:bg-sky-950/50",
1295
+ rose: "bg-transparent text-rose-600 hover:bg-rose-50 dark:text-rose-400 dark:hover:bg-rose-950/50",
1296
+ orange: "bg-transparent text-orange-600 hover:bg-orange-50 dark:text-orange-400 dark:hover:bg-orange-950/50",
1297
+ zinc: "bg-transparent text-zinc-600 hover:bg-zinc-100 dark:text-zinc-400 dark:hover:bg-zinc-800"
1298
+ };
1299
+ var ghostDefaultClasses = "bg-transparent text-zinc-700 hover:bg-zinc-100 dark:text-zinc-300 dark:hover:bg-zinc-800";
1300
+ 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";
1301
+ 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";
1302
+ var ghostWarnClasses = "bg-transparent text-amber-700 hover:bg-amber-50 dark:text-amber-300 dark:hover:bg-amber-950/50";
1287
1303
  var horizontalSize = {
1288
1304
  xs: "px-2 py-1 text-xs",
1289
1305
  sm: "px-2 py-1 text-xs",
@@ -1322,19 +1338,32 @@ var badgeSize = {
1322
1338
  function isColored(color, active, checked) {
1323
1339
  return !!(color || active || checked);
1324
1340
  }
1325
- function getColorClasses(color, active, checked, warn) {
1341
+ function getColorClasses(color, active, checked, warn, ghost) {
1342
+ if (ghost) {
1343
+ if (color) return ghostColorClasses[color];
1344
+ if (checked) return ghostCheckedClasses;
1345
+ if (active) return ghostActiveClasses;
1346
+ if (warn) return ghostWarnClasses;
1347
+ return ghostDefaultClasses;
1348
+ }
1326
1349
  if (color) return colorClasses[color];
1327
1350
  if (checked) return checkedClasses;
1328
1351
  if (active) return activeClasses;
1329
1352
  if (warn) return warnClasses;
1330
1353
  return defaultClasses;
1331
1354
  }
1332
- function getIconColorClasses(color, active, checked, warn) {
1355
+ function getIconColorClasses(color, active, checked, warn, ghost) {
1356
+ if (ghost) {
1357
+ return "text-current";
1358
+ }
1333
1359
  if (color || active || checked) return "text-white";
1334
1360
  if (warn) return "text-amber-600 dark:text-amber-400";
1335
1361
  return "text-zinc-500 dark:text-zinc-400";
1336
1362
  }
1337
- function getBadgeClasses(color, active, checked, warn) {
1363
+ function getBadgeClasses(color, active, checked, warn, ghost) {
1364
+ if (ghost) {
1365
+ return "bg-current/10 text-current";
1366
+ }
1338
1367
  if (isColored(color, active, checked)) return "bg-white/20 text-white";
1339
1368
  if (warn) return "bg-amber-200 text-amber-800 dark:bg-amber-800 dark:text-amber-200";
1340
1369
  return "bg-zinc-200 text-zinc-700 dark:bg-zinc-600 dark:text-zinc-200";
@@ -1391,13 +1420,14 @@ var Action = react.forwardRef(
1391
1420
  ...props
1392
1421
  }, ref) => {
1393
1422
  const isCircle = variant === "circle";
1423
+ const isGhost = variant === "ghost";
1394
1424
  const { primary, secondary } = parsePlacement(iconPlace);
1395
1425
  const isVertical = isVerticalPrimary(primary);
1396
1426
  const isCompound = !!secondary;
1397
1427
  const needsWrapper = isVertical || isCompound;
1398
1428
  const isReversed = iconPlace === "right";
1399
1429
  const sizeClass = isCircle ? circleSize[size] : horizontalSize[size];
1400
- const iconColorCls = getIconColorClasses(color, active, checked, warn);
1430
+ const iconColorCls = getIconColorClasses(color, active, checked, warn, isGhost);
1401
1431
  const buildElement = (key, trailing) => {
1402
1432
  switch (key) {
1403
1433
  case "e": {
@@ -1454,7 +1484,7 @@ var Action = react.forwardRef(
1454
1484
  className: cn(
1455
1485
  "inline-flex items-center justify-center font-medium rounded-full",
1456
1486
  badgeSize[size],
1457
- getBadgeClasses(color, active, checked, warn)
1487
+ getBadgeClasses(color, active, checked, warn, isGhost)
1458
1488
  ),
1459
1489
  "data-action-badge": true,
1460
1490
  children: badge
@@ -1503,7 +1533,7 @@ var Action = react.forwardRef(
1503
1533
  "disabled:opacity-50 disabled:cursor-not-allowed",
1504
1534
  isCircle ? "rounded-full" : "rounded-lg",
1505
1535
  sizeClass,
1506
- getColorClasses(color, active, checked, warn),
1536
+ getColorClasses(color, active, checked, warn, isGhost),
1507
1537
  !isCircle && !needsWrapper && "gap-2",
1508
1538
  !isCircle && needsWrapper && "gap-2",
1509
1539
  isReversed && !needsWrapper && "flex-row-reverse",