@draftbit/theme 50.6.2-eac111.2 → 50.6.2-fba047.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _this=this,_jsxFileName="/home/runner/work/react-native-jigsaw/react-native-jigsaw/packages/theme/src/Provider.tsx";import React from"react";import{Dimensions,Platform,useColorScheme}from"react-native";import AsyncStorage from"@react-native-async-storage/async-storage";import createThemeValuesProxy from"./createThemeValuesProxy";import DefaultTheme from"./DefaultTheme";import{jsx as _jsx}from"react/jsx-runtime";var SAVED_SELECTED_THEME_KEY="saved_selected_theme";var ThemeContext=React.createContext({theme:DefaultTheme,changeTheme:function changeTheme(){}});var Provider=function Provider(_ref){var _themes$find;var themes=_ref.themes,breakpoints=_ref.breakpoints,initialThemeName=_ref.initialThemeName,children=_ref.children;var initialTheme=(_themes$find=themes.find(function(theme){return theme.name===initialThemeName;}))!=null?_themes$find:DefaultTheme;var _React$useState=React.useState(initialTheme),_React$useState2=_slicedToArray(_React$useState,2),currentTheme=_React$useState2[0],setCurrentTheme=_React$useState2[1];var _React$useState3=React.useState(Dimensions.get("window").width),_React$useState4=_slicedToArray(_React$useState3,2),deviceWidth=_React$useState4[0],setDeviceWidth=_React$useState4[1];var colorScheme=useColorScheme();var lightDarkSelection=colorScheme!=null?colorScheme:"light";var changeTheme=React.useCallback(function(themeName,options){if(currentTheme.name!==themeName){var theme=themes.find(function(t){return t.name===themeName;});if(!theme){console.warn("Theme with name",themeName,"not found. Make sure it's passed into the top level ThemeProvider");return;}setCurrentTheme(theme);}if((options==null?void 0:options.persistent)===true){AsyncStorage.setItem(SAVED_SELECTED_THEME_KEY,themeName).catch(function(e){console.warn("Failed to persist selected theme",e);});}},[themes,currentTheme.name,setCurrentTheme]);var proxiedTheme=React.useMemo(function(){var createProxiedThemeValue=function createProxiedThemeValue(value){return createThemeValuesProxy({value:value,breakpoints:breakpoints,deviceWidth:deviceWidth,devicePlatform:Platform.OS,currentLightDarkSelection:lightDarkSelection});};return Object.assign({},currentTheme,{colors:{branding:createProxiedThemeValue(currentTheme.colors.branding),text:createProxiedThemeValue(currentTheme.colors.text),background:createProxiedThemeValue(currentTheme.colors.background),foreground:createProxiedThemeValue(currentTheme.colors.foreground),border:createProxiedThemeValue(currentTheme.colors.border)},typography:createProxiedThemeValue(currentTheme.typography)});},[currentTheme,deviceWidth,breakpoints,lightDarkSelection]);React.useEffect(function(){var listener=Dimensions.addEventListener("change",function(_ref2){var window=_ref2.window;return setDeviceWidth(window.width);});return function(){listener.remove();};});React.useEffect(function(){var run=function(){var _ref3=_asyncToGenerator(function*(){var savedSelectedThemeName=yield AsyncStorage.getItem(SAVED_SELECTED_THEME_KEY);if(savedSelectedThemeName){var themeExists=themes.some(function(t){return t.name===savedSelectedThemeName;});console.log("RUNNING",savedSelectedThemeName);if(themeExists){changeTheme(savedSelectedThemeName);}else{AsyncStorage.removeItem(SAVED_SELECTED_THEME_KEY).catch(function(e){console.warn("Failed to reset persisted selected theme",e);});}}});return function run(){return _ref3.apply(this,arguments);};}();run();},[]);return _jsx(ThemeContext.Provider,{value:{theme:proxiedTheme,changeTheme:changeTheme},children:children});};var useTheme=function useTheme(){var _React$useContext=React.useContext(ThemeContext),theme=_React$useContext.theme;return theme;};var useChangeTheme=function useChangeTheme(){var _React$useContext2=React.useContext(ThemeContext),changeTheme=_React$useContext2.changeTheme;return changeTheme;};var withTheme=function withTheme(Component){return React.forwardRef(function(props,ref){var _React$useContext3=React.useContext(ThemeContext),theme=_React$useContext3.theme;return _jsx(Component,Object.assign({},props,{theme:theme,ref:ref}));});};export{Provider,useTheme,useChangeTheme,withTheme};
1
+ import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _this=this,_jsxFileName="/home/runner/work/react-native-jigsaw/react-native-jigsaw/packages/theme/src/Provider.tsx";import React from"react";import{Dimensions,Platform,useColorScheme}from"react-native";import AsyncStorage from"@react-native-async-storage/async-storage";import createThemeValuesProxy from"./createThemeValuesProxy";import DefaultTheme from"./DefaultTheme";import{jsx as _jsx}from"react/jsx-runtime";var SAVED_SELECTED_THEME_KEY="saved_selected_theme";var ThemeContext=React.createContext({theme:DefaultTheme,changeTheme:function changeTheme(){}});var Provider=function Provider(_ref){var _themes$find;var themes=_ref.themes,breakpoints=_ref.breakpoints,initialThemeName=_ref.initialThemeName,children=_ref.children;var initialTheme=(_themes$find=themes.find(function(theme){return theme.name===initialThemeName;}))!=null?_themes$find:DefaultTheme;var _React$useState=React.useState(initialTheme),_React$useState2=_slicedToArray(_React$useState,2),currentTheme=_React$useState2[0],setCurrentTheme=_React$useState2[1];var _React$useState3=React.useState(Dimensions.get("window").width),_React$useState4=_slicedToArray(_React$useState3,2),deviceWidth=_React$useState4[0],setDeviceWidth=_React$useState4[1];var colorScheme=useColorScheme();var lightDarkSelection=colorScheme!=null?colorScheme:"light";var changeTheme=React.useCallback(function(themeName,options){var theme=themes.find(function(t){return t.name===themeName;});if(!theme){console.warn("Theme with name",themeName,"not found. Make sure it's passed into the top level ThemeProvider");return;}setCurrentTheme(theme);if((options==null?void 0:options.persistent)===true){AsyncStorage.setItem(SAVED_SELECTED_THEME_KEY,themeName).catch(function(e){console.warn("Failed to persist selected theme",e);});}},[themes,setCurrentTheme]);var proxiedTheme=React.useMemo(function(){return Object.assign({},currentTheme,{colors:{branding:createThemeValuesProxy(currentTheme.colors.branding,breakpoints,deviceWidth,Platform.OS,lightDarkSelection),text:createThemeValuesProxy(currentTheme.colors.text,breakpoints,deviceWidth,Platform.OS,lightDarkSelection),background:createThemeValuesProxy(currentTheme.colors.background,breakpoints,deviceWidth,Platform.OS,lightDarkSelection),foreground:createThemeValuesProxy(currentTheme.colors.foreground,breakpoints,deviceWidth,Platform.OS,lightDarkSelection),border:createThemeValuesProxy(currentTheme.colors.border,breakpoints,deviceWidth,Platform.OS,lightDarkSelection)},typography:currentTheme.typography});},[currentTheme,deviceWidth,breakpoints,lightDarkSelection]);React.useEffect(function(){var listener=Dimensions.addEventListener("change",function(_ref2){var window=_ref2.window;return setDeviceWidth(window.width);});return function(){listener.remove();};});React.useEffect(function(){var run=function(){var _ref3=_asyncToGenerator(function*(){var savedSelectedThemeName=yield AsyncStorage.getItem(SAVED_SELECTED_THEME_KEY);if(savedSelectedThemeName){changeTheme(savedSelectedThemeName);}});return function run(){return _ref3.apply(this,arguments);};}();run();},[]);return _jsx(ThemeContext.Provider,{value:{theme:proxiedTheme,changeTheme:changeTheme},children:children});};var useTheme=function useTheme(){var _React$useContext=React.useContext(ThemeContext),theme=_React$useContext.theme;return theme;};var useChangeTheme=function useChangeTheme(){var _React$useContext2=React.useContext(ThemeContext),changeTheme=_React$useContext2.changeTheme;return changeTheme;};var withTheme=function withTheme(Component){return React.forwardRef(function(props,ref){var _React$useContext3=React.useContext(ThemeContext),theme=_React$useContext3.theme;return _jsx(Component,Object.assign({},props,{theme:theme,ref:ref}));});};export{Provider,useTheme,useChangeTheme,withTheme};
@@ -1 +1 @@
1
- import{deepmergeCustom}from"deepmerge-ts";import{isTextStyleObject,validateBreakpoints,validatePalettes,validateTheme}from"./validators";var themeMerge=deepmergeCustom({enableImplicitDefaultMerging:true,mergeRecords:function mergeRecords(values,utils,meta){var firstValue=values[0];if(isTextStyleObject(firstValue)){return utils.defaultMergeFunctions.mergeRecords(values.slice(1),utils,meta);}return utils.defaultMergeFunctions.mergeRecords(values,utils,meta);}});export default function createTheme(_ref){var breakpoints=_ref.breakpoints,palettes=_ref.palettes,theme=_ref.theme,baseTheme=_ref.baseTheme;validateBreakpoints(breakpoints);validatePalettes(palettes);validateTheme(theme);var resultTheme=theme;if(baseTheme){validateTheme(baseTheme);resultTheme=themeMerge(baseTheme,theme);}return Object.assign({},resultTheme,{validated:true});}
1
+ import merge from"deepmerge";export default function createTheme(_ref){var theme=_ref.theme,baseTheme=_ref.baseTheme;var resultTheme=theme;if(baseTheme){resultTheme=merge(baseTheme,theme);}return Object.assign({},resultTheme,{validated:true});}
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{asThemeValuesObject}from"./validators";export default function createThemeValuesProxy(_ref){var value=_ref.value,breakpoints=_ref.breakpoints,deviceWidth=_ref.deviceWidth,devicePlatform=_ref.devicePlatform,currentLightDarkSelection=_ref.currentLightDarkSelection;if(value===undefined||value===null){return undefined;}return new Proxy(value,{get:function get(target,key){var currentValue=target[key];var valueAsThemeValues=asThemeValuesObject(currentValue);if(valueAsThemeValues){var platformKeys=["ios","android","web","macos","windows"];var breakpointKeys=Object.keys(breakpoints);var lightDarkKeys=["light","dark"];var keysType=getKeysType(valueAsThemeValues,platformKeys,breakpointKeys,lightDarkKeys);var input={value:valueAsThemeValues,breakpoints:breakpoints,deviceWidth:deviceWidth,devicePlatform:devicePlatform,currentLightDarkSelection:currentLightDarkSelection};if(keysType==="default"){return createThemeValuesProxy(input);}else if(keysType==="platform"){return getPlatformValue(input);}else if(keysType==="breakpoint"){return getBreakpointValue(input);}else if(keysType==="lightDark"){return getLightDarkValue(input);}else{return undefined;}}else{return currentValue;}},set:function set(){throw new Error("Theme is read only, cannot be modified at runtime");}});}function getKeysType(value,platformKeys,breakpointKeys,lightDarkKeys){var hasPlatformKeys=platformKeys.some(function(key){return value[key]!==undefined;});var hasBreakpointKeys=breakpointKeys.some(function(key){return value[key]!==undefined;});var hasLightDarkKeys=lightDarkKeys.some(function(key){return value[key]!==undefined;});var hasUserDefinedKeys=Object.keys(value).some(function(key){return!platformKeys.includes(key)&&!breakpointKeys.includes(key)&&!lightDarkKeys.includes(key)&&key!=="default";});if(!onlyOneTrue(hasPlatformKeys,hasBreakpointKeys,hasUserDefinedKeys,hasLightDarkKeys)&&!allFalse(hasPlatformKeys,hasBreakpointKeys,hasUserDefinedKeys,hasLightDarkKeys)){throw new Error("Cannot mix usage of platform keys, breakpoint keys, light/dark keys, and custom defined keys on the same level"+`\nKeys: ${Object.keys(value).join(", ")}`);}else if(hasPlatformKeys){return"platform";}else if(hasBreakpointKeys){return"breakpoint";}else if(hasLightDarkKeys){return"lightDark";}else{return"default";}}function onlyOneTrue(a,b,c,d){return[a,b,c,d].filter(function(x){return x;}).length===1;}function allFalse(a,b,c,d){return[a,b,c,d].filter(function(x){return x;}).length===0;}function getPlatformValue(input){var _value$devicePlatform;var value=input.value,devicePlatform=input.devicePlatform;var currentPlatformValue=(_value$devicePlatform=value==null?void 0:value[devicePlatform])!=null?_value$devicePlatform:value==null?void 0:value.default;var valueAsThemeValues=asThemeValuesObject(currentPlatformValue);if(valueAsThemeValues){return createThemeValuesProxy(Object.assign({},input,{value:valueAsThemeValues}));}else{return currentPlatformValue;}}function getBreakpointValue(input){var _value$currentBreakpo;var value=input.value,breakpoints=input.breakpoints,deviceWidth=input.deviceWidth;var keysToBreakpointValue=Object.keys(value!=null?value:{}).map(function(key){return[key,breakpoints[key]];});var orderedBreakpoints=keysToBreakpointValue.sort(function(_ref2){var _ref3=_slicedToArray(_ref2,2),_=_ref3[0],val=_ref3[1];return val;});var currentBreakpointKey="";for(var _ref4 of orderedBreakpoints){var _ref5=_slicedToArray(_ref4,2);var breakpointKey=_ref5[0];var breakpointValue=_ref5[1];if(deviceWidth>=breakpointValue){currentBreakpointKey=breakpointKey;}}var currentBreakpointValue=(_value$currentBreakpo=value==null?void 0:value[currentBreakpointKey])!=null?_value$currentBreakpo:value==null?void 0:value.default;var valueAsThemeValues=asThemeValuesObject(currentBreakpointValue);if(valueAsThemeValues){return createThemeValuesProxy(Object.assign({},input,{value:valueAsThemeValues}));}else{return currentBreakpointValue;}}function getLightDarkValue(input){var _value$currentLightDa;var value=input.value,currentLightDarkSelection=input.currentLightDarkSelection;var currentLightDarkValue=(_value$currentLightDa=value==null?void 0:value[currentLightDarkSelection])!=null?_value$currentLightDa:value==null?void 0:value.default;var valueAsThemeValues=asThemeValuesObject(currentLightDarkValue);if(valueAsThemeValues){return createThemeValuesProxy(Object.assign({},input,{value:valueAsThemeValues}));}else{return currentLightDarkValue;}}
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{isObject}from"lodash";export default function createThemeValuesProxy(value,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection){if(value===undefined||value===null){return undefined;}return new Proxy(value,{get:function get(target,key){var currentValue=target[key];var valueAsThemeValues=isObject(currentValue)?currentValue:undefined;if(valueAsThemeValues){var platformKeys=["ios","android","web","macos","windows"];var breakpointKeys=Object.keys(breakpoints);var lightDarkKeys=["light","dark"];var keysType=getKeysType(valueAsThemeValues,platformKeys,breakpointKeys,lightDarkKeys);if(keysType==="default"){return createThemeValuesProxy(valueAsThemeValues,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection);}else if(keysType==="platform"){return getPlatformValue(valueAsThemeValues,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection);}else if(keysType==="breakpoint"){return getBreakpointValue(valueAsThemeValues,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection);}else if(keysType==="lightDark"){return getLightDarkValue(valueAsThemeValues,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection);}else{return undefined;}}else{return currentValue;}},set:function set(){throw new Error("Theme is read only, cannot be modified at runtime");}});}function getKeysType(value,platformKeys,breakpointKeys,lightDarkKeys){var hasPlatformKeys=platformKeys.some(function(key){return value[key]!==undefined;});var hasBreakpointKeys=breakpointKeys.some(function(key){return value[key]!==undefined;});var hasLightDarkKeys=lightDarkKeys.some(function(key){return value[key]!==undefined;});var hasUserDefinedKeys=Object.keys(value).some(function(key){return!platformKeys.includes(key)&&!breakpointKeys.includes(key)&&!lightDarkKeys.includes(key)&&key!=="default";});if(!onlyOneTrue(hasPlatformKeys,hasBreakpointKeys,hasUserDefinedKeys,hasLightDarkKeys)&&!allFalse(hasPlatformKeys,hasBreakpointKeys,hasUserDefinedKeys,hasLightDarkKeys)){throw new Error("Cannot mix usage of platform keys, breakpoint keys, light/dark keys, and custom defined keys on the same level"+`\nKeys: ${Object.keys(value).join(", ")}`);}else if(hasPlatformKeys){return"platform";}else if(hasBreakpointKeys){return"breakpoint";}else if(hasLightDarkKeys){return"lightDark";}else{return"default";}}function onlyOneTrue(a,b,c,d){return[a,b,c,d].filter(function(x){return x;}).length===1;}function allFalse(a,b,c,d){return[a,b,c,d].filter(function(x){return x;}).length===0;}function getPlatformValue(value,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection){var _value$devicePlatform;var currentPlatformValue=(_value$devicePlatform=value==null?void 0:value[devicePlatform])!=null?_value$devicePlatform:value==null?void 0:value.default;var valueAsThemeValues=isObject(currentPlatformValue)?currentPlatformValue:undefined;if(valueAsThemeValues){return createThemeValuesProxy(valueAsThemeValues,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection);}else{return currentPlatformValue;}}function getBreakpointValue(value,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection){var _value$currentBreakpo;var keysToBreakpointValue=Object.keys(value!=null?value:{}).map(function(key){return[key,breakpoints[key]];});var orderedBreakpoints=keysToBreakpointValue.sort(function(_ref){var _ref2=_slicedToArray(_ref,2),_=_ref2[0],val=_ref2[1];return val;});var currentBreakpointKey="";for(var _ref3 of orderedBreakpoints){var _ref4=_slicedToArray(_ref3,2);var breakpointKey=_ref4[0];var breakpointValue=_ref4[1];if(deviceWidth>=breakpointValue){currentBreakpointKey=breakpointKey;}}var currentBreakpointValue=(_value$currentBreakpo=value==null?void 0:value[currentBreakpointKey])!=null?_value$currentBreakpo:value==null?void 0:value.default;var valueAsThemeValues=isObject(currentBreakpointKey)?currentBreakpointKey:undefined;if(valueAsThemeValues){return createThemeValuesProxy(valueAsThemeValues,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection);}else{return currentBreakpointValue;}}function getLightDarkValue(value,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection){var _value$currentLightDa;var currentLightDarkValue=(_value$currentLightDa=value==null?void 0:value[currentLightDarkSelection])!=null?_value$currentLightDa:value==null?void 0:value.default;var valueAsThemeValues=isObject(currentLightDarkSelection)?currentLightDarkSelection:undefined;if(valueAsThemeValues){return createThemeValuesProxy(valueAsThemeValues,breakpoints,deviceWidth,devicePlatform,currentLightDarkSelection);}else{return currentLightDarkValue;}}
@@ -1 +1 @@
1
- import{z}from"zod";var PaletteSchema=z.record(z.string(),z.record(z.string(),z.string()));var BreakpointSchema=z.record(z.string(),z.number());var TextStyleSchema=z.union([z.object({fontSize:z.number()}),z.object({fontFamily:z.string()}),z.object({fontWeight:z.enum(["normal","bold","100","200","300","400","500","600","700","800","900"])}),z.object({fontStyle:z.enum(["normal","italic"])}),z.object({letterSpacing:z.number()}),z.object({lineHeight:z.number()})]);var ThemeValuesSchema=z.record(z.string(),z.lazy(function(){return z.union([z.string(),z.number(),TextStyleSchema,ThemeValuesSchema]);}));var TextStyleOrThemeValuesSchema=z.union([TextStyleSchema,ThemeValuesSchema]);var ThemeSchema=z.object({name:z.string(),colors:z.object({branding:ThemeValuesSchema.optional(),text:ThemeValuesSchema.optional(),background:ThemeValuesSchema.optional(),foreground:ThemeValuesSchema.optional(),border:ThemeValuesSchema.optional()}),typography:z.object({body1:TextStyleOrThemeValuesSchema.optional(),body2:TextStyleOrThemeValuesSchema.optional(),button:TextStyleOrThemeValuesSchema.optional(),caption:TextStyleOrThemeValuesSchema.optional(),headline1:TextStyleOrThemeValuesSchema.optional(),headline2:TextStyleOrThemeValuesSchema.optional(),headline3:TextStyleOrThemeValuesSchema.optional(),headline4:TextStyleOrThemeValuesSchema.optional(),headline5:TextStyleOrThemeValuesSchema.optional(),headline6:TextStyleOrThemeValuesSchema.optional(),overline:TextStyleOrThemeValuesSchema.optional(),subtitle1:TextStyleOrThemeValuesSchema.optional(),subtitle2:TextStyleOrThemeValuesSchema.optional()})});export function validatePalettes(palettes){var result=PaletteSchema.safeParse(palettes);if(!result.success){throw new Error("Invalid palettes object: "+result.error.message);}}export function validateBreakpoints(breakpoints){var result=BreakpointSchema.safeParse(breakpoints);if(!result.success){throw new Error("Invalid breakpoints object: "+result.error.message);}}export function validateTheme(theme){var result=ThemeSchema.safeParse(theme);if(!result.success){throw new Error("Invalid theme object: "+result.error.message);}}export function isTextStyleObject(value){return TextStyleSchema.safeParse(value).success;}export function asThemeValuesObject(value){if(isTextStyleObject(value)){return null;}return ThemeValuesSchema.safeParse(value).success?value:null;}
1
+ export function validatePalettes(palettes){palettes;}export function validateBreakpoints(breakpoints){breakpoints;}export function validateTheme(theme){theme;}export function isTextStyleObject(value){value;return true;}export function asThemeValuesObject(value){return value;}
@@ -16,40 +16,29 @@ const Provider = ({ themes, breakpoints, initialThemeName, children, }) => {
16
16
  const colorScheme = useColorScheme();
17
17
  const lightDarkSelection = colorScheme !== null && colorScheme !== void 0 ? colorScheme : "light";
18
18
  const changeTheme = React.useCallback((themeName, options) => {
19
- if (currentTheme.name !== themeName) {
20
- const theme = themes.find((t) => t.name === themeName);
21
- if (!theme) {
22
- console.warn("Theme with name", themeName, "not found. Make sure it's passed into the top level ThemeProvider");
23
- return;
24
- }
25
- setCurrentTheme(theme);
19
+ const theme = themes.find((t) => t.name === themeName);
20
+ if (!theme) {
21
+ console.warn("Theme with name", themeName, "not found. Make sure it's passed into the top level ThemeProvider");
22
+ return;
26
23
  }
24
+ setCurrentTheme(theme);
27
25
  if ((options === null || options === void 0 ? void 0 : options.persistent) === true) {
28
26
  AsyncStorage.setItem(SAVED_SELECTED_THEME_KEY, themeName).catch((e) => {
29
27
  console.warn("Failed to persist selected theme", e);
30
28
  });
31
29
  }
32
- }, [themes, currentTheme.name, setCurrentTheme]);
33
- const proxiedTheme = React.useMemo(() => {
34
- const createProxiedThemeValue = (value) => createThemeValuesProxy({
35
- value,
36
- breakpoints,
37
- deviceWidth,
38
- devicePlatform: Platform.OS,
39
- currentLightDarkSelection: lightDarkSelection,
40
- });
41
- return {
42
- ...currentTheme,
43
- colors: {
44
- branding: createProxiedThemeValue(currentTheme.colors.branding),
45
- text: createProxiedThemeValue(currentTheme.colors.text),
46
- background: createProxiedThemeValue(currentTheme.colors.background),
47
- foreground: createProxiedThemeValue(currentTheme.colors.foreground),
48
- border: createProxiedThemeValue(currentTheme.colors.border),
49
- },
50
- typography: createProxiedThemeValue(currentTheme.typography),
51
- };
52
- }, [currentTheme, deviceWidth, breakpoints, lightDarkSelection]);
30
+ }, [themes, setCurrentTheme]);
31
+ const proxiedTheme = React.useMemo(() => ({
32
+ ...currentTheme,
33
+ colors: {
34
+ branding: createThemeValuesProxy(currentTheme.colors.branding, breakpoints, deviceWidth, Platform.OS, lightDarkSelection),
35
+ text: createThemeValuesProxy(currentTheme.colors.text, breakpoints, deviceWidth, Platform.OS, lightDarkSelection),
36
+ background: createThemeValuesProxy(currentTheme.colors.background, breakpoints, deviceWidth, Platform.OS, lightDarkSelection),
37
+ foreground: createThemeValuesProxy(currentTheme.colors.foreground, breakpoints, deviceWidth, Platform.OS, lightDarkSelection),
38
+ border: createThemeValuesProxy(currentTheme.colors.border, breakpoints, deviceWidth, Platform.OS, lightDarkSelection),
39
+ },
40
+ typography: currentTheme.typography,
41
+ }), [currentTheme, deviceWidth, breakpoints, lightDarkSelection]);
53
42
  React.useEffect(() => {
54
43
  const listener = Dimensions.addEventListener("change", ({ window }) => setDeviceWidth(window.width));
55
44
  return () => {
@@ -60,16 +49,7 @@ const Provider = ({ themes, breakpoints, initialThemeName, children, }) => {
60
49
  const run = async () => {
61
50
  const savedSelectedThemeName = await AsyncStorage.getItem(SAVED_SELECTED_THEME_KEY);
62
51
  if (savedSelectedThemeName) {
63
- const themeExists = themes.some((t) => t.name === savedSelectedThemeName);
64
- console.log("RUNNING", savedSelectedThemeName);
65
- if (themeExists) {
66
- changeTheme(savedSelectedThemeName);
67
- }
68
- else {
69
- AsyncStorage.removeItem(SAVED_SELECTED_THEME_KEY).catch((e) => {
70
- console.warn("Failed to reset persisted selected theme", e);
71
- });
72
- }
52
+ changeTheme(savedSelectedThemeName);
73
53
  }
74
54
  };
75
55
  run();
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/Provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/Provider.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
1
  import type { Breakpoints, Theme, ValidatedTheme, ColorPalettes } from "./types";
2
- export default function createTheme({ breakpoints, palettes, theme, baseTheme, }: {
2
+ /**
3
+ * Custom deepmerge function to skip merging of typography/text style objects.
4
+ *
5
+ * The theme object allows for special keys that trigger variability depending
6
+ * on platform, breakpoint, color mode, etc.
7
+ *
8
+ * Text style objects can break this logic when merged with other objects.
9
+ * For example, if you merge a standard text style object with another object that
10
+ * has variability through the special keys, you get an object with both special
11
+ * keys and the keys of the style object which breaks how the proxy is able to
12
+ * return the correct value.
13
+ */
14
+ export default function createTheme({ theme, baseTheme, }: {
3
15
  breakpoints: Breakpoints;
4
16
  palettes: ColorPalettes;
5
17
  theme: Theme;
@@ -1,5 +1,4 @@
1
- import { deepmergeCustom } from "deepmerge-ts";
2
- import { isTextStyleObject, validateBreakpoints, validatePalettes, validateTheme, } from "./validators";
1
+ import merge from "deepmerge";
3
2
  /**
4
3
  * Custom deepmerge function to skip merging of typography/text style objects.
5
4
  *
@@ -12,24 +11,14 @@ import { isTextStyleObject, validateBreakpoints, validatePalettes, validateTheme
12
11
  * keys and the keys of the style object which breaks how the proxy is able to
13
12
  * return the correct value.
14
13
  */
15
- const themeMerge = deepmergeCustom({
16
- enableImplicitDefaultMerging: true,
17
- mergeRecords(values, utils, meta) {
18
- const firstValue = values[0];
19
- if (isTextStyleObject(firstValue)) {
20
- return utils.defaultMergeFunctions.mergeRecords(values.slice(1), utils, meta);
21
- }
22
- return utils.defaultMergeFunctions.mergeRecords(values, utils, meta);
23
- },
24
- });
25
- export default function createTheme({ breakpoints, palettes, theme, baseTheme, }) {
26
- validateBreakpoints(breakpoints);
27
- validatePalettes(palettes);
28
- validateTheme(theme);
14
+ export default function createTheme({ theme, baseTheme, }) {
15
+ // validateBreakpoints(breakpoints);
16
+ // validatePalettes(palettes);
17
+ // validateTheme(theme);
29
18
  let resultTheme = theme;
30
19
  if (baseTheme) {
31
- validateTheme(baseTheme);
32
- resultTheme = themeMerge(baseTheme, theme);
20
+ //validateTheme(baseTheme);
21
+ resultTheme = merge(baseTheme, theme);
33
22
  }
34
23
  return {
35
24
  ...resultTheme,
@@ -1 +1 @@
1
- {"version":3,"file":"createTheme.js","sourceRoot":"","sources":["../../../src/createTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAO/C,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,GAAG,eAAe,CAAC;IACjC,4BAA4B,EAAE,IAAI;IAClC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE;YACjC,OAAO,KAAK,CAAC,qBAAqB,CAAC,YAAY,CAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EACf,KAAK,EACL,IAAI,CACL,CAAC;SACH;QACD,OAAO,KAAK,CAAC,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,WAAW,EACX,QAAQ,EACR,KAAK,EACL,SAAS,GAMV;IACC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACjC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,aAAa,CAAC,KAAK,CAAC,CAAC;IAErB,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,SAAS,EAAE;QACb,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,WAAW,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KAC5C;IAED,OAAO;QACL,GAAG,WAAW;QACd,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"createTheme.js","sourceRoot":"","sources":["../../../src/createTheme.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,WAAW,CAAC;AAE9B;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,KAAK,EACL,SAAS,GAMV;IACC,oCAAoC;IACpC,8BAA8B;IAC9B,wBAAwB;IAExB,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,SAAS,EAAE;QACb,2BAA2B;QAC3B,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KACvC;IAED,OAAO;QACL,GAAG,WAAW;QACd,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC"}
@@ -1,12 +1,5 @@
1
1
  import { ThemeValues, Breakpoints } from "./types";
2
2
  import { Platform } from "react-native";
3
- interface CreateThemeValuesProxyInput {
4
- value: ThemeValues | undefined;
5
- breakpoints: Breakpoints;
6
- deviceWidth: number;
7
- devicePlatform: typeof Platform.OS;
8
- currentLightDarkSelection: "light" | "dark";
9
- }
10
3
  /**
11
4
  * Creates a proxy for theme value objects to select a value whenever
12
5
  * multiple values are provided for different platforms, breakpoints, and/or light/dark modes
@@ -14,5 +7,4 @@ interface CreateThemeValuesProxyInput {
14
7
  * Ex: {color: {ios: "blue", android: "red"}}
15
8
  * -> theme.color returns "blue" when the platform is ios and "red" when android
16
9
  */
17
- export default function createThemeValuesProxy({ value, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection, }: CreateThemeValuesProxyInput): any;
18
- export {};
10
+ export default function createThemeValuesProxy(value: ThemeValues | undefined, breakpoints: Breakpoints, deviceWidth: number, devicePlatform: typeof Platform.OS, currentLightDarkSelection: "light" | "dark"): any;
@@ -1,4 +1,4 @@
1
- import { asThemeValuesObject } from "./validators";
1
+ import { isObject } from "lodash";
2
2
  /**
3
3
  * Creates a proxy for theme value objects to select a value whenever
4
4
  * multiple values are provided for different platforms, breakpoints, and/or light/dark modes
@@ -6,37 +6,32 @@ import { asThemeValuesObject } from "./validators";
6
6
  * Ex: {color: {ios: "blue", android: "red"}}
7
7
  * -> theme.color returns "blue" when the platform is ios and "red" when android
8
8
  */
9
- export default function createThemeValuesProxy({ value, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection, }) {
9
+ export default function createThemeValuesProxy(value, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection) {
10
10
  if (value === undefined || value === null) {
11
11
  return undefined;
12
12
  }
13
13
  return new Proxy(value, {
14
14
  get: (target, key) => {
15
15
  const currentValue = target[key];
16
- const valueAsThemeValues = asThemeValuesObject(currentValue);
16
+ const valueAsThemeValues = isObject(currentValue)
17
+ ? currentValue
18
+ : undefined;
17
19
  if (valueAsThemeValues) {
18
20
  const platformKeys = ["ios", "android", "web", "macos", "windows"];
19
21
  const breakpointKeys = Object.keys(breakpoints);
20
22
  const lightDarkKeys = ["light", "dark"];
21
23
  const keysType = getKeysType(valueAsThemeValues, platformKeys, breakpointKeys, lightDarkKeys);
22
- const input = {
23
- value: valueAsThemeValues,
24
- breakpoints,
25
- deviceWidth,
26
- devicePlatform,
27
- currentLightDarkSelection,
28
- };
29
24
  if (keysType === "default") {
30
- return createThemeValuesProxy(input);
25
+ return createThemeValuesProxy(valueAsThemeValues, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection);
31
26
  }
32
27
  else if (keysType === "platform") {
33
- return getPlatformValue(input);
28
+ return getPlatformValue(valueAsThemeValues, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection);
34
29
  }
35
30
  else if (keysType === "breakpoint") {
36
- return getBreakpointValue(input);
31
+ return getBreakpointValue(valueAsThemeValues, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection);
37
32
  }
38
33
  else if (keysType === "lightDark") {
39
- return getLightDarkValue(input);
34
+ return getLightDarkValue(valueAsThemeValues, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection);
40
35
  }
41
36
  else {
42
37
  return undefined;
@@ -83,21 +78,21 @@ function onlyOneTrue(a, b, c, d) {
83
78
  function allFalse(a, b, c, d) {
84
79
  return [a, b, c, d].filter((x) => x).length === 0;
85
80
  }
86
- function getPlatformValue(input) {
81
+ function getPlatformValue(value, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection) {
87
82
  var _a;
88
- const { value, devicePlatform } = input;
89
83
  const currentPlatformValue = (_a = value === null || value === void 0 ? void 0 : value[devicePlatform]) !== null && _a !== void 0 ? _a : value === null || value === void 0 ? void 0 : value.default;
90
- const valueAsThemeValues = asThemeValuesObject(currentPlatformValue);
84
+ const valueAsThemeValues = isObject(currentPlatformValue)
85
+ ? currentPlatformValue
86
+ : undefined;
91
87
  if (valueAsThemeValues) {
92
- return createThemeValuesProxy({ ...input, value: valueAsThemeValues });
88
+ return createThemeValuesProxy(valueAsThemeValues, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection);
93
89
  }
94
90
  else {
95
91
  return currentPlatformValue;
96
92
  }
97
93
  }
98
- function getBreakpointValue(input) {
94
+ function getBreakpointValue(value, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection) {
99
95
  var _a;
100
- const { value, breakpoints, deviceWidth } = input;
101
96
  const keysToBreakpointValue = Object.keys(value !== null && value !== void 0 ? value : {}).map((key) => [key, breakpoints[key]]);
102
97
  const orderedBreakpoints = keysToBreakpointValue.sort(([_, val]) => val);
103
98
  let currentBreakpointKey = "";
@@ -107,21 +102,24 @@ function getBreakpointValue(input) {
107
102
  }
108
103
  }
109
104
  const currentBreakpointValue = (_a = value === null || value === void 0 ? void 0 : value[currentBreakpointKey]) !== null && _a !== void 0 ? _a : value === null || value === void 0 ? void 0 : value.default;
110
- const valueAsThemeValues = asThemeValuesObject(currentBreakpointValue);
105
+ const valueAsThemeValues = isObject(currentBreakpointKey)
106
+ ? currentBreakpointKey
107
+ : undefined;
111
108
  if (valueAsThemeValues) {
112
- return createThemeValuesProxy({ ...input, value: valueAsThemeValues });
109
+ return createThemeValuesProxy(valueAsThemeValues, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection);
113
110
  }
114
111
  else {
115
112
  return currentBreakpointValue;
116
113
  }
117
114
  }
118
- function getLightDarkValue(input) {
115
+ function getLightDarkValue(value, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection) {
119
116
  var _a;
120
- const { value, currentLightDarkSelection } = input;
121
117
  const currentLightDarkValue = (_a = value === null || value === void 0 ? void 0 : value[currentLightDarkSelection]) !== null && _a !== void 0 ? _a : value === null || value === void 0 ? void 0 : value.default;
122
- const valueAsThemeValues = asThemeValuesObject(currentLightDarkValue);
118
+ const valueAsThemeValues = isObject(currentLightDarkSelection)
119
+ ? currentLightDarkSelection
120
+ : undefined;
123
121
  if (valueAsThemeValues) {
124
- return createThemeValuesProxy({ ...input, value: valueAsThemeValues });
122
+ return createThemeValuesProxy(valueAsThemeValues, breakpoints, deviceWidth, devicePlatform, currentLightDarkSelection);
125
123
  }
126
124
  else {
127
125
  return currentLightDarkValue;
@@ -1 +1 @@
1
- {"version":3,"file":"createThemeValuesProxy.js","sourceRoot":"","sources":["../../../src/createThemeValuesProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createThemeValuesProxy.js","sourceRoot":"","sources":["../../../src/createThemeValuesProxy.ts"],"names":[],"mappings":"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"}
@@ -1,91 +1,17 @@
1
- import { z } from "zod";
2
- const PaletteSchema = z.record(z.string(), z.record(z.string(), z.string()));
3
- const BreakpointSchema = z.record(z.string(), z.number());
4
- const TextStyleSchema = z.union([
5
- z.object({
6
- fontSize: z.number(),
7
- }),
8
- z.object({
9
- fontFamily: z.string(),
10
- }),
11
- z.object({
12
- fontWeight: z.enum([
13
- "normal",
14
- "bold",
15
- "100",
16
- "200",
17
- "300",
18
- "400",
19
- "500",
20
- "600",
21
- "700",
22
- "800",
23
- "900",
24
- ]),
25
- }),
26
- z.object({
27
- fontStyle: z.enum(["normal", "italic"]),
28
- }),
29
- z.object({
30
- letterSpacing: z.number(),
31
- }),
32
- z.object({
33
- lineHeight: z.number(),
34
- }),
35
- ]);
36
- const ThemeValuesSchema = z.record(z.string(), z.lazy(() => z.union([z.string(), z.number(), TextStyleSchema, ThemeValuesSchema])));
37
- const TextStyleOrThemeValuesSchema = z.union([TextStyleSchema, ThemeValuesSchema]);
38
- const ThemeSchema = z.object({
39
- name: z.string(),
40
- colors: z.object({
41
- branding: ThemeValuesSchema.optional(),
42
- text: ThemeValuesSchema.optional(),
43
- background: ThemeValuesSchema.optional(),
44
- foreground: ThemeValuesSchema.optional(),
45
- border: ThemeValuesSchema.optional(),
46
- }),
47
- typography: z.object({
48
- body1: TextStyleOrThemeValuesSchema.optional(),
49
- body2: TextStyleOrThemeValuesSchema.optional(),
50
- button: TextStyleOrThemeValuesSchema.optional(),
51
- caption: TextStyleOrThemeValuesSchema.optional(),
52
- headline1: TextStyleOrThemeValuesSchema.optional(),
53
- headline2: TextStyleOrThemeValuesSchema.optional(),
54
- headline3: TextStyleOrThemeValuesSchema.optional(),
55
- headline4: TextStyleOrThemeValuesSchema.optional(),
56
- headline5: TextStyleOrThemeValuesSchema.optional(),
57
- headline6: TextStyleOrThemeValuesSchema.optional(),
58
- overline: TextStyleOrThemeValuesSchema.optional(),
59
- subtitle1: TextStyleOrThemeValuesSchema.optional(),
60
- subtitle2: TextStyleOrThemeValuesSchema.optional(),
61
- }),
62
- });
63
1
  export function validatePalettes(palettes) {
64
- const result = PaletteSchema.safeParse(palettes);
65
- if (!result.success) {
66
- throw new Error("Invalid palettes object: " + result.error.message);
67
- }
2
+ palettes;
68
3
  }
69
4
  export function validateBreakpoints(breakpoints) {
70
- const result = BreakpointSchema.safeParse(breakpoints);
71
- if (!result.success) {
72
- throw new Error("Invalid breakpoints object: " + result.error.message);
73
- }
5
+ breakpoints;
74
6
  }
75
7
  export function validateTheme(theme) {
76
- const result = ThemeSchema.safeParse(theme);
77
- if (!result.success) {
78
- throw new Error("Invalid theme object: " + result.error.message);
79
- }
8
+ theme;
80
9
  }
81
10
  export function isTextStyleObject(value) {
82
- return TextStyleSchema.safeParse(value).success;
11
+ value;
12
+ return true;
83
13
  }
84
14
  export function asThemeValuesObject(value) {
85
- // Text style matches the shape of ThemeValues, but we don't want to treat it as a ThemeValues
86
- if (isTextStyleObject(value)) {
87
- return null;
88
- }
89
- return ThemeValuesSchema.safeParse(value).success ? value : null;
15
+ return value;
90
16
  }
91
17
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/validators.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,QAAuB;IACtD,QAAQ,CAAC;AACX,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAwB;IAC1D,WAAW,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,KAAK,CAAC;AACR,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAU;IAC1C,KAAK,CAAC;IACN,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC5C,OAAO,KAAK,CAAC;AACf,CAAC"}