@iobroker/gui-components 10.0.7 → 10.0.8

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 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.7",
39
+ "@iobroker/gui-components": "^10.0.8",
40
40
  "@mui/icons-material": "^9.0.1",
41
41
  "@mui/material": "^9.0.1",
42
42
  "react": "^19.2.5",
@@ -856,9 +856,9 @@ You can find the migration instructions:
856
856
  -->
857
857
 
858
858
  ## Changelog
859
- ### 10.0.7 (2026-07-31)
859
+ ### 10.0.8 (2026-07-31)
860
860
 
861
- - (@GermanBluefox) Updated packages
861
+ - (@GermanBluefox) Added support of styled scrollbars
862
862
 
863
863
  ### 10.0.6 (2026-07-30)
864
864
 
@@ -0,0 +1,23 @@
1
+ import { type JSX } from 'react';
2
+ import type { IobTheme } from '../types';
3
+ interface ScrollbarStylesProps {
4
+ theme: IobTheme;
5
+ }
6
+ /**
7
+ * Slim scrollbars in the colors of the current theme.
8
+ *
9
+ * Render it once below the `ThemeProvider`. It replaces the fixed grey scrollbars that most GUIs
10
+ * still carry in their own `index.css` - those were copied from this package years ago and do not
11
+ * fit a dark theme.
12
+ *
13
+ * Two mechanisms on purpose:
14
+ * - `scrollbar-width`/`scrollbar-color` is the standard (Firefox, Chromium 121+, Safari 18.2+).
15
+ * - the `::-webkit-scrollbar` rules serve older Chromium and Safari. Newer Chromium ignores them as
16
+ * soon as `scrollbar-width` is set, so the two do not fight each other.
17
+ *
18
+ * The colors are additionally published as `--iob-scrollbar-thumb` and `--iob-scrollbar-thumb-hover`
19
+ * on `:root`. A GUI can put its own fallback rules on `html` in its `index.css` for the moment
20
+ * before React has mounted - `:root` is more specific and always wins over it.
21
+ */
22
+ export declare function ScrollbarStyles({ theme }: ScrollbarStylesProps): JSX.Element;
23
+ export {};
@@ -0,0 +1,55 @@
1
+ import React from 'react';
2
+ import { GlobalStyles } from '@mui/material';
3
+ import { alpha } from '@mui/material/styles';
4
+ /**
5
+ * Slim scrollbars in the colors of the current theme.
6
+ *
7
+ * Render it once below the `ThemeProvider`. It replaces the fixed grey scrollbars that most GUIs
8
+ * still carry in their own `index.css` - those were copied from this package years ago and do not
9
+ * fit a dark theme.
10
+ *
11
+ * Two mechanisms on purpose:
12
+ * - `scrollbar-width`/`scrollbar-color` is the standard (Firefox, Chromium 121+, Safari 18.2+).
13
+ * - the `::-webkit-scrollbar` rules serve older Chromium and Safari. Newer Chromium ignores them as
14
+ * soon as `scrollbar-width` is set, so the two do not fight each other.
15
+ *
16
+ * The colors are additionally published as `--iob-scrollbar-thumb` and `--iob-scrollbar-thumb-hover`
17
+ * on `:root`. A GUI can put its own fallback rules on `html` in its `index.css` for the moment
18
+ * before React has mounted - `:root` is more specific and always wins over it.
19
+ */
20
+ export function ScrollbarStyles({ theme }) {
21
+ const thumb = alpha(theme.palette.text.primary, 0.25);
22
+ const thumbHover = alpha(theme.palette.text.primary, 0.45);
23
+ return (React.createElement(GlobalStyles, { styles: {
24
+ ':root': {
25
+ '--iob-scrollbar-thumb': thumb,
26
+ '--iob-scrollbar-thumb-hover': thumbHover,
27
+ },
28
+ '*': {
29
+ scrollbarWidth: 'thin',
30
+ scrollbarColor: `${thumb} transparent`,
31
+ },
32
+ '*::-webkit-scrollbar': {
33
+ width: 10,
34
+ height: 10,
35
+ },
36
+ '*::-webkit-scrollbar-track': {
37
+ backgroundColor: 'transparent',
38
+ },
39
+ '*::-webkit-scrollbar-thumb': {
40
+ backgroundColor: thumb,
41
+ borderRadius: 8,
42
+ // the transparent border plus `content-box` keeps the thumb slim on every
43
+ // background - a colored border would only fit the one it was picked for
44
+ border: '2px solid transparent',
45
+ backgroundClip: 'content-box',
46
+ },
47
+ '*::-webkit-scrollbar-thumb:hover': {
48
+ backgroundColor: thumbHover,
49
+ },
50
+ '*::-webkit-scrollbar-corner': {
51
+ backgroundColor: 'transparent',
52
+ },
53
+ } }));
54
+ }
55
+ //# sourceMappingURL=ScrollbarStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollbarStyles.js","sourceRoot":"./src/","sources":["Components/ScrollbarStyles.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQ7C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,EAAE,KAAK,EAAwB;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE3D,OAAO,CACH,oBAAC,YAAY,IACT,MAAM,EAAE;YACJ,OAAO,EAAE;gBACL,uBAAuB,EAAE,KAAK;gBAC9B,6BAA6B,EAAE,UAAU;aAC5C;YACD,GAAG,EAAE;gBACD,cAAc,EAAE,MAAM;gBACtB,cAAc,EAAE,GAAG,KAAK,cAAc;aACzC;YACD,sBAAsB,EAAE;gBACpB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;aACb;YACD,4BAA4B,EAAE;gBAC1B,eAAe,EAAE,aAAa;aACjC;YACD,4BAA4B,EAAE;gBAC1B,eAAe,EAAE,KAAK;gBACtB,YAAY,EAAE,CAAC;gBACf,0EAA0E;gBAC1E,yEAAyE;gBACzE,MAAM,EAAE,uBAAuB;gBAC/B,cAAc,EAAE,aAAa;aAChC;YACD,kCAAkC,EAAE;gBAChC,eAAe,EAAE,UAAU;aAC9B;YACD,6BAA6B,EAAE;gBAC3B,eAAe,EAAE,aAAa;aACjC;SACJ,GACH,CACL,CAAC;AACN,CAAC","sourcesContent":["import React, { type JSX } from 'react';\n\nimport { GlobalStyles } from '@mui/material';\nimport { alpha } from '@mui/material/styles';\n\nimport type { IobTheme } from '../types';\n\ninterface ScrollbarStylesProps {\n theme: IobTheme;\n}\n\n/**\n * Slim scrollbars in the colors of the current theme.\n *\n * Render it once below the `ThemeProvider`. It replaces the fixed grey scrollbars that most GUIs\n * still carry in their own `index.css` - those were copied from this package years ago and do not\n * fit a dark theme.\n *\n * Two mechanisms on purpose:\n * - `scrollbar-width`/`scrollbar-color` is the standard (Firefox, Chromium 121+, Safari 18.2+).\n * - the `::-webkit-scrollbar` rules serve older Chromium and Safari. Newer Chromium ignores them as\n * soon as `scrollbar-width` is set, so the two do not fight each other.\n *\n * The colors are additionally published as `--iob-scrollbar-thumb` and `--iob-scrollbar-thumb-hover`\n * on `:root`. A GUI can put its own fallback rules on `html` in its `index.css` for the moment\n * before React has mounted - `:root` is more specific and always wins over it.\n */\nexport function ScrollbarStyles({ theme }: ScrollbarStylesProps): JSX.Element {\n const thumb = alpha(theme.palette.text.primary, 0.25);\n const thumbHover = alpha(theme.palette.text.primary, 0.45);\n\n return (\n <GlobalStyles\n styles={{\n ':root': {\n '--iob-scrollbar-thumb': thumb,\n '--iob-scrollbar-thumb-hover': thumbHover,\n },\n '*': {\n scrollbarWidth: 'thin',\n scrollbarColor: `${thumb} transparent`,\n },\n '*::-webkit-scrollbar': {\n width: 10,\n height: 10,\n },\n '*::-webkit-scrollbar-track': {\n backgroundColor: 'transparent',\n },\n '*::-webkit-scrollbar-thumb': {\n backgroundColor: thumb,\n borderRadius: 8,\n // the transparent border plus `content-box` keeps the thumb slim on every\n // background - a colored border would only fit the one it was picked for\n border: '2px solid transparent',\n backgroundClip: 'content-box',\n },\n '*::-webkit-scrollbar-thumb:hover': {\n backgroundColor: thumbHover,\n },\n '*::-webkit-scrollbar-corner': {\n backgroundColor: 'transparent',\n },\n }}\n />\n );\n}\n"]}
@@ -0,0 +1,47 @@
1
+ import { type JSX, type ReactNode } from 'react';
2
+ interface StatCardProps {
3
+ /** Small line above the value, e.g. "Adapters" */
4
+ title: string;
5
+ /** The value itself - a string so that "--" can be shown while it is still unknown */
6
+ value: string;
7
+ /** Quiet line below, e.g. "6 active / 102 inactive" */
8
+ hint?: string;
9
+ /** Accent color: tints the icon square and can color the value */
10
+ color: string;
11
+ /** Color of the value, defaults to the normal text color */
12
+ valueColor?: string;
13
+ icon: JSX.Element;
14
+ /** Marker next to the value, e.g. the number of available updates */
15
+ chip?: {
16
+ label: string;
17
+ color: 'warning' | 'primary' | 'success' | 'error';
18
+ };
19
+ onClick?: () => void;
20
+ /** Overrides the flex basis - by default the card grows from 220px */
21
+ flex?: string;
22
+ }
23
+ /**
24
+ * A number with a title, an accented icon and a hint - the tile that a dashboard is built from.
25
+ *
26
+ * Kept here rather than in one GUI so that the admin, devices, javascript and the rest can show the
27
+ * same tile instead of each rebuilding its own.
28
+ */
29
+ export declare function StatCard(props: StatCardProps): JSX.Element;
30
+ interface CardTitleProps {
31
+ title: string;
32
+ /** Optional link on the right, e.g. "Show all" */
33
+ action?: {
34
+ text: string;
35
+ onClick: () => void;
36
+ };
37
+ }
38
+ /** Heading of a content card, with an optional action on the right */
39
+ export declare function CardTitle({ title, action }: CardTitleProps): JSX.Element;
40
+ interface InfoRowProps {
41
+ name: string;
42
+ /** A node, not only a string, so that a value can carry a chip or an icon */
43
+ value: ReactNode;
44
+ }
45
+ /** One line "name .......... value" inside a card */
46
+ export declare function InfoRow({ name, value }: InfoRowProps): JSX.Element;
47
+ export {};
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import { alpha, Box, Card, Chip, Link, Typography } from '@mui/material';
3
+ /**
4
+ * A number with a title, an accented icon and a hint - the tile that a dashboard is built from.
5
+ *
6
+ * Kept here rather than in one GUI so that the admin, devices, javascript and the rest can show the
7
+ * same tile instead of each rebuilding its own.
8
+ */
9
+ export function StatCard(props) {
10
+ return (React.createElement(Card, { sx: {
11
+ flex: props.flex || '1 1 220px',
12
+ p: 2.5,
13
+ cursor: props.onClick ? 'pointer' : undefined,
14
+ }, onClick: props.onClick },
15
+ React.createElement(Box, { sx: { display: 'flex', gap: 2, alignItems: 'flex-start' } },
16
+ React.createElement(Box, { sx: {
17
+ width: 40,
18
+ height: 40,
19
+ borderRadius: 2,
20
+ display: 'flex',
21
+ alignItems: 'center',
22
+ justifyContent: 'center',
23
+ backgroundColor: alpha(props.color, 0.16),
24
+ color: props.color,
25
+ flexShrink: 0,
26
+ } }, props.icon),
27
+ React.createElement(Box, { sx: { minWidth: 0 } },
28
+ React.createElement(Typography, { variant: "body2", color: "text.secondary" }, props.title),
29
+ React.createElement(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1 } },
30
+ React.createElement(Typography, { sx: { fontSize: 30, fontWeight: 700, color: props.valueColor, lineHeight: 1.2 } }, props.value),
31
+ props.chip ? (React.createElement(Chip, { size: "small", color: props.chip.color, label: props.chip.label })) : null))),
32
+ props.hint ? (React.createElement(Typography, { variant: "caption", color: "text.secondary", sx: { display: 'block', mt: 1.5 } }, props.hint)) : null));
33
+ }
34
+ /** Heading of a content card, with an optional action on the right */
35
+ export function CardTitle({ title, action }) {
36
+ return (React.createElement(Box, { sx: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 } },
37
+ React.createElement(Typography, { sx: { fontSize: '1rem', fontWeight: 600 } }, title),
38
+ action ? (React.createElement(Link, { component: "button", underline: "none", sx: { fontSize: '0.8125rem' }, onClick: action.onClick }, action.text)) : null));
39
+ }
40
+ /** One line "name .......... value" inside a card */
41
+ export function InfoRow({ name, value }) {
42
+ return (React.createElement(Box, { sx: { display: 'flex', justifyContent: 'space-between', gap: 2, py: 1 } },
43
+ React.createElement(Typography, { variant: "body2", color: "text.secondary" }, name),
44
+ React.createElement(Typography, { variant: "body2", sx: { fontWeight: 500, textAlign: 'right' } }, value)));
45
+ }
46
+ //# sourceMappingURL=StatCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatCard.js","sourceRoot":"./src/","sources":["Components/StatCard.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type JSX, type ReactNode } from 'react';\n\nimport { alpha, Box, Card, Chip, Link, Typography } from '@mui/material';\n\ninterface StatCardProps {\n /** Small line above the value, e.g. \"Adapters\" */\n title: string;\n /** The value itself - a string so that \"--\" can be shown while it is still unknown */\n value: string;\n /** Quiet line below, e.g. \"6 active / 102 inactive\" */\n hint?: string;\n /** Accent color: tints the icon square and can color the value */\n color: string;\n /** Color of the value, defaults to the normal text color */\n valueColor?: string;\n icon: JSX.Element;\n /** Marker next to the value, e.g. the number of available updates */\n chip?: { label: string; color: 'warning' | 'primary' | 'success' | 'error' };\n onClick?: () => void;\n /** Overrides the flex basis - by default the card grows from 220px */\n flex?: string;\n}\n\n/**\n * A number with a title, an accented icon and a hint - the tile that a dashboard is built from.\n *\n * Kept here rather than in one GUI so that the admin, devices, javascript and the rest can show the\n * same tile instead of each rebuilding its own.\n */\nexport function StatCard(props: StatCardProps): JSX.Element {\n return (\n <Card\n sx={{\n flex: props.flex || '1 1 220px',\n p: 2.5,\n cursor: props.onClick ? 'pointer' : undefined,\n }}\n onClick={props.onClick}\n >\n <Box sx={{ display: 'flex', gap: 2, alignItems: 'flex-start' }}>\n <Box\n sx={{\n width: 40,\n height: 40,\n borderRadius: 2,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: alpha(props.color, 0.16),\n color: props.color,\n flexShrink: 0,\n }}\n >\n {props.icon}\n </Box>\n <Box sx={{ minWidth: 0 }}>\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n >\n {props.title}\n </Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <Typography sx={{ fontSize: 30, fontWeight: 700, color: props.valueColor, lineHeight: 1.2 }}>\n {props.value}\n </Typography>\n {props.chip ? (\n <Chip\n size=\"small\"\n color={props.chip.color}\n label={props.chip.label}\n />\n ) : null}\n </Box>\n </Box>\n </Box>\n {props.hint ? (\n <Typography\n variant=\"caption\"\n color=\"text.secondary\"\n sx={{ display: 'block', mt: 1.5 }}\n >\n {props.hint}\n </Typography>\n ) : null}\n </Card>\n );\n}\n\ninterface CardTitleProps {\n title: string;\n /** Optional link on the right, e.g. \"Show all\" */\n action?: { text: string; onClick: () => void };\n}\n\n/** Heading of a content card, with an optional action on the right */\nexport function CardTitle({ title, action }: CardTitleProps): JSX.Element {\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}>\n <Typography sx={{ fontSize: '1rem', fontWeight: 600 }}>{title}</Typography>\n {action ? (\n <Link\n component=\"button\"\n underline=\"none\"\n sx={{ fontSize: '0.8125rem' }}\n onClick={action.onClick}\n >\n {action.text}\n </Link>\n ) : null}\n </Box>\n );\n}\n\ninterface InfoRowProps {\n name: string;\n /** A node, not only a string, so that a value can carry a chip or an icon */\n value: ReactNode;\n}\n\n/** One line \"name .......... value\" inside a card */\nexport function InfoRow({ name, value }: InfoRowProps): JSX.Element {\n return (\n <Box sx={{ display: 'flex', justifyContent: 'space-between', gap: 2, py: 1 }}>\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n >\n {name}\n </Typography>\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 500, textAlign: 'right' }}\n >\n {value}\n </Typography>\n </Box>\n );\n}\n"]}
@@ -149,27 +149,14 @@ export function getModernTheme(name, type) {
149
149
  },
150
150
  };
151
151
  const components = {
152
+ // Only takes effect in GUIs that actually render `<CssBaseline />` - the admin does not.
153
+ // The scrollbars used to be defined here too and were therefore dead in most GUIs; they now
154
+ // live in the `ScrollbarStyles` component, which works without CssBaseline.
152
155
  MuiCssBaseline: {
153
156
  styleOverrides: {
154
157
  body: {
155
158
  backgroundColor: t.background,
156
159
  color: t.textPrimary,
157
- scrollbarColor: `${t.border} transparent`,
158
- },
159
- '*::-webkit-scrollbar': {
160
- width: 10,
161
- height: 10,
162
- },
163
- '*::-webkit-scrollbar-track': {
164
- backgroundColor: 'transparent',
165
- },
166
- '*::-webkit-scrollbar-thumb': {
167
- backgroundColor: t.border,
168
- borderRadius: 8,
169
- border: `2px solid ${t.background}`,
170
- },
171
- '*::-webkit-scrollbar-thumb:hover': {
172
- backgroundColor: t.textDisabled,
173
160
  },
174
161
  },
175
162
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeModern.js","sourceRoot":"./src/","sources":["ThemeModern.ts"],"names":[],"mappings":"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","sourcesContent":["import { alpha, type Shadows } from '@mui/material/styles';\n\nimport type { ThemeName, ThemeType } from './types';\nimport type { ThemeOptions } from './Theme';\n\n/**\n * Flat design tokens of the \"modern\" themes.\n * Everything that is used more than once in the theme definition below is listed here,\n * so a new variation can be created by copying this object only.\n */\nexport interface ModernTokens {\n /** Background of the page (behind the cards) */\n background: string;\n /** Background of cards, tables and dialogs */\n paper: string;\n /** Background of the left navigation */\n sidebar: string;\n /** Background of menus, popovers and dialogs (one step above `paper`) */\n elevated: string;\n /** Color of the dividers inside of the cards (table rows, lists) */\n border: string;\n /** Border of the cards. In the dark theme the cards are separated by the background, not by a border */\n cardBorder: string;\n textPrimary: string;\n textSecondary: string;\n textDisabled: string;\n primary: string;\n primaryDark: string;\n primaryLight: string;\n secondary: string;\n /** Background of the selected navigation item */\n gradient: string;\n /** Background of the selected navigation item if hovered */\n gradientHover: string;\n success: string;\n warning: string;\n error: string;\n info: string;\n /** Color of the expert-mode elements */\n expert: string;\n /** Color of the not acknowledged values in the object browser */\n nonAck: string;\n /** Background of the hovered rows and list items */\n hover: string;\n /** Background of the selected rows and list items */\n selected: string;\n}\n\nexport const MODERN_DARK: ModernTokens = {\n background: '#0A121D',\n paper: '#121A26',\n sidebar: '#141C29',\n elevated: '#1A2434',\n border: '#1E2837',\n cardBorder: '#1B2533',\n textPrimary: '#E8EDF5',\n textSecondary: '#8B97A8',\n textDisabled: '#586576',\n primary: '#137BF8',\n primaryDark: '#0B62D6',\n primaryLight: '#4B9BFA',\n secondary: '#436A93',\n gradient: 'linear-gradient(90deg, #2E93F9 0%, #0B76F5 100%)',\n gradientHover: 'linear-gradient(90deg, #48A1FA 0%, #1B84F8 100%)',\n success: '#2EA043',\n warning: '#E8A33D',\n error: '#E5534B',\n info: '#3FA9F5',\n expert: '#2EA043',\n nonAck: '#E5534B',\n hover: 'rgba(255, 255, 255, 0.05)',\n selected: 'rgba(19, 123, 248, 0.16)',\n};\n\nexport const MODERN_LIGHT: ModernTokens = {\n background: '#F4F7FB',\n paper: '#FFFFFF',\n sidebar: '#FFFFFF',\n elevated: '#FFFFFF',\n border: '#E2E8F0',\n cardBorder: '#E2E8F0',\n textPrimary: '#101827',\n textSecondary: '#5B6878',\n textDisabled: '#98A4B3',\n primary: '#137BF8',\n primaryDark: '#0B62D6',\n primaryLight: '#4B9BFA',\n secondary: '#164477',\n gradient: 'linear-gradient(90deg, #2E93F9 0%, #0B76F5 100%)',\n gradientHover: 'linear-gradient(90deg, #48A1FA 0%, #1B84F8 100%)',\n success: '#1E8E3E',\n warning: '#C77700',\n error: '#D93025',\n info: '#0B72D9',\n expert: '#1E8E3E',\n nonAck: '#D93025',\n hover: 'rgba(16, 24, 39, 0.04)',\n selected: 'rgba(19, 123, 248, 0.10)',\n};\n\nconst FONT_FAMILY = '\"Inter\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif';\n/** Height of the app bar. Used for `MuiToolbar` and for `mixins.toolbar` - the two must not drift apart */\nconst TOOLBAR_HEIGHT = 52;\n\n/**\n * Build the 25 MUI shadows. The default MUI shadows are too heavy for this design,\n * so they are replaced by a soft two-layer shadow.\n */\nfunction buildShadows(type: ThemeType): Shadows {\n const rgb = type === 'dark' ? '0, 0, 0' : '15, 23, 42';\n const nearOpacity = type === 'dark' ? 0.24 : 0.04;\n const farOpacity = type === 'dark' ? 0.36 : 0.08;\n\n const shadows: string[] = ['none'];\n for (let i = 1; i <= 24; i++) {\n const y = Math.round(1 + i * 0.7);\n const blur = Math.round(2 + i * 1.6);\n shadows.push(\n `0px ${Math.max(1, Math.round(y / 2))}px ${Math.max(2, Math.round(blur / 2))}px rgba(${rgb}, ${nearOpacity}), ` +\n `0px ${y}px ${blur}px rgba(${rgb}, ${farOpacity})`,\n );\n }\n\n return shadows as unknown as Shadows;\n}\n\n/**\n * Options and component overrides of the \"modern\" themes (`modernDark` and `modernLight`).\n */\nexport function getModernTheme(\n name: ThemeName,\n type: ThemeType,\n): { options: ThemeOptions; components: Record<string, any> } {\n const t: ModernTokens = type === 'dark' ? MODERN_DARK : MODERN_LIGHT;\n\n const options: ThemeOptions = {\n name,\n shape: { borderRadius: 10 },\n // The app bar is lower than in the MUI default. `mixins.toolbar` has to say so too: consumers\n // (e.g. the admin) take the top margin of their content from it, and with MUI's 64px they\n // would leave a gap below the bar.\n mixins: {\n toolbar: {\n minHeight: TOOLBAR_HEIGHT,\n '@media (min-width:0px) and (orientation: landscape)': { minHeight: TOOLBAR_HEIGHT },\n '@media (min-width:600px)': { minHeight: TOOLBAR_HEIGHT },\n },\n },\n shadows: buildShadows(type),\n typography: {\n fontFamily: FONT_FAMILY,\n h1: { fontWeight: 700, letterSpacing: '-0.02em' },\n h2: { fontWeight: 700, letterSpacing: '-0.02em' },\n h3: { fontWeight: 600, letterSpacing: '-0.02em' },\n h4: { fontWeight: 600, letterSpacing: '-0.01em' },\n h5: { fontWeight: 600 },\n h6: { fontWeight: 600, fontSize: '1.05rem' },\n subtitle1: { fontWeight: 500 },\n subtitle2: { fontWeight: 500 },\n body2: { fontSize: '0.875rem' },\n button: { fontWeight: 500, textTransform: 'none', letterSpacing: 0 },\n caption: { fontSize: '0.75rem' },\n },\n palette: {\n mode: type,\n background: {\n default: t.background,\n paper: t.paper,\n },\n primary: {\n main: t.primary,\n dark: t.primaryDark,\n light: t.primaryLight,\n contrastText: '#FFFFFF',\n },\n secondary: {\n main: t.secondary,\n contrastText: '#FFFFFF',\n },\n success: { main: t.success },\n warning: { main: t.warning },\n error: { main: t.error },\n info: { main: t.info },\n divider: t.border,\n text: {\n primary: t.textPrimary,\n secondary: t.textSecondary,\n disabled: t.textDisabled,\n },\n action: {\n hover: t.hover,\n hoverOpacity: type === 'dark' ? 0.06 : 0.04,\n selected: t.selected,\n selectedOpacity: type === 'dark' ? 0.16 : 0.1,\n },\n expert: t.expert,\n nonAck: t.nonAck,\n },\n toolbar: {\n height: 52,\n },\n saveToolbar: {\n background: t.primary,\n button: {\n borderRadius: 8,\n height: 34,\n },\n },\n };\n\n const components: Record<string, any> = {\n MuiCssBaseline: {\n styleOverrides: {\n body: {\n backgroundColor: t.background,\n color: t.textPrimary,\n scrollbarColor: `${t.border} transparent`,\n },\n '*::-webkit-scrollbar': {\n width: 10,\n height: 10,\n },\n '*::-webkit-scrollbar-track': {\n backgroundColor: 'transparent',\n },\n '*::-webkit-scrollbar-thumb': {\n backgroundColor: t.border,\n borderRadius: 8,\n border: `2px solid ${t.background}`,\n },\n '*::-webkit-scrollbar-thumb:hover': {\n backgroundColor: t.textDisabled,\n },\n },\n },\n MuiPaper: {\n defaultProps: {\n elevation: 0,\n },\n styleOverrides: {\n root: {\n // remove the MUI overlay gradient of the dark mode - the colors are defined explicitly\n backgroundImage: 'none',\n backgroundColor: t.paper,\n },\n outlined: {\n border: `1px solid ${t.border}`,\n },\n rounded: {\n borderRadius: 12,\n },\n },\n },\n MuiCard: {\n defaultProps: {\n elevation: 0,\n },\n styleOverrides: {\n root: {\n backgroundColor: t.paper,\n border: `1px solid ${t.cardBorder}`,\n borderRadius: 12,\n backgroundImage: 'none',\n boxShadow: type === 'dark' ? '0 1px 3px rgba(0, 0, 0, 0.4)' : '0 1px 2px rgba(15, 23, 42, 0.05)',\n },\n },\n },\n MuiCardHeader: {\n styleOverrides: {\n root: {\n padding: '16px 20px 8px 20px',\n },\n title: {\n fontSize: '1rem',\n fontWeight: 600,\n },\n subheader: {\n fontSize: '0.8125rem',\n color: t.textSecondary,\n },\n },\n },\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: 20,\n '&:last-child': { paddingBottom: 20 },\n },\n },\n },\n MuiAppBar: {\n defaultProps: {\n elevation: 0,\n color: 'default',\n },\n styleOverrides: {\n root: {\n backgroundColor: t.paper,\n backgroundImage: 'none',\n color: t.textPrimary,\n // Drawn inside instead of as a border: a real border would add a pixel to the bar\n // height, and the content below positions itself by `mixins.toolbar`.\n boxShadow: `inset 0 -1px 0 ${t.border}`,\n },\n colorDefault: {\n backgroundColor: t.paper,\n },\n colorPrimary: {\n backgroundColor: t.paper,\n color: t.textPrimary,\n },\n },\n },\n MuiToolbar: {\n styleOverrides: {\n root: {\n minHeight: TOOLBAR_HEIGHT,\n '@media (min-width: 600px)': { minHeight: TOOLBAR_HEIGHT },\n },\n },\n },\n MuiDrawer: {\n styleOverrides: {\n paper: {\n backgroundColor: t.sidebar,\n backgroundImage: 'none',\n borderRight: `1px solid ${t.border}`,\n },\n },\n },\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: t.border,\n },\n },\n },\n MuiListItemButton: {\n styleOverrides: {\n root: {\n borderRadius: 8,\n paddingTop: 7,\n paddingBottom: 7,\n '&:hover': {\n backgroundColor: t.hover,\n },\n '&.Mui-selected': {\n // the active navigation item is filled with a gradient\n background: t.gradient,\n color: '#FFFFFF',\n boxShadow: `0 2px 8px ${alpha(t.primary, type === 'dark' ? 0.35 : 0.25)}`,\n '& .MuiListItemIcon-root': { color: '#FFFFFF' },\n '&:hover': { background: t.gradientHover },\n },\n },\n },\n },\n MuiListItemIcon: {\n styleOverrides: {\n root: {\n color: t.textSecondary,\n minWidth: 36,\n },\n },\n },\n MuiListItemText: {\n styleOverrides: {\n primary: {\n fontSize: '0.9rem',\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n paper: {\n backgroundColor: t.elevated,\n backgroundImage: 'none',\n border: `1px solid ${t.border}`,\n borderRadius: 10,\n },\n list: {\n padding: 6,\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n fontSize: '0.875rem',\n '&.Mui-selected': {\n backgroundColor: t.selected,\n },\n },\n },\n },\n MuiPopover: {\n styleOverrides: {\n paper: {\n backgroundColor: t.elevated,\n backgroundImage: 'none',\n border: `1px solid ${t.border}`,\n borderRadius: 10,\n },\n },\n },\n MuiDialog: {\n styleOverrides: {\n paper: {\n backgroundColor: t.elevated,\n backgroundImage: 'none',\n border: `1px solid ${t.border}`,\n borderRadius: 14,\n },\n },\n },\n MuiDialogTitle: {\n styleOverrides: {\n root: {\n fontSize: '1.05rem',\n fontWeight: 600,\n },\n },\n },\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: 8,\n textTransform: 'none',\n fontWeight: 500,\n boxShadow: 'none',\n '&:hover': { boxShadow: 'none' },\n },\n sizeSmall: {\n borderRadius: 6,\n },\n outlined: {\n borderColor: t.border,\n },\n },\n },\n MuiIconButton: {\n styleOverrides: {\n root: {\n borderRadius: 8,\n color: t.textSecondary,\n '&:hover': { backgroundColor: t.hover, color: t.textPrimary },\n },\n },\n },\n MuiToggleButton: {\n styleOverrides: {\n root: {\n borderRadius: 8,\n borderColor: t.border,\n textTransform: 'none',\n '&.Mui-selected': {\n backgroundColor: t.selected,\n color: t.primaryLight,\n },\n },\n },\n },\n MuiChip: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n fontWeight: 500,\n fontSize: '0.75rem',\n },\n sizeSmall: {\n height: 22,\n },\n outlined: {\n borderColor: t.border,\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n backgroundColor: type === 'dark' ? '#242C37' : '#1F2937',\n border: type === 'dark' ? `1px solid ${t.border}` : undefined,\n borderRadius: 8,\n fontSize: '0.75rem',\n padding: '6px 10px',\n },\n arrow: {\n color: type === 'dark' ? '#242C37' : '#1F2937',\n },\n },\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n borderRadius: 8,\n backgroundColor: type === 'dark' ? alpha('#FFFFFF', 0.03) : alpha('#0F172A', 0.02),\n '& .MuiOutlinedInput-notchedOutline': { borderColor: t.border },\n '&:hover .MuiOutlinedInput-notchedOutline': { borderColor: t.textDisabled },\n },\n input: {\n padding: '10px 12px',\n },\n },\n },\n MuiInputBase: {\n styleOverrides: {\n root: {\n fontSize: '0.875rem',\n },\n },\n },\n MuiInputLabel: {\n styleOverrides: {\n root: {\n color: t.textSecondary,\n },\n },\n },\n MuiSelect: {\n styleOverrides: {\n select: {\n fontSize: '0.875rem',\n },\n },\n },\n MuiTabs: {\n styleOverrides: {\n root: {\n minHeight: 42,\n borderBottom: `1px solid ${t.border}`,\n },\n indicator: {\n height: 2,\n borderRadius: 2,\n },\n },\n },\n MuiTab: {\n styleOverrides: {\n root: {\n minHeight: 42,\n textTransform: 'none',\n fontWeight: 500,\n fontSize: '0.8125rem',\n letterSpacing: '0.02em',\n color: t.textSecondary,\n '&.Mui-selected': { color: t.primaryLight },\n },\n },\n },\n MuiTable: {\n styleOverrides: {\n root: {\n borderCollapse: 'separate',\n },\n },\n },\n MuiTableCell: {\n styleOverrides: {\n root: {\n borderBottom: `1px solid ${t.border}`,\n fontSize: '0.8125rem',\n padding: '10px 14px',\n },\n head: {\n color: t.textSecondary,\n fontWeight: 600,\n fontSize: '0.75rem',\n backgroundColor: t.paper,\n },\n },\n },\n MuiTableRow: {\n styleOverrides: {\n root: {\n '&:hover': { backgroundColor: t.hover },\n '&.Mui-selected': {\n backgroundColor: t.selected,\n '&:hover': { backgroundColor: t.selected },\n },\n },\n },\n },\n MuiLinearProgress: {\n styleOverrides: {\n root: {\n height: 6,\n borderRadius: 4,\n backgroundColor: type === 'dark' ? alpha('#FFFFFF', 0.08) : alpha('#0F172A', 0.08),\n },\n bar: {\n borderRadius: 4,\n },\n },\n },\n MuiSwitch: {\n styleOverrides: {\n track: {\n borderRadius: 12,\n },\n },\n },\n MuiCheckbox: {\n styleOverrides: {\n root: {\n color: t.textDisabled,\n },\n },\n },\n MuiAlert: {\n styleOverrides: {\n root: {\n borderRadius: 10,\n border: `1px solid ${t.border}`,\n },\n },\n },\n MuiAccordion: {\n styleOverrides: {\n root: {\n backgroundColor: t.paper,\n backgroundImage: 'none',\n border: `1px solid ${t.border}`,\n borderRadius: 10,\n '&::before': { display: 'none' },\n },\n },\n },\n MuiLink: {\n styleOverrides: {\n root: {\n color: t.primaryLight,\n textDecorationColor: alpha(t.primaryLight, 0.4),\n transition: 'color .2s ease',\n '&:hover': { color: t.primary },\n },\n },\n },\n };\n\n return { options, components };\n}\n"]}
1
+ {"version":3,"file":"ThemeModern.js","sourceRoot":"./src/","sources":["ThemeModern.ts"],"names":[],"mappings":"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","sourcesContent":["import { alpha, type Shadows } from '@mui/material/styles';\n\nimport type { ThemeName, ThemeType } from './types';\nimport type { ThemeOptions } from './Theme';\n\n/**\n * Flat design tokens of the \"modern\" themes.\n * Everything that is used more than once in the theme definition below is listed here,\n * so a new variation can be created by copying this object only.\n */\nexport interface ModernTokens {\n /** Background of the page (behind the cards) */\n background: string;\n /** Background of cards, tables and dialogs */\n paper: string;\n /** Background of the left navigation */\n sidebar: string;\n /** Background of menus, popovers and dialogs (one step above `paper`) */\n elevated: string;\n /** Color of the dividers inside of the cards (table rows, lists) */\n border: string;\n /** Border of the cards. In the dark theme the cards are separated by the background, not by a border */\n cardBorder: string;\n textPrimary: string;\n textSecondary: string;\n textDisabled: string;\n primary: string;\n primaryDark: string;\n primaryLight: string;\n secondary: string;\n /** Background of the selected navigation item */\n gradient: string;\n /** Background of the selected navigation item if hovered */\n gradientHover: string;\n success: string;\n warning: string;\n error: string;\n info: string;\n /** Color of the expert-mode elements */\n expert: string;\n /** Color of the not acknowledged values in the object browser */\n nonAck: string;\n /** Background of the hovered rows and list items */\n hover: string;\n /** Background of the selected rows and list items */\n selected: string;\n}\n\nexport const MODERN_DARK: ModernTokens = {\n background: '#0A121D',\n paper: '#121A26',\n sidebar: '#141C29',\n elevated: '#1A2434',\n border: '#1E2837',\n cardBorder: '#1B2533',\n textPrimary: '#E8EDF5',\n textSecondary: '#8B97A8',\n textDisabled: '#586576',\n primary: '#137BF8',\n primaryDark: '#0B62D6',\n primaryLight: '#4B9BFA',\n secondary: '#436A93',\n gradient: 'linear-gradient(90deg, #2E93F9 0%, #0B76F5 100%)',\n gradientHover: 'linear-gradient(90deg, #48A1FA 0%, #1B84F8 100%)',\n success: '#2EA043',\n warning: '#E8A33D',\n error: '#E5534B',\n info: '#3FA9F5',\n expert: '#2EA043',\n nonAck: '#E5534B',\n hover: 'rgba(255, 255, 255, 0.05)',\n selected: 'rgba(19, 123, 248, 0.16)',\n};\n\nexport const MODERN_LIGHT: ModernTokens = {\n background: '#F4F7FB',\n paper: '#FFFFFF',\n sidebar: '#FFFFFF',\n elevated: '#FFFFFF',\n border: '#E2E8F0',\n cardBorder: '#E2E8F0',\n textPrimary: '#101827',\n textSecondary: '#5B6878',\n textDisabled: '#98A4B3',\n primary: '#137BF8',\n primaryDark: '#0B62D6',\n primaryLight: '#4B9BFA',\n secondary: '#164477',\n gradient: 'linear-gradient(90deg, #2E93F9 0%, #0B76F5 100%)',\n gradientHover: 'linear-gradient(90deg, #48A1FA 0%, #1B84F8 100%)',\n success: '#1E8E3E',\n warning: '#C77700',\n error: '#D93025',\n info: '#0B72D9',\n expert: '#1E8E3E',\n nonAck: '#D93025',\n hover: 'rgba(16, 24, 39, 0.04)',\n selected: 'rgba(19, 123, 248, 0.10)',\n};\n\nconst FONT_FAMILY = '\"Inter\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif';\n/** Height of the app bar. Used for `MuiToolbar` and for `mixins.toolbar` - the two must not drift apart */\nconst TOOLBAR_HEIGHT = 52;\n\n/**\n * Build the 25 MUI shadows. The default MUI shadows are too heavy for this design,\n * so they are replaced by a soft two-layer shadow.\n */\nfunction buildShadows(type: ThemeType): Shadows {\n const rgb = type === 'dark' ? '0, 0, 0' : '15, 23, 42';\n const nearOpacity = type === 'dark' ? 0.24 : 0.04;\n const farOpacity = type === 'dark' ? 0.36 : 0.08;\n\n const shadows: string[] = ['none'];\n for (let i = 1; i <= 24; i++) {\n const y = Math.round(1 + i * 0.7);\n const blur = Math.round(2 + i * 1.6);\n shadows.push(\n `0px ${Math.max(1, Math.round(y / 2))}px ${Math.max(2, Math.round(blur / 2))}px rgba(${rgb}, ${nearOpacity}), ` +\n `0px ${y}px ${blur}px rgba(${rgb}, ${farOpacity})`,\n );\n }\n\n return shadows as unknown as Shadows;\n}\n\n/**\n * Options and component overrides of the \"modern\" themes (`modernDark` and `modernLight`).\n */\nexport function getModernTheme(\n name: ThemeName,\n type: ThemeType,\n): { options: ThemeOptions; components: Record<string, any> } {\n const t: ModernTokens = type === 'dark' ? MODERN_DARK : MODERN_LIGHT;\n\n const options: ThemeOptions = {\n name,\n shape: { borderRadius: 10 },\n // The app bar is lower than in the MUI default. `mixins.toolbar` has to say so too: consumers\n // (e.g. the admin) take the top margin of their content from it, and with MUI's 64px they\n // would leave a gap below the bar.\n mixins: {\n toolbar: {\n minHeight: TOOLBAR_HEIGHT,\n '@media (min-width:0px) and (orientation: landscape)': { minHeight: TOOLBAR_HEIGHT },\n '@media (min-width:600px)': { minHeight: TOOLBAR_HEIGHT },\n },\n },\n shadows: buildShadows(type),\n typography: {\n fontFamily: FONT_FAMILY,\n h1: { fontWeight: 700, letterSpacing: '-0.02em' },\n h2: { fontWeight: 700, letterSpacing: '-0.02em' },\n h3: { fontWeight: 600, letterSpacing: '-0.02em' },\n h4: { fontWeight: 600, letterSpacing: '-0.01em' },\n h5: { fontWeight: 600 },\n h6: { fontWeight: 600, fontSize: '1.05rem' },\n subtitle1: { fontWeight: 500 },\n subtitle2: { fontWeight: 500 },\n body2: { fontSize: '0.875rem' },\n button: { fontWeight: 500, textTransform: 'none', letterSpacing: 0 },\n caption: { fontSize: '0.75rem' },\n },\n palette: {\n mode: type,\n background: {\n default: t.background,\n paper: t.paper,\n },\n primary: {\n main: t.primary,\n dark: t.primaryDark,\n light: t.primaryLight,\n contrastText: '#FFFFFF',\n },\n secondary: {\n main: t.secondary,\n contrastText: '#FFFFFF',\n },\n success: { main: t.success },\n warning: { main: t.warning },\n error: { main: t.error },\n info: { main: t.info },\n divider: t.border,\n text: {\n primary: t.textPrimary,\n secondary: t.textSecondary,\n disabled: t.textDisabled,\n },\n action: {\n hover: t.hover,\n hoverOpacity: type === 'dark' ? 0.06 : 0.04,\n selected: t.selected,\n selectedOpacity: type === 'dark' ? 0.16 : 0.1,\n },\n expert: t.expert,\n nonAck: t.nonAck,\n },\n toolbar: {\n height: 52,\n },\n saveToolbar: {\n background: t.primary,\n button: {\n borderRadius: 8,\n height: 34,\n },\n },\n };\n\n const components: Record<string, any> = {\n // Only takes effect in GUIs that actually render `<CssBaseline />` - the admin does not.\n // The scrollbars used to be defined here too and were therefore dead in most GUIs; they now\n // live in the `ScrollbarStyles` component, which works without CssBaseline.\n MuiCssBaseline: {\n styleOverrides: {\n body: {\n backgroundColor: t.background,\n color: t.textPrimary,\n },\n },\n },\n MuiPaper: {\n defaultProps: {\n elevation: 0,\n },\n styleOverrides: {\n root: {\n // remove the MUI overlay gradient of the dark mode - the colors are defined explicitly\n backgroundImage: 'none',\n backgroundColor: t.paper,\n },\n outlined: {\n border: `1px solid ${t.border}`,\n },\n rounded: {\n borderRadius: 12,\n },\n },\n },\n MuiCard: {\n defaultProps: {\n elevation: 0,\n },\n styleOverrides: {\n root: {\n backgroundColor: t.paper,\n border: `1px solid ${t.cardBorder}`,\n borderRadius: 12,\n backgroundImage: 'none',\n boxShadow: type === 'dark' ? '0 1px 3px rgba(0, 0, 0, 0.4)' : '0 1px 2px rgba(15, 23, 42, 0.05)',\n },\n },\n },\n MuiCardHeader: {\n styleOverrides: {\n root: {\n padding: '16px 20px 8px 20px',\n },\n title: {\n fontSize: '1rem',\n fontWeight: 600,\n },\n subheader: {\n fontSize: '0.8125rem',\n color: t.textSecondary,\n },\n },\n },\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: 20,\n '&:last-child': { paddingBottom: 20 },\n },\n },\n },\n MuiAppBar: {\n defaultProps: {\n elevation: 0,\n color: 'default',\n },\n styleOverrides: {\n root: {\n backgroundColor: t.paper,\n backgroundImage: 'none',\n color: t.textPrimary,\n // Drawn inside instead of as a border: a real border would add a pixel to the bar\n // height, and the content below positions itself by `mixins.toolbar`.\n boxShadow: `inset 0 -1px 0 ${t.border}`,\n },\n colorDefault: {\n backgroundColor: t.paper,\n },\n colorPrimary: {\n backgroundColor: t.paper,\n color: t.textPrimary,\n },\n },\n },\n MuiToolbar: {\n styleOverrides: {\n root: {\n minHeight: TOOLBAR_HEIGHT,\n '@media (min-width: 600px)': { minHeight: TOOLBAR_HEIGHT },\n },\n },\n },\n MuiDrawer: {\n styleOverrides: {\n paper: {\n backgroundColor: t.sidebar,\n backgroundImage: 'none',\n borderRight: `1px solid ${t.border}`,\n },\n },\n },\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: t.border,\n },\n },\n },\n MuiListItemButton: {\n styleOverrides: {\n root: {\n borderRadius: 8,\n paddingTop: 7,\n paddingBottom: 7,\n '&:hover': {\n backgroundColor: t.hover,\n },\n '&.Mui-selected': {\n // the active navigation item is filled with a gradient\n background: t.gradient,\n color: '#FFFFFF',\n boxShadow: `0 2px 8px ${alpha(t.primary, type === 'dark' ? 0.35 : 0.25)}`,\n '& .MuiListItemIcon-root': { color: '#FFFFFF' },\n '&:hover': { background: t.gradientHover },\n },\n },\n },\n },\n MuiListItemIcon: {\n styleOverrides: {\n root: {\n color: t.textSecondary,\n minWidth: 36,\n },\n },\n },\n MuiListItemText: {\n styleOverrides: {\n primary: {\n fontSize: '0.9rem',\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n paper: {\n backgroundColor: t.elevated,\n backgroundImage: 'none',\n border: `1px solid ${t.border}`,\n borderRadius: 10,\n },\n list: {\n padding: 6,\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n fontSize: '0.875rem',\n '&.Mui-selected': {\n backgroundColor: t.selected,\n },\n },\n },\n },\n MuiPopover: {\n styleOverrides: {\n paper: {\n backgroundColor: t.elevated,\n backgroundImage: 'none',\n border: `1px solid ${t.border}`,\n borderRadius: 10,\n },\n },\n },\n MuiDialog: {\n styleOverrides: {\n paper: {\n backgroundColor: t.elevated,\n backgroundImage: 'none',\n border: `1px solid ${t.border}`,\n borderRadius: 14,\n },\n },\n },\n MuiDialogTitle: {\n styleOverrides: {\n root: {\n fontSize: '1.05rem',\n fontWeight: 600,\n },\n },\n },\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: 8,\n textTransform: 'none',\n fontWeight: 500,\n boxShadow: 'none',\n '&:hover': { boxShadow: 'none' },\n },\n sizeSmall: {\n borderRadius: 6,\n },\n outlined: {\n borderColor: t.border,\n },\n },\n },\n MuiIconButton: {\n styleOverrides: {\n root: {\n borderRadius: 8,\n color: t.textSecondary,\n '&:hover': { backgroundColor: t.hover, color: t.textPrimary },\n },\n },\n },\n MuiToggleButton: {\n styleOverrides: {\n root: {\n borderRadius: 8,\n borderColor: t.border,\n textTransform: 'none',\n '&.Mui-selected': {\n backgroundColor: t.selected,\n color: t.primaryLight,\n },\n },\n },\n },\n MuiChip: {\n styleOverrides: {\n root: {\n borderRadius: 6,\n fontWeight: 500,\n fontSize: '0.75rem',\n },\n sizeSmall: {\n height: 22,\n },\n outlined: {\n borderColor: t.border,\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n backgroundColor: type === 'dark' ? '#242C37' : '#1F2937',\n border: type === 'dark' ? `1px solid ${t.border}` : undefined,\n borderRadius: 8,\n fontSize: '0.75rem',\n padding: '6px 10px',\n },\n arrow: {\n color: type === 'dark' ? '#242C37' : '#1F2937',\n },\n },\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n borderRadius: 8,\n backgroundColor: type === 'dark' ? alpha('#FFFFFF', 0.03) : alpha('#0F172A', 0.02),\n '& .MuiOutlinedInput-notchedOutline': { borderColor: t.border },\n '&:hover .MuiOutlinedInput-notchedOutline': { borderColor: t.textDisabled },\n },\n input: {\n padding: '10px 12px',\n },\n },\n },\n MuiInputBase: {\n styleOverrides: {\n root: {\n fontSize: '0.875rem',\n },\n },\n },\n MuiInputLabel: {\n styleOverrides: {\n root: {\n color: t.textSecondary,\n },\n },\n },\n MuiSelect: {\n styleOverrides: {\n select: {\n fontSize: '0.875rem',\n },\n },\n },\n MuiTabs: {\n styleOverrides: {\n root: {\n minHeight: 42,\n borderBottom: `1px solid ${t.border}`,\n },\n indicator: {\n height: 2,\n borderRadius: 2,\n },\n },\n },\n MuiTab: {\n styleOverrides: {\n root: {\n minHeight: 42,\n textTransform: 'none',\n fontWeight: 500,\n fontSize: '0.8125rem',\n letterSpacing: '0.02em',\n color: t.textSecondary,\n '&.Mui-selected': { color: t.primaryLight },\n },\n },\n },\n MuiTable: {\n styleOverrides: {\n root: {\n borderCollapse: 'separate',\n },\n },\n },\n MuiTableCell: {\n styleOverrides: {\n root: {\n borderBottom: `1px solid ${t.border}`,\n fontSize: '0.8125rem',\n padding: '10px 14px',\n },\n head: {\n color: t.textSecondary,\n fontWeight: 600,\n fontSize: '0.75rem',\n backgroundColor: t.paper,\n },\n },\n },\n MuiTableRow: {\n styleOverrides: {\n root: {\n '&:hover': { backgroundColor: t.hover },\n '&.Mui-selected': {\n backgroundColor: t.selected,\n '&:hover': { backgroundColor: t.selected },\n },\n },\n },\n },\n MuiLinearProgress: {\n styleOverrides: {\n root: {\n height: 6,\n borderRadius: 4,\n backgroundColor: type === 'dark' ? alpha('#FFFFFF', 0.08) : alpha('#0F172A', 0.08),\n },\n bar: {\n borderRadius: 4,\n },\n },\n },\n MuiSwitch: {\n styleOverrides: {\n track: {\n borderRadius: 12,\n },\n },\n },\n MuiCheckbox: {\n styleOverrides: {\n root: {\n color: t.textDisabled,\n },\n },\n },\n MuiAlert: {\n styleOverrides: {\n root: {\n borderRadius: 10,\n border: `1px solid ${t.border}`,\n },\n },\n },\n MuiAccordion: {\n styleOverrides: {\n root: {\n backgroundColor: t.paper,\n backgroundImage: 'none',\n border: `1px solid ${t.border}`,\n borderRadius: 10,\n '&::before': { display: 'none' },\n },\n },\n },\n MuiLink: {\n styleOverrides: {\n root: {\n color: t.primaryLight,\n textDecorationColor: alpha(t.primaryLight, 0.4),\n transition: 'color .2s ease',\n '&:hover': { color: t.primary },\n },\n },\n },\n };\n\n return { options, components };\n}\n"]}
package/build/index.css CHANGED
@@ -21,21 +21,45 @@ body {
21
21
  overflow: hidden;
22
22
  }
23
23
 
24
- /* scrollbar */
25
- ::-webkit-scrollbar-track {
26
- background-color: #ccc;
27
- border-radius: 5px;
24
+ /*
25
+ * Scrollbars.
26
+ *
27
+ * These are only the fallback for the moment before React has mounted. The real colors come from
28
+ * the theme through the `ScrollbarStyles` component, which sets the two custom properties on
29
+ * `:root` - that is more specific than the `html` below and therefore always wins.
30
+ *
31
+ * The previous fixed values (#ccc track, #575757 thumb) looked wrong on every dark theme.
32
+ */
33
+ html {
34
+ --iob-scrollbar-thumb: rgba(128, 128, 128, 0.5);
35
+ --iob-scrollbar-thumb-hover: rgba(128, 128, 128, 0.8);
36
+ }
37
+
38
+ * {
39
+ scrollbar-width: thin;
40
+ scrollbar-color: var(--iob-scrollbar-thumb) transparent;
28
41
  }
29
42
 
30
43
  ::-webkit-scrollbar {
31
- width: 5px;
32
- height: 5px;
33
- background-color: #ccc;
44
+ width: 10px;
45
+ height: 10px;
34
46
  }
35
47
 
36
48
  ::-webkit-scrollbar-thumb {
37
- background-color: #575757;
38
- border-radius: 5px;
49
+ background-color: var(--iob-scrollbar-thumb);
50
+ border-radius: 8px;
51
+ /* transparent border + content-box keeps the thumb slim on any background */
52
+ border: 2px solid transparent;
53
+ background-clip: content-box;
54
+ }
55
+
56
+ ::-webkit-scrollbar-thumb:hover {
57
+ background-color: var(--iob-scrollbar-thumb-hover);
58
+ }
59
+
60
+ ::-webkit-scrollbar-track,
61
+ ::-webkit-scrollbar-corner {
62
+ background-color: transparent;
39
63
  }
40
64
 
41
65
  #root {
package/build/index.d.ts CHANGED
@@ -27,7 +27,9 @@ export { InfoBox } from './Components/InfoBox';
27
27
  export { Router } from './Components/Router';
28
28
  export { SaveCloseButtons } from './Components/SaveCloseButtons';
29
29
  export { Schedule, type ScheduleConfig } from './Components/Schedule';
30
+ export { ScrollbarStyles } from './Components/ScrollbarStyles';
30
31
  export { SelectWithIcon } from './Components/SelectWithIcon';
32
+ export { StatCard, CardTitle, InfoRow } from './Components/StatCard';
31
33
  export { TabContainer } from './Components/TabContainer';
32
34
  export { TabContent } from './Components/TabContent';
33
35
  export { TabHeader } from './Components/TabHeader';
package/build/index.js CHANGED
@@ -26,7 +26,9 @@ export { InfoBox } from './Components/InfoBox';
26
26
  export { Router } from './Components/Router';
27
27
  export { SaveCloseButtons } from './Components/SaveCloseButtons';
28
28
  export { Schedule } from './Components/Schedule';
29
+ export { ScrollbarStyles } from './Components/ScrollbarStyles';
29
30
  export { SelectWithIcon } from './Components/SelectWithIcon';
31
+ export { StatCard, CardTitle, InfoRow } from './Components/StatCard';
30
32
  export { TabContainer } from './Components/TabContainer';
31
33
  export { TabContent } from './Components/TabContent';
32
34
  export { TabHeader } from './Components/TabHeader';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"./src/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["export { Theme } from './Theme';\nexport { getModernTheme, MODERN_DARK, MODERN_LIGHT, type ModernTokens } from './ThemeModern';\nexport { GenericApp } from './GenericApp';\nexport { I18n } from './i18n';\nexport { printPrompt } from './Prompt';\nexport { ColorPicker } from './Components/ColorPicker';\nexport { ComplexCron } from './Components/ComplexCron';\nexport { copy } from './Components/CopyToClipboard';\nexport { CustomModal } from './Components/CustomModal';\nexport {\n FileBrowser,\n type MetaACL,\n type MetaObject,\n type FileBrowserProps,\n type FileBrowserNavigation,\n type FolderOrFileItem,\n type Folders,\n FileBrowserClass,\n} from './Components/FileBrowser';\nexport {\n EXTENSIONS,\n FileViewer,\n FileViewerClass,\n type FileViewerProps,\n type FileViewerState,\n} from './Components/FileViewer';\nexport { getSystemIcon, getSelectIdIcon, Icon } from './Components/Icon';\nexport { IconPicker } from './Components/IconPicker';\nexport { IconSelector } from './Components/IconSelector';\nexport { Image } from './Components/Image';\nexport { DeviceTypeSelector } from './Components/DeviceType/DeviceTypeSelector';\nexport { DeviceTypeIcon } from './Components/DeviceType/DeviceTypeIcon';\nexport { STATES_NAME_ICONS } from './Components/DeviceType/DeviceTypeOptions';\nexport { extendDeviceTypeTranslation } from './Components/DeviceType/deviceTypeTranslations';\nexport {\n type IconPropsSVG,\n Cleaner,\n DoorClosed,\n DoorOpened,\n FireOff,\n FireOn,\n FloodOff,\n FloodOn,\n Gate,\n HeatValve,\n Home,\n Humidity,\n IconHome,\n Jalousie,\n Material,\n MotionOff,\n MotionOn,\n PushButton,\n RepairExpert,\n RGB,\n Socket,\n Thermometer,\n ThermometerSimple,\n Thermostat,\n Valve,\n WindowClosed,\n WindowOpened,\n WindowTilted,\n} from './Components/DeviceType/icons';\nexport { Loader } from './Components/Loader';\nexport { Logo } from './Components/Logo';\nexport { MDUtils } from './Components/MDUtils';\nexport { ObjectBrowserClass, ObjectBrowser, getSelectIdIconFromObjects, ITEM_IMAGES } from './Components/ObjectBrowser';\nexport {\n type TreeItemData,\n type TreeItem,\n type ObjectBrowserFilter,\n type ObjectBrowserCustomFilter,\n type ObjectBrowserColumn,\n type ObjectBrowserProps,\n type ObjectBrowserNavigation,\n} from './Components/ObjectBrowser/types';\n\nexport { InfoBox } from './Components/InfoBox';\nexport { Router } from './Components/Router';\nexport { SaveCloseButtons } from './Components/SaveCloseButtons';\nexport { Schedule, type ScheduleConfig } from './Components/Schedule';\nexport { SelectWithIcon } from './Components/SelectWithIcon';\nexport { TabContainer } from './Components/TabContainer';\nexport { TabContent } from './Components/TabContent';\nexport { TabHeader } from './Components/TabHeader';\nexport { TableResize } from './Components/TableResize';\nexport { TextWithIcon } from './Components/TextWithIcon';\nexport { ToggleThemeMenu } from './Components/ToggleThemeMenu';\nexport { TreeTable } from './Components/TreeTable';\nexport { UploadImage } from './Components/UploadImage';\nexport { Utils } from './Components/Utils';\nexport { withWidth } from './Components/withWidth';\nexport { cron2state, SimpleCron } from './Components/SimpleCron';\nexport { convertCronToText } from './Components/SimpleCron/cronText';\nexport { LoaderVendor } from './Components/Loaders/Vendor';\nexport { LoaderPT } from './Components/Loaders/PT';\nexport { LoaderMV } from './Components/Loaders/MV';\nexport { LoaderNW } from './Components/Loaders/NW';\nexport { LoaderHA } from './Components/Loaders/HA';\nexport { type IconProps } from './Components/Icon';\nexport { type IconsIconProps } from './icons/types';\nexport { IconAdapter } from './icons/IconAdapter';\nexport { IconAlias } from './icons/IconAlias';\nexport { IconButtonImage } from './icons/IconButtonImage';\nexport { IconChannel } from './icons/IconChannel';\nexport { IconClearFilter } from './icons/IconClearFilter';\nexport { IconClosed } from './icons/IconClosed';\nexport { IconCopy } from './icons/IconCopy';\nexport { IconDevice } from './icons/IconDevice';\nexport { IconDocument } from './icons/IconDocument';\nexport { IconDocumentReadOnly } from './icons/IconDocumentReadOnly';\nexport { IconExpert } from './icons/IconExpert';\nexport { IconFx } from './icons/IconFx';\nexport { IconInstance } from './icons/IconInstance';\nexport { IconLogout } from './icons/IconLogout';\nexport { IconNoIcon } from './icons/IconNoIcon';\nexport { IconOpen } from './icons/IconOpen';\nexport { IconState } from './icons/IconState';\nexport { IconVacuum } from './icons/IconVacuum';\nexport { DialogComplexCron } from './Dialogs/ComplexCron';\nexport { DialogComplexCron as ComplexCronDialog } from './Dialogs/ComplexCron'; // deprecated\nexport { DialogConfirm } from './Dialogs/Confirm';\nexport { DialogConfirm as Confirm } from './Dialogs/Confirm'; // deprecated\nexport { DialogCron } from './Dialogs/Cron';\nexport { DialogCron as Cron } from './Dialogs/Cron'; // deprecated\nexport { DialogError } from './Dialogs/Error';\nexport { DialogError as Error } from './Dialogs/Error'; // deprecated\nexport { DialogMessage } from './Dialogs/Message';\nexport { DialogMessage as Message } from './Dialogs/Message'; // deprecated\nexport { DialogSelectID, type SelectIDFilters } from './Dialogs/SelectID';\nexport { DialogSelectID as SelectID } from './Dialogs/SelectID'; // deprecated\nexport { DialogSelectFile } from './Dialogs/SelectFile';\nexport { DialogSelectFile as SelectFile } from './Dialogs/SelectFile'; // deprecated\nexport { DialogSimpleCron } from './Dialogs/SimpleCron';\nexport { DialogSimpleCron as SimpleCronDialog } from './Dialogs/SimpleCron'; // deprecated\nexport { DialogTextInput } from './Dialogs/TextInput';\nexport { DialogTextInput as TextInput } from './Dialogs/TextInput'; // deprecated\nexport { Connection, PROGRESS, ERRORS, PERMISSION_ERROR } from './Connection';\nexport { AdminConnection } from './AdminConnection';\nexport { dictionary } from './dictionary';\n// `LegacyConnection` was removed in v9. The types it used to re-export now come directly\n// from `@iobroker/socket-client`, `pattern2RegEx` from the object browser utils.\nexport { type ConnectOptions, type SocketClient, type BinaryStateChangeHandler } from '@iobroker/socket-client';\nexport { pattern2RegEx } from './Components/ObjectBrowser/utils';\n\nexport {\n type IobUri,\n type IobUriType,\n type IobUriParsed,\n getAttrInObject,\n setAttrInObject,\n iobUriToString,\n iobUriParse,\n iobUriRead,\n} from './Components/IobUri';\n\nexport type {\n Translate,\n ConnectionProps,\n OldObject,\n ObjectChangeHandler,\n ThemeName,\n ThemeType,\n GenericAppProps,\n GenericAppSettings,\n IobTheme,\n Width,\n GenericAppState,\n} from './types';\n\nexport { moduleFederationShared } from './modulefederation.admin.config';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"./src/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["export { Theme } from './Theme';\nexport { getModernTheme, MODERN_DARK, MODERN_LIGHT, type ModernTokens } from './ThemeModern';\nexport { GenericApp } from './GenericApp';\nexport { I18n } from './i18n';\nexport { printPrompt } from './Prompt';\nexport { ColorPicker } from './Components/ColorPicker';\nexport { ComplexCron } from './Components/ComplexCron';\nexport { copy } from './Components/CopyToClipboard';\nexport { CustomModal } from './Components/CustomModal';\nexport {\n FileBrowser,\n type MetaACL,\n type MetaObject,\n type FileBrowserProps,\n type FileBrowserNavigation,\n type FolderOrFileItem,\n type Folders,\n FileBrowserClass,\n} from './Components/FileBrowser';\nexport {\n EXTENSIONS,\n FileViewer,\n FileViewerClass,\n type FileViewerProps,\n type FileViewerState,\n} from './Components/FileViewer';\nexport { getSystemIcon, getSelectIdIcon, Icon } from './Components/Icon';\nexport { IconPicker } from './Components/IconPicker';\nexport { IconSelector } from './Components/IconSelector';\nexport { Image } from './Components/Image';\nexport { DeviceTypeSelector } from './Components/DeviceType/DeviceTypeSelector';\nexport { DeviceTypeIcon } from './Components/DeviceType/DeviceTypeIcon';\nexport { STATES_NAME_ICONS } from './Components/DeviceType/DeviceTypeOptions';\nexport { extendDeviceTypeTranslation } from './Components/DeviceType/deviceTypeTranslations';\nexport {\n type IconPropsSVG,\n Cleaner,\n DoorClosed,\n DoorOpened,\n FireOff,\n FireOn,\n FloodOff,\n FloodOn,\n Gate,\n HeatValve,\n Home,\n Humidity,\n IconHome,\n Jalousie,\n Material,\n MotionOff,\n MotionOn,\n PushButton,\n RepairExpert,\n RGB,\n Socket,\n Thermometer,\n ThermometerSimple,\n Thermostat,\n Valve,\n WindowClosed,\n WindowOpened,\n WindowTilted,\n} from './Components/DeviceType/icons';\nexport { Loader } from './Components/Loader';\nexport { Logo } from './Components/Logo';\nexport { MDUtils } from './Components/MDUtils';\nexport { ObjectBrowserClass, ObjectBrowser, getSelectIdIconFromObjects, ITEM_IMAGES } from './Components/ObjectBrowser';\nexport {\n type TreeItemData,\n type TreeItem,\n type ObjectBrowserFilter,\n type ObjectBrowserCustomFilter,\n type ObjectBrowserColumn,\n type ObjectBrowserProps,\n type ObjectBrowserNavigation,\n} from './Components/ObjectBrowser/types';\n\nexport { InfoBox } from './Components/InfoBox';\nexport { Router } from './Components/Router';\nexport { SaveCloseButtons } from './Components/SaveCloseButtons';\nexport { Schedule, type ScheduleConfig } from './Components/Schedule';\nexport { ScrollbarStyles } from './Components/ScrollbarStyles';\nexport { SelectWithIcon } from './Components/SelectWithIcon';\nexport { StatCard, CardTitle, InfoRow } from './Components/StatCard';\nexport { TabContainer } from './Components/TabContainer';\nexport { TabContent } from './Components/TabContent';\nexport { TabHeader } from './Components/TabHeader';\nexport { TableResize } from './Components/TableResize';\nexport { TextWithIcon } from './Components/TextWithIcon';\nexport { ToggleThemeMenu } from './Components/ToggleThemeMenu';\nexport { TreeTable } from './Components/TreeTable';\nexport { UploadImage } from './Components/UploadImage';\nexport { Utils } from './Components/Utils';\nexport { withWidth } from './Components/withWidth';\nexport { cron2state, SimpleCron } from './Components/SimpleCron';\nexport { convertCronToText } from './Components/SimpleCron/cronText';\nexport { LoaderVendor } from './Components/Loaders/Vendor';\nexport { LoaderPT } from './Components/Loaders/PT';\nexport { LoaderMV } from './Components/Loaders/MV';\nexport { LoaderNW } from './Components/Loaders/NW';\nexport { LoaderHA } from './Components/Loaders/HA';\nexport { type IconProps } from './Components/Icon';\nexport { type IconsIconProps } from './icons/types';\nexport { IconAdapter } from './icons/IconAdapter';\nexport { IconAlias } from './icons/IconAlias';\nexport { IconButtonImage } from './icons/IconButtonImage';\nexport { IconChannel } from './icons/IconChannel';\nexport { IconClearFilter } from './icons/IconClearFilter';\nexport { IconClosed } from './icons/IconClosed';\nexport { IconCopy } from './icons/IconCopy';\nexport { IconDevice } from './icons/IconDevice';\nexport { IconDocument } from './icons/IconDocument';\nexport { IconDocumentReadOnly } from './icons/IconDocumentReadOnly';\nexport { IconExpert } from './icons/IconExpert';\nexport { IconFx } from './icons/IconFx';\nexport { IconInstance } from './icons/IconInstance';\nexport { IconLogout } from './icons/IconLogout';\nexport { IconNoIcon } from './icons/IconNoIcon';\nexport { IconOpen } from './icons/IconOpen';\nexport { IconState } from './icons/IconState';\nexport { IconVacuum } from './icons/IconVacuum';\nexport { DialogComplexCron } from './Dialogs/ComplexCron';\nexport { DialogComplexCron as ComplexCronDialog } from './Dialogs/ComplexCron'; // deprecated\nexport { DialogConfirm } from './Dialogs/Confirm';\nexport { DialogConfirm as Confirm } from './Dialogs/Confirm'; // deprecated\nexport { DialogCron } from './Dialogs/Cron';\nexport { DialogCron as Cron } from './Dialogs/Cron'; // deprecated\nexport { DialogError } from './Dialogs/Error';\nexport { DialogError as Error } from './Dialogs/Error'; // deprecated\nexport { DialogMessage } from './Dialogs/Message';\nexport { DialogMessage as Message } from './Dialogs/Message'; // deprecated\nexport { DialogSelectID, type SelectIDFilters } from './Dialogs/SelectID';\nexport { DialogSelectID as SelectID } from './Dialogs/SelectID'; // deprecated\nexport { DialogSelectFile } from './Dialogs/SelectFile';\nexport { DialogSelectFile as SelectFile } from './Dialogs/SelectFile'; // deprecated\nexport { DialogSimpleCron } from './Dialogs/SimpleCron';\nexport { DialogSimpleCron as SimpleCronDialog } from './Dialogs/SimpleCron'; // deprecated\nexport { DialogTextInput } from './Dialogs/TextInput';\nexport { DialogTextInput as TextInput } from './Dialogs/TextInput'; // deprecated\nexport { Connection, PROGRESS, ERRORS, PERMISSION_ERROR } from './Connection';\nexport { AdminConnection } from './AdminConnection';\nexport { dictionary } from './dictionary';\n// `LegacyConnection` was removed in v9. The types it used to re-export now come directly\n// from `@iobroker/socket-client`, `pattern2RegEx` from the object browser utils.\nexport { type ConnectOptions, type SocketClient, type BinaryStateChangeHandler } from '@iobroker/socket-client';\nexport { pattern2RegEx } from './Components/ObjectBrowser/utils';\n\nexport {\n type IobUri,\n type IobUriType,\n type IobUriParsed,\n getAttrInObject,\n setAttrInObject,\n iobUriToString,\n iobUriParse,\n iobUriRead,\n} from './Components/IobUri';\n\nexport type {\n Translate,\n ConnectionProps,\n OldObject,\n ObjectChangeHandler,\n ThemeName,\n ThemeType,\n GenericAppProps,\n GenericAppSettings,\n IobTheme,\n Width,\n GenericAppState,\n} from './types';\n\nexport { moduleFederationShared } from './modulefederation.admin.config';\n"]}
package/index.css CHANGED
@@ -21,21 +21,45 @@ body {
21
21
  overflow: hidden;
22
22
  }
23
23
 
24
- /* scrollbar */
25
- ::-webkit-scrollbar-track {
26
- background-color: #ccc;
27
- border-radius: 5px;
24
+ /*
25
+ * Scrollbars.
26
+ *
27
+ * These are only the fallback for the moment before React has mounted. The real colors come from
28
+ * the theme through the `ScrollbarStyles` component, which sets the two custom properties on
29
+ * `:root` - that is more specific than the `html` below and therefore always wins.
30
+ *
31
+ * The previous fixed values (#ccc track, #575757 thumb) looked wrong on every dark theme.
32
+ */
33
+ html {
34
+ --iob-scrollbar-thumb: rgba(128, 128, 128, 0.5);
35
+ --iob-scrollbar-thumb-hover: rgba(128, 128, 128, 0.8);
36
+ }
37
+
38
+ * {
39
+ scrollbar-width: thin;
40
+ scrollbar-color: var(--iob-scrollbar-thumb) transparent;
28
41
  }
29
42
 
30
43
  ::-webkit-scrollbar {
31
- width: 5px;
32
- height: 5px;
33
- background-color: #ccc;
44
+ width: 10px;
45
+ height: 10px;
34
46
  }
35
47
 
36
48
  ::-webkit-scrollbar-thumb {
37
- background-color: #575757;
38
- border-radius: 5px;
49
+ background-color: var(--iob-scrollbar-thumb);
50
+ border-radius: 8px;
51
+ /* transparent border + content-box keeps the thumb slim on any background */
52
+ border: 2px solid transparent;
53
+ background-clip: content-box;
54
+ }
55
+
56
+ ::-webkit-scrollbar-thumb:hover {
57
+ background-color: var(--iob-scrollbar-thumb-hover);
58
+ }
59
+
60
+ ::-webkit-scrollbar-track,
61
+ ::-webkit-scrollbar-corner {
62
+ background-color: transparent;
39
63
  }
40
64
 
41
65
  #root {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iobroker/gui-components",
3
- "version": "10.0.7",
3
+ "version": "10.0.8",
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",