@gamecp/ui 0.1.13 → 0.1.15

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.js CHANGED
@@ -6,6 +6,8 @@ var ri = require('react-icons/ri');
6
6
  var reactDom = require('react-dom');
7
7
  var framerMotion = require('framer-motion');
8
8
  var NextLink = require('next/link');
9
+ var reactTooltip = require('react-tooltip');
10
+ var nextIntlayer = require('next-intlayer');
9
11
 
10
12
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
13
 
@@ -1350,6 +1352,632 @@ function SkeletonItem({
1350
1352
  }
1351
1353
  );
1352
1354
  }
1355
+ function SkeletonCard({ className = "", children }) {
1356
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `card card-padding ${className}`, children });
1357
+ }
1358
+ function SkeletonTable({
1359
+ rows = 5,
1360
+ columns = 4,
1361
+ className = "",
1362
+ showHeader = true
1363
+ }) {
1364
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `card overflow-hidden ${className}`, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "w-full divide-y divide-border", children: [
1365
+ showHeader && /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-6 py-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-4" }) }, i)) }) }),
1366
+ /* @__PURE__ */ jsxRuntime.jsx("tbody", { className: "table-body-card", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsxRuntime.jsx("tr", { children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-6 py-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1367
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-full", height: "h-4" }),
1368
+ colIndex === 0 && /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-3/4", height: "h-3" })
1369
+ ] }) }, colIndex)) }, rowIndex)) })
1370
+ ] }) }) });
1371
+ }
1372
+ function SkeletonList({
1373
+ items = 5,
1374
+ className = "",
1375
+ itemHeight = "h-20"
1376
+ }) {
1377
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `space-y-4 ${className}`, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "card card-padding-sm", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-4", children: [
1378
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-12", height: "h-12", rounded: true }),
1379
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-2", children: [
1380
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-1/3", height: "h-4" }),
1381
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-1/2", height: "h-3" })
1382
+ ] }),
1383
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex space-x-2", children: [
1384
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-8" }),
1385
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-8" })
1386
+ ] })
1387
+ ] }) }, i)) });
1388
+ }
1389
+ function SkeletonSearchCard({ className = "" }) {
1390
+ return /* @__PURE__ */ jsxRuntime.jsx(SkeletonCard, { className, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
1391
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4", children: [
1392
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1393
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-48", height: "h-6" }),
1394
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-4" })
1395
+ ] }),
1396
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-3", children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-10" }) })
1397
+ ] }),
1398
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col md:flex-row gap-3", children: [
1399
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-full", height: "h-10" }),
1400
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-10" }),
1401
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-10" }),
1402
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-10", height: "h-10" })
1403
+ ] })
1404
+ ] }) });
1405
+ }
1406
+ function SkeletonGameServerCard({
1407
+ className = ""
1408
+ }) {
1409
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1410
+ "div",
1411
+ {
1412
+ className: `card overflow-hidden h-[380px] flex flex-col ${className}`,
1413
+ children: [
1414
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative px-5 py-4 border-b border-border bg-muted overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center space-x-3 relative z-10", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
1415
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-6", className: "mb-2" }),
1416
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-1", children: [
1417
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-4", height: "h-4", rounded: true }),
1418
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-4" })
1419
+ ] })
1420
+ ] }) }) }),
1421
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative px-4 py-3 pt-0 flex-grow", children: [
1422
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative p-2", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-3 grid-cols-3", children: [
1423
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1424
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mb-1 w-16 h-16 rounded-full border-4 border-border animate-pulse" }),
1425
+ /* @__PURE__ */ jsxRuntime.jsx(
1426
+ SkeletonItem,
1427
+ {
1428
+ width: "w-12",
1429
+ height: "h-3",
1430
+ className: "mx-auto mb-1"
1431
+ }
1432
+ ),
1433
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3", className: "mx-auto" })
1434
+ ] }),
1435
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1436
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mb-1 w-16 h-16 rounded-full border-4 border-border animate-pulse" }),
1437
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3", className: "mx-auto mb-1" }),
1438
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-6", height: "h-3", className: "mx-auto" })
1439
+ ] }),
1440
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1441
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mb-1 w-16 h-16 rounded-full border-4 border-border animate-pulse" }),
1442
+ /* @__PURE__ */ jsxRuntime.jsx(
1443
+ SkeletonItem,
1444
+ {
1445
+ width: "w-12",
1446
+ height: "h-3",
1447
+ className: "mx-auto mb-1"
1448
+ }
1449
+ ),
1450
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3", className: "mx-auto" })
1451
+ ] })
1452
+ ] }) }),
1453
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-border pt-4 space-y-1", children: [
1454
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1455
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" }),
1456
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1457
+ ] }),
1458
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1459
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-12", height: "h-3" }),
1460
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" })
1461
+ ] }),
1462
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1463
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3" }),
1464
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1465
+ ] }),
1466
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1467
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3" }),
1468
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" })
1469
+ ] }),
1470
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1471
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3" }),
1472
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1473
+ ] })
1474
+ ] })
1475
+ ] }),
1476
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 py-3 bg-card border-t border-border", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1477
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center space-x-2", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
1478
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1479
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1480
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true })
1481
+ ] }) }),
1482
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
1483
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1484
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1485
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true })
1486
+ ] })
1487
+ ] }) })
1488
+ ]
1489
+ }
1490
+ );
1491
+ }
1492
+ function SkeletonGameCard({ className = "" }) {
1493
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `card card-padding-sm ${className}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-4", children: [
1494
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-12", height: "h-12", rounded: true }),
1495
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-2", children: [
1496
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-40", height: "h-4" }),
1497
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-64", height: "h-3" })
1498
+ ] }),
1499
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
1500
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-6", rounded: true }),
1501
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-6", rounded: true })
1502
+ ] })
1503
+ ] }) });
1504
+ }
1505
+ function SkeletonUserCard({ className = "" }) {
1506
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `card card-padding-sm ${className}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-4", children: [
1507
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-12", height: "h-12", rounded: true }),
1508
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-2", children: [
1509
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-4" }),
1510
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-40", height: "h-3" })
1511
+ ] }),
1512
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
1513
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-6", rounded: true }),
1514
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-6", rounded: true })
1515
+ ] })
1516
+ ] }) });
1517
+ }
1518
+ function SkeletonNodeCard({ className = "" }) {
1519
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `card overflow-hidden min-h-[320px] ${className}`, children: [
1520
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 py-3 border-b border-border bg-muted", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1521
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3", children: [
1522
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8" }),
1523
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1524
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-5", className: "mb-1" }),
1525
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-4", className: "mb-1" }),
1526
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1527
+ ] })
1528
+ ] }),
1529
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-6", rounded: true })
1530
+ ] }) }),
1531
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-3", children: [
1532
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-3 gap-4 mb-4", children: [
1533
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1534
+ /* @__PURE__ */ jsxRuntime.jsx(
1535
+ SkeletonItem,
1536
+ {
1537
+ width: "w-16",
1538
+ height: "h-16",
1539
+ rounded: true,
1540
+ className: "mx-auto mb-1"
1541
+ }
1542
+ ),
1543
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3", className: "mx-auto mb-1" }),
1544
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-6", height: "h-3", className: "mx-auto" })
1545
+ ] }),
1546
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1547
+ /* @__PURE__ */ jsxRuntime.jsx(
1548
+ SkeletonItem,
1549
+ {
1550
+ width: "w-16",
1551
+ height: "h-16",
1552
+ rounded: true,
1553
+ className: "mx-auto mb-1"
1554
+ }
1555
+ ),
1556
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3", className: "mx-auto mb-1" }),
1557
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-6", height: "h-3", className: "mx-auto" })
1558
+ ] }),
1559
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1560
+ /* @__PURE__ */ jsxRuntime.jsx(
1561
+ SkeletonItem,
1562
+ {
1563
+ width: "w-16",
1564
+ height: "h-16",
1565
+ rounded: true,
1566
+ className: "mx-auto mb-1"
1567
+ }
1568
+ ),
1569
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-12", height: "h-3", className: "mx-auto mb-1" }),
1570
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3", className: "mx-auto" })
1571
+ ] })
1572
+ ] }),
1573
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-muted rounded-lg p-3 mb-4", children: [
1574
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-2", children: [
1575
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-4" }),
1576
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-4" })
1577
+ ] }),
1578
+ /* @__PURE__ */ jsxRuntime.jsx(
1579
+ SkeletonItem,
1580
+ {
1581
+ width: "w-full",
1582
+ height: "h-2",
1583
+ rounded: true,
1584
+ className: "mb-1"
1585
+ }
1586
+ ),
1587
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-3" })
1588
+ ] }),
1589
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-muted-foreground mb-3", children: [
1590
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between mb-1", children: [
1591
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-12", height: "h-3" }),
1592
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" })
1593
+ ] }),
1594
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1595
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" }),
1596
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1597
+ ] })
1598
+ ] }),
1599
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end items-center pt-3 border-t border-border", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex space-x-2", children: [
1600
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-8", rounded: true }),
1601
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1602
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true })
1603
+ ] }) })
1604
+ ] })
1605
+ ] });
1606
+ }
1607
+ function SkeletonTenantCard({ className = "" }) {
1608
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `card card-padding-sm ${className}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-4", children: [
1609
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-12", height: "h-12", rounded: true }),
1610
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-2", children: [
1611
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-40", height: "h-4" }),
1612
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-56", height: "h-3" })
1613
+ ] }),
1614
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
1615
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-28", height: "h-6", rounded: true }),
1616
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-6", rounded: true })
1617
+ ] })
1618
+ ] }) });
1619
+ }
1620
+ function SkeletonStats({ className = "" }) {
1621
+ return /* @__PURE__ */ jsxRuntime.jsx(
1622
+ "div",
1623
+ {
1624
+ className: `grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 ${className}`,
1625
+ children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "card card-padding", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
1626
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-4" }),
1627
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-8" }),
1628
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-3" })
1629
+ ] }) }, i))
1630
+ }
1631
+ );
1632
+ }
1633
+ function SkeletonRecentActivity({
1634
+ items = 5,
1635
+ className = ""
1636
+ }) {
1637
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `space-y-4 ${className}`, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3", children: [
1638
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1639
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-2", children: [
1640
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-full", height: "h-4" }),
1641
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-1/2", height: "h-3" })
1642
+ ] }),
1643
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-4" })
1644
+ ] }, i)) });
1645
+ }
1646
+ function SkeletonForm({
1647
+ fields = 4,
1648
+ className = ""
1649
+ }) {
1650
+ return /* @__PURE__ */ jsxRuntime.jsx(SkeletonCard, { className, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
1651
+ Array.from({ length: fields }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1652
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-4" }),
1653
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-full", height: "h-10" })
1654
+ ] }, i)),
1655
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end space-x-3 pt-4", children: [
1656
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-10" }),
1657
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-10" })
1658
+ ] })
1659
+ ] }) });
1660
+ }
1661
+ function SkeletonGameServerCards({
1662
+ items = 4,
1663
+ className = ""
1664
+ }) {
1665
+ return /* @__PURE__ */ jsxRuntime.jsx(
1666
+ "div",
1667
+ {
1668
+ className: `grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-4 gap-6 ${className}`,
1669
+ children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(SkeletonGameServerCard, {}, i))
1670
+ }
1671
+ );
1672
+ }
1673
+ function SkeletonNodeCards({
1674
+ items = 3,
1675
+ className = ""
1676
+ }) {
1677
+ return /* @__PURE__ */ jsxRuntime.jsx(
1678
+ "div",
1679
+ {
1680
+ className: `grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-4 gap-6 ${className}`,
1681
+ children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(SkeletonNodeCard, {}, i))
1682
+ }
1683
+ );
1684
+ }
1685
+ function SkeletonNodeTable({
1686
+ items = 3,
1687
+ className = ""
1688
+ }) {
1689
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `space-y-4 ${className}`, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "card overflow-hidden", children: [
1690
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-6 py-4 border-b border-border bg-muted", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1691
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-4", children: [
1692
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8" }),
1693
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1694
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-5", className: "mb-1" }),
1695
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-28", height: "h-4", className: "mb-1" }),
1696
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1697
+ ] })
1698
+ ] }),
1699
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-4", children: [
1700
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
1701
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-6", height: "h-6", className: "mr-2" }),
1702
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-4" })
1703
+ ] }),
1704
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-6", rounded: true })
1705
+ ] })
1706
+ ] }) }),
1707
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-6 py-4", children: [
1708
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-4 gap-6", children: [
1709
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lg:col-span-2", children: [
1710
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-4", className: "mb-3" }),
1711
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start space-x-6", children: Array.from({ length: 3 }).map((_2, chartIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1712
+ /* @__PURE__ */ jsxRuntime.jsx(
1713
+ SkeletonItem,
1714
+ {
1715
+ width: "w-14",
1716
+ height: "h-14",
1717
+ rounded: true,
1718
+ className: "mx-auto mb-1"
1719
+ }
1720
+ ),
1721
+ /* @__PURE__ */ jsxRuntime.jsx(
1722
+ SkeletonItem,
1723
+ {
1724
+ width: "w-8",
1725
+ height: "h-3",
1726
+ className: "mx-auto mb-1"
1727
+ }
1728
+ ),
1729
+ /* @__PURE__ */ jsxRuntime.jsx(
1730
+ SkeletonItem,
1731
+ {
1732
+ width: "w-10",
1733
+ height: "h-3",
1734
+ className: "mx-auto"
1735
+ }
1736
+ )
1737
+ ] }, chartIndex)) })
1738
+ ] }),
1739
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1740
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-4", className: "mb-3" }),
1741
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1742
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-12", height: "h-5" }),
1743
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1744
+ ] })
1745
+ ] }),
1746
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1747
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-4", className: "mb-3" }),
1748
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1749
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1750
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-12", height: "h-3" }),
1751
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" })
1752
+ ] }),
1753
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1754
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" }),
1755
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1756
+ ] })
1757
+ ] })
1758
+ ] })
1759
+ ] }),
1760
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end items-center pt-4 border-t border-border mt-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex space-x-2", children: [
1761
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-8", rounded: true }),
1762
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1763
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true })
1764
+ ] }) })
1765
+ ] })
1766
+ ] }, i)) });
1767
+ }
1768
+ function SkeletonGameServerTable({
1769
+ items = 3,
1770
+ className = ""
1771
+ }) {
1772
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `space-y-4 ${className}`, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs(
1773
+ "div",
1774
+ {
1775
+ className: "card overflow-hidden min-h-[200px] flex flex-col",
1776
+ children: [
1777
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative px-5 py-4 border-b border-border bg-muted overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center space-x-3 relative z-10", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
1778
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-6", className: "mb-2" }),
1779
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-1", children: [
1780
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-4", height: "h-4", rounded: true }),
1781
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-4" })
1782
+ ] })
1783
+ ] }) }) }),
1784
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative px-4 py-3 pt-0 flex-grow", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col md:flex-row items-start md:items-center gap-4 md:gap-8", children: [
1785
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 w-full md:w-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-2 grid-cols-3", children: [
1786
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1787
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mb-1 w-16 h-16 rounded-full border-4 border-border animate-pulse" }),
1788
+ /* @__PURE__ */ jsxRuntime.jsx(
1789
+ SkeletonItem,
1790
+ {
1791
+ width: "w-12",
1792
+ height: "h-3",
1793
+ className: "mx-auto mb-1"
1794
+ }
1795
+ ),
1796
+ /* @__PURE__ */ jsxRuntime.jsx(
1797
+ SkeletonItem,
1798
+ {
1799
+ width: "w-8",
1800
+ height: "h-3",
1801
+ className: "mx-auto"
1802
+ }
1803
+ )
1804
+ ] }),
1805
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1806
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mb-1 w-16 h-16 rounded-full border-4 border-border animate-pulse" }),
1807
+ /* @__PURE__ */ jsxRuntime.jsx(
1808
+ SkeletonItem,
1809
+ {
1810
+ width: "w-8",
1811
+ height: "h-3",
1812
+ className: "mx-auto mb-1"
1813
+ }
1814
+ ),
1815
+ /* @__PURE__ */ jsxRuntime.jsx(
1816
+ SkeletonItem,
1817
+ {
1818
+ width: "w-6",
1819
+ height: "h-3",
1820
+ className: "mx-auto"
1821
+ }
1822
+ )
1823
+ ] }),
1824
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1825
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mb-1 w-16 h-16 rounded-full border-4 border-border animate-pulse" }),
1826
+ /* @__PURE__ */ jsxRuntime.jsx(
1827
+ SkeletonItem,
1828
+ {
1829
+ width: "w-12",
1830
+ height: "h-3",
1831
+ className: "mx-auto mb-1"
1832
+ }
1833
+ ),
1834
+ /* @__PURE__ */ jsxRuntime.jsx(
1835
+ SkeletonItem,
1836
+ {
1837
+ width: "w-8",
1838
+ height: "h-3",
1839
+ className: "mx-auto"
1840
+ }
1841
+ )
1842
+ ] })
1843
+ ] }) }),
1844
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm text-muted-foreground flex-1 w-full grid grid-cols-1 md:grid-cols-2 gap-x-6 gap-y-1", children: [
1845
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1846
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" }),
1847
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1848
+ ] }),
1849
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1850
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-12", height: "h-3" }),
1851
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" })
1852
+ ] }),
1853
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1854
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3" }),
1855
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1856
+ ] }),
1857
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1858
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3" }),
1859
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" })
1860
+ ] }),
1861
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1862
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3" }),
1863
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" })
1864
+ ] }),
1865
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
1866
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3" }),
1867
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" })
1868
+ ] })
1869
+ ] })
1870
+ ] }) }),
1871
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 py-3 bg-card border-t border-border", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1872
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center space-x-2", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
1873
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1874
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1875
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true })
1876
+ ] }) }),
1877
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
1878
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1879
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1880
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true })
1881
+ ] })
1882
+ ] }) })
1883
+ ]
1884
+ },
1885
+ i
1886
+ )) });
1887
+ }
1888
+ function SkeletonGamesTable({
1889
+ items = 3,
1890
+ className = ""
1891
+ }) {
1892
+ return /* @__PURE__ */ jsxRuntime.jsx(
1893
+ "div",
1894
+ {
1895
+ className: `overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg ${className}`,
1896
+ children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "min-w-full divide-y divide-gray-300", children: [
1897
+ /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "bg-muted", children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
1898
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Game" }),
1899
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Type" }),
1900
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Port" }),
1901
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Mode" }),
1902
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Status" }),
1903
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-6 py-3 text-left text-xs font-medium text-muted-foreground uppercase tracking-wider", children: "Created" }),
1904
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-2 py-1 rounded-md bg-muted backdrop-blur-sm text-center text-xs font-medium text-muted-foreground uppercase tracking-wider sticky right-0", children: "Actions" })
1905
+ ] }) }),
1906
+ /* @__PURE__ */ jsxRuntime.jsx("tbody", { className: "table-body-card", children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "hover:bg-muted", children: [
1907
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
1908
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 h-10 w-10", children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-10", height: "h-10", rounded: true }) }),
1909
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-4 min-w-0 flex-1", children: [
1910
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-4", className: "mb-1" }),
1911
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-48", height: "h-3" })
1912
+ ] })
1913
+ ] }) }),
1914
+ /* @__PURE__ */ jsxRuntime.jsxs("td", { className: "px-6 py-4 whitespace-nowrap", children: [
1915
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-4", className: "mb-1" }),
1916
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-3" })
1917
+ ] }),
1918
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
1919
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-6", rounded: true }),
1920
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-3" })
1921
+ ] }) }),
1922
+ /* @__PURE__ */ jsxRuntime.jsxs("td", { className: "px-6 py-4 whitespace-nowrap", children: [
1923
+ /* @__PURE__ */ jsxRuntime.jsx(
1924
+ SkeletonItem,
1925
+ {
1926
+ width: "w-16",
1927
+ height: "h-6",
1928
+ rounded: true,
1929
+ className: "mb-1"
1930
+ }
1931
+ ),
1932
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-3" })
1933
+ ] }),
1934
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-6", rounded: true }) }),
1935
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-6 py-4 whitespace-nowrap text-sm text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-4" }) }),
1936
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "px-6 py-4 whitespace-nowrap text-right text-sm font-medium sticky right-0 bg-card", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end space-x-1", children: [
1937
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1938
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1939
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1940
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true })
1941
+ ] }) })
1942
+ ] }, i)) })
1943
+ ] })
1944
+ }
1945
+ );
1946
+ }
1947
+ function SkeletonEnvironmentsList({
1948
+ items = 3,
1949
+ className = ""
1950
+ }) {
1951
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `space-y-4 ${className}`, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "card p-3", children: [
1952
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 border-b border-border", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1953
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3 w-full", children: [
1954
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-5", height: "h-5" }),
1955
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between w-full pr-6 md:pr-12", children: [
1956
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
1957
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
1958
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-5" }),
1959
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-16", height: "h-5", rounded: true })
1960
+ ] }),
1961
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-48", height: "h-3" })
1962
+ ] }),
1963
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-20", height: "h-3" }) })
1964
+ ] })
1965
+ ] }),
1966
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center space-x-2", children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }) })
1967
+ ] }) }),
1968
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-6", children: Array.from({ length: 2 + i % 3 }).map((_2, varIndex) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 last:mb-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-12 gap-4 items-center", children: [
1969
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-5", children: [
1970
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-32", height: "h-4", className: "mb-1" }),
1971
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-48", height: "h-3" })
1972
+ ] }),
1973
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-5 flex items-center space-x-2", children: [
1974
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }),
1975
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-24", height: "h-4" })
1976
+ ] }),
1977
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-2 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(SkeletonItem, { width: "w-8", height: "h-8", rounded: true }) })
1978
+ ] }) }, varIndex)) })
1979
+ ] }, i)) });
1980
+ }
1353
1981
  function FormInput({
1354
1982
  label,
1355
1983
  name,
@@ -1881,6 +2509,29 @@ function Grid({
1881
2509
  };
1882
2510
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `grid ${colClasses[cols]} ${gapClasses[gap]} ${className}`, children });
1883
2511
  }
2512
+ var variantStyles = {
2513
+ default: "bg-accent border-border text-muted-foreground",
2514
+ warning: "bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-800 text-yellow-700 dark:text-yellow-300",
2515
+ info: "bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800 text-blue-700 dark:text-blue-300",
2516
+ success: "bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800 text-green-700 dark:text-green-300"
2517
+ };
2518
+ var titleStyles = {
2519
+ default: "text-foreground",
2520
+ warning: "text-yellow-800 dark:text-yellow-200",
2521
+ info: "text-blue-800 dark:text-blue-200",
2522
+ success: "text-green-800 dark:text-green-200"
2523
+ };
2524
+ function InfoBox({
2525
+ title,
2526
+ children,
2527
+ variant = "default",
2528
+ className = ""
2529
+ }) {
2530
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `border rounded-md p-4 ${variantStyles[variant]} ${className}`, children: [
2531
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: `font-medium mb-2 ${titleStyles[variant]}`, children: title }),
2532
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm space-y-1 [&>ul]:list-disc [&>ul]:list-outside [&>ul]:pl-3 [&>ol]:list-decimal [&>ol]:list-outside [&>ol]:pl-4", children })
2533
+ ] });
2534
+ }
1884
2535
  var variantClasses3 = {
1885
2536
  default: "text-foreground hover:text-primary",
1886
2537
  primary: "text-primary hover:text-primary/80",
@@ -2059,30 +2710,889 @@ function Typography({
2059
2710
  const classes = `${variantClasses4[variant]} ${sizeClasses4[size]} ${className}`;
2060
2711
  return /* @__PURE__ */ jsxRuntime.jsx(Element, { className: classes, children });
2061
2712
  }
2713
+ var Spinner = ({
2714
+ size = "md",
2715
+ color = "primary",
2716
+ className = ""
2717
+ }) => {
2718
+ const sizeClasses5 = {
2719
+ sm: "h-4 w-4",
2720
+ md: "h-8 w-8",
2721
+ lg: "h-12 w-12",
2722
+ xl: "h-16 w-16"
2723
+ };
2724
+ const colorClasses2 = {
2725
+ primary: "border-primary-600",
2726
+ blue: "border-ring",
2727
+ white: "border-white",
2728
+ current: "border-current"
2729
+ };
2730
+ const baseClasses = "animate-spin rounded-full border-2 border-t-transparent";
2731
+ const sizeClass = sizeClasses5[size];
2732
+ const colorClass = colorClasses2[color];
2733
+ const finalClasses = `${baseClasses} ${sizeClass} ${colorClass} ${className}`.trim();
2734
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: finalClasses });
2735
+ };
2736
+ var Spinner_default = Spinner;
2737
+ function DataTable({
2738
+ children,
2739
+ className = "",
2740
+ containerClassName = "",
2741
+ stickyActions = false
2742
+ }) {
2743
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `card overflow-hidden ${containerClassName}`, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
2744
+ "table",
2745
+ {
2746
+ role: "table",
2747
+ "aria-label": "Data table",
2748
+ className: `w-full divide-y divide-border ${className} ${stickyActions ? "relative" : ""}`,
2749
+ children
2750
+ }
2751
+ ) }) });
2752
+ }
2753
+ function DataTableHeader({
2754
+ children,
2755
+ className = ""
2756
+ }) {
2757
+ return /* @__PURE__ */ jsxRuntime.jsx("thead", { className: `bg-muted ${className}`, children });
2758
+ }
2759
+ function DataTableBody({
2760
+ children,
2761
+ className = ""
2762
+ }) {
2763
+ return /* @__PURE__ */ jsxRuntime.jsx("tbody", { className: `table-body-card ${className}`, children });
2764
+ }
2765
+ function DataTableRow({
2766
+ children,
2767
+ className = "",
2768
+ onClick,
2769
+ hover = true
2770
+ }) {
2771
+ const baseClasses = "hover:bg-muted transition-colors duration-150";
2772
+ const clickableClasses = onClick ? "cursor-pointer" : "";
2773
+ const hoverClasses = hover ? baseClasses : "";
2774
+ return /* @__PURE__ */ jsxRuntime.jsx(
2775
+ "tr",
2776
+ {
2777
+ className: `${hoverClasses} ${clickableClasses} ${className}`,
2778
+ onClick,
2779
+ children
2780
+ }
2781
+ );
2782
+ }
2783
+ function DataTableHeaderCell({
2784
+ children,
2785
+ className = "",
2786
+ align = "left",
2787
+ padding = "md",
2788
+ sticky,
2789
+ stickyOffset = 0
2790
+ }) {
2791
+ const alignClasses = {
2792
+ left: "text-left",
2793
+ center: "text-center",
2794
+ right: "text-right"
2795
+ };
2796
+ const paddingClasses3 = {
2797
+ sm: "px-3 py-2",
2798
+ md: "px-6 py-3",
2799
+ lg: "px-8 py-4"
2800
+ };
2801
+ const stickyClasses = sticky ? `sticky ${sticky === "left" ? "left-0" : "right-0"} z-10` : "";
2802
+ const stickyOffsetClasses = sticky && stickyOffset > 0 ? sticky === "left" ? `left-${stickyOffset}` : `right-${stickyOffset}` : "";
2803
+ const stickyStyling = "";
2804
+ return /* @__PURE__ */ jsxRuntime.jsx(
2805
+ "th",
2806
+ {
2807
+ scope: "col",
2808
+ className: `${paddingClasses3[padding]} ${alignClasses[align]} text-xs font-medium text-muted-foreground uppercase tracking-wider ${stickyClasses} ${stickyOffsetClasses} ${stickyStyling} ${className}`,
2809
+ children
2810
+ }
2811
+ );
2812
+ }
2813
+ function DataTableCell({
2814
+ children,
2815
+ className = "",
2816
+ align = "left",
2817
+ padding = "md",
2818
+ sticky,
2819
+ stickyOffset = 0
2820
+ }) {
2821
+ const alignClasses = {
2822
+ left: "text-left",
2823
+ center: "text-center",
2824
+ right: "text-right"
2825
+ };
2826
+ const paddingClasses3 = {
2827
+ sm: "px-3 py-2",
2828
+ md: "px-6 py-4",
2829
+ lg: "px-8 py-6"
2830
+ };
2831
+ const stickyClasses = sticky ? `sticky ${sticky === "left" ? "left-0" : "right-0"} z-10` : "";
2832
+ const stickyOffsetClasses = sticky && stickyOffset > 0 ? sticky === "left" ? `left-${stickyOffset}` : `right-${stickyOffset}` : "";
2833
+ const stickyStyling = "";
2834
+ return /* @__PURE__ */ jsxRuntime.jsx(
2835
+ "td",
2836
+ {
2837
+ className: `${paddingClasses3[padding]} whitespace-nowrap ${alignClasses[align]} text-sm ${stickyClasses} ${stickyOffsetClasses} ${stickyStyling} ${className}`,
2838
+ children
2839
+ }
2840
+ );
2841
+ }
2842
+ function DataTableEmptyState({
2843
+ icon: Icon,
2844
+ title,
2845
+ description,
2846
+ action,
2847
+ variant = "table"
2848
+ }) {
2849
+ const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2850
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "w-20 h-20 text-primary-500 mx-auto mb-4" }),
2851
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-medium text-foreground mb-2", children: title }),
2852
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground mb-6", children: description }),
2853
+ action && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: action })
2854
+ ] });
2855
+ if (variant === "div") {
2856
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "card card-padding text-center lg:p-24", children: content });
2857
+ }
2858
+ return /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx("td", { colSpan: 100, className: "px-6 py-12 text-center", children: content }) });
2859
+ }
2860
+ function DataTableLoadingState({
2861
+ message = "Loading...",
2862
+ rows = 5,
2863
+ columns = 4
2864
+ }) {
2865
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "card card-padding", children: [
2866
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center mb-4", children: [
2867
+ /* @__PURE__ */ jsxRuntime.jsx(Spinner_default, { size: "md", color: "primary", className: "mx-auto mb-2" }),
2868
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: message })
2869
+ ] }),
2870
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonTable, { rows, columns, showHeader: false })
2871
+ ] });
2872
+ }
2873
+ function StatusBadge({
2874
+ status,
2875
+ variant = "default"
2876
+ }) {
2877
+ const variantClasses5 = {
2878
+ default: "bg-muted text-muted-foreground",
2879
+ success: "bg-success text-success-dark",
2880
+ warning: "bg-yellow-100 text-yellow-800",
2881
+ error: "bg-red-100 text-red-800",
2882
+ info: "bg-primary-100 text-primary-800"
2883
+ };
2884
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: `badge ${variantClasses5[variant]}`, children: status });
2885
+ }
2886
+ function DataTableActions({
2887
+ children,
2888
+ className = "",
2889
+ enhanced = false
2890
+ }) {
2891
+ const baseClasses = "flex items-center justify-end space-x-2 dt-actions";
2892
+ const enhancedClasses = enhanced ? "px-2 py-1 rounded-md bg-card backdrop-blur-sm" : "";
2893
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${baseClasses} ${enhancedClasses} ${className}`, children });
2894
+ }
2895
+ function StickyActionsColumn({
2896
+ children,
2897
+ className = ""
2898
+ }) {
2899
+ return /* @__PURE__ */ jsxRuntime.jsx(
2900
+ "div",
2901
+ {
2902
+ className: `border-l border-border shadow-[-1px_0_3px_-1px_rgba(0,0,0,0.02)] ${className}`,
2903
+ children
2904
+ }
2905
+ );
2906
+ }
2907
+ function SharedTooltip({
2908
+ id,
2909
+ place = "top",
2910
+ offset = 8,
2911
+ delayShow = 200,
2912
+ delayHide = 100,
2913
+ className = "",
2914
+ style = {},
2915
+ children
2916
+ }) {
2917
+ return /* @__PURE__ */ jsxRuntime.jsx(
2918
+ reactTooltip.Tooltip,
2919
+ {
2920
+ id,
2921
+ place,
2922
+ offset,
2923
+ delayShow,
2924
+ delayHide,
2925
+ className: `!bg-popover !text-popover-foreground !border !border-border !shadow-md !text-xs !px-2 !py-1 !rounded-md z-50 ${className}`,
2926
+ style,
2927
+ positionStrategy: "fixed",
2928
+ render: children ? () => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children }) : void 0
2929
+ }
2930
+ );
2931
+ }
2932
+ function CountBadge({
2933
+ count,
2934
+ className = "",
2935
+ size = "sm",
2936
+ variant = "primary"
2937
+ }) {
2938
+ const sizeClasses5 = {
2939
+ sm: "text-xs px-1.5 py-0.5 min-w-[18px]",
2940
+ md: "text-sm px-2 py-1 min-w-[20px]",
2941
+ lg: "text-base px-2.5 py-1.5 min-w-[24px]"
2942
+ };
2943
+ const variantClasses5 = {
2944
+ primary: "bg-ring ",
2945
+ secondary: "bg-muted0 ",
2946
+ success: "bg-green-500 ",
2947
+ warning: "bg-yellow-500 ",
2948
+ error: "bg-red-500 "
2949
+ };
2950
+ if (count <= 0) return null;
2951
+ return /* @__PURE__ */ jsxRuntime.jsx(
2952
+ "span",
2953
+ {
2954
+ "aria-label": `Count: ${count}`,
2955
+ className: `${sizeClasses5[size]} ${variantClasses5[variant]} rounded-full text-center font-medium ${className}`,
2956
+ children: count
2957
+ }
2958
+ );
2959
+ }
2960
+ function ClearButton({
2961
+ onClick,
2962
+ className = "",
2963
+ size = "sm",
2964
+ variant = "overlay",
2965
+ tooltipId,
2966
+ tooltipContent = "Clear"
2967
+ }) {
2968
+ const sizeClasses5 = {
2969
+ sm: "w-4 h-4",
2970
+ md: "w-5 h-5",
2971
+ lg: "w-6 h-6"
2972
+ };
2973
+ const iconSizeClasses2 = {
2974
+ sm: "w-3 h-3",
2975
+ md: "w-4 h-4",
2976
+ lg: "w-5 h-5"
2977
+ };
2978
+ const variantClasses5 = {
2979
+ overlay: "absolute -top-1 -right-1 bg-red-500 rounded-full flex items-center justify-center hover:bg-red-600 transition-colors cursor-pointer",
2980
+ inline: "bg-red-500 rounded-full flex items-center justify-center hover:bg-red-600 transition-colors",
2981
+ ghost: "text-muted-foreground hover:text-muted-foreground transition-colors"
2982
+ };
2983
+ const baseProps = {
2984
+ onClick: (e) => {
2985
+ e.stopPropagation();
2986
+ onClick(e);
2987
+ },
2988
+ className: `${sizeClasses5[size]} ${variantClasses5[variant]} ${className}`,
2989
+ title: tooltipContent
2990
+ };
2991
+ const tooltipProps = tooltipId ? {
2992
+ "data-tooltip-id": tooltipId,
2993
+ "data-tooltip-content": tooltipContent
2994
+ } : {};
2995
+ const Element = variant === "overlay" ? "span" : "button";
2996
+ return /* @__PURE__ */ jsxRuntime.jsx(Element, { ...baseProps, ...tooltipProps, children: /* @__PURE__ */ jsxRuntime.jsx(ri.RiCloseLine, { className: iconSizeClasses2[size] }) });
2997
+ }
2998
+ function IconButtonWithCount({
2999
+ icon,
3000
+ label,
3001
+ count = 0,
3002
+ onClick,
3003
+ onClear,
3004
+ showLabel = true,
3005
+ className = "",
3006
+ buttonClassName = "",
3007
+ countVariant = "primary",
3008
+ clearVariant = "overlay",
3009
+ tooltipId,
3010
+ tooltipContent,
3011
+ clearTooltipId,
3012
+ clearTooltipContent = "Clear"
3013
+ }) {
3014
+ const hasActiveCount = count > 0;
3015
+ const shouldShowLabel = showLabel && !hasActiveCount;
3016
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3017
+ "button",
3018
+ {
3019
+ onClick,
3020
+ className: `btn-alt btn-md flex items-center space-x-1 relative ${buttonClassName} ${className}`,
3021
+ "data-tooltip-id": tooltipId,
3022
+ "data-tooltip-content": tooltipContent,
3023
+ children: [
3024
+ icon,
3025
+ shouldShowLabel && label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:inline", children: label }),
3026
+ hasActiveCount && /* @__PURE__ */ jsxRuntime.jsx(CountBadge, { count, variant: countVariant }),
3027
+ hasActiveCount && onClear && /* @__PURE__ */ jsxRuntime.jsx(
3028
+ ClearButton,
3029
+ {
3030
+ onClick: onClear,
3031
+ variant: clearVariant,
3032
+ tooltipId: clearTooltipId,
3033
+ tooltipContent: clearTooltipContent
3034
+ }
3035
+ )
3036
+ ]
3037
+ }
3038
+ );
3039
+ }
3040
+ function ActionButton({
3041
+ icon: IconComponent,
3042
+ label,
3043
+ onClick,
3044
+ href,
3045
+ disabled = false,
3046
+ size = "md",
3047
+ iconOnly = false,
3048
+ className = "",
3049
+ title,
3050
+ tooltipId,
3051
+ tooltipPlace = "bottom",
3052
+ tooltipOffset = 12,
3053
+ tooltipDelayShow = 200,
3054
+ tooltipDelayHide = 100,
3055
+ type = "button",
3056
+ variant,
3057
+ terminalMode = false,
3058
+ fill = false,
3059
+ loading: externalLoading,
3060
+ // Extract loading prop to prevent it from being passed to DOM
3061
+ loadingIcon: LoadingIconComponent,
3062
+ // Custom loading icon
3063
+ disableLoadingSpin = false,
3064
+ // Disable spin animation for custom loading icons
3065
+ ...restProps
3066
+ }) {
3067
+ const [loading, setLoading] = React4.useState(false);
3068
+ const handleClick = React4.useCallback(async () => {
3069
+ if (onClick && !disabled && !loading) {
3070
+ setLoading(true);
3071
+ try {
3072
+ await onClick();
3073
+ } catch (error) {
3074
+ console.error("ActionButton onClick error:", error);
3075
+ } finally {
3076
+ setLoading(false);
3077
+ }
3078
+ }
3079
+ }, [onClick, disabled, loading]);
3080
+ const iconSizes = {
3081
+ sm: terminalMode ? "w-4 h-4" : "w-4 h-4",
3082
+ md: terminalMode ? "w-4 h-4" : "w-4 h-4",
3083
+ lg: terminalMode ? "w-5 h-5" : "w-5 h-5"
3084
+ };
3085
+ const heightClasses = {
3086
+ sm: terminalMode ? "" : "btn-sm",
3087
+ md: terminalMode ? "" : "btn-md",
3088
+ lg: terminalMode ? "" : "btn-lg"
3089
+ };
3090
+ const paddingClasses3 = iconOnly ? terminalMode ? "" : "p-2" : "px-3 py-1.5";
3091
+ const t = nextIntlayer.useIntlayer("action-button");
3092
+ const getVariantConfig = () => {
3093
+ switch (variant) {
3094
+ case "edit":
3095
+ return {
3096
+ icon: fill ? ri.RiEditFill : ri.RiEditLine,
3097
+ label: t.edit,
3098
+ className: "btn-secondary"
3099
+ };
3100
+ case "delete":
3101
+ return {
3102
+ icon: fill ? ri.RiDeleteBinFill : ri.RiDeleteBinLine,
3103
+ label: t.delete,
3104
+ className: "btn-danger"
3105
+ };
3106
+ case "deactivate":
3107
+ return {
3108
+ icon: fill ? ri.RiStopCircleFill : ri.RiStopCircleLine,
3109
+ label: t.deactivate,
3110
+ 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"
3111
+ };
3112
+ case "activate":
3113
+ return {
3114
+ icon: fill ? ri.RiPlayCircleFill : ri.RiPlayCircleLine,
3115
+ label: t.activate,
3116
+ className: "bg-emerald-50 text-emerald-600 hover:bg-emerald-100 hover:text-emerald-700 border border-emerald-200 transition-all duration-300 ease-in-out"
3117
+ };
3118
+ case "view":
3119
+ return {
3120
+ icon: fill ? ri.RiEyeFill : ri.RiEyeLine,
3121
+ label: t.view,
3122
+ className: "bg-muted text-muted-foreground hover:bg-gray-100 hover:text-foreground border border-border transition-all duration-300 ease-in-out"
3123
+ };
3124
+ case "metrics":
3125
+ return {
3126
+ icon: fill ? ri.RiBarChartFill : ri.RiBarChartLine,
3127
+ label: t.metrics,
3128
+ className: "bg-purple-50 text-purple-600 hover:bg-purple-100 hover:text-purple-700 border border-purple-200 transition-all duration-300 ease-in-out"
3129
+ };
3130
+ case "start":
3131
+ return {
3132
+ icon: fill ? ri.RiPlayFill : ri.RiPlayLine,
3133
+ label: t.start,
3134
+ className: "bg-green-50 text-green-600 hover:bg-green-100 hover:text-green-700 border border-green-200 transition-all duration-300 ease-in-out"
3135
+ };
3136
+ case "stop":
3137
+ return {
3138
+ icon: fill ? ri.RiStopFill : ri.RiStopLine,
3139
+ label: t.stop,
3140
+ className: "bg-red-50 text-red-600 hover:bg-red-100 hover:text-red-700 border border-red-200 transition-all duration-300 ease-in-out"
3141
+ };
3142
+ case "restart":
3143
+ return {
3144
+ icon: fill ? ri.RiRestartFill : ri.RiRestartLine,
3145
+ label: t.restart,
3146
+ className: "bg-orange-50 text-orange-600 hover:bg-orange-100 hover:text-orange-700 border border-orange-200 transition-all duration-300 ease-in-out"
3147
+ };
3148
+ case "pause":
3149
+ return {
3150
+ icon: fill ? ri.RiPauseFill : ri.RiPauseLine,
3151
+ label: t.pause,
3152
+ className: "bg-yellow-50 text-yellow-600 hover:bg-yellow-100 hover:text-yellow-700 border border-yellow-200 transition-all duration-300 ease-in-out"
3153
+ };
3154
+ case "clone":
3155
+ return {
3156
+ icon: fill ? ri.RiFileCopyFill : ri.RiFileCopyLine,
3157
+ label: t.clone,
3158
+ className: "bg-indigo-50 text-indigo-600 hover:bg-indigo-100 hover:text-indigo-700 border border-indigo-200 transition-all duration-300 ease-in-out"
3159
+ };
3160
+ default:
3161
+ return null;
3162
+ }
3163
+ };
3164
+ const variantConfig = getVariantConfig();
3165
+ const variantClasses5 = {
3166
+ primary: "btn-primary",
3167
+ secondary: "btn-secondary",
3168
+ danger: "btn-danger",
3169
+ success: "bg-green-50 text-green-600 hover:bg-green-100 hover:text-green-700 border border-green-200 transition-all duration-300 ease-in-out",
3170
+ warning: "bg-yellow-50 text-yellow-600 hover:bg-yellow-100 hover:text-yellow-700 border border-yellow-200 transition-all duration-300 ease-in-out",
3171
+ info: "bg-muted text-muted-foreground hover:bg-primary hover:text-primary-foreground border border-ring transition-all duration-300 ease-in-out",
3172
+ metrics: "bg-purple-50 text-purple-600 hover:bg-purple-100 hover:text-purple-700 border border-purple-200 transition-all duration-300 ease-in-out"
3173
+ };
3174
+ let variantClass = variantConfig ? variantConfig.className : variant ? variantClasses5[variant] : "";
3175
+ if (terminalMode && variantClass) {
3176
+ const hoverMatch = variantClass.match(/hover:text-(\w+)-(\d+)/);
3177
+ const hoverColor = hoverMatch ? `hover:text-${hoverMatch[1]}-${hoverMatch[2]}` : "hover:text-muted-foreground";
3178
+ variantClass = `text-muted-foreground ${hoverColor} transition-colors duration-200`;
3179
+ }
3180
+ const isDisabled = disabled || loading || externalLoading;
3181
+ const buttonContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3182
+ loading || externalLoading ? /* @__PURE__ */ jsxRuntime.jsx(
3183
+ "div",
3184
+ {
3185
+ className: `${iconSizes[size]} flex items-center justify-center flex-shrink-0 ${terminalMode ? "text-muted-foreground p-0.5" : ""}`,
3186
+ "aria-hidden": "true",
3187
+ children: LoadingIconComponent ? /* @__PURE__ */ jsxRuntime.jsx(
3188
+ LoadingIconComponent,
3189
+ {
3190
+ className: `w-full h-full ${disableLoadingSpin ? "" : "animate-spin-slow"}`,
3191
+ "aria-hidden": "true"
3192
+ }
3193
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
3194
+ "div",
3195
+ {
3196
+ className: "w-full h-full border-2 border-current border-t-transparent rounded-full animate-spin",
3197
+ "aria-hidden": "true"
3198
+ }
3199
+ )
3200
+ }
3201
+ ) : (variantConfig?.icon || IconComponent) && /* @__PURE__ */ jsxRuntime.jsx(
3202
+ "div",
3203
+ {
3204
+ className: `${iconSizes[size]} flex items-center justify-center flex-shrink-0`,
3205
+ "aria-hidden": "true",
3206
+ children: variantConfig?.icon ? /* @__PURE__ */ jsxRuntime.jsx(
3207
+ variantConfig.icon,
3208
+ {
3209
+ className: "w-full h-full",
3210
+ "aria-hidden": "true"
3211
+ }
3212
+ ) : IconComponent ? /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "w-full h-full", "aria-hidden": "true" }) : null
3213
+ }
3214
+ ),
3215
+ !iconOnly && (restProps.children ? restProps.children : (variantConfig?.label || label) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center", children: variantConfig?.label || label }))
3216
+ ] });
3217
+ const accessibleLabel = title || (iconOnly ? variantConfig?.label || label : void 0);
3218
+ const buttonAriaLabel = iconOnly && !accessibleLabel ? variantConfig?.label || label || "Action button" : accessibleLabel;
3219
+ const tooltipContent = title || (iconOnly ? variantConfig?.label || label : void 0);
3220
+ const buttonClassName = `
3221
+
3222
+ ${terminalMode ? "btn-terminal" : `btn ${variantClass} ${paddingClasses3} ${heightClasses[size]} ${className} ${isDisabled ? "opacity-50 cursor-not-allowed" : ""}`}`;
3223
+ if (href) {
3224
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3225
+ /* @__PURE__ */ jsxRuntime.jsx(
3226
+ NextLink__default.default,
3227
+ {
3228
+ href,
3229
+ title: typeof title === "string" ? title : void 0,
3230
+ "aria-label": iconOnly ? typeof buttonAriaLabel === "string" ? buttonAriaLabel : void 0 : void 0,
3231
+ onClick: handleClick,
3232
+ className: buttonClassName,
3233
+ "data-tooltip-id": tooltipId,
3234
+ "aria-busy": loading || externalLoading ? "true" : void 0,
3235
+ ...restProps,
3236
+ children: buttonContent
3237
+ }
3238
+ ),
3239
+ tooltipId && /* @__PURE__ */ jsxRuntime.jsx(
3240
+ SharedTooltip,
3241
+ {
3242
+ id: tooltipId,
3243
+ place: tooltipPlace,
3244
+ offset: tooltipOffset,
3245
+ delayShow: tooltipDelayShow,
3246
+ delayHide: tooltipDelayHide,
3247
+ children: tooltipContent
3248
+ }
3249
+ )
3250
+ ] });
3251
+ }
3252
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3253
+ /* @__PURE__ */ jsxRuntime.jsx(
3254
+ "button",
3255
+ {
3256
+ type,
3257
+ onClick: handleClick,
3258
+ title: typeof title === "string" ? title : void 0,
3259
+ "aria-label": iconOnly ? typeof buttonAriaLabel === "string" ? buttonAriaLabel : void 0 : void 0,
3260
+ className: buttonClassName,
3261
+ "data-tooltip-id": tooltipId,
3262
+ "aria-busy": loading || externalLoading ? "true" : void 0,
3263
+ ...restProps,
3264
+ disabled: isDisabled,
3265
+ children: buttonContent
3266
+ }
3267
+ ),
3268
+ tooltipId && /* @__PURE__ */ jsxRuntime.jsx(
3269
+ SharedTooltip,
3270
+ {
3271
+ id: tooltipId,
3272
+ place: tooltipPlace,
3273
+ offset: tooltipOffset,
3274
+ delayShow: tooltipDelayShow,
3275
+ delayHide: tooltipDelayHide,
3276
+ children: tooltipContent
3277
+ }
3278
+ )
3279
+ ] });
3280
+ }
3281
+ function SearchCard({
3282
+ title,
3283
+ count,
3284
+ total,
3285
+ actionButton,
3286
+ children,
3287
+ className = "",
3288
+ icon: Icon,
3289
+ description
3290
+ }) {
3291
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `card p-4 lg:p-6 ${className}`, children: [
3292
+ /* @__PURE__ */ jsxRuntime.jsx(
3293
+ SearchCardHeader,
3294
+ {
3295
+ title,
3296
+ count,
3297
+ total,
3298
+ actionButton,
3299
+ icon: Icon,
3300
+ description
3301
+ }
3302
+ ),
3303
+ /* @__PURE__ */ jsxRuntime.jsx(SearchCardContent, { children })
3304
+ ] });
3305
+ }
3306
+ function SearchCardHeader({
3307
+ title,
3308
+ count,
3309
+ total,
3310
+ actionButton,
3311
+ icon: Icon,
3312
+ description
3313
+ }) {
3314
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-4 mb-6", children: [
3315
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3 min-w-0 flex-1", children: [
3316
+ Icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "w-6 h-6 lg:w-8 lg:h-8 text-foreground flex-shrink-0" }),
3317
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
3318
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg lg:text-2xl font-bold truncate", children: title }),
3319
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground hidden md:block", children: description }),
3320
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 lg:mt-2 text-xs text-secondary-foreground", children: [
3321
+ count,
3322
+ " of ",
3323
+ total,
3324
+ " ",
3325
+ title.toLowerCase()
3326
+ ] })
3327
+ ] })
3328
+ ] }),
3329
+ actionButton && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row gap-2 lg:gap-3 flex-shrink-0", children: actionButton })
3330
+ ] });
3331
+ }
3332
+ function SearchCardContent({
3333
+ children,
3334
+ className = ""
3335
+ }) {
3336
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className, children });
3337
+ }
3338
+ function SearchInput({
3339
+ placeholder,
3340
+ value,
3341
+ onChange,
3342
+ className = ""
3343
+ }) {
3344
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex-1 ${className}`, children: /* @__PURE__ */ jsxRuntime.jsx(
3345
+ FormInput,
3346
+ {
3347
+ label: "",
3348
+ name: "search",
3349
+ type: "text",
3350
+ value,
3351
+ onChange: (e) => onChange(e.target.value),
3352
+ placeholder,
3353
+ icon: {
3354
+ left: /* @__PURE__ */ jsxRuntime.jsx(ri.RiSearchLine, { className: "w-4 h-4 text-muted-foreground" })
3355
+ },
3356
+ className: "mb-0"
3357
+ }
3358
+ ) });
3359
+ }
3360
+ function FilterSelect({
3361
+ value,
3362
+ onChange,
3363
+ options,
3364
+ placeholder,
3365
+ className = "",
3366
+ multiple = false,
3367
+ searchable = true
3368
+ }) {
3369
+ return /* @__PURE__ */ jsxRuntime.jsx(
3370
+ SmartSelect,
3371
+ {
3372
+ value,
3373
+ onChange,
3374
+ options,
3375
+ placeholder,
3376
+ className: `form-input form-input-md ${className}`,
3377
+ keepOpen: multiple,
3378
+ multiple,
3379
+ searchable
3380
+ }
3381
+ );
3382
+ }
3383
+ function RefreshButton({
3384
+ onClick,
3385
+ isLoading = false,
3386
+ className = ""
3387
+ }) {
3388
+ return /* @__PURE__ */ jsxRuntime.jsx(
3389
+ ActionButton,
3390
+ {
3391
+ icon: ri.RiRefreshLine,
3392
+ onClick,
3393
+ disabled: isLoading,
3394
+ loading: isLoading,
3395
+ iconOnly: true,
3396
+ size: "md",
3397
+ variant: "secondary",
3398
+ tooltipId: "refresh-button-tooltip",
3399
+ title: "Refresh",
3400
+ tooltipPlace: "top",
3401
+ className: `btn-alt ${className}`
3402
+ }
3403
+ );
3404
+ }
3405
+ function FilterToggleButton({
3406
+ isOpen,
3407
+ onClick,
3408
+ onClear,
3409
+ activeCount = 0,
3410
+ className = ""
3411
+ }) {
3412
+ const tooltipText = activeCount > 0 ? `${activeCount} filter${activeCount === 1 ? "" : "s"} active` : "Filters";
3413
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3414
+ /* @__PURE__ */ jsxRuntime.jsx(
3415
+ IconButtonWithCount,
3416
+ {
3417
+ icon: /* @__PURE__ */ jsxRuntime.jsx(ri.RiFilterLine, { className: "w-4 h-4" }),
3418
+ label: "Filters",
3419
+ count: activeCount,
3420
+ onClick,
3421
+ onClear,
3422
+ className,
3423
+ tooltipId: "filter-button-tooltip",
3424
+ tooltipContent: tooltipText,
3425
+ clearTooltipId: "clear-filters-tooltip",
3426
+ clearTooltipContent: "Clear all filters"
3427
+ }
3428
+ ),
3429
+ /* @__PURE__ */ jsxRuntime.jsx(SharedTooltip, { id: "filter-button-tooltip" })
3430
+ ] });
3431
+ }
3432
+ function MobileSearchLayout({
3433
+ searchInput,
3434
+ filters,
3435
+ viewControls,
3436
+ activeFilterCount = 0,
3437
+ onClearFilters,
3438
+ className = "",
3439
+ filterInline = false,
3440
+ searchButton
3441
+ }) {
3442
+ const [showFilters, setShowFilters] = React4.useState(false);
3443
+ if (filterInline) {
3444
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `space-y-4 ${className}`, children: [
3445
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 items-center", children: [
3446
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: searchInput }),
3447
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 items-center", children: [
3448
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
3449
+ SmartDropdown,
3450
+ {
3451
+ isOpen: showFilters,
3452
+ onClose: () => setShowFilters(false),
3453
+ width: 600,
3454
+ maxHeight: 320,
3455
+ trigger: /* @__PURE__ */ jsxRuntime.jsx(
3456
+ FilterToggleButton,
3457
+ {
3458
+ isOpen: showFilters,
3459
+ onClick: () => setShowFilters(!showFilters),
3460
+ activeCount: activeFilterCount,
3461
+ onClear: onClearFilters
3462
+ }
3463
+ ),
3464
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: filters }) }) })
3465
+ }
3466
+ ) }),
3467
+ viewControls && viewControls
3468
+ ] })
3469
+ ] }),
3470
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "hidden lg:flex lg:flex-col lg:gap-3", children: [
3471
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col lg:flex-row gap-3", children: filters }),
3472
+ searchButton && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: searchButton })
3473
+ ] }),
3474
+ /* @__PURE__ */ jsxRuntime.jsx(SharedTooltip, { id: "clear-filters-tooltip" })
3475
+ ] });
3476
+ }
3477
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `space-y-4 ${className}`, children: [
3478
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 items-center", children: [
3479
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: searchInput }),
3480
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 items-center", children: [
3481
+ /* @__PURE__ */ jsxRuntime.jsx(
3482
+ SmartDropdown,
3483
+ {
3484
+ isOpen: showFilters,
3485
+ onClose: () => setShowFilters(false),
3486
+ width: 600,
3487
+ maxHeight: 320,
3488
+ trigger: /* @__PURE__ */ jsxRuntime.jsx(
3489
+ FilterToggleButton,
3490
+ {
3491
+ isOpen: showFilters,
3492
+ onClick: () => setShowFilters(!showFilters),
3493
+ activeCount: activeFilterCount,
3494
+ onClear: onClearFilters
3495
+ }
3496
+ ),
3497
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: filters }) }) })
3498
+ }
3499
+ ),
3500
+ viewControls && viewControls
3501
+ ] })
3502
+ ] }),
3503
+ /* @__PURE__ */ jsxRuntime.jsx(SharedTooltip, { id: "clear-filters-tooltip" })
3504
+ ] });
3505
+ }
3506
+ function ViewToggle({
3507
+ currentView,
3508
+ onViewChange,
3509
+ className = ""
3510
+ }) {
3511
+ const toggleView = () => {
3512
+ onViewChange(currentView === "cards" ? "list" : "cards");
3513
+ };
3514
+ return /* @__PURE__ */ jsxRuntime.jsx(
3515
+ ActionButton,
3516
+ {
3517
+ icon: currentView === "cards" ? ri.RiGridFill : ri.RiListUnordered,
3518
+ onClick: toggleView,
3519
+ iconOnly: true,
3520
+ size: "md",
3521
+ variant: "secondary",
3522
+ tooltipId: "view-toggle-tooltip",
3523
+ title: currentView === "cards" ? "Switch to List View" : "Switch to Card View",
3524
+ tooltipPlace: "top",
3525
+ className: `btn-alt ${className}`
3526
+ }
3527
+ );
3528
+ }
2062
3529
 
2063
3530
  // src/index.ts
2064
3531
  var VERSION = "0.1.3";
2065
3532
 
3533
+ exports.ActionButton = ActionButton;
2066
3534
  exports.Badge = Badge;
2067
3535
  exports.Button = Button_default;
2068
3536
  exports.Card = Card;
2069
3537
  exports.ConfirmDialog = ConfirmDialog_default;
2070
3538
  exports.Container = Container;
3539
+ exports.DataTable = DataTable;
3540
+ exports.DataTableActions = DataTableActions;
3541
+ exports.DataTableBody = DataTableBody;
3542
+ exports.DataTableCell = DataTableCell;
3543
+ exports.DataTableEmptyState = DataTableEmptyState;
3544
+ exports.DataTableHeader = DataTableHeader;
3545
+ exports.DataTableHeaderCell = DataTableHeaderCell;
3546
+ exports.DataTableLoadingState = DataTableLoadingState;
3547
+ exports.DataTableRow = DataTableRow;
2071
3548
  exports.EmptyState = EmptyState_default;
3549
+ exports.FilterSelect = FilterSelect;
3550
+ exports.FilterToggleButton = FilterToggleButton;
2072
3551
  exports.FormInput = FormInput;
2073
3552
  exports.FormSection = FormSection;
2074
3553
  exports.Grid = Grid;
3554
+ exports.IconButtonWithCount = IconButtonWithCount;
3555
+ exports.InfoBox = InfoBox;
2075
3556
  exports.Link = Link_default;
2076
3557
  exports.LoadingSpinner = LoadingSpinner_default;
3558
+ exports.MobileSearchLayout = MobileSearchLayout;
2077
3559
  exports.Modal = Modal;
2078
3560
  exports.PageHeader = PageHeader;
3561
+ exports.RefreshButton = RefreshButton;
3562
+ exports.SearchCard = SearchCard;
3563
+ exports.SearchCardContent = SearchCardContent;
3564
+ exports.SearchCardHeader = SearchCardHeader;
3565
+ exports.SearchInput = SearchInput;
3566
+ exports.SharedTooltip = SharedTooltip;
2079
3567
  exports.Skeleton = Skeleton;
3568
+ exports.SkeletonCard = SkeletonCard;
3569
+ exports.SkeletonEnvironmentsList = SkeletonEnvironmentsList;
3570
+ exports.SkeletonForm = SkeletonForm;
3571
+ exports.SkeletonGameCard = SkeletonGameCard;
3572
+ exports.SkeletonGameServerCard = SkeletonGameServerCard;
3573
+ exports.SkeletonGameServerCards = SkeletonGameServerCards;
3574
+ exports.SkeletonGameServerTable = SkeletonGameServerTable;
3575
+ exports.SkeletonGamesTable = SkeletonGamesTable;
2080
3576
  exports.SkeletonItem = SkeletonItem;
3577
+ exports.SkeletonList = SkeletonList;
3578
+ exports.SkeletonNodeCard = SkeletonNodeCard;
3579
+ exports.SkeletonNodeCards = SkeletonNodeCards;
3580
+ exports.SkeletonNodeTable = SkeletonNodeTable;
3581
+ exports.SkeletonRecentActivity = SkeletonRecentActivity;
3582
+ exports.SkeletonSearchCard = SkeletonSearchCard;
3583
+ exports.SkeletonStats = SkeletonStats;
3584
+ exports.SkeletonTable = SkeletonTable;
3585
+ exports.SkeletonTenantCard = SkeletonTenantCard;
3586
+ exports.SkeletonUserCard = SkeletonUserCard;
2081
3587
  exports.SmartDropdown = SmartDropdown;
2082
3588
  exports.SmartSelect = SmartSelect;
3589
+ exports.Spinner = Spinner_default;
3590
+ exports.StatusBadge = StatusBadge;
3591
+ exports.StickyActionsColumn = StickyActionsColumn;
2083
3592
  exports.Switch = Switch;
2084
3593
  exports.Typography = Typography;
2085
3594
  exports.VERSION = VERSION;
3595
+ exports.ViewToggle = ViewToggle;
2086
3596
  exports.useConfirmDialog = useConfirmDialog;
2087
3597
  //# sourceMappingURL=index.js.map
2088
3598
  //# sourceMappingURL=index.js.map