@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketingFeatureCard.d.ts","sourceRoot":"","sources":["../../../src/components/marketing/MarketingFeatureCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,yBAAyB,qBAYxH"}
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ export interface MarketingPricingCardProps {
3
+ name: string;
4
+ eyebrow?: string;
5
+ price: string;
6
+ cadence?: string;
7
+ description: React.ReactNode;
8
+ features: React.ReactNode[];
9
+ action?: React.ReactNode;
10
+ featured?: boolean;
11
+ className?: string;
12
+ }
13
+ export declare function MarketingPricingCard({ name, eyebrow, price, cadence, description, features, action, featured, className }: MarketingPricingCardProps): React.JSX.Element;
14
+ //# sourceMappingURL=MarketingPricingCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketingPricingCard.d.ts","sourceRoot":"","sources":["../../../src/components/marketing/MarketingPricingCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,yBAAyB,qBAkBpJ"}
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ export interface MarketingSectionHeaderProps {
3
+ eyebrow?: React.ReactNode;
4
+ title: React.ReactNode;
5
+ description?: React.ReactNode;
6
+ align?: "left" | "center";
7
+ className?: string;
8
+ }
9
+ export declare function MarketingSectionHeader({ eyebrow, title, description, align, className }: MarketingSectionHeaderProps): React.JSX.Element;
10
+ //# sourceMappingURL=MarketingSectionHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketingSectionHeader.d.ts","sourceRoot":"","sources":["../../../src/components/marketing/MarketingSectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAgB,EAAE,SAAS,EAAE,EAAE,2BAA2B,qBAQ/H"}
@@ -1,2 +1,5 @@
1
1
  export * from "./HeroSection";
