@moveindustries/movement-design-system 1.2.0 → 1.2.2
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/CHANGELOG.md +32 -0
- package/dist/brand-faces.css +88 -0
- package/dist/{button-Dh2vlJOI.js → button-BE4Sonxr.js} +1 -1
- package/dist/button-DDuNM3Ni.cjs +1 -0
- package/dist/carousel.cjs +1 -1
- package/dist/carousel.js +147 -139
- package/dist/components/Footer/Footer.d.ts +49 -47
- package/dist/components/Footer/Footer.d.ts.map +1 -1
- package/dist/components/Footer/index.d.ts +2 -2
- package/dist/components/Footer/index.d.ts.map +1 -1
- package/dist/components/shadcn/typography.d.ts +1 -1
- package/dist/createLucideIcon-8yq_KgWS.cjs +1 -0
- package/dist/createLucideIcon-DFqdAswP.js +102 -0
- package/dist/fonts.css +32 -8
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +709 -756
- package/dist/movement-design-system.css +90 -1
- package/dist/theme.css +21 -8
- package/dist/{use-mobile-C12jSU8y.cjs → use-mobile-1LviLXhw.cjs} +2 -2
- package/dist/{use-mobile-Da0X_fcF.js → use-mobile-CN6nNdj4.js} +63 -60
- package/dist/wallet.cjs +1 -1
- package/dist/wallet.js +36 -36
- package/package.json +1 -2
- package/dist/assets/fonts/NeueHaasUnicaPro.otf +0 -0
- package/dist/assets/fonts/TWKEverett-Black.otf +0 -0
- package/dist/assets/fonts/TWKEverett-BlackItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverett-Bold.otf +0 -0
- package/dist/assets/fonts/TWKEverett-BoldItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverett-Extrabold.otf +0 -0
- package/dist/assets/fonts/TWKEverett-ExtraboldItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverett-Hairline.otf +0 -0
- package/dist/assets/fonts/TWKEverett-HairlineItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverett-Light.otf +0 -0
- package/dist/assets/fonts/TWKEverett-LightItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverett-Medium.otf +0 -0
- package/dist/assets/fonts/TWKEverett-MediumItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverett-Regular.otf +0 -0
- package/dist/assets/fonts/TWKEverett-RegularItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverett-Super.otf +0 -0
- package/dist/assets/fonts/TWKEverett-SuperItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverett-Thin.otf +0 -0
- package/dist/assets/fonts/TWKEverett-ThinItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverett-Ultralight.otf +0 -0
- package/dist/assets/fonts/TWKEverett-UltralightItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-Black.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-BlackItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-Bold.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-BoldItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-Extrabold.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-ExtraboldItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-Hairline.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-HairlineItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-Light.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-LightItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-Medium.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-MediumItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-Regular.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-RegularItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-Super.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-SuperItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-Thin.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-ThinItalic.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-Ultralight.otf +0 -0
- package/dist/assets/fonts/TWKEverettMono-UltralightItalic.otf +0 -0
- package/dist/button-DZAlWvkC.cjs +0 -1
- package/dist/index-5va-8CrW.cjs +0 -1
- package/dist/index-uPOYJZpG.js +0 -34
|
@@ -1,72 +1,74 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Footer — the unified Movement footer shared across all Movement Network
|
|
4
|
+
* apps (Bridge, Staking, Explorer, Faucet). Solid-black slab:
|
|
5
|
+
* - "Powered by Movement" wordmark + monogram (left)
|
|
6
|
+
* - Three short link columns — Explore / Builders / Resource (right)
|
|
7
|
+
* - Hairline divider
|
|
8
|
+
* - Legal row: copyright + Terms/Privacy (left), X / Discord / GitHub /
|
|
9
|
+
* Telegram / LinkedIn social icons (right)
|
|
10
|
+
*
|
|
11
|
+
* Single responsive component — stacks vertically below 768px and lays out
|
|
12
|
+
* horizontally from 768px up (no separate desktop/mobile trees).
|
|
13
|
+
*
|
|
14
|
+
* SELF-CONTAINED: all styling lives in `footer.css` (compiled into the
|
|
15
|
+
* published `component-styles` bundle) under `.mvmt-footer*` classes with
|
|
16
|
+
* literal values and a fixed breakpoint. The footer uses NO ambient Tailwind
|
|
17
|
+
* utility classes and reads NO host CSS variables for layout/size — so it
|
|
18
|
+
* renders identically in every app regardless of that app's Tailwind config,
|
|
19
|
+
* theme, or stylesheet import order. Only the text font defers to the app's
|
|
20
|
+
* `--font-display` (every Movement app wires this to ABC Oracle), with an
|
|
21
|
+
* "ABC Oracle" → system-sans fallback. Framework-agnostic: plain `<a>`
|
|
22
|
+
* anchors (no router dep) and inline-SVG icons (no icon-lib dep).
|
|
23
|
+
*/
|
|
9
24
|
export interface FooterLink {
|
|
10
25
|
label: string;
|
|
11
26
|
href: string;
|
|
27
|
+
/** Open in a new tab with rel="noopener noreferrer". @default false */
|
|
28
|
+
external?: boolean;
|
|
12
29
|
}
|
|
13
30
|
export interface FooterColumn {
|
|
14
31
|
title: string;
|
|
15
32
|
links: FooterLink[];
|
|
16
33
|
}
|
|
34
|
+
export type SocialPlatform = "x" | "discord" | "github" | "telegram" | "linkedin" | "reddit";
|
|
17
35
|
export interface SocialLink {
|
|
18
|
-
platform:
|
|
36
|
+
platform: SocialPlatform;
|
|
19
37
|
href: string;
|
|
38
|
+
/** Accessible label. Falls back to a sensible default per platform. */
|
|
39
|
+
label?: string;
|
|
20
40
|
}
|
|
21
41
|
export interface FooterProps extends React.HTMLAttributes<HTMLElement> {
|
|
22
42
|
/**
|
|
23
|
-
*
|
|
24
|
-
* @default
|
|
43
|
+
* Navigation columns rendered on the right of the top row.
|
|
44
|
+
* @default Explore / Builders / Resource
|
|
25
45
|
*/
|
|
26
|
-
|
|
46
|
+
columns?: FooterColumn[];
|
|
27
47
|
/**
|
|
28
|
-
*
|
|
48
|
+
* Social media links rendered at the bottom right.
|
|
49
|
+
* @default X / Discord / GitHub / Telegram / LinkedIn
|
|
29
50
|
*/
|
|
30
|
-
|
|
51
|
+
socialLinks?: SocialLink[];
|
|
31
52
|
/**
|
|
32
|
-
*
|
|
53
|
+
* Legal links rendered next to the copyright at the bottom left.
|
|
54
|
+
* @default Terms of Service / Privacy Policy
|
|
33
55
|
*/
|
|
34
|
-
|
|
56
|
+
legalLinks?: FooterLink[];
|
|
35
57
|
/**
|
|
36
|
-
*
|
|
58
|
+
* Copyright text. When omitted, renders "Movement © {currentYear}".
|
|
37
59
|
*/
|
|
38
|
-
|
|
60
|
+
copyright?: string;
|
|
39
61
|
/**
|
|
40
|
-
*
|
|
41
|
-
* @default "
|
|
62
|
+
* Href for the "Powered by Movement" brand lockup.
|
|
63
|
+
* @default "https://www.movementnetwork.xyz"
|
|
42
64
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
socialLinks: SocialLink[];
|
|
50
|
-
copyright: string;
|
|
51
|
-
className?: string;
|
|
52
|
-
}
|
|
53
|
-
declare function DesktopFooter({ showHeading, heading, columns, socialLinks, copyright, className, }: DesktopFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
-
interface MobileFooterProps {
|
|
55
|
-
showHeading: boolean;
|
|
56
|
-
heading: string;
|
|
57
|
-
columns: FooterColumn[];
|
|
58
|
-
socialLinks: SocialLink[];
|
|
59
|
-
copyright: string;
|
|
60
|
-
className?: string;
|
|
65
|
+
brandHref?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Brand wordmark text shown next to the monogram.
|
|
68
|
+
* @default "Powered by Movement"
|
|
69
|
+
*/
|
|
70
|
+
brandLabel?: string;
|
|
61
71
|
}
|
|
62
|
-
declare function
|
|
63
|
-
|
|
64
|
-
* Footer component for displaying site-wide footer with navigation, social links, and branding.
|
|
65
|
-
* Automatically switches between desktop and mobile layouts based on screen size.
|
|
66
|
-
*
|
|
67
|
-
* - Desktop (≥768px): Horizontal layout with logo left, nav columns right
|
|
68
|
-
* - Mobile (<768px): Centered layout with 2x2 grid for nav columns
|
|
69
|
-
*/
|
|
70
|
-
declare function Footer({ className, showHeading, heading, columns, socialLinks, copyright, ...props }: FooterProps): import("react/jsx-runtime").JSX.Element;
|
|
71
|
-
export { Footer, DesktopFooter, MobileFooter, footerLinkVariants, footerHeaderVariants, socialIconVariants, };
|
|
72
|
+
declare function Footer({ className, columns, socialLinks, legalLinks, copyright, brandHref, brandLabel, ...props }: FooterProps): import("react/jsx-runtime").JSX.Element;
|
|
73
|
+
export { Footer };
|
|
72
74
|
//# sourceMappingURL=Footer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/Footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/Footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GACtB,GAAG,GACH,SAAS,GACT,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACpE;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAE3B;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA4DD,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAwB,EACxB,WAAgC,EAChC,UAA8B,EAC9B,SAAS,EACT,SAAwB,EACxB,UAAkC,EAClC,GAAG,KAAK,EACT,EAAE,WAAW,2CA+Db;AAgID,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { Footer
|
|
2
|
-
export type { FooterProps, FooterLink, FooterColumn, SocialLink, } from './Footer';
|
|
1
|
+
export { Footer } from './Footer';
|
|
2
|
+
export type { FooterProps, FooterLink, FooterColumn, SocialLink, SocialPlatform, } from './Footer';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,cAAc,GACf,MAAM,UAAU,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VariantProps } from 'class-variance-authority';
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
declare const typographyVariants: (props?: ({
|
|
4
|
-
variant?: "small" | "blockquote" | "code" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "label" | "p" | "list" | "large" | "uppercase" | "
|
|
4
|
+
variant?: "small" | "blockquote" | "code" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "label" | "p" | "list" | "large" | "uppercase" | "lead" | "muted" | "inlineCode" | "mono" | null | undefined;
|
|
5
5
|
affects?: "default" | "removePMargin" | "removeMargin" | null | undefined;
|
|
6
6
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
7
|
export interface TypographyProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof typographyVariants> {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const N=require("./utils-CikHldDD.cjs"),d=require("react"),y=r=>typeof r=="boolean"?`${r}`:r===0?"0":r,w=N.clsx,V=(r,t)=>e=>{var n;if(t?.variants==null)return w(r,e?.class,e?.className);const{variants:l,defaultVariants:a}=t,v=Object.keys(l).map(o=>{const s=e?.[o],c=a?.[o];if(s===null)return null;const i=y(s)||y(c);return l[o][i]}),u=e&&Object.entries(e).reduce((o,s)=>{let[c,i]=s;return i===void 0||(o[c]=i),o},{}),m=t==null||(n=t.compoundVariants)===null||n===void 0?void 0:n.reduce((o,s)=>{let{class:c,className:i,...b}=s;return Object.entries(b).every(k=>{let[f,C]=k;return Array.isArray(C)?C.includes({...a,...u}[f]):{...a,...u}[f]===C})?[...o,c,i]:o},[]);return w(r,v,m,e?.class,e?.className)};const g=r=>r.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),L=r=>r.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,e,n)=>n?n.toUpperCase():e.toLowerCase()),h=r=>{const t=L(r);return t.charAt(0).toUpperCase()+t.slice(1)},A=(...r)=>r.filter((t,e,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===e).join(" ").trim(),j=r=>{for(const t in r)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var x={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const O=d.forwardRef(({color:r="currentColor",size:t=24,strokeWidth:e=2,absoluteStrokeWidth:n,className:l="",children:a,iconNode:v,...u},m)=>d.createElement("svg",{ref:m,...x,width:t,height:t,stroke:r,strokeWidth:n?Number(e)*24/Number(t):e,className:A("lucide",l),...!a&&!j(u)&&{"aria-hidden":"true"},...u},[...v.map(([o,s])=>d.createElement(o,s)),...Array.isArray(a)?a:[a]]));const _=(r,t)=>{const e=d.forwardRef(({className:n,...l},a)=>d.createElement(O,{ref:a,iconNode:t,className:A(`lucide-${g(h(r))}`,`lucide-${r}`,n),...l}));return e.displayName=h(r),e};exports.createLucideIcon=_;exports.cva=V;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { a as V } from "./utils-eGXXUFl7.js";
|
|
2
|
+
import { forwardRef as A, createElement as C } from "react";
|
|
3
|
+
const y = (a) => typeof a == "boolean" ? `${a}` : a === 0 ? "0" : a, h = V, U = (a, t) => (e) => {
|
|
4
|
+
var r;
|
|
5
|
+
if (t?.variants == null) return h(a, e?.class, e?.className);
|
|
6
|
+
const { variants: l, defaultVariants: n } = t, d = Object.keys(l).map((o) => {
|
|
7
|
+
const s = e?.[o], c = n?.[o];
|
|
8
|
+
if (s === null) return null;
|
|
9
|
+
const i = y(s) || y(c);
|
|
10
|
+
return l[o][i];
|
|
11
|
+
}), u = e && Object.entries(e).reduce((o, s) => {
|
|
12
|
+
let [c, i] = s;
|
|
13
|
+
return i === void 0 || (o[c] = i), o;
|
|
14
|
+
}, {}), v = t == null || (r = t.compoundVariants) === null || r === void 0 ? void 0 : r.reduce((o, s) => {
|
|
15
|
+
let { class: c, className: i, ...k } = s;
|
|
16
|
+
return Object.entries(k).every((N) => {
|
|
17
|
+
let [f, m] = N;
|
|
18
|
+
return Array.isArray(m) ? m.includes({
|
|
19
|
+
...n,
|
|
20
|
+
...u
|
|
21
|
+
}[f]) : {
|
|
22
|
+
...n,
|
|
23
|
+
...u
|
|
24
|
+
}[f] === m;
|
|
25
|
+
}) ? [
|
|
26
|
+
...o,
|
|
27
|
+
c,
|
|
28
|
+
i
|
|
29
|
+
] : o;
|
|
30
|
+
}, []);
|
|
31
|
+
return h(a, d, v, e?.class, e?.className);
|
|
32
|
+
};
|
|
33
|
+
const g = (a) => a.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), x = (a) => a.replace(
|
|
34
|
+
/^([A-Z])|[\s-_]+(\w)/g,
|
|
35
|
+
(t, e, r) => r ? r.toUpperCase() : e.toLowerCase()
|
|
36
|
+
), w = (a) => {
|
|
37
|
+
const t = x(a);
|
|
38
|
+
return t.charAt(0).toUpperCase() + t.slice(1);
|
|
39
|
+
}, b = (...a) => a.filter((t, e, r) => !!t && t.trim() !== "" && r.indexOf(t) === e).join(" ").trim(), j = (a) => {
|
|
40
|
+
for (const t in a)
|
|
41
|
+
if (t.startsWith("aria-") || t === "role" || t === "title")
|
|
42
|
+
return !0;
|
|
43
|
+
};
|
|
44
|
+
var L = {
|
|
45
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
46
|
+
width: 24,
|
|
47
|
+
height: 24,
|
|
48
|
+
viewBox: "0 0 24 24",
|
|
49
|
+
fill: "none",
|
|
50
|
+
stroke: "currentColor",
|
|
51
|
+
strokeWidth: 2,
|
|
52
|
+
strokeLinecap: "round",
|
|
53
|
+
strokeLinejoin: "round"
|
|
54
|
+
};
|
|
55
|
+
const O = A(
|
|
56
|
+
({
|
|
57
|
+
color: a = "currentColor",
|
|
58
|
+
size: t = 24,
|
|
59
|
+
strokeWidth: e = 2,
|
|
60
|
+
absoluteStrokeWidth: r,
|
|
61
|
+
className: l = "",
|
|
62
|
+
children: n,
|
|
63
|
+
iconNode: d,
|
|
64
|
+
...u
|
|
65
|
+
}, v) => C(
|
|
66
|
+
"svg",
|
|
67
|
+
{
|
|
68
|
+
ref: v,
|
|
69
|
+
...L,
|
|
70
|
+
width: t,
|
|
71
|
+
height: t,
|
|
72
|
+
stroke: a,
|
|
73
|
+
strokeWidth: r ? Number(e) * 24 / Number(t) : e,
|
|
74
|
+
className: b("lucide", l),
|
|
75
|
+
...!n && !j(u) && { "aria-hidden": "true" },
|
|
76
|
+
...u
|
|
77
|
+
},
|
|
78
|
+
[
|
|
79
|
+
...d.map(([o, s]) => C(o, s)),
|
|
80
|
+
...Array.isArray(n) ? n : [n]
|
|
81
|
+
]
|
|
82
|
+
)
|
|
83
|
+
);
|
|
84
|
+
const W = (a, t) => {
|
|
85
|
+
const e = A(
|
|
86
|
+
({ className: r, ...l }, n) => C(O, {
|
|
87
|
+
ref: n,
|
|
88
|
+
iconNode: t,
|
|
89
|
+
className: b(
|
|
90
|
+
`lucide-${g(w(a))}`,
|
|
91
|
+
`lucide-${a}`,
|
|
92
|
+
r
|
|
93
|
+
),
|
|
94
|
+
...l
|
|
95
|
+
})
|
|
96
|
+
);
|
|
97
|
+
return e.displayName = w(a), e;
|
|
98
|
+
};
|
|
99
|
+
export {
|
|
100
|
+
W as a,
|
|
101
|
+
U as c
|
|
102
|
+
};
|
package/dist/fonts.css
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
/* ============================================================================
|
|
2
|
-
* Movement brand
|
|
2
|
+
* Movement brand @font-face declarations — ABC Oracle + RecifeText.
|
|
3
3
|
* ----------------------------------------------------------------------------
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Single source of truth for the brand faces. Consumed two ways:
|
|
5
|
+
* 1. `fonts.css` @imports this (the standalone `/fonts` entry + Storybook).
|
|
6
|
+
* 2. The library build APPENDS this file to the published component-styles
|
|
7
|
+
* bundle (dist/movement-design-system.css) so every consumer that imports
|
|
8
|
+
* the bundle gets the real brand faces with no extra import — see
|
|
9
|
+
* `copyThemePlugin` in vite.config.ts.
|
|
10
|
+
* The `url()`s stay external (never base64-inlined): the woff2 ship in the
|
|
11
|
+
* package under dist/assets/fonts/** and download only when a face is used.
|
|
12
|
+
* Paths are relative to dist/ root, where this file, fonts.css, and the
|
|
13
|
+
* component-styles bundle all live alongside ./assets/fonts/.
|
|
8
14
|
* ============================================================================ */
|
|
9
15
|
|
|
10
16
|
/* ABC Oracle — primary sans / display */
|
|
@@ -81,10 +87,28 @@
|
|
|
81
87
|
font-display: swap;
|
|
82
88
|
}
|
|
83
89
|
|
|
84
|
-
/*
|
|
85
|
-
*
|
|
90
|
+
/* ============================================================================
|
|
91
|
+
* Movement brand fonts — ABC Oracle (Dinamo) + RecifeText (Bold Monkeys)
|
|
92
|
+
* ----------------------------------------------------------------------------
|
|
93
|
+
* The brand @font-face rules live in `brand-faces.css` (single source of
|
|
94
|
+
* truth) and are also appended to the published component-styles bundle by the
|
|
95
|
+
* library build — so the design system always ships the real brand faces and
|
|
96
|
+
* components never depend on the host app registering the font.
|
|
97
|
+
*
|
|
98
|
+
* This file is the standalone `/fonts` entry: it pulls in the faces and sets
|
|
99
|
+
* the brand default vars on :root, for Storybook / non-Next consumers:
|
|
100
|
+
* @import "@moveindustries/movement-design-system/fonts";
|
|
101
|
+
* Next.js apps may still self-host via next/font/local and override
|
|
102
|
+
* --font-display / --font-serif; both resolve to the same Oracle face.
|
|
103
|
+
* ============================================================================ */
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
/* Semantic font vars — the single source the design system's `.font-*`
|
|
107
|
+
* utilities resolve through (see the @theme block in theme.css). Only the two
|
|
108
|
+
* brand faces are defined; there is no brand monospace, so --font-mono is left
|
|
109
|
+
* unset and `.font-mono` falls back to the generic system monospace (a
|
|
110
|
+
* consuming app can set --font-mono itself if it wants a specific one). */
|
|
86
111
|
:root {
|
|
87
112
|
--font-display: "ABC Oracle", ui-sans-serif, system-ui, sans-serif;
|
|
88
113
|
--font-serif: "RecifeText", ui-serif, Georgia, serif;
|
|
89
|
-
--font-mono: "ABC Oracle", ui-monospace, monospace;
|
|
90
114
|
}
|