@gamecp/ui 0.1.19 → 0.1.21

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.mjs CHANGED
@@ -8,28 +8,27 @@ import { Tooltip } from 'react-tooltip';
8
8
 
9
9
  // src/Badge.tsx
10
10
  var badgeVariants = {
11
- default: "bg-gray-100 text-foreground border-border",
11
+ default: "bg-muted text-foreground border-border",
12
12
  primary: "bg-primary-100 text-primary-800 border-primary-200",
13
- secondary: "bg-gray-100 text-foreground border-border",
13
+ secondary: "bg-muted text-foreground border-border",
14
14
  success: "bg-success text-success-dark border-success-light",
15
- warning: "bg-yellow-100 text-yellow-800 border-yellow-200",
16
- error: "bg-red-100 text-red-800 border-red-200",
15
+ warning: "bg-amber/20 text-yellow-800 border-amber/30",
16
+ error: "bg-danger/20 text-danger border-danger/30",
17
17
  info: "bg-muted text-muted-foreground border-ring",
18
- gray: "bg-gray-100 text-foreground border-border",
18
+ gray: "bg-muted text-foreground border-border",
19
19
  purple: "bg-purple-100 text-purple-800 border-purple-200",
20
- pink: "bg-pink-100 text-pink-800 border-pink-200",
21
- indigo: "bg-indigo-100 text-indigo-800 border-indigo-200",
22
- yellow: "bg-yellow-100 text-yellow-800 border-yellow-200",
23
- orange: "bg-orange-100 text-orange-800 border-orange-200",
20
+ pink: "bg-pink/20 text-pink border-pink-200",
21
+ indigo: "bg-indigo/20 text-indigo border-indigo-200",
22
+ orange: "bg-orange/20 text-orange-800 border-orange/30",
24
23
  teal: "bg-teal-100 text-teal-800 border-teal-200",
25
- cyan: "bg-cyan-100 text-cyan-800 border-cyan-200",
24
+ cyan: "bg-cyan/20 text-cyan-800 border-cyan-200",
26
25
  lime: "bg-lime-100 text-lime-800 border-lime-200",
27
- emerald: "bg-emerald-100 text-emerald-800 border-emerald-200",
26
+ emerald: "bg-emerald/20 text-emerald-800 border-emerald-200",
28
27
  rose: "bg-rose-100 text-rose-800 border-rose-200",
29
28
  sky: "bg-sky-100 text-sky-800 border-sky-200",
30
29
  violet: "bg-violet-100 text-violet-800 border-violet-200",
31
30
  fuchsia: "bg-fuchsia-100 text-fuchsia-800 border-fuchsia-200",
32
- amber: "bg-amber-100 text-amber-800 border-amber-200"
31
+ amber: "bg-amber/20 text-amber-800 border-amber/30"
33
32
  };
