@gamecp/ui 0.1.19 → 0.1.20

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
@@ -7,6 +7,7 @@ var reactDom = require('react-dom');
7
7
  var framerMotion = require('framer-motion');
8
8
  var NextLink = require('next/link');
9
9
  var reactTooltip = require('react-tooltip');
10
+ var nextIntlayer = require('next-intlayer');
10
11
 
11
12
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
13
 
@@ -15,28 +16,27 @@ var NextLink__default = /*#__PURE__*/_interopDefault(NextLink);
15
16
 
16
17
  // src/Badge.tsx
17
18
  var badgeVariants = {
18
- default: "bg-gray-100 text-foreground border-border",
19
+ default: "bg-muted text-foreground border-border",
19
20
  primary: "bg-primary-100 text-primary-800 border-primary-200",
20
- secondary: "bg-gray-100 text-foreground border-border",
21
+ secondary: "bg-muted text-foreground border-border",
21
22
  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",
23
+ warning: "bg-amber/20 text-yellow-800 border-amber/30",
24
+ error: "bg-danger/20 text-danger border-danger/30",
24
25
  info: "bg-muted text-muted-foreground border-ring",
25
- gray: "bg-gray-100 text-foreground border-border",
26
+ gray: "bg-muted text-foreground border-border",
26
27
  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",
28
+ pink: "bg-pink/20 text-pink border-pink-200",
29
+ indigo: "bg-indigo/20 text-indigo border-indigo-200",
30
+ orange: "bg-orange/20 text-orange-800 border-orange/30",
31
31
  teal: "bg-teal-100 text-teal-800 border-teal-200",
32
- cyan: "bg-cyan-100 text-cyan-800 border-cyan-200",
32
+ cyan: "bg-cyan/20 text-cyan-800 border-cyan-200",
33
33
  lime: "bg-lime-100 text-lime-800 border-lime-200",
34
- emerald: "bg-emerald-100 text-emerald-800 border-emerald-200",
34
+ emerald: "bg-emerald/20 text-emerald-800 border-emerald-200",
35
35
  rose: "bg-rose-100 text-rose-800 border-rose-200",
36
36
  sky: "bg-sky-100 text-sky-800 border-sky-200",
37
37
  violet: "bg-violet-100 text-violet-800 border-violet-200",
38
38
  fuchsia: "bg-fuchsia-100 text-fuchsia-800 border-fuchsia-200",
39
- amber: "bg-amber-100 text-amber-800 border-amber-200"
39
+ amber: "bg-amber/20 text-amber-800 border-amber/30"
40
40
  };
