@wealthx/ui 0.0.1 → 1.0.0

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.
@@ -0,0 +1,24 @@
1
+
2
+ yarn run v1.22.22
3
+ $ tsup
4
+ CLI Building entry: src/button.tsx, src/theme/index.ts
5
+ CLI Using tsconfig: tsconfig.json
6
+ CLI tsup v8.5.1
7
+ CLI Using tsup config: /Users/mac/Projects/wealthx-ui/packages/ui/tsup.config.ts
8
+ CLI Target: es6
9
+ CJS Build start
10
+ ESM Build start
11
+ ESM dist/button.mjs 310.00 B
12
+ ESM dist/theme/index.mjs 19.03 KB
13
+ ESM dist/chunk-I4E63NIC.mjs 900.00 B
14
+ ESM ⚡️ Build success in 17ms
15
+ CJS dist/button.js 2.46 KB
16
+ CJS dist/theme/index.js 22.54 KB
17
+ CJS ⚡️ Build success in 17ms
18
+ DTS Build start
19
+ DTS ⚡️ Build success in 2837ms
20
+ DTS dist/button.d.ts 258.00 B
21
+ DTS dist/theme/index.d.ts 8.43 KB
22
+ DTS dist/button.d.mts 258.00 B
23
+ DTS dist/theme/index.d.mts 8.43 KB
24
+ ✨ Done in 3.96s.
package/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # @wealthx/ui
2
+
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 29984f1: Initial Release
8
+
9
+ ### Minor Changes
10
+
11
+ - Add readme
@@ -0,0 +1,9 @@
1
+ import { ButtonProps as ButtonProps$1 } from '@mui/material/Button';
2
+
3
+ type ButtonProps = ButtonProps$1;
4
+ declare function Button(props: ButtonProps): JSX.Element;
5
+ declare namespace Button {
6
+ var displayName: string;
7
+ }
8
+
9
+ export { Button, type ButtonProps };
@@ -0,0 +1,9 @@
1
+ import { ButtonProps as ButtonProps$1 } from '@mui/material/Button';
2
+
3
+ type ButtonProps = ButtonProps$1;
4
+ declare function Button(props: ButtonProps): JSX.Element;
5
+ declare namespace Button {
6
+ var displayName: string;
7
+ }
8
+
9
+ export { Button, type ButtonProps };
package/dist/button.js ADDED
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __export = (target, all) => {
23
+ for (var name in all)
24
+ __defProp(target, name, { get: all[name], enumerable: true });
25
+ };
26
+ var __copyProps = (to, from, except, desc) => {
27
+ if (from && typeof from === "object" || typeof from === "function") {
28
+ for (let key of __getOwnPropNames(from))
29
+ if (!__hasOwnProp.call(to, key) && key !== except)
30
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
31
+ }
32
+ return to;
33
+ };
34
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
35
+ // If the importer is in node compatibility mode or this is not an ESM
36
+ // file that has been converted to a CommonJS file using a Babel-
37
+ // compatible transform (i.e. "__esModule" has not been set), then set
38
+ // "default" to the CommonJS "module.exports" for node compatibility.
39
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
40
+ mod
41
+ ));
42
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
43
+
44
+ // src/button.tsx
45
+ var button_exports = {};
46
+ __export(button_exports, {
47
+ Button: () => Button
48
+ });
49
+ module.exports = __toCommonJS(button_exports);
50
+ var import_Button = __toESM(require("@mui/material/Button"));
51
+ var import_jsx_runtime = require("react/jsx-runtime");
52
+ function Button(props) {
53
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Button.default, __spreadValues({}, props));
54
+ }
55
+ Button.displayName = "Button";
56
+ // Annotate the CommonJS export names for ESM import in node:
57
+ 0 && (module.exports = {
58
+ Button
59
+ });
@@ -0,0 +1,14 @@
1
+ import {
2
+ __spreadValues
3
+ } from "./chunk-I4E63NIC.mjs";
4
+
5
+ // src/button.tsx
6
+ import MuiButton from "@mui/material/Button";
7
+ import { jsx } from "react/jsx-runtime";
8
+ function Button(props) {
9
+ return /* @__PURE__ */ jsx(MuiButton, __spreadValues({}, props));
10
+ }
11
+ Button.displayName = "Button";
12
+ export {
13
+ Button
14
+ };
@@ -0,0 +1,37 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+
33
+ export {
34
+ __spreadValues,
35
+ __spreadProps,
36
+ __objRest
37
+ };
@@ -0,0 +1,24 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+
21
+ export {
22
+ __spreadValues,
23
+ __spreadProps
24
+ };
@@ -0,0 +1,246 @@
1
+ import React from 'react';
2
+ import * as _mui_material_styles from '@mui/material/styles';
3
+
4
+ /**
5
+ * Build CSS variable set for :root from tenant primary/secondary.
6
+ */
7
+ interface DesignThemeOptions {
8
+ /** Tenant primary brand color (hex). */
9
+ primary: string;
10
+ /** Tenant secondary brand color (hex). */
11
+ secondary: string;
12
+ }
13
+ /**
14
+ * Returns a flat object of CSS variable name → value for injection into :root.
15
+ * Names use single dashes: --color-brand-primary, --primary-rgb, --primary-50, etc.
16
+ */
17
+ declare function buildCssVariables(options: DesignThemeOptions): Record<string, string>;
18
+
19
+ /**
20
+ * Provider that applies design system theme (MUI + CSS variables).
21
+ * Primary and secondary are tenant-based and can be set per instance.
22
+ */
23
+
24
+ interface ThemeProviderProps extends DesignThemeOptions {
25
+ children: React.ReactNode;
26
+ /** Inject CSS variables into document (default true). Set false if you inject them yourself. */
27
+ injectCssVariables?: boolean;
28
+ }
29
+ /**
30
+ * Provides MUI theme and design-system CSS variables.
31
+ * Use primary/secondary to set tenant brand colors; all primary/* and secondary/* tokens update automatically.
32
+ */
33
+ declare function ThemeProvider({ children, primary, secondary, injectCssVariables, }: ThemeProviderProps): JSX.Element;
34
+ declare namespace ThemeProvider {
35
+ var displayName: string;
36
+ }
37
+
38
+ /**
39
+ * Create MUI theme with design system palette.
40
+ * Primary and secondary are tenant-based (dynamic).
41
+ */
42
+ interface DesignThemeConfig {
43
+ primary: string;
44
+ secondary: string;
45
+ }
46
+ declare function createDesignTheme(config: DesignThemeConfig): _mui_material_styles.Theme;
47
+
48
+ /**
49
+ * Theme utilities: hex ↔ RGB, opacity-based color generation.
50
+ */
51
+ /**
52
+ * Parse hex color to RGB tuple [r, g, b] (0-255).
53
+ */
54
+ declare function hexToRgb(hex: string): [number, number, number];
55
+ /**
56
+ * Format RGB tuple as "r, g, b" for use in rgba(var(--primary-rgb), 0.5).
57
+ */
58
+ declare function rgbToCssRgbString(rgb: [number, number, number]): string;
59
+ /**
60
+ * Create rgba string from hex and opacity.
61
+ */
62
+ declare function rgba(hex: string, alpha: number): string;
63
+ /**
64
+ * Build opacity scale: { "50": "rgba(...)", "100": "rgba(...)", ... }.
65
+ */
66
+ declare function buildOpacityScale(hex: string, steps: readonly {
67
+ key: string;
68
+ opacity: number;
69
+ }[]): Record<string, string>;
70
+ /**
71
+ * Get relative luminance of a hex color (0 = black, 1 = white).
72
+ */
73
+ declare function getLuminance(hex: string): number;
74
+ /**
75
+ * Returns a readable text color (hex) for a given background color.
76
+ * Uses WCAG relative luminance: dark text on light backgrounds, light text on dark backgrounds.
77
+ * Use for button labels, chips, and any text on colored backgrounds.
78
+ *
79
+ * @param backgroundColor - Hex color (e.g. "#33FF99" or "#162029")
80
+ * @returns "#040D13" (dark) or "#FFFFFF" (light)
81
+ */
82
+ declare function getContrastText(backgroundColor: string): string;
83
+
84
+ /**
85
+ * Design system - Fixed color tokens (non-tenant).
86
+ * Primary and secondary are tenant-based and provided at runtime.
87
+ */
88
+ declare const FOUNDATION_COLORS: {
89
+ readonly brand: {
90
+ readonly primary: "#33FF99";
91
+ readonly secondary: "#162029";
92
+ };
93
+ readonly text: {
94
+ readonly primary: "#040D13";
95
+ readonly secondary: "#4A5C6A";
96
+ readonly disabled: "#9EAAB5";
97
+ readonly inverse: "#FFFFFF";
98
+ };
99
+ readonly background: {
100
+ readonly primary: "#FFFFFF";
101
+ readonly secondary: "#F5F8FA";
102
+ readonly tertiary: "#E8EAEC";
103
+ readonly elevated: "#FFFFFF";
104
+ };
105
+ readonly border: {
106
+ readonly default: "#E8EAEC";
107
+ readonly focus: "#33FF99";
108
+ readonly error: "#F44336";
109
+ };
110
+ readonly state: {
111
+ readonly error: "#F44336";
112
+ readonly warning: "#FF9800";
113
+ readonly success: "#4CAF50";
114
+ readonly info: "#2196F3";
115
+ };
116
+ };
117
+ declare const GRAY_SCALE: {
118
+ readonly 50: "#F6F6F8";
119
+ readonly 100: "#E8E8EB";
120
+ readonly 200: "#D9D9D9";
121
+ readonly 300: "#B9BCBF";
122
+ readonly 400: "#959495";
123
+ readonly 500: "#868686";
124
+ readonly 600: "#8A8F94";
125
+ };
126
+ declare const ACCENTS: {
127
+ readonly purple: "#9747FF";
128
+ readonly darkGreen: "#1E4620";
129
+ };
130
+ declare const OPACITY_UTILITY: {
131
+ readonly disabled: 0.38;
132
+ readonly hover: 0.08;
133
+ };
134
+ declare const CHART_COLORS: {
135
+ readonly background: "#F7F7F8";
136
+ readonly textLabels: "#000000";
137
+ readonly textTitle: "#757373";
138
+ readonly grid: "#E3E3E8";
139
+ readonly series: {
140
+ readonly blue: "#2B72FB";
141
+ readonly teal: "#64BDC6";
142
+ readonly yellow: "#EECA34";
143
+ readonly orange: "#FE6A35";
144
+ readonly red: "#FA4B42";
145
+ readonly pink: "#EE60E0";
146
+ readonly purple: "#7B47E9";
147
+ readonly indigo: "#5D89DF";
148
+ readonly lightBlue: "#6AD1FE";
149
+ readonly green: "#3FDC7E";
150
+ };
151
+ };
152
+
153
+ /**
154
+ * Design system – Typography (rem-based).
155
+ * Font: Proxima Nova. Base: 16px (1rem).
156
+ */
157
+ declare const FONT_FAMILY_SANS = "\"Proxima Nova\", sans-serif";
158
+ /** Single typography style: font shorthand (weight size/lineHeight family) + optional letterSpacing & textTransform */
159
+ interface TypographyStyle {
160
+ fontWeight: number;
161
+ fontSize: string;
162
+ lineHeight: string;
163
+ letterSpacing?: string;
164
+ textTransform?: "uppercase" | "none";
165
+ fontFamily?: string;
166
+ }
167
+ /** Display – hero and major titles */
168
+ declare const TYPOGRAPHY_DISPLAY: {
169
+ readonly large: TypographyStyle;
170
+ readonly medium: TypographyStyle;
171
+ readonly small: TypographyStyle;
172
+ };
173
+ /** Headings H1–H6 */
174
+ declare const TYPOGRAPHY_HEADING: {
175
+ readonly h1: TypographyStyle;
176
+ readonly h2: TypographyStyle;
177
+ readonly h3: TypographyStyle;
178
+ readonly h4: TypographyStyle;
179
+ readonly h5: TypographyStyle;
180
+ readonly h6: TypographyStyle;
181
+ };
182
+ /** Body text */
183
+ declare const TYPOGRAPHY_BODY: {
184
+ readonly large: TypographyStyle;
185
+ readonly medium: TypographyStyle;
186
+ readonly small: TypographyStyle;
187
+ };
188
+ /** Labels – buttons, form labels, badges */
189
+ declare const TYPOGRAPHY_LABEL: {
190
+ readonly large: TypographyStyle;
191
+ readonly medium: TypographyStyle;
192
+ readonly small: TypographyStyle;
193
+ };
194
+ /** Utility – caption, overline, code */
195
+ declare const TYPOGRAPHY_UTILITY: {
196
+ readonly caption: TypographyStyle;
197
+ readonly overline: TypographyStyle;
198
+ readonly code: TypographyStyle;
199
+ };
200
+ declare const TYPOGRAPHY: {
201
+ readonly display: {
202
+ readonly large: TypographyStyle;
203
+ readonly medium: TypographyStyle;
204
+ readonly small: TypographyStyle;
205
+ };
206
+ readonly heading: {
207
+ readonly h1: TypographyStyle;
208
+ readonly h2: TypographyStyle;
209
+ readonly h3: TypographyStyle;
210
+ readonly h4: TypographyStyle;
211
+ readonly h5: TypographyStyle;
212
+ readonly h6: TypographyStyle;
213
+ };
214
+ readonly body: {
215
+ readonly large: TypographyStyle;
216
+ readonly medium: TypographyStyle;
217
+ readonly small: TypographyStyle;
218
+ };
219
+ readonly label: {
220
+ readonly large: TypographyStyle;
221
+ readonly medium: TypographyStyle;
222
+ readonly small: TypographyStyle;
223
+ };
224
+ readonly utility: {
225
+ readonly caption: TypographyStyle;
226
+ readonly overline: TypographyStyle;
227
+ readonly code: TypographyStyle;
228
+ };
229
+ };
230
+ /** All typography tokens as flat key → style for CSS variable generation */
231
+ declare function getTypographyCssVars(): Record<string, string>;
232
+ /** Letter-spacing and text-transform for styles that need them (for use with font shorthand) */
233
+ declare const TYPOGRAPHY_EXTRA_CSS: Record<string, {
234
+ letterSpacing?: string;
235
+ textTransform?: string;
236
+ }>;
237
+ /** Viewport mode for responsive typography (Mobile <768px, Tablet 768–1024px) */
238
+ type ViewportMode = "desktop" | "tablet" | "mobile";
239
+ /** Labels for viewport modes (docs/tooling). */
240
+ declare const VIEWPORT_LABELS: Record<ViewportMode, string>;
241
+ /** Max width (px) to simulate viewport; desktop has no constraint. */
242
+ declare const VIEWPORT_MAX_WIDTH: Record<ViewportMode, number | undefined>;
243
+ /** Responsive typography overrides for tablet/mobile. Desktop returns {}. */
244
+ declare function getResponsiveFontOverrides(mode: ViewportMode): Record<string, string>;
245
+
246
+ export { ACCENTS, CHART_COLORS, type DesignThemeConfig, type DesignThemeOptions, FONT_FAMILY_SANS, FOUNDATION_COLORS, GRAY_SCALE, OPACITY_UTILITY, TYPOGRAPHY, TYPOGRAPHY_BODY, TYPOGRAPHY_DISPLAY, TYPOGRAPHY_EXTRA_CSS, TYPOGRAPHY_HEADING, TYPOGRAPHY_LABEL, TYPOGRAPHY_UTILITY, ThemeProvider, type ThemeProviderProps, type TypographyStyle, VIEWPORT_LABELS, VIEWPORT_MAX_WIDTH, type ViewportMode, buildCssVariables, buildOpacityScale, createDesignTheme, getContrastText, getLuminance, getResponsiveFontOverrides, getTypographyCssVars, hexToRgb, rgbToCssRgbString, rgba };
@@ -0,0 +1,246 @@
1
+ import React from 'react';
2
+ import * as _mui_material_styles from '@mui/material/styles';
3
+
4
+ /**
5
+ * Build CSS variable set for :root from tenant primary/secondary.
6
+ */
7
+ interface DesignThemeOptions {
8
+ /** Tenant primary brand color (hex). */
9
+ primary: string;
10
+ /** Tenant secondary brand color (hex). */
11
+ secondary: string;
12
+ }
13
+ /**
14
+ * Returns a flat object of CSS variable name → value for injection into :root.
15
+ * Names use single dashes: --color-brand-primary, --primary-rgb, --primary-50, etc.
16
+ */
17
+ declare function buildCssVariables(options: DesignThemeOptions): Record<string, string>;
18
+
19
+ /**
20
+ * Provider that applies design system theme (MUI + CSS variables).
21
+ * Primary and secondary are tenant-based and can be set per instance.
22
+ */
23
+
24
+ interface ThemeProviderProps extends DesignThemeOptions {
25
+ children: React.ReactNode;
26
+ /** Inject CSS variables into document (default true). Set false if you inject them yourself. */
27
+ injectCssVariables?: boolean;
28
+ }
29
+ /**
30
+ * Provides MUI theme and design-system CSS variables.
31
+ * Use primary/secondary to set tenant brand colors; all primary/* and secondary/* tokens update automatically.
32
+ */
33
+ declare function ThemeProvider({ children, primary, secondary, injectCssVariables, }: ThemeProviderProps): JSX.Element;
34
+ declare namespace ThemeProvider {
35
+ var displayName: string;
36
+ }
37
+
38
+ /**
39
+ * Create MUI theme with design system palette.
40
+ * Primary and secondary are tenant-based (dynamic).
41
+ */
42
+ interface DesignThemeConfig {
43
+ primary: string;
44
+ secondary: string;
45
+ }
46
+ declare function createDesignTheme(config: DesignThemeConfig): _mui_material_styles.Theme;
47
+
48
+ /**
49
+ * Theme utilities: hex ↔ RGB, opacity-based color generation.
50
+ */
51
+ /**
52
+ * Parse hex color to RGB tuple [r, g, b] (0-255).
53
+ */
54
+ declare function hexToRgb(hex: string): [number, number, number];
55
+ /**
56
+ * Format RGB tuple as "r, g, b" for use in rgba(var(--primary-rgb), 0.5).
57
+ */
58
+ declare function rgbToCssRgbString(rgb: [number, number, number]): string;
59
+ /**
60
+ * Create rgba string from hex and opacity.
61
+ */
62
+ declare function rgba(hex: string, alpha: number): string;
63
+ /**
64
+ * Build opacity scale: { "50": "rgba(...)", "100": "rgba(...)", ... }.
65
+ */
66
+ declare function buildOpacityScale(hex: string, steps: readonly {
67
+ key: string;
68
+ opacity: number;
69
+ }[]): Record<string, string>;
70
+ /**
71
+ * Get relative luminance of a hex color (0 = black, 1 = white).
72
+ */
73
+ declare function getLuminance(hex: string): number;
74
+ /**
75
+ * Returns a readable text color (hex) for a given background color.
76
+ * Uses WCAG relative luminance: dark text on light backgrounds, light text on dark backgrounds.
77
+ * Use for button labels, chips, and any text on colored backgrounds.
78
+ *
79
+ * @param backgroundColor - Hex color (e.g. "#33FF99" or "#162029")
80
+ * @returns "#040D13" (dark) or "#FFFFFF" (light)
81
+ */
82
+ declare function getContrastText(backgroundColor: string): string;
83
+
84
+ /**
85
+ * Design system - Fixed color tokens (non-tenant).
86
+ * Primary and secondary are tenant-based and provided at runtime.
87
+ */
88
+ declare const FOUNDATION_COLORS: {
89
+ readonly brand: {
90
+ readonly primary: "#33FF99";
91
+ readonly secondary: "#162029";
92
+ };
93
+ readonly text: {
94
+ readonly primary: "#040D13";
95
+ readonly secondary: "#4A5C6A";
96
+ readonly disabled: "#9EAAB5";
97
+ readonly inverse: "#FFFFFF";
98
+ };
99
+ readonly background: {
100
+ readonly primary: "#FFFFFF";
101
+ readonly secondary: "#F5F8FA";
102
+ readonly tertiary: "#E8EAEC";
103
+ readonly elevated: "#FFFFFF";
104
+ };
105
+ readonly border: {
106
+ readonly default: "#E8EAEC";
107
+ readonly focus: "#33FF99";
108
+ readonly error: "#F44336";
109
+ };
110
+ readonly state: {
111
+ readonly error: "#F44336";
112
+ readonly warning: "#FF9800";
113
+ readonly success: "#4CAF50";
114
+ readonly info: "#2196F3";
115
+ };
116
+ };
117
+ declare const GRAY_SCALE: {
118
+ readonly 50: "#F6F6F8";
119
+ readonly 100: "#E8E8EB";
120
+ readonly 200: "#D9D9D9";
121
+ readonly 300: "#B9BCBF";
122
+ readonly 400: "#959495";
123
+ readonly 500: "#868686";
124
+ readonly 600: "#8A8F94";
125
+ };
126
+ declare const ACCENTS: {
127
+ readonly purple: "#9747FF";
128
+ readonly darkGreen: "#1E4620";
129
+ };
130
+ declare const OPACITY_UTILITY: {
131
+ readonly disabled: 0.38;
132
+ readonly hover: 0.08;
133
+ };
134
+ declare const CHART_COLORS: {
135
+ readonly background: "#F7F7F8";
136
+ readonly textLabels: "#000000";
137
+ readonly textTitle: "#757373";
138
+ readonly grid: "#E3E3E8";
139
+ readonly series: {
140
+ readonly blue: "#2B72FB";
141
+ readonly teal: "#64BDC6";
142
+ readonly yellow: "#EECA34";
143
+ readonly orange: "#FE6A35";
144
+ readonly red: "#FA4B42";
145
+ readonly pink: "#EE60E0";
146
+ readonly purple: "#7B47E9";
147
+ readonly indigo: "#5D89DF";
148
+ readonly lightBlue: "#6AD1FE";
149
+ readonly green: "#3FDC7E";
150
+ };
151
+ };
152
+
153
+ /**
154
+ * Design system – Typography (rem-based).
155
+ * Font: Proxima Nova. Base: 16px (1rem).
156
+ */
157
+ declare const FONT_FAMILY_SANS = "\"Proxima Nova\", sans-serif";
158
+ /** Single typography style: font shorthand (weight size/lineHeight family) + optional letterSpacing & textTransform */
159
+ interface TypographyStyle {
160
+ fontWeight: number;
161
+ fontSize: string;
162
+ lineHeight: string;
163
+ letterSpacing?: string;
164
+ textTransform?: "uppercase" | "none";
165
+ fontFamily?: string;
166
+ }
167
+ /** Display – hero and major titles */
168
+ declare const TYPOGRAPHY_DISPLAY: {
169
+ readonly large: TypographyStyle;
170
+ readonly medium: TypographyStyle;
171
+ readonly small: TypographyStyle;
172
+ };
173
+ /** Headings H1–H6 */
174
+ declare const TYPOGRAPHY_HEADING: {
175
+ readonly h1: TypographyStyle;
176
+ readonly h2: TypographyStyle;
177
+ readonly h3: TypographyStyle;
178
+ readonly h4: TypographyStyle;
179
+ readonly h5: TypographyStyle;
180
+ readonly h6: TypographyStyle;
181
+ };
182
+ /** Body text */
183
+ declare const TYPOGRAPHY_BODY: {
184
+ readonly large: TypographyStyle;
185
+ readonly medium: TypographyStyle;
186
+ readonly small: TypographyStyle;
187
+ };
188
+ /** Labels – buttons, form labels, badges */
189
+ declare const TYPOGRAPHY_LABEL: {
190
+ readonly large: TypographyStyle;
191
+ readonly medium: TypographyStyle;
192
+ readonly small: TypographyStyle;
193
+ };
194
+ /** Utility – caption, overline, code */
195
+ declare const TYPOGRAPHY_UTILITY: {
196
+ readonly caption: TypographyStyle;
197
+ readonly overline: TypographyStyle;
198
+ readonly code: TypographyStyle;
199
+ };
200
+ declare const TYPOGRAPHY: {
201
+ readonly display: {
202
+ readonly large: TypographyStyle;
203
+ readonly medium: TypographyStyle;
204
+ readonly small: TypographyStyle;
205
+ };
206
+ readonly heading: {
207
+ readonly h1: TypographyStyle;
208
+ readonly h2: TypographyStyle;
209
+ readonly h3: TypographyStyle;
210
+ readonly h4: TypographyStyle;
211
+ readonly h5: TypographyStyle;
212
+ readonly h6: TypographyStyle;
213
+ };
214
+ readonly body: {
215
+ readonly large: TypographyStyle;
216
+ readonly medium: TypographyStyle;
217
+ readonly small: TypographyStyle;
218
+ };
219
+ readonly label: {
220
+ readonly large: TypographyStyle;
221
+ readonly medium: TypographyStyle;
222
+ readonly small: TypographyStyle;
223
+ };
224
+ readonly utility: {
225
+ readonly caption: TypographyStyle;
226
+ readonly overline: TypographyStyle;
227
+ readonly code: TypographyStyle;
228
+ };
229
+ };
230
+ /** All typography tokens as flat key → style for CSS variable generation */
231
+ declare function getTypographyCssVars(): Record<string, string>;
232
+ /** Letter-spacing and text-transform for styles that need them (for use with font shorthand) */
233
+ declare const TYPOGRAPHY_EXTRA_CSS: Record<string, {
234
+ letterSpacing?: string;
235
+ textTransform?: string;
236
+ }>;
237
+ /** Viewport mode for responsive typography (Mobile <768px, Tablet 768–1024px) */
238
+ type ViewportMode = "desktop" | "tablet" | "mobile";
239
+ /** Labels for viewport modes (docs/tooling). */
240
+ declare const VIEWPORT_LABELS: Record<ViewportMode, string>;
241
+ /** Max width (px) to simulate viewport; desktop has no constraint. */
242
+ declare const VIEWPORT_MAX_WIDTH: Record<ViewportMode, number | undefined>;
243
+ /** Responsive typography overrides for tablet/mobile. Desktop returns {}. */
244
+ declare function getResponsiveFontOverrides(mode: ViewportMode): Record<string, string>;
245
+
246
+ export { ACCENTS, CHART_COLORS, type DesignThemeConfig, type DesignThemeOptions, FONT_FAMILY_SANS, FOUNDATION_COLORS, GRAY_SCALE, OPACITY_UTILITY, TYPOGRAPHY, TYPOGRAPHY_BODY, TYPOGRAPHY_DISPLAY, TYPOGRAPHY_EXTRA_CSS, TYPOGRAPHY_HEADING, TYPOGRAPHY_LABEL, TYPOGRAPHY_UTILITY, ThemeProvider, type ThemeProviderProps, type TypographyStyle, VIEWPORT_LABELS, VIEWPORT_MAX_WIDTH, type ViewportMode, buildCssVariables, buildOpacityScale, createDesignTheme, getContrastText, getLuminance, getResponsiveFontOverrides, getTypographyCssVars, hexToRgb, rgbToCssRgbString, rgba };