@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.
Files changed (48) hide show
  1. package/README.md +8 -27
  2. package/dist/assets-public.d.ts +2 -0
  3. package/dist/assets-public.d.ts.map +1 -0
  4. package/dist/assets-public.js +6 -0
  5. package/dist/billing.d.ts +3 -0
  6. package/dist/billing.d.ts.map +1 -0
  7. package/dist/billing.js +46 -0
  8. package/dist/brand.d.ts +2 -0
  9. package/dist/brand.d.ts.map +1 -0
  10. package/dist/brand.js +14 -0
  11. package/dist/{chunk-PTOKOI4Q.js → chunk-32FPZZH2.js} +1 -114
  12. package/dist/chunk-IVTESKF4.js +40 -0
  13. package/dist/{chunk-UU2CXC3N.js → chunk-MPBOCUY4.js} +112 -143
  14. package/dist/chunk-NN24XQYI.js +109 -0
  15. package/dist/chunk-NUGBTLBK.js +72 -0
  16. package/dist/chunk-QK6O2RHQ.js +50 -0
  17. package/dist/components/brand/BusiverseBrandHead.d.ts.map +1 -1
  18. package/dist/components/marketing/MarketingFeatureCard.d.ts +11 -0
  19. package/dist/components/marketing/MarketingFeatureCard.d.ts.map +1 -0
  20. package/dist/components/marketing/MarketingPricingCard.d.ts +14 -0
  21. package/dist/components/marketing/MarketingPricingCard.d.ts.map +1 -0
  22. package/dist/components/marketing/MarketingSectionHeader.d.ts +10 -0
  23. package/dist/components/marketing/MarketingSectionHeader.d.ts.map +1 -0
  24. package/dist/components/marketing/index.d.ts +3 -0
  25. package/dist/components/marketing/index.d.ts.map +1 -1
  26. package/dist/i18n-public.d.ts +2 -0
  27. package/dist/i18n-public.d.ts.map +1 -0
  28. package/dist/{i18n/index.js → i18n-public.js} +2 -3
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +46 -49
  32. package/dist/marketing.d.ts +2 -0
  33. package/dist/marketing.d.ts.map +1 -0
  34. package/dist/marketing.js +15 -0
  35. package/dist/social.d.ts +2 -0
  36. package/dist/social.d.ts.map +1 -0
  37. package/dist/{components/social/index.js → social.js} +2 -2
  38. package/dist/styles.css +57 -0
  39. package/dist/tailwind-public.d.ts +2 -0
  40. package/dist/tailwind-public.d.ts.map +1 -0
  41. package/dist/{tailwind/index.js → tailwind-public.js} +1 -1
  42. package/package.json +29 -24
  43. package/dist/assets/index.d.ts +0 -2
  44. package/dist/assets/index.d.ts.map +0 -1
  45. package/dist/assets/index.js +0 -49
  46. package/dist/chunk-NZ65VTKR.js +0 -0
  47. package/dist/components/billing/index.js +0 -12
  48. 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.5 root export and asset policy
250
+ ## v0.2.8 export and BusiLand marketing patch
251
251
 
252
- The root `@busiverse/ui` entry no longer re-exports the full brand asset manifest. This prevents every separately deployed frontend from emitting all social/profile/cover assets just because it imports a component from `@busiverse/ui`.
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 { busiverseAssets } from "@busiverse/ui/assets";
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
- This keeps BusiLand and the other Vercel frontends smaller while preserving the shared asset source of truth.
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
- The root package export remains for compatibility, but production frontends should use subpath imports when working with large modules.
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,2 @@
1
+ export * from "./assets/assets";
2
+ //# sourceMappingURL=assets-public.d.ts.map
@@ -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,6 @@
1
+ import {
2
+ busiverseAssets
3
+ } from "./chunk-QK6O2RHQ.js";
4
+ export {
5
+ busiverseAssets
6
+ };
@@ -0,0 +1,3 @@
1
+ export * from "./components/billing";
2
+ export * from "./pricing";
3
+ //# sourceMappingURL=billing.d.ts.map
@@ -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"}
@@ -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
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./components/brand";
2
+ //# sourceMappingURL=brand.d.ts.map
@@ -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
+ };