@iobroker/gui-components 10.0.15 → 10.0.16
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 +5 -1
- package/build/Theme.js +29 -0
- package/build/Theme.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ npm create vite@latest src -- --template react-ts
|
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@emotion/react": "^11.14.0",
|
|
38
38
|
"@emotion/styled": "^11.14.1",
|
|
39
|
-
"@iobroker/gui-components": "^10.0.
|
|
39
|
+
"@iobroker/gui-components": "^10.0.16",
|
|
40
40
|
"@mui/icons-material": "^9.0.1",
|
|
41
41
|
"@mui/material": "^9.0.1",
|
|
42
42
|
"react": "^19.2.5",
|
|
@@ -856,6 +856,10 @@ You can find the migration instructions:
|
|
|
856
856
|
-->
|
|
857
857
|
|
|
858
858
|
## Changelog
|
|
859
|
+
### 10.0.16 (2026-08-10)
|
|
860
|
+
|
|
861
|
+
- (@GermanBluefox) Corrected the text color of the filled alerts (snackbars) in the dark themes
|
|
862
|
+
|
|
859
863
|
### 10.0.15 (2026-08-07)
|
|
860
864
|
|
|
861
865
|
- (@GermanBluefox) Tuned TextWithIcon component
|
package/build/Theme.js
CHANGED
|
@@ -62,6 +62,24 @@ function getElevations(color, overlay) {
|
|
|
62
62
|
}
|
|
63
63
|
return elevations;
|
|
64
64
|
}
|
|
65
|
+
const ALERT_SEVERITIES = ['error', 'warning', 'info', 'success'];
|
|
66
|
+
/**
|
|
67
|
+
* Text color for a filled alert (`<Alert variant="filled"/>` and with it every snackbar/toast).
|
|
68
|
+
*
|
|
69
|
+
* MUI fills the box with `palette[severity].dark` in the dark themes, but derives the text color from
|
|
70
|
+
* `palette[severity].main`. For "info" and "success" that ends up as almost black text on a mid-blue
|
|
71
|
+
* or mid-green box. Calculate the contrast against the background that is really painted.
|
|
72
|
+
*
|
|
73
|
+
* @param palette palette of the already created theme
|
|
74
|
+
* @param color `color` or `severity` of the alert. Anything but the four severities is left to MUI
|
|
75
|
+
*/
|
|
76
|
+
function getFilledAlertTextColor(palette, color) {
|
|
77
|
+
if (!ALERT_SEVERITIES.includes(color)) {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
const severity = color;
|
|
81
|
+
return palette.getContrastText(palette.mode === 'dark' ? palette[severity].dark : palette[severity].main);
|
|
82
|
+
}
|
|
65
83
|
/**
|
|
66
84
|
* The theme creation factory function.
|
|
67
85
|
*/
|
|
@@ -353,6 +371,17 @@ export function Theme(type, overrides) {
|
|
|
353
371
|
...(overrides || undefined),
|
|
354
372
|
components: {
|
|
355
373
|
...localOverrides,
|
|
374
|
+
MuiAlert: {
|
|
375
|
+
// do not lose the alert overrides of the theme itself (e.g. of the "modern*" themes)
|
|
376
|
+
...(localOverrides.MuiAlert || undefined),
|
|
377
|
+
styleOverrides: {
|
|
378
|
+
...(localOverrides.MuiAlert?.styleOverrides || undefined),
|
|
379
|
+
// "filled" is the only per-variant slot of the alert - the severity comes with the ownerState
|
|
380
|
+
filled: (props) => ({
|
|
381
|
+
color: getFilledAlertTextColor(theme.palette, props.ownerState?.color || props.ownerState?.severity || 'success'),
|
|
382
|
+
}),
|
|
383
|
+
},
|
|
384
|
+
},
|
|
356
385
|
MuiButton: {
|
|
357
386
|
// do not lose the button overrides of the theme itself (e.g. of the "modern*" themes)
|
|
358
387
|
...(localOverrides.MuiButton || undefined),
|
package/build/Theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Theme.js","sourceRoot":"./src/","sources":["Theme.tsx"],"names":[],"mappings":"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","sourcesContent":["import { type CSSProperties } from 'react';\nimport {\n createTheme,\n alpha,\n type PaletteOptions as PaletteOptionsMui,\n type SimplePaletteColorOptions,\n type ThemeOptions as ThemeOptionsMui,\n} from '@mui/material/styles';\nimport { orange, grey } from '@mui/material/colors';\n\nimport type { IobTheme, ThemeName, ThemeType } from './types';\nimport { getModernTheme } from './ThemeModern';\n\nconst step = (16 - 5) / 23 / 100;\n\n/**\n * Convert hex color in the format '#rrggbb' or '#rgb' to an RGB object.\n */\nfunction toInt(hex: string): { r: number; g: number; b: number } {\n const rgb: { r: number; g: number; b: number } = {\n r: 0,\n g: 0,\n b: 0,\n };\n\n if (hex.length === 7) {\n rgb.r = parseInt(hex.substring(1, 3), 16);\n rgb.g = parseInt(hex.substring(3, 5), 16);\n rgb.b = parseInt(hex.substring(5, 7), 16);\n } else if (hex.length === 4) {\n const r = hex[1];\n const g = hex[2];\n const b = hex[3];\n\n rgb.r = parseInt(r + r, 16);\n rgb.g = parseInt(g + g, 16);\n rgb.b = parseInt(b + b, 16);\n }\n\n return rgb;\n}\n\n/**\n * Convert an RGB object to a hex color string in the format '#rrggbb'.\n */\nfunction toHex(int: { r: number; g: number; b: number }): string {\n return `#${Math.round(int.r).toString(16).padStart(2, '0')}${Math.round(int.g).toString(16).padStart(2, '0')}${Math.round(int.b).toString(16).padStart(2, '0')}`;\n}\n\n/** Returns the hex color string in the format '#rrggbb' */\nfunction getElevation(\n /** color in the format '#rrggbb' or '#rgb' */\n color: string,\n /** overlay color in the format '#rrggbb' or '#rgb' */\n overlayColor: string,\n /** elevation as an integer starting with 1 */\n elevation: number,\n): string {\n const rgb: { r: number; g: number; b: number } = toInt(color);\n const overlay: { r: number; g: number; b: number } = toInt(overlayColor);\n\n rgb.r += overlay.r * (0.05 + step * (elevation - 1));\n rgb.g += overlay.g * (0.05 + step * (elevation - 1));\n rgb.b += overlay.b * (0.05 + step * (elevation - 1));\n\n return toHex(rgb);\n}\n\n/**\n * Get all 24 elevations of the given color and overlay.\n *\n * @param color color in the format '#rrggbb' or '#rgb'\n * @param overlay overlay color in the format '#rrggbb' or '#rgb'\n */\nfunction getElevations(color: string, overlay: string): Record<string, CSSProperties> {\n const elevations: Record<string, CSSProperties> = {};\n\n for (let i = 1; i <= 24; i++) {\n elevations[`elevation${i}`] = {\n backgroundColor: getElevation(color, overlay, i),\n };\n }\n\n return elevations;\n}\n\n// const buttonsPalette = () => ({\n// palette: {\n// // mode: \"dark\",\n// grey: {\n// main: grey[300],\n// dark: grey[400],\n// },\n// },\n// });\n\n// const buttonsTheme = theme => ({\n// components: {\n// MuiButton: {\n// variants: [\n// {\n// props: { variant: 'contained', color: 'grey' },\n// style: {\n// color: theme.palette.getContrastText(theme.palette.grey[300]),\n// },\n// },\n// {\n// props: { variant: 'outlined', color: 'grey' },\n// style: {\n// color: theme.palette.text.primary,\n// borderColor:\n// theme.palette.mode === 'light'\n// ? 'rgba(0, 0, 0, 0.23)'\n// : 'rgba(255, 255, 255, 0.23)',\n// '&.Mui-disabled': {\n// border: `1px solid ${theme.palette.action.disabledBackground}`,\n// },\n// '&:hover': {\n// borderColor:\n// theme.palette.mode === 'light'\n// ? 'rgba(0, 0, 0, 0.23)'\n// : 'rgba(255, 255, 255, 0.23)',\n// backgroundColor: alpha(\n// theme.palette.text.primary,\n// theme.palette.action.hoverOpacity,\n// ),\n// },\n// },\n// },\n// {\n// props: { color: 'grey', variant: 'text' },\n// style: {\n// color: 'black',\n// '&:hover': {\n// backgroundColor: alpha(\n// theme.palette.text.primary,\n// theme.palette.action.hoverOpacity,\n// ),\n// },\n// },\n// },\n// ],\n// },\n// },\n// });\n\nexport interface PaletteOptions extends PaletteOptionsMui {\n mode: ThemeType;\n expert: string;\n nonAck?: string;\n grey?: {\n main?: string;\n dark?: string;\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n A100?: string;\n A200?: string;\n A400?: string;\n A700?: string;\n };\n}\n\nexport interface ThemeOptions extends ThemeOptionsMui {\n name: ThemeName;\n palette?: PaletteOptions;\n toolbar?: CSSProperties;\n saveToolbar?: {\n background: string;\n button: CSSProperties;\n };\n}\n\n/**\n * The theme creation factory function.\n */\nexport function Theme(type: ThemeName, overrides?: Record<string, any>): IobTheme {\n let options: ThemeOptions;\n let localOverrides: Record<string, any>;\n\n if (type === 'modernDark' || type === 'modernLight') {\n const modern = getModernTheme(type, type === 'modernDark' ? 'dark' : 'light');\n options = modern.options;\n localOverrides = modern.components;\n } else if (type === 'dark') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#272727',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[200],\n '&:hover': {\n color: orange[100],\n },\n },\n },\n MuiPaper: getElevations('#121212', '#fff'),\n };\n\n options = {\n name: type,\n palette: {\n mode: 'dark',\n background: {\n paper: '#121212',\n default: '#121212',\n },\n primary: {\n main: '#4dabf5',\n },\n secondary: {\n main: '#436a93',\n },\n expert: '#14bb00',\n text: {\n primary: '#ffffff',\n secondary: '#ffffff',\n },\n },\n };\n } else if (type === 'blue') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#3399CC',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[400],\n '&:hover': {\n color: orange[300],\n },\n },\n },\n };\n\n options = {\n name: type,\n palette: {\n mode: 'dark',\n background: {\n paper: '#151d21',\n default: '#151d21',\n },\n primary: {\n main: '#4dabf5',\n },\n secondary: {\n main: '#436a93',\n },\n expert: '#14bb00',\n text: {\n primary: '#ffffff',\n secondary: '#ffffff',\n },\n },\n };\n } else if (type === 'colored') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#2a3135',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[200],\n '&:hover': {\n color: orange[100],\n },\n },\n },\n MuiPaper: getElevations('#151d21', '#fff'),\n };\n\n options = {\n name: type,\n palette: {\n mode: 'light',\n primary: {\n main: '#3399CC',\n },\n secondary: {\n main: '#164477',\n },\n expert: '#96fc96',\n },\n };\n } else if (type === 'PT') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#0F99DE',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[400],\n '&:hover': {\n color: orange[300],\n },\n },\n },\n };\n\n options = {\n name: type,\n palette: {\n mode: 'light',\n primary: {\n main: '#0F99DE',\n },\n secondary: {\n main: '#88A536',\n },\n expert: '#BD1B24',\n },\n };\n } else if (type === 'NW') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#272727',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[400],\n '&:hover': {\n color: orange[300],\n },\n },\n },\n MuiPaper: getElevations('#121212', '#fff'),\n };\n\n options = {\n name: type,\n palette: {\n mode: 'dark',\n background: {\n paper: '#121212',\n default: '#121212',\n },\n primary: {\n main: '#00af78',\n },\n secondary: {\n main: '#005a40',\n },\n expert: '#14bb00',\n text: {\n primary: '#ffffff',\n secondary: '#ffffff',\n },\n },\n };\n } else if (type === 'HA') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#272727',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: '#db0a33',\n '&:hover': {\n color: '#FF0a33',\n },\n },\n },\n MuiPaper: getElevations('#121212', '#fff'),\n };\n\n options = {\n name: type,\n palette: {\n mode: 'dark',\n background: {\n paper: '#121212',\n default: '#121212',\n },\n primary: {\n main: '#970720',\n },\n secondary: {\n main: '#db0a33',\n },\n expert: '#db0a33',\n nonAck: '#ffe96a',\n text: {\n primary: '#ffffff',\n secondary: '#ffffff',\n },\n },\n };\n } else {\n localOverrides = {\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[400],\n '&:hover': {\n color: orange[300],\n },\n },\n },\n };\n\n options = {\n name: type,\n palette: {\n mode: 'light',\n primary: {\n main: '#3399CC',\n dark: '#256c97',\n light: '#76d0fd',\n },\n secondary: {\n main: '#164477',\n },\n expert: '#14bb00',\n },\n };\n }\n\n options.toolbar ||= {\n height: 48,\n };\n\n options.saveToolbar ||= {\n background: (options.palette?.primary as SimplePaletteColorOptions)?.main,\n button: {\n borderRadius: 3,\n height: 32,\n },\n };\n\n if (options.palette) {\n options.palette.grey = {\n main: grey[300],\n dark: grey[400],\n };\n }\n\n const theme: IobTheme = createTheme(options) as IobTheme;\n\n const palette: PaletteOptions = theme.palette;\n\n return createTheme(theme, {\n ...(overrides || undefined),\n components: {\n ...localOverrides,\n MuiButton: {\n // do not lose the button overrides of the theme itself (e.g. of the \"modern*\" themes)\n ...(localOverrides.MuiButton || undefined),\n variants: [\n ...(localOverrides.MuiButton?.variants || []),\n {\n props: { variant: 'contained', color: 'grey' },\n style: {\n backgroundColor: palette.grey?.[300],\n color:\n palette.getContrastText && palette.grey?.[300]\n ? palette.getContrastText(palette.grey[300])\n : undefined,\n },\n },\n {\n props: { variant: 'outlined', color: 'grey' },\n style: {\n color: palette.text?.primary,\n borderColor: palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)',\n '&.Mui-disabled': {\n border: `1px solid ${palette.action?.disabledBackground}`,\n },\n '&:hover': {\n borderColor:\n palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)',\n backgroundColor: alpha(\n palette.text?.primary || '',\n palette.action?.hoverOpacity || 0.04,\n ),\n },\n },\n },\n {\n props: { variant: 'text', color: 'grey' },\n style: {\n color: palette.text?.primary,\n '&:hover': {\n backgroundColor: alpha(\n palette.text?.primary || '',\n palette.action?.hoverOpacity || 0.04,\n ),\n },\n },\n },\n ],\n },\n ...(overrides?.components || undefined),\n },\n }) as IobTheme;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Theme.js","sourceRoot":"./src/","sources":["Theme.tsx"],"names":[],"mappings":"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","sourcesContent":["import { type CSSProperties } from 'react';\nimport {\n createTheme,\n alpha,\n type Palette as PaletteMui,\n type PaletteOptions as PaletteOptionsMui,\n type SimplePaletteColorOptions,\n type ThemeOptions as ThemeOptionsMui,\n} from '@mui/material/styles';\nimport { orange, grey } from '@mui/material/colors';\n\nimport type { IobTheme, ThemeName, ThemeType } from './types';\nimport { getModernTheme } from './ThemeModern';\n\nconst step = (16 - 5) / 23 / 100;\n\n/**\n * Convert hex color in the format '#rrggbb' or '#rgb' to an RGB object.\n */\nfunction toInt(hex: string): { r: number; g: number; b: number } {\n const rgb: { r: number; g: number; b: number } = {\n r: 0,\n g: 0,\n b: 0,\n };\n\n if (hex.length === 7) {\n rgb.r = parseInt(hex.substring(1, 3), 16);\n rgb.g = parseInt(hex.substring(3, 5), 16);\n rgb.b = parseInt(hex.substring(5, 7), 16);\n } else if (hex.length === 4) {\n const r = hex[1];\n const g = hex[2];\n const b = hex[3];\n\n rgb.r = parseInt(r + r, 16);\n rgb.g = parseInt(g + g, 16);\n rgb.b = parseInt(b + b, 16);\n }\n\n return rgb;\n}\n\n/**\n * Convert an RGB object to a hex color string in the format '#rrggbb'.\n */\nfunction toHex(int: { r: number; g: number; b: number }): string {\n return `#${Math.round(int.r).toString(16).padStart(2, '0')}${Math.round(int.g).toString(16).padStart(2, '0')}${Math.round(int.b).toString(16).padStart(2, '0')}`;\n}\n\n/** Returns the hex color string in the format '#rrggbb' */\nfunction getElevation(\n /** color in the format '#rrggbb' or '#rgb' */\n color: string,\n /** overlay color in the format '#rrggbb' or '#rgb' */\n overlayColor: string,\n /** elevation as an integer starting with 1 */\n elevation: number,\n): string {\n const rgb: { r: number; g: number; b: number } = toInt(color);\n const overlay: { r: number; g: number; b: number } = toInt(overlayColor);\n\n rgb.r += overlay.r * (0.05 + step * (elevation - 1));\n rgb.g += overlay.g * (0.05 + step * (elevation - 1));\n rgb.b += overlay.b * (0.05 + step * (elevation - 1));\n\n return toHex(rgb);\n}\n\n/**\n * Get all 24 elevations of the given color and overlay.\n *\n * @param color color in the format '#rrggbb' or '#rgb'\n * @param overlay overlay color in the format '#rrggbb' or '#rgb'\n */\nfunction getElevations(color: string, overlay: string): Record<string, CSSProperties> {\n const elevations: Record<string, CSSProperties> = {};\n\n for (let i = 1; i <= 24; i++) {\n elevations[`elevation${i}`] = {\n backgroundColor: getElevation(color, overlay, i),\n };\n }\n\n return elevations;\n}\n\nconst ALERT_SEVERITIES = ['error', 'warning', 'info', 'success'] as const;\n\ntype AlertSeverity = (typeof ALERT_SEVERITIES)[number];\n\n/**\n * Text color for a filled alert (`<Alert variant=\"filled\"/>` and with it every snackbar/toast).\n *\n * MUI fills the box with `palette[severity].dark` in the dark themes, but derives the text color from\n * `palette[severity].main`. For \"info\" and \"success\" that ends up as almost black text on a mid-blue\n * or mid-green box. Calculate the contrast against the background that is really painted.\n *\n * @param palette palette of the already created theme\n * @param color `color` or `severity` of the alert. Anything but the four severities is left to MUI\n */\nfunction getFilledAlertTextColor(palette: PaletteMui, color: string | undefined): string | undefined {\n if (!ALERT_SEVERITIES.includes(color as AlertSeverity)) {\n return undefined;\n }\n const severity = color as AlertSeverity;\n\n return palette.getContrastText(palette.mode === 'dark' ? palette[severity].dark : palette[severity].main);\n}\n\n// const buttonsPalette = () => ({\n// palette: {\n// // mode: \"dark\",\n// grey: {\n// main: grey[300],\n// dark: grey[400],\n// },\n// },\n// });\n\n// const buttonsTheme = theme => ({\n// components: {\n// MuiButton: {\n// variants: [\n// {\n// props: { variant: 'contained', color: 'grey' },\n// style: {\n// color: theme.palette.getContrastText(theme.palette.grey[300]),\n// },\n// },\n// {\n// props: { variant: 'outlined', color: 'grey' },\n// style: {\n// color: theme.palette.text.primary,\n// borderColor:\n// theme.palette.mode === 'light'\n// ? 'rgba(0, 0, 0, 0.23)'\n// : 'rgba(255, 255, 255, 0.23)',\n// '&.Mui-disabled': {\n// border: `1px solid ${theme.palette.action.disabledBackground}`,\n// },\n// '&:hover': {\n// borderColor:\n// theme.palette.mode === 'light'\n// ? 'rgba(0, 0, 0, 0.23)'\n// : 'rgba(255, 255, 255, 0.23)',\n// backgroundColor: alpha(\n// theme.palette.text.primary,\n// theme.palette.action.hoverOpacity,\n// ),\n// },\n// },\n// },\n// {\n// props: { color: 'grey', variant: 'text' },\n// style: {\n// color: 'black',\n// '&:hover': {\n// backgroundColor: alpha(\n// theme.palette.text.primary,\n// theme.palette.action.hoverOpacity,\n// ),\n// },\n// },\n// },\n// ],\n// },\n// },\n// });\n\nexport interface PaletteOptions extends PaletteOptionsMui {\n mode: ThemeType;\n expert: string;\n nonAck?: string;\n grey?: {\n main?: string;\n dark?: string;\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n A100?: string;\n A200?: string;\n A400?: string;\n A700?: string;\n };\n}\n\nexport interface ThemeOptions extends ThemeOptionsMui {\n name: ThemeName;\n palette?: PaletteOptions;\n toolbar?: CSSProperties;\n saveToolbar?: {\n background: string;\n button: CSSProperties;\n };\n}\n\n/**\n * The theme creation factory function.\n */\nexport function Theme(type: ThemeName, overrides?: Record<string, any>): IobTheme {\n let options: ThemeOptions;\n let localOverrides: Record<string, any>;\n\n if (type === 'modernDark' || type === 'modernLight') {\n const modern = getModernTheme(type, type === 'modernDark' ? 'dark' : 'light');\n options = modern.options;\n localOverrides = modern.components;\n } else if (type === 'dark') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#272727',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[200],\n '&:hover': {\n color: orange[100],\n },\n },\n },\n MuiPaper: getElevations('#121212', '#fff'),\n };\n\n options = {\n name: type,\n palette: {\n mode: 'dark',\n background: {\n paper: '#121212',\n default: '#121212',\n },\n primary: {\n main: '#4dabf5',\n },\n secondary: {\n main: '#436a93',\n },\n expert: '#14bb00',\n text: {\n primary: '#ffffff',\n secondary: '#ffffff',\n },\n },\n };\n } else if (type === 'blue') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#3399CC',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[400],\n '&:hover': {\n color: orange[300],\n },\n },\n },\n };\n\n options = {\n name: type,\n palette: {\n mode: 'dark',\n background: {\n paper: '#151d21',\n default: '#151d21',\n },\n primary: {\n main: '#4dabf5',\n },\n secondary: {\n main: '#436a93',\n },\n expert: '#14bb00',\n text: {\n primary: '#ffffff',\n secondary: '#ffffff',\n },\n },\n };\n } else if (type === 'colored') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#2a3135',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[200],\n '&:hover': {\n color: orange[100],\n },\n },\n },\n MuiPaper: getElevations('#151d21', '#fff'),\n };\n\n options = {\n name: type,\n palette: {\n mode: 'light',\n primary: {\n main: '#3399CC',\n },\n secondary: {\n main: '#164477',\n },\n expert: '#96fc96',\n },\n };\n } else if (type === 'PT') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#0F99DE',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[400],\n '&:hover': {\n color: orange[300],\n },\n },\n },\n };\n\n options = {\n name: type,\n palette: {\n mode: 'light',\n primary: {\n main: '#0F99DE',\n },\n secondary: {\n main: '#88A536',\n },\n expert: '#BD1B24',\n },\n };\n } else if (type === 'NW') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#272727',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[400],\n '&:hover': {\n color: orange[300],\n },\n },\n },\n MuiPaper: getElevations('#121212', '#fff'),\n };\n\n options = {\n name: type,\n palette: {\n mode: 'dark',\n background: {\n paper: '#121212',\n default: '#121212',\n },\n primary: {\n main: '#00af78',\n },\n secondary: {\n main: '#005a40',\n },\n expert: '#14bb00',\n text: {\n primary: '#ffffff',\n secondary: '#ffffff',\n },\n },\n };\n } else if (type === 'HA') {\n localOverrides = {\n MuiAppBar: {\n colorDefault: {\n backgroundColor: '#272727',\n },\n },\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: '#db0a33',\n '&:hover': {\n color: '#FF0a33',\n },\n },\n },\n MuiPaper: getElevations('#121212', '#fff'),\n };\n\n options = {\n name: type,\n palette: {\n mode: 'dark',\n background: {\n paper: '#121212',\n default: '#121212',\n },\n primary: {\n main: '#970720',\n },\n secondary: {\n main: '#db0a33',\n },\n expert: '#db0a33',\n nonAck: '#ffe96a',\n text: {\n primary: '#ffffff',\n secondary: '#ffffff',\n },\n },\n };\n } else {\n localOverrides = {\n MuiLink: {\n root: {\n textTransform: 'uppercase',\n transition: 'color .3s ease',\n color: orange[400],\n '&:hover': {\n color: orange[300],\n },\n },\n },\n };\n\n options = {\n name: type,\n palette: {\n mode: 'light',\n primary: {\n main: '#3399CC',\n dark: '#256c97',\n light: '#76d0fd',\n },\n secondary: {\n main: '#164477',\n },\n expert: '#14bb00',\n },\n };\n }\n\n options.toolbar ||= {\n height: 48,\n };\n\n options.saveToolbar ||= {\n background: (options.palette?.primary as SimplePaletteColorOptions)?.main,\n button: {\n borderRadius: 3,\n height: 32,\n },\n };\n\n if (options.palette) {\n options.palette.grey = {\n main: grey[300],\n dark: grey[400],\n };\n }\n\n const theme: IobTheme = createTheme(options) as IobTheme;\n\n const palette: PaletteOptions = theme.palette;\n\n return createTheme(theme, {\n ...(overrides || undefined),\n components: {\n ...localOverrides,\n MuiAlert: {\n // do not lose the alert overrides of the theme itself (e.g. of the \"modern*\" themes)\n ...(localOverrides.MuiAlert || undefined),\n styleOverrides: {\n ...(localOverrides.MuiAlert?.styleOverrides || undefined),\n // \"filled\" is the only per-variant slot of the alert - the severity comes with the ownerState\n filled: (props: { ownerState?: { color?: string; severity?: string } }) => ({\n color: getFilledAlertTextColor(\n theme.palette,\n props.ownerState?.color || props.ownerState?.severity || 'success',\n ),\n }),\n },\n },\n MuiButton: {\n // do not lose the button overrides of the theme itself (e.g. of the \"modern*\" themes)\n ...(localOverrides.MuiButton || undefined),\n variants: [\n ...(localOverrides.MuiButton?.variants || []),\n {\n props: { variant: 'contained', color: 'grey' },\n style: {\n backgroundColor: palette.grey?.[300],\n color:\n palette.getContrastText && palette.grey?.[300]\n ? palette.getContrastText(palette.grey[300])\n : undefined,\n },\n },\n {\n props: { variant: 'outlined', color: 'grey' },\n style: {\n color: palette.text?.primary,\n borderColor: palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)',\n '&.Mui-disabled': {\n border: `1px solid ${palette.action?.disabledBackground}`,\n },\n '&:hover': {\n borderColor:\n palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)',\n backgroundColor: alpha(\n palette.text?.primary || '',\n palette.action?.hoverOpacity || 0.04,\n ),\n },\n },\n },\n {\n props: { variant: 'text', color: 'grey' },\n style: {\n color: palette.text?.primary,\n '&:hover': {\n backgroundColor: alpha(\n palette.text?.primary || '',\n palette.action?.hoverOpacity || 0.04,\n ),\n },\n },\n },\n ],\n },\n ...(overrides?.components || undefined),\n },\n }) as IobTheme;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iobroker/gui-components",
|
|
3
|
-
"version": "10.0.
|
|
3
|
+
"version": "10.0.16",
|
|
4
4
|
"description": "Shared React components (React 19 / MUI 9) to develop ioBroker interfaces. Successor of @iobroker/adapter-react-v5.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "bluefox",
|
|
@@ -57,13 +57,13 @@
|
|
|
57
57
|
"@iobroker/socket-client": "^5.2.1",
|
|
58
58
|
"@iobroker/type-detector": "^5.0.15",
|
|
59
59
|
"@iobroker/types": "^7.2.2",
|
|
60
|
-
"@sentry/browser": "^10.
|
|
60
|
+
"@sentry/browser": "^10.70.0",
|
|
61
61
|
"cronstrue": "^3.24.0",
|
|
62
62
|
"file-selector": "^5.0.0",
|
|
63
63
|
"react-color": "^2.19.3",
|
|
64
64
|
"react-colorful": "^5.8.0",
|
|
65
65
|
"react-cropper": "^2.3.3",
|
|
66
|
-
"react-dropzone": "^20.
|
|
66
|
+
"react-dropzone": "^20.1.0",
|
|
67
67
|
"react-icons": "^5.7.0",
|
|
68
68
|
"react-inlinesvg": "^4.5.0"
|
|
69
69
|
},
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"@iobroker/eslint-config": "^2.3.4",
|
|
83
83
|
"@mui/icons-material": "^9.3.1",
|
|
84
84
|
"@mui/material": "^9.3.1",
|
|
85
|
-
"@types/node": "^26.
|
|
85
|
+
"@types/node": "^26.2.0",
|
|
86
86
|
"@types/react": "^19.2.18",
|
|
87
87
|
"@types/react-color": "^3.0.13",
|
|
88
88
|
"@types/react-dom": "^19.2.4",
|