@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.d.mts CHANGED
@@ -3,7 +3,7 @@ import * as React$1 from 'react';
3
3
  import React__default, { ButtonHTMLAttributes, ReactNode, AnchorHTMLAttributes } from 'react';
4
4
  import { IconType } from 'react-icons';
5
5
 
6
- type BadgeVariant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' | 'gray' | 'purple' | 'pink' | 'indigo' | 'yellow' | 'orange' | 'teal' | 'cyan' | 'lime' | 'emerald' | 'rose' | 'sky' | 'violet' | 'fuchsia' | 'amber' | 'custom';
6
+ type BadgeVariant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' | 'gray' | 'purple' | 'pink' | 'indigo' | 'amber' | 'orange' | 'teal' | 'cyan' | 'lime' | 'emerald' | 'rose' | 'sky' | 'violet' | 'fuchsia' | 'amber' | 'custom';
7
7
  type BadgeSize = 'sm' | 'md' | 'lg';
8
8
  interface BadgeProps {
9
9
  children: React__default.ReactNode;
@@ -37,7 +37,7 @@ interface BaseCardProps {
37
37
  disabled?: boolean;
38
38
  }
39
39
  type CardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
40
- type BorderAccent = 'none' | 'green' | 'blue' | 'red' | 'yellow' | 'purple' | 'orange' | 'gray';
40
+ type BorderAccent = 'none' | 'success' | 'info' | 'danger' | 'amber' | 'purple' | 'orange' | 'gray';
41
41
  type CardVariant = 'default' | 'elevated' | 'outlined' | 'filled';
42
42
  interface InteractiveCardProps extends BaseCardProps {
43
43
  hover?: boolean;
@@ -48,7 +48,7 @@ interface HeaderCardProps extends InteractiveCardProps {
48
48
  subtitle?: string;
49
49
  description?: string;
50
50
  icon?: IconType;
51
- iconColor?: 'green' | 'blue' | 'red' | 'yellow' | 'purple' | 'orange' | 'gray' | 'indigo' | 'pink';
51
+ iconColor?: 'success' | 'info' | 'danger' | 'amber' | 'purple' | 'orange' | 'gray' | 'indigo' | 'pink';
52
52
  iconSize?: 'sm' | 'md' | 'lg';
53
53
  actionButton?: ReactNode;
54
54
  headerClassName?: string;
@@ -72,15 +72,18 @@ interface CardProps extends AccordionCardProps, StatusCardProps {
72
72
  minHeight?: string;
73
73
  maxHeight?: string;
74
74
  id?: string;
75
+ headerBorder?: string;
76
+ headerBg?: string;
77
+ headerStatus?: 'online' | 'offline' | 'maintenance' | 'error' | 'restarting' | 'starting' | 'success' | 'info' | 'updating' | 'unknown';
75
78
  }
76
- declare function Card({ children, className, onClick, disabled, padding, borderAccent, variant, overflow, minHeight, maxHeight, hover, clickable, title, subtitle, description, icon: Icon, iconColor, iconSize, actionButton, headerClassName, accordion, defaultExpanded, onToggle, contentClassName, status, statusIcon, statusText, id, }: CardProps): react_jsx_runtime.JSX.Element;
79
+ declare function Card({ children, className, onClick, disabled, padding, borderAccent, variant, overflow, minHeight, maxHeight, hover, clickable, title, subtitle, description, icon: Icon, iconColor, iconSize, actionButton, headerClassName, accordion, defaultExpanded, onToggle, contentClassName, status, statusIcon, statusText, headerBorder, headerBg, headerStatus, id, }: CardProps): react_jsx_runtime.JSX.Element;
77
80
 
78
81
  interface ConfirmDialogOptions {
79
82
  title: string;
80
83
  message: string;
81
84
  confirmText: string;
82
85
  cancelText?: string;
83
- confirmButtonColor?: 'red' | 'blue' | 'green';
86
+ confirmButtonColor?: 'danger' | 'info' | 'success';
84
87
  }
85
88
  interface ConfirmDialogProps {
86
89
  isOpen: boolean;
@@ -101,7 +104,7 @@ declare function ConfirmDialog({ isOpen, options, onConfirm, onCancel }: Confirm
101
104
  * title: 'Delete Item',
102
105
  * message: 'Are you sure you want to delete this item?',
103
106
  * confirmText: 'Delete',
104
- * confirmButtonColor: 'red'
107
+ * confirmButtonColor: 'danger'
105
108
  * });
106
109
  *
107
110
  * if (confirmed) {
@@ -597,7 +600,7 @@ declare function SharedTooltip({ id, place, offset, delayShow, delayHide, classN
597
600
 
598
601
  interface SpinnerProps {
599
602
  size?: 'sm' | 'md' | 'lg' | 'xl';
600
- color?: 'primary' | 'blue' | 'white' | 'current';
603
+ color?: 'primary' | 'info' | 'white' | 'current';
601
604
  className?: string;
602
605
  }
603
606
  declare const Spinner: React__default.FC<SpinnerProps>;
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import * as React$1 from 'react';
3
3
  import React__default, { ButtonHTMLAttributes, ReactNode, AnchorHTMLAttributes } from 'react';
4
4
  import { IconType } from 'react-icons';
5
5
 
6
- type BadgeVariant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' | 'gray' | 'purple' | 'pink' | 'indigo' | 'yellow' | 'orange' | 'teal' | 'cyan' | 'lime' | 'emerald' | 'rose' | 'sky' | 'violet' | 'fuchsia' | 'amber' | 'custom';
6
+ type BadgeVariant = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' | 'gray' | 'purple' | 'pink' | 'indigo' | 'amber' | 'orange' | 'teal' | 'cyan' | 'lime' | 'emerald' | 'rose' | 'sky' | 'violet' | 'fuchsia' | 'amber' | 'custom';
7
7
  type BadgeSize = 'sm' | 'md' | 'lg';
8
8
  interface BadgeProps {
9
9
  children: React__default.ReactNode;
@@ -37,7 +37,7 @@ interface BaseCardProps {
37
37
  disabled?: boolean;
38
38
  }
39
39
  type CardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
40
- type BorderAccent = 'none' | 'green' | 'blue' | 'red' | 'yellow' | 'purple' | 'orange' | 'gray';
40
+ type BorderAccent = 'none' | 'success' | 'info' | 'danger' | 'amber' | 'purple' | 'orange' | 'gray';
41
41
  type CardVariant = 'default' | 'elevated' | 'outlined' | 'filled';
42
42
  interface InteractiveCardProps extends BaseCardProps {
43
43
  hover?: boolean;
@@ -48,7 +48,7 @@ interface HeaderCardProps extends InteractiveCardProps {
48
48
  subtitle?: string;
49
49
  description?: string;
50
50
  icon?: IconType;
51
- iconColor?: 'green' | 'blue' | 'red' | 'yellow' | 'purple' | 'orange' | 'gray' | 'indigo' | 'pink';
51
+ iconColor?: 'success' | 'info' | 'danger' | 'amber' | 'purple' | 'orange' | 'gray' | 'indigo' | 'pink';
52
52
  iconSize?: 'sm' | 'md' | 'lg';
53
53
  actionButton?: ReactNode;
54
54
  headerClassName?: string;
@@ -72,15 +72,18 @@ interface CardProps extends AccordionCardProps, StatusCardProps {
72
72
  minHeight?: string;
73
73
  maxHeight?: string;
74
74
  id?: string;
75
+ headerBorder?: string;
76
+ headerBg?: string;
77
+ headerStatus?: 'online' | 'offline' | 'maintenance' | 'error' | 'restarting' | 'starting' | 'success' | 'info' | 'updating' | 'unknown';
75
78
  }
76
- declare function Card({ children, className, onClick, disabled, padding, borderAccent, variant, overflow, minHeight, maxHeight, hover, clickable, title, subtitle, description, icon: Icon, iconColor, iconSize, actionButton, headerClassName, accordion, defaultExpanded, onToggle, contentClassName, status, statusIcon, statusText, id, }: CardProps): react_jsx_runtime.JSX.Element;
79
+ declare function Card({ children, className, onClick, disabled, padding, borderAccent, variant, overflow, minHeight, maxHeight, hover, clickable, title, subtitle, description, icon: Icon, iconColor, iconSize, actionButton, headerClassName, accordion, defaultExpanded, onToggle, contentClassName, status, statusIcon, statusText, headerBorder, headerBg, headerStatus, id, }: CardProps): react_jsx_runtime.JSX.Element;
77
80
 
78
81
  interface ConfirmDialogOptions {
79
82
  title: string;
80
83
  message: string;
81
84
  confirmText: string;
82
85
  cancelText?: string;
83
- confirmButtonColor?: 'red' | 'blue' | 'green';
86
+ confirmButtonColor?: 'danger' | 'info' | 'success';
84
87
  }
85
88
  interface ConfirmDialogProps {
86
89
  isOpen: boolean;
@@ -101,7 +104,7 @@ declare function ConfirmDialog({ isOpen, options, onConfirm, onCancel }: Confirm
101
104
  * title: 'Delete Item',
102
105
  * message: 'Are you sure you want to delete this item?',
103
106
  * confirmText: 'Delete',
104
- * confirmButtonColor: 'red'
107
+ * confirmButtonColor: 'danger'
105
108
  * });
106
109
  *
107
110
  * if (confirmed) {
@@ -597,7 +600,7 @@ declare function SharedTooltip({ id, place, offset, delayShow, delayHide, classN
597
600
 
598
601
  interface SpinnerProps {
599
602
  size?: 'sm' | 'md' | 'lg' | 'xl';
600
- color?: 'primary' | 'blue' | 'white' | 'current';
603
+ color?: 'primary' | 'info' | 'white' | 'current';
601
604
  className?: string;
602
605
  }
603
606
  declare const Spinner: React__default.FC<SpinnerProps>;
package/dist/index.js CHANGED
@@ -15,28 +15,27 @@ var NextLink__default = /*#__PURE__*/_interopDefault(NextLink);
15
15
 
16
16
  // src/Badge.tsx
17
17
  var badgeVariants = {
18
- default: "bg-gray-100 text-foreground border-border",
18
+ default: "bg-muted text-foreground border-border",
19
19
  primary: "bg-primary-100 text-primary-800 border-primary-200",
20
- secondary: "bg-gray-100 text-foreground border-border",
20
+ secondary: "bg-muted text-foreground border-border",
21
21
  success: "bg-success text-success-dark border-success-light",
22
- warning: "bg-yellow-100 text-yellow-800 border-yellow-200",
23
- error: "bg-red-100 text-red-800 border-red-200",
22
+ warning: "bg-amber/20 text-yellow-800 border-amber/30",
23
+ error: "bg-danger/20 text-danger border-danger/30",
24
24
  info: "bg-muted text-muted-foreground border-ring",
25
- gray: "bg-gray-100 text-foreground border-border",
25
+ gray: "bg-muted text-foreground border-border",
26
26
  purple: "bg-purple-100 text-purple-800 border-purple-200",
27
- pink: "bg-pink-100 text-pink-800 border-pink-200",
28
- indigo: "bg-indigo-100 text-indigo-800 border-indigo-200",
29
- yellow: "bg-yellow-100 text-yellow-800 border-yellow-200",
30
- orange: "bg-orange-100 text-orange-800 border-orange-200",
27
+ pink: "bg-pink/20 text-pink border-pink-200",
28
+ indigo: "bg-indigo/20 text-indigo border-indigo-200",
29
+ orange: "bg-orange/20 text-orange-800 border-orange/30",
31
30
  teal: "bg-teal-100 text-teal-800 border-teal-200",
32
- cyan: "bg-cyan-100 text-cyan-800 border-cyan-200",
31
+ cyan: "bg-cyan/20 text-cyan-800 border-cyan-200",
33
32
  lime: "bg-lime-100 text-lime-800 border-lime-200",
34
- emerald: "bg-emerald-100 text-emerald-800 border-emerald-200",
33
+ emerald: "bg-emerald/20 text-emerald-800 border-emerald-200",
35
34
  rose: "bg-rose-100 text-rose-800 border-rose-200",
36
35
  sky: "bg-sky-100 text-sky-800 border-sky-200",
37
36
  violet: "bg-violet-100 text-violet-800 border-violet-200",
38
37
  fuchsia: "bg-fuchsia-100 text-fuchsia-800 border-fuchsia-200",
39
- amber: "bg-amber-100 text-amber-800 border-amber-200"
38
+ amber: "bg-amber/20 text-amber-800 border-amber/30"
40
39
  };
41
40
  var badgeSizes = {
42
41
  sm: "px-2 py-0.5 text-xs",
@@ -71,7 +70,7 @@ var variantClasses = {
71
70
  primary: "bg-primary text-primary-foreground hover:bg-primary/90 border-transparent",
72
71
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 border-transparent",
73
72
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 border-transparent",
74
- danger: "bg-red-600 text-white hover:bg-red-700 border-transparent",
73
+ danger: "bg-danger text-white hover:bg-danger border-transparent",
75
74
  ghost: "bg-transparent hover:bg-muted hover:text-foreground border-transparent",
76
75
  link: "bg-transparent text-primary underline-offset-4 hover:underline border-transparent p-0",
77
76
  outline: "bg-transparent border-border hover:bg-muted hover:text-foreground"
@@ -191,13 +190,13 @@ var paddingClasses = {
191
190
  };
192
191
  var borderAccentClasses = {
193
192
  none: "",
194
- green: "border-l-4 border-l-green-500",
195
- blue: "border-l-4 border-l-ring",
196
- red: "border-l-4 border-l-red-500",
197
- yellow: "border-l-4 border-l-yellow-500",
198
- purple: "border-l-4 border-l-purple-500",
199
- orange: "border-l-4 border-l-orange-500",
200
- gray: "border-l-4 border-l-gray-500"
193
+ success: "border-l-4 border-l-success",
194
+ info: "border-l-4 border-l-info",
195
+ danger: "border-l-4 border-l-danger",
196
+ amber: "border-l-4 border-l-amber",
197
+ purple: "border-l-4 border-l-purple",
198
+ orange: "border-l-4 border-l-orange",
199
+ gray: "border-l-4 border-l-gray"
201
200
  };
202
201
  var variantClasses2 = {
203
202
  default: "card",
@@ -206,15 +205,15 @@ var variantClasses2 = {
206
205
  filled: "bg-muted rounded-lg border border-border"
207
206
  };
208
207
  var iconColorClasses = {
209
- green: "text-success",
210
- blue: "text-primary",
211
- red: "text-destructive",
212
- yellow: "text-yellow-600",
213
- purple: "text-purple-600",
214
- orange: "text-orange-600",
208
+ success: "text-success",
209
+ info: "text-info",
210
+ danger: "text-danger",
211
+ amber: "text-amber",
212
+ purple: "text-purple",
213
+ orange: "text-orange",
215
214
  gray: "text-muted-foreground",
216
- indigo: "text-indigo-600",
217
- pink: "text-pink-600"
215
+ indigo: "text-indigo",
216
+ pink: "text-pink"
218
217
  };
219
218
  var iconSizeClasses = {
220
219
  sm: "w-4 h-4",
@@ -222,10 +221,10 @@ var iconSizeClasses = {
222
221
  lg: "w-8 h-8"
223
222
  };
224
223
  var statusClasses = {
225
- success: "bg-success-light border-success-light",
226
- warning: "bg-yellow-50 border-yellow-200",
227
- error: "bg-destructive border-destructive",
228
- info: "bg-primary border-primary",
224
+ success: "bg-success/10 border-success",
225
+ warning: "bg-amber/10 border-amber",
226
+ error: "bg-danger/10 border-danger",
227
+ info: "bg-info/10 border-info",
229
228
  neutral: "bg-muted border-border"
230
229
  };
231
230
  function Card({
@@ -245,7 +244,7 @@ function Card({
245
244
  subtitle,
246
245
  description,
247
246
  icon: Icon,
248
- iconColor = "blue",
247
+ iconColor = "info",
249
248
  iconSize = "md",
250
249
  actionButton,
251
250
  headerClassName = "",
@@ -256,14 +255,42 @@ function Card({
256
255
  status,
257
256
  statusIcon,
258
257
  statusText,
258
+ headerBorder,
259
+ headerBg,
260
+ headerStatus,
259
261
  id
260
262
  }) {
261
263
  const [isExpanded, setIsExpanded] = React4.useState(defaultExpanded);
264
+ const getHeaderStatusClasses = (status2) => {
265
+ switch (status2) {
266
+ case "online":
267
+ case "success":
268
+ return { border: "bg-success", bg: "status-running-bg-50" };
269
+ case "offline":
270
+ case "error":
271
+ return { border: "bg-destructive", bg: "status-error-bg-50" };
272
+ case "maintenance":
273
+ case "starting":
274
+ case "info":
275
+ return { border: "bg-warning", bg: "status-starting-bg-50" };
276
+ case "restarting":
277
+ case "updating":
278
+ return { border: "bg-orange", bg: "status-restarting-bg-50" };
279
+ case "unknown":
280
+ return { border: "bg-muted-foreground/30", bg: "bg-muted/10" };
281
+ default:
282
+ return { border: headerBorder, bg: headerBg };
283
+ }
284
+ };
285
+ const statusClassesMapped = getHeaderStatusClasses(headerStatus);
286
+ const activeHeaderBorder = statusClassesMapped?.border || headerBorder;
287
+ const activeHeaderBg = statusClassesMapped?.bg || headerBg;
262
288
  const baseClasses = [
263
289
  variantClasses2[variant],
264
290
  paddingClasses[padding],
265
291
  borderAccentClasses[borderAccent],
266
- overflow !== "visible" ? `overflow-${overflow}` : "",
292
+ overflow !== "visible" || activeHeaderBorder ? `overflow-${overflow === "visible" && activeHeaderBorder ? "hidden" : overflow}` : "",
293
+ activeHeaderBorder ? "relative" : "",
267
294
  hover ? "hover:shadow-md transition-shadow" : "",
268
295
  clickable || onClick ? "cursor-pointer" : "",
269
296
  disabled ? "opacity-50 cursor-not-allowed" : "",
@@ -291,7 +318,8 @@ function Card({
291
318
  style,
292
319
  onClick: clickable || onClick ? handleClick : void 0,
293
320
  children: [
294
- (title || subtitle || description || Icon || actionButton || status) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${headerClassName}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
321
+ activeHeaderBorder && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 left-0 right-0 flex justify-center z-10 pointer-events-none", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-1.5 w-24 ${activeHeaderBorder} rounded-b-xl shadow-sm` }) }),
322
+ (title || subtitle || description || Icon || actionButton || status) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${activeHeaderBg ? activeHeaderBg + " " : ""}${headerClassName}${activeHeaderBorder ? " pt-6 pb-4 px-4" : ""}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
295
323
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3 flex-1 min-w-0", children: [
296
324
  Icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${iconColorClasses[iconColor]} flex-shrink-0`, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: iconSizeClasses[iconSize] }) }),
297
325
  statusIcon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0", children: statusIcon }),
@@ -499,7 +527,7 @@ function Modal({
499
527
  /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: /* @__PURE__ */ jsxRuntime.jsx(
500
528
  framerMotion.motion.div,
501
529
  {
502
- 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"}`,
530
+ 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"}`,
503
531
  variants: backdropVariants,
504
532
  initial: "hidden",
505
533
  animate: isOpen ? "visible" : "hidden",
@@ -514,7 +542,7 @@ function Modal({
514
542
  "aria-labelledby": title ? "modal-title-plain" : void 0,
515
543
  "aria-describedby": ariaDescribedBy || "modal-content-plain",
516
544
  tabIndex: -1,
517
- 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]`}`,
545
+ 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]`}`,
518
546
  variants: modalVariants,
519
547
  initial: "hidden",
520
548
  animate: isOpen ? "visible" : "exit",
@@ -541,7 +569,7 @@ function Modal({
541
569
  /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: /* @__PURE__ */ jsxRuntime.jsx(
542
570
  framerMotion.motion.div,
543
571
  {
544
- 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"}`,
572
+ 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"}`,
545
573
  variants: backdropVariants,
546
574
  initial: "hidden",
547
575
  animate: isOpen ? "visible" : "hidden",
@@ -556,7 +584,7 @@ function Modal({
556
584
  "aria-labelledby": title ? "modal-title" : void 0,
557
585
  "aria-describedby": ariaDescribedBy || "modal-content",
558
586
  tabIndex: -1,
559
- 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]`}`,
587
+ 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]`}`,
560
588
  variants: modalVariants,
561
589
  initial: "hidden",
562
590
  animate: isOpen ? "visible" : "exit",
@@ -616,14 +644,14 @@ function Modal({
616
644
  );
617
645
  }
618
646
  function ConfirmDialog({ isOpen, options, onConfirm, onCancel }) {
619
- const { title, message, confirmText, cancelText = "Cancel", confirmButtonColor = "blue" } = options;
647
+ const { title, message, confirmText, cancelText = "Cancel", confirmButtonColor = "info" } = options;
620
648
  const getConfirmVariant = () => {
621
649
  switch (confirmButtonColor) {
622
- case "red":
650
+ case "danger":
623
651
  return "danger";
624
- case "green":
652
+ case "success":
625
653
  return "primary";
626
- case "blue":
654
+ case "info":
627
655
  default:
628
656
  return "primary";
629
657
  }
@@ -1892,7 +1920,7 @@ function SkeletonGamesTable({
1892
1920
  "div",
1893
1921
  {
1894
1922
  className: `overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg ${className}`,
1895
- children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "min-w-full divide-y divide-gray-300", children: [
1923
+ children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "min-w-full divide-y divide-border", children: [
1896
1924
  /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "bg-muted", children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
1897
1925
  /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Game" }),
1898
1926
  /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Type" }),
@@ -2079,7 +2107,7 @@ function FormInput({
2079
2107
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2080
2108
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "form-label", children: [
2081
2109
  label,
2082
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500 ml-1", children: "*" })
2110
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-danger ml-1", children: "*" })
2083
2111
  ] }),
2084
2112
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-secondary-foreground", children: description }),
2085
2113
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -2097,7 +2125,7 @@ function FormInput({
2097
2125
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2098
2126
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "form-label", children: [
2099
2127
  label,
2100
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500 ml-1", children: "*" })
2128
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-danger ml-1", children: "*" })
2101
2129
  ] }),
2102
2130
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-secondary-foreground", children: description }),
2103
2131
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3", children: [
@@ -2109,7 +2137,7 @@ function FormInput({
2109
2137
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2110
2138
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "form-label", children: [
2111
2139
  label,
2112
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500 ml-1", children: "*" })
2140
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-danger ml-1", children: "*" })
2113
2141
  ] }),
2114
2142
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-secondary-foreground", children: description }),
2115
2143
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
@@ -2379,7 +2407,7 @@ function FormInput({
2379
2407
  className: "absolute inset-y-0 right-8 flex items-center pr-3 text-muted-foreground hover:text-foreground transition-colors duration-200 z-10",
2380
2408
  "aria-label": `Copy ${label}`,
2381
2409
  title: copied ? "Copied!" : `Copy ${label}`,
2382
- children: copied ? /* @__PURE__ */ jsxRuntime.jsx(ri.RiCheckLine, { className: "w-4 h-4 text-green-500", "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx(ri.RiFileCopyLine, { className: "w-4 h-4", "aria-hidden": "true" })
2410
+ children: copied ? /* @__PURE__ */ jsxRuntime.jsx(ri.RiCheckLine, { className: "w-4 h-4 text-success", "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx(ri.RiFileCopyLine, { className: "w-4 h-4", "aria-hidden": "true" })
2383
2411
  }
2384
2412
  ),
2385
2413
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -2445,7 +2473,7 @@ function FormInput({
2445
2473
  className: `absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground hover:text-foreground transition-all duration-200 z-10`,
2446
2474
  "aria-label": `Copy ${label}`,
2447
2475
  title: copied ? "Copied!" : `Copy ${label}`,
2448
- children: copied ? /* @__PURE__ */ jsxRuntime.jsx(ri.RiCheckLine, { className: "w-4 h-4 text-green-500", "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx(ri.RiFileCopyLine, { className: "w-4 h-4", "aria-hidden": "true" })
2476
+ children: copied ? /* @__PURE__ */ jsxRuntime.jsx(ri.RiCheckLine, { className: "w-4 h-4 text-success", "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx(ri.RiFileCopyLine, { className: "w-4 h-4", "aria-hidden": "true" })
2449
2477
  }
2450
2478
  ),
2451
2479
  clearable && !copyable && value !== "" && value !== null && value !== void 0 && !disabled && !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
@@ -2510,15 +2538,15 @@ function Grid({
2510
2538
  }
2511
2539
  var variantStyles = {
2512
2540
  default: "bg-accent border-border text-muted-foreground",
2513
- warning: "bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-800 text-yellow-700 dark:text-yellow-300",
2514
- info: "bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800 text-blue-700 dark:text-blue-300",
2515
- success: "bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800 text-green-700 dark:text-green-300"
2541
+ warning: "bg-amber/10 border-amber text-amber",
2542
+ info: "bg-info/10 border-info text-info",
2543
+ success: "bg-success/10 border-success text-success"
2516
2544
  };
2517
2545
  var titleStyles = {
2518
2546
  default: "text-foreground",
2519
- warning: "text-yellow-800 dark:text-yellow-200",
2520
- info: "text-blue-800 dark:text-blue-200",
2521
- success: "text-green-800 dark:text-green-200"
2547
+ warning: "text-amber",
2548
+ info: "text-info",
2549
+ success: "text-success"
2522
2550
  };
2523
2551
  function InfoBox({
2524
2552
  title,
@@ -2722,7 +2750,7 @@ var Spinner = ({
2722
2750
  };
2723
2751
  const colorClasses2 = {
2724
2752
  primary: "border-primary-600",
2725
- blue: "border-ring",
2753
+ info: "border-info",
2726
2754
  white: "border-white",
2727
2755
  current: "border-current"
2728
2756
  };
@@ -2876,8 +2904,8 @@ function StatusBadge({
2876
2904
  const variantClasses5 = {
2877
2905
  default: "bg-muted text-muted-foreground",
2878
2906
  success: "bg-success text-success-dark",
2879
- warning: "bg-yellow-100 text-yellow-800",
2880
- error: "bg-red-100 text-red-800",
2907
+ warning: "bg-amber/20 text-yellow-800",
2908
+ error: "bg-danger/20 text-danger",
2881
2909
  info: "bg-primary-100 text-primary-800"
2882
2910
  };
2883
2911
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: `badge ${variantClasses5[variant]}`, children: status });
@@ -2942,9 +2970,9 @@ function CountBadge({
2942
2970
  const variantClasses5 = {
2943
2971
  primary: "bg-ring ",
2944
2972
  secondary: "bg-muted0 ",
2945
- success: "bg-green-500 ",
2946
- warning: "bg-yellow-500 ",
2947
- error: "bg-red-500 "
2973
+ success: "bg-success ",
2974
+ warning: "bg-amber ",
2975
+ error: "bg-danger "
2948
2976
  };
2949
2977
  if (count <= 0) return null;
2950
2978
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -2975,8 +3003,8 @@ function ClearButton({
2975
3003
  lg: "w-5 h-5"
2976
3004
  };
2977
3005
  const variantClasses5 = {
2978
- overlay: "absolute -top-1 -right-1 bg-red-500 rounded-full flex items-center justify-center hover:bg-red-600 transition-colors cursor-pointer",
2979
- inline: "bg-red-500 rounded-full flex items-center justify-center hover:bg-red-600 transition-colors",
3006
+ overlay: "absolute -top-1 -right-1 bg-danger rounded-full flex items-center justify-center hover:bg-danger transition-colors cursor-pointer",
3007
+ inline: "bg-danger rounded-full flex items-center justify-center hover:bg-danger transition-colors",
2980
3008
  ghost: "text-muted-foreground hover:text-muted-foreground transition-colors"
2981
3009
  };
2982
3010
  const baseProps = {
@@ -3087,86 +3115,73 @@ function ActionButton({
3087
3115
  lg: terminalMode ? "" : "btn-lg"
3088
3116
  };
3089
3117
  const paddingClasses3 = iconOnly ? terminalMode ? "" : "p-2" : "px-3 py-1.5";
3090
- const t = {
3091
- edit: "Edit",
3092
- delete: "Delete",
3093
- deactivate: "Deactivate",
3094
- activate: "Activate",
3095
- view: "View",
3096
- metrics: "Metrics",
3097
- start: "Start",
3098
- stop: "Stop",
3099
- restart: "Restart",
3100
- pause: "Pause",
3101
- clone: "Clone"
3102
- };
3103
3118
  const getVariantConfig = () => {
3104
3119
  switch (variant) {
3105
3120
  case "edit":
3106
3121
  return {
3107
3122
  icon: fill ? ri.RiEditFill : ri.RiEditLine,
3108
- label: t.edit,
3123
+ label: "Edit",
3109
3124
  className: "btn-secondary"
3110
3125
  };
3111
3126
  case "delete":
3112
3127
  return {
3113
3128
  icon: fill ? ri.RiDeleteBinFill : ri.RiDeleteBinLine,
3114
- label: t.delete,
3129
+ label: "Delete",
3115
3130
  className: "btn-danger"
3116
3131
  };
3117
3132
  case "deactivate":
3118
3133
  return {
3119
3134
  icon: fill ? ri.RiStopCircleFill : ri.RiStopCircleLine,
3120
- label: t.deactivate,
3135
+ label: "Deactivate",
3121
3136
  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"
3122
3137
  };
3123
3138
  case "activate":
3124
3139
  return {
3125
3140
  icon: fill ? ri.RiPlayCircleFill : ri.RiPlayCircleLine,
3126
- label: t.activate,
3127
- 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"
3141
+ label: "Activate",
3142
+ 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"
3128
3143
  };
3129
3144
  case "view":
3130
3145
  return {
3131
3146
  icon: fill ? ri.RiEyeFill : ri.RiEyeLine,
3132
- label: t.view,
3133
- className: "bg-muted text-muted-foreground hover:bg-gray-100 hover:text-foreground border border-border transition-all duration-300 ease-in-out"
3147
+ label: "View",
3148
+ className: "bg-muted text-muted-foreground hover:bg-muted hover:text-foreground border border-border transition-all duration-300 ease-in-out"
3134
3149
  };
3135
3150
  case "metrics":
3136
3151
  return {
3137
3152
  icon: fill ? ri.RiBarChartFill : ri.RiBarChartLine,
3138
- label: t.metrics,
3139
- 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"
3153
+ label: "Metrics",
3154
+ 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"
3140
3155
  };
3141
3156
  case "start":
3142
3157
  return {
3143
3158
  icon: fill ? ri.RiPlayFill : ri.RiPlayLine,
3144
- label: t.start,
3145
- 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"
3159
+ label: "Start",
3160
+ className: "bg-success/10 text-success hover:bg-success/20 hover:text-success border border-success transition-all duration-300 ease-in-out"
3146
3161
  };
3147
3162
  case "stop":
3148
3163
  return {
3149
3164
  icon: fill ? ri.RiStopFill : ri.RiStopLine,
3150
- label: t.stop,
3151
- 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"
3165
+ label: "Stop",
3166
+ className: "bg-danger/10 text-danger hover:bg-danger/20 hover:text-danger border border-danger transition-all duration-300 ease-in-out"
3152
3167
  };
3153
3168
  case "restart":
3154
3169
  return {
3155
3170
  icon: fill ? ri.RiRestartFill : ri.RiRestartLine,
3156
- label: t.restart,
3157
- 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"
3171
+ label: "Restart",
3172
+ 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"
3158
3173
  };
3159
3174
  case "pause":
3160
3175
  return {
3161
3176
  icon: fill ? ri.RiPauseFill : ri.RiPauseLine,
3162
- label: t.pause,
3163
- 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"
3177
+ label: "Pause",
3178
+ className: "bg-amber/10 text-amber hover:bg-amber/20 hover:text-amber border border-amber transition-all duration-300 ease-in-out"
3164
3179
  };
3165
3180
  case "clone":
3166
3181
  return {
3167
3182
  icon: fill ? ri.RiFileCopyFill : ri.RiFileCopyLine,
3168
- label: t.clone,
3169
- 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"
3183
+ label: "Clone",
3184
+ 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"
3170
3185
  };
3171
3186
  default:
3172
3187
  return null;
@@ -3177,10 +3192,10 @@ function ActionButton({
3177
3192
  primary: "btn-primary",
3178
3193
  secondary: "btn-secondary",
3179
3194
  danger: "btn-danger",
3180
- 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",
3181
- 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",
3195
+ success: "bg-success/10 text-success hover:bg-success/20 hover:text-success border border-success transition-all duration-300 ease-in-out",
3196
+ warning: "bg-amber/10 text-amber hover:bg-amber/20 hover:text-amber border border-amber transition-all duration-300 ease-in-out",
3182
3197
  info: "bg-muted text-muted-foreground hover:bg-primary hover:text-primary-foreground border border-ring transition-all duration-300 ease-in-out",
3183
- 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"
3198
+ 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"
3184
3199
  };
3185
3200
  let variantClass = variantConfig ? variantConfig.className : variant ? variantClasses5[variant] : "";
3186
3201
  if (terminalMode && variantClass) {