@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 +10 -7
- package/dist/index.d.ts +10 -7
- package/dist/index.js +113 -98
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +113 -98
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -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
|
@@ -15,28 +15,27 @@ var NextLink__default = /*#__PURE__*/_interopDefault(NextLink);
|
|
|
15
15
|
|
|
16
16
|
// src/Badge.tsx
|
|
17
17
|
var badgeVariants = {
|
|
18
|
-
default: "bg-
|
|
18
|
+
default: "bg-muted text-foreground border-border",
|
|
19
19
|
primary: "bg-primary-100 text-primary-800 border-primary-200",
|
|
20
|
-
secondary: "bg-
|
|
20
|
+
secondary: "bg-muted text-foreground border-border",
|
|
21
21
|
success: "bg-success text-success-dark border-success-light",
|
|
22
|
-
warning: "bg-
|
|
23
|
-
error: "bg-
|
|
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-
|
|
25
|
+
gray: "bg-muted text-foreground border-border",
|
|
26
26
|
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",
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
purple: "text-purple
|
|
214
|
-
orange: "text-orange
|
|
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
|
|
217
|
-
pink: "text-pink
|
|
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
|
|
226
|
-
warning: "bg-
|
|
227
|
-
error: "bg-
|
|
228
|
-
info: "bg-
|
|
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 = "
|
|
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
|
-
|
|
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-
|
|
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
|
|
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-
|
|
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
|
|
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 = "
|
|
647
|
+
const { title, message, confirmText, cancelText = "Cancel", confirmButtonColor = "info" } = options;
|
|
620
648
|
const getConfirmVariant = () => {
|
|
621
649
|
switch (confirmButtonColor) {
|
|
622
|
-
case "
|
|
650
|
+
case "danger":
|
|
623
651
|
return "danger";
|
|
624
|
-
case "
|
|
652
|
+
case "success":
|
|
625
653
|
return "primary";
|
|
626
|
-
case "
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
2514
|
-
info: "bg-
|
|
2515
|
-
success: "bg-
|
|
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-
|
|
2520
|
-
info: "text-
|
|
2521
|
-
success: "text-
|
|
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
|
-
|
|
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-
|
|
2880
|
-
error: "bg-
|
|
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-
|
|
2946
|
-
warning: "bg-
|
|
2947
|
-
error: "bg-
|
|
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-
|
|
2979
|
-
inline: "bg-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
3127
|
-
className: "bg-emerald
|
|
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:
|
|
3133
|
-
className: "bg-muted text-muted-foreground hover:bg-
|
|
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:
|
|
3139
|
-
className: "bg-purple
|
|
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:
|
|
3145
|
-
className: "bg-
|
|
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:
|
|
3151
|
-
className: "bg-
|
|
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:
|
|
3157
|
-
className: "bg-orange
|
|
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:
|
|
3163
|
-
className: "bg-
|
|
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:
|
|
3169
|
-
className: "bg-indigo
|
|
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-
|
|
3181
|
-
warning: "bg-
|
|
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
|
|
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) {
|