uiverseplus-lib 1.0.0 → 1.0.3

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.
Files changed (3) hide show
  1. package/dist/index.js +76 -258
  2. package/dist/index.mjs +91 -273
  3. package/package.json +4 -5
package/dist/index.js CHANGED
@@ -1411,215 +1411,25 @@ var ImageCard = ({
1411
1411
  // src/components/ImageSlider/ImageSlider.jsx
1412
1412
  var import_react10 = __toESM(require("react"));
1413
1413
  var ImageSlider = ({
1414
- images = [
1415
- {
1416
- src: "https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=600&q=80",
1417
- title: "Hidden Peaks of Himalayas",
1418
- tag: "Travel"
1419
- },
1420
- {
1421
- src: "https://images.unsplash.com/photo-1477959858617-67f85cf4f1df?w=600&q=80",
1422
- title: "City Lights at Night",
1423
- tag: "Urban"
1424
- },
1425
- {
1426
- src: "https://images.unsplash.com/photo-1500534314209-a25ddb2bd429?w=600&q=80",
1427
- title: "Tropical Beach Paradise",
1428
- tag: "Nature"
1429
- },
1430
- {
1431
- src: "https://images.unsplash.com/photo-1519681393784-d120267933ba?w=600&q=80",
1432
- title: "Starry Mountain Night",
1433
- tag: "Adventure"
1434
- }
1435
- ],
1414
+ images = ["https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=600&q=80", "https://images.unsplash.com/photo-1506744038136-46273834b3cd?w=600&q=80", "https://images.unsplash.com/photo-1501785888041-af3ef285b470?w=600&q=80"],
1415
+ interval = 5e3,
1436
1416
  accent = "#6366f1",
1437
1417
  bg = "#0f172a",
1438
- radius = "20px",
1439
- showDots = true,
1440
- showCaption = true,
1441
- autoPlay = false
1418
+ width = "600px",
1419
+ height = "400px"
1442
1420
  }) => {
1443
- const [current, setCurrent] = (0, import_react10.useState)(0);
1444
- const [dir, setDir] = (0, import_react10.useState)(null);
1421
+ const [currentIndex, setCurrentIndex] = (0, import_react10.useState)(0);
1445
1422
  const alpha = (hex, op) => {
1446
- const r = parseInt(hex.slice(1, 3), 16);
1447
- const g = parseInt(hex.slice(3, 5), 16);
1448
- const b = parseInt(hex.slice(5, 7), 16);
1449
- return `rgba(${r},${g},${b},${op})`;
1450
- };
1451
- const prev = () => {
1452
- setDir("left");
1453
- setCurrent((c) => (c - 1 + images.length) % images.length);
1454
- };
1455
- const next = () => {
1456
- setDir("right");
1457
- setCurrent((c) => (c + 1) % images.length);
1458
- };
1459
- const goTo = (i) => {
1460
- setDir(i > current ? "right" : "left");
1461
- setCurrent(i);
1423
+ const r = parseInt(hex.slice(1, 3), 16), g = parseInt(hex.slice(3, 5), 16), b = parseInt(hex.slice(5, 7), 16);
1424
+ return "rgba(" + r + "," + g + "," + b + "," + op + ")";
1462
1425
  };
1463
- const img = images[current];
1464
- return /* @__PURE__ */ import_react10.default.createElement("div", { style: {
1465
- background: bg,
1466
- borderRadius: radius,
1467
- overflow: "hidden",
1468
- width: "300px",
1469
- border: "1px solid rgba(255,255,255,0.07)",
1470
- fontFamily: "system-ui, sans-serif",
1471
- boxShadow: "0 10px 40px rgba(0,0,0,0.4)"
1472
- } }, /* @__PURE__ */ import_react10.default.createElement("div", { style: { position: "relative", width: "100%", height: "200px", overflow: "hidden", background: "#000" } }, /* @__PURE__ */ import_react10.default.createElement(
1473
- "img",
1474
- {
1475
- key: current,
1476
- src: img.src,
1477
- alt: img.title,
1478
- style: {
1479
- width: "100%",
1480
- height: "100%",
1481
- objectFit: "cover",
1482
- animation: `sliderFade 0.35s ease`
1483
- }
1484
- }
1485
- ), /* @__PURE__ */ import_react10.default.createElement("style", null, `@keyframes sliderFade { from { opacity: 0; transform: scale(1.03); } to { opacity: 1; transform: scale(1); } }`), /* @__PURE__ */ import_react10.default.createElement("div", { style: {
1486
- position: "absolute",
1487
- inset: 0,
1488
- background: "linear-gradient(to top, rgba(0,0,0,0.65) 0%, transparent 55%)"
1489
- } }), img.tag && /* @__PURE__ */ import_react10.default.createElement("div", { style: {
1490
- position: "absolute",
1491
- top: "12px",
1492
- left: "12px",
1493
- padding: "4px 10px",
1494
- borderRadius: "20px",
1495
- background: alpha(accent, 0.85),
1496
- fontSize: "10px",
1497
- fontWeight: "700",
1498
- color: "#fff",
1499
- letterSpacing: "0.5px",
1500
- textTransform: "uppercase"
1501
- } }, img.tag), /* @__PURE__ */ import_react10.default.createElement("div", { style: {
1502
- position: "absolute",
1503
- top: "12px",
1504
- right: "12px",
1505
- padding: "4px 10px",
1506
- borderRadius: "20px",
1507
- background: "rgba(0,0,0,0.5)",
1508
- fontSize: "10px",
1509
- fontWeight: "600",
1510
- color: "rgba(255,255,255,0.7)"
1511
- } }, current + 1, " / ", images.length), /* @__PURE__ */ import_react10.default.createElement(
1512
- "button",
1513
- {
1514
- onClick: prev,
1515
- style: {
1516
- position: "absolute",
1517
- left: "10px",
1518
- top: "50%",
1519
- transform: "translateY(-50%)",
1520
- width: "34px",
1521
- height: "34px",
1522
- borderRadius: "50%",
1523
- background: "rgba(0,0,0,0.5)",
1524
- border: "1px solid rgba(255,255,255,0.15)",
1525
- color: "#fff",
1526
- cursor: "pointer",
1527
- display: "flex",
1528
- alignItems: "center",
1529
- justifyContent: "center",
1530
- transition: "background 0.2s",
1531
- padding: 0
1532
- },
1533
- onMouseEnter: (e) => e.currentTarget.style.background = alpha(accent, 0.8),
1534
- onMouseLeave: (e) => e.currentTarget.style.background = "rgba(0,0,0,0.5)"
1535
- },
1536
- /* @__PURE__ */ import_react10.default.createElement(
1537
- "svg",
1538
- {
1539
- width: "14",
1540
- height: "14",
1541
- viewBox: "0 0 24 24",
1542
- fill: "none",
1543
- stroke: "currentColor",
1544
- strokeWidth: "2.5",
1545
- strokeLinecap: "round"
1546
- },
1547
- /* @__PURE__ */ import_react10.default.createElement("polyline", { points: "15 18 9 12 15 6" })
1548
- )
1549
- ), /* @__PURE__ */ import_react10.default.createElement(
1550
- "button",
1551
- {
1552
- onClick: next,
1553
- style: {
1554
- position: "absolute",
1555
- right: "10px",
1556
- top: "50%",
1557
- transform: "translateY(-50%)",
1558
- width: "34px",
1559
- height: "34px",
1560
- borderRadius: "50%",
1561
- background: "rgba(0,0,0,0.5)",
1562
- border: "1px solid rgba(255,255,255,0.15)",
1563
- color: "#fff",
1564
- cursor: "pointer",
1565
- display: "flex",
1566
- alignItems: "center",
1567
- justifyContent: "center",
1568
- transition: "background 0.2s",
1569
- padding: 0
1570
- },
1571
- onMouseEnter: (e) => e.currentTarget.style.background = alpha(accent, 0.8),
1572
- onMouseLeave: (e) => e.currentTarget.style.background = "rgba(0,0,0,0.5)"
1573
- },
1574
- /* @__PURE__ */ import_react10.default.createElement(
1575
- "svg",
1576
- {
1577
- width: "14",
1578
- height: "14",
1579
- viewBox: "0 0 24 24",
1580
- fill: "none",
1581
- stroke: "currentColor",
1582
- strokeWidth: "2.5",
1583
- strokeLinecap: "round"
1584
- },
1585
- /* @__PURE__ */ import_react10.default.createElement("polyline", { points: "9 18 15 12 9 6" })
1586
- )
1587
- )), showCaption && /* @__PURE__ */ import_react10.default.createElement("div", { style: { padding: "14px 16px 4px" } }, /* @__PURE__ */ import_react10.default.createElement(
1588
- "p",
1589
- {
1590
- style: {
1591
- fontSize: "14px",
1592
- fontWeight: "700",
1593
- color: "#fff",
1594
- margin: 0,
1595
- lineHeight: 1.4,
1596
- animation: "sliderFade 0.3s ease"
1597
- },
1598
- key: current + "-title"
1599
- },
1600
- img.title
1601
- )), showDots && /* @__PURE__ */ import_react10.default.createElement("div", { style: {
1602
- display: "flex",
1603
- justifyContent: "center",
1604
- gap: "6px",
1605
- padding: "12px 16px 16px"
1606
- } }, images.map((_, i) => /* @__PURE__ */ import_react10.default.createElement(
1607
- "button",
1608
- {
1609
- key: i,
1610
- onClick: () => goTo(i),
1611
- style: {
1612
- width: i === current ? "20px" : "6px",
1613
- height: "6px",
1614
- borderRadius: "3px",
1615
- border: "none",
1616
- cursor: "pointer",
1617
- padding: 0,
1618
- background: i === current ? accent : "rgba(255,255,255,0.2)",
1619
- transition: "all 0.25s ease"
1620
- }
1621
- }
1622
- ))));
1426
+ (0, import_react10.useEffect)(() => {
1427
+ const timer = setInterval(() => {
1428
+ setCurrentIndex((prevIndex) => (prevIndex + 1) % images.length);
1429
+ }, interval);
1430
+ return () => clearInterval(timer);
1431
+ }, [images.length, interval]);
1432
+ return /* @__PURE__ */ import_react10.default.createElement("div", { style: { position: "relative", width, height, borderRadius: "20px", overflow: "hidden", background: bg, boxShadow: "0 10px 40px rgba(0,0,0,0.5)" } }, /* @__PURE__ */ import_react10.default.createElement("div", { style: { position: "absolute", inset: 0, display: "flex", transition: "transform 0.5s ease", transform: "translateX(" + -currentIndex * 100 + "%)" } }, images.map((img, i) => /* @__PURE__ */ import_react10.default.createElement("div", { key: i, style: { flex: "0 0 100%", height: "100%", position: "relative" } }, /* @__PURE__ */ import_react10.default.createElement("img", { src: img, alt: "Slider", style: { width: "100%", height: "100%", objectFit: "cover" } }), /* @__PURE__ */ import_react10.default.createElement("div", { style: { position: "absolute", inset: 0, background: "linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 60%)" } })))), /* @__PURE__ */ import_react10.default.createElement("div", { style: { position: "absolute", bottom: "20px", left: "50%", transform: "translateX(-50%)", display: "flex", gap: "8px" } }, images.map((_, i) => /* @__PURE__ */ import_react10.default.createElement("button", { key: i, onClick: () => setCurrentIndex(i), style: { width: "10px", height: "10px", borderRadius: "50%", border: "none", background: currentIndex === i ? accent : "rgba(255,255,255,0.3)", cursor: "pointer", transition: "background 0.2s" } }))), /* @__PURE__ */ import_react10.default.createElement("button", { onClick: () => setCurrentIndex((prevIndex) => (prevIndex - 1 + images.length) % images.length), style: { position: "absolute", left: "20px", top: "50%", transform: "translateY(-50%)", background: alpha(bg, 0.7), border: "none", width: "40px", height: "40px", borderRadius: "50%", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", boxShadow: "0 4px 12px rgba(0,0,0,0.3)" } }, /* @__PURE__ */ import_react10.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "#fff", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react10.default.createElement("polyline", { points: "15 18 9 12 15 6" }))), /* @__PURE__ */ import_react10.default.createElement("button", { onClick: () => setCurrentIndex((prevIndex) => (prevIndex + 1) % images.length), style: { position: "absolute", right: "20px", top: "50%", transform: "translateY(-50%)", background: alpha(bg, 0.7), border: "none", width: "40px", height: "40px", borderRadius: "50%", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", boxShadow: "0 4px 12px rgba(0,0,0,0.3)" } }, /* @__PURE__ */ import_react10.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "#fff", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react10.default.createElement("polyline", { points: "9 18 15 12 9 6" }))));
1623
1433
  };
1624
1434
 
1625
1435
  // src/components/BackgoundImageSlider/BackgoundImageSlider.jsx
@@ -3788,75 +3598,83 @@ var ReviewCard = ({
3788
3598
  // src/components/Card/Card.jsx
3789
3599
  var import_react23 = __toESM(require("react"));
3790
3600
  var Card = ({
3791
- title = "Performance",
3792
- description = "Real-time metrics with live dashboard updates every second.",
3793
- icon = "\u26A1",
3794
- tag = "Active",
3795
- onClick
3601
+ title = "Premium Design",
3602
+ description = "Elevate your project with our high-quality UI components and templates.",
3603
+ icon = "\u2605",
3604
+ accent = "#7c3aed",
3605
+ bg = "#0f172a",
3606
+ borderColor = "rgba(255,255,255,0.1)",
3607
+ onAction = () => {
3608
+ }
3796
3609
  }) => {
3797
3610
  const [hovered, setHovered] = (0, import_react23.useState)(false);
3611
+ const alpha = (hex, op) => {
3612
+ const r = parseInt(hex.slice(1, 3), 16), g = parseInt(hex.slice(3, 5), 16), b = parseInt(hex.slice(5, 7), 16);
3613
+ return "rgba(" + r + "," + g + "," + b + "," + op + ")";
3614
+ };
3798
3615
  return /* @__PURE__ */ import_react23.default.createElement(
3799
3616
  "div",
3800
3617
  {
3801
3618
  onMouseEnter: () => setHovered(true),
3802
3619
  onMouseLeave: () => setHovered(false),
3803
- onClick,
3804
3620
  style: {
3805
- background: "#ffffff",
3806
- border: `0.5px solid ${hovered ? "#00000033" : "#0000001a"}`,
3807
- borderRadius: "12px",
3808
- padding: "1.25rem",
3809
- transition: "border-color 0.2s, transform 0.2s",
3810
- transform: hovered ? "translateY(-2px)" : "translateY(0)",
3811
- cursor: onClick ? "pointer" : "default",
3812
- position: "relative",
3813
- overflow: "hidden",
3814
- fontFamily: "sans-serif",
3815
- width: "260px"
3621
+ background: bg,
3622
+ borderRadius: "16px",
3623
+ padding: "24px",
3624
+ width: "280px",
3625
+ border: "1px solid " + (hovered ? alpha(accent, 0.3) : borderColor),
3626
+ fontFamily: "system-ui,sans-serif",
3627
+ transition: "all 0.2s ease",
3628
+ boxShadow: hovered ? "0 10px 30px rgba(0,0,0,0.5)" : "0 5px 15px rgba(0,0,0,0.3)",
3629
+ transform: hovered ? "translateY(-4px)" : "translateY(0)"
3816
3630
  }
3817
3631
  },
3818
3632
  /* @__PURE__ */ import_react23.default.createElement("div", { style: {
3819
- position: "absolute",
3820
- top: 0,
3821
- left: 0,
3822
- right: 0,
3823
- height: "3px",
3824
- background: "#1D9E75",
3825
- borderRadius: "12px 12px 0 0"
3826
- } }),
3827
- /* @__PURE__ */ import_react23.default.createElement("div", { style: {
3828
- width: 40,
3829
- height: 40,
3830
- borderRadius: 8,
3831
- background: "#E1F5EE",
3633
+ width: "48px",
3634
+ height: "48px",
3635
+ borderRadius: "12px",
3636
+ background: alpha(accent, 0.15),
3832
3637
  display: "flex",
3833
3638
  alignItems: "center",
3834
3639
  justifyContent: "center",
3835
- fontSize: 18,
3836
- marginBottom: 14
3640
+ marginBottom: "16px",
3641
+ border: "1px solid " + alpha(accent, 0.3),
3642
+ color: accent,
3643
+ fontSize: "20px",
3644
+ fontWeight: "bold"
3837
3645
  } }, icon),
3838
- /* @__PURE__ */ import_react23.default.createElement("p", { style: { fontSize: 15, fontWeight: 700, color: "#111", margin: "0 0 6px" } }, title),
3839
- /* @__PURE__ */ import_react23.default.createElement("p", { style: { fontSize: 13, color: "#666", lineHeight: 1.6, margin: "0 0 16px" } }, description),
3840
- /* @__PURE__ */ import_react23.default.createElement("div", { style: {
3841
- display: "flex",
3842
- alignItems: "center",
3843
- justifyContent: "space-between",
3844
- borderTop: "0.5px solid #0000001a",
3845
- paddingTop: 12
3846
- } }, /* @__PURE__ */ import_react23.default.createElement("span", { style: {
3847
- fontSize: 11,
3848
- fontWeight: 500,
3849
- padding: "3px 9px",
3850
- borderRadius: 20,
3851
- background: "#E1F5EE",
3852
- color: "#0F6E56"
3853
- } }, tag), /* @__PURE__ */ import_react23.default.createElement("span", { style: {
3854
- fontSize: 14,
3855
- color: "#999",
3856
- display: "inline-block",
3857
- transition: "transform 0.2s",
3858
- transform: hovered ? "translateX(3px)" : "translateX(0)"
3859
- } }, "\u2192"))
3646
+ /* @__PURE__ */ import_react23.default.createElement("h3", { style: {
3647
+ fontSize: "18px",
3648
+ fontWeight: "700",
3649
+ color: "#fff",
3650
+ margin: "0 0 8px 0",
3651
+ lineHeight: 1.3
3652
+ } }, title),
3653
+ /* @__PURE__ */ import_react23.default.createElement("p", { style: {
3654
+ fontSize: "14px",
3655
+ color: "rgba(255,255,255,0.6)",
3656
+ margin: "0 0 20px 0",
3657
+ lineHeight: 1.5
3658
+ } }, description),
3659
+ /* @__PURE__ */ import_react23.default.createElement(
3660
+ "button",
3661
+ {
3662
+ onClick: onAction,
3663
+ style: {
3664
+ padding: "10px 18px",
3665
+ borderRadius: "10px",
3666
+ border: "none",
3667
+ background: hovered ? "linear-gradient(135deg, " + accent + ", " + alpha(accent, 0.8) + ")" : alpha(accent, 0.1),
3668
+ color: hovered ? "#fff" : accent,
3669
+ fontSize: "13px",
3670
+ fontWeight: "600",
3671
+ cursor: "pointer",
3672
+ transition: "all 0.2s ease",
3673
+ fontFamily: "inherit"
3674
+ }
3675
+ },
3676
+ "Learn More"
3677
+ )
3860
3678
  );
3861
3679
  };
3862
3680
 
package/dist/index.mjs CHANGED
@@ -1350,221 +1350,31 @@ var ImageCard = ({
1350
1350
  };
1351
1351
 
1352
1352
  // src/components/ImageSlider/ImageSlider.jsx
1353
- import React10, { useState as useState8 } from "react";
1353
+ import React10, { useState as useState8, useEffect as useEffect4 } from "react";
1354
1354
  var ImageSlider = ({
1355
- images = [
1356
- {
1357
- src: "https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=600&q=80",
1358
- title: "Hidden Peaks of Himalayas",
1359
- tag: "Travel"
1360
- },
1361
- {
1362
- src: "https://images.unsplash.com/photo-1477959858617-67f85cf4f1df?w=600&q=80",
1363
- title: "City Lights at Night",
1364
- tag: "Urban"
1365
- },
1366
- {
1367
- src: "https://images.unsplash.com/photo-1500534314209-a25ddb2bd429?w=600&q=80",
1368
- title: "Tropical Beach Paradise",
1369
- tag: "Nature"
1370
- },
1371
- {
1372
- src: "https://images.unsplash.com/photo-1519681393784-d120267933ba?w=600&q=80",
1373
- title: "Starry Mountain Night",
1374
- tag: "Adventure"
1375
- }
1376
- ],
1355
+ images = ["https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=600&q=80", "https://images.unsplash.com/photo-1506744038136-46273834b3cd?w=600&q=80", "https://images.unsplash.com/photo-1501785888041-af3ef285b470?w=600&q=80"],
1356
+ interval = 5e3,
1377
1357
  accent = "#6366f1",
1378
1358
  bg = "#0f172a",
1379
- radius = "20px",
1380
- showDots = true,
1381
- showCaption = true,
1382
- autoPlay = false
1359
+ width = "600px",
1360
+ height = "400px"
1383
1361
  }) => {
1384
- const [current, setCurrent] = useState8(0);
1385
- const [dir, setDir] = useState8(null);
1362
+ const [currentIndex, setCurrentIndex] = useState8(0);
1386
1363
  const alpha = (hex, op) => {
1387
- const r = parseInt(hex.slice(1, 3), 16);
1388
- const g = parseInt(hex.slice(3, 5), 16);
1389
- const b = parseInt(hex.slice(5, 7), 16);
1390
- return `rgba(${r},${g},${b},${op})`;
1391
- };
1392
- const prev = () => {
1393
- setDir("left");
1394
- setCurrent((c) => (c - 1 + images.length) % images.length);
1395
- };
1396
- const next = () => {
1397
- setDir("right");
1398
- setCurrent((c) => (c + 1) % images.length);
1399
- };
1400
- const goTo = (i) => {
1401
- setDir(i > current ? "right" : "left");
1402
- setCurrent(i);
1364
+ const r = parseInt(hex.slice(1, 3), 16), g = parseInt(hex.slice(3, 5), 16), b = parseInt(hex.slice(5, 7), 16);
1365
+ return "rgba(" + r + "," + g + "," + b + "," + op + ")";
1403
1366
  };
1404
- const img = images[current];
1405
- return /* @__PURE__ */ React10.createElement("div", { style: {
1406
- background: bg,
1407
- borderRadius: radius,
1408
- overflow: "hidden",
1409
- width: "300px",
1410
- border: "1px solid rgba(255,255,255,0.07)",
1411
- fontFamily: "system-ui, sans-serif",
1412
- boxShadow: "0 10px 40px rgba(0,0,0,0.4)"
1413
- } }, /* @__PURE__ */ React10.createElement("div", { style: { position: "relative", width: "100%", height: "200px", overflow: "hidden", background: "#000" } }, /* @__PURE__ */ React10.createElement(
1414
- "img",
1415
- {
1416
- key: current,
1417
- src: img.src,
1418
- alt: img.title,
1419
- style: {
1420
- width: "100%",
1421
- height: "100%",
1422
- objectFit: "cover",
1423
- animation: `sliderFade 0.35s ease`
1424
- }
1425
- }
1426
- ), /* @__PURE__ */ React10.createElement("style", null, `@keyframes sliderFade { from { opacity: 0; transform: scale(1.03); } to { opacity: 1; transform: scale(1); } }`), /* @__PURE__ */ React10.createElement("div", { style: {
1427
- position: "absolute",
1428
- inset: 0,
1429
- background: "linear-gradient(to top, rgba(0,0,0,0.65) 0%, transparent 55%)"
1430
- } }), img.tag && /* @__PURE__ */ React10.createElement("div", { style: {
1431
- position: "absolute",
1432
- top: "12px",
1433
- left: "12px",
1434
- padding: "4px 10px",
1435
- borderRadius: "20px",
1436
- background: alpha(accent, 0.85),
1437
- fontSize: "10px",
1438
- fontWeight: "700",
1439
- color: "#fff",
1440
- letterSpacing: "0.5px",
1441
- textTransform: "uppercase"
1442
- } }, img.tag), /* @__PURE__ */ React10.createElement("div", { style: {
1443
- position: "absolute",
1444
- top: "12px",
1445
- right: "12px",
1446
- padding: "4px 10px",
1447
- borderRadius: "20px",
1448
- background: "rgba(0,0,0,0.5)",
1449
- fontSize: "10px",
1450
- fontWeight: "600",
1451
- color: "rgba(255,255,255,0.7)"
1452
- } }, current + 1, " / ", images.length), /* @__PURE__ */ React10.createElement(
1453
- "button",
1454
- {
1455
- onClick: prev,
1456
- style: {
1457
- position: "absolute",
1458
- left: "10px",
1459
- top: "50%",
1460
- transform: "translateY(-50%)",
1461
- width: "34px",
1462
- height: "34px",
1463
- borderRadius: "50%",
1464
- background: "rgba(0,0,0,0.5)",
1465
- border: "1px solid rgba(255,255,255,0.15)",
1466
- color: "#fff",
1467
- cursor: "pointer",
1468
- display: "flex",
1469
- alignItems: "center",
1470
- justifyContent: "center",
1471
- transition: "background 0.2s",
1472
- padding: 0
1473
- },
1474
- onMouseEnter: (e) => e.currentTarget.style.background = alpha(accent, 0.8),
1475
- onMouseLeave: (e) => e.currentTarget.style.background = "rgba(0,0,0,0.5)"
1476
- },
1477
- /* @__PURE__ */ React10.createElement(
1478
- "svg",
1479
- {
1480
- width: "14",
1481
- height: "14",
1482
- viewBox: "0 0 24 24",
1483
- fill: "none",
1484
- stroke: "currentColor",
1485
- strokeWidth: "2.5",
1486
- strokeLinecap: "round"
1487
- },
1488
- /* @__PURE__ */ React10.createElement("polyline", { points: "15 18 9 12 15 6" })
1489
- )
1490
- ), /* @__PURE__ */ React10.createElement(
1491
- "button",
1492
- {
1493
- onClick: next,
1494
- style: {
1495
- position: "absolute",
1496
- right: "10px",
1497
- top: "50%",
1498
- transform: "translateY(-50%)",
1499
- width: "34px",
1500
- height: "34px",
1501
- borderRadius: "50%",
1502
- background: "rgba(0,0,0,0.5)",
1503
- border: "1px solid rgba(255,255,255,0.15)",
1504
- color: "#fff",
1505
- cursor: "pointer",
1506
- display: "flex",
1507
- alignItems: "center",
1508
- justifyContent: "center",
1509
- transition: "background 0.2s",
1510
- padding: 0
1511
- },
1512
- onMouseEnter: (e) => e.currentTarget.style.background = alpha(accent, 0.8),
1513
- onMouseLeave: (e) => e.currentTarget.style.background = "rgba(0,0,0,0.5)"
1514
- },
1515
- /* @__PURE__ */ React10.createElement(
1516
- "svg",
1517
- {
1518
- width: "14",
1519
- height: "14",
1520
- viewBox: "0 0 24 24",
1521
- fill: "none",
1522
- stroke: "currentColor",
1523
- strokeWidth: "2.5",
1524
- strokeLinecap: "round"
1525
- },
1526
- /* @__PURE__ */ React10.createElement("polyline", { points: "9 18 15 12 9 6" })
1527
- )
1528
- )), showCaption && /* @__PURE__ */ React10.createElement("div", { style: { padding: "14px 16px 4px" } }, /* @__PURE__ */ React10.createElement(
1529
- "p",
1530
- {
1531
- style: {
1532
- fontSize: "14px",
1533
- fontWeight: "700",
1534
- color: "#fff",
1535
- margin: 0,
1536
- lineHeight: 1.4,
1537
- animation: "sliderFade 0.3s ease"
1538
- },
1539
- key: current + "-title"
1540
- },
1541
- img.title
1542
- )), showDots && /* @__PURE__ */ React10.createElement("div", { style: {
1543
- display: "flex",
1544
- justifyContent: "center",
1545
- gap: "6px",
1546
- padding: "12px 16px 16px"
1547
- } }, images.map((_, i) => /* @__PURE__ */ React10.createElement(
1548
- "button",
1549
- {
1550
- key: i,
1551
- onClick: () => goTo(i),
1552
- style: {
1553
- width: i === current ? "20px" : "6px",
1554
- height: "6px",
1555
- borderRadius: "3px",
1556
- border: "none",
1557
- cursor: "pointer",
1558
- padding: 0,
1559
- background: i === current ? accent : "rgba(255,255,255,0.2)",
1560
- transition: "all 0.25s ease"
1561
- }
1562
- }
1563
- ))));
1367
+ useEffect4(() => {
1368
+ const timer = setInterval(() => {
1369
+ setCurrentIndex((prevIndex) => (prevIndex + 1) % images.length);
1370
+ }, interval);
1371
+ return () => clearInterval(timer);
1372
+ }, [images.length, interval]);
1373
+ return /* @__PURE__ */ React10.createElement("div", { style: { position: "relative", width, height, borderRadius: "20px", overflow: "hidden", background: bg, boxShadow: "0 10px 40px rgba(0,0,0,0.5)" } }, /* @__PURE__ */ React10.createElement("div", { style: { position: "absolute", inset: 0, display: "flex", transition: "transform 0.5s ease", transform: "translateX(" + -currentIndex * 100 + "%)" } }, images.map((img, i) => /* @__PURE__ */ React10.createElement("div", { key: i, style: { flex: "0 0 100%", height: "100%", position: "relative" } }, /* @__PURE__ */ React10.createElement("img", { src: img, alt: "Slider", style: { width: "100%", height: "100%", objectFit: "cover" } }), /* @__PURE__ */ React10.createElement("div", { style: { position: "absolute", inset: 0, background: "linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 60%)" } })))), /* @__PURE__ */ React10.createElement("div", { style: { position: "absolute", bottom: "20px", left: "50%", transform: "translateX(-50%)", display: "flex", gap: "8px" } }, images.map((_, i) => /* @__PURE__ */ React10.createElement("button", { key: i, onClick: () => setCurrentIndex(i), style: { width: "10px", height: "10px", borderRadius: "50%", border: "none", background: currentIndex === i ? accent : "rgba(255,255,255,0.3)", cursor: "pointer", transition: "background 0.2s" } }))), /* @__PURE__ */ React10.createElement("button", { onClick: () => setCurrentIndex((prevIndex) => (prevIndex - 1 + images.length) % images.length), style: { position: "absolute", left: "20px", top: "50%", transform: "translateY(-50%)", background: alpha(bg, 0.7), border: "none", width: "40px", height: "40px", borderRadius: "50%", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", boxShadow: "0 4px 12px rgba(0,0,0,0.3)" } }, /* @__PURE__ */ React10.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "#fff", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React10.createElement("polyline", { points: "15 18 9 12 15 6" }))), /* @__PURE__ */ React10.createElement("button", { onClick: () => setCurrentIndex((prevIndex) => (prevIndex + 1) % images.length), style: { position: "absolute", right: "20px", top: "50%", transform: "translateY(-50%)", background: alpha(bg, 0.7), border: "none", width: "40px", height: "40px", borderRadius: "50%", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", boxShadow: "0 4px 12px rgba(0,0,0,0.3)" } }, /* @__PURE__ */ React10.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "#fff", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React10.createElement("polyline", { points: "9 18 15 12 9 6" }))));
1564
1374
  };
1565
1375
 
1566
1376
  // src/components/BackgoundImageSlider/BackgoundImageSlider.jsx
1567
- import React11, { useState as useState9, useEffect as useEffect4, useCallback } from "react";
1377
+ import React11, { useState as useState9, useEffect as useEffect5, useCallback } from "react";
1568
1378
  var BackgoundImageSlider = ({
1569
1379
  images = [
1570
1380
  {
@@ -1616,7 +1426,7 @@ var BackgoundImageSlider = ({
1616
1426
  }, [animating, images.length]);
1617
1427
  const prev = () => go(current - 1);
1618
1428
  const next = () => go(current + 1);
1619
- useEffect4(() => {
1429
+ useEffect5(() => {
1620
1430
  if (!autoPlay) return;
1621
1431
  const t = setInterval(() => go(current + 1), autoPlayInterval);
1622
1432
  return () => clearInterval(t);
@@ -1827,7 +1637,7 @@ var BackgoundImageSlider = ({
1827
1637
  };
1828
1638
 
1829
1639
  // src/components/PageLoader/PageLoader.jsx
1830
- import React12, { useState as useState10, useEffect as useEffect5 } from "react";
1640
+ import React12, { useState as useState10, useEffect as useEffect6 } from "react";
1831
1641
  var PageLoader = ({
1832
1642
  logo = "VirtualAI",
1833
1643
  accent = "#6366f1",
@@ -1847,7 +1657,7 @@ var PageLoader = ({
1847
1657
  const b = parseInt(hex.slice(5, 7), 16);
1848
1658
  return `rgba(${r},${g},${b},${op})`;
1849
1659
  };
1850
- useEffect5(() => {
1660
+ useEffect6(() => {
1851
1661
  const steps = 100;
1852
1662
  const interval = duration / steps;
1853
1663
  let current = 0;
@@ -1996,7 +1806,7 @@ var PageLoader = ({
1996
1806
  };
1997
1807
 
1998
1808
  // src/components/OTPInput/OTPInput.jsx
1999
- import React13, { useState as useState11, useRef, useEffect as useEffect6 } from "react";
1809
+ import React13, { useState as useState11, useRef, useEffect as useEffect7 } from "react";
2000
1810
  var OTPInput = ({
2001
1811
  length = 6,
2002
1812
  onComplete = () => {
@@ -2024,11 +1834,11 @@ var OTPInput = ({
2024
1834
  const b = parseInt(hex.slice(5, 7), 16);
2025
1835
  return `rgba(${r},${g},${b},${op})`;
2026
1836
  };
2027
- useEffect6(() => {
1837
+ useEffect7(() => {
2028
1838
  var _a;
2029
1839
  (_a = inputs.current[0]) == null ? void 0 : _a.focus();
2030
1840
  }, []);
2031
- useEffect6(() => {
1841
+ useEffect7(() => {
2032
1842
  if (resendTimer <= 0) return;
2033
1843
  const t = setInterval(() => setResendTimer((s) => s - 1), 1e3);
2034
1844
  return () => clearInterval(t);
@@ -3061,7 +2871,7 @@ var RatingStars = ({
3061
2871
  };
3062
2872
 
3063
2873
  // src/components/StatCard/StatCard.jsx
3064
- import React18, { useEffect as useEffect7, useRef as useRef3, useState as useState16 } from "react";
2874
+ import React18, { useEffect as useEffect8, useRef as useRef3, useState as useState16 } from "react";
3065
2875
  var StatCard = ({
3066
2876
  title = "Active Users",
3067
2877
  value = "128K",
@@ -3081,7 +2891,7 @@ var StatCard = ({
3081
2891
  const [visible, setVisible] = useState16(false);
3082
2892
  const [entered, setEntered] = useState16(false);
3083
2893
  const ref = useRef3(null);
3084
- useEffect7(() => {
2894
+ useEffect8(() => {
3085
2895
  const observer = new IntersectionObserver(
3086
2896
  ([entry]) => {
3087
2897
  if (entry.isIntersecting) {
@@ -3094,7 +2904,7 @@ var StatCard = ({
3094
2904
  if (ref.current) observer.observe(ref.current);
3095
2905
  return () => observer.disconnect();
3096
2906
  }, []);
3097
- useEffect7(() => {
2907
+ useEffect8(() => {
3098
2908
  if (!visible) return;
3099
2909
  setEntered(true);
3100
2910
  const duration = 1400;
@@ -3107,7 +2917,7 @@ var StatCard = ({
3107
2917
  };
3108
2918
  requestAnimationFrame(step);
3109
2919
  }, [visible, numericValue]);
3110
- useEffect7(() => {
2920
+ useEffect8(() => {
3111
2921
  if (!visible) return;
3112
2922
  const t = setTimeout(() => setBarWidth(barPercent), 200);
3113
2923
  return () => clearTimeout(t);
@@ -3277,7 +3087,7 @@ var StatCard = ({
3277
3087
  };
3278
3088
 
3279
3089
  // src/components/ProgressBar/ProgressBar.jsx
3280
- import React19, { useEffect as useEffect8, useRef as useRef4, useState as useState17 } from "react";
3090
+ import React19, { useEffect as useEffect9, useRef as useRef4, useState as useState17 } from "react";
3281
3091
  var ProgressBar = ({
3282
3092
  label = "Progress",
3283
3093
  percentage = 75,
@@ -3294,7 +3104,7 @@ var ProgressBar = ({
3294
3104
  const [filled, setFilled] = useState17(0);
3295
3105
  const [visible, setVisible] = useState17(false);
3296
3106
  const ref = useRef4(null);
3297
- useEffect8(() => {
3107
+ useEffect9(() => {
3298
3108
  const obs = new IntersectionObserver(
3299
3109
  ([e]) => {
3300
3110
  if (e.isIntersecting) {
@@ -3307,7 +3117,7 @@ var ProgressBar = ({
3307
3117
  if (ref.current) obs.observe(ref.current);
3308
3118
  return () => obs.disconnect();
3309
3119
  }, []);
3310
- useEffect8(() => {
3120
+ useEffect9(() => {
3311
3121
  if (!visible) return;
3312
3122
  const duration = 1200;
3313
3123
  const start = performance.now();
@@ -3729,75 +3539,83 @@ var ReviewCard = ({
3729
3539
  // src/components/Card/Card.jsx
3730
3540
  import React23, { useState as useState20 } from "react";
3731
3541
  var Card = ({
3732
- title = "Performance",
3733
- description = "Real-time metrics with live dashboard updates every second.",
3734
- icon = "\u26A1",
3735
- tag = "Active",
3736
- onClick
3542
+ title = "Premium Design",
3543
+ description = "Elevate your project with our high-quality UI components and templates.",
3544
+ icon = "\u2605",
3545
+ accent = "#7c3aed",
3546
+ bg = "#0f172a",
3547
+ borderColor = "rgba(255,255,255,0.1)",
3548
+ onAction = () => {
3549
+ }
3737
3550
  }) => {
3738
3551
  const [hovered, setHovered] = useState20(false);
3552
+ const alpha = (hex, op) => {
3553
+ const r = parseInt(hex.slice(1, 3), 16), g = parseInt(hex.slice(3, 5), 16), b = parseInt(hex.slice(5, 7), 16);
3554
+ return "rgba(" + r + "," + g + "," + b + "," + op + ")";
3555
+ };
3739
3556
  return /* @__PURE__ */ React23.createElement(
3740
3557
  "div",
3741
3558
  {
3742
3559
  onMouseEnter: () => setHovered(true),
3743
3560
  onMouseLeave: () => setHovered(false),
3744
- onClick,
3745
3561
  style: {
3746
- background: "#ffffff",
3747
- border: `0.5px solid ${hovered ? "#00000033" : "#0000001a"}`,
3748
- borderRadius: "12px",
3749
- padding: "1.25rem",
3750
- transition: "border-color 0.2s, transform 0.2s",
3751
- transform: hovered ? "translateY(-2px)" : "translateY(0)",
3752
- cursor: onClick ? "pointer" : "default",
3753
- position: "relative",
3754
- overflow: "hidden",
3755
- fontFamily: "sans-serif",
3756
- width: "260px"
3562
+ background: bg,
3563
+ borderRadius: "16px",
3564
+ padding: "24px",
3565
+ width: "280px",
3566
+ border: "1px solid " + (hovered ? alpha(accent, 0.3) : borderColor),
3567
+ fontFamily: "system-ui,sans-serif",
3568
+ transition: "all 0.2s ease",
3569
+ boxShadow: hovered ? "0 10px 30px rgba(0,0,0,0.5)" : "0 5px 15px rgba(0,0,0,0.3)",
3570
+ transform: hovered ? "translateY(-4px)" : "translateY(0)"
3757
3571
  }
3758
3572
  },
3759
3573
  /* @__PURE__ */ React23.createElement("div", { style: {
3760
- position: "absolute",
3761
- top: 0,
3762
- left: 0,
3763
- right: 0,
3764
- height: "3px",
3765
- background: "#1D9E75",
3766
- borderRadius: "12px 12px 0 0"
3767
- } }),
3768
- /* @__PURE__ */ React23.createElement("div", { style: {
3769
- width: 40,
3770
- height: 40,
3771
- borderRadius: 8,
3772
- background: "#E1F5EE",
3574
+ width: "48px",
3575
+ height: "48px",
3576
+ borderRadius: "12px",
3577
+ background: alpha(accent, 0.15),
3773
3578
  display: "flex",
3774
3579
  alignItems: "center",
3775
3580
  justifyContent: "center",
3776
- fontSize: 18,
3777
- marginBottom: 14
3581
+ marginBottom: "16px",
3582
+ border: "1px solid " + alpha(accent, 0.3),
3583
+ color: accent,
3584
+ fontSize: "20px",
3585
+ fontWeight: "bold"
3778
3586
  } }, icon),
3779
- /* @__PURE__ */ React23.createElement("p", { style: { fontSize: 15, fontWeight: 700, color: "#111", margin: "0 0 6px" } }, title),
3780
- /* @__PURE__ */ React23.createElement("p", { style: { fontSize: 13, color: "#666", lineHeight: 1.6, margin: "0 0 16px" } }, description),
3781
- /* @__PURE__ */ React23.createElement("div", { style: {
3782
- display: "flex",
3783
- alignItems: "center",
3784
- justifyContent: "space-between",
3785
- borderTop: "0.5px solid #0000001a",
3786
- paddingTop: 12
3787
- } }, /* @__PURE__ */ React23.createElement("span", { style: {
3788
- fontSize: 11,
3789
- fontWeight: 500,
3790
- padding: "3px 9px",
3791
- borderRadius: 20,
3792
- background: "#E1F5EE",
3793
- color: "#0F6E56"
3794
- } }, tag), /* @__PURE__ */ React23.createElement("span", { style: {
3795
- fontSize: 14,
3796
- color: "#999",
3797
- display: "inline-block",
3798
- transition: "transform 0.2s",
3799
- transform: hovered ? "translateX(3px)" : "translateX(0)"
3800
- } }, "\u2192"))
3587
+ /* @__PURE__ */ React23.createElement("h3", { style: {
3588
+ fontSize: "18px",
3589
+ fontWeight: "700",
3590
+ color: "#fff",
3591
+ margin: "0 0 8px 0",
3592
+ lineHeight: 1.3
3593
+ } }, title),
3594
+ /* @__PURE__ */ React23.createElement("p", { style: {
3595
+ fontSize: "14px",
3596
+ color: "rgba(255,255,255,0.6)",
3597
+ margin: "0 0 20px 0",
3598
+ lineHeight: 1.5
3599
+ } }, description),
3600
+ /* @__PURE__ */ React23.createElement(
3601
+ "button",
3602
+ {
3603
+ onClick: onAction,
3604
+ style: {
3605
+ padding: "10px 18px",
3606
+ borderRadius: "10px",
3607
+ border: "none",
3608
+ background: hovered ? "linear-gradient(135deg, " + accent + ", " + alpha(accent, 0.8) + ")" : alpha(accent, 0.1),
3609
+ color: hovered ? "#fff" : accent,
3610
+ fontSize: "13px",
3611
+ fontWeight: "600",
3612
+ cursor: "pointer",
3613
+ transition: "all 0.2s ease",
3614
+ fontFamily: "inherit"
3615
+ }
3616
+ },
3617
+ "Learn More"
3618
+ )
3801
3619
  );
3802
3620
  };
3803
3621
 
package/package.json CHANGED
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "uiverseplus-lib",
3
- "version": "1.0.0",
3
+ "version": "1.0.3",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "author": "Chitranjan Rana",
7
7
  "module": "dist/index.mjs",
8
8
  "main": "dist/index.mjs",
9
- "files": ["dist"],
9
+ "files": [
10
+ "dist"
11
+ ],
10
12
  "scripts": {
11
13
  "build": "tsup"
12
14
  },
@@ -18,6 +20,3 @@
18
20
  "typescript": "^7.0.2"
19
21
  }
20
22
  }
21
-
22
-
23
-