@busiverse/ui 0.2.5 → 0.2.8
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/README.md +8 -27
- package/dist/assets-public.d.ts +2 -0
- package/dist/assets-public.d.ts.map +1 -0
- package/dist/assets-public.js +6 -0
- package/dist/billing.d.ts +3 -0
- package/dist/billing.d.ts.map +1 -0
- package/dist/billing.js +46 -0
- package/dist/brand.d.ts +2 -0
- package/dist/brand.d.ts.map +1 -0
- package/dist/brand.js +14 -0
- package/dist/{chunk-PTOKOI4Q.js → chunk-32FPZZH2.js} +1 -114
- package/dist/chunk-IVTESKF4.js +40 -0
- package/dist/{chunk-UU2CXC3N.js → chunk-MPBOCUY4.js} +112 -143
- package/dist/chunk-NN24XQYI.js +109 -0
- package/dist/chunk-NUGBTLBK.js +72 -0
- package/dist/chunk-QK6O2RHQ.js +50 -0
- package/dist/components/brand/BusiverseBrandHead.d.ts.map +1 -1
- package/dist/components/marketing/MarketingFeatureCard.d.ts +11 -0
- package/dist/components/marketing/MarketingFeatureCard.d.ts.map +1 -0
- package/dist/components/marketing/MarketingPricingCard.d.ts +14 -0
- package/dist/components/marketing/MarketingPricingCard.d.ts.map +1 -0
- package/dist/components/marketing/MarketingSectionHeader.d.ts +10 -0
- package/dist/components/marketing/MarketingSectionHeader.d.ts.map +1 -0
- package/dist/components/marketing/index.d.ts +3 -0
- package/dist/components/marketing/index.d.ts.map +1 -1
- package/dist/i18n-public.d.ts +2 -0
- package/dist/i18n-public.d.ts.map +1 -0
- package/dist/{i18n/index.js → i18n-public.js} +2 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -49
- package/dist/marketing.d.ts +2 -0
- package/dist/marketing.d.ts.map +1 -0
- package/dist/marketing.js +15 -0
- package/dist/social.d.ts +2 -0
- package/dist/social.d.ts.map +1 -0
- package/dist/{components/social/index.js → social.js} +2 -2
- package/dist/styles.css +57 -0
- package/dist/tailwind-public.d.ts +2 -0
- package/dist/tailwind-public.d.ts.map +1 -0
- package/dist/{tailwind/index.js → tailwind-public.js} +1 -1
- package/package.json +29 -24
- package/dist/assets/index.d.ts +0 -2
- package/dist/assets/index.d.ts.map +0 -1
- package/dist/assets/index.js +0 -49
- package/dist/chunk-NZ65VTKR.js +0 -0
- package/dist/components/billing/index.js +0 -12
- package/dist/components/brand/index.js +0 -11
|
@@ -5,65 +5,76 @@ import {
|
|
|
5
5
|
getSupportedRegion,
|
|
6
6
|
useBusiverseI18n
|
|
7
7
|
} from "./chunk-WDOMYE77.js";
|
|
8
|
+
import {
|
|
9
|
+
Button
|
|
10
|
+
} from "./chunk-IVTESKF4.js";
|
|
8
11
|
import {
|
|
9
12
|
cn
|
|
10
13
|
} from "./chunk-PYZVP4NI.js";
|
|
11
14
|
|
|
12
|
-
// src/components/
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
);
|
|
43
|
-
}
|
|
15
|
+
// src/components/billing/CurrencyAmount.tsx
|
|
16
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
17
|
+
function CurrencyAmount({ amount, currency = "NGN", locale = "en-NG", minimumFractionDigits, maximumFractionDigits }) {
|
|
18
|
+
const region = { locale, currencyCode: currency };
|
|
19
|
+
return /* @__PURE__ */ jsx(Fragment, { children: formatCurrency(amount, region, { minimumFractionDigits, maximumFractionDigits }) });
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// src/components/billing/UsageQuotaBar.tsx
|
|
23
|
+
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
24
|
+
function UsageQuotaBar({ used, limit, label }) {
|
|
25
|
+
const percent = limit > 0 ? Math.min(100, Math.round(used / limit * 100)) : 0;
|
|
26
|
+
return /* @__PURE__ */ jsxs("div", { className: "busiverse-quota", children: [
|
|
27
|
+
/* @__PURE__ */ jsxs("div", { className: "busiverse-quota-row", children: [
|
|
28
|
+
/* @__PURE__ */ jsx2("span", { children: label }),
|
|
29
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
30
|
+
used.toLocaleString(),
|
|
31
|
+
" / ",
|
|
32
|
+
limit.toLocaleString()
|
|
33
|
+
] })
|
|
34
|
+
] }),
|
|
35
|
+
/* @__PURE__ */ jsx2("div", { className: "busiverse-quota-track", children: /* @__PURE__ */ jsx2("div", { className: "busiverse-quota-fill", style: { width: `${percent}%` } }) })
|
|
36
|
+
] });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// src/components/data/DataTable.tsx
|
|
40
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
41
|
+
function getCellValue(row, key) {
|
|
42
|
+
const value = row[String(key)];
|
|
43
|
+
if (value == null) return "\u2014";
|
|
44
|
+
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") return String(value);
|
|
45
|
+
return JSON.stringify(value);
|
|
46
|
+
}
|
|
47
|
+
function DataTable({ rows, columns, getRowKey, isLoading, emptyState, className, dense }) {
|
|
48
|
+
if (isLoading) return /* @__PURE__ */ jsx3("div", { className: "busiverse-table-state", children: "Loading records\u2026" });
|
|
49
|
+
if (!rows.length) return /* @__PURE__ */ jsx3("div", { className: "busiverse-table-state", children: emptyState ?? "No records found." });
|
|
50
|
+
return /* @__PURE__ */ jsx3("div", { className: cn("busiverse-table-wrap", className), children: /* @__PURE__ */ jsxs2("table", { className: cn("busiverse-table", dense && "is-dense"), children: [
|
|
51
|
+
/* @__PURE__ */ jsx3("thead", { children: /* @__PURE__ */ jsx3("tr", { children: columns.map((column) => /* @__PURE__ */ jsx3("th", { style: { width: column.width, textAlign: column.align }, children: column.header }, String(column.key))) }) }),
|
|
52
|
+
/* @__PURE__ */ jsx3("tbody", { children: rows.map((row, rowIndex) => /* @__PURE__ */ jsx3("tr", { children: columns.map((column) => /* @__PURE__ */ jsx3("td", { style: { textAlign: column.align }, children: column.render ? column.render(row, rowIndex) : getCellValue(row, column.key) }, String(column.key))) }, getRowKey?.(row, rowIndex) ?? rowIndex)) })
|
|
53
|
+
] }) });
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// src/components/primitives/Badge.tsx
|
|
57
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
58
|
+
function Badge({ className, tone = "blue", ...props }) {
|
|
59
|
+
return /* @__PURE__ */ jsx4("span", { className: cn("busiverse-badge", `busiverse-badge-${tone}`, className), ...props });
|
|
60
|
+
}
|
|
44
61
|
|
|
45
62
|
// src/components/primitives/Card.tsx
|
|
46
|
-
import { jsx as
|
|
63
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
47
64
|
function Card({ className, interactive, ...props }) {
|
|
48
|
-
return /* @__PURE__ */
|
|
65
|
+
return /* @__PURE__ */ jsx5("div", { className: cn("busiverse-card", interactive && "busiverse-card-interactive", className), ...props });
|
|
49
66
|
}
|
|
50
67
|
function CardHeader({ className, ...props }) {
|
|
51
|
-
return /* @__PURE__ */
|
|
68
|
+
return /* @__PURE__ */ jsx5("div", { className: cn("busiverse-card-header", className), ...props });
|
|
52
69
|
}
|
|
53
70
|
function CardTitle({ className, ...props }) {
|
|
54
|
-
return /* @__PURE__ */
|
|
71
|
+
return /* @__PURE__ */ jsx5("h3", { className: cn("busiverse-card-title", className), ...props });
|
|
55
72
|
}
|
|
56
73
|
function CardDescription({ className, ...props }) {
|
|
57
|
-
return /* @__PURE__ */
|
|
74
|
+
return /* @__PURE__ */ jsx5("p", { className: cn("busiverse-card-description", className), ...props });
|
|
58
75
|
}
|
|
59
76
|
function CardContent({ className, ...props }) {
|
|
60
|
-
return /* @__PURE__ */
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// src/components/primitives/Badge.tsx
|
|
64
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
65
|
-
function Badge({ className, tone = "blue", ...props }) {
|
|
66
|
-
return /* @__PURE__ */ jsx3("span", { className: cn("busiverse-badge", `busiverse-badge-${tone}`, className), ...props });
|
|
77
|
+
return /* @__PURE__ */ jsx5("div", { className: cn("busiverse-card-content", className), ...props });
|
|
67
78
|
}
|
|
68
79
|
|
|
69
80
|
// src/registry/services.ts
|
|
@@ -104,47 +115,6 @@ function getBusiverseService(key) {
|
|
|
104
115
|
return busiverseServices.find((service) => service.key === key);
|
|
105
116
|
}
|
|
106
117
|
|
|
107
|
-
// src/components/data/DataTable.tsx
|
|
108
|
-
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
109
|
-
function getCellValue(row, key) {
|
|
110
|
-
const value = row[String(key)];
|
|
111
|
-
if (value == null) return "\u2014";
|
|
112
|
-
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") return String(value);
|
|
113
|
-
return JSON.stringify(value);
|
|
114
|
-
}
|
|
115
|
-
function DataTable({ rows, columns, getRowKey, isLoading, emptyState, className, dense }) {
|
|
116
|
-
if (isLoading) return /* @__PURE__ */ jsx4("div", { className: "busiverse-table-state", children: "Loading records\u2026" });
|
|
117
|
-
if (!rows.length) return /* @__PURE__ */ jsx4("div", { className: "busiverse-table-state", children: emptyState ?? "No records found." });
|
|
118
|
-
return /* @__PURE__ */ jsx4("div", { className: cn("busiverse-table-wrap", className), children: /* @__PURE__ */ jsxs2("table", { className: cn("busiverse-table", dense && "is-dense"), children: [
|
|
119
|
-
/* @__PURE__ */ jsx4("thead", { children: /* @__PURE__ */ jsx4("tr", { children: columns.map((column) => /* @__PURE__ */ jsx4("th", { style: { width: column.width, textAlign: column.align }, children: column.header }, String(column.key))) }) }),
|
|
120
|
-
/* @__PURE__ */ jsx4("tbody", { children: rows.map((row, rowIndex) => /* @__PURE__ */ jsx4("tr", { children: columns.map((column) => /* @__PURE__ */ jsx4("td", { style: { textAlign: column.align }, children: column.render ? column.render(row, rowIndex) : getCellValue(row, column.key) }, String(column.key))) }, getRowKey?.(row, rowIndex) ?? rowIndex)) })
|
|
121
|
-
] }) });
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// src/components/billing/CurrencyAmount.tsx
|
|
125
|
-
import { Fragment, jsx as jsx5 } from "react/jsx-runtime";
|
|
126
|
-
function CurrencyAmount({ amount, currency = "NGN", locale = "en-NG", minimumFractionDigits, maximumFractionDigits }) {
|
|
127
|
-
const region = { locale, currencyCode: currency };
|
|
128
|
-
return /* @__PURE__ */ jsx5(Fragment, { children: formatCurrency(amount, region, { minimumFractionDigits, maximumFractionDigits }) });
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// src/components/billing/UsageQuotaBar.tsx
|
|
132
|
-
import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
133
|
-
function UsageQuotaBar({ used, limit, label }) {
|
|
134
|
-
const percent = limit > 0 ? Math.min(100, Math.round(used / limit * 100)) : 0;
|
|
135
|
-
return /* @__PURE__ */ jsxs3("div", { className: "busiverse-quota", children: [
|
|
136
|
-
/* @__PURE__ */ jsxs3("div", { className: "busiverse-quota-row", children: [
|
|
137
|
-
/* @__PURE__ */ jsx6("span", { children: label }),
|
|
138
|
-
/* @__PURE__ */ jsxs3("span", { children: [
|
|
139
|
-
used.toLocaleString(),
|
|
140
|
-
" / ",
|
|
141
|
-
limit.toLocaleString()
|
|
142
|
-
] })
|
|
143
|
-
] }),
|
|
144
|
-
/* @__PURE__ */ jsx6("div", { className: "busiverse-quota-track", children: /* @__PURE__ */ jsx6("div", { className: "busiverse-quota-fill", style: { width: `${percent}%` } }) })
|
|
145
|
-
] });
|
|
146
|
-
}
|
|
147
|
-
|
|
148
118
|
// src/pricing/servicePricingCatalog.ts
|
|
149
119
|
var busiverseServicePricingCatalog = [
|
|
150
120
|
{
|
|
@@ -7704,8 +7674,8 @@ function describeTimeEquivalents(row, region) {
|
|
|
7704
7674
|
}
|
|
7705
7675
|
|
|
7706
7676
|
// src/components/billing/ServicePricingExplorer.tsx
|
|
7707
|
-
import * as
|
|
7708
|
-
import { jsx as
|
|
7677
|
+
import * as React from "react";
|
|
7678
|
+
import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
7709
7679
|
var categoryOrder = ["all", "core", "security", "finance", "business", "commerce", "operations", "intelligence", "blockchain", "developer"];
|
|
7710
7680
|
var categoryLabels = {
|
|
7711
7681
|
all: "All services",
|
|
@@ -7727,7 +7697,7 @@ function summarizeRange(min, max, region) {
|
|
|
7727
7697
|
return `${formatPricingValue(min, region)} \u2013 ${formatPricingValue(max, region)}`;
|
|
7728
7698
|
}
|
|
7729
7699
|
function useFilteredSummaries(rows) {
|
|
7730
|
-
return
|
|
7700
|
+
return React.useMemo(() => {
|
|
7731
7701
|
const serviceKeys = [...new Set(rows.map((row) => row.service))];
|
|
7732
7702
|
return getServicePricingSummaries(busiverseServices.filter((service) => serviceKeys.includes(service.key)));
|
|
7733
7703
|
}, [rows]);
|
|
@@ -7742,28 +7712,28 @@ function ServicePricingExplorer({
|
|
|
7742
7712
|
maxInitialRows = 48
|
|
7743
7713
|
}) {
|
|
7744
7714
|
const { region } = useBusiverseI18n();
|
|
7745
|
-
const [audience, setAudience] =
|
|
7746
|
-
const [category, setCategory] =
|
|
7747
|
-
const [query, setQuery] =
|
|
7748
|
-
const [showAllRows, setShowAllRows] =
|
|
7715
|
+
const [audience, setAudience] = React.useState(defaultAudience);
|
|
7716
|
+
const [category, setCategory] = React.useState("all");
|
|
7717
|
+
const [query, setQuery] = React.useState("");
|
|
7718
|
+
const [showAllRows, setShowAllRows] = React.useState(false);
|
|
7749
7719
|
const summaries = useFilteredSummaries(rows);
|
|
7750
|
-
const filteredSummaries =
|
|
7720
|
+
const filteredSummaries = React.useMemo(() => summaries.filter((summary) => {
|
|
7751
7721
|
const service = getBusiverseService(summary.service);
|
|
7752
7722
|
if (category !== "all" && service?.category !== category) return false;
|
|
7753
7723
|
if (!query.trim()) return true;
|
|
7754
7724
|
const haystack = `${summary.service} ${service?.name ?? ""} ${service?.description ?? ""}`.toLowerCase();
|
|
7755
7725
|
return haystack.includes(query.toLowerCase());
|
|
7756
7726
|
}), [category, query, summaries]);
|
|
7757
|
-
const filteredRows =
|
|
7727
|
+
const filteredRows = React.useMemo(() => {
|
|
7758
7728
|
const allowedServices = new Set(filteredSummaries.map((summary) => summary.service));
|
|
7759
7729
|
return rows.filter((row) => allowedServices.has(row.service));
|
|
7760
7730
|
}, [rows, filteredSummaries]);
|
|
7761
7731
|
const visibleRows = showAllRows ? filteredRows : filteredRows.slice(0, maxInitialRows);
|
|
7762
7732
|
const columns = [
|
|
7763
7733
|
{ key: "service", header: "Service", render: (row) => serviceLabel(row.service), width: "160px" },
|
|
7764
|
-
{ key: "displayName", header: "Operation", render: (row) => /* @__PURE__ */
|
|
7765
|
-
/* @__PURE__ */
|
|
7766
|
-
/* @__PURE__ */
|
|
7734
|
+
{ key: "displayName", header: "Operation", render: (row) => /* @__PURE__ */ jsxs3("span", { children: [
|
|
7735
|
+
/* @__PURE__ */ jsx6("strong", { children: row.displayName }),
|
|
7736
|
+
/* @__PURE__ */ jsx6("small", { className: "busiverse-pricing-code", children: row.operationCode })
|
|
7767
7737
|
] }) },
|
|
7768
7738
|
{ key: "cadence", header: "Unit", render: (row) => `${labelCadence(row.cadence)} \xB7 ${row.unit}` },
|
|
7769
7739
|
{ key: "standaloneUsd", header: audience === "external" ? "External price" : "Internal price", align: "right", render: (row) => formatPricingValue(getRowPriceUsd(row, audience), region) },
|
|
@@ -7771,17 +7741,17 @@ function ServicePricingExplorer({
|
|
|
7771
7741
|
{ key: "standaloneGrossMargin", header: "Margin", align: "right", render: (row) => formatMargin(getRowGrossMargin(row, audience), region.locale) },
|
|
7772
7742
|
{ key: "perMonthUsd", header: "Standard equivalents", render: (row) => describeTimeEquivalents(row, region) || "\u2014" }
|
|
7773
7743
|
];
|
|
7774
|
-
return /* @__PURE__ */
|
|
7775
|
-
/* @__PURE__ */
|
|
7776
|
-
/* @__PURE__ */
|
|
7777
|
-
/* @__PURE__ */
|
|
7778
|
-
/* @__PURE__ */
|
|
7779
|
-
/* @__PURE__ */
|
|
7744
|
+
return /* @__PURE__ */ jsxs3("section", { className: cn("busiverse-pricing-explorer", className), children: [
|
|
7745
|
+
/* @__PURE__ */ jsxs3("div", { className: "busiverse-pricing-header", children: [
|
|
7746
|
+
/* @__PURE__ */ jsxs3("div", { children: [
|
|
7747
|
+
/* @__PURE__ */ jsx6(Badge, { tone: "blue", children: "Account-rated catalog" }),
|
|
7748
|
+
/* @__PURE__ */ jsx6("h2", { children: title }),
|
|
7749
|
+
/* @__PURE__ */ jsx6("p", { children: description })
|
|
7780
7750
|
] }),
|
|
7781
|
-
showRegionSelector && /* @__PURE__ */
|
|
7751
|
+
showRegionSelector && /* @__PURE__ */ jsx6(RegionSelector, {})
|
|
7782
7752
|
] }),
|
|
7783
|
-
/* @__PURE__ */
|
|
7784
|
-
/* @__PURE__ */
|
|
7753
|
+
/* @__PURE__ */ jsxs3("div", { className: "busiverse-pricing-controls", role: "search", children: [
|
|
7754
|
+
/* @__PURE__ */ jsx6(
|
|
7785
7755
|
"input",
|
|
7786
7756
|
{
|
|
7787
7757
|
"aria-label": "Search services",
|
|
@@ -7791,26 +7761,26 @@ function ServicePricingExplorer({
|
|
|
7791
7761
|
onChange: (event) => setQuery(event.target.value)
|
|
7792
7762
|
}
|
|
7793
7763
|
),
|
|
7794
|
-
/* @__PURE__ */
|
|
7795
|
-
/* @__PURE__ */
|
|
7796
|
-
/* @__PURE__ */
|
|
7764
|
+
/* @__PURE__ */ jsxs3("div", { className: "busiverse-pricing-toggle", "aria-label": "Pricing audience", children: [
|
|
7765
|
+
/* @__PURE__ */ jsx6(Button, { size: "sm", variant: audience === "external" ? "primary" : "secondary", onClick: () => setAudience("external"), children: "External" }),
|
|
7766
|
+
/* @__PURE__ */ jsx6(Button, { size: "sm", variant: audience === "internal" ? "primary" : "secondary", onClick: () => setAudience("internal"), children: "Internal Busiverse" })
|
|
7797
7767
|
] })
|
|
7798
7768
|
] }),
|
|
7799
|
-
/* @__PURE__ */
|
|
7800
|
-
/* @__PURE__ */
|
|
7801
|
-
/* @__PURE__ */
|
|
7802
|
-
/* @__PURE__ */
|
|
7803
|
-
/* @__PURE__ */
|
|
7804
|
-
/* @__PURE__ */
|
|
7805
|
-
/* @__PURE__ */
|
|
7769
|
+
/* @__PURE__ */ jsx6("div", { className: "busiverse-pricing-tabs", "aria-label": "Service categories", children: categoryOrder.map((item) => /* @__PURE__ */ jsx6("button", { className: cn(item === category && "is-active"), onClick: () => setCategory(item), type: "button", children: categoryLabels[item] ?? item }, item)) }),
|
|
7770
|
+
/* @__PURE__ */ jsx6("div", { className: "busiverse-pricing-grid", children: filteredSummaries.map((summary) => /* @__PURE__ */ jsx6(ServicePricingCard, { summary, audience }, summary.service)) }),
|
|
7771
|
+
/* @__PURE__ */ jsxs3(Card, { className: "busiverse-pricing-table-card", children: [
|
|
7772
|
+
/* @__PURE__ */ jsxs3("div", { className: "busiverse-pricing-table-heading", children: [
|
|
7773
|
+
/* @__PURE__ */ jsxs3("div", { children: [
|
|
7774
|
+
/* @__PURE__ */ jsx6("h3", { children: "Operation-level tariff sheet" }),
|
|
7775
|
+
/* @__PURE__ */ jsx6("p", { children: "Rows include external price, internal chargeback, estimated direct cost, gross margin, and standardized time equivalents where applicable." })
|
|
7806
7776
|
] }),
|
|
7807
|
-
/* @__PURE__ */
|
|
7777
|
+
/* @__PURE__ */ jsxs3(Badge, { tone: "cyan", children: [
|
|
7808
7778
|
filteredRows.length,
|
|
7809
7779
|
" operations"
|
|
7810
7780
|
] })
|
|
7811
7781
|
] }),
|
|
7812
|
-
/* @__PURE__ */
|
|
7813
|
-
filteredRows.length > maxInitialRows && /* @__PURE__ */
|
|
7782
|
+
/* @__PURE__ */ jsx6(DataTable, { rows: visibleRows, columns, dense: true, getRowKey: (row) => row.operationCode, emptyState: "No pricing operations match the current filter." }),
|
|
7783
|
+
filteredRows.length > maxInitialRows && /* @__PURE__ */ jsx6("div", { className: "busiverse-pricing-table-more", children: /* @__PURE__ */ jsx6(Button, { variant: "secondary", onClick: () => setShowAllRows((value) => !value), children: showAllRows ? "Show fewer operations" : `Show all ${filteredRows.length} operations` }) })
|
|
7814
7784
|
] })
|
|
7815
7785
|
] });
|
|
7816
7786
|
}
|
|
@@ -7819,34 +7789,34 @@ function ServicePricingCard({ summary, audience }) {
|
|
|
7819
7789
|
const service = getBusiverseService(summary.service);
|
|
7820
7790
|
const minPrice = audience === "internal" ? summary.minBusiverseUsd : summary.minStandaloneUsd;
|
|
7821
7791
|
const maxPrice = audience === "internal" ? summary.maxBusiverseUsd : summary.maxStandaloneUsd;
|
|
7822
|
-
return /* @__PURE__ */
|
|
7823
|
-
/* @__PURE__ */
|
|
7824
|
-
/* @__PURE__ */
|
|
7825
|
-
service?.usesTimeSeries && /* @__PURE__ */
|
|
7792
|
+
return /* @__PURE__ */ jsxs3(Card, { className: "busiverse-pricing-card", interactive: true, children: [
|
|
7793
|
+
/* @__PURE__ */ jsxs3("div", { className: "busiverse-pricing-card-topline", children: [
|
|
7794
|
+
/* @__PURE__ */ jsx6(Badge, { tone: summary.hasPassThrough ? "warning" : "blue", children: summary.hasPassThrough ? "Pass-through aware" : "Fixed rated" }),
|
|
7795
|
+
service?.usesTimeSeries && /* @__PURE__ */ jsx6(Badge, { tone: "cyan", children: "Time-series" })
|
|
7826
7796
|
] }),
|
|
7827
|
-
/* @__PURE__ */
|
|
7828
|
-
/* @__PURE__ */
|
|
7829
|
-
/* @__PURE__ */
|
|
7830
|
-
/* @__PURE__ */
|
|
7831
|
-
/* @__PURE__ */
|
|
7797
|
+
/* @__PURE__ */ jsx6("h3", { children: service?.name ?? serviceLabel(summary.service) }),
|
|
7798
|
+
/* @__PURE__ */ jsx6("p", { children: service?.description ?? "BUSIVERSE service pricing." }),
|
|
7799
|
+
/* @__PURE__ */ jsxs3("div", { className: "busiverse-pricing-card-price", children: [
|
|
7800
|
+
/* @__PURE__ */ jsx6("span", { children: "Usage range" }),
|
|
7801
|
+
/* @__PURE__ */ jsx6("strong", { children: summarizeRange(minPrice, maxPrice, region) })
|
|
7832
7802
|
] }),
|
|
7833
|
-
summary.minMonthlyUsd != null && summary.maxMonthlyUsd != null && /* @__PURE__ */
|
|
7834
|
-
/* @__PURE__ */
|
|
7835
|
-
/* @__PURE__ */
|
|
7803
|
+
summary.minMonthlyUsd != null && summary.maxMonthlyUsd != null && /* @__PURE__ */ jsxs3("div", { className: "busiverse-pricing-card-metric", children: [
|
|
7804
|
+
/* @__PURE__ */ jsx6("span", { children: "Monthly equivalent" }),
|
|
7805
|
+
/* @__PURE__ */ jsx6("b", { children: summarizeRange(summary.minMonthlyUsd, summary.maxMonthlyUsd, region) })
|
|
7836
7806
|
] }),
|
|
7837
|
-
/* @__PURE__ */
|
|
7838
|
-
/* @__PURE__ */
|
|
7839
|
-
/* @__PURE__ */
|
|
7807
|
+
/* @__PURE__ */ jsxs3("div", { className: "busiverse-pricing-card-metric", children: [
|
|
7808
|
+
/* @__PURE__ */ jsx6("span", { children: "Direct cost range" }),
|
|
7809
|
+
/* @__PURE__ */ jsx6("b", { children: summarizeRange(summary.minDirectCostUsd, summary.maxDirectCostUsd, region) })
|
|
7840
7810
|
] }),
|
|
7841
|
-
/* @__PURE__ */
|
|
7842
|
-
/* @__PURE__ */
|
|
7843
|
-
/* @__PURE__ */
|
|
7811
|
+
/* @__PURE__ */ jsxs3("div", { className: "busiverse-pricing-card-metric", children: [
|
|
7812
|
+
/* @__PURE__ */ jsx6("span", { children: "Gross margin" }),
|
|
7813
|
+
/* @__PURE__ */ jsxs3("b", { children: [
|
|
7844
7814
|
formatMargin(summary.minGrossMargin, region.locale),
|
|
7845
7815
|
" \u2013 ",
|
|
7846
7816
|
formatMargin(summary.maxGrossMargin, region.locale)
|
|
7847
7817
|
] })
|
|
7848
7818
|
] }),
|
|
7849
|
-
/* @__PURE__ */
|
|
7819
|
+
/* @__PURE__ */ jsxs3("div", { className: "busiverse-pricing-card-footer", children: [
|
|
7850
7820
|
summary.operationCount,
|
|
7851
7821
|
" rated operations \xB7 ",
|
|
7852
7822
|
summary.cadences.length,
|
|
@@ -7856,18 +7826,17 @@ function ServicePricingCard({ summary, audience }) {
|
|
|
7856
7826
|
}
|
|
7857
7827
|
|
|
7858
7828
|
export {
|
|
7859
|
-
|
|
7829
|
+
CurrencyAmount,
|
|
7830
|
+
UsageQuotaBar,
|
|
7831
|
+
DataTable,
|
|
7832
|
+
Badge,
|
|
7860
7833
|
Card,
|
|
7861
7834
|
CardHeader,
|
|
7862
7835
|
CardTitle,
|
|
7863
7836
|
CardDescription,
|
|
7864
7837
|
CardContent,
|
|
7865
|
-
Badge,
|
|
7866
7838
|
busiverseServices,
|
|
7867
7839
|
getBusiverseService,
|
|
7868
|
-
DataTable,
|
|
7869
|
-
CurrencyAmount,
|
|
7870
|
-
UsageQuotaBar,
|
|
7871
7840
|
busiverseServicePricingCatalog,
|
|
7872
7841
|
getPricingRowsByService,
|
|
7873
7842
|
getServicePricingSummary,
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import {
|
|
2
|
+
busiverseAssets
|
|
3
|
+
} from "./chunk-QK6O2RHQ.js";
|
|
4
|
+
|
|
5
|
+
// src/components/brand/BusiverseBrandHead.tsx
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
var DEFAULT_TITLE = "BUSIVERSE \u2014 Turn Ideas Into Operating Businesses";
|
|
8
|
+
var DEFAULT_DESCRIPTION = "BUSIVERSE combines AI automation, blockchain-backed trust, and modular business services to help teams launch and operate ventures faster.";
|
|
9
|
+
var DEFAULT_THEME_COLOR = "#020617";
|
|
10
|
+
function ensureMeta(selector, attributes) {
|
|
11
|
+
let node = document.head.querySelector(selector);
|
|
12
|
+
if (!node) {
|
|
13
|
+
node = document.createElement("meta");
|
|
14
|
+
document.head.appendChild(node);
|
|
15
|
+
}
|
|
16
|
+
Object.entries(attributes).forEach(([key, value]) => node?.setAttribute(key, value));
|
|
17
|
+
return node;
|
|
18
|
+
}
|
|
19
|
+
function ensureLink(selector, attributes) {
|
|
20
|
+
let node = document.head.querySelector(selector);
|
|
21
|
+
if (!node) {
|
|
22
|
+
node = document.createElement("link");
|
|
23
|
+
node.setAttribute("data-busiverse-ui-head", "true");
|
|
24
|
+
document.head.appendChild(node);
|
|
25
|
+
}
|
|
26
|
+
Object.entries(attributes).forEach(([key, value]) => node?.setAttribute(key, value));
|
|
27
|
+
return node;
|
|
28
|
+
}
|
|
29
|
+
function createManifestDataUrl(title, description, themeColor) {
|
|
30
|
+
const manifest = {
|
|
31
|
+
name: title,
|
|
32
|
+
short_name: "BUSIVERSE",
|
|
33
|
+
description,
|
|
34
|
+
start_url: "/",
|
|
35
|
+
scope: "/",
|
|
36
|
+
display: "standalone",
|
|
37
|
+
background_color: themeColor,
|
|
38
|
+
theme_color: themeColor,
|
|
39
|
+
icons: [
|
|
40
|
+
{ src: busiverseAssets.favicon.androidChrome192, sizes: "192x192", type: "image/png" },
|
|
41
|
+
{ src: busiverseAssets.favicon.androidChrome512, sizes: "512x512", type: "image/png" }
|
|
42
|
+
]
|
|
43
|
+
};
|
|
44
|
+
return `data:application/manifest+json,${encodeURIComponent(JSON.stringify(manifest))}`;
|
|
45
|
+
}
|
|
46
|
+
function applyBusiverseBrandHead({
|
|
47
|
+
title = DEFAULT_TITLE,
|
|
48
|
+
description = DEFAULT_DESCRIPTION,
|
|
49
|
+
siteName = "Busiverse",
|
|
50
|
+
url,
|
|
51
|
+
image = busiverseAssets.social.xHeader,
|
|
52
|
+
twitterSite = "@busiverse1",
|
|
53
|
+
keywords = "Busiverse, AI automation, blockchain-backed trust, modular business services, distributed business infrastructure",
|
|
54
|
+
locale = "en_NG",
|
|
55
|
+
themeColor = DEFAULT_THEME_COLOR,
|
|
56
|
+
appleMobileWebAppTitle = "BUSIVERSE",
|
|
57
|
+
applicationName = "BUSIVERSE"
|
|
58
|
+
} = {}) {
|
|
59
|
+
document.title = title;
|
|
60
|
+
ensureMeta('meta[name="description"]', { name: "description", content: description });
|
|
61
|
+
ensureMeta('meta[name="keywords"]', { name: "keywords", content: keywords });
|
|
62
|
+
ensureMeta('meta[name="theme-color"]', { name: "theme-color", content: themeColor });
|
|
63
|
+
ensureMeta('meta[name="application-name"]', { name: "application-name", content: applicationName });
|
|
64
|
+
ensureMeta('meta[name="apple-mobile-web-app-title"]', { name: "apple-mobile-web-app-title", content: appleMobileWebAppTitle });
|
|
65
|
+
ensureMeta('meta[name="msapplication-TileColor"]', { name: "msapplication-TileColor", content: themeColor });
|
|
66
|
+
ensureMeta('meta[name="msapplication-TileImage"]', { name: "msapplication-TileImage", content: busiverseAssets.favicon.msTile144 });
|
|
67
|
+
ensureLink('link[data-busiverse-ui-head="icon-ico"]', { rel: "icon", type: "image/x-icon", href: busiverseAssets.favicon.ico, "data-busiverse-ui-head": "icon-ico" });
|
|
68
|
+
ensureLink('link[data-busiverse-ui-head="icon-16"]', { rel: "icon", type: "image/png", sizes: "16x16", href: busiverseAssets.favicon.png16, "data-busiverse-ui-head": "icon-16" });
|
|
69
|
+
ensureLink('link[data-busiverse-ui-head="icon-32"]', { rel: "icon", type: "image/png", sizes: "32x32", href: busiverseAssets.favicon.png32, "data-busiverse-ui-head": "icon-32" });
|
|
70
|
+
ensureLink('link[data-busiverse-ui-head="icon-96"]', { rel: "icon", type: "image/png", sizes: "96x96", href: busiverseAssets.favicon.png96, "data-busiverse-ui-head": "icon-96" });
|
|
71
|
+
ensureLink('link[data-busiverse-ui-head="icon-192"]', { rel: "icon", type: "image/png", sizes: "192x192", href: busiverseAssets.favicon.androidIcon192, "data-busiverse-ui-head": "icon-192" });
|
|
72
|
+
ensureLink('link[data-busiverse-ui-head="apple-touch-icon"]', { rel: "apple-touch-icon", sizes: "180x180", href: busiverseAssets.favicon.appleTouchIcon, "data-busiverse-ui-head": "apple-touch-icon" });
|
|
73
|
+
ensureLink('link[data-busiverse-ui-head="manifest"]', { rel: "manifest", href: createManifestDataUrl(title, description, themeColor), "data-busiverse-ui-head": "manifest" });
|
|
74
|
+
ensureMeta('meta[property="og:title"]', { property: "og:title", content: title });
|
|
75
|
+
ensureMeta('meta[property="og:description"]', { property: "og:description", content: description });
|
|
76
|
+
ensureMeta('meta[property="og:type"]', { property: "og:type", content: "website" });
|
|
77
|
+
ensureMeta('meta[property="og:site_name"]', { property: "og:site_name", content: siteName });
|
|
78
|
+
ensureMeta('meta[property="og:locale"]', { property: "og:locale", content: locale });
|
|
79
|
+
ensureMeta('meta[property="og:image"]', { property: "og:image", content: image });
|
|
80
|
+
if (url) ensureMeta('meta[property="og:url"]', { property: "og:url", content: url });
|
|
81
|
+
ensureMeta('meta[name="twitter:card"]', { name: "twitter:card", content: "summary_large_image" });
|
|
82
|
+
ensureMeta('meta[name="twitter:title"]', { name: "twitter:title", content: title });
|
|
83
|
+
ensureMeta('meta[name="twitter:description"]', { name: "twitter:description", content: description });
|
|
84
|
+
ensureMeta('meta[name="twitter:site"]', { name: "twitter:site", content: twitterSite });
|
|
85
|
+
ensureMeta('meta[name="twitter:image"]', { name: "twitter:image", content: image });
|
|
86
|
+
}
|
|
87
|
+
function BusiverseBrandHead(props) {
|
|
88
|
+
React.useEffect(() => {
|
|
89
|
+
applyBusiverseBrandHead(props);
|
|
90
|
+
}, [
|
|
91
|
+
props.title,
|
|
92
|
+
props.description,
|
|
93
|
+
props.siteName,
|
|
94
|
+
props.url,
|
|
95
|
+
props.image,
|
|
96
|
+
props.twitterSite,
|
|
97
|
+
props.keywords,
|
|
98
|
+
props.locale,
|
|
99
|
+
props.themeColor,
|
|
100
|
+
props.appleMobileWebAppTitle,
|
|
101
|
+
props.applicationName
|
|
102
|
+
]);
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export {
|
|
107
|
+
applyBusiverseBrandHead,
|
|
108
|
+
BusiverseBrandHead
|
|
109
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Button
|
|
3
|
+
} from "./chunk-IVTESKF4.js";
|
|
4
|
+
import {
|
|
5
|
+
BusiverseLogo
|
|
6
|
+
} from "./chunk-32FPZZH2.js";
|
|
7
|
+
|
|
8
|
+
// src/components/marketing/HeroSection.tsx
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
function HeroSection({
|
|
11
|
+
title = "Turn Ideas Into Operating Businesses",
|
|
12
|
+
subtitle = "BUSIVERSE combines AI automation, blockchain-backed trust, and modular business services to help teams launch and operate ventures faster.",
|
|
13
|
+
primaryCta = /* @__PURE__ */ jsx(Button, { children: "Start Building" }),
|
|
14
|
+
secondaryCta = /* @__PURE__ */ jsx(Button, { variant: "secondary", children: "Explore the Platform" })
|
|
15
|
+
}) {
|
|
16
|
+
return /* @__PURE__ */ jsx("section", { className: "busiverse-hero", children: /* @__PURE__ */ jsxs("div", { className: "busiverse-hero-content", children: [
|
|
17
|
+
/* @__PURE__ */ jsx(BusiverseLogo, { variant: "full", tone: "white", className: "busiverse-hero-logo" }),
|
|
18
|
+
/* @__PURE__ */ jsx("h1", { children: title }),
|
|
19
|
+
/* @__PURE__ */ jsx("p", { children: subtitle }),
|
|
20
|
+
/* @__PURE__ */ jsxs("div", { className: "busiverse-hero-actions", children: [
|
|
21
|
+
primaryCta,
|
|
22
|
+
secondaryCta
|
|
23
|
+
] })
|
|
24
|
+
] }) });
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// src/components/marketing/MarketingSectionHeader.tsx
|
|
28
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
29
|
+
function MarketingSectionHeader({ eyebrow, title, description, align = "center", className }) {
|
|
30
|
+
return /* @__PURE__ */ jsxs2("div", { className: ["busiverse-marketing-section-header", align === "left" ? "is-left" : "is-center", className].filter(Boolean).join(" "), children: [
|
|
31
|
+
eyebrow ? /* @__PURE__ */ jsx2("p", { className: "busiverse-eyebrow", children: eyebrow }) : null,
|
|
32
|
+
/* @__PURE__ */ jsx2("h2", { children: title }),
|
|
33
|
+
description ? /* @__PURE__ */ jsx2("p", { children: description }) : null
|
|
34
|
+
] });
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// src/components/marketing/MarketingFeatureCard.tsx
|
|
38
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
39
|
+
function MarketingFeatureCard({ title, description, icon, kicker, children, className }) {
|
|
40
|
+
return /* @__PURE__ */ jsxs3("article", { className: ["busiverse-marketing-card", className].filter(Boolean).join(" "), children: [
|
|
41
|
+
/* @__PURE__ */ jsxs3("div", { className: "busiverse-marketing-card-topline", children: [
|
|
42
|
+
icon ? /* @__PURE__ */ jsx3("div", { className: "busiverse-marketing-card-icon", "aria-hidden": "true", children: icon }) : null,
|
|
43
|
+
kicker ? /* @__PURE__ */ jsx3("span", { children: kicker }) : null
|
|
44
|
+
] }),
|
|
45
|
+
/* @__PURE__ */ jsx3("h3", { children: title }),
|
|
46
|
+
/* @__PURE__ */ jsx3("p", { children: description }),
|
|
47
|
+
children ? /* @__PURE__ */ jsx3("div", { className: "busiverse-marketing-card-body", children }) : null
|
|
48
|
+
] });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// src/components/marketing/MarketingPricingCard.tsx
|
|
52
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
53
|
+
function MarketingPricingCard({ name, eyebrow, price, cadence, description, features, action, featured, className }) {
|
|
54
|
+
return /* @__PURE__ */ jsxs4("article", { className: ["busiverse-marketing-pricing-card", featured ? "is-featured" : "", className].filter(Boolean).join(" "), children: [
|
|
55
|
+
eyebrow ? /* @__PURE__ */ jsx4("span", { className: "busiverse-marketing-price-eyebrow", children: eyebrow }) : null,
|
|
56
|
+
/* @__PURE__ */ jsx4("h3", { children: name }),
|
|
57
|
+
/* @__PURE__ */ jsxs4("div", { className: "busiverse-marketing-price-line", children: [
|
|
58
|
+
/* @__PURE__ */ jsx4("strong", { children: price }),
|
|
59
|
+
cadence ? /* @__PURE__ */ jsx4("span", { children: cadence }) : null
|
|
60
|
+
] }),
|
|
61
|
+
/* @__PURE__ */ jsx4("p", { children: description }),
|
|
62
|
+
/* @__PURE__ */ jsx4("ul", { children: features.map((feature, index) => /* @__PURE__ */ jsx4("li", { children: feature }, index)) }),
|
|
63
|
+
action ? /* @__PURE__ */ jsx4("div", { className: "busiverse-marketing-price-action", children: action }) : null
|
|
64
|
+
] });
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export {
|
|
68
|
+
HeroSection,
|
|
69
|
+
MarketingSectionHeader,
|
|
70
|
+
MarketingFeatureCard,
|
|
71
|
+
MarketingPricingCard
|
|
72
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// src/assets/assets.ts
|
|
2
|
+
var busiverseAssets = {
|
|
3
|
+
logo: {
|
|
4
|
+
horizontal: {
|
|
5
|
+
white: new URL("./logo/busiverse-horizontal---white.svg", import.meta.url).href,
|
|
6
|
+
black: new URL("./logo/busiverse-horizontal---black.svg", import.meta.url).href,
|
|
7
|
+
color: new URL("./logo/busiverse-horizontal---color.svg", import.meta.url).href
|
|
8
|
+
},
|
|
9
|
+
full: {
|
|
10
|
+
white: new URL("./logo/busiverse-primary-full-logo---white.svg", import.meta.url).href,
|
|
11
|
+
black: new URL("./logo/busiverse-primary-full-logo---black.svg", import.meta.url).href,
|
|
12
|
+
color: new URL("./logo/busiverse-primary-full-logo---color.svg", import.meta.url).href
|
|
13
|
+
},
|
|
14
|
+
vertical: {
|
|
15
|
+
white: new URL("./logo/busiverse-vertical---white.svg", import.meta.url).href,
|
|
16
|
+
black: new URL("./logo/busiverse-vertical---black.svg", import.meta.url).href,
|
|
17
|
+
color: new URL("./logo/busiverse-vertical---color.svg", import.meta.url).href
|
|
18
|
+
},
|
|
19
|
+
icon: {
|
|
20
|
+
white: new URL("./icon/busiverse-icon-only---white.svg", import.meta.url).href,
|
|
21
|
+
black: new URL("./icon/busiverse-icon-only---black.svg", import.meta.url).href,
|
|
22
|
+
color: new URL("./icon/busiverse-icon-only---color.svg", import.meta.url).href
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
favicon: {
|
|
26
|
+
ico: new URL("./favicon.io/favicon.ico", import.meta.url).href,
|
|
27
|
+
png16: new URL("./favicon.io/favicon-16x16.png", import.meta.url).href,
|
|
28
|
+
png32: new URL("./favicon.io/favicon-32x32.png", import.meta.url).href,
|
|
29
|
+
png96: new URL("./favicon.io/favicon-96x96.png", import.meta.url).href,
|
|
30
|
+
appleTouchIcon: new URL("./favicon.io/apple-touch-icon.png", import.meta.url).href,
|
|
31
|
+
androidChrome192: new URL("./favicon.io/android-chrome-192x192.png", import.meta.url).href,
|
|
32
|
+
androidChrome512: new URL("./favicon.io/android-chrome-512x512.png", import.meta.url).href,
|
|
33
|
+
androidIcon192: new URL("./favicon.io/android-icon-192x192.png", import.meta.url).href,
|
|
34
|
+
msTile144: new URL("./favicon.io/ms-icon-144x144.png", import.meta.url).href
|
|
35
|
+
},
|
|
36
|
+
social: {
|
|
37
|
+
xHeader: new URL("./social/busiverse-twitter_x-header-2.7777777777777777x-darkbg.png", import.meta.url).href,
|
|
38
|
+
xProfile: new URL("./social/busiverse-twitter_x-profile-picture-2.2222222222222223x-darkbg.png", import.meta.url).href,
|
|
39
|
+
linkedInCover: new URL("./social/busiverse-linkedin-cover-photo-2.64x-darkbg.png", import.meta.url).href,
|
|
40
|
+
linkedInProfile: new URL("./social/busiverse-linkedin-profile-picture-2.2222222222222223x-darkbg.png", import.meta.url).href,
|
|
41
|
+
facebookCover: new URL("./social/busiverse-facebook-cover-photo-1.7333333333333334x-darkbg.png", import.meta.url).href,
|
|
42
|
+
facebookProfile: new URL("./social/busiverse-facebook-profile-picture-1x-darkbg.png", import.meta.url).href,
|
|
43
|
+
instagramPost: new URL("./social/busiverse-instagram-post-6x-darkbg.png", import.meta.url).href,
|
|
44
|
+
instagramProfile: new URL("./social/busiverse-instagram-profile-picture-1.7777777777777777x-darkbg.png", import.meta.url).href
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export {
|
|
49
|
+
busiverseAssets
|
|
50
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BusiverseBrandHead.d.ts","sourceRoot":"","sources":["../../../src/components/brand/BusiverseBrandHead.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BusiverseBrandHead.d.ts","sourceRoot":"","sources":["../../../src/components/brand/BusiverseBrandHead.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA6CD,wBAAgB,uBAAuB,CAAC,EACtC,KAAqB,EACrB,WAAiC,EACjC,QAAsB,EACtB,GAAG,EACH,KAAsC,EACtC,WAA2B,EAC3B,QAA8H,EAC9H,MAAgB,EAChB,UAAgC,EAChC,sBAAoC,EACpC,eAA6B,GAC9B,GAAE,uBAA4B,QAgC9B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,QAkBhE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface MarketingFeatureCardProps {
|
|
3
|
+
title: React.ReactNode;
|
|
4
|
+
description: React.ReactNode;
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
kicker?: React.ReactNode;
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function MarketingFeatureCard({ title, description, icon, kicker, children, className }: MarketingFeatureCardProps): React.JSX.Element;
|
|
11
|
+
//# sourceMappingURL=MarketingFeatureCard.d.ts.map
|