41
41
  var badgeSizes = {
42
42
  sm: "px-2 py-0.5 text-xs",
@@ -71,7 +71,7 @@ var variantClasses = {
71
71
  primary: "bg-primary text-primary-foreground hover:bg-primary/90 border-transparent",
72
72
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 border-transparent",
73
73
  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",
74
+ danger: "bg-danger text-white hover:bg-danger border-transparent",
75
75
  ghost: "bg-transparent hover:bg-muted hover:text-foreground border-transparent",
76
76
  link: "bg-transparent text-primary underline-offset-4 hover:underline border-transparent p-0",
77
77
  outline: "bg-transparent border-border hover:bg-muted hover:text-foreground"
@@ -191,13 +191,13 @@ var paddingClasses = {
191
191
  };
192
192
  var borderAccentClasses = {
193
193
  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"
194
+ success: "border-l-4 border-l-success",
195
+ info: "border-l-4 border-l-info",
196
+ danger: "border-l-4 border-l-danger",
197
+ amber: "border-l-4 border-l-amber",
198
+ purple: "border-l-4 border-l-purple",
199
+ orange: "border-l-4 border-l-orange",
200
+ gray: "border-l-4 border-l-gray"
201
201
  };
202
202
  var variantClasses2 = {
203
203
  default: "card",
@@ -206,15 +206,15 @@ var variantClasses2 = {
206
206
  filled: "bg-muted rounded-lg border border-border"
207
207
  };
208
208
  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",
209
+ success: "text-success",
210
+ info: "text-info",
211
+ danger: "text-danger",
212
+ amber: "text-amber",
213
+ purple: "text-purple",
214
+ orange: "text-orange",
215
215
  gray: "text-muted-foreground",
216
- indigo: "text-indigo-600",
217
- pink: "text-pink-600"
216
+ indigo: "text-indigo",
217
+ pink: "text-pink"
218
218
  };
219
219
  var iconSizeClasses = {
220
220
  sm: "w-4 h-4",
@@ -222,10 +222,10 @@ var iconSizeClasses = {
222
222
  lg: "w-8 h-8"
223
223
  };
224
224
  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",
225
+ success: "bg-success/10 border-success",
226
+ warning: "bg-amber/10 border-amber",
227
+ error: "bg-danger/10 border-danger",
228
+ info: "bg-info/10 border-info",
229
229
  neutral: "bg-muted border-border"
230
230
  };
231
231
  function Card({
@@ -245,7 +245,7 @@ function Card({
245
245
  subtitle,
246
246
  description,
247
247
  icon: Icon,
248
- iconColor = "blue",
248
+ iconColor = "info",
249
249
  iconSize = "md",
250
250
  actionButton,
251
251
  headerClassName = "",
@@ -256,14 +256,42 @@ function Card({
256
256
  status,
257
257
  statusIcon,
258
258
  statusText,
259
+ headerBorder,
260
+ headerBg,
261
+ headerStatus,
259
262
  id
260
263
  }) {
261
264
  const [isExpanded, setIsExpanded] = React4.useState(defaultExpanded);
265
+ const getHeaderStatusClasses = (status2) => {
266
+ switch (status2) {
267
+ case "online":
268
+ case "success":
269
+ return { border: "bg-success", bg: "status-running-bg-50" };
270
+ case "offline":
271
+ case "error":
272
+ return { border: "bg-destructive", bg: "status-error-bg-50" };
273
+ case "maintenance":
274
+ case "starting":
275
+ case "info":
276
+ return { border: "bg-warning", bg: "status-starting-bg-50" };
277
+ case "restarting":
278
+ case "updating":
279
+ return { border: "bg-orange", bg: "status-restarting-bg-50" };
280
+ case "unknown":
281
+ return { border: "bg-muted-foreground/30", bg: "bg-muted/10" };
282
+ default:
283
+ return { border: headerBorder, bg: headerBg };
284
+ }
285
+ };
286
+ const statusClassesMapped = getHeaderStatusClasses(headerStatus);
287
+ const activeHeaderBorder = statusClassesMapped?.border || headerBorder;
288
+ const activeHeaderBg = statusClassesMapped?.bg || headerBg;
262
289
  const baseClasses = [
263
290
  variantClasses2[variant],
264
291
  paddingClasses[padding],
265
292
  borderAccentClasses[borderAccent],
266
- overflow !== "visible" ? `overflow-${overflow}` : "",
293
+ overflow !== "visible" || activeHeaderBorder ? `overflow-${overflow === "visible" && activeHeaderBorder ? "hidden" : overflow}` : "",
294
+ activeHeaderBorder ? "relative" : "",
267
295
  hover ? "hover:shadow-md transition-shadow" : "",
268
296
  clickable || onClick ? "cursor-pointer" : "",
269
297
  disabled ? "opacity-50 cursor-not-allowed" : "",
@@ -291,7 +319,8 @@ function Card({
291
319
  style,
292
320
  onClick: clickable || onClick ? handleClick : void 0,
293
321
  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: [
322
+ 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` }) }),
323
+ (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
324
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3 flex-1 min-w-0", children: [
296
325
  Icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${iconColorClasses[iconColor]} flex-shrink-0`, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: iconSizeClasses[iconSize] }) }),
297
326
  statusIcon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0", children: statusIcon }),
@@ -499,7 +528,7 @@ function Modal({
499
528
  /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: /* @__PURE__ */ jsxRuntime.jsx(
500
529
  framerMotion.motion.div,
501
530
  {
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"}`,
531
+ 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
532
  variants: backdropVariants,
504
533
  initial: "hidden",
505
534
  animate: isOpen ? "visible" : "hidden",
@@ -514,7 +543,7 @@ function Modal({
514
543
  "aria-labelledby": title ? "modal-title-plain" : void 0,
515
544
  "aria-describedby": ariaDescribedBy || "modal-content-plain",
516
545
  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]`}`,
546
+ 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
547
  variants: modalVariants,
519
548
  initial: "hidden",
520
549
  animate: isOpen ? "visible" : "exit",
@@ -541,7 +570,7 @@ function Modal({
541
570
  /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: /* @__PURE__ */ jsxRuntime.jsx(
542
571
  framerMotion.motion.div,
543
572
  {
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"}`,
573
+ 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
574
  variants: backdropVariants,
546
575
  initial: "hidden",
547
576
  animate: isOpen ? "visible" : "hidden",
@@ -556,7 +585,7 @@ function Modal({
556
585
  "aria-labelledby": title ? "modal-title" : void 0,
557
586
  "aria-describedby": ariaDescribedBy || "modal-content",
558
587
  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]`}`,
588
+ 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
589
  variants: modalVariants,
561
590
  initial: "hidden",
562
591
  animate: isOpen ? "visible" : "exit",
@@ -616,14 +645,14 @@ function Modal({
616
645
  );
617
646
  }
618
647
  function ConfirmDialog({ isOpen, options, onConfirm, onCancel }) {
619
- const { title, message, confirmText, cancelText = "Cancel", confirmButtonColor = "blue" } = options;
648
+ const { title, message, confirmText, cancelText = "Cancel", confirmButtonColor = "info" } = options;
620
649
  const getConfirmVariant = () => {
621
650
  switch (confirmButtonColor) {
622
- case "red":
651
+ case "danger":
623
652
  return "danger";
624
- case "green":
653
+ case "success":
625
654
  return "primary";
626
- case "blue":
655
+ case "info":
627
656
  default:
628
657
  return "primary";
629
658
  }
@@ -1892,7 +1921,7 @@ function SkeletonGamesTable({
1892
1921
  "div",
1893
1922
  {
1894
1923
  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: [
1924
+ children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "min-w-full divide-y divide-border", children: [
1896
1925
  /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "bg-muted", children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
1897
1926
  /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Game" }),
1898
1927
  /* @__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 +2108,7 @@ function FormInput({
2079
2108
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2080
2109
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "form-label", children: [
2081
2110
  label,
2082
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500 ml-1", children: "*" })
2111
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-danger ml-1", children: "*" })
2083
2112
  ] }),
2084
2113
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-secondary-foreground", children: description }),
2085
2114
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -2097,7 +2126,7 @@ function FormInput({
2097
2126
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2098
2127
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "form-label", children: [
2099
2128
  label,
2100
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500 ml-1", children: "*" })
2129
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-danger ml-1", children: "*" })
2101
2130
  ] }),
2102
2131
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-secondary-foreground", children: description }),
2103
2132
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3", children: [
@@ -2109,7 +2138,7 @@ function FormInput({
2109
2138
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2110
2139
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "form-label", children: [
2111
2140
  label,
2112
- required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500 ml-1", children: "*" })
2141
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-danger ml-1", children: "*" })
2113
2142
  ] }),
2114
2143
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-secondary-foreground", children: description }),
2115
2144
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
@@ -2379,7 +2408,7 @@ function FormInput({
2379
2408
  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
2409
  "aria-label": `Copy ${label}`,
2381
2410
  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" })
2411
+ 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
2412
  }
2384
2413
  ),
2385
2414
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -2445,7 +2474,7 @@ function FormInput({
2445
2474
  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
2475
  "aria-label": `Copy ${label}`,
2447
2476
  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" })
2477
+ 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
2478
  }
2450
2479
  ),
2451
2480
  clearable && !copyable && value !== "" && value !== null && value !== void 0 && !disabled && !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
@@ -2510,15 +2539,15 @@ function Grid({
2510
2539
  }
2511
2540
  var variantStyles = {
2512
2541
  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"
2542
+ warning: "bg-amber/10 border-amber text-amber",
2543
+ info: "bg-info/10 border-info text-info",
2544
+ success: "bg-success/10 border-success text-success"
2516
2545
  };
2517
2546
  var titleStyles = {
2518
2547
  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"
2548
+ warning: "text-amber",
2549
+ info: "text-info",
2550
+ success: "text-success"
2522
2551
  };
2523
2552
  function InfoBox({
2524
2553
  title,
@@ -2722,7 +2751,7 @@ var Spinner = ({
2722
2751
  };
2723
2752
  const colorClasses2 = {
2724
2753
  primary: "border-primary-600",
2725
- blue: "border-ring",
2754
+ info: "border-info",
2726
2755
  white: "border-white",
2727
2756
  current: "border-current"
2728
2757
  };
@@ -2876,8 +2905,8 @@ function StatusBadge({
2876
2905
  const variantClasses5 = {
2877
2906
  default: "bg-muted text-muted-foreground",
2878
2907
  success: "bg-success text-success-dark",
2879
- warning: "bg-yellow-100 text-yellow-800",
2880
- error: "bg-red-100 text-red-800",
2908
+ warning: "bg-amber/20 text-yellow-800",
2909
+ error: "bg-danger/20 text-danger",
2881
2910
  info: "bg-primary-100 text-primary-800"
2882
2911
  };
2883
2912
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: `badge ${variantClasses5[variant]}`, children: status });
@@ -2942,9 +2971,9 @@ function CountBadge({
2942
2971
  const variantClasses5 = {
2943
2972
  primary: "bg-ring ",
2944
2973
  secondary: "bg-muted0 ",
2945
- success: "bg-green-500 ",
2946
- warning: "bg-yellow-500 ",
2947
- error: "bg-red-500 "
2974
+ success: "bg-success ",
2975
+ warning: "bg-amber ",
2976
+ error: "bg-danger "
2948
2977
  };
2949
2978
  if (count <= 0) return null;
2950
2979
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -2975,8 +3004,8 @@ function ClearButton({
2975
3004
  lg: "w-5 h-5"
2976
3005
  };
2977
3006
  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",
3007
+ overlay: "absolute -top-1 -right-1 bg-danger rounded-full flex items-center justify-center hover:bg-danger transition-colors cursor-pointer",
3008
+ inline: "bg-danger rounded-full flex items-center justify-center hover:bg-danger transition-colors",
2980
3009
  ghost: "text-muted-foreground hover:text-muted-foreground transition-colors"
2981
3010
  };
2982
3011
  const baseProps = {
@@ -3087,19 +3116,7 @@ function ActionButton({
3087
3116
  lg: terminalMode ? "" : "btn-lg"
3088
3117
  };
3089
3118
  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
- };
3119
+ const t = nextIntlayer.useIntlayer("action-button");
3103
3120
  const getVariantConfig = () => {
3104
3121
  switch (variant) {
3105
3122
  case "edit":
@@ -3124,49 +3141,49 @@ function ActionButton({
3124
3141
  return {
3125
3142
  icon: fill ? ri.RiPlayCircleFill : ri.RiPlayCircleLine,
3126
3143
  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"
3144
+ 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
3145
  };
3129
3146
  case "view":
3130
3147
  return {
3131
3148
  icon: fill ? ri.RiEyeFill : ri.RiEyeLine,
3132
3149
  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"
3150
+ className: "bg-muted text-muted-foreground hover:bg-muted hover:text-foreground border border-border transition-all duration-300 ease-in-out"
3134
3151
  };
3135
3152
  case "metrics":
3136
3153
  return {
3137
3154
  icon: fill ? ri.RiBarChartFill : ri.RiBarChartLine,
3138
3155
  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"
3156
+ 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
3157
  };
3141
3158
  case "start":
3142
3159
  return {
3143
3160
  icon: fill ? ri.RiPlayFill : ri.RiPlayLine,
3144
3161
  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"
3162
+ className: "bg-success/10 text-success hover:bg-success/20 hover:text-success border border-success transition-all duration-300 ease-in-out"
3146
3163
  };
3147
3164
  case "stop":
3148
3165
  return {
3149
3166
  icon: fill ? ri.RiStopFill : ri.RiStopLine,
3150
3167
  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"
3168
+ className: "bg-danger/10 text-danger hover:bg-danger/20 hover:text-danger border border-danger transition-all duration-300 ease-in-out"
3152
3169
  };
3153
3170
  case "restart":
3154
3171
  return {
3155
3172
  icon: fill ? ri.RiRestartFill : ri.RiRestartLine,
3156
3173
  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"
3174
+ 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
3175
  };
3159
3176
  case "pause":
3160
3177
  return {
3161
3178
  icon: fill ? ri.RiPauseFill : ri.RiPauseLine,
3162
3179
  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"
3180
+ className: "bg-amber/10 text-amber hover:bg-amber/20 hover:text-amber border border-amber transition-all duration-300 ease-in-out"
3164
3181
  };
3165
3182
  case "clone":
3166
3183
  return {
3167
3184
  icon: fill ? ri.RiFileCopyFill : ri.RiFileCopyLine,
3168
3185
  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"
3186
+ 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
3187
  };
3171
3188
  default:
3172
3189
  return null;
@@ -3177,10 +3194,10 @@ function ActionButton({
3177
3194
  primary: "btn-primary",
3178
3195
  secondary: "btn-secondary",
3179
3196
  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",
3197
+ success: "bg-success/10 text-success hover:bg-success/20 hover:text-success border border-success transition-all duration-300 ease-in-out",
3198
+ warning: "bg-amber/10 text-amber hover:bg-amber/20 hover:text-amber border border-amber transition-all duration-300 ease-in-out",
3182
3199
  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"
3200
+ 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
3201
  };
3185
3202
  let variantClass = variantConfig ? variantConfig.className : variant ? variantClasses5[variant] : "";
3186
3203
  if (terminalMode && variantClass) {