@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
package/README.md
CHANGED
|
@@ -247,36 +247,17 @@ import { BusiverseGithubIcon, BusiverseXIcon, BusiverseLinkedInIcon, BusiverseMa
|
|
|
247
247
|
|
|
248
248
|
The package remains network-neutral. The icons are inline SVG React components and do not fetch remote assets.
|
|
249
249
|
|
|
250
|
-
## v0.2.
|
|
250
|
+
## v0.2.8 export and BusiLand marketing patch
|
|
251
251
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
Use root imports for components and helpers:
|
|
255
|
-
|
|
256
|
-
```ts
|
|
257
|
-
import { BusiverseBrandHead, BusiverseLogo, ServicePricingExplorer } from "@busiverse/ui";
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
Use the explicit asset subpath only when an app truly needs the raw asset manifest:
|
|
252
|
+
This release fixes public subpath exports required by Vite/Rolldown:
|
|
261
253
|
|
|
262
254
|
```ts
|
|
263
|
-
import {
|
|
255
|
+
import { BusiverseBrandHead } from "@busiverse/ui/brand";
|
|
256
|
+
import { BusiverseI18nProvider } from "@busiverse/ui/i18n";
|
|
257
|
+
import { BusiverseGithubIcon } from "@busiverse/ui/social";
|
|
258
|
+
import { MarketingFeatureCard } from "@busiverse/ui/marketing";
|
|
264
259
|
```
|
|
265
260
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
## v0.2.5 subpath imports
|
|
269
|
-
|
|
270
|
-
`@busiverse/ui` now publishes explicit subpath entrypoints so separately deployed Vercel frontends can avoid pulling unrelated pricing, social, or raw asset modules into the initial bundle.
|
|
271
|
-
|
|
272
|
-
Preferred imports:
|
|
273
|
-
|
|
274
|
-
```ts
|
|
275
|
-
import { BusiverseLogo, BusiverseBrandHead } from "@busiverse/ui/brand";
|
|
276
|
-
import { BusiverseI18nProvider, RegionSelector } from "@busiverse/ui/i18n";
|
|
277
|
-
import { ServicePricingExplorer } from "@busiverse/ui/billing";
|
|
278
|
-
import { BusiverseGithubIcon, BusiverseXIcon } from "@busiverse/ui/social";
|
|
279
|
-
import { busiverseAssets } from "@busiverse/ui/assets";
|
|
280
|
-
```
|
|
261
|
+
It also corrects brand asset URL paths so packaged favicon, icon, logo, and social assets resolve at build time.
|
|
281
262
|
|
|
282
|
-
|
|
263
|
+
Public marketing pages should not expose internal chargeback, operation codes, direct costs, margin, Account ledger mechanics, or outbox/saga details. Those remain internal/admin concerns. BusiLand should use customer-facing plans and bundles.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets-public.d.ts","sourceRoot":"","sources":["../src/assets-public.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../src/billing.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC"}
|
package/dist/billing.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CurrencyAmount,
|
|
3
|
+
ServicePricingExplorer,
|
|
4
|
+
UsageQuotaBar,
|
|
5
|
+
busiverseServicePricingCatalog,
|
|
6
|
+
cadenceLabels,
|
|
7
|
+
convertUsdToRegionCurrency,
|
|
8
|
+
describeTimeEquivalents,
|
|
9
|
+
formatMargin,
|
|
10
|
+
formatPricingValue,
|
|
11
|
+
formatUsdAsRegionCurrency,
|
|
12
|
+
getPricingRowsByService,
|
|
13
|
+
getRowDirectCostUsd,
|
|
14
|
+
getRowGrossMargin,
|
|
15
|
+
getRowPriceUsd,
|
|
16
|
+
getServicePricingSummaries,
|
|
17
|
+
getServicePricingSummary,
|
|
18
|
+
labelCadence
|
|
19
|
+
} from "./chunk-MPBOCUY4.js";
|
|
20
|
+
import {
|
|
21
|
+
busiverseSupportedRegions,
|
|
22
|
+
getSupportedRegion
|
|
23
|
+
} from "./chunk-WDOMYE77.js";
|
|
24
|
+
import "./chunk-IVTESKF4.js";
|
|
25
|
+
import "./chunk-PYZVP4NI.js";
|
|
26
|
+
export {
|
|
27
|
+
CurrencyAmount,
|
|
28
|
+
ServicePricingExplorer,
|
|
29
|
+
UsageQuotaBar,
|
|
30
|
+
busiverseServicePricingCatalog,
|
|
31
|
+
busiverseSupportedRegions,
|
|
32
|
+
cadenceLabels,
|
|
33
|
+
convertUsdToRegionCurrency,
|
|
34
|
+
describeTimeEquivalents,
|
|
35
|
+
formatMargin,
|
|
36
|
+
formatPricingValue,
|
|
37
|
+
formatUsdAsRegionCurrency,
|
|
38
|
+
getPricingRowsByService,
|
|
39
|
+
getRowDirectCostUsd,
|
|
40
|
+
getRowGrossMargin,
|
|
41
|
+
getRowPriceUsd,
|
|
42
|
+
getServicePricingSummaries,
|
|
43
|
+
getServicePricingSummary,
|
|
44
|
+
getSupportedRegion,
|
|
45
|
+
labelCadence
|
|
46
|
+
};
|
package/dist/brand.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
package/dist/brand.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BusiverseBrandHead,
|
|
3
|
+
applyBusiverseBrandHead
|
|
4
|
+
} from "./chunk-NN24XQYI.js";
|
|
5
|
+
import "./chunk-QK6O2RHQ.js";
|
|
6
|
+
import {
|
|
7
|
+
BusiverseLogo
|
|
8
|
+
} from "./chunk-32FPZZH2.js";
|
|
9
|
+
import "./chunk-PYZVP4NI.js";
|
|
10
|
+
export {
|
|
11
|
+
BusiverseBrandHead,
|
|
12
|
+
BusiverseLogo,
|
|
13
|
+
applyBusiverseBrandHead
|
|
14
|
+
};
|
|
@@ -35,119 +35,6 @@ function BusiverseLogo({ variant = "horizontal", tone = "white", label = "BUSIVE
|
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
// src/components/brand/BusiverseBrandHead.tsx
|
|
39
|
-
import * as React from "react";
|
|
40
|
-
var faviconIco = new URL("../../assets/assets/favicon.io/favicon.ico", import.meta.url).href;
|
|
41
|
-
var faviconPng16 = new URL("../../assets/assets/favicon.io/favicon-16x16.png", import.meta.url).href;
|
|
42
|
-
var faviconPng32 = new URL("../../assets/assets/favicon.io/favicon-32x32.png", import.meta.url).href;
|
|
43
|
-
var faviconPng96 = new URL("../../assets/assets/favicon.io/favicon-96x96.png", import.meta.url).href;
|
|
44
|
-
var appleTouchIcon = new URL("../../assets/assets/favicon.io/apple-touch-icon.png", import.meta.url).href;
|
|
45
|
-
var androidIcon192 = new URL("../../assets/assets/favicon.io/android-icon-192x192.png", import.meta.url).href;
|
|
46
|
-
var androidChrome192 = new URL("../../assets/assets/favicon.io/android-chrome-192x192.png", import.meta.url).href;
|
|
47
|
-
var androidChrome512 = new URL("../../assets/assets/favicon.io/android-chrome-512x512.png", import.meta.url).href;
|
|
48
|
-
var msTile144 = new URL("../../assets/assets/favicon.io/ms-icon-144x144.png", import.meta.url).href;
|
|
49
|
-
var defaultSocialImage = new URL("../../assets/assets/social/busiverse-twitter_x-header-2.7777777777777777x-darkbg.png", import.meta.url).href;
|
|
50
|
-
var DEFAULT_TITLE = "BUSIVERSE \u2014 Turn Ideas Into Operating Businesses";
|
|
51
|
-
var DEFAULT_DESCRIPTION = "BUSIVERSE combines AI automation, blockchain-backed trust, and modular business services to help teams launch and operate ventures faster.";
|
|
52
|
-
var DEFAULT_THEME_COLOR = "#020617";
|
|
53
|
-
function ensureMeta(selector, attributes) {
|
|
54
|
-
let node = document.head.querySelector(selector);
|
|
55
|
-
if (!node) {
|
|
56
|
-
node = document.createElement("meta");
|
|
57
|
-
document.head.appendChild(node);
|
|
58
|
-
}
|
|
59
|
-
Object.entries(attributes).forEach(([key, value]) => node?.setAttribute(key, value));
|
|
60
|
-
return node;
|
|
61
|
-
}
|
|
62
|
-
function ensureLink(selector, attributes) {
|
|
63
|
-
let node = document.head.querySelector(selector);
|
|
64
|
-
if (!node) {
|
|
65
|
-
node = document.createElement("link");
|
|
66
|
-
node.setAttribute("data-busiverse-ui-head", "true");
|
|
67
|
-
document.head.appendChild(node);
|
|
68
|
-
}
|
|
69
|
-
Object.entries(attributes).forEach(([key, value]) => node?.setAttribute(key, value));
|
|
70
|
-
return node;
|
|
71
|
-
}
|
|
72
|
-
function createManifestDataUrl(title, description, themeColor) {
|
|
73
|
-
const manifest = {
|
|
74
|
-
name: title,
|
|
75
|
-
short_name: "BUSIVERSE",
|
|
76
|
-
description,
|
|
77
|
-
start_url: "/",
|
|
78
|
-
scope: "/",
|
|
79
|
-
display: "standalone",
|
|
80
|
-
background_color: themeColor,
|
|
81
|
-
theme_color: themeColor,
|
|
82
|
-
icons: [
|
|
83
|
-
{ src: androidChrome192, sizes: "192x192", type: "image/png" },
|
|
84
|
-
{ src: androidChrome512, sizes: "512x512", type: "image/png" }
|
|
85
|
-
]
|
|
86
|
-
};
|
|
87
|
-
return `data:application/manifest+json,${encodeURIComponent(JSON.stringify(manifest))}`;
|
|
88
|
-
}
|
|
89
|
-
function applyBusiverseBrandHead({
|
|
90
|
-
title = DEFAULT_TITLE,
|
|
91
|
-
description = DEFAULT_DESCRIPTION,
|
|
92
|
-
siteName = "Busiverse",
|
|
93
|
-
url,
|
|
94
|
-
image = defaultSocialImage,
|
|
95
|
-
twitterSite = "@busiverse1",
|
|
96
|
-
keywords = "Busiverse, AI automation, blockchain-backed trust, modular business services, distributed business infrastructure",
|
|
97
|
-
locale = "en_NG",
|
|
98
|
-
themeColor = DEFAULT_THEME_COLOR,
|
|
99
|
-
appleMobileWebAppTitle = "BUSIVERSE",
|
|
100
|
-
applicationName = "BUSIVERSE"
|
|
101
|
-
} = {}) {
|
|
102
|
-
document.title = title;
|
|
103
|
-
ensureMeta('meta[name="description"]', { name: "description", content: description });
|
|
104
|
-
ensureMeta('meta[name="keywords"]', { name: "keywords", content: keywords });
|
|
105
|
-
ensureMeta('meta[name="theme-color"]', { name: "theme-color", content: themeColor });
|
|
106
|
-
ensureMeta('meta[name="application-name"]', { name: "application-name", content: applicationName });
|
|
107
|
-
ensureMeta('meta[name="apple-mobile-web-app-title"]', { name: "apple-mobile-web-app-title", content: appleMobileWebAppTitle });
|
|
108
|
-
ensureMeta('meta[name="msapplication-TileColor"]', { name: "msapplication-TileColor", content: themeColor });
|
|
109
|
-
ensureMeta('meta[name="msapplication-TileImage"]', { name: "msapplication-TileImage", content: msTile144 });
|
|
110
|
-
ensureLink('link[data-busiverse-ui-head="icon-ico"]', { rel: "icon", type: "image/x-icon", href: faviconIco, "data-busiverse-ui-head": "icon-ico" });
|
|
111
|
-
ensureLink('link[data-busiverse-ui-head="icon-16"]', { rel: "icon", type: "image/png", sizes: "16x16", href: faviconPng16, "data-busiverse-ui-head": "icon-16" });
|
|
112
|
-
ensureLink('link[data-busiverse-ui-head="icon-32"]', { rel: "icon", type: "image/png", sizes: "32x32", href: faviconPng32, "data-busiverse-ui-head": "icon-32" });
|
|
113
|
-
ensureLink('link[data-busiverse-ui-head="icon-96"]', { rel: "icon", type: "image/png", sizes: "96x96", href: faviconPng96, "data-busiverse-ui-head": "icon-96" });
|
|
114
|
-
ensureLink('link[data-busiverse-ui-head="icon-192"]', { rel: "icon", type: "image/png", sizes: "192x192", href: androidIcon192, "data-busiverse-ui-head": "icon-192" });
|
|
115
|
-
ensureLink('link[data-busiverse-ui-head="apple-touch-icon"]', { rel: "apple-touch-icon", sizes: "180x180", href: appleTouchIcon, "data-busiverse-ui-head": "apple-touch-icon" });
|
|
116
|
-
ensureLink('link[data-busiverse-ui-head="manifest"]', { rel: "manifest", href: createManifestDataUrl(title, description, themeColor), "data-busiverse-ui-head": "manifest" });
|
|
117
|
-
ensureMeta('meta[property="og:title"]', { property: "og:title", content: title });
|
|
118
|
-
ensureMeta('meta[property="og:description"]', { property: "og:description", content: description });
|
|
119
|
-
ensureMeta('meta[property="og:type"]', { property: "og:type", content: "website" });
|
|
120
|
-
ensureMeta('meta[property="og:site_name"]', { property: "og:site_name", content: siteName });
|
|
121
|
-
ensureMeta('meta[property="og:locale"]', { property: "og:locale", content: locale });
|
|
122
|
-
ensureMeta('meta[property="og:image"]', { property: "og:image", content: image });
|
|
123
|
-
if (url) ensureMeta('meta[property="og:url"]', { property: "og:url", content: url });
|
|
124
|
-
ensureMeta('meta[name="twitter:card"]', { name: "twitter:card", content: "summary_large_image" });
|
|
125
|
-
ensureMeta('meta[name="twitter:title"]', { name: "twitter:title", content: title });
|
|
126
|
-
ensureMeta('meta[name="twitter:description"]', { name: "twitter:description", content: description });
|
|
127
|
-
ensureMeta('meta[name="twitter:site"]', { name: "twitter:site", content: twitterSite });
|
|
128
|
-
ensureMeta('meta[name="twitter:image"]', { name: "twitter:image", content: image });
|
|
129
|
-
}
|
|
130
|
-
function BusiverseBrandHead(props) {
|
|
131
|
-
React.useEffect(() => {
|
|
132
|
-
applyBusiverseBrandHead(props);
|
|
133
|
-
}, [
|
|
134
|
-
props.title,
|
|
135
|
-
props.description,
|
|
136
|
-
props.siteName,
|
|
137
|
-
props.url,
|
|
138
|
-
props.image,
|
|
139
|
-
props.twitterSite,
|
|
140
|
-
props.keywords,
|
|
141
|
-
props.locale,
|
|
142
|
-
props.themeColor,
|
|
143
|
-
props.appleMobileWebAppTitle,
|
|
144
|
-
props.applicationName
|
|
145
|
-
]);
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
38
|
export {
|
|
150
|
-
BusiverseLogo
|
|
151
|
-
applyBusiverseBrandHead,
|
|
152
|
-
BusiverseBrandHead
|
|
39
|
+
BusiverseLogo
|
|
153
40
|
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "./chunk-PYZVP4NI.js";
|
|
4
|
+
|
|
5
|
+
// src/components/primitives/Button.tsx
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
var variants = {
|
|
9
|
+
primary: "busiverse-btn-primary",
|
|
10
|
+
secondary: "busiverse-btn-secondary",
|
|
11
|
+
ghost: "busiverse-btn-ghost",
|
|
12
|
+
danger: "busiverse-btn-danger",
|
|
13
|
+
success: "busiverse-btn-success",
|
|
14
|
+
link: "busiverse-btn-link"
|
|
15
|
+
};
|
|
16
|
+
var sizes = {
|
|
17
|
+
sm: "busiverse-btn-sm",
|
|
18
|
+
md: "busiverse-btn-md",
|
|
19
|
+
lg: "busiverse-btn-lg"
|
|
20
|
+
};
|
|
21
|
+
var Button = React.forwardRef(function Button2({ className, variant = "primary", size = "md", isLoading, children, disabled, ...props }, ref) {
|
|
22
|
+
return /* @__PURE__ */ jsxs(
|
|
23
|
+
"button",
|
|
24
|
+
{
|
|
25
|
+
ref,
|
|
26
|
+
className: cn("busiverse-focus-ring busiverse-btn", variants[variant], sizes[size], className),
|
|
27
|
+
disabled: disabled || isLoading,
|
|
28
|
+
"aria-busy": isLoading || void 0,
|
|
29
|
+
...props,
|
|
30
|
+
children: [
|
|
31
|
+
isLoading && /* @__PURE__ */ jsx("span", { className: "busiverse-spinner", "aria-hidden": "true" }),
|
|
32
|
+
/* @__PURE__ */ jsx("span", { children })
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
export {
|
|
39
|
+
Button
|
|
40
|
+
};
|