34
33
  var badgeSizes = {
35
34
  sm: "px-2 py-0.5 text-xs",
@@ -64,7 +63,7 @@ var variantClasses = {
64
63
  primary: "bg-primary text-primary-foreground hover:bg-primary/90 border-transparent",
65
64
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 border-transparent",
66
65
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 border-transparent",
67
- danger: "bg-red-600 text-white hover:bg-red-700 border-transparent",
66
+ danger: "bg-danger text-white hover:bg-danger border-transparent",
68
67
  ghost: "bg-transparent hover:bg-muted hover:text-foreground border-transparent",
69
68
  link: "bg-transparent text-primary underline-offset-4 hover:underline border-transparent p-0",
70
69
  outline: "bg-transparent border-border hover:bg-muted hover:text-foreground"
@@ -184,13 +183,13 @@ var paddingClasses = {
184
183
  };
185
184
  var borderAccentClasses = {
186
185
  none: "",
187
- green: "border-l-4 border-l-green-500",
188
- blue: "border-l-4 border-l-ring",
189
- red: "border-l-4 border-l-red-500",
190
- yellow: "border-l-4 border-l-yellow-500",
191
- purple: "border-l-4 border-l-purple-500",
192
- orange: "border-l-4 border-l-orange-500",
193
- gray: "border-l-4 border-l-gray-500"
186
+ success: "border-l-4 border-l-success",
187
+ info: "border-l-4 border-l-info",
188
+ danger: "border-l-4 border-l-danger",
189
+ amber: "border-l-4 border-l-amber",
190
+ purple: "border-l-4 border-l-purple",
191
+ orange: "border-l-4 border-l-orange",
192
+ gray: "border-l-4 border-l-gray"
194
193
  };
195
194
  var variantClasses2 = {
196
195
  default: "card",
@@ -199,15 +198,15 @@ var variantClasses2 = {
199
198
  filled: "bg-muted rounded-lg border border-border"
200
199
  };
201
200
  var iconColorClasses = {
202
- green: "text-success",
203
- blue: "text-primary",
204
- red: "text-destructive",
205
- yellow: "text-yellow-600",
206
- purple: "text-purple-600",
207
- orange: "text-orange-600",
201
+ success: "text-success",
202
+ info: "text-info",
203
+ danger: "text-danger",
204
+ amber: "text-amber",
205
+ purple: "text-purple",
206
+ orange: "text-orange",
208
207
  gray: "text-muted-foreground",
209
- indigo: "text-indigo-600",
210
- pink: "text-pink-600"
208
+ indigo: "text-indigo",
209
+ pink: "text-pink"
211
210
  };
212
211
  var iconSizeClasses = {
213
212
  sm: "w-4 h-4",
@@ -215,10 +214,10 @@ var iconSizeClasses = {
215
214
  lg: "w-8 h-8"
216
215
  };
217
216
  var statusClasses = {
218
- success: "bg-success-light border-success-light",
219
- warning: "bg-yellow-50 border-yellow-200",
220
- error: "bg-destructive border-destructive",
221
- info: "bg-primary border-primary",
217
+ success: "bg-success/10 border-success",
218
+ warning: "bg-amber/10 border-amber",
219
+ error: "bg-danger/10 border-danger",
220
+ info: "bg-info/10 border-info",
222
221
  neutral: "bg-muted border-border"
223
222
  };
224
223
  function Card({
@@ -238,7 +237,7 @@ function Card({
238
237
  subtitle,
239
238
  description,
240
239
  icon: Icon,
241
- iconColor = "blue",
240
+ iconColor = "info",
242
241
  iconSize = "md",
243
242
  actionButton,
244
243
  headerClassName = "",
@@ -249,14 +248,42 @@ function Card({
249
248
  status,
250
249
  statusIcon,
251
250
  statusText,
251
+ headerBorder,
252
+ headerBg,
253
+ headerStatus,
252
254
  id
253
255
  }) {
254
256
  const [isExpanded, setIsExpanded] = useState(defaultExpanded);
257
+ const getHeaderStatusClasses = (status2) => {
258
+ switch (status2) {
259
+ case "online":
260
+ case "success":
261
+ return { border: "bg-success", bg: "status-running-bg-50" };
262
+ case "offline":
263
+ case "error":
264
+ return { border: "bg-destructive", bg: "status-error-bg-50" };
265
+ case "maintenance":
266
+ case "starting":
267
+ case "info":
268
+ return { border: "bg-warning", bg: "status-starting-bg-50" };
269
+ case "restarting":
270
+ case "updating":
271
+ return { border: "bg-orange", bg: "status-restarting-bg-50" };
272
+ case "unknown":
273
+ return { border: "bg-muted-foreground/30", bg: "bg-muted/10" };
274
+ default:
275
+ return { border: headerBorder, bg: headerBg };
276
+ }
277
+ };
278
+ const statusClassesMapped = getHeaderStatusClasses(headerStatus);
279
+ const activeHeaderBorder = statusClassesMapped?.border || headerBorder;
280
+ const activeHeaderBg = statusClassesMapped?.bg || headerBg;
255
281
  const baseClasses = [
256
282
  variantClasses2[variant],
257
283
  paddingClasses[padding],
258
284
  borderAccentClasses[borderAccent],
259
- overflow !== "visible" ? `overflow-${overflow}` : "",
285
+ overflow !== "visible" || activeHeaderBorder ? `overflow-${overflow === "visible" && activeHeaderBorder ? "hidden" : overflow}` : "",
286
+ activeHeaderBorder ? "relative" : "",
260
287
  hover ? "hover:shadow-md transition-shadow" : "",
261
288
  clickable || onClick ? "cursor-pointer" : "",
262
289
  disabled ? "opacity-50 cursor-not-allowed" : "",
@@ -284,7 +311,8 @@ function Card({
284
311
  style,
285
312
  onClick: clickable || onClick ? handleClick : void 0,
286
313
  children: [
287
- (title || subtitle || description || Icon || actionButton || status) && /* @__PURE__ */ jsx("div", { className: `${headerClassName}`, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
314
+ activeHeaderBorder && /* @__PURE__ */ jsx("div", { className: "absolute top-0 left-0 right-0 flex justify-center z-10 pointer-events-none", children: /* @__PURE__ */ jsx("div", { className: `h-1.5 w-24 ${activeHeaderBorder} rounded-b-xl shadow-sm` }) }),
315
+ (title || subtitle || description || Icon || actionButton || status) && /* @__PURE__ */ jsx("div", { className: `${activeHeaderBg ? activeHeaderBg + " " : ""}${headerClassName}${activeHeaderBorder ? " pt-6 pb-4 px-4" : ""}`, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
288
316
  /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-3 flex-1 min-w-0", children: [
289
317
  Icon && /* @__PURE__ */ jsx("div", { className: `${iconColorClasses[iconColor]} flex-shrink-0`, children: /* @__PURE__ */ jsx(Icon, { className: iconSizeClasses[iconSize] }) }),
290
318
  statusIcon && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0", children: statusIcon }),
@@ -492,7 +520,7 @@ function Modal({
492
520
  /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsx(
493
521
  motion.div,
494
522
  {
495
- className: `modal-backdrop fixed inset-0 w-screen h-screen flex items-center ${customStyles.backdrop?.includes("justify-") ? customStyles.backdrop : customStyles.backdrop ? `${customStyles.backdrop} justify-center` : "justify-center bg-black/10"} z-[999999] m-0 ${fullScreen ? "p-0" : "p-4"}`,
523
+ className: `modal-backdrop fixed inset-0 w-screen h-screen flex items-center ${customStyles.backdrop?.includes("justify-") ? customStyles.backdrop : customStyles.backdrop ? `${customStyles.backdrop} justify-center` : "justify-center bg-black/10"} z-50 m-0 ${fullScreen ? "p-0" : "p-4"}`,
496
524
  variants: backdropVariants,
497
525
  initial: "hidden",
498
526
  animate: isOpen ? "visible" : "hidden",
@@ -507,7 +535,7 @@ function Modal({
507
535
  "aria-labelledby": title ? "modal-title-plain" : void 0,
508
536
  "aria-describedby": ariaDescribedBy || "modal-content-plain",
509
537
  tabIndex: -1,
510
- className: `w-full flex flex-col overflow-hidden relative z-[1000000] ${customStyles.container || "bg-card shadow-xl"} ${fullScreen ? "h-full rounded-none" : `rounded-lg ${className} ${sizeClasses3[size]} max-h-[90vh]`}`,
538
+ className: `w-full flex flex-col overflow-hidden relative ${customStyles.container || "bg-card shadow-xl"} ${fullScreen ? "h-full rounded-none" : `rounded-lg ${className} ${sizeClasses3[size]} max-h-[90vh]`}`,
511
539
  variants: modalVariants,
512
540
  initial: "hidden",
513
541
  animate: isOpen ? "visible" : "exit",
@@ -534,7 +562,7 @@ function Modal({
534
562
  /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsx(
535
563
  motion.div,
536
564
  {
537
- className: `modal-backdrop fixed inset-0 w-screen h-screen bg-black/10 flex items-center ${customStyles.backdrop || "justify-center"} z-[999999] m-0 ${fullScreen ? "p-0" : "p-4"}`,
565
+ className: `modal-backdrop fixed inset-0 w-screen h-screen bg-black/10 flex items-center ${customStyles.backdrop || "justify-center"} z-50 m-0 ${fullScreen ? "p-0" : "p-4"}`,
538
566
  variants: backdropVariants,
539
567
  initial: "hidden",
540
568
  animate: isOpen ? "visible" : "hidden",
@@ -549,7 +577,7 @@ function Modal({
549
577
  "aria-labelledby": title ? "modal-title" : void 0,
550
578
  "aria-describedby": ariaDescribedBy || "modal-content",
551
579
  tabIndex: -1,
552
- className: `bg-card border border-border shadow-xl w-full flex flex-col overflow-hidden relative z-[1000000] ${fullScreen ? "h-full rounded-none" : `rounded-lg ${customStyles.container || className || sizeClasses3[size]} max-h-[90vh]`}`,
580
+ className: `bg-card border border-border shadow-xl w-full flex flex-col overflow-hidden relative ${fullScreen ? "h-full rounded-none" : `rounded-lg ${customStyles.container || className || sizeClasses3[size]} max-h-[90vh]`}`,
553
581
  variants: modalVariants,
554
582
  initial: "hidden",
555
583
  animate: isOpen ? "visible" : "exit",
@@ -609,14 +637,14 @@ function Modal({
609
637
  );
610
638
  }
611
639
  function ConfirmDialog({ isOpen, options, onConfirm, onCancel }) {
612
- const { title, message, confirmText, cancelText = "Cancel", confirmButtonColor = "blue" } = options;
640
+ const { title, message, confirmText, cancelText = "Cancel", confirmButtonColor = "info" } = options;
613
641
  const getConfirmVariant = () => {
614
642
  switch (confirmButtonColor) {
615
- case "red":
643
+ case "danger":
616
644
  return "danger";
617
- case "green":
645
+ case "success":
618
646
  return "primary";
619
- case "blue":
647
+ case "info":
620
648
  default:
621
649
  return "primary";
622
650
  }
@@ -1885,7 +1913,7 @@ function SkeletonGamesTable({
1885
1913
  "div",
1886
1914
  {
1887
1915
  className: `overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg ${className}`,
1888
- children: /* @__PURE__ */ jsxs("table", { className: "min-w-full divide-y divide-gray-300", children: [
1916
+ children: /* @__PURE__ */ jsxs("table", { className: "min-w-full divide-y divide-border", children: [
1889
1917
  /* @__PURE__ */ jsx("thead", { className: "bg-muted", children: /* @__PURE__ */ jsxs("tr", { children: [
1890
1918
  /* @__PURE__ */ jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Game" }),
1891
1919
  /* @__PURE__ */ jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Type" }),
@@ -2072,7 +2100,7 @@ function FormInput({
2072
2100
  return /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
2073
2101
  /* @__PURE__ */ jsxs("label", { className: "form-label", children: [
2074
2102
  label,
2075
- required && /* @__PURE__ */ jsx("span", { className: "text-red-500 ml-1", children: "*" })
2103
+ required && /* @__PURE__ */ jsx("span", { className: "text-danger ml-1", children: "*" })
2076
2104
  ] }),
2077
2105
  description && /* @__PURE__ */ jsx("p", { className: "text-sm text-secondary-foreground", children: description }),
2078
2106
  /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx(
@@ -2090,7 +2118,7 @@ function FormInput({
2090
2118
  return /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
2091
2119
  /* @__PURE__ */ jsxs("label", { className: "form-label", children: [
2092
2120
  label,
2093
- required && /* @__PURE__ */ jsx("span", { className: "text-red-500 ml-1", children: "*" })
2121
+ required && /* @__PURE__ */ jsx("span", { className: "text-danger ml-1", children: "*" })
2094
2122
  ] }),
2095
2123
  description && /* @__PURE__ */ jsx("p", { className: "text-sm text-secondary-foreground", children: description }),
2096
2124
  /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-3", children: [
@@ -2102,7 +2130,7 @@ function FormInput({
2102
2130
  return /* @__PURE__ */ jsxs("div", { children: [
2103
2131
  /* @__PURE__ */ jsxs("label", { className: "form-label", children: [
2104
2132
  label,
2105
- required && /* @__PURE__ */ jsx("span", { className: "text-red-500 ml-1", children: "*" })
2133
+ required && /* @__PURE__ */ jsx("span", { className: "text-danger ml-1", children: "*" })
2106
2134
  ] }),
2107
2135
  description && /* @__PURE__ */ jsx("p", { className: "text-sm text-secondary-foreground", children: description }),
2108
2136
  /* @__PURE__ */ jsxs("div", { className: "relative", children: [
@@ -2372,7 +2400,7 @@ function FormInput({
2372
2400
  className: "absolute inset-y-0 right-8 flex items-center pr-3 text-muted-foreground hover:text-foreground transition-colors duration-200 z-10",
2373
2401
  "aria-label": `Copy ${label}`,
2374
2402
  title: copied ? "Copied!" : `Copy ${label}`,
2375
- children: copied ? /* @__PURE__ */ jsx(RiCheckLine, { className: "w-4 h-4 text-green-500", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(RiFileCopyLine, { className: "w-4 h-4", "aria-hidden": "true" })
2403
+ children: copied ? /* @__PURE__ */ jsx(RiCheckLine, { className: "w-4 h-4 text-success", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(RiFileCopyLine, { className: "w-4 h-4", "aria-hidden": "true" })
2376
2404
  }
2377
2405
  ),
2378
2406
  /* @__PURE__ */ jsx(
@@ -2438,7 +2466,7 @@ function FormInput({
2438
2466
  className: `absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground hover:text-foreground transition-all duration-200 z-10`,
2439
2467
  "aria-label": `Copy ${label}`,
2440
2468
  title: copied ? "Copied!" : `Copy ${label}`,
2441
- children: copied ? /* @__PURE__ */ jsx(RiCheckLine, { className: "w-4 h-4 text-green-500", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(RiFileCopyLine, { className: "w-4 h-4", "aria-hidden": "true" })
2469
+ children: copied ? /* @__PURE__ */ jsx(RiCheckLine, { className: "w-4 h-4 text-success", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(RiFileCopyLine, { className: "w-4 h-4", "aria-hidden": "true" })
2442
2470
  }
2443
2471
  ),
2444
2472
  clearable && !copyable && value !== "" && value !== null && value !== void 0 && !disabled && !readOnly && /* @__PURE__ */ jsx(
@@ -2503,15 +2531,15 @@ function Grid({
2503
2531
  }
2504
2532
  var variantStyles = {
2505
2533
  default: "bg-accent border-border text-muted-foreground",
2506
- warning: "bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-800 text-yellow-700 dark:text-yellow-300",
2507
- info: "bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800 text-blue-700 dark:text-blue-300",
2508
- success: "bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800 text-green-700 dark:text-green-300"
2534
+ warning: "bg-amber/10 border-amber text-amber",
2535
+ info: "bg-info/10 border-info text-info",
2536
+ success: "bg-success/10 border-success text-success"
2509
2537
  };
2510
2538
  var titleStyles = {
2511
2539
  default: "text-foreground",
2512
- warning: "text-yellow-800 dark:text-yellow-200",
2513
- info: "text-blue-800 dark:text-blue-200",
2514
- success: "text-green-800 dark:text-green-200"
2540
+ warning: "text-amber",
2541
+ info: "text-info",
2542
+ success: "text-success"
2515
2543
  };
2516
2544
  function InfoBox({
2517
2545
  title,
@@ -2715,7 +2743,7 @@ var Spinner = ({
2715
2743
  };
2716
2744
  const colorClasses2 = {
2717
2745
  primary: "border-primary-600",
2718
- blue: "border-ring",
2746
+ info: "border-info",
2719
2747
  white: "border-white",
2720
2748
  current: "border-current"
2721
2749
  };
@@ -2869,8 +2897,8 @@ function StatusBadge({
2869
2897
  const variantClasses5 = {
2870
2898
  default: "bg-muted text-muted-foreground",
2871
2899
  success: "bg-success text-success-dark",
2872
- warning: "bg-yellow-100 text-yellow-800",
2873
- error: "bg-red-100 text-red-800",
2900
+ warning: "bg-amber/20 text-yellow-800",
2901
+ error: "bg-danger/20 text-danger",
2874
2902
  info: "bg-primary-100 text-primary-800"
2875
2903
  };
2876
2904
  return /* @__PURE__ */ jsx("span", { className: `badge ${variantClasses5[variant]}`, children: status });
@@ -2935,9 +2963,9 @@ function CountBadge({
2935
2963
  const variantClasses5 = {
2936
2964
  primary: "bg-ring ",
2937
2965
  secondary: "bg-muted0 ",
2938
- success: "bg-green-500 ",
2939
- warning: "bg-yellow-500 ",
2940
- error: "bg-red-500 "
2966
+ success: "bg-success ",
2967
+ warning: "bg-amber ",
2968
+ error: "bg-danger "
2941
2969
  };
2942
2970
  if (count <= 0) return null;
2943
2971
  return /* @__PURE__ */ jsx(
@@ -2968,8 +2996,8 @@ function ClearButton({
2968
2996
  lg: "w-5 h-5"
2969
2997
  };
2970
2998
  const variantClasses5 = {
2971
- overlay: "absolute -top-1 -right-1 bg-red-500 rounded-full flex items-center justify-center hover:bg-red-600 transition-colors cursor-pointer",
2972
- inline: "bg-red-500 rounded-full flex items-center justify-center hover:bg-red-600 transition-colors",
2999
+ overlay: "absolute -top-1 -right-1 bg-danger rounded-full flex items-center justify-center hover:bg-danger transition-colors cursor-pointer",
3000
+ inline: "bg-danger rounded-full flex items-center justify-center hover:bg-danger transition-colors",
2973
3001
  ghost: "text-muted-foreground hover:text-muted-foreground transition-colors"
2974
3002
  };
2975
3003
  const baseProps = {
@@ -3080,86 +3108,73 @@ function ActionButton({
3080
3108
  lg: terminalMode ? "" : "btn-lg"
3081
3109
  };
3082
3110
  const paddingClasses3 = iconOnly ? terminalMode ? "" : "p-2" : "px-3 py-1.5";
3083
- const t = {
3084
- edit: "Edit",
3085
- delete: "Delete",
3086
- deactivate: "Deactivate",
3087
- activate: "Activate",
3088
- view: "View",
3089
- metrics: "Metrics",
3090
- start: "Start",
3091
- stop: "Stop",
3092
- restart: "Restart",
3093
- pause: "Pause",
3094
- clone: "Clone"
3095
- };
3096
3111
  const getVariantConfig = () => {
3097
3112
  switch (variant) {
3098
3113
  case "edit":
3099
3114
  return {
3100
3115
  icon: fill ? RiEditFill : RiEditLine,
3101
- label: t.edit,
3116
+ label: "Edit",
3102
3117
  className: "btn-secondary"
3103
3118
  };
3104
3119
  case "delete":
3105
3120
  return {
3106
3121
  icon: fill ? RiDeleteBinFill : RiDeleteBinLine,
3107
- label: t.delete,
3122
+ label: "Delete",
3108
3123
  className: "btn-danger"
3109
3124
  };
3110
3125
  case "deactivate":
3111
3126
  return {
3112
3127
  icon: fill ? RiStopCircleFill : RiStopCircleLine,
3113
- label: t.deactivate,
3128
+ label: "Deactivate",
3114
3129
  className: "bg-slate-50 text-slate-600 hover:bg-slate-100 hover:text-slate-700 border border-slate-200 transition-all duration-300 ease-in-out"
3115
3130
  };
3116
3131
  case "activate":
3117
3132
  return {
3118
3133
  icon: fill ? RiPlayCircleFill : RiPlayCircleLine,
3119
- label: t.activate,
3120
- className: "bg-emerald-50 text-emerald-600 hover:bg-emerald-100 hover:text-emerald-700 border border-emerald-200 transition-all duration-300 ease-in-out"
3134
+ label: "Activate",
3135
+ className: "bg-emerald/10 text-emerald hover:bg-emerald/20 hover:text-emerald-700 border border-emerald-200 transition-all duration-300 ease-in-out"
3121
3136
  };
3122
3137
  case "view":
3123
3138
  return {
3124
3139
  icon: fill ? RiEyeFill : RiEyeLine,
3125
- label: t.view,
3126
- className: "bg-muted text-muted-foreground hover:bg-gray-100 hover:text-foreground border border-border transition-all duration-300 ease-in-out"
3140
+ label: "View",
3141
+ className: "bg-muted text-muted-foreground hover:bg-muted hover:text-foreground border border-border transition-all duration-300 ease-in-out"
3127
3142
  };
3128
3143
  case "metrics":
3129
3144
  return {
3130
3145
  icon: fill ? RiBarChartFill : RiBarChartLine,
3131
- label: t.metrics,
3132
- className: "bg-purple-50 text-purple-600 hover:bg-purple-100 hover:text-purple-700 border border-purple-200 transition-all duration-300 ease-in-out"
3146
+ label: "Metrics",
3147
+ className: "bg-purple/10 text-purple-600 hover:bg-purple-100 hover:text-purple-700 border border-purple-200 transition-all duration-300 ease-in-out"
3133
3148
  };
3134
3149
  case "start":
3135
3150
  return {
3136
3151
  icon: fill ? RiPlayFill : RiPlayLine,
3137
- label: t.start,
3138
- className: "bg-green-50 text-green-600 hover:bg-green-100 hover:text-green-700 border border-green-200 transition-all duration-300 ease-in-out"
3152
+ label: "Start",
3153
+ className: "bg-success/10 text-success hover:bg-success/20 hover:text-success border border-success transition-all duration-300 ease-in-out"
3139
3154
  };
3140
3155
  case "stop":
3141
3156
  return {
3142
3157
  icon: fill ? RiStopFill : RiStopLine,
3143
- label: t.stop,
3144
- className: "bg-red-50 text-red-600 hover:bg-red-100 hover:text-red-700 border border-red-200 transition-all duration-300 ease-in-out"
3158
+ label: "Stop",
3159
+ className: "bg-danger/10 text-danger hover:bg-danger/20 hover:text-danger border border-danger transition-all duration-300 ease-in-out"
3145
3160
  };
3146
3161
  case "restart":
3147
3162
  return {
3148
3163
  icon: fill ? RiRestartFill : RiRestartLine,
3149
- label: t.restart,
3150
- className: "bg-orange-50 text-orange-600 hover:bg-orange-100 hover:text-orange-700 border border-orange-200 transition-all duration-300 ease-in-out"
3164
+ label: "Restart",
3165
+ className: "bg-orange/10 text-orange hover:bg-orange/20 hover:text-orange-700 border border-orange/30 transition-all duration-300 ease-in-out"
3151
3166
  };
3152
3167
  case "pause":
3153
3168
  return {
3154
3169
  icon: fill ? RiPauseFill : RiPauseLine,
3155
- label: t.pause,
3156
- className: "bg-yellow-50 text-yellow-600 hover:bg-yellow-100 hover:text-yellow-700 border border-yellow-200 transition-all duration-300 ease-in-out"
3170
+ label: "Pause",
3171
+ className: "bg-amber/10 text-amber hover:bg-amber/20 hover:text-amber border border-amber transition-all duration-300 ease-in-out"
3157
3172
  };
3158
3173
  case "clone":
3159
3174
  return {
3160
3175
  icon: fill ? RiFileCopyFill : RiFileCopyLine,
3161
- label: t.clone,
3162
- className: "bg-indigo-50 text-indigo-600 hover:bg-indigo-100 hover:text-indigo-700 border border-indigo-200 transition-all duration-300 ease-in-out"
3176
+ label: "Clone",
3177
+ className: "bg-indigo/10 text-indigo hover:bg-indigo/20 hover:text-indigo-700 border border-indigo-200 transition-all duration-300 ease-in-out"
3163
3178
  };
3164
3179
  default:
3165
3180
  return null;
@@ -3170,10 +3185,10 @@ function ActionButton({
3170
3185
  primary: "btn-primary",
3171
3186
  secondary: "btn-secondary",
3172
3187
  danger: "btn-danger",
3173
- success: "bg-green-50 text-green-600 hover:bg-green-100 hover:text-green-700 border border-green-200 transition-all duration-300 ease-in-out",
3174
- warning: "bg-yellow-50 text-yellow-600 hover:bg-yellow-100 hover:text-yellow-700 border border-yellow-200 transition-all duration-300 ease-in-out",
3188
+ success: "bg-success/10 text-success hover:bg-success/20 hover:text-success border border-success transition-all duration-300 ease-in-out",
3189
+ warning: "bg-amber/10 text-amber hover:bg-amber/20 hover:text-amber border border-amber transition-all duration-300 ease-in-out",
3175
3190
  info: "bg-muted text-muted-foreground hover:bg-primary hover:text-primary-foreground border border-ring transition-all duration-300 ease-in-out",
3176
- metrics: "bg-purple-50 text-purple-600 hover:bg-purple-100 hover:text-purple-700 border border-purple-200 transition-all duration-300 ease-in-out"
3191
+ metrics: "bg-purple/10 text-purple-600 hover:bg-purple-100 hover:text-purple-700 border border-purple-200 transition-all duration-300 ease-in-out"
3177
3192
  };
3178
3193
  let variantClass = variantConfig ? variantConfig.className : variant ? variantClasses5[variant] : "";
3179
3194
  if (terminalMode && variantClass) {