@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 +10 -7
- package/dist/index.d.ts +10 -7
- package/dist/index.js +104 -87
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +104 -87
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -1
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' | '
|
|
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' | '
|
|
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?: '
|
|
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?: '
|
|
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: '
|
|
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' | '
|
|
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' | '
|
|
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' | '
|
|
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?: '
|
|
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?: '
|
|
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: '
|
|
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' | '
|
|
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-
|
|
19
|
+
default: "bg-muted text-foreground border-border",
|
|
19
20
|
primary: "bg-primary-100 text-primary-800 border-primary-200",
|
|
20
|
-
secondary: "bg-
|
|
21
|
+
secondary: "bg-muted text-foreground border-border",
|
|
21
22
|
success: "bg-success text-success-dark border-success-light",
|
|
22
|
-
warning: "bg-
|
|
23
|
-
error: "bg-
|
|
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-
|
|
26
|
+
gray: "bg-muted text-foreground border-border",
|
|
26
27
|
purple: "bg-purple-100 text-purple-800 border-purple-200",
|
|
27
|
-
pink: "bg-pink
|
|
28
|
-
indigo: "bg-indigo
|
|
29
|
-
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
purple: "border-l-4 border-l-purple
|
|
199
|
-
orange: "border-l-4 border-l-orange
|
|
200
|
-
gray: "border-l-4 border-l-gray
|
|
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
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
purple: "text-purple
|
|
214
|
-
orange: "text-orange
|
|
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
|
|
217
|
-
pink: "text-pink
|
|
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
|
|
226
|
-
warning: "bg-
|
|
227
|
-
error: "bg-
|
|
228
|
-
info: "bg-
|
|
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 = "
|
|
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
|
-
|
|
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-
|
|
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
|
|
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-
|
|
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
|
|
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 = "
|
|
648
|
+
const { title, message, confirmText, cancelText = "Cancel", confirmButtonColor = "info" } = options;
|
|
620
649
|
const getConfirmVariant = () => {
|
|
621
650
|
switch (confirmButtonColor) {
|
|
622
|
-
case "
|
|
651
|
+
case "danger":
|
|
623
652
|
return "danger";
|
|
624
|
-
case "
|
|
653
|
+
case "success":
|
|
625
654
|
return "primary";
|
|
626
|
-
case "
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
2514
|
-
info: "bg-
|
|
2515
|
-
success: "bg-
|
|
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-
|
|
2520
|
-
info: "text-
|
|
2521
|
-
success: "text-
|
|
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
|
-
|
|
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-
|
|
2880
|
-
error: "bg-
|
|
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-
|
|
2946
|
-
warning: "bg-
|
|
2947
|
-
error: "bg-
|
|
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-
|
|
2979
|
-
inline: "bg-
|
|
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
|
|
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-
|
|
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
|
|
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-
|
|
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-
|
|
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
|
|
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-
|
|
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
|
|
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-
|
|
3181
|
-
warning: "bg-
|
|
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
|
|
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) {
|