@xylabs/sdk-react 2.9.28 → 2.9.32

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.
Files changed (35) hide show
  1. package/dist/cjs5/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
  2. package/dist/cjs5/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
  3. package/dist/cjs5/index.js +17 -15
  4. package/dist/cjs5/index.js.map +1 -1
  5. package/dist/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
  6. package/dist/components/InvertableThemeProvider/InvertableThemeProvider.js +13 -11
  7. package/dist/components/InvertableThemeProvider/InvertableThemeProvider.js.map +1 -1
  8. package/dist/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
  9. package/dist/esm2015/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
  10. package/dist/esm2015/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
  11. package/dist/esm2015/index.js +17 -15
  12. package/dist/esm2015/index.js.map +1 -1
  13. package/dist/esm2017/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
  14. package/dist/esm2017/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
  15. package/dist/esm2017/index.js +17 -15
  16. package/dist/esm2017/index.js.map +1 -1
  17. package/dist/esm5/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
  18. package/dist/esm5/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
  19. package/dist/esm5/index.js +17 -15
  20. package/dist/esm5/index.js.map +1 -1
  21. package/dist/hooks/useWebP.js +4 -4
  22. package/dist/hooks/useWebP.js.map +1 -1
  23. package/dist/node/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
  24. package/dist/node/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
  25. package/dist/node/index.js +17 -15
  26. package/dist/node/index.js.map +1 -1
  27. package/dist/node-esm/components/InvertableThemeProvider/InvertableTheme.d.ts +2 -0
  28. package/dist/node-esm/components/InvertableThemeProvider/InvertableThemeProviderProps.d.ts +5 -0
  29. package/dist/node-esm/index.js +17 -15
  30. package/dist/node-esm/index.js.map +1 -1
  31. package/package.json +21 -21
  32. package/src/components/InvertableThemeProvider/InvertableTheme.tsx +2 -0
  33. package/src/components/InvertableThemeProvider/InvertableThemeProvider.tsx +20 -13
  34. package/src/components/InvertableThemeProvider/InvertableThemeProviderProps.ts +5 -0
  35. package/src/hooks/useWebP.tsx +4 -6
@@ -28,10 +28,13 @@ export const InvertableThemeProvider: React.FC<InvertableThemeProviderProps> = (
28
28
  invert = false,
29
29
  noResponsiveFonts,
30
30
  darkTheme,
31
+ darkOptions,
32
+ lightOptions,
31
33
  }) => {
32
- let internalDarkTheme = {}
33
- const contextInvertableTheme = useContext(InvertableThemeContext)
34
- const clonedOptions = cloneDeep(options ?? contextInvertableTheme.options ?? {})
34
+ const parentContext = useContext(InvertableThemeContext)
35
+ const clonedOptions = cloneDeep(options ?? parentContext.options ?? {})
36
+ const clonedDarkOptions = cloneDeep(darkOptions ?? darkTheme ?? parentContext.darkOptions)
37
+ const clonedLightOptions = cloneDeep(lightOptions ?? parentContext.lightOptions)
35
38
 
36
39
  clonedOptions.palette = clonedOptions.palette ?? {}
37
40
 
@@ -43,11 +46,9 @@ export const InvertableThemeProvider: React.FC<InvertableThemeProviderProps> = (
43
46
  clonedOptions.palette.mode = dark ? 'dark' : 'light'
44
47
  }
45
48
 
46
- if (clonedOptions.palette.mode === 'dark' && darkTheme?.palette) {
47
- internalDarkTheme = darkTheme
48
- }
49
+ const modeOptions = clonedOptions.palette.mode === 'dark' ? clonedDarkOptions : clonedLightOptions
49
50
 
50
- let themeOptions = merge(clonedOptions, internalDarkTheme)
51
+ let themeOptions = merge({}, clonedOptions, modeOptions)
51
52
 
52
53
  if (resolve) {
53
54
  themeOptions = resolveThemeColors(themeOptions)
@@ -55,15 +56,21 @@ export const InvertableThemeProvider: React.FC<InvertableThemeProviderProps> = (
55
56
 
56
57
  const theme: Theme = noResponsiveFonts ? createTheme(themeOptions) : responsiveFontSizes(createTheme(themeOptions))
57
58
 
58
- return scoped ? (
59
- <ScopedCssBaseline>
60
- <InvertableThemeContext.Provider value={{ options: clonedOptions }}>
59
+ const Provider: React.FC = () => {
60
+ return (
61
+ <InvertableThemeContext.Provider
62
+ value={{ darkOptions: clonedDarkOptions, lightOptions: clonedLightOptions, options: clonedOptions }}
63
+ >
61
64
  <ThemeProvider theme={theme}>{children}</ThemeProvider>
62
65
  </InvertableThemeContext.Provider>
66
+ )
67
+ }
68
+
69
+ return scoped ? (
70
+ <ScopedCssBaseline>
71
+ <Provider />
63
72
  </ScopedCssBaseline>
64
73
  ) : (
65
- <InvertableThemeContext.Provider value={{ options: clonedOptions }}>
66
- <ThemeProvider theme={theme}>{children}</ThemeProvider>
67
- </InvertableThemeContext.Provider>
74
+ <Provider />
68
75
  )
69
76
  }
@@ -6,7 +6,12 @@ interface InvertableThemeProviderProps {
6
6
  invert?: boolean
7
7
  noResponsiveFonts?: boolean
8
8
  options?: ThemeOptions
9
+ /**
10
+ * @deprecated use darkOptions instead
11
+ */
9
12
  darkTheme?: ThemeOptions
13
+ darkOptions?: ThemeOptions
14
+ lightOptions?: ThemeOptions
10
15
  resolve?: boolean
11
16
  }
12
17
 
@@ -5,16 +5,14 @@ import { useAsyncEffect } from '../lib'
5
5
  let supportsWebP: boolean | undefined = undefined
6
6
 
7
7
  export const useWebP = (webp: string, alt: string) => {
8
- const [img, setImg] = useState<string | undefined>(
9
- supportsWebP === true ? webp : supportsWebP === false ? alt : undefined
10
- )
8
+ const [img, setImg] = useState<string>()
11
9
  useAsyncEffect(
12
10
  async (mounted) => {
13
11
  if (supportsWebP === undefined) {
14
12
  supportsWebP = await getSupportsWebP()
15
- if (mounted()) {
16
- setImg(supportsWebP ? webp : alt)
17
- }
13
+ }
14
+ if (mounted()) {
15
+ setImg(supportsWebP ? webp : alt)
18
16
  }
19
17
  },
20
18
  [supportsWebP]