2
+ export * from "./MarketingSectionHeader";
3
+ export * from "./MarketingFeatureCard";
4
+ export * from "./MarketingPricingCard";
2
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/marketing/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/marketing/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./i18n";
2
+ //# sourceMappingURL=i18n-public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n-public.d.ts","sourceRoot":"","sources":["../src/i18n-public.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -1,4 +1,3 @@
1
- import "../chunk-NZ65VTKR.js";
2
1
  import {
3
2
  BusiverseI18nProvider,
4
3
  RegionSelector,
@@ -7,8 +6,8 @@ import {
7
6
  formatNumber,
8
7
  toRegionHeaders,
9
8
  useBusiverseI18n
10
- } from "../chunk-WDOMYE77.js";
11
- import "../chunk-PYZVP4NI.js";
9
+ } from "./chunk-WDOMYE77.js";
10
+ import "./chunk-PYZVP4NI.js";
12
11
  export {
13
12
  BusiverseI18nProvider,
14
13
  RegionSelector,
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./tokens";
2
+ export * from "./assets/assets";
2
3
  export * from "./components";
3
4
  export * from "./registry/services";
4
5
  export * from "./pricing";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,14 +1,5 @@
1
- import "./chunk-NZ65VTKR.js";
2
- import {
3
- busiverseColors,
4
- busiverseContainers,
5
- busiverseRadius,
6
- busiverseSpacing,
7
- busiverseTypography
8
- } from "./chunk-SXD6EH2C.js";
9
1
  import {
10
2
  Badge,
11
- Button,
12
3
  Card,
13
4
  CardContent,
14
5
  CardDescription,
@@ -34,7 +25,14 @@ import {
34
25
  getServicePricingSummaries,
35
26
  getServicePricingSummary,
36
27
  labelCadence
37
- } from "./chunk-UU2CXC3N.js";
28
+ } from "./chunk-MPBOCUY4.js";
29
+ import {
30
+ BusiverseBrandHead,
31
+ applyBusiverseBrandHead
32
+ } from "./chunk-NN24XQYI.js";
33
+ import {
34
+ busiverseAssets
35
+ } from "./chunk-QK6O2RHQ.js";
38
36
  import {
39
37
  BusiverseI18nProvider,
40
38
  RegionSelector,
@@ -47,10 +45,17 @@ import {
47
45
  useBusiverseI18n
48
46
  } from "./chunk-WDOMYE77.js";
49
47
  import {
50
- BusiverseBrandHead,
51
- BusiverseLogo,
52
- applyBusiverseBrandHead
53
- } from "./chunk-PTOKOI4Q.js";
48
+ HeroSection,
49
+ MarketingFeatureCard,
50
+ MarketingPricingCard,
51
+ MarketingSectionHeader
52
+ } from "./chunk-NUGBTLBK.js";
53
+ import {
54
+ Button
55
+ } from "./chunk-IVTESKF4.js";
56
+ import {
57
+ BusiverseLogo
58
+ } from "./chunk-32FPZZH2.js";
54
59
  import {
55
60
  BusiverseGithubIcon,
56
61
  BusiverseLinkedInIcon,
@@ -61,6 +66,13 @@ import {
61
66
  import {
62
67
  cn
63
68
  } from "./chunk-PYZVP4NI.js";
69
+ import {
70
+ busiverseColors,
71
+ busiverseContainers,
72
+ busiverseRadius,
73
+ busiverseSpacing,
74
+ busiverseTypography
75
+ } from "./chunk-SXD6EH2C.js";
64
76
 
65
77
  // src/tokens/motion.ts
66
78
  var busiverseMotion = {
@@ -242,25 +254,6 @@ function ForbiddenState({ description = "You do not have permission to access th
242
254
  return /* @__PURE__ */ jsx12(ErrorState, { title: "Access denied", description, action: /* @__PURE__ */ jsx12(Button, { variant: "secondary", children: "Go back" }) });
243
255
  }
244
256
 
245
- // src/components/marketing/HeroSection.tsx
246
- import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
247
- function HeroSection({
248
- title = "Turn Ideas Into Operating Businesses",
249
- subtitle = "BUSIVERSE combines AI automation, blockchain-backed trust, and modular business services to help teams launch and operate ventures faster.",
250
- primaryCta = /* @__PURE__ */ jsx13(Button, { children: "Start Building" }),
251
- secondaryCta = /* @__PURE__ */ jsx13(Button, { variant: "secondary", children: "Explore the Platform" })
252
- }) {
253
- return /* @__PURE__ */ jsx13("section", { className: "busiverse-hero", children: /* @__PURE__ */ jsxs6("div", { className: "busiverse-hero-content", children: [
254
- /* @__PURE__ */ jsx13(BusiverseLogo, { variant: "full", tone: "white", className: "busiverse-hero-logo" }),
255
- /* @__PURE__ */ jsx13("h1", { children: title }),
256
- /* @__PURE__ */ jsx13("p", { children: subtitle }),
257
- /* @__PURE__ */ jsxs6("div", { className: "busiverse-hero-actions", children: [
258
- primaryCta,
259
- secondaryCta
260
- ] })
261
- ] }) });
262
- }
263
-
264
257
  // src/api/createGatewayClient.ts
265
258
  var GatewayApiError = class extends Error {
266
259
  status;
@@ -307,10 +300,10 @@ function createGatewayClient(options) {
307
300
 
308
301
  // src/auth/AuthSessionProvider.tsx
309
302
  import * as React4 from "react";
310
- import { jsx as jsx14 } from "react/jsx-runtime";
303
+ import { jsx as jsx13 } from "react/jsx-runtime";
311
304
  var AuthContext = React4.createContext(null);
312
305
  function AuthSessionProvider({ children, session }) {
313
- return /* @__PURE__ */ jsx14(AuthContext.Provider, { value: session, children });
306
+ return /* @__PURE__ */ jsx13(AuthContext.Provider, { value: session, children });
314
307
  }
315
308
  function useBusiverseAuth() {
316
309
  const value = React4.useContext(AuthContext);
@@ -319,34 +312,34 @@ function useBusiverseAuth() {
319
312
  }
320
313
 
321
314
  // src/auth/RequireAuth.tsx
322
- import { Fragment, jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
315
+ import { Fragment, jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
323
316
  function RequireAuth({ children }) {
324
317
  const auth = useBusiverseAuth();
325
- if (auth.isLoading) return /* @__PURE__ */ jsx15("div", { className: "busiverse-loading-state", children: "Checking session\u2026" });
318
+ if (auth.isLoading) return /* @__PURE__ */ jsx14("div", { className: "busiverse-loading-state", children: "Checking session\u2026" });
326
319
  if (!auth.isAuthenticated) {
327
- return /* @__PURE__ */ jsxs7("div", { className: "busiverse-auth-required", children: [
328
- /* @__PURE__ */ jsx15("h1", { children: "Sign in required" }),
329
- /* @__PURE__ */ jsx15("p", { children: "Use your BUSIVERSE account to continue." }),
330
- /* @__PURE__ */ jsx15(Button, { onClick: () => void auth.signIn(), children: "Sign in" })
320
+ return /* @__PURE__ */ jsxs6("div", { className: "busiverse-auth-required", children: [
321
+ /* @__PURE__ */ jsx14("h1", { children: "Sign in required" }),
322
+ /* @__PURE__ */ jsx14("p", { children: "Use your BUSIVERSE account to continue." }),
323
+ /* @__PURE__ */ jsx14(Button, { onClick: () => void auth.signIn(), children: "Sign in" })
331
324
  ] });
332
325
  }
333
- return /* @__PURE__ */ jsx15(Fragment, { children });
326
+ return /* @__PURE__ */ jsx14(Fragment, { children });
334
327
  }
335
328
 
336
329
  // src/auth/SignUpLink.tsx
337
- import { jsx as jsx16 } from "react/jsx-runtime";
330
+ import { jsx as jsx15 } from "react/jsx-runtime";
338
331
  function SignUpLink({ signupUrl = "https://user.busiversehq.com/signup", children = "Create your Busiverse account", ...props }) {
339
- return /* @__PURE__ */ jsx16("a", { href: signupUrl, ...props, children });
332
+ return /* @__PURE__ */ jsx15("a", { href: signupUrl, ...props, children });
340
333
  }
341
334
 
342
335
  // src/auth/UserMenu.tsx
343
- import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
336
+ import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
344
337
  function UserMenu() {
345
338
  const auth = useBusiverseAuth();
346
- if (!auth.isAuthenticated || !auth.user) return /* @__PURE__ */ jsx17(Button, { size: "sm", onClick: () => void auth.signIn(), children: "Sign in" });
347
- return /* @__PURE__ */ jsxs8("div", { className: "busiverse-user-menu", children: [
348
- /* @__PURE__ */ jsx17("span", { children: auth.user.name ?? auth.user.email ?? "User" }),
349
- /* @__PURE__ */ jsx17(Button, { size: "sm", variant: "ghost", onClick: () => void auth.signOut(), children: "Sign out" })
339
+ if (!auth.isAuthenticated || !auth.user) return /* @__PURE__ */ jsx16(Button, { size: "sm", onClick: () => void auth.signIn(), children: "Sign in" });
340
+ return /* @__PURE__ */ jsxs7("div", { className: "busiverse-user-menu", children: [
341
+ /* @__PURE__ */ jsx16("span", { children: auth.user.name ?? auth.user.email ?? "User" }),
342
+ /* @__PURE__ */ jsx16(Button, { size: "sm", variant: "ghost", onClick: () => void auth.signOut(), children: "Sign out" })
350
343
  ] });
351
344
  }
352
345
  export {
@@ -377,6 +370,9 @@ export {
377
370
  GatewayApiError,
378
371
  HeroSection,
379
372
  Input,
373
+ MarketingFeatureCard,
374
+ MarketingPricingCard,
375
+ MarketingSectionHeader,
380
376
  PageHeader,
381
377
  RegionSelector,
382
378
  RequireAuth,
@@ -391,6 +387,7 @@ export {
391
387
  UsageQuotaBar,
392
388
  UserMenu,
393
389
  applyBusiverseBrandHead,
390
+ busiverseAssets,
394
391
  busiverseColors,
395
392
  busiverseContainers,
396
393
  busiverseMotion,
@@ -0,0 +1,2 @@
1
+ export * from "./components/marketing";
2
+ //# sourceMappingURL=marketing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketing.d.ts","sourceRoot":"","sources":["../src/marketing.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import {
2
+ HeroSection,
3
+ MarketingFeatureCard,
4
+ MarketingPricingCard,
5
+ MarketingSectionHeader
6
+ } from "./chunk-NUGBTLBK.js";
7
+ import "./chunk-IVTESKF4.js";
8
+ import "./chunk-32FPZZH2.js";
9
+ import "./chunk-PYZVP4NI.js";
10
+ export {
11
+ HeroSection,
12
+ MarketingFeatureCard,
13
+ MarketingPricingCard,
14
+ MarketingSectionHeader
15
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./components/social";
2
+ //# sourceMappingURL=social.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../src/social.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -4,8 +4,8 @@ import {
4
4
  BusiverseMailIcon,
5
5
  BusiverseSocialIcon,
6
6
  BusiverseXIcon
7
- } from "../../chunk-2TTXWTIT.js";
8
- import "../../chunk-PYZVP4NI.js";
7
+ } from "./chunk-2TTXWTIT.js";
8
+ import "./chunk-PYZVP4NI.js";
9
9
  export {
10
10
  BusiverseGithubIcon,
11
11
  BusiverseLinkedInIcon,
package/dist/styles.css CHANGED
@@ -253,3 +253,60 @@ img, svg { max-width: 100%; display: block; }
253
253
  .busiverse-pricing-grid { grid-template-columns: 1fr; }
254
254
  .busiverse-pricing-controls > input { max-width: none; }
255
255
  }
256
+
257
+ /* Legacy-compatible BUSIVERSE design variables for separately deployed frontends. */
258
+ :root {
259
+ --base-bg: 222 83% 4%;
260
+ --surface-bg: 222 47% 11%;
261
+ --surface-elevated: 217 33% 17%;
262
+ --primary-blue: 217 91% 60%;
263
+ --primary-violet: 258 90% 66%;
264
+ --primary-cyan: 188 94% 43%;
265
+ --text-heading: 0 0% 100%;
266
+ --text-body: 214 32% 91%;
267
+ --text-muted: 215 20% 65%;
268
+ --text-disabled: 215 16% 47%;
269
+ }
270
+ .font-heading { font-family: var(--font-display); }
271
+ .bg-gradient-primary { background: linear-gradient(90deg, #2563EB 0%, #7C3AED 100%); }
272
+ .bg-gradient-hero { background: linear-gradient(135deg, #020617 0%, #172554 45%, #0F172A 100%); }
273
+ .bg-gradient-section { background: linear-gradient(180deg, #020617 0%, #0F172A 100%); }
274
+ .glass-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10); border-radius: 16px; backdrop-filter: blur(16px); }
275
+ .text-gradient-full, .text-gradient-blue-violet, .text-gradient-violet-cyan, .text-gradient-blue-cyan { -webkit-background-clip: text; background-clip: text; color: transparent; }
276
+ .text-gradient-full { background-image: linear-gradient(90deg,#3B82F6 0%,#8B5CF6 50%,#06B6D4 100%); }
277
+ .text-gradient-blue-violet { background-image: linear-gradient(90deg,#3B82F6 0%,#8B5CF6 100%); }
278
+ .text-gradient-violet-cyan { background-image: linear-gradient(90deg,#8B5CF6 0%,#06B6D4 100%); }
279
+ .text-gradient-blue-cyan { background-image: linear-gradient(90deg,#3B82F6 0%,#06B6D4 100%); }
280
+ .text-stats { font-size: clamp(40px, 5vw, 60px); font-weight: 700; line-height: 1.1; }
281
+ .animate-float { animation: busiverse-float 3s ease-in-out infinite; }
282
+ @keyframes busiverse-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
283
+ .busiverse-marketing-section { padding: 96px 32px; background: linear-gradient(180deg,#020617 0%,#0F172A 100%); }
284
+ .busiverse-marketing-section.is-hero-adjacent { background: radial-gradient(circle at 15% 0%, rgba(59,130,246,.18), transparent 32%), #020617; }
285
+ .busiverse-marketing-section-header { max-width: 860px; margin: 0 auto 40px; display: grid; gap: 12px; }
286
+ .busiverse-marketing-section-header.is-center { text-align: center; justify-items: center; }
287
+ .busiverse-marketing-section-header.is-left { text-align: left; justify-items: start; margin-left: 0; }
288
+ .busiverse-marketing-section-header h2 { margin: 0; font-family: var(--font-display); font-size: clamp(32px, 5vw, 56px); line-height: 1.1; letter-spacing: -.015em; color: white; }
289
+ .busiverse-marketing-section-header p:not(.busiverse-eyebrow) { margin: 0; color: #CBD5E1; line-height: 1.65; font-size: 17px; }
290
+ .busiverse-marketing-grid { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
291
+ .busiverse-marketing-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
292
+ .busiverse-marketing-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10); border-radius: 20px; padding: 28px; backdrop-filter: blur(16px); transition: transform 250ms var(--ease-standard), border-color 250ms, background 250ms; }
293
+ .busiverse-marketing-card:hover { transform: translateY(-2px); border-color: rgba(59,130,246,.35); background: rgba(255,255,255,.075); }
294
+ .busiverse-marketing-card-topline { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; color: #93C5FD; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
295
+ .busiverse-marketing-card-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; color: white; background: linear-gradient(135deg, rgba(37,99,235,.38), rgba(124,58,237,.38)); border: 1px solid rgba(255,255,255,.12); }
296
+ .busiverse-marketing-card h3 { margin: 0 0 10px; font-family: var(--font-display); font-size: 22px; line-height: 1.3; color: white; }
297
+ .busiverse-marketing-card p { margin: 0; color: #CBD5E1; line-height: 1.65; }
298
+ .busiverse-marketing-card-body { margin-top: 18px; color: #F1F5F9; }
299
+ .busiverse-marketing-pricing-card { position: relative; display: grid; gap: 16px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.12); border-radius: 24px; padding: 30px; min-height: 100%; }
300
+ .busiverse-marketing-pricing-card.is-featured { border-color: rgba(59,130,246,.55); background: linear-gradient(135deg, rgba(37,99,235,.16), rgba(124,58,237,.14)); box-shadow: 0 24px 80px rgba(0,0,0,.35); }
301
+ .busiverse-marketing-price-eyebrow { width: max-content; color: #BFDBFE; background: rgba(59,130,246,.14); border: 1px solid rgba(59,130,246,.35); border-radius: 999px; padding: 4px 10px; font-size: 12px; font-weight: 700; }
302
+ .busiverse-marketing-pricing-card h3 { margin: 0; font-family: var(--font-display); font-size: 26px; color: white; }
303
+ .busiverse-marketing-price-line { display: flex; align-items: baseline; gap: 8px; }
304
+ .busiverse-marketing-price-line strong { font-family: var(--font-display); font-size: clamp(34px, 5vw, 48px); line-height: 1; color: white; }
305
+ .busiverse-marketing-price-line span { color: #94A3B8; }
306
+ .busiverse-marketing-pricing-card p { margin: 0; color: #CBD5E1; line-height: 1.6; }
307
+ .busiverse-marketing-pricing-card ul { margin: 4px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; color: #F1F5F9; }
308
+ .busiverse-marketing-pricing-card li { display: flex; gap: 10px; align-items: flex-start; }
309
+ .busiverse-marketing-pricing-card li::before { content: ""; width: 7px; height: 7px; margin-top: 9px; border-radius: 999px; background: #06B6D4; flex: 0 0 7px; }
310
+ .busiverse-marketing-price-action { margin-top: auto; }
311
+ @media (max-width: 980px) { .busiverse-marketing-grid, .busiverse-marketing-grid.two { grid-template-columns: 1fr; } }
312
+ @media (max-width: 760px) { .busiverse-marketing-section { padding: 72px 20px; } }
@@ -0,0 +1,2 @@
1
+ export * from "./tailwind";
2
+ //# sourceMappingURL=tailwind-public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind-public.d.ts","sourceRoot":"","sources":["../src/tailwind-public.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -3,7 +3,7 @@ import {
3
3
  busiverseRadius,
4
4
  busiverseSpacing,
5
5
  busiverseTypography
6
- } from "../chunk-SXD6EH2C.js";
6
+ } from "./chunk-SXD6EH2C.js";
7
7
 
8
8
  // src/tailwind/index.ts
9
9
  var busiverseTailwindPreset = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@busiverse/ui",
3
- "version": "0.2.5",
3
+ "version": "0.2.8",
4
4
  "author": "Joel Julius Okoromi <okmarq@gmail.com> (https://busiversehq.com)",
5
5
  "description": "BUSIVERSE shared React UI, design tokens, pricing, i18n, auth helpers, and product shell. Network-neutral core; Gateway transport is app-injected.",
6
6
  "type": "module",
@@ -21,41 +21,46 @@
21
21
  },
22
22
  "./styles.css": "./dist/styles.css",
23
23
  "./tailwind": {
24
- "types": "./dist/tailwind/index.d.ts",
25
- "import": "./dist/tailwind/index.js",
26
- "default": "./dist/tailwind/index.js"
24
+ "types": "./dist/tailwind-public.d.ts",
25
+ "import": "./dist/tailwind-public.js",
26
+ "default": "./dist/tailwind-public.js"
27
27
  },
28
28
  "./assets/*": "./dist/assets/*",
29
29
  "./package.json": "./package.json",
30
- "./assets": {
31
- "types": "./dist/assets/index.d.ts",
32
- "import": "./dist/assets/index.js",
33
- "default": "./dist/assets/index.js"
34
- },
35
30
  "./brand": {
36
- "types": "./dist/components/brand/index.d.ts",
37
- "import": "./dist/components/brand/index.js",
38
- "default": "./dist/components/brand/index.js"
39
- },
40
- "./social": {
41
- "types": "./dist/components/social/index.d.ts",
42
- "import": "./dist/components/social/index.js",
43
- "default": "./dist/components/social/index.js"
31
+ "types": "./dist/brand.d.ts",
32
+ "import": "./dist/brand.js",
33
+ "default": "./dist/brand.js"
44
34
  },
45
35
  "./i18n": {
46
- "types": "./dist/i18n/index.d.ts",
47
- "import": "./dist/i18n/index.js",
48
- "default": "./dist/i18n/index.js"
36
+ "types": "./dist/i18n-public.d.ts",
37
+ "import": "./dist/i18n-public.js",
38
+ "default": "./dist/i18n-public.js"
49
39
  },
50
40
  "./billing": {
51
- "types": "./dist/components/billing/index.d.ts",
52
- "import": "./dist/components/billing/index.js",
53
- "default": "./dist/components/billing/index.js"
41
+ "types": "./dist/billing.d.ts",
42
+ "import": "./dist/billing.js",
43
+ "default": "./dist/billing.js"
44
+ },
45
+ "./social": {
46
+ "types": "./dist/social.d.ts",
47
+ "import": "./dist/social.js",
48
+ "default": "./dist/social.js"
49
+ },
50
+ "./marketing": {
51
+ "types": "./dist/marketing.d.ts",
52
+ "import": "./dist/marketing.js",
53
+ "default": "./dist/marketing.js"
54
+ },
55
+ "./assets": {
56
+ "types": "./dist/assets-public.d.ts",
57
+ "import": "./dist/assets-public.js",
58
+ "default": "./dist/assets-public.js"
54
59
  }
55
60
  },
56
61
  "scripts": {
57
62
  "clean": "node scripts/clean.mjs",
58
- "build": "npm run clean && tsup src/index.ts src/tailwind/index.ts src/assets/index.ts src/components/brand/index.ts src/components/social/index.ts src/i18n/index.ts src/components/billing/index.ts --format esm --target es2022 && tsc -p tsconfig.build.json && node scripts/copy-static.mjs",
63
+ "build": "npm run clean && tsup src/index.ts src/tailwind-public.ts src/brand.ts src/i18n-public.ts src/billing.ts src/social.ts src/marketing.ts src/assets-public.ts --format esm --target es2022 && tsc -p tsconfig.build.json && node scripts/copy-static.mjs",
59
64
  "typecheck": "tsc --noEmit",
60
65
  "pack:local": "npm pack",
61
66
  "prepublishOnly": "npm run typecheck && npm run build && npm pack --dry-run"
@@ -1,2 +0,0 @@
1
- export * from "./assets";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -1,49 +0,0 @@
1
- // src/assets/assets.ts
2
- var busiverseAssets = {
3
- logo: {
4
- horizontal: {
5
- white: new URL("./assets/logo/busiverse-horizontal---white.svg", import.meta.url).href,
6
- black: new URL("./assets/logo/busiverse-horizontal---black.svg", import.meta.url).href,
7
- color: new URL("./assets/logo/busiverse-horizontal---color.svg", import.meta.url).href
8
- },
9
- full: {
10
- white: new URL("./assets/logo/busiverse-primary-full-logo---white.svg", import.meta.url).href,
11
- black: new URL("./assets/logo/busiverse-primary-full-logo---black.svg", import.meta.url).href,
12
- color: new URL("./assets/logo/busiverse-primary-full-logo---color.svg", import.meta.url).href
13
- },
14
- vertical: {
15
- white: new URL("./assets/logo/busiverse-vertical---white.svg", import.meta.url).href,
16
- black: new URL("./assets/logo/busiverse-vertical---black.svg", import.meta.url).href,
17
- color: new URL("./assets/logo/busiverse-vertical---color.svg", import.meta.url).href
18
- },
19
- icon: {
20
- white: new URL("./assets/icon/busiverse-icon-only---white.svg", import.meta.url).href,
21
- black: new URL("./assets/icon/busiverse-icon-only---black.svg", import.meta.url).href,
22
- color: new URL("./assets/icon/busiverse-icon-only---color.svg", import.meta.url).href
23
- }
24
- },
25
- favicon: {
26
- ico: new URL("./assets/favicon.io/favicon.ico", import.meta.url).href,
27
- png16: new URL("./assets/favicon.io/favicon-16x16.png", import.meta.url).href,
28
- png32: new URL("./assets/favicon.io/favicon-32x32.png", import.meta.url).href,
29
- png96: new URL("./assets/favicon.io/favicon-96x96.png", import.meta.url).href,
30
- appleTouchIcon: new URL("./assets/favicon.io/apple-touch-icon.png", import.meta.url).href,
31
- androidChrome192: new URL("./assets/favicon.io/android-chrome-192x192.png", import.meta.url).href,
32
- androidChrome512: new URL("./assets/favicon.io/android-chrome-512x512.png", import.meta.url).href,
33
- androidIcon192: new URL("./assets/favicon.io/android-icon-192x192.png", import.meta.url).href,
34
- msTile144: new URL("./assets/favicon.io/ms-icon-144x144.png", import.meta.url).href
35
- },
36
- social: {
37
- xHeader: new URL("./assets/social/busiverse-twitter_x-header-2.7777777777777777x-darkbg.png", import.meta.url).href,
38
- xProfile: new URL("./assets/social/busiverse-twitter_x-profile-picture-2.2222222222222223x-darkbg.png", import.meta.url).href,
39
- linkedInCover: new URL("./assets/social/busiverse-linkedin-cover-photo-2.64x-darkbg.png", import.meta.url).href,
40
- linkedInProfile: new URL("./assets/social/busiverse-linkedin-profile-picture-2.2222222222222223x-darkbg.png", import.meta.url).href,
41
- facebookCover: new URL("./assets/social/busiverse-facebook-cover-photo-1.7333333333333334x-darkbg.png", import.meta.url).href,
42
- facebookProfile: new URL("./assets/social/busiverse-facebook-profile-picture-1x-darkbg.png", import.meta.url).href,
43
- instagramPost: new URL("./assets/social/busiverse-instagram-post-6x-darkbg.png", import.meta.url).href,
44
- instagramProfile: new URL("./assets/social/busiverse-instagram-profile-picture-1.7777777777777777x-darkbg.png", import.meta.url).href
45
- }
46
- };
47
- export {
48
- busiverseAssets
49
- };
File without changes
@@ -1,12 +0,0 @@
1
- import {
2
- CurrencyAmount,
3
- ServicePricingExplorer,
4
- UsageQuotaBar
5
- } from "../../chunk-UU2CXC3N.js";
6
- import "../../chunk-WDOMYE77.js";
7
- import "../../chunk-PYZVP4NI.js";
8
- export {
9
- CurrencyAmount,
10
- ServicePricingExplorer,
11
- UsageQuotaBar
12
- };
@@ -1,11 +0,0 @@
1
- import {
2
- BusiverseBrandHead,
3
- BusiverseLogo,
4
- applyBusiverseBrandHead
5
- } from "../../chunk-PTOKOI4Q.js";
6
- import "../../chunk-PYZVP4NI.js";
7
- export {
8
- BusiverseBrandHead,
9
- BusiverseLogo,
10
- applyBusiverseBrandHead
11
- };