@gamecp/ui 0.1.30 → 0.1.33
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 +38 -6
- package/dist/index.d.ts +38 -6
- package/dist/index.js +190 -67
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +187 -69
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -712,7 +712,7 @@ var paddingClasses2 = {
|
|
|
712
712
|
none: "",
|
|
713
713
|
sm: "p-4",
|
|
714
714
|
md: "p-4 lg:p-6",
|
|
715
|
-
lg: "
|
|
715
|
+
lg: "px-4 sm:px-6 lg:px-6 py-6"
|
|
716
716
|
};
|
|
717
717
|
function Container({
|
|
718
718
|
children,
|
|
@@ -812,7 +812,7 @@ function SmartDropdown({
|
|
|
812
812
|
trigger,
|
|
813
813
|
children,
|
|
814
814
|
className = "",
|
|
815
|
-
width =
|
|
815
|
+
width = 300,
|
|
816
816
|
maxHeight = 450,
|
|
817
817
|
offset = 8,
|
|
818
818
|
margin = 16,
|
|
@@ -860,7 +860,7 @@ function SmartDropdown({
|
|
|
860
860
|
const availableLeftSpace = triggerRect.left - margin;
|
|
861
861
|
const dynamicOffset = Math.max(20, availableLeftSpace * 0.2);
|
|
862
862
|
right = viewportWidth - triggerRect.left + dynamicOffset;
|
|
863
|
-
left = 0;
|
|
863
|
+
left = void 0;
|
|
864
864
|
calculatedWidth = Math.min(
|
|
865
865
|
calculatedWidth,
|
|
866
866
|
triggerRect.left - dynamicOffset - margin
|
|
@@ -912,13 +912,13 @@ function SmartDropdown({
|
|
|
912
912
|
finalMaxHeight = Math.min(maxHeight, spaceBelow);
|
|
913
913
|
} else if (position === "top-left-aligned") {
|
|
914
914
|
right = viewportWidth - triggerRect.right;
|
|
915
|
-
left = 0;
|
|
915
|
+
left = void 0;
|
|
916
916
|
top = triggerRect.top - offset;
|
|
917
917
|
isAbove = true;
|
|
918
918
|
finalMaxHeight = Math.min(maxHeight, spaceAbove);
|
|
919
919
|
} else if (position === "bottom-left-aligned") {
|
|
920
920
|
right = viewportWidth - triggerRect.right;
|
|
921
|
-
left = 0;
|
|
921
|
+
left = void 0;
|
|
922
922
|
top = triggerRect.bottom + offset;
|
|
923
923
|
isAbove = false;
|
|
924
924
|
finalMaxHeight = Math.min(maxHeight, spaceBelow);
|
|
@@ -1017,20 +1017,13 @@ function SmartDropdown({
|
|
|
1017
1017
|
top: dropdownPosition.top,
|
|
1018
1018
|
...dropdownPosition.left !== void 0 ? { left: dropdownPosition.left } : {},
|
|
1019
1019
|
...dropdownPosition.right !== void 0 ? { right: dropdownPosition.right } : {},
|
|
1020
|
-
width: width
|
|
1020
|
+
width: width ?? dropdownPosition.width,
|
|
1021
1021
|
maxHeight: dropdownPosition.maxHeight
|
|
1022
1022
|
},
|
|
1023
1023
|
onClick: (e) => {
|
|
1024
1024
|
e.stopPropagation();
|
|
1025
1025
|
},
|
|
1026
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1027
|
-
"div",
|
|
1028
|
-
{
|
|
1029
|
-
className: className ? className : "overflow-y-auto",
|
|
1030
|
-
style: { maxHeight: dropdownPosition.maxHeight },
|
|
1031
|
-
children: typeof children === "function" ? children({ isAbove: dropdownPosition.isAbove }) : children
|
|
1032
|
-
}
|
|
1033
|
-
)
|
|
1026
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: className ? className : "overflow-y-auto h-full", children: typeof children === "function" ? children({ isAbove: dropdownPosition.isAbove }) : children })
|
|
1034
1027
|
}
|
|
1035
1028
|
),
|
|
1036
1029
|
document.body
|
|
@@ -1050,6 +1043,8 @@ function SmartSelect({
|
|
|
1050
1043
|
searchable = false,
|
|
1051
1044
|
keepOpen = false,
|
|
1052
1045
|
clearable = true,
|
|
1046
|
+
variant = "default",
|
|
1047
|
+
renderSelected,
|
|
1053
1048
|
// API integration props
|
|
1054
1049
|
onOpen,
|
|
1055
1050
|
onClose,
|
|
@@ -1070,7 +1065,7 @@ function SmartSelect({
|
|
|
1070
1065
|
);
|
|
1071
1066
|
const hasSelection = multiple ? selectedValues.length > 0 : value && value !== "";
|
|
1072
1067
|
const filteredOptions = searchable && searchTerm.trim() ? options.filter(
|
|
1073
|
-
(option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()) || option.value.toLowerCase().includes(searchTerm.toLowerCase()) || option.description
|
|
1068
|
+
(option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()) || option.value.toLowerCase().includes(searchTerm.toLowerCase()) || typeof option.description === "string" && option.description.toLowerCase().includes(searchTerm.toLowerCase())
|
|
1074
1069
|
) : options;
|
|
1075
1070
|
const { focusedIndex, handleKeyDown, resetFocus } = useKeyboardNavigation({
|
|
1076
1071
|
isOpen,
|
|
@@ -1179,10 +1174,10 @@ function SmartSelect({
|
|
|
1179
1174
|
"aria-controls": "dropdown-listbox",
|
|
1180
1175
|
"aria-autocomplete": "list",
|
|
1181
1176
|
"aria-activedescendant": focusedIndex >= 0 ? `option-${focusedIndex}` : void 0,
|
|
1182
|
-
className: `form-input truncate ${hasSelection ? "pr-12" : "pr-8"} ${disabled ? "
|
|
1177
|
+
className: `form-input truncate ${hasSelection ? "pr-12" : "pr-8"} ${disabled ? "cursor-not-allowed" : ""} ${className}`
|
|
1183
1178
|
}
|
|
1184
1179
|
),
|
|
1185
|
-
hasSelection && clearable && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1180
|
+
hasSelection && clearable && !disabled && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1186
1181
|
"button",
|
|
1187
1182
|
{
|
|
1188
1183
|
type: "button",
|
|
@@ -1238,7 +1233,7 @@ function SmartSelect({
|
|
|
1238
1233
|
"aria-controls": "dropdown-listbox",
|
|
1239
1234
|
"aria-label": placeholder,
|
|
1240
1235
|
"aria-activedescendant": focusedIndex >= 0 ? `option-${focusedIndex}` : void 0,
|
|
1241
|
-
className:
|
|
1236
|
+
className: `${variant === "compact" ? "bg-background border border-border rounded-lg px-2 py-1 text-xs h-auto min-h-0 hover:bg-muted/50" : "form-input"} flex items-center justify-between text-left ${hasSelection ? "pr-12" : "pr-8"} ${disabled ? "cursor-not-allowed" : ""} ${className}`,
|
|
1242
1237
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1243
1238
|
"span",
|
|
1244
1239
|
{
|
|
@@ -1249,7 +1244,7 @@ function SmartSelect({
|
|
|
1249
1244
|
selectedOptions[0].icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: selectedOptions[0].icon }),
|
|
1250
1245
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: displayText })
|
|
1251
1246
|
] });
|
|
1252
|
-
})() : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: placeholder }) : selectedOptions[0] ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1 min-w-0 flex-1", children: [
|
|
1247
|
+
})() : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: placeholder }) : selectedOptions[0] ? renderSelected ? renderSelected(selectedOptions[0]) : /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1 min-w-0 flex-1", children: [
|
|
1253
1248
|
selectedOptions[0].icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: selectedOptions[0].icon }),
|
|
1254
1249
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: selectedOptions[0].label })
|
|
1255
1250
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: placeholder })
|
|
@@ -1257,7 +1252,7 @@ function SmartSelect({
|
|
|
1257
1252
|
)
|
|
1258
1253
|
}
|
|
1259
1254
|
),
|
|
1260
|
-
hasSelection && clearable && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1255
|
+
hasSelection && clearable && !disabled && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1261
1256
|
"button",
|
|
1262
1257
|
{
|
|
1263
1258
|
type: "button",
|
|
@@ -1308,18 +1303,42 @@ function SmartSelect({
|
|
|
1308
1303
|
e.stopPropagation();
|
|
1309
1304
|
handleSelect(option.value);
|
|
1310
1305
|
},
|
|
1311
|
-
className: `w-full px-
|
|
1306
|
+
className: `w-full ${variant === "compact" ? "px-2 py-1.5 text-xs" : "px-3 py-1.5 text-sm"} text-left hover:bg-muted/50 flex items-center justify-between transition-colors ${selectedValues.includes(option.value) ? "bg-primary" : index === focusedIndex ? "bg-muted/50" : ""}`,
|
|
1312
1307
|
children: [
|
|
1313
1308
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [
|
|
1314
|
-
option.icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1309
|
+
option.icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1310
|
+
"span",
|
|
1311
|
+
{
|
|
1312
|
+
className: `flex-shrink-0 ${selectedValues.includes(option.value) ? "text-primary-foreground" : ""}`,
|
|
1313
|
+
children: option.icon
|
|
1314
|
+
}
|
|
1315
|
+
),
|
|
1315
1316
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
1316
1317
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
1317
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1318
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1319
|
+
"div",
|
|
1320
|
+
{
|
|
1321
|
+
className: `font-medium truncate ${selectedValues.includes(option.value) ? "text-primary-foreground" : "text-foreground"}`,
|
|
1322
|
+
children: option.label
|
|
1323
|
+
}
|
|
1324
|
+
),
|
|
1318
1325
|
option.metadata?.isDefault && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium success-badge flex-shrink-0", children: "Default" })
|
|
1319
1326
|
] }),
|
|
1320
|
-
option.description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1321
|
-
|
|
1322
|
-
|
|
1327
|
+
option.description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1328
|
+
"div",
|
|
1329
|
+
{
|
|
1330
|
+
className: `text-xs truncate ${selectedValues.includes(option.value) ? "text-primary-foreground/80" : "text-muted-foreground"}`,
|
|
1331
|
+
children: option.description
|
|
1332
|
+
}
|
|
1333
|
+
),
|
|
1334
|
+
option.metadata?.args && option.metadata.args.length > 0 && (!option.metadata.commandType || option.metadata.commandType === "command") && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1", children: [
|
|
1335
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1336
|
+
"div",
|
|
1337
|
+
{
|
|
1338
|
+
className: `text-xs mb-1 ${selectedValues.includes(option.value) ? "text-primary-foreground/80" : "text-muted-foreground"}`,
|
|
1339
|
+
children: "Arguments:"
|
|
1340
|
+
}
|
|
1341
|
+
),
|
|
1323
1342
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-1", children: [
|
|
1324
1343
|
option.metadata.args.slice(0, 3).map((arg, argIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1325
1344
|
"span",
|
|
@@ -1329,11 +1348,17 @@ function SmartSelect({
|
|
|
1329
1348
|
},
|
|
1330
1349
|
argIndex
|
|
1331
1350
|
)),
|
|
1332
|
-
option.metadata.args.length > 3 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1333
|
-
"
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1351
|
+
option.metadata.args.length > 3 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1352
|
+
"span",
|
|
1353
|
+
{
|
|
1354
|
+
className: `text-xs ${selectedValues.includes(option.value) ? "text-primary-foreground/80" : "text-muted-foreground"}`,
|
|
1355
|
+
children: [
|
|
1356
|
+
"+",
|
|
1357
|
+
option.metadata.args.length - 3,
|
|
1358
|
+
" more"
|
|
1359
|
+
]
|
|
1360
|
+
}
|
|
1361
|
+
)
|
|
1337
1362
|
] })
|
|
1338
1363
|
] })
|
|
1339
1364
|
] })
|
|
@@ -1347,11 +1372,11 @@ function SmartSelect({
|
|
|
1347
1372
|
},
|
|
1348
1373
|
className: "w-4 h-4 text-primary bg-muted border-border rounded focus:ring-primary focus:ring-2"
|
|
1349
1374
|
}
|
|
1350
|
-
) : selectedValues.includes(option.value) && /* @__PURE__ */ jsxRuntime.jsx(ri.RiCheckLine, { className: "w-4 h-4 text-primary flex-shrink-0" })
|
|
1375
|
+
) : selectedValues.includes(option.value) && /* @__PURE__ */ jsxRuntime.jsx(ri.RiCheckLine, { className: "w-4 h-4 text-primary-foreground flex-shrink-0" })
|
|
1351
1376
|
]
|
|
1352
1377
|
},
|
|
1353
1378
|
option.value
|
|
1354
|
-
)) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-2 text-sm text-
|
|
1379
|
+
)) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-2 text-sm text-muted-foreground flex items-center gap-2", children: isLoading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1355
1380
|
/* @__PURE__ */ jsxRuntime.jsx(ri.RiLoader4Line, { className: "w-4 h-4 animate-spin" }),
|
|
1356
1381
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Loading..." })
|
|
1357
1382
|
] }) : searchTerm.trim() ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: "No results found" }) : /* @__PURE__ */ jsxRuntime.jsx("span", { children: "No options available" }) }) })
|
|
@@ -2496,7 +2521,7 @@ function FormInput({
|
|
|
2496
2521
|
}
|
|
2497
2522
|
)
|
|
2498
2523
|
] }),
|
|
2499
|
-
footerDescription && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs mt-1", children: footerDescription }),
|
|
2524
|
+
footerDescription && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground mt-1", children: footerDescription }),
|
|
2500
2525
|
error && /* @__PURE__ */ jsxRuntime.jsx("div", { id: `${name}-error`, className: "form-error", role: "alert", children: typeof error === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: error }) : error })
|
|
2501
2526
|
] }) });
|
|
2502
2527
|
}
|
|
@@ -2539,30 +2564,123 @@ function Grid({
|
|
|
2539
2564
|
};
|
|
2540
2565
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `grid ${colClasses[cols]} ${gapClasses[gap]} ${className}`, children });
|
|
2541
2566
|
}
|
|
2542
|
-
var
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2567
|
+
var variantStyles = {
|
|
2568
|
+
info: {
|
|
2569
|
+
bg: "bg-info/5",
|
|
2570
|
+
accent: "bg-info",
|
|
2571
|
+
iconBg: "bg-info/10",
|
|
2572
|
+
iconColor: "text-info",
|
|
2573
|
+
titleColor: "text-info"
|
|
2574
|
+
},
|
|
2575
|
+
warning: {
|
|
2576
|
+
bg: "bg-amber/5",
|
|
2577
|
+
accent: "bg-amber",
|
|
2578
|
+
iconBg: "bg-amber/10",
|
|
2579
|
+
iconColor: "text-amber",
|
|
2580
|
+
titleColor: "text-amber"
|
|
2581
|
+
},
|
|
2582
|
+
success: {
|
|
2583
|
+
bg: "bg-success/5",
|
|
2584
|
+
accent: "bg-success",
|
|
2585
|
+
iconBg: "bg-success/10",
|
|
2586
|
+
iconColor: "text-success",
|
|
2587
|
+
titleColor: "text-success"
|
|
2588
|
+
},
|
|
2589
|
+
danger: {
|
|
2590
|
+
bg: "bg-danger/5",
|
|
2591
|
+
accent: "bg-danger",
|
|
2592
|
+
iconBg: "bg-danger/10",
|
|
2593
|
+
iconColor: "text-danger",
|
|
2594
|
+
titleColor: "text-danger"
|
|
2595
|
+
},
|
|
2596
|
+
default: {
|
|
2597
|
+
bg: "bg-muted/50",
|
|
2598
|
+
accent: "bg-border",
|
|
2599
|
+
iconBg: "bg-muted",
|
|
2600
|
+
iconColor: "text-muted-foreground",
|
|
2601
|
+
titleColor: "text-foreground"
|
|
2602
|
+
}
|
|
2603
|
+
};
|
|
2604
|
+
var defaultIcons = {
|
|
2605
|
+
info: ri.RiInformationLine,
|
|
2606
|
+
warning: ri.RiAlertLine,
|
|
2607
|
+
success: ri.RiCheckLine,
|
|
2608
|
+
danger: ri.RiErrorWarningLine,
|
|
2609
|
+
default: ri.RiInformationLine
|
|
2548
2610
|
};
|
|
2611
|
+
function Notice({
|
|
2612
|
+
children,
|
|
2613
|
+
variant = "info",
|
|
2614
|
+
icon,
|
|
2615
|
+
title,
|
|
2616
|
+
className = "",
|
|
2617
|
+
showIcon = true,
|
|
2618
|
+
action,
|
|
2619
|
+
compact = false
|
|
2620
|
+
}) {
|
|
2621
|
+
const styles = variantStyles[variant] || variantStyles.default;
|
|
2622
|
+
const IconComponent = defaultIcons[variant] || defaultIcons.default;
|
|
2623
|
+
const padding = compact ? "px-3 py-2.5" : "px-4 py-4";
|
|
2624
|
+
const iconSize = compact ? "w-4 h-4" : "w-5 h-5";
|
|
2625
|
+
const iconPadding = compact ? "p-1.5" : "p-2";
|
|
2626
|
+
const textSize = compact ? "text-xs" : "text-sm";
|
|
2627
|
+
const titleSize = compact ? "text-sm" : "text-base";
|
|
2628
|
+
const gap = compact ? "gap-2.5" : "gap-3";
|
|
2629
|
+
const displayIcon = showIcon ? icon || /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: iconSize }) : null;
|
|
2630
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2631
|
+
"div",
|
|
2632
|
+
{
|
|
2633
|
+
className: `relative flex items-start ${gap} ${padding} rounded-lg overflow-hidden ${styles.bg} ${className}`,
|
|
2634
|
+
children: [
|
|
2635
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2636
|
+
"div",
|
|
2637
|
+
{
|
|
2638
|
+
className: `absolute left-0 top-0 bottom-0 w-1 ${styles.accent}`
|
|
2639
|
+
}
|
|
2640
|
+
),
|
|
2641
|
+
displayIcon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2642
|
+
"div",
|
|
2643
|
+
{
|
|
2644
|
+
className: `flex-shrink-0 ${iconPadding} rounded-lg ${styles.iconBg} ${styles.iconColor}`,
|
|
2645
|
+
children: displayIcon
|
|
2646
|
+
}
|
|
2647
|
+
),
|
|
2648
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
2649
|
+
title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `font-medium ${titleSize} ${styles.titleColor} mb-1`, children: title }),
|
|
2650
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `${textSize} text-muted-foreground leading-relaxed space-y-1 [&>ul]:list-disc [&>ul]:list-outside [&>ul]:pl-3 [&>ol]:list-decimal [&>ol]:list-outside [&>ol]:pl-4`, children })
|
|
2651
|
+
] }),
|
|
2652
|
+
action && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0", children: action })
|
|
2653
|
+
]
|
|
2654
|
+
}
|
|
2655
|
+
);
|
|
2656
|
+
}
|
|
2657
|
+
function InfoNotice(props) {
|
|
2658
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Notice, { variant: "info", ...props });
|
|
2659
|
+
}
|
|
2660
|
+
function WarningNotice(props) {
|
|
2661
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Notice, { variant: "warning", ...props });
|
|
2662
|
+
}
|
|
2663
|
+
function SuccessNotice(props) {
|
|
2664
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Notice, { variant: "success", ...props });
|
|
2665
|
+
}
|
|
2666
|
+
function DangerNotice(props) {
|
|
2667
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Notice, { variant: "danger", ...props });
|
|
2668
|
+
}
|
|
2549
2669
|
function InfoBox({
|
|
2550
2670
|
title,
|
|
2551
2671
|
children,
|
|
2552
2672
|
variant = "default",
|
|
2553
|
-
className = ""
|
|
2673
|
+
className = "",
|
|
2674
|
+
compact = false
|
|
2554
2675
|
}) {
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
Card,
|
|
2676
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2677
|
+
Notice,
|
|
2558
2678
|
{
|
|
2559
|
-
|
|
2560
|
-
|
|
2679
|
+
variant,
|
|
2680
|
+
title,
|
|
2561
2681
|
className,
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground space-y-1 [&>ul]:list-disc [&>ul]:list-outside [&>ul]:pl-3 [&>ol]:list-decimal [&>ol]:list-outside [&>ol]:pl-4", children })
|
|
2565
|
-
]
|
|
2682
|
+
compact,
|
|
2683
|
+
children
|
|
2566
2684
|
}
|
|
2567
2685
|
);
|
|
2568
2686
|
}
|
|
@@ -2776,32 +2894,32 @@ function Switch({
|
|
|
2776
2894
|
const variants = {
|
|
2777
2895
|
default: {
|
|
2778
2896
|
checked: "bg-primary",
|
|
2779
|
-
unchecked: "bg-
|
|
2897
|
+
unchecked: "bg-muted-foreground/40",
|
|
2780
2898
|
ring: "focus:ring-primary"
|
|
2781
2899
|
},
|
|
2782
2900
|
success: {
|
|
2783
2901
|
checked: "bg-success",
|
|
2784
|
-
unchecked: "bg-
|
|
2902
|
+
unchecked: "bg-muted-foreground/40",
|
|
2785
2903
|
ring: "focus:ring-success"
|
|
2786
2904
|
},
|
|
2787
2905
|
danger: {
|
|
2788
2906
|
checked: "bg-destructive",
|
|
2789
|
-
unchecked: "bg-
|
|
2907
|
+
unchecked: "bg-muted-foreground/40",
|
|
2790
2908
|
ring: "focus:ring-destructive"
|
|
2791
2909
|
},
|
|
2792
2910
|
warning: {
|
|
2793
2911
|
checked: "bg-warning",
|
|
2794
|
-
unchecked: "bg-
|
|
2912
|
+
unchecked: "bg-muted-foreground/40",
|
|
2795
2913
|
ring: "focus:ring-warning"
|
|
2796
2914
|
},
|
|
2797
2915
|
info: {
|
|
2798
2916
|
checked: "bg-info",
|
|
2799
|
-
unchecked: "bg-
|
|
2917
|
+
unchecked: "bg-muted-foreground/40",
|
|
2800
2918
|
ring: "focus:ring-info"
|
|
2801
2919
|
},
|
|
2802
2920
|
embedded: {
|
|
2803
2921
|
checked: "bg-success",
|
|
2804
|
-
unchecked: "bg-
|
|
2922
|
+
unchecked: "bg-muted-foreground/40",
|
|
2805
2923
|
ring: "focus:ring-success"
|
|
2806
2924
|
}
|
|
2807
2925
|
};
|
|
@@ -2822,9 +2940,9 @@ function Switch({
|
|
|
2822
2940
|
disabled,
|
|
2823
2941
|
onClick: toggle,
|
|
2824
2942
|
className: `
|
|
2825
|
-
relative inline-flex flex-shrink-0 cursor-pointer rounded-full border-2
|
|
2943
|
+
relative inline-flex flex-shrink-0 cursor-pointer rounded-full border-2
|
|
2826
2944
|
transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 ${currentVariant.ring} focus:ring-offset-2
|
|
2827
|
-
${checked ? currentVariant.checked : currentVariant.unchecked}
|
|
2945
|
+
${checked ? `${currentVariant.checked} border-transparent` : `${currentVariant.unchecked} border-muted-foreground/30`}
|
|
2828
2946
|
${disabled ? "opacity-50 cursor-not-allowed" : ""}
|
|
2829
2947
|
${currentSize.track}
|
|
2830
2948
|
`,
|
|
@@ -3319,7 +3437,7 @@ function ActionButton({
|
|
|
3319
3437
|
return null;
|
|
3320
3438
|
}
|
|
3321
3439
|
};
|
|
3322
|
-
const
|
|
3440
|
+
const variantConfig = getVariantConfig();
|
|
3323
3441
|
const variantClasses5 = {
|
|
3324
3442
|
primary: "btn-primary",
|
|
3325
3443
|
secondary: "btn-secondary",
|
|
@@ -3329,7 +3447,7 @@ function ActionButton({
|
|
|
3329
3447
|
info: "bg-muted text-muted-foreground hover:bg-primary hover:text-primary-foreground border border-ring transition-all duration-300 ease-in-out",
|
|
3330
3448
|
metrics: "bg-purple/10 text-purple hover:bg-purple/20 hover:text-purple-700 border border-purple-200 transition-all duration-300 ease-in-out"
|
|
3331
3449
|
};
|
|
3332
|
-
let variantClass =
|
|
3450
|
+
let variantClass = variantConfig ? variantConfig.className : variant ? variantClasses5[variant] : "";
|
|
3333
3451
|
if (terminalMode && variantClass) {
|
|
3334
3452
|
const hoverMatch = variantClass.match(/hover:text-(\w+)-(\d+)/);
|
|
3335
3453
|
const hoverColor = hoverMatch ? `hover:text-${hoverMatch[1]}-${hoverMatch[2]}` : "hover:text-muted-foreground";
|
|
@@ -3356,13 +3474,13 @@ function ActionButton({
|
|
|
3356
3474
|
}
|
|
3357
3475
|
)
|
|
3358
3476
|
}
|
|
3359
|
-
) : (
|
|
3477
|
+
) : (variantConfig?.icon || IconComponent) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3360
3478
|
"div",
|
|
3361
3479
|
{
|
|
3362
3480
|
className: `${iconSizes[size]} flex items-center justify-center flex-shrink-0`,
|
|
3363
3481
|
"aria-hidden": "true",
|
|
3364
|
-
children:
|
|
3365
|
-
|
|
3482
|
+
children: variantConfig?.icon ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3483
|
+
variantConfig.icon,
|
|
3366
3484
|
{
|
|
3367
3485
|
className: "w-full h-full",
|
|
3368
3486
|
"aria-hidden": "true"
|
|
@@ -3370,11 +3488,11 @@ function ActionButton({
|
|
|
3370
3488
|
) : IconComponent ? /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "w-full h-full", "aria-hidden": "true" }) : null
|
|
3371
3489
|
}
|
|
3372
3490
|
),
|
|
3373
|
-
!iconOnly && (restProps.children ? restProps.children : (
|
|
3491
|
+
!iconOnly && (restProps.children ? restProps.children : (variantConfig?.label || label) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center", children: variantConfig?.label || label }))
|
|
3374
3492
|
] });
|
|
3375
|
-
const accessibleLabel = title || (iconOnly ?
|
|
3376
|
-
const buttonAriaLabel = iconOnly && !accessibleLabel ?
|
|
3377
|
-
const tooltipContent = title || (iconOnly ?
|
|
3493
|
+
const accessibleLabel = title || (iconOnly ? variantConfig?.label || label : void 0);
|
|
3494
|
+
const buttonAriaLabel = iconOnly && !accessibleLabel ? variantConfig?.label || label || "Action button" : accessibleLabel;
|
|
3495
|
+
const tooltipContent = title || (iconOnly ? variantConfig?.label || label : void 0);
|
|
3378
3496
|
const buttonClassName = `
|
|
3379
3497
|
|
|
3380
3498
|
${terminalMode ? "btn-terminal" : `btn ${variantClass} ${paddingClasses3} ${heightClasses[size]} ${className} ${isDisabled ? "opacity-50 cursor-not-allowed" : ""}`}`;
|
|
@@ -3694,6 +3812,7 @@ exports.Button = Button_default;
|
|
|
3694
3812
|
exports.Card = Card;
|
|
3695
3813
|
exports.ConfirmDialog = ConfirmDialog_default;
|
|
3696
3814
|
exports.Container = Container;
|
|
3815
|
+
exports.DangerNotice = DangerNotice;
|
|
3697
3816
|
exports.DataTable = DataTable;
|
|
3698
3817
|
exports.DataTableActions = DataTableActions;
|
|
3699
3818
|
exports.DataTableBody = DataTableBody;
|
|
@@ -3711,10 +3830,12 @@ exports.FormSection = FormSection;
|
|
|
3711
3830
|
exports.Grid = Grid;
|
|
3712
3831
|
exports.IconButtonWithCount = IconButtonWithCount;
|
|
3713
3832
|
exports.InfoBox = InfoBox;
|
|
3833
|
+
exports.InfoNotice = InfoNotice;
|
|
3714
3834
|
exports.Link = Link_default;
|
|
3715
3835
|
exports.LoadingSpinner = LoadingSpinner_default;
|
|
3716
3836
|
exports.MobileSearchLayout = MobileSearchLayout;
|
|
3717
3837
|
exports.Modal = Modal;
|
|
3838
|
+
exports.Notice = Notice;
|
|
3718
3839
|
exports.PageHeader = PageHeader;
|
|
3719
3840
|
exports.RefreshButton = RefreshButton;
|
|
3720
3841
|
exports.SearchCard = SearchCard;
|
|
@@ -3748,10 +3869,12 @@ exports.SmartSelect = SmartSelect;
|
|
|
3748
3869
|
exports.Spinner = Spinner_default;
|
|
3749
3870
|
exports.StatusBadge = StatusBadge;
|
|
3750
3871
|
exports.StickyActionsColumn = StickyActionsColumn;
|
|
3872
|
+
exports.SuccessNotice = SuccessNotice;
|
|
3751
3873
|
exports.Switch = Switch;
|
|
3752
3874
|
exports.Typography = Typography;
|
|
3753
3875
|
exports.VERSION = VERSION;
|
|
3754
3876
|
exports.ViewToggle = ViewToggle;
|
|
3877
|
+
exports.WarningNotice = WarningNotice;
|
|
3755
3878
|
exports.useConfirmDialog = useConfirmDialog;
|
|
3756
3879
|
//# sourceMappingURL=index.js.map
|
|
3757
3880
|
//# sourceMappingURL=index.js.map
|