@frosted-ui/react-native 0.0.1-canary.91 → 0.0.1-canary.94
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/README.md +72 -14
- package/dist/components/accordion.js +2 -2
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/alert-dialog.js +2 -2
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/avatar.d.ts.map +1 -1
- package/dist/components/avatar.js +5 -20
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.d.ts +2 -4
- package/dist/components/badge.d.ts.map +1 -1
- package/dist/components/badge.js +8 -22
- package/dist/components/badge.js.map +1 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/components/button.d.ts.map +1 -1
- package/dist/components/button.js +13 -17
- package/dist/components/button.js.map +1 -1
- package/dist/components/callout.d.ts +2 -4
- package/dist/components/callout.d.ts.map +1 -1
- package/dist/components/callout.js +6 -24
- package/dist/components/callout.js.map +1 -1
- package/dist/components/card.d.ts +1 -2
- package/dist/components/card.d.ts.map +1 -1
- package/dist/components/card.js +4 -4
- package/dist/components/card.js.map +1 -1
- package/dist/components/checkbox.d.ts +1 -2
- package/dist/components/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox.js +5 -21
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/code.d.ts +6 -8
- package/dist/components/code.d.ts.map +1 -1
- package/dist/components/code.js +7 -7
- package/dist/components/code.js.map +1 -1
- package/dist/components/context-menu.js +9 -9
- package/dist/components/context-menu.js.map +1 -1
- package/dist/components/dialog.js +2 -2
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/dropdown-menu.js +9 -9
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/heading.d.ts +6 -6
- package/dist/components/heading.d.ts.map +1 -1
- package/dist/components/heading.js +2 -2
- package/dist/components/heading.js.map +1 -1
- package/dist/components/hover-card.js +2 -2
- package/dist/components/hover-card.js.map +1 -1
- package/dist/components/icon-button.d.ts +2 -2
- package/dist/components/icon-button.d.ts.map +1 -1
- package/dist/components/icon-button.js +13 -17
- package/dist/components/icon-button.js.map +1 -1
- package/dist/components/icon.d.ts +6 -7
- package/dist/components/icon.d.ts.map +1 -1
- package/dist/components/icon.js +9 -24
- package/dist/components/icon.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/label.js +2 -2
- package/dist/components/label.js.map +1 -1
- package/dist/components/link.d.ts +19 -0
- package/dist/components/link.d.ts.map +1 -0
- package/dist/components/link.js +68 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/list.d.ts +37 -0
- package/dist/components/list.d.ts.map +1 -0
- package/dist/components/list.js +112 -0
- package/dist/components/list.js.map +1 -0
- package/dist/components/native-only-animated-view.d.ts +0 -4
- package/dist/components/native-only-animated-view.d.ts.map +1 -1
- package/dist/components/popover.js +2 -2
- package/dist/components/popover.js.map +1 -1
- package/dist/components/progress.d.ts +1 -2
- package/dist/components/progress.d.ts.map +1 -1
- package/dist/components/progress.js +5 -21
- package/dist/components/progress.js.map +1 -1
- package/dist/components/radio-group.d.ts +1 -2
- package/dist/components/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group.js +7 -23
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/segmented-control.js +3 -3
- package/dist/components/segmented-control.js.map +1 -1
- package/dist/components/select.d.ts.map +1 -1
- package/dist/components/select.js +11 -13
- package/dist/components/select.js.map +1 -1
- package/dist/components/separator.d.ts +1 -1
- package/dist/components/separator.d.ts.map +1 -1
- package/dist/components/separator.js +4 -21
- package/dist/components/separator.js.map +1 -1
- package/dist/components/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton.js +10 -26
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/spinner.js +2 -2
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/switch.d.ts +1 -2
- package/dist/components/switch.d.ts.map +1 -1
- package/dist/components/switch.js +5 -21
- package/dist/components/switch.js.map +1 -1
- package/dist/components/tabs.d.ts +4 -3
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +10 -9
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/text-area.d.ts.map +1 -1
- package/dist/components/text-area.js +13 -9
- package/dist/components/text-area.js.map +1 -1
- package/dist/components/text-field.d.ts.map +1 -1
- package/dist/components/text-field.js +62 -18
- package/dist/components/text-field.js.map +1 -1
- package/dist/components/text.d.ts +6 -6
- package/dist/components/text.d.ts.map +1 -1
- package/dist/components/text.js +22 -11
- package/dist/components/text.js.map +1 -1
- package/dist/components/tooltip.js +2 -2
- package/dist/components/tooltip.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/button-styles.d.ts +6 -6
- package/dist/lib/button-styles.d.ts.map +1 -1
- package/dist/lib/button-styles.js +1 -17
- package/dist/lib/button-styles.js.map +1 -1
- package/dist/lib/color-utils.d.ts +19 -14
- package/dist/lib/color-utils.d.ts.map +1 -1
- package/dist/lib/color-utils.js +37 -73
- package/dist/lib/color-utils.js.map +1 -1
- package/dist/lib/full-window-overlay.d.ts +11 -0
- package/dist/lib/full-window-overlay.d.ts.map +1 -0
- package/dist/lib/full-window-overlay.js +16 -0
- package/dist/lib/full-window-overlay.js.map +1 -0
- package/dist/lib/text-input-styles.d.ts +9 -8
- package/dist/lib/text-input-styles.d.ts.map +1 -1
- package/dist/lib/text-input-styles.js +4 -23
- package/dist/lib/text-input-styles.js.map +1 -1
- package/dist/lib/theme-context.d.ts +80 -0
- package/dist/lib/theme-context.d.ts.map +1 -0
- package/dist/lib/theme-context.js +97 -0
- package/dist/lib/theme-context.js.map +1 -0
- package/dist/lib/{theme-vars.d.ts → theme-tokens.d.ts} +2 -2
- package/dist/lib/theme-tokens.d.ts.map +1 -0
- package/dist/lib/{theme-vars.js → theme-tokens.js} +4 -19
- package/dist/lib/theme-tokens.js.map +1 -0
- package/dist/lib/theme.d.ts +14 -54
- package/dist/lib/theme.d.ts.map +1 -1
- package/dist/lib/theme.js +98 -66
- package/dist/lib/theme.js.map +1 -1
- package/dist/lib/types.d.ts +6 -2
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/use-theme-tokens.d.ts +593 -0
- package/dist/lib/use-theme-tokens.d.ts.map +1 -0
- package/dist/lib/use-theme-tokens.js +44 -0
- package/dist/lib/use-theme-tokens.js.map +1 -0
- package/docs/llm/COLOR_SYSTEM.md +799 -0
- package/docs/llm/COMPONENTS.md +1183 -0
- package/docs/llm/DESIGN_PATTERNS.md +2466 -0
- package/docs/llm/README.md +117 -0
- package/docs/llm/TYPOGRAPHY.md +516 -0
- package/package.json +11 -21
- package/dist/lib/native-colors.d.ts +0 -8
- package/dist/lib/native-colors.d.ts.map +0 -1
- package/dist/lib/native-colors.js +0 -67
- package/dist/lib/native-colors.js.map +0 -1
- package/dist/lib/theme-vars.d.ts.map +0 -1
- package/dist/lib/theme-vars.js.map +0 -1
- package/dist/lib/use-theme-vars.d.ts +0 -325
- package/dist/lib/use-theme-vars.d.ts.map +0 -1
- package/dist/lib/use-theme-vars.js +0 -17
- package/dist/lib/use-theme-vars.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -3
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -17
- package/dist/lib/utils.js.map +0 -1
- package/global.css +0 -1813
- package/tailwind-preset.js +0 -310
|
@@ -1,23 +1,4 @@
|
|
|
1
1
|
import { Platform } from 'react-native';
|
|
2
|
-
// ============================================================================
|
|
3
|
-
// Helpers
|
|
4
|
-
// ============================================================================
|
|
5
|
-
export function resolveAccentFromColor(color) {
|
|
6
|
-
if (!color)
|
|
7
|
-
return 'gray';
|
|
8
|
-
switch (color) {
|
|
9
|
-
case 'danger':
|
|
10
|
-
return 'red';
|
|
11
|
-
case 'warning':
|
|
12
|
-
return 'amber';
|
|
13
|
-
case 'success':
|
|
14
|
-
return 'green';
|
|
15
|
-
case 'info':
|
|
16
|
-
return 'blue';
|
|
17
|
-
default:
|
|
18
|
-
return color;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
2
|
/**
|
|
22
3
|
* Convert hex color to rgba with specified opacity
|
|
23
4
|
*/
|
|
@@ -56,17 +37,17 @@ export function getSurfaceVariantStyle(colors) {
|
|
|
56
37
|
/**
|
|
57
38
|
* Get background style for soft variant
|
|
58
39
|
*/
|
|
59
|
-
export function getSoftVariantStyle(colors,
|
|
40
|
+
export function getSoftVariantStyle(colors, paletteKey) {
|
|
60
41
|
return {
|
|
61
|
-
backgroundColor: colors.palettes[
|
|
42
|
+
backgroundColor: colors.palettes[paletteKey].a3,
|
|
62
43
|
};
|
|
63
44
|
}
|
|
64
45
|
/**
|
|
65
46
|
* Get text and placeholder colors based on variant
|
|
66
47
|
*/
|
|
67
|
-
export function getTextInputColors(variant, colors,
|
|
48
|
+
export function getTextInputColors(variant, colors, paletteKey, disabled) {
|
|
68
49
|
const grayPalette = colors.palettes.gray;
|
|
69
|
-
const palette = colors.palettes[
|
|
50
|
+
const palette = colors.palettes[paletteKey];
|
|
70
51
|
// Disabled state: always use gray-a11 for text
|
|
71
52
|
// Placeholder uses gray-a5 (lighter alpha shade approximating gray-a11 at 0.5 opacity)
|
|
72
53
|
if (disabled) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-input-styles.js","sourceRoot":"","sources":["../../src/lib/text-input-styles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAkB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"text-input-styles.js","sourceRoot":"","sources":["../../src/lib/text-input-styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AccentColor } from './types';
|
|
3
|
+
type ColorScheme = 'light' | 'dark';
|
|
4
|
+
type DangerColor = 'tomato' | 'red' | 'ruby';
|
|
5
|
+
type WarningColor = 'yellow' | 'amber';
|
|
6
|
+
type SuccessColor = 'teal' | 'jade' | 'green' | 'grass';
|
|
7
|
+
type InfoColor = 'blue' | 'sky';
|
|
8
|
+
type SemanticColorConfig = {
|
|
9
|
+
accentColor: AccentColor;
|
|
10
|
+
dangerColor: DangerColor;
|
|
11
|
+
warningColor: WarningColor;
|
|
12
|
+
successColor: SuccessColor;
|
|
13
|
+
infoColor: InfoColor;
|
|
14
|
+
};
|
|
15
|
+
declare const defaultSemanticColors: SemanticColorConfig;
|
|
16
|
+
type ThemeContextValue = {
|
|
17
|
+
colorScheme: ColorScheme;
|
|
18
|
+
setColorScheme: (scheme: ColorScheme) => void;
|
|
19
|
+
toggleColorScheme: () => void;
|
|
20
|
+
} & SemanticColorConfig;
|
|
21
|
+
declare const ThemeContext: React.Context<ThemeContextValue | undefined>;
|
|
22
|
+
type ThemeProviderProps = {
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
/** Initial color scheme. Defaults to system preference. */
|
|
25
|
+
defaultColorScheme?: ColorScheme;
|
|
26
|
+
/** Accent color for primary actions and highlights. Defaults to 'blue'. */
|
|
27
|
+
accentColor?: AccentColor;
|
|
28
|
+
/** Color for danger/error states. Defaults to 'red'. */
|
|
29
|
+
dangerColor?: DangerColor;
|
|
30
|
+
/** Color for warning states. Defaults to 'amber'. */
|
|
31
|
+
warningColor?: WarningColor;
|
|
32
|
+
/** Color for success states. Defaults to 'green'. */
|
|
33
|
+
successColor?: SuccessColor;
|
|
34
|
+
/** Color for informational states. Defaults to 'sky'. */
|
|
35
|
+
infoColor?: InfoColor;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Provider for theme context that allows programmatic color scheme control
|
|
39
|
+
* and semantic color customization.
|
|
40
|
+
*
|
|
41
|
+
* Wrap your app with this provider to enable theme toggling and custom colors.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* function App() {
|
|
45
|
+
* return (
|
|
46
|
+
* <ThemeProvider
|
|
47
|
+
* accentColor="purple"
|
|
48
|
+
* dangerColor="tomato"
|
|
49
|
+
* warningColor="yellow"
|
|
50
|
+
* successColor="teal"
|
|
51
|
+
* infoColor="blue"
|
|
52
|
+
* >
|
|
53
|
+
* <YourApp />
|
|
54
|
+
* </ThemeProvider>
|
|
55
|
+
* );
|
|
56
|
+
* }
|
|
57
|
+
*/
|
|
58
|
+
declare function ThemeProvider({ children, defaultColorScheme, accentColor, dangerColor, warningColor, successColor, infoColor, }: ThemeProviderProps): React.JSX.Element;
|
|
59
|
+
/**
|
|
60
|
+
* Hook to access and control the current color scheme.
|
|
61
|
+
* Must be used within a ThemeProvider.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* const { colorScheme, toggleColorScheme, accentColor } = useTheme();
|
|
65
|
+
*/
|
|
66
|
+
declare function useTheme(): ThemeContextValue;
|
|
67
|
+
/**
|
|
68
|
+
* Internal hook to get the current color scheme.
|
|
69
|
+
* Checks ThemeContext first, falls back to system preference.
|
|
70
|
+
* Used by useThemeTokens.
|
|
71
|
+
*/
|
|
72
|
+
declare function useColorScheme(): ColorScheme;
|
|
73
|
+
/**
|
|
74
|
+
* Internal hook to get the semantic color configuration.
|
|
75
|
+
* Returns defaults if not within a ThemeProvider.
|
|
76
|
+
*/
|
|
77
|
+
declare function useSemanticColors(): SemanticColorConfig;
|
|
78
|
+
export { defaultSemanticColors, ThemeContext, ThemeProvider, useColorScheme, useSemanticColors, useTheme, };
|
|
79
|
+
export type { ColorScheme, DangerColor, InfoColor, SemanticColorConfig, SuccessColor, ThemeContextValue, ThemeProviderProps, WarningColor, };
|
|
80
|
+
//# sourceMappingURL=theme-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-context.d.ts","sourceRoot":"","sources":["../../src/lib/theme-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,KAAK,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAGpC,KAAK,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAC7C,KAAK,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;AACvC,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AACxD,KAAK,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAGhC,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAGF,QAAA,MAAM,qBAAqB,EAAE,mBAM5B,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B,GAAG,mBAAmB,CAAC;AAExB,QAAA,MAAM,YAAY,8CAAgE,CAAC;AAEnF,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,2EAA2E;IAC3E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wDAAwD;IACxD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qDAAqD;IACrD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,qDAAqD;IACrD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,yDAAyD;IACzD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,aAAa,CAAC,EACrB,QAAQ,EACR,kBAAkB,EAClB,WAA+C,EAC/C,WAA+C,EAC/C,YAAiD,EACjD,YAAiD,EACjD,SAA2C,GAC5C,EAAE,kBAAkB,qBAiCpB;AAED;;;;;;GAMG;AACH,iBAAS,QAAQ,IAAI,iBAAiB,CAMrC;AAED;;;;GAIG;AACH,iBAAS,cAAc,IAAI,WAAW,CAWrC;AAED;;;GAGG;AACH,iBAAS,iBAAiB,IAAI,mBAAmB,CAGhD;AAED,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,QAAQ,GACT,CAAC;AACF,YAAY,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GACb,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useColorScheme as useSystemColorScheme } from 'react-native';
|
|
3
|
+
// Default semantic colors (matching web defaults)
|
|
4
|
+
const defaultSemanticColors = {
|
|
5
|
+
accentColor: 'blue',
|
|
6
|
+
dangerColor: 'red',
|
|
7
|
+
warningColor: 'amber',
|
|
8
|
+
successColor: 'green',
|
|
9
|
+
infoColor: 'sky',
|
|
10
|
+
};
|
|
11
|
+
const ThemeContext = React.createContext(undefined);
|
|
12
|
+
/**
|
|
13
|
+
* Provider for theme context that allows programmatic color scheme control
|
|
14
|
+
* and semantic color customization.
|
|
15
|
+
*
|
|
16
|
+
* Wrap your app with this provider to enable theme toggling and custom colors.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* function App() {
|
|
20
|
+
* return (
|
|
21
|
+
* <ThemeProvider
|
|
22
|
+
* accentColor="purple"
|
|
23
|
+
* dangerColor="tomato"
|
|
24
|
+
* warningColor="yellow"
|
|
25
|
+
* successColor="teal"
|
|
26
|
+
* infoColor="blue"
|
|
27
|
+
* >
|
|
28
|
+
* <YourApp />
|
|
29
|
+
* </ThemeProvider>
|
|
30
|
+
* );
|
|
31
|
+
* }
|
|
32
|
+
*/
|
|
33
|
+
function ThemeProvider({ children, defaultColorScheme, accentColor = defaultSemanticColors.accentColor, dangerColor = defaultSemanticColors.dangerColor, warningColor = defaultSemanticColors.warningColor, successColor = defaultSemanticColors.successColor, infoColor = defaultSemanticColors.infoColor, }) {
|
|
34
|
+
const systemColorScheme = useSystemColorScheme();
|
|
35
|
+
const [colorScheme, setColorScheme] = React.useState(defaultColorScheme ?? (systemColorScheme === 'dark' ? 'dark' : 'light'));
|
|
36
|
+
const toggleColorScheme = React.useCallback(() => {
|
|
37
|
+
setColorScheme((prev) => (prev === 'dark' ? 'light' : 'dark'));
|
|
38
|
+
}, []);
|
|
39
|
+
const value = React.useMemo(() => ({
|
|
40
|
+
colorScheme,
|
|
41
|
+
setColorScheme,
|
|
42
|
+
toggleColorScheme,
|
|
43
|
+
accentColor,
|
|
44
|
+
dangerColor,
|
|
45
|
+
warningColor,
|
|
46
|
+
successColor,
|
|
47
|
+
infoColor,
|
|
48
|
+
}), [
|
|
49
|
+
colorScheme,
|
|
50
|
+
toggleColorScheme,
|
|
51
|
+
accentColor,
|
|
52
|
+
dangerColor,
|
|
53
|
+
warningColor,
|
|
54
|
+
successColor,
|
|
55
|
+
infoColor,
|
|
56
|
+
]);
|
|
57
|
+
return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Hook to access and control the current color scheme.
|
|
61
|
+
* Must be used within a ThemeProvider.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* const { colorScheme, toggleColorScheme, accentColor } = useTheme();
|
|
65
|
+
*/
|
|
66
|
+
function useTheme() {
|
|
67
|
+
const context = React.useContext(ThemeContext);
|
|
68
|
+
if (!context) {
|
|
69
|
+
throw new Error('useTheme must be used within a ThemeProvider');
|
|
70
|
+
}
|
|
71
|
+
return context;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Internal hook to get the current color scheme.
|
|
75
|
+
* Checks ThemeContext first, falls back to system preference.
|
|
76
|
+
* Used by useThemeTokens.
|
|
77
|
+
*/
|
|
78
|
+
function useColorScheme() {
|
|
79
|
+
const context = React.useContext(ThemeContext);
|
|
80
|
+
const systemColorScheme = useSystemColorScheme();
|
|
81
|
+
// If ThemeProvider is used, respect the programmatic value
|
|
82
|
+
if (context) {
|
|
83
|
+
return context.colorScheme;
|
|
84
|
+
}
|
|
85
|
+
// Otherwise fall back to system preference
|
|
86
|
+
return systemColorScheme === 'dark' ? 'dark' : 'light';
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Internal hook to get the semantic color configuration.
|
|
90
|
+
* Returns defaults if not within a ThemeProvider.
|
|
91
|
+
*/
|
|
92
|
+
function useSemanticColors() {
|
|
93
|
+
const context = React.useContext(ThemeContext);
|
|
94
|
+
return context ?? defaultSemanticColors;
|
|
95
|
+
}
|
|
96
|
+
export { defaultSemanticColors, ThemeContext, ThemeProvider, useColorScheme, useSemanticColors, useTheme, };
|
|
97
|
+
//# sourceMappingURL=theme-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-context.js","sourceRoot":"","sources":["../../src/lib/theme-context.tsx"],"names":[],"mappings":"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"}
|
|
@@ -75,7 +75,7 @@ export declare function blackAndWhitePalettes(): {
|
|
|
75
75
|
black: AlphaOnlyShades;
|
|
76
76
|
white: AlphaOnlyShades;
|
|
77
77
|
};
|
|
78
|
-
export declare const
|
|
78
|
+
export declare const themeTokens: {
|
|
79
79
|
typography: {
|
|
80
80
|
readonly '0': {
|
|
81
81
|
readonly fontSize: 10;
|
|
@@ -219,4 +219,4 @@ export declare const themeVars: {
|
|
|
219
219
|
};
|
|
220
220
|
};
|
|
221
221
|
export type { ColorShades, FontWeightKey, TypographyStepKey };
|
|
222
|
-
//# sourceMappingURL=theme-
|
|
222
|
+
//# sourceMappingURL=theme-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-tokens.d.ts","sourceRoot":"","sources":["../../src/lib/theme-tokens.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWN,CAAC;AAEX,KAAK,iBAAiB,GAAG,MAAM,OAAO,UAAU,CAAC;AAEjD,QAAA,MAAM,WAAW;;;;;;CAMP,CAAC;AAEX,KAAK,aAAa,GAAG,MAAM,OAAO,WAAW,CAAC;AAK9C,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzF,KAAK,aAAa,GACd,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAEV,KAAK,WAAW,GAAG;KAChB,CAAC,IAAI,QAAQ,GAAG,MAAM;CACxB,GAAG;IACF,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG;KACD,CAAC,IAAI,aAAa,GAAG,MAAM;CAC7B,CAAC;AAqHF,KAAK,eAAe,GAAG;KAAG,CAAC,IAAI,aAAa,GAAG,MAAM;CAAE,CAAC;AAqBxD,wBAAgB,qBAAqB;;;EAKpC;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBvB,CAAC;AAEF,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
-
// Typography steps (0-9) based on
|
|
2
|
+
// Typography steps (0-9) based on Frosted UI design system tokens.
|
|
3
3
|
// Values are in px; React Native treats them as logical pixels.
|
|
4
4
|
const typography = {
|
|
5
5
|
'0': { fontSize: 10, lineHeight: 12, letterSpacing: 0.01 },
|
|
@@ -108,22 +108,7 @@ const darkPalettes = accentColors.reduce((acc, color) => {
|
|
|
108
108
|
acc[color] = buildPalette(color, 'dark');
|
|
109
109
|
return acc;
|
|
110
110
|
}, {});
|
|
111
|
-
// Semantic surface tokens
|
|
112
|
-
// Light mode:
|
|
113
|
-
// --color-background: white;
|
|
114
|
-
// --color-overlay: var(--black-a6);
|
|
115
|
-
// --color-panel-solid: white;
|
|
116
|
-
// --color-panel-translucent: rgba(255, 255, 255, 0.85);
|
|
117
|
-
// --color-surface: rgba(255, 255, 255, 0.9);
|
|
118
|
-
// --color-stroke: var(--gray-a5);
|
|
119
|
-
//
|
|
120
|
-
// Dark mode:
|
|
121
|
-
// --color-background: var(--gray-1);
|
|
122
|
-
// --color-overlay: var(--black-a8);
|
|
123
|
-
// --color-panel-solid: var(--gray-2);
|
|
124
|
-
// --color-panel-translucent: var(--gray-2-translucent);
|
|
125
|
-
// --color-surface: rgba(0, 0, 0, 0.25);
|
|
126
|
-
// --color-stroke: var(--gray-a4);
|
|
111
|
+
// Semantic surface tokens for light/dark modes
|
|
127
112
|
// Resolve overlay / stroke from raw color palettes so native can use real values
|
|
128
113
|
const blackA = frostedColors.blackA;
|
|
129
114
|
const whiteA = frostedColors.whiteA;
|
|
@@ -146,7 +131,7 @@ export function blackAndWhitePalettes() {
|
|
|
146
131
|
white: whiteAlpha,
|
|
147
132
|
};
|
|
148
133
|
}
|
|
149
|
-
export const
|
|
134
|
+
export const themeTokens = {
|
|
150
135
|
typography,
|
|
151
136
|
fontWeights,
|
|
152
137
|
colors: {
|
|
@@ -170,4 +155,4 @@ export const themeVars = {
|
|
|
170
155
|
},
|
|
171
156
|
},
|
|
172
157
|
};
|
|
173
|
-
//# sourceMappingURL=theme-
|
|
158
|
+
//# sourceMappingURL=theme-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-tokens.js","sourceRoot":"","sources":["../../src/lib/theme-tokens.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/theme.d.ts
CHANGED
|
@@ -1,57 +1,17 @@
|
|
|
1
1
|
import { type Theme } from '@react-navigation/native';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
accent: string;
|
|
17
|
-
accentForeground: string;
|
|
18
|
-
destructive: string;
|
|
19
|
-
border: string;
|
|
20
|
-
input: string;
|
|
21
|
-
ring: string;
|
|
22
|
-
radius: string;
|
|
23
|
-
chart1: string;
|
|
24
|
-
chart2: string;
|
|
25
|
-
chart3: string;
|
|
26
|
-
chart4: string;
|
|
27
|
-
chart5: string;
|
|
28
|
-
};
|
|
29
|
-
dark: {
|
|
30
|
-
background: string;
|
|
31
|
-
foreground: string;
|
|
32
|
-
card: string;
|
|
33
|
-
cardForeground: string;
|
|
34
|
-
popover: string;
|
|
35
|
-
popoverForeground: string;
|
|
36
|
-
primary: string;
|
|
37
|
-
primaryForeground: string;
|
|
38
|
-
secondary: string;
|
|
39
|
-
secondaryForeground: string;
|
|
40
|
-
muted: string;
|
|
41
|
-
mutedForeground: string;
|
|
42
|
-
accent: string;
|
|
43
|
-
accentForeground: string;
|
|
44
|
-
destructive: string;
|
|
45
|
-
border: string;
|
|
46
|
-
input: string;
|
|
47
|
-
ring: string;
|
|
48
|
-
radius: string;
|
|
49
|
-
chart1: string;
|
|
50
|
-
chart2: string;
|
|
51
|
-
chart3: string;
|
|
52
|
-
chart4: string;
|
|
53
|
-
chart5: string;
|
|
54
|
-
};
|
|
55
|
-
};
|
|
2
|
+
/**
|
|
3
|
+
* Hook to get navigation theme using Frosted UI design system colors.
|
|
4
|
+
* Reacts to the accent color from ThemeProvider.
|
|
5
|
+
*
|
|
6
|
+
* React Navigation uses these colors to style the navigation UI elements
|
|
7
|
+
* (headers, tab bars, drawers, etc.) throughout your app.
|
|
8
|
+
*
|
|
9
|
+
* @see https://reactnavigation.org/docs/themes
|
|
10
|
+
*/
|
|
11
|
+
export declare function useNavTheme(): Record<'light' | 'dark', Theme>;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use useNavTheme() hook instead for dynamic accent color support.
|
|
14
|
+
* Static navigation theme with hardcoded blue accent.
|
|
15
|
+
*/
|
|
56
16
|
export declare const NAV_THEME: Record<'light' | 'dark', Theme>;
|
|
57
17
|
//# sourceMappingURL=theme.d.ts.map
|
package/dist/lib/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/lib/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/lib/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAQ/E;;;;;;;;GAQG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,OAAO,GAAG,MAAM,EAAE,KAAK,CAAC,CA+E7D;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,EAAE,KAAK,CAuBrD,CAAC"}
|
package/dist/lib/theme.js
CHANGED
|
@@ -1,79 +1,111 @@
|
|
|
1
1
|
import { DarkTheme, DefaultTheme } from '@react-navigation/native';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { useSemanticColors } from './theme-context';
|
|
4
|
+
import { themeTokens } from './theme-tokens';
|
|
5
|
+
const light = themeTokens.colors.light;
|
|
6
|
+
const dark = themeTokens.colors.dark;
|
|
7
|
+
/**
|
|
8
|
+
* Hook to get navigation theme using Frosted UI design system colors.
|
|
9
|
+
* Reacts to the accent color from ThemeProvider.
|
|
10
|
+
*
|
|
11
|
+
* React Navigation uses these colors to style the navigation UI elements
|
|
12
|
+
* (headers, tab bars, drawers, etc.) throughout your app.
|
|
13
|
+
*
|
|
14
|
+
* @see https://reactnavigation.org/docs/themes
|
|
15
|
+
*/
|
|
16
|
+
export function useNavTheme() {
|
|
17
|
+
const { accentColor, dangerColor } = useSemanticColors();
|
|
18
|
+
return useMemo(() => {
|
|
19
|
+
const lightAccent = light.palettes[accentColor];
|
|
20
|
+
const darkAccent = dark.palettes[accentColor];
|
|
21
|
+
const lightDanger = light.palettes[dangerColor];
|
|
22
|
+
const darkDanger = dark.palettes[dangerColor];
|
|
23
|
+
return {
|
|
24
|
+
light: {
|
|
25
|
+
...DefaultTheme,
|
|
26
|
+
colors: {
|
|
27
|
+
/**
|
|
28
|
+
* background - The main background color of screens.
|
|
29
|
+
* Used for: Screen backgrounds, the area behind content.
|
|
30
|
+
*/
|
|
31
|
+
background: light.background,
|
|
32
|
+
/**
|
|
33
|
+
* border - Color for borders and dividers.
|
|
34
|
+
* Used for: Header bottom border, tab bar top border,
|
|
35
|
+
* separator lines between list items.
|
|
36
|
+
*/
|
|
37
|
+
border: light.stroke,
|
|
38
|
+
/**
|
|
39
|
+
* card - Background color for card-like elements.
|
|
40
|
+
* Used for: Header background, tab bar background,
|
|
41
|
+
* drawer background, modal backgrounds.
|
|
42
|
+
*/
|
|
43
|
+
card: light.panelSolid,
|
|
44
|
+
/**
|
|
45
|
+
* notification - Color for notification badges.
|
|
46
|
+
* Used for: Badge dots on tab bar icons (e.g., unread count),
|
|
47
|
+
* uses the danger color from ThemeProvider.
|
|
48
|
+
*/
|
|
49
|
+
notification: lightDanger['9'],
|
|
50
|
+
/**
|
|
51
|
+
* primary - The primary/accent color for interactive elements.
|
|
52
|
+
* Used for: Active tab icon tint, focused input borders,
|
|
53
|
+
* header button colors, link colors.
|
|
54
|
+
*/
|
|
55
|
+
primary: lightAccent['a11'],
|
|
56
|
+
/**
|
|
57
|
+
* text - Default text color.
|
|
58
|
+
* Used for: Header title, tab bar labels, drawer item text,
|
|
59
|
+
* and any navigation-related text.
|
|
60
|
+
*/
|
|
61
|
+
text: light.palettes.gray['12'],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
dark: {
|
|
65
|
+
...DarkTheme,
|
|
66
|
+
colors: {
|
|
67
|
+
/** background - Screen backgrounds in dark mode */
|
|
68
|
+
background: dark.background,
|
|
69
|
+
/** border - Borders/dividers in dark mode */
|
|
70
|
+
border: dark.stroke,
|
|
71
|
+
/** card - Header/tab bar backgrounds in dark mode */
|
|
72
|
+
card: dark.panelSolid,
|
|
73
|
+
/** notification - Badge color uses danger color */
|
|
74
|
+
notification: darkDanger['9'],
|
|
75
|
+
/** primary - Active/accent color in dark mode */
|
|
76
|
+
primary: darkAccent['a11'],
|
|
77
|
+
/** text - Text color in dark mode */
|
|
78
|
+
text: dark.palettes.gray['12'],
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}, [accentColor, dangerColor]);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* @deprecated Use useNavTheme() hook instead for dynamic accent color support.
|
|
86
|
+
* Static navigation theme with hardcoded blue accent.
|
|
87
|
+
*/
|
|
56
88
|
export const NAV_THEME = {
|
|
57
89
|
light: {
|
|
58
90
|
...DefaultTheme,
|
|
59
91
|
colors: {
|
|
60
|
-
background:
|
|
61
|
-
border:
|
|
62
|
-
card:
|
|
63
|
-
notification:
|
|
64
|
-
primary:
|
|
65
|
-
text:
|
|
92
|
+
background: light.background,
|
|
93
|
+
border: light.stroke,
|
|
94
|
+
card: light.panelSolid,
|
|
95
|
+
notification: light.palettes.red['9'],
|
|
96
|
+
primary: light.palettes.blue['a11'],
|
|
97
|
+
text: light.palettes.gray['12'],
|
|
66
98
|
},
|
|
67
99
|
},
|
|
68
100
|
dark: {
|
|
69
101
|
...DarkTheme,
|
|
70
102
|
colors: {
|
|
71
|
-
background:
|
|
72
|
-
border:
|
|
73
|
-
card:
|
|
74
|
-
notification:
|
|
75
|
-
primary:
|
|
76
|
-
text:
|
|
103
|
+
background: dark.background,
|
|
104
|
+
border: dark.stroke,
|
|
105
|
+
card: dark.panelSolid,
|
|
106
|
+
notification: dark.palettes.red['9'],
|
|
107
|
+
primary: dark.palettes.blue['a11'],
|
|
108
|
+
text: dark.palettes.gray['12'],
|
|
77
109
|
},
|
|
78
110
|
},
|
|
79
111
|
};
|
package/dist/lib/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/lib/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAc,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/lib/theme.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -4,11 +4,15 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export type AccentColor = 'tomato' | 'red' | 'ruby' | 'crimson' | 'pink' | 'plum' | 'purple' | 'violet' | 'iris' | 'cyan' | 'teal' | 'jade' | 'green' | 'grass' | 'brown' | 'blue' | 'orange' | 'indigo' | 'sky' | 'mint' | 'yellow' | 'amber' | 'lime' | 'lemon' | 'magenta' | 'gold' | 'bronze' | 'gray';
|
|
6
6
|
/**
|
|
7
|
-
* Semantic colors
|
|
7
|
+
* Semantic colors that map to accent colors based on ThemeProvider settings
|
|
8
8
|
*/
|
|
9
9
|
export type SemanticColor = 'danger' | 'warning' | 'success' | 'info';
|
|
10
|
+
/**
|
|
11
|
+
* Special color that uses the ThemeProvider's accentColor setting
|
|
12
|
+
*/
|
|
13
|
+
export type DynamicAccentColor = 'accent';
|
|
10
14
|
/**
|
|
11
15
|
* All available color values for component color props
|
|
12
16
|
*/
|
|
13
|
-
export type Color = AccentColor | SemanticColor;
|
|
17
|
+
export type Color = AccentColor | SemanticColor | DynamicAccentColor;
|
|
14
18
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,KAAK,GACL,MAAM,GACN,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,MAAM,GACN,QAAQ,GACR,OAAO,GACP,MAAM,GACN,OAAO,GACP,SAAS,GACT,MAAM,GACN,QAAQ,GACR,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,WAAW,GAAG,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,KAAK,GACL,MAAM,GACN,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,MAAM,GACN,QAAQ,GACR,OAAO,GACP,MAAM,GACN,OAAO,GACP,SAAS,GACT,MAAM,GACN,QAAQ,GACR,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,WAAW,GAAG,aAAa,GAAG,kBAAkB,CAAC"}
|