bhoomi-virtual-ui-library 1.0.5 → 1.0.6

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
@@ -32,6 +32,7 @@ __export(index_exports, {
32
32
  Button: () => Button,
33
33
  Card: () => Card,
34
34
  ECommerceCard: () => ECommerceCard,
35
+ PricingCard: () => PricingCard,
35
36
  Profilecard: () => Profilecard
36
37
  });
37
38
  module.exports = __toCommonJS(index_exports);
@@ -644,10 +645,34 @@ var ECommerceCard = ({
644
645
  };
645
646
  return /* @__PURE__ */ import_react4.default.createElement("div", { style: { background: bg, borderRadius: "20px", padding: "28px 24px", width: "300px", color: "#fff", fontFamily: "system-ui,sans-serif", boxShadow: "0 10px 40px rgba(0,0,0,0.5)", border: "1px solid " + alpha(accent, 0.25), position: "relative", overflow: "hidden" } }, /* @__PURE__ */ import_react4.default.createElement("div", { style: { position: "absolute", top: 0, left: 0, right: 0, height: "3px", background: "linear-gradient(90deg, " + accent + ", " + alpha(accent, 0.3) + ")" } }), /* @__PURE__ */ import_react4.default.createElement("img", { src: image, alt: title, style: { width: "100%", height: "180px", objectFit: "cover", transform: "scale(1)", transition: "transform 0.4s ease" } }), /* @__PURE__ */ import_react4.default.createElement("div", { style: { fontSize: "20px", fontWeight: "700", marginBottom: "4px" } }, title), /* @__PURE__ */ import_react4.default.createElement("div", { style: { fontSize: "13px", color: "rgba(255,255,255,0.45)", marginBottom: "20px" } }, description), /* @__PURE__ */ import_react4.default.createElement("div", { style: { display: "flex", alignItems: "flex-end", gap: "3px", marginBottom: "4px" } }, /* @__PURE__ */ import_react4.default.createElement("span", { style: { fontSize: "18px", fontWeight: "700", color: "rgba(255,255,255,0.5)", lineHeight: 2 } }, currency), /* @__PURE__ */ import_react4.default.createElement("span", { style: { fontSize: "52px", fontWeight: "800", lineHeight: 1 } }, price)), /* @__PURE__ */ import_react4.default.createElement("div", { style: { fontSize: "12px", color: "rgba(255,255,255,0.35)", marginBottom: "20px" } }, period), /* @__PURE__ */ import_react4.default.createElement("button", { onClick: onButtonClick, style: { width: "100%", padding: "13px", borderRadius: "12px", border: "none", background: "linear-gradient(135deg, " + accent + ", " + alpha(accent, 0.7) + ")", color: "#fff", fontSize: "14px", fontWeight: "700", cursor: "pointer", fontFamily: "system-ui,sans-serif" } }, buttonText));
646
647
  };
648
+
649
+ // src/components/PricingCard/PricingCard.jsx
650
+ var import_react5 = __toESM(require("react"));
651
+ var PricingCard = ({
652
+ planName = "Pro Plan",
653
+ description = "For teams that need more power.",
654
+ price = 29,
655
+ currency = "$",
656
+ period = "per month",
657
+ badgeText = "Most Popular",
658
+ ctaText = "Get Started",
659
+ accent = "#6366f1",
660
+ bg = "#0f172a",
661
+ features = ["Unlimited projects", "Priority support", "Advanced analytics", "Custom integrations"],
662
+ onCtaClick = () => {
663
+ }
664
+ }) => {
665
+ const alpha = (hex, op) => {
666
+ const r = parseInt(hex.slice(1, 3), 16), g = parseInt(hex.slice(3, 5), 16), b = parseInt(hex.slice(5, 7), 16);
667
+ return "rgba(" + r + "," + g + "," + b + "," + op + ")";
668
+ };
669
+ return /* @__PURE__ */ import_react5.default.createElement("div", { style: { background: bg, borderRadius: "20px", padding: "28px 24px", width: "300px", color: "#fff", fontFamily: "system-ui,sans-serif", boxShadow: "0 10px 40px rgba(0,0,0,0.5)", border: "1px solid " + alpha(accent, 0.25), position: "relative", overflow: "hidden" } }, /* @__PURE__ */ import_react5.default.createElement("div", { style: { position: "absolute", top: 0, left: 0, right: 0, height: "3px", background: "linear-gradient(90deg, " + accent + ", " + alpha(accent, 0.3) + ")" } }), badgeText && /* @__PURE__ */ import_react5.default.createElement("div", { style: { display: "inline-flex", alignItems: "center", gap: "6px", padding: "4px 12px", borderRadius: "100px", marginBottom: "14px", background: alpha(accent, 0.12), border: "1px solid " + alpha(accent, 0.3), fontSize: "11px", fontWeight: "700", color: accent, textTransform: "uppercase", letterSpacing: "0.5px" } }, /* @__PURE__ */ import_react5.default.createElement("div", { style: { width: 6, height: 6, borderRadius: "50%", background: accent } }), badgeText), /* @__PURE__ */ import_react5.default.createElement("div", { style: { fontSize: "20px", fontWeight: "800", marginBottom: "4px" } }, planName), /* @__PURE__ */ import_react5.default.createElement("div", { style: { fontSize: "13px", color: "rgba(255,255,255,0.45)", marginBottom: "20px" } }, description), /* @__PURE__ */ import_react5.default.createElement("div", { style: { display: "flex", alignItems: "flex-end", gap: "3px", marginBottom: "4px" } }, /* @__PURE__ */ import_react5.default.createElement("span", { style: { fontSize: "18px", fontWeight: "700", color: "rgba(255,255,255,0.5)", lineHeight: 2 } }, currency), /* @__PURE__ */ import_react5.default.createElement("span", { style: { fontSize: "52px", fontWeight: "800", lineHeight: 1 } }, Math.round(price))), /* @__PURE__ */ import_react5.default.createElement("div", { style: { fontSize: "12px", color: "rgba(255,255,255,0.35)", marginBottom: "20px" } }, period), /* @__PURE__ */ import_react5.default.createElement("div", { style: { height: "1px", background: "rgba(255,255,255,0.07)", marginBottom: "16px" } }), /* @__PURE__ */ import_react5.default.createElement("ul", { style: { listStyle: "none", padding: 0, margin: "0 0 22px", display: "flex", flexDirection: "column", gap: "10px" } }, features.map((f, i) => /* @__PURE__ */ import_react5.default.createElement("li", { key: i, style: { display: "flex", alignItems: "center", gap: "10px", fontSize: "13px", color: "rgba(255,255,255,0.75)", cursor: "pointer" } }, /* @__PURE__ */ import_react5.default.createElement("div", { style: { width: "18px", height: "18px", borderRadius: "50%", display: "flex", alignItems: "center", justifyContent: "center", background: alpha(accent, 0.18), border: "1px solid " + alpha(accent, 0.4), flexShrink: 0 } }, /* @__PURE__ */ import_react5.default.createElement("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "none", stroke: "#fff", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react5.default.createElement("polyline", { points: "1.5,6 4.5,9 10.5,3" }))), f))), /* @__PURE__ */ import_react5.default.createElement("button", { onClick: onCtaClick, style: { width: "100%", padding: "13px", borderRadius: "12px", border: "none", background: "linear-gradient(135deg, " + accent + ", " + alpha(accent, 0.7) + ")", color: "#fff", fontSize: "14px", fontWeight: "700", cursor: "pointer", fontFamily: "system-ui,sans-serif" } }, ctaText));
670
+ };
647
671
  // Annotate the CommonJS export names for ESM import in node:
648
672
  0 && (module.exports = {
649
673
  Button,
650
674
  Card,
651
675
  ECommerceCard,
676
+ PricingCard,
652
677
  Profilecard
653
678
  });
package/dist/index.mjs CHANGED
@@ -606,9 +606,33 @@ var ECommerceCard = ({
606
606
  };
607
607
  return /* @__PURE__ */ React4.createElement("div", { style: { background: bg, borderRadius: "20px", padding: "28px 24px", width: "300px", color: "#fff", fontFamily: "system-ui,sans-serif", boxShadow: "0 10px 40px rgba(0,0,0,0.5)", border: "1px solid " + alpha(accent, 0.25), position: "relative", overflow: "hidden" } }, /* @__PURE__ */ React4.createElement("div", { style: { position: "absolute", top: 0, left: 0, right: 0, height: "3px", background: "linear-gradient(90deg, " + accent + ", " + alpha(accent, 0.3) + ")" } }), /* @__PURE__ */ React4.createElement("img", { src: image, alt: title, style: { width: "100%", height: "180px", objectFit: "cover", transform: "scale(1)", transition: "transform 0.4s ease" } }), /* @__PURE__ */ React4.createElement("div", { style: { fontSize: "20px", fontWeight: "700", marginBottom: "4px" } }, title), /* @__PURE__ */ React4.createElement("div", { style: { fontSize: "13px", color: "rgba(255,255,255,0.45)", marginBottom: "20px" } }, description), /* @__PURE__ */ React4.createElement("div", { style: { display: "flex", alignItems: "flex-end", gap: "3px", marginBottom: "4px" } }, /* @__PURE__ */ React4.createElement("span", { style: { fontSize: "18px", fontWeight: "700", color: "rgba(255,255,255,0.5)", lineHeight: 2 } }, currency), /* @__PURE__ */ React4.createElement("span", { style: { fontSize: "52px", fontWeight: "800", lineHeight: 1 } }, price)), /* @__PURE__ */ React4.createElement("div", { style: { fontSize: "12px", color: "rgba(255,255,255,0.35)", marginBottom: "20px" } }, period), /* @__PURE__ */ React4.createElement("button", { onClick: onButtonClick, style: { width: "100%", padding: "13px", borderRadius: "12px", border: "none", background: "linear-gradient(135deg, " + accent + ", " + alpha(accent, 0.7) + ")", color: "#fff", fontSize: "14px", fontWeight: "700", cursor: "pointer", fontFamily: "system-ui,sans-serif" } }, buttonText));
608
608
  };
609
+
610
+ // src/components/PricingCard/PricingCard.jsx
611
+ import React5 from "react";
612
+ var PricingCard = ({
613
+ planName = "Pro Plan",
614
+ description = "For teams that need more power.",
615
+ price = 29,
616
+ currency = "$",
617
+ period = "per month",
618
+ badgeText = "Most Popular",
619
+ ctaText = "Get Started",
620
+ accent = "#6366f1",
621
+ bg = "#0f172a",
622
+ features = ["Unlimited projects", "Priority support", "Advanced analytics", "Custom integrations"],
623
+ onCtaClick = () => {
624
+ }
625
+ }) => {
626
+ const alpha = (hex, op) => {
627
+ const r = parseInt(hex.slice(1, 3), 16), g = parseInt(hex.slice(3, 5), 16), b = parseInt(hex.slice(5, 7), 16);
628
+ return "rgba(" + r + "," + g + "," + b + "," + op + ")";
629
+ };
630
+ return /* @__PURE__ */ React5.createElement("div", { style: { background: bg, borderRadius: "20px", padding: "28px 24px", width: "300px", color: "#fff", fontFamily: "system-ui,sans-serif", boxShadow: "0 10px 40px rgba(0,0,0,0.5)", border: "1px solid " + alpha(accent, 0.25), position: "relative", overflow: "hidden" } }, /* @__PURE__ */ React5.createElement("div", { style: { position: "absolute", top: 0, left: 0, right: 0, height: "3px", background: "linear-gradient(90deg, " + accent + ", " + alpha(accent, 0.3) + ")" } }), badgeText && /* @__PURE__ */ React5.createElement("div", { style: { display: "inline-flex", alignItems: "center", gap: "6px", padding: "4px 12px", borderRadius: "100px", marginBottom: "14px", background: alpha(accent, 0.12), border: "1px solid " + alpha(accent, 0.3), fontSize: "11px", fontWeight: "700", color: accent, textTransform: "uppercase", letterSpacing: "0.5px" } }, /* @__PURE__ */ React5.createElement("div", { style: { width: 6, height: 6, borderRadius: "50%", background: accent } }), badgeText), /* @__PURE__ */ React5.createElement("div", { style: { fontSize: "20px", fontWeight: "800", marginBottom: "4px" } }, planName), /* @__PURE__ */ React5.createElement("div", { style: { fontSize: "13px", color: "rgba(255,255,255,0.45)", marginBottom: "20px" } }, description), /* @__PURE__ */ React5.createElement("div", { style: { display: "flex", alignItems: "flex-end", gap: "3px", marginBottom: "4px" } }, /* @__PURE__ */ React5.createElement("span", { style: { fontSize: "18px", fontWeight: "700", color: "rgba(255,255,255,0.5)", lineHeight: 2 } }, currency), /* @__PURE__ */ React5.createElement("span", { style: { fontSize: "52px", fontWeight: "800", lineHeight: 1 } }, Math.round(price))), /* @__PURE__ */ React5.createElement("div", { style: { fontSize: "12px", color: "rgba(255,255,255,0.35)", marginBottom: "20px" } }, period), /* @__PURE__ */ React5.createElement("div", { style: { height: "1px", background: "rgba(255,255,255,0.07)", marginBottom: "16px" } }), /* @__PURE__ */ React5.createElement("ul", { style: { listStyle: "none", padding: 0, margin: "0 0 22px", display: "flex", flexDirection: "column", gap: "10px" } }, features.map((f, i) => /* @__PURE__ */ React5.createElement("li", { key: i, style: { display: "flex", alignItems: "center", gap: "10px", fontSize: "13px", color: "rgba(255,255,255,0.75)", cursor: "pointer" } }, /* @__PURE__ */ React5.createElement("div", { style: { width: "18px", height: "18px", borderRadius: "50%", display: "flex", alignItems: "center", justifyContent: "center", background: alpha(accent, 0.18), border: "1px solid " + alpha(accent, 0.4), flexShrink: 0 } }, /* @__PURE__ */ React5.createElement("svg", { width: "10", height: "10", viewBox: "0 0 12 12", fill: "none", stroke: "#fff", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React5.createElement("polyline", { points: "1.5,6 4.5,9 10.5,3" }))), f))), /* @__PURE__ */ React5.createElement("button", { onClick: onCtaClick, style: { width: "100%", padding: "13px", borderRadius: "12px", border: "none", background: "linear-gradient(135deg, " + accent + ", " + alpha(accent, 0.7) + ")", color: "#fff", fontSize: "14px", fontWeight: "700", cursor: "pointer", fontFamily: "system-ui,sans-serif" } }, ctaText));
631
+ };
609
632
  export {
610
633
  Button,
611
634
  Card,
612
635
  ECommerceCard,
636
+ PricingCard,
613
637
  Profilecard
614
638
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bhoomi-virtual-ui-library",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.mjs",
6
6
  "files": [