react-native-terra-ui 0.10.2 → 0.11.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.
- package/CHANGELOG.md +22 -0
- package/README.md +8 -4
- package/lib/module/context/ThemeProvider.js +5 -5
- package/lib/module/context/ThemeProvider.js.map +1 -1
- package/lib/module/theme/define-config.js +5 -5
- package/lib/module/theme/define-config.js.map +1 -1
- package/lib/module/theme/errors.js +1 -1
- package/lib/module/theme/index.js +2 -2
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/theme/registry.js +15 -21
- package/lib/module/theme/registry.js.map +1 -1
- package/lib/module/theme/resolve-config.js +68 -68
- package/lib/module/theme/resolve-config.js.map +1 -1
- package/lib/module/theme/runtime.js +11 -11
- package/lib/module/theme/runtime.js.map +1 -1
- package/lib/module/theme/selection-store.js +7 -7
- package/lib/module/theme/selection-store.js.map +1 -1
- package/lib/module/theme/unistyles-adapter.js +1 -1
- package/lib/module/utils/accent-utils.js +24 -24
- package/lib/module/utils/accent-utils.js.map +1 -1
- package/lib/typescript/src/context/ThemeProvider.d.ts +7 -7
- package/lib/typescript/src/context/ThemeProvider.d.ts.map +1 -1
- package/lib/typescript/src/theme/define-config.d.ts +11 -8
- package/lib/typescript/src/theme/define-config.d.ts.map +1 -1
- package/lib/typescript/src/theme/errors.d.ts +1 -1
- package/lib/typescript/src/theme/index.d.ts +3 -3
- package/lib/typescript/src/theme/index.d.ts.map +1 -1
- package/lib/typescript/src/theme/registry.d.ts +5 -5
- package/lib/typescript/src/theme/registry.d.ts.map +1 -1
- package/lib/typescript/src/theme/resolve-config.d.ts +25 -25
- package/lib/typescript/src/theme/resolve-config.d.ts.map +1 -1
- package/lib/typescript/src/theme/runtime.d.ts +5 -5
- package/lib/typescript/src/theme/runtime.d.ts.map +1 -1
- package/lib/typescript/src/theme/selection-store.d.ts +5 -5
- package/lib/typescript/src/theme/selection-store.d.ts.map +1 -1
- package/lib/typescript/src/theme/types.d.ts +20 -47
- package/lib/typescript/src/theme/types.d.ts.map +1 -1
- package/lib/typescript/src/theme/unistyles-adapter.d.ts +1 -1
- package/lib/typescript/src/utils/accent-utils.d.ts +6 -7
- package/lib/typescript/src/utils/accent-utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/context/ThemeProvider.tsx +10 -10
- package/src/theme/define-config.ts +12 -7
- package/src/theme/errors.ts +1 -1
- package/src/theme/index.ts +6 -8
- package/src/theme/registry.ts +15 -23
- package/src/theme/resolve-config.ts +88 -95
- package/src/theme/runtime.ts +11 -11
- package/src/theme/selection-store.ts +9 -9
- package/src/theme/types.ts +21 -47
- package/src/theme/unistyles-adapter.ts +1 -1
- package/src/utils/accent-utils.ts +25 -25
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.11.0](https://github.com/earthlin9/react-native-terra-ui/compare/v0.10.2...v0.11.0) (2026-09-12)
|
|
4
|
+
|
|
5
|
+
### ⚠ BREAKING CHANGES
|
|
6
|
+
|
|
7
|
+
* **theme:** `accents` is now `themes`, `defaultAccent` is now
|
|
8
|
+
`defaultTheme`, and `schemes.light/dark` is removed — move those tokens
|
|
9
|
+
into each named theme's `light`/`dark` entry. The `{ seed, overrides }`
|
|
10
|
+
form is now `{ seed, color }`. `applyAccent`/`getCurrentAccent`/
|
|
11
|
+
`getAccentNames` become `setTheme`/`getCurrentTheme`/`getThemeNames`,
|
|
12
|
+
`useTheme().accent`/`setAccent` become `themeName`/`setTheme`,
|
|
13
|
+
`createTerraThemes(config, { accent })` takes `{ theme }`, and
|
|
14
|
+
`ThemeSelection.accent` is `ThemeSelection.themeName`.
|
|
15
|
+
See docs/named-theme-migration.md.
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **theme:** replace schemes and accents with named themes ([#25](https://github.com/earthlin9/react-native-terra-ui/issues/25))
|
|
20
|
+
|
|
21
|
+
### Documentation
|
|
22
|
+
|
|
23
|
+
* scaffold the component API reference ([#24](https://github.com/earthlin9/react-native-terra-ui/issues/24)) ([3204657](https://github.com/earthlin9/react-native-terra-ui/commit/3204657868ec2c008d628ec9a06307227d0587cc))
|
|
24
|
+
|
|
3
25
|
## [0.10.2](https://github.com/earthlin9/react-native-terra-ui/compare/v0.10.1...v0.10.2) (2026-09-11)
|
|
4
26
|
|
|
5
27
|
### Features
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Themeable React Native UI components built on react-native-unistyles.
|
|
|
9
9
|
| `react-native-terra-ui` | Components, `TerraUIProvider`, `useTheme` |
|
|
10
10
|
| `react-native-terra-ui/theme` | `configureTerraUI`, theme types, color utilities (no import-time side effects) |
|
|
11
11
|
|
|
12
|
-
Use the `/theme` entry for `configureTerraUI()` in your app entry file. See [docs/getting-started.md](../../docs/getting-started.md); upgrading an existing configuration is covered in [docs/theme-
|
|
12
|
+
Use the `/theme` entry for `configureTerraUI()` in your app entry file. See [docs/getting-started.md](../../docs/getting-started.md); upgrading an existing configuration is covered in [docs/named-theme-migration.md](../../docs/named-theme-migration.md).
|
|
13
13
|
|
|
14
14
|
## Components
|
|
15
15
|
|
|
@@ -51,15 +51,19 @@ toast.show({ label: 'Saved', variant: 'success' });
|
|
|
51
51
|
| Export | Description |
|
|
52
52
|
|--------|-------------|
|
|
53
53
|
| `TerraUIProvider` | Root provider — wrap your app once |
|
|
54
|
-
| `useTheme` |
|
|
54
|
+
| `useTheme` | Resolved tokens, named theme selection, and appearance mode |
|
|
55
55
|
| `ToastProvider`, `useToast` | Toast stack provider and manager hook |
|
|
56
56
|
|
|
57
57
|
## Theme API (`react-native-terra-ui/theme`)
|
|
58
58
|
|
|
59
|
-
- `configureTerraUI` — register themes,
|
|
59
|
+
- `configureTerraUI` — register named light/dark themes, icons, and component defaults
|
|
60
|
+
- `defineTerraConfig` — author config with typed `defaultTheme` names
|
|
61
|
+
- `createTerraThemes` — resolve named themes for previews and tests
|
|
62
|
+
- `setTheme`, `getCurrentTheme`, `getThemeNames` — select and inspect named themes
|
|
63
|
+
- `setThemeMode`, `getThemeMode` — control system/light/dark appearance
|
|
60
64
|
- `defaultLightTheme`, `defaultDarkTheme` — built-in theme objects
|
|
61
65
|
- `resolveThemeColor`, `deepMerge`, `shade`, `withAlpha`, `readableOn` — color utilities
|
|
62
|
-
- Types: `TerraTheme`, `TerraConfig`, `
|
|
66
|
+
- Types: `TerraTheme`, `TerraConfig`, `NamedTheme`, `ThemeSchemeInput`, `ThemeSeed`, `ThemeMode`, `Scheme`, `ColorToken`, etc.
|
|
63
67
|
|
|
64
68
|
## Showcase
|
|
65
69
|
|
|
@@ -4,7 +4,7 @@ import { useSyncExternalStore } from "react";
|
|
|
4
4
|
import { SafeAreaProvider } from "react-native-safe-area-context";
|
|
5
5
|
import { useUnistyles } from "react-native-unistyles";
|
|
6
6
|
import { bootstrapTerraUI } from "../theme/registry.js";
|
|
7
|
-
import {
|
|
7
|
+
import { applyScheme, getThemeSelection, setTheme, setThemeMode, subscribeThemeSelection } from "../theme/runtime.js";
|
|
8
8
|
import { resolveScreenPadding } from "../theme/screen-padding.js";
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
// Ensure the default theme is registered on first import. An app that calls
|
|
@@ -26,8 +26,8 @@ export const TerraUIProvider = ({
|
|
|
26
26
|
children: children
|
|
27
27
|
});
|
|
28
28
|
/**
|
|
29
|
-
* Access the active theme and switch scheme / mode /
|
|
30
|
-
* comes from the runtime store, so changes made imperatively (`
|
|
29
|
+
* Access the active theme and switch scheme / mode / theme. Selection state
|
|
30
|
+
* comes from the runtime store, so changes made imperatively (`setTheme`,
|
|
31
31
|
* `setThemeMode`) and through this hook are observed by every consumer.
|
|
32
32
|
*/
|
|
33
33
|
export function useTheme() {
|
|
@@ -40,8 +40,8 @@ export function useTheme() {
|
|
|
40
40
|
theme,
|
|
41
41
|
scheme: rt.themeName ?? "light",
|
|
42
42
|
setScheme: applyScheme,
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
themeName: selection.themeName,
|
|
44
|
+
setTheme,
|
|
45
45
|
mode: selection.mode,
|
|
46
46
|
setMode: setThemeMode
|
|
47
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSyncExternalStore","SafeAreaProvider","useUnistyles","bootstrapTerraUI","
|
|
1
|
+
{"version":3,"names":["useSyncExternalStore","SafeAreaProvider","useUnistyles","bootstrapTerraUI","applyScheme","getThemeSelection","setTheme","setThemeMode","subscribeThemeSelection","resolveScreenPadding","jsx","_jsx","TerraUIProvider","children","useTheme","theme","rt","selection","scheme","themeName","setScheme","mode","setMode","useScreenPadding","breakpoint","useScreenMargin"],"sourceRoot":"../../../src","sources":["context/ThemeProvider.tsx"],"mappings":";;AAAA,SAAiCA,oBAAoB,QAAQ,OAAO;AAEpE,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,YAAY,QAAQ,wBAAwB;AAErD,SAASC,gBAAgB;AACzB,SACEC,WAAW,EACXC,iBAAiB,EACjBC,QAAQ,EACRC,YAAY,EACZC,uBAAuB;AAEzB,SAAqCC,oBAAoB;AAAkC,SAAAC,GAAA,IAAAC,IAAA;AAG3F;AACA;AACA;AACAR,gBAAgB,CAAC,CAAC;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMS,eAAe,GAAGA,CAAC;EAAEC;AAA4B,CAAC,kBAC7DF,IAAA,CAACV,gBAAgB;EAAAY,QAAA,EAAEA;AAAQ,CAAmB,CAC/C;AA6BD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAAA,EAAmB;EACzC,MAAM;IAAEC,KAAK;IAAEC;EAAG,CAAC,GAAGd,YAAY,CAAC,CAAC;EACpC,MAAMe,SAAS,GAAGjB,oBAAoB,CAACQ,uBAAuB,EAAEH,iBAAiB,EAAEA,iBAAiB,CAAC;EAErG,OAAO;IACLU,KAAK;IACLG,MAAM,EAAGF,EAAE,CAACG,SAAS,IAAI,OAAkB;IAC3CC,SAAS,EAAEhB,WAAW;IACtBe,SAAS,EAAEF,SAAS,CAACE,SAAS;IAC9Bb,QAAQ;IACRe,IAAI,EAAEJ,SAAS,CAACI,IAAI;IACpBC,OAAO,EAAEf;EACX,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASgB,gBAAgBA,CAAA,EAA0B;EACxD,MAAM;IAAER,KAAK;IAAEC;EAAG,CAAC,GAAGd,YAAY,CAAC,CAAC;EACpC,OAAOO,oBAAoB,CAACM,KAAK,EAAEC,EAAE,CAACQ,UAAU,CAAC;AACnD;;AAEA;AACA,OAAO,MAAMC,eAAe,GAAGF,gBAAgB","ignoreList":[]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
/** The literal
|
|
3
|
+
/** The literal theme names declared in `T.themes`, or `never` when none are declared. */
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Identity helper for authoring a {@link TerraConfig} with contextual typing.
|
|
7
|
-
* Has no side effects. With literal `
|
|
8
|
-
* them; a dynamic `Record<string,
|
|
7
|
+
* Has no side effects. With literal `themes`, `defaultTheme` must name one of
|
|
8
|
+
* them; a dynamic `Record<string, NamedTheme>` keeps `defaultTheme` as `string`
|
|
9
9
|
* and defers to runtime validation.
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
12
12
|
* const config = defineTerraConfig({
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* themes: { indigo: { light: "#4f46e5", dark: "#818cf8" } },
|
|
14
|
+
* defaultTheme: "indigo",
|
|
15
15
|
* });
|
|
16
16
|
* configureTerraUI(config);
|
|
17
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defineTerraConfig","config"],"sourceRoot":"../../../src","sources":["theme/define-config.ts"],"mappings":";;AAEA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,iBAAiBA,CAC/BC,
|
|
1
|
+
{"version":3,"names":["defineTerraConfig","config"],"sourceRoot":"../../../src","sources":["theme/define-config.ts"],"mappings":";;AAEA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,iBAAiBA,CAC/BC,MAKC,EACE;EACH,OAAOA,MAAM;AACf","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Thrown for invalid pure configuration input — before any registry, selection,
|
|
5
5
|
* or native state is touched. `path` points at the offending config entry, e.g.
|
|
6
|
-
* `
|
|
6
|
+
* `themes.indigo.dark.seed` or `defaultTheme`.
|
|
7
7
|
*/
|
|
8
8
|
export class TerraConfigError extends Error {
|
|
9
9
|
constructor(path, message) {
|
|
@@ -21,9 +21,9 @@ export { breakpoints, resolveBreakpointValue } from "./breakpoints.js";
|
|
|
21
21
|
// ─── Config + runtime ───────────────────────────────────────────────────────
|
|
22
22
|
export { defineTerraConfig } from "./define-config.js";
|
|
23
23
|
export { TerraConfigError } from "./errors.js";
|
|
24
|
-
export { configureTerraUI,
|
|
24
|
+
export { configureTerraUI, getDefaultRadius, getIcon, getImageComponent, getIsConfigured, getRequiredIcon, getSurfaceElevation, getThemeNames, resolveTheme } from "./registry.js";
|
|
25
25
|
export { createTerraThemes } from "./resolve-config.js";
|
|
26
|
-
export {
|
|
26
|
+
export { applyScheme, getCurrentTheme, getThemeMode, getThemeSelection, setTheme, setThemeMode } from "./runtime.js";
|
|
27
27
|
export { resolveScreenMargin } from "./screen-margin.js";
|
|
28
28
|
export { resolveScreenPadding } from "./screen-padding.js";
|
|
29
29
|
// ─── Default themes ───────────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["checkAccentContrast","generateAccentColors","isSupportedAccentSeed","normalizeAccent","readableOn","shade","withAlpha","deepMerge","resolveThemeColor","FONT_WEIGHT_VALUE","SYSTEM_FONT","breakpoints","resolveBreakpointValue","defineTerraConfig","TerraConfigError","configureTerraUI","
|
|
1
|
+
{"version":3,"names":["checkAccentContrast","generateAccentColors","isSupportedAccentSeed","normalizeAccent","readableOn","shade","withAlpha","deepMerge","resolveThemeColor","FONT_WEIGHT_VALUE","SYSTEM_FONT","breakpoints","resolveBreakpointValue","defineTerraConfig","TerraConfigError","configureTerraUI","getDefaultRadius","getIcon","getImageComponent","getIsConfigured","getRequiredIcon","getSurfaceElevation","getThemeNames","resolveTheme","createTerraThemes","applyScheme","getCurrentTheme","getThemeMode","getThemeSelection","setTheme","setThemeMode","resolveScreenMargin","resolveScreenPadding","defaultDarkTheme","defaultLightTheme"],"sourceRoot":"../../../src","sources":["theme/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AASA,SACEA,mBAAmB,EACnBC,oBAAoB,EACpBC,qBAAqB;AAEvB,SAASC,eAAe;AACxB,SAASC,UAAU,EAAEC,KAAK,EAAEC,SAAS;AAErC,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB,EAAEC,WAAW;AACvC;;AAEA,SAASC,WAAW,EAAEC,sBAAsB;AAC5C;AACA,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,OAAO,EACPC,iBAAiB,EACjBC,eAAe,EACfC,eAAe,EACfC,mBAAmB,EACnBC,aAAa,EACbC,YAAY;AAEd,SAASC,iBAAiB;AAE1B,SACEC,WAAW,EACXC,eAAe,EACfC,YAAY,EACZC,iBAAiB,EACjBC,QAAQ,EACRC,YAAY;AAGd,SAASC,mBAAmB;AAE5B,SAASC,oBAAoB;AAC7B;AACA,SAASC,gBAAgB,EAAEC,iBAAiB;AAC5C","ignoreList":[]}
|
|
@@ -55,8 +55,8 @@ let installation = "unconfigured";
|
|
|
55
55
|
|
|
56
56
|
export const getIsConfigured = () => installation !== "unconfigured";
|
|
57
57
|
|
|
58
|
-
/** Names of the registered
|
|
59
|
-
export const
|
|
58
|
+
/** Names of the registered themes, in declaration order. Returns a fresh array. */
|
|
59
|
+
export const getThemeNames = () => [...getInstalledConfig().themeNames];
|
|
60
60
|
export const getImageComponent = () => settings.imageComponent;
|
|
61
61
|
export const getIcon = name => settings.icons[name] ?? defaultIcons[name];
|
|
62
62
|
export const getRequiredIcon = name => settings.icons[name] ?? defaultIcons[name];
|
|
@@ -75,22 +75,22 @@ export const getSurfaceElevation = () => settings.surfaceElevation;
|
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
77
|
* Resolves one scheme's theme from the installed configuration with the named
|
|
78
|
-
*
|
|
79
|
-
* not the configured `
|
|
78
|
+
* theme selected. Omitting `name` selects the base theme (defaults + shared —
|
|
79
|
+
* not the configured `defaultTheme`). An unknown name warns in development
|
|
80
80
|
* and falls back to the base theme. Pure with respect to runtime state: it
|
|
81
81
|
* never changes the applied selection.
|
|
82
82
|
*/
|
|
83
|
-
export function resolveTheme(scheme,
|
|
83
|
+
export function resolveTheme(scheme, name) {
|
|
84
84
|
const config = getInstalledConfig();
|
|
85
|
-
let
|
|
86
|
-
if (
|
|
87
|
-
if (config.
|
|
88
|
-
|
|
85
|
+
let themeName = null;
|
|
86
|
+
if (name !== undefined) {
|
|
87
|
+
if (config.themeNames.includes(name)) {
|
|
88
|
+
themeName = name;
|
|
89
89
|
} else if (__DEV__) {
|
|
90
|
-
console.warn(`[react-native-terra-ui] Unknown
|
|
90
|
+
console.warn(`[react-native-terra-ui] Unknown theme "${name}"; resolving the base theme.`);
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
return resolveThemeScheme(config, scheme,
|
|
93
|
+
return resolveThemeScheme(config, scheme, themeName).theme;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
// ─── Configuration ───────────────────────────────────────────────────────────
|
|
@@ -150,24 +150,18 @@ function deriveMode(config) {
|
|
|
150
150
|
if (config.adaptiveThemes === false) return "light";
|
|
151
151
|
return "system";
|
|
152
152
|
}
|
|
153
|
-
const pickThemeInput = config => ({
|
|
154
|
-
shared: config.shared,
|
|
155
|
-
schemes: config.schemes,
|
|
156
|
-
accents: config.accents,
|
|
157
|
-
defaultAccent: config.defaultAccent
|
|
158
|
-
});
|
|
159
153
|
function applyConfig(config, kind) {
|
|
160
154
|
// (a) Pure: validate and build everything. Throws leave ALL state untouched.
|
|
161
|
-
const themeConfig = normalizeThemeInput(
|
|
155
|
+
const themeConfig = normalizeThemeInput(config);
|
|
162
156
|
const mode = deriveMode(config);
|
|
163
157
|
const {
|
|
164
158
|
themes,
|
|
165
159
|
diagnostics
|
|
166
|
-
} = resolveThemes(themeConfig, themeConfig.
|
|
160
|
+
} = resolveThemes(themeConfig, themeConfig.defaultTheme);
|
|
167
161
|
const nextSettings = buildSettings(config);
|
|
168
162
|
|
|
169
163
|
// (b) Native. `StyleSheet.configure` runs once per app; after that the
|
|
170
|
-
// rebuilt themes reach the runtime the same way
|
|
164
|
+
// rebuilt themes reach the runtime the same way a theme change does, so an
|
|
171
165
|
// app's config is never stranded behind the fallback's defaults.
|
|
172
166
|
if (hasConfiguredUnistyles()) {
|
|
173
167
|
updateThemes(themes);
|
|
@@ -184,7 +178,7 @@ function applyConfig(config, kind) {
|
|
|
184
178
|
settings = nextSettings;
|
|
185
179
|
setInstalledConfig(themeConfig);
|
|
186
180
|
publishThemeSelection({
|
|
187
|
-
|
|
181
|
+
themeName: themeConfig.defaultTheme ?? undefined,
|
|
188
182
|
mode
|
|
189
183
|
});
|
|
190
184
|
warnContrastDiagnostics(diagnostics);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultIcons","defaultImage","warnContrastDiagnostics","normalizeThemeInput","resolveThemeScheme","resolveThemes","getInstalledConfig","publishThemeSelection","setInstalledConfig","applyMode","configureUnistyles","hasConfiguredUnistyles","updateThemes","DEFAULT_RADIUS","DEFAULT_ELEVATION","resolveDefaultRadius","components","button","radius","surface","buildSettings","config","defaultRadius","surfaceElevation","elevation","icons","imageComponent","image","settings","installation","getIsConfigured","
|
|
1
|
+
{"version":3,"names":["defaultIcons","defaultImage","warnContrastDiagnostics","normalizeThemeInput","resolveThemeScheme","resolveThemes","getInstalledConfig","publishThemeSelection","setInstalledConfig","applyMode","configureUnistyles","hasConfiguredUnistyles","updateThemes","DEFAULT_RADIUS","DEFAULT_ELEVATION","resolveDefaultRadius","components","button","radius","surface","buildSettings","config","defaultRadius","surfaceElevation","elevation","icons","imageComponent","image","settings","installation","getIsConfigured","getThemeNames","themeNames","getImageComponent","getIcon","name","getRequiredIcon","getDefaultRadius","component","getSurfaceElevation","resolveTheme","scheme","themeName","undefined","includes","__DEV__","console","warn","theme","configureTerraUI","Object","keys","length","applyConfig","bootstrapTerraUI","deriveMode","hasLegacy","initialScheme","adaptiveThemes","mode","kind","themeConfig","themes","diagnostics","defaultTheme","nextSettings"],"sourceRoot":"../../../src","sources":["theme/registry.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAY;AACrB,SAASC,YAAY;AACrB,SAASC,uBAAuB;AAChC,SAASC,mBAAmB,EAAEC,kBAAkB,EAAEC,aAAa;AAC/D,SAASC,kBAAkB,EAAEC,qBAAqB,EAAEC,kBAAkB;AActE,SAASC,SAAS,EAAEC,kBAAkB,EAAEC,sBAAsB,EAAEC,YAAY;;AAE5E;;AAEA;AACA,MAAMC,cAAkC,GAAG,IAAI;AAC/C;AACA,MAAMC,iBAA+B,GAAG,MAAM;AAI9C;AACA,MAAMC,oBAAoB,GAAIC,UAA8B,KAAsB;EAChFC,MAAM,EAAED,UAAU,EAAEC,MAAM,EAAEC,MAAM,IAAIL,cAAc;EACpDM,OAAO,EAAEH,UAAU,EAAEG,OAAO,EAAED,MAAM,IAAIL;AAC1C,CAAC,CAAC;;AAEF;;AAQA;;AAEA;;AAQA,MAAMO,aAAa,GAAIC,MAAmB,KAAwB;EAChEC,aAAa,EAAEP,oBAAoB,CAACM,MAAM,CAACL,UAAU,CAAC;EACtDO,gBAAgB,EAAEF,MAAM,CAACL,UAAU,EAAEG,OAAO,EAAEK,SAAS,IAAIV,iBAAiB;EAC5EW,KAAK,EAAE;IAAE,IAAIJ,MAAM,CAACI,KAAK,IAAI,CAAC,CAAC;EAAE,CAAC;EAClCC,cAAc,EAAEL,MAAM,CAACM,KAAK,IAAI1B;AAClC,CAAC,CAAC;AAEF,IAAI2B,QAA0B,GAAGR,aAAa,CAAC,CAAC,CAAC,CAAC;;AAElD;AACA;AACA;AACA;AACA;AACA,IAAIS,YAAiD,GAAG,cAAc;;AAEtE;;AAEA,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAeD,YAAY,KAAK,cAAc;;AAE7E;AACA,OAAO,MAAME,aAAa,GAAGA,CAAA,KAAgB,CAAC,GAAGzB,kBAAkB,CAAC,CAAC,CAAC0B,UAAU,CAAC;AAEjF,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAA2BL,QAAQ,CAACF,cAAc;AAEnF,OAAO,MAAMQ,OAAO,GAAIC,IAAY,IAClCP,QAAQ,CAACH,KAAK,CAACU,IAAI,CAAC,IAAInC,YAAY,CAACmC,IAAI,CAA0B;AAErE,OAAO,MAAMC,eAAe,GAAID,IAA2B,IACzDP,QAAQ,CAACH,KAAK,CAACU,IAAI,CAAC,IAAInC,YAAY,CAACmC,IAAI,CAAC;;AAE5C;AACA;AACA;AACA;AACA,OAAO,MAAME,gBAAgB,GAAIC,SAA0B,IACzDV,QAAQ,CAACN,aAAa,CAACgB,SAAS,CAAC;;AAEnC;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAoBX,QAAQ,CAACL,gBAAgB;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASiB,YAAYA,CAACC,MAAc,EAAEN,IAAa,EAAc;EACtE,MAAMd,MAAM,GAAGf,kBAAkB,CAAC,CAAC;EACnC,IAAIoC,SAAwB,GAAG,IAAI;EACnC,IAAIP,IAAI,KAAKQ,SAAS,EAAE;IACtB,IAAItB,MAAM,CAACW,UAAU,CAACY,QAAQ,CAACT,IAAI,CAAC,EAAE;MACpCO,SAAS,GAAGP,IAAI;IAClB,CAAC,MAAM,IAAIU,OAAO,EAAE;MAClBC,OAAO,CAACC,IAAI,CAAC,0CAA0CZ,IAAI,8BAA8B,CAAC;IAC5F;EACF;EACA,OAAO/B,kBAAkB,CAACiB,MAAM,EAAEoB,MAAM,EAAEC,SAAS,CAAC,CAACM,KAAK;AAC5D;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAC5B,MAAmB,GAAG,CAAC,CAAC,EAAQ;EAC/D,IAAIQ,YAAY,KAAK,KAAK,EAAE;IAC1B,IAAIgB,OAAO,IAAIK,MAAM,CAACC,IAAI,CAAC9B,MAAM,CAAC,CAAC+B,MAAM,GAAG,CAAC,EAAE;MAC7CN,OAAO,CAACC,IAAI,CACV,mGACF,CAAC;IACH;IACA;EACF;EAEAM,WAAW,CAAChC,MAAM,EAAE,KAAK,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASiC,gBAAgBA,CAAA,EAAS;EACvC,IAAIzB,YAAY,KAAK,cAAc,EAAE;IACnC;EACF;EAEAwB,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASE,UAAUA,CAAClC,MAAmB,EAAa;EAClD,MAAMmC,SAAS,GAAGnC,MAAM,CAACoC,aAAa,KAAKd,SAAS,IAAItB,MAAM,CAACqC,cAAc,KAAKf,SAAS;EAC3F,IAAItB,MAAM,CAACsC,IAAI,KAAKhB,SAAS,EAAE;IAC7B,IAAIE,OAAO,IAAIW,SAAS,EAAE;MACxBV,OAAO,CAACC,IAAI,CACV,uLACF,CAAC;IACH;IACA,OAAO1B,MAAM,CAACsC,IAAI;EACpB;EACA,IAAItC,MAAM,CAACoC,aAAa,KAAKd,SAAS,EAAE,OAAOtB,MAAM,CAACoC,aAAa;EACnE,IAAIpC,MAAM,CAACqC,cAAc,KAAK,KAAK,EAAE,OAAO,OAAO;EACnD,OAAO,QAAQ;AACjB;AAEA,SAASL,WAAWA,CAAChC,MAAmB,EAAEuC,IAAwB,EAAQ;EACxE;EACA,MAAMC,WAAW,GAAG1D,mBAAmB,CAACkB,MAAM,CAAC;EAC/C,MAAMsC,IAAI,GAAGJ,UAAU,CAAClC,MAAM,CAAC;EAC/B,MAAM;IAAEyC,MAAM;IAAEC;EAAY,CAAC,GAAG1D,aAAa,CAACwD,WAAW,EAAEA,WAAW,CAACG,YAAY,CAAC;EACpF,MAAMC,YAAY,GAAG7C,aAAa,CAACC,MAAM,CAAC;;EAE1C;EACA;EACA;EACA,IAAIV,sBAAsB,CAAC,CAAC,EAAE;IAC5BC,YAAY,CAACkD,MAAM,CAAC;IACpBrD,SAAS,CAACkD,IAAI,CAAC;EACjB,CAAC,MAAM;IACLjD,kBAAkB,CAAC;MAAEoD,MAAM;MAAEH;IAAK,CAAC,CAAC;EACtC;;EAEA;EACA9B,YAAY,GAAG+B,IAAI;EACnBhC,QAAQ,GAAGqC,YAAY;EACvBzD,kBAAkB,CAACqD,WAAW,CAAC;EAC/BtD,qBAAqB,CAAC;IAAEmC,SAAS,EAAEmB,WAAW,CAACG,YAAY,IAAIrB,SAAS;IAAEgB;EAAK,CAAC,CAAC;EAEjFzD,uBAAuB,CAAC6D,WAAW,CAAC;AACtC","ignoreList":[]}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Pure theme resolution — normalization, layer processing, derived values and
|
|
5
|
-
* theme creation. Shared by startup configuration, runtime
|
|
5
|
+
* theme creation. Shared by startup configuration, runtime theme changes and
|
|
6
6
|
* previews so every consumer sees the same colors for the same input.
|
|
7
7
|
*
|
|
8
8
|
* Precedence, identical for both schemes:
|
|
9
9
|
*
|
|
10
|
-
* default tokens → shared →
|
|
11
|
-
*
|
|
10
|
+
* default tokens → shared → generated accent → selected theme tokens
|
|
11
|
+
* Generation uses the selected theme's resolved surfaces and pressed opacity.
|
|
12
12
|
*
|
|
13
13
|
* This module must stay free of registry, provider, Unistyles and renderer
|
|
14
14
|
* imports so `createTerraThemes` works without any native configuration.
|
|
@@ -52,8 +52,8 @@ function sanitizeOverride(value) {
|
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
54
|
* Applies one override layer onto `state` and returns the next state. Every
|
|
55
|
-
* layer — shared,
|
|
56
|
-
*
|
|
55
|
+
* layer — shared, generated accent, or selected theme tokens — goes through
|
|
56
|
+
* here, so they all follow the same rules:
|
|
57
57
|
* - deprecated names are normalized within the layer (canonical wins);
|
|
58
58
|
* - `undefined`/`null` leaves are no override; arrays replace; objects merge;
|
|
59
59
|
* - `spacing.base` / `radius.base` regenerate their scale, then that layer's
|
|
@@ -133,11 +133,11 @@ export function applyThemeLayer(state, override) {
|
|
|
133
133
|
|
|
134
134
|
/**
|
|
135
135
|
* A validated, immutable theme configuration. `base` is the fully layered
|
|
136
|
-
* `defaults → shared
|
|
137
|
-
* re-resolved from it rather than from a previously resolved
|
|
136
|
+
* `defaults → shared` state per scheme; every theme selection is
|
|
137
|
+
* re-resolved from it rather than from a previously resolved theme.
|
|
138
138
|
*/
|
|
139
139
|
|
|
140
|
-
export function
|
|
140
|
+
export function normalizeThemeScheme(input, path) {
|
|
141
141
|
if (input === undefined || input === null) return {
|
|
142
142
|
kind: "none"
|
|
143
143
|
};
|
|
@@ -151,44 +151,46 @@ export function normalizeAccentScheme(input, path) {
|
|
|
151
151
|
};
|
|
152
152
|
}
|
|
153
153
|
if (!isPlainObject(input)) {
|
|
154
|
-
throw new TerraConfigError(path, "Expected a color string, `{ seed,
|
|
154
|
+
throw new TerraConfigError(path, "Expected a color string, `{ seed, color }`, or a theme override object.");
|
|
155
155
|
}
|
|
156
|
+
if ("overrides" in input) {
|
|
157
|
+
throw new TerraConfigError(`${path}.overrides`, "Use `color` for explicit colors alongside `seed`.");
|
|
158
|
+
}
|
|
159
|
+
const {
|
|
160
|
+
seed,
|
|
161
|
+
...patch
|
|
162
|
+
} = input;
|
|
163
|
+
assertOverrideObject(patch.color, `${path}.color`);
|
|
156
164
|
if (!("seed" in input)) {
|
|
157
165
|
return {
|
|
158
166
|
kind: "patch",
|
|
159
|
-
patch: sanitizeOverride(
|
|
167
|
+
patch: sanitizeOverride(patch)
|
|
160
168
|
};
|
|
161
169
|
}
|
|
162
|
-
const extra = Object.keys(input).filter(key => key !== "seed" && key !== "overrides");
|
|
163
|
-
if (extra.length > 0) {
|
|
164
|
-
throw new TerraConfigError(path, `A seeded accent accepts only \`seed\` and \`overrides\`; found ${extra.map(key => `\`${key}\``).join(", ")}. Use \`{ seed, overrides: { ... } }\` for color exceptions, or drop \`seed\` for a full theme override.`);
|
|
165
|
-
}
|
|
166
|
-
const {
|
|
167
|
-
seed,
|
|
168
|
-
overrides
|
|
169
|
-
} = input;
|
|
170
170
|
if (!isSupportedAccentSeed(seed)) {
|
|
171
171
|
throw new TerraConfigError(`${path}.seed`, `Unsupported accent seed ${JSON.stringify(seed)}; expected an opaque six-digit hex color (#rrggbb).`);
|
|
172
172
|
}
|
|
173
|
-
if (overrides !== undefined && !isPlainObject(overrides)) {
|
|
174
|
-
throw new TerraConfigError(`${path}.overrides`, "Expected a flat semantic color patch object.");
|
|
175
|
-
}
|
|
176
173
|
return {
|
|
177
174
|
kind: "seed",
|
|
178
175
|
seed: seed.trim(),
|
|
179
|
-
|
|
180
|
-
overrides: sanitizeOverride(overrides)
|
|
181
|
-
} : {})
|
|
176
|
+
patch: sanitizeOverride(patch)
|
|
182
177
|
};
|
|
183
178
|
}
|
|
184
|
-
function
|
|
185
|
-
const path = `
|
|
186
|
-
if (!isPlainObject(
|
|
179
|
+
function normalizeThemeEntry(name, theme) {
|
|
180
|
+
const path = `themes.${name}`;
|
|
181
|
+
if (!isPlainObject(theme)) {
|
|
187
182
|
throw new TerraConfigError(path, "Expected an object with `light` and/or `dark` scheme inputs.");
|
|
188
183
|
}
|
|
184
|
+
// An empty entry is a valid theme that adds nothing, but tokens sitting
|
|
185
|
+
// outside a scheme — `{ seed, color }` lifted straight out of the old
|
|
186
|
+
// `accents` shape — would otherwise be accepted and silently render defaults.
|
|
187
|
+
const keys = Object.keys(theme);
|
|
188
|
+
if (keys.length > 0 && !("light" in theme) && !("dark" in theme)) {
|
|
189
|
+
throw new TerraConfigError(path, `Unexpected ${keys.map(key => `\`${key}\``).join(", ")} outside a scheme; ` + "put `seed` and token overrides under `light` and/or `dark`.");
|
|
190
|
+
}
|
|
189
191
|
return {
|
|
190
|
-
light:
|
|
191
|
-
dark:
|
|
192
|
+
light: normalizeThemeScheme(theme.light, `${path}.light`),
|
|
193
|
+
dark: normalizeThemeScheme(theme.dark, `${path}.dark`)
|
|
192
194
|
};
|
|
193
195
|
}
|
|
194
196
|
function assertOverrideObject(value, path) {
|
|
@@ -199,7 +201,7 @@ function assertOverrideObject(value, path) {
|
|
|
199
201
|
|
|
200
202
|
/**
|
|
201
203
|
* Validates a theme input and pre-computes the immutable per-scheme base
|
|
202
|
-
* (`defaults → shared
|
|
204
|
+
* (`defaults → shared`). Throws {@link TerraConfigError} for invalid
|
|
203
205
|
* input — before any state exists to mutate. Never mutates `input` or the
|
|
204
206
|
* exported defaults.
|
|
205
207
|
*/
|
|
@@ -208,23 +210,25 @@ export function normalizeThemeInput(input = {}) {
|
|
|
208
210
|
throw new TerraConfigError("", "Expected a configuration object.");
|
|
209
211
|
}
|
|
210
212
|
assertOverrideObject(input.shared, "shared");
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
throw new TerraConfigError("accents", "Expected a record of named accents.");
|
|
213
|
+
for (const removed of ["schemes", "accents", "defaultAccent"]) {
|
|
214
|
+
if (removed in input) {
|
|
215
|
+
throw new TerraConfigError(removed, "Use `themes.<name>.light/dark` and `defaultTheme` instead.");
|
|
216
|
+
}
|
|
216
217
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
accents[name] = normalizeAccentEntry(name, accent);
|
|
218
|
+
if (input.themes !== undefined && !isPlainObject(input.themes)) {
|
|
219
|
+
throw new TerraConfigError("themes", "Expected a record of named themes.");
|
|
220
220
|
}
|
|
221
|
-
const
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
221
|
+
const themes = Object.create(null);
|
|
222
|
+
for (const [name, theme] of Object.entries(input.themes ?? {})) {
|
|
223
|
+
themes[name] = normalizeThemeEntry(name, theme);
|
|
224
|
+
}
|
|
225
|
+
const themeNames = Object.keys(themes);
|
|
226
|
+
let defaultTheme = null;
|
|
227
|
+
if (input.defaultTheme !== undefined && input.defaultTheme !== null) {
|
|
228
|
+
if (typeof input.defaultTheme !== "string" || !Object.hasOwn(themes, input.defaultTheme)) {
|
|
229
|
+
throw new TerraConfigError("defaultTheme", `Unknown theme ${JSON.stringify(input.defaultTheme)}; declared themes: ${themeNames.length > 0 ? themeNames.map(n => `"${n}"`).join(", ") : "(none)"}.`);
|
|
226
230
|
}
|
|
227
|
-
|
|
231
|
+
defaultTheme = input.defaultTheme;
|
|
228
232
|
}
|
|
229
233
|
const base = {};
|
|
230
234
|
for (const scheme of SCHEMES) {
|
|
@@ -233,24 +237,23 @@ export function normalizeThemeInput(input = {}) {
|
|
|
233
237
|
pinnedShadowColors: {}
|
|
234
238
|
};
|
|
235
239
|
state = applyThemeLayer(state, input.shared);
|
|
236
|
-
state = applyThemeLayer(state, input.schemes?.[scheme]);
|
|
237
240
|
base[scheme] = state;
|
|
238
241
|
}
|
|
239
242
|
return {
|
|
240
|
-
|
|
241
|
-
|
|
243
|
+
themeNames,
|
|
244
|
+
defaultTheme,
|
|
242
245
|
base,
|
|
243
|
-
|
|
246
|
+
themes
|
|
244
247
|
};
|
|
245
248
|
}
|
|
246
249
|
|
|
247
250
|
// ─── Resolution ──────────────────────────────────────────────────────────────
|
|
248
251
|
|
|
249
|
-
function
|
|
250
|
-
if (
|
|
251
|
-
const entry = config.
|
|
252
|
-
if (
|
|
253
|
-
throw new TerraConfigError("
|
|
252
|
+
function getThemeEntry(config, themeName) {
|
|
253
|
+
if (themeName === null) return undefined;
|
|
254
|
+
const entry = config.themes[themeName];
|
|
255
|
+
if (Object.hasOwn(config.themes, themeName)) return entry;
|
|
256
|
+
throw new TerraConfigError("theme", `Unknown theme ${JSON.stringify(themeName)}; declared themes: ${config.themeNames.length > 0 ? config.themeNames.map(name => `"${name}"`).join(", ") : "(none)"}.`);
|
|
254
257
|
}
|
|
255
258
|
function accentContext(scheme, source) {
|
|
256
259
|
const surfaces = {};
|
|
@@ -276,16 +279,13 @@ function resolveScheme(scheme, base, accent) {
|
|
|
276
279
|
if (accent.kind === "patch") {
|
|
277
280
|
state = applyThemeLayer(state, accent.patch);
|
|
278
281
|
} else if (accent.kind === "seed") {
|
|
279
|
-
|
|
282
|
+
// Generate against the final ordinary surfaces, then let explicit tokens win.
|
|
283
|
+
const context = accentContext(scheme, applyThemeLayer(base, accent.patch).source);
|
|
280
284
|
const generated = generateAccentColors(accent.seed, context);
|
|
281
285
|
state = applyThemeLayer(state, {
|
|
282
286
|
color: generated.colors
|
|
283
287
|
});
|
|
284
|
-
|
|
285
|
-
state = applyThemeLayer(state, {
|
|
286
|
-
color: accent.overrides
|
|
287
|
-
});
|
|
288
|
-
}
|
|
288
|
+
state = applyThemeLayer(state, accent.patch);
|
|
289
289
|
// The post-override check is authoritative: it evaluates the colours that
|
|
290
290
|
// actually ship, so an override that fixes a pair leaves no stale report.
|
|
291
291
|
diagnostics = checkAccentContrast(pickGeneratedRoles(state.source.color), accentContext(scheme, state.source));
|
|
@@ -297,12 +297,12 @@ function resolveScheme(scheme, base, accent) {
|
|
|
297
297
|
}
|
|
298
298
|
|
|
299
299
|
/**
|
|
300
|
-
* Resolves both schemes for `
|
|
300
|
+
* Resolves both schemes for `themeName` from the config's immutable base. `null`
|
|
301
301
|
* selects the base themes; an unknown name throws {@link TerraConfigError}.
|
|
302
302
|
* Returned themes are freshly built and independently owned.
|
|
303
303
|
*/
|
|
304
|
-
export function resolveThemes(config,
|
|
305
|
-
const entry =
|
|
304
|
+
export function resolveThemes(config, themeName) {
|
|
305
|
+
const entry = getThemeEntry(config, themeName);
|
|
306
306
|
const themes = {};
|
|
307
307
|
const diagnostics = [];
|
|
308
308
|
for (const scheme of SCHEMES) {
|
|
@@ -319,8 +319,8 @@ export function resolveThemes(config, accent) {
|
|
|
319
319
|
}
|
|
320
320
|
|
|
321
321
|
/** Resolves one scheme without generating and finalizing the other. */
|
|
322
|
-
export function resolveThemeScheme(config, scheme,
|
|
323
|
-
const entry =
|
|
322
|
+
export function resolveThemeScheme(config, scheme, themeName) {
|
|
323
|
+
const entry = getThemeEntry(config, themeName);
|
|
324
324
|
return resolveScheme(scheme, config.base[scheme], entry?.[scheme] ?? {
|
|
325
325
|
kind: "none"
|
|
326
326
|
});
|
|
@@ -328,18 +328,18 @@ export function resolveThemeScheme(config, scheme, accent) {
|
|
|
328
328
|
|
|
329
329
|
/**
|
|
330
330
|
* Pure theme creation — no Unistyles configuration or registry involved.
|
|
331
|
-
* `options.
|
|
332
|
-
* themes. Invalid input and unknown
|
|
331
|
+
* `options.theme` omitted → the input's `defaultTheme`; `null` → the base
|
|
332
|
+
* themes. Invalid input and unknown themes throw {@link TerraConfigError}.
|
|
333
333
|
* In development, contrast diagnostics are reported once each via
|
|
334
334
|
* `console.warn`; requested colors are never altered.
|
|
335
335
|
*/
|
|
336
336
|
export function createTerraThemes(input, options) {
|
|
337
337
|
const config = normalizeThemeInput(input);
|
|
338
|
-
const
|
|
338
|
+
const themeName = options?.theme === undefined ? config.defaultTheme : options.theme;
|
|
339
339
|
const {
|
|
340
340
|
themes,
|
|
341
341
|
diagnostics
|
|
342
|
-
} = resolveThemes(config,
|
|
342
|
+
} = resolveThemes(config, themeName);
|
|
343
343
|
warnContrastDiagnostics(diagnostics);
|
|
344
344
|
return themes;
|
|
345
345
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["checkAccentContrast","GENERATED_ACCENT_ROLES","generateAccentColors","isSupportedAccentSeed","deepMerge","isPlainObject","warnContrastDiagnostics","TerraConfigError","normalizeTokenOverride","buildRadiusScale","buildSpacingScale","createDefaultThemeSource","finalizeThemeSource","SCHEMES","SURFACE_ROLES","sanitizeOverride","value","Array","isArray","map","item","out","key","Object","entries","undefined","applyThemeLayer","state","override","normalized","radius","spacing","elevation","rest","source","pinnedShadowColors","base","steps","levels","level","shadowColor","fields","normalizeAccentScheme","input","path","kind","JSON","stringify","seed","trim","patch","extra","keys","filter","length","join","overrides","normalizeAccentEntry","name","accent","light","dark","assertOverrideObject","normalizeThemeInput","shared","schemes","accents","accentNames","defaultAccent","hasOwn","n","scheme","getAccentEntry","config","entry","accentContext","surfaces","role","color","pressedOpacity","opacity","pressed","pickGeneratedRoles","resolveScheme","diagnostics","context","generated","colors","theme","resolveThemes","themes","resolved","push","flat","resolveThemeScheme","createTerraThemes","options"],"sourceRoot":"../../../src","sources":["theme/resolve-config.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["checkAccentContrast","GENERATED_ACCENT_ROLES","generateAccentColors","isSupportedAccentSeed","deepMerge","isPlainObject","warnContrastDiagnostics","TerraConfigError","normalizeTokenOverride","buildRadiusScale","buildSpacingScale","createDefaultThemeSource","finalizeThemeSource","SCHEMES","SURFACE_ROLES","sanitizeOverride","value","Array","isArray","map","item","out","key","Object","entries","undefined","applyThemeLayer","state","override","normalized","radius","spacing","elevation","rest","source","pinnedShadowColors","base","steps","levels","level","shadowColor","fields","normalizeThemeScheme","input","path","kind","JSON","stringify","seed","trim","patch","assertOverrideObject","color","normalizeThemeEntry","name","theme","keys","length","join","light","dark","normalizeThemeInput","shared","removed","themes","create","themeNames","defaultTheme","hasOwn","n","scheme","getThemeEntry","config","themeName","entry","accentContext","surfaces","role","pressedOpacity","opacity","pressed","pickGeneratedRoles","resolveScheme","accent","diagnostics","context","generated","colors","resolveThemes","resolved","push","flat","resolveThemeScheme","createTerraThemes","options"],"sourceRoot":"../../../src","sources":["theme/resolve-config.ts"],"mappings":"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","ignoreList":[]}
|