react-native-terra-ui 0.10.1 → 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 +29 -0
- package/README.md +8 -4
- package/lib/module/components/button/Button.js +21 -13
- package/lib/module/components/button/Button.js.map +1 -1
- package/lib/module/components/button/index.js.map +1 -1
- package/lib/module/components/divider/Divider.js +127 -0
- package/lib/module/components/divider/Divider.js.map +1 -0
- package/lib/module/components/divider/index.js +4 -0
- package/lib/module/components/divider/index.js.map +1 -0
- package/lib/module/components/index.js +2 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/pressable/index.js +4 -0
- package/lib/module/components/pressable/index.js.map +1 -0
- package/lib/module/components/pressable/variants/PressableScale/index.js +110 -0
- package/lib/module/components/pressable/variants/PressableScale/index.js.map +1 -0
- 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/components/button/Button.d.ts +7 -0
- package/lib/typescript/src/components/button/Button.d.ts.map +1 -1
- package/lib/typescript/src/components/button/index.d.ts +1 -1
- package/lib/typescript/src/components/button/index.d.ts.map +1 -1
- package/lib/typescript/src/components/divider/Divider.d.ts +49 -0
- package/lib/typescript/src/components/divider/Divider.d.ts.map +1 -0
- package/lib/typescript/src/components/divider/index.d.ts +3 -0
- package/lib/typescript/src/components/divider/index.d.ts.map +1 -0
- package/lib/typescript/src/components/index.d.ts +2 -0
- package/lib/typescript/src/components/index.d.ts.map +1 -1
- package/lib/typescript/src/components/pressable/index.d.ts +3 -0
- package/lib/typescript/src/components/pressable/index.d.ts.map +1 -0
- package/lib/typescript/src/components/pressable/variants/PressableScale/index.d.ts +47 -0
- package/lib/typescript/src/components/pressable/variants/PressableScale/index.d.ts.map +1 -0
- 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/components/button/Button.tsx +32 -13
- package/src/components/button/index.ts +1 -0
- package/src/components/divider/Divider.tsx +164 -0
- package/src/components/divider/index.ts +7 -0
- package/src/components/index.ts +2 -0
- package/src/components/pressable/index.ts +5 -0
- package/src/components/pressable/variants/PressableScale/index.tsx +166 -0
- 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
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { normalizeTokenOverride } from "#theme/legacy-tokens";
|
|
2
|
-
import {
|
|
2
|
+
import { normalizeThemeScheme } from "#theme/resolve-config";
|
|
3
3
|
import { defaultDarkTheme, defaultLightTheme } from "#theme/theme";
|
|
4
4
|
import type {
|
|
5
|
-
|
|
6
|
-
AccentSchemeInput,
|
|
5
|
+
NamedTheme,
|
|
7
6
|
NormalizedAccent,
|
|
8
7
|
Scheme,
|
|
9
8
|
TerraTheme,
|
|
10
|
-
|
|
9
|
+
TerraThemeOverride,
|
|
10
|
+
ThemeSchemeInput,
|
|
11
11
|
} from "#theme/types";
|
|
12
12
|
import {
|
|
13
13
|
ACCENT_SURFACE_ROLES,
|
|
@@ -30,31 +30,32 @@ export function defaultAccentContext(scheme: Scheme): AccentGenerationContext {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
34
|
-
* the
|
|
35
|
-
*
|
|
33
|
+
* Generate a palette using the named theme's ordinary surface overrides. The
|
|
34
|
+
* rest of the patch passes through as authored, matching the unseeded branch —
|
|
35
|
+
* so `spacing.base` / `radius.base` stay pseudo-tokens here; only
|
|
36
|
+
* `applyThemeLayer` expands them into a scale.
|
|
36
37
|
*/
|
|
37
38
|
function seedToColorPatch(
|
|
38
39
|
seed: string,
|
|
39
|
-
|
|
40
|
+
patch: TerraThemeOverride | undefined,
|
|
40
41
|
scheme: Scheme
|
|
41
42
|
): DeepPartial<TerraTheme> {
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (value !== undefined) color[key] = value as string;
|
|
48
|
-
}
|
|
43
|
+
const normalized = normalizeTokenOverride(patch);
|
|
44
|
+
const context = defaultAccentContext(scheme);
|
|
45
|
+
for (const role of ACCENT_SURFACE_ROLES) {
|
|
46
|
+
const value = normalized?.color?.[role];
|
|
47
|
+
if (value !== undefined) context.surfaces[role] = value;
|
|
49
48
|
}
|
|
50
|
-
|
|
49
|
+
context.pressedOpacity = normalized?.opacity?.pressed ?? context.pressedOpacity;
|
|
50
|
+
const generated = generateAccentColors(seed, context).colors;
|
|
51
|
+
return { ...normalized, color: { ...generated, ...normalized?.color } } as DeepPartial<TerraTheme>;
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
function normalizeSchemeInput(input:
|
|
54
|
-
const normalized =
|
|
54
|
+
function normalizeSchemeInput(input: ThemeSchemeInput | undefined, scheme: Scheme): DeepPartial<TerraTheme> {
|
|
55
|
+
const normalized = normalizeThemeScheme(input, `themes.<name>.${scheme}`);
|
|
55
56
|
if (normalized.kind === "none") return {};
|
|
56
57
|
if (normalized.kind === "seed") {
|
|
57
|
-
return seedToColorPatch(normalized.seed, normalized.
|
|
58
|
+
return seedToColorPatch(normalized.seed, normalized.patch, scheme);
|
|
58
59
|
}
|
|
59
60
|
// Preserve the compatibility helper's identity contract for full patches;
|
|
60
61
|
// the resolver itself uses the sanitized copy in `normalized.patch`.
|
|
@@ -62,13 +63,12 @@ function normalizeSchemeInput(input: AccentSchemeInput | undefined, scheme: Sche
|
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* pass through unchanged. Pure and independent of the registry.
|
|
66
|
+
* @deprecated Prefer createTerraThemes for complete theme resolution.
|
|
67
|
+
* Generates per-scheme patches without shared config. Explicit unseeded patches
|
|
68
|
+
* pass through unchanged; seeded entries generate against their own surface and
|
|
69
|
+
* color tokens and carry the remainder of the patch through unresolved.
|
|
70
70
|
*/
|
|
71
|
-
export function normalizeAccent(accent:
|
|
71
|
+
export function normalizeAccent(accent: NamedTheme): NormalizedAccent {
|
|
72
72
|
return {
|
|
73
73
|
light: normalizeSchemeInput(accent.light, "light"),
|
|
74
74
|
dark: normalizeSchemeInput(accent.dark, "dark"),
|