@wise/components-theming 1.7.0 → 1.7.1
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/dist/ThemeProvider.mjs +1 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +30 -8
- package/dist/helpers.js.map +1 -1
- package/dist/helpers.mjs +30 -8
- package/dist/helpers.mjs.map +1 -1
- package/package.json +1 -1
- package/src/ThemeProvider.spec.tsx +16 -3
- package/src/helpers.ts +33 -8
package/dist/ThemeProvider.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useContext, useEffect, useMemo } from 'react';
|
|
2
2
|
import { ThemedChildren } from './ThemedChildren.mjs';
|
|
3
|
-
import {
|
|
3
|
+
import { DEFAULT_SCREEN_MODE, DEFAULT_BASE_THEME } from './const.mjs';
|
|
4
4
|
import { getThemeClassName } from './helpers.mjs';
|
|
5
5
|
import { ThemeContext } from './ThemeProviderContext.mjs';
|
|
6
6
|
import { jsx } from 'react/jsx-runtime';
|
package/dist/helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,OAAO,EACR,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,aAAa,GAAI,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAG,KAAK,IAAI,WACjC,CAAC;AAE9C,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAG,KAAK,IAAI,UAClC,CAAC;AAE5C,eAAO,MAAM,kBAAkB,GAC7B,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KACnC,KAAK,IAAI,gBAA4C,CAAC;AAEzD,eAAO,MAAM,gBAAgB,GAC3B,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EACpC,YAAY,UAAU,KACrB,UAAU,IAAI,cACqD,CAAC;AAEvE,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,UAAU,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,OAAO,EACR,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,aAAa,GAAI,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAG,KAAK,IAAI,WACjC,CAAC;AAE9C,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAG,KAAK,IAAI,UAClC,CAAC;AAE5C,eAAO,MAAM,kBAAkB,GAC7B,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KACnC,KAAK,IAAI,gBAA4C,CAAC;AAEzD,eAAO,MAAM,gBAAgB,GAC3B,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EACpC,YAAY,UAAU,KACrB,UAAU,IAAI,cACqD,CAAC;AAEvE,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,UAAU,WAuC7F,CAAC"}
|
package/dist/helpers.js
CHANGED
|
@@ -7,16 +7,38 @@ const isExtraTheme = theme => _const.extraThemes.includes(theme);
|
|
|
7
7
|
const isForestGreenTheme = theme => theme === _const.extraThemes[0];
|
|
8
8
|
const isScreenModeDark = (theme, screenMode) => isThemeModern(theme) && _const.screenModes[1] === screenMode;
|
|
9
9
|
const getThemeClassName = (theme, screenMode) => {
|
|
10
|
-
if (
|
|
11
|
-
return `np-theme-${theme
|
|
10
|
+
if (['light'].includes(theme)) {
|
|
11
|
+
return `np-theme-${theme}`;
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
// Personal light is always there by default
|
|
14
|
+
const themeClasses = ['np-theme-personal'];
|
|
15
|
+
/* eslint-disable functional/immutable-data */
|
|
16
|
+
// Personal dark theme
|
|
17
|
+
if (theme === 'personal' && screenMode === 'dark') {
|
|
18
|
+
themeClasses.push(`np-theme-personal--${screenMode}`);
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
+
// Personal forest-green and bright-green themes
|
|
21
|
+
else if (['forest-green', 'bright-green'].includes(theme)) {
|
|
22
|
+
themeClasses.push(`np-theme-personal--${theme}`);
|
|
23
|
+
}
|
|
24
|
+
// Business light
|
|
25
|
+
else if (theme === 'business') {
|
|
26
|
+
themeClasses.push(`np-theme-business`);
|
|
27
|
+
// Business dark theme
|
|
28
|
+
if (screenMode === 'dark') {
|
|
29
|
+
themeClasses.push(`np-theme-business--${screenMode}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Business forest-green and bright-green themes
|
|
33
|
+
else if (['business--forest-green', 'business--bright-green'].includes(theme)) {
|
|
34
|
+
themeClasses.push(`np-theme-${theme}`);
|
|
35
|
+
}
|
|
36
|
+
// Platform themes
|
|
37
|
+
else if (theme.startsWith('platform')) {
|
|
38
|
+
themeClasses.push(`np-theme-${theme}`);
|
|
39
|
+
}
|
|
40
|
+
/* eslint-enable functional/immutable-data */
|
|
41
|
+
return themeClasses.join(' ');
|
|
20
42
|
};
|
|
21
43
|
|
|
22
44
|
exports.getThemeClassName = getThemeClassName;
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../src/helpers.ts"],"sourcesContent":["import type {\n ModernTheme,\n ExtraTheme,\n ForestGreenTheme,\n ScreenMode,\n ScreenModeDark,\n Theming,\n} from './const';\nimport { extraThemes, screenModes, modernThemes } from './const';\n\nexport const isThemeModern = (theme: NonNullable<Theming['theme']>): theme is ModernTheme =>\n modernThemes.includes(theme as ModernTheme);\n\nexport const isExtraTheme = (theme: NonNullable<Theming['theme']>): theme is ExtraTheme =>\n extraThemes.includes(theme as ExtraTheme);\n\nexport const isForestGreenTheme = (\n theme: NonNullable<Theming['theme']>,\n): theme is ForestGreenTheme => theme === extraThemes[0];\n\nexport const isScreenModeDark = (\n theme: NonNullable<Theming['theme']>,\n screenMode: ScreenMode,\n): screenMode is ScreenModeDark =>\n isThemeModern(theme as ModernTheme) && screenModes[1] === screenMode;\n\nexport const getThemeClassName = (theme: NonNullable<Theming['theme']>, screenMode: ScreenMode) => {\n if (
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../src/helpers.ts"],"sourcesContent":["import type {\n ModernTheme,\n ExtraTheme,\n ForestGreenTheme,\n ScreenMode,\n ScreenModeDark,\n Theming,\n} from './const';\nimport { extraThemes, screenModes, modernThemes } from './const';\n\nexport const isThemeModern = (theme: NonNullable<Theming['theme']>): theme is ModernTheme =>\n modernThemes.includes(theme as ModernTheme);\n\nexport const isExtraTheme = (theme: NonNullable<Theming['theme']>): theme is ExtraTheme =>\n extraThemes.includes(theme as ExtraTheme);\n\nexport const isForestGreenTheme = (\n theme: NonNullable<Theming['theme']>,\n): theme is ForestGreenTheme => theme === extraThemes[0];\n\nexport const isScreenModeDark = (\n theme: NonNullable<Theming['theme']>,\n screenMode: ScreenMode,\n): screenMode is ScreenModeDark =>\n isThemeModern(theme as ModernTheme) && screenModes[1] === screenMode;\n\nexport const getThemeClassName = (theme: NonNullable<Theming['theme']>, screenMode: ScreenMode) => {\n if (['light'].includes(theme)) {\n return `np-theme-${theme}`;\n }\n\n // Personal light is always there by default\n const themeClasses = ['np-theme-personal'];\n\n /* eslint-disable functional/immutable-data */\n // Personal dark theme\n if (theme === 'personal' && screenMode === 'dark') {\n themeClasses.push(`np-theme-personal--${screenMode}`);\n }\n\n // Personal forest-green and bright-green themes\n else if (['forest-green', 'bright-green'].includes(theme)) {\n themeClasses.push(`np-theme-personal--${theme}`);\n }\n\n // Business light\n else if (theme === 'business') {\n themeClasses.push(`np-theme-business`);\n // Business dark theme\n if (screenMode === 'dark') {\n themeClasses.push(`np-theme-business--${screenMode}`);\n }\n }\n\n // Business forest-green and bright-green themes\n else if (['business--forest-green', 'business--bright-green'].includes(theme)) {\n themeClasses.push(`np-theme-${theme}`);\n }\n\n // Platform themes\n else if (theme.startsWith('platform')) {\n themeClasses.push(`np-theme-${theme}`);\n }\n /* eslint-enable functional/immutable-data */\n return themeClasses.join(' ');\n};\n"],"names":["isThemeModern","theme","modernThemes","includes","isExtraTheme","extraThemes","isForestGreenTheme","isScreenModeDark","screenMode","screenModes","getThemeClassName","themeClasses","push","startsWith","join"],"mappings":";;;;AAUO,MAAMA,aAAa,GAAIC,KAAoC,IAChEC,mBAAY,CAACC,QAAQ,CAACF,KAAoB;AAErC,MAAMG,YAAY,GAAIH,KAAoC,IAC/DI,kBAAW,CAACF,QAAQ,CAACF,KAAmB;AAEnC,MAAMK,kBAAkB,GAC7BL,KAAoC,IACNA,KAAK,KAAKI,kBAAW,CAAC,CAAC;MAE1CE,gBAAgB,GAAGA,CAC9BN,KAAoC,EACpCO,UAAsB,KAEtBR,aAAa,CAACC,KAAoB,CAAC,IAAIQ,kBAAW,CAAC,CAAC,CAAC,KAAKD;MAE/CE,iBAAiB,GAAGA,CAACT,KAAoC,EAAEO,UAAsB,KAAI;EAChG,IAAI,CAAC,OAAO,CAAC,CAACL,QAAQ,CAACF,KAAK,CAAC,EAAE;IAC7B,OAAO,CAAA,SAAA,EAAYA,KAAK,CAAA,CAAE;AAC5B,EAAA;AAEA;AACA,EAAA,MAAMU,YAAY,GAAG,CAAC,mBAAmB,CAAC;AAE1C;AACA;AACA,EAAA,IAAIV,KAAK,KAAK,UAAU,IAAIO,UAAU,KAAK,MAAM,EAAE;AACjDG,IAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,mBAAA,EAAsBJ,UAAU,EAAE,CAAC;AACvD,EAAA;AAEA;OACK,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAACL,QAAQ,CAACF,KAAK,CAAC,EAAE;AACzDU,IAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,mBAAA,EAAsBX,KAAK,EAAE,CAAC;AAClD,EAAA;AAEA;AAAA,OACK,IAAIA,KAAK,KAAK,UAAU,EAAE;AAC7BU,IAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,iBAAA,CAAmB,CAAC;AACtC;IACA,IAAIJ,UAAU,KAAK,MAAM,EAAE;AACzBG,MAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,mBAAA,EAAsBJ,UAAU,EAAE,CAAC;AACvD,IAAA;AACF,EAAA;AAEA;OACK,IAAI,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAACL,QAAQ,CAACF,KAAK,CAAC,EAAE;AAC7EU,IAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,SAAA,EAAYX,KAAK,EAAE,CAAC;AACxC,EAAA;AAEA;AAAA,OACK,IAAIA,KAAK,CAACY,UAAU,CAAC,UAAU,CAAC,EAAE;AACrCF,IAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,SAAA,EAAYX,KAAK,EAAE,CAAC;AACxC,EAAA;AACA;AACA,EAAA,OAAOU,YAAY,CAACG,IAAI,CAAC,GAAG,CAAC;AAC/B;;;;;;;;"}
|
package/dist/helpers.mjs
CHANGED
|
@@ -5,16 +5,38 @@ const isExtraTheme = theme => extraThemes.includes(theme);
|
|
|
5
5
|
const isForestGreenTheme = theme => theme === extraThemes[0];
|
|
6
6
|
const isScreenModeDark = (theme, screenMode) => isThemeModern(theme) && screenModes[1] === screenMode;
|
|
7
7
|
const getThemeClassName = (theme, screenMode) => {
|
|
8
|
-
if (
|
|
9
|
-
return `np-theme-${theme
|
|
8
|
+
if (['light'].includes(theme)) {
|
|
9
|
+
return `np-theme-${theme}`;
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
// Personal light is always there by default
|
|
12
|
+
const themeClasses = ['np-theme-personal'];
|
|
13
|
+
/* eslint-disable functional/immutable-data */
|
|
14
|
+
// Personal dark theme
|
|
15
|
+
if (theme === 'personal' && screenMode === 'dark') {
|
|
16
|
+
themeClasses.push(`np-theme-personal--${screenMode}`);
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
// Personal forest-green and bright-green themes
|
|
19
|
+
else if (['forest-green', 'bright-green'].includes(theme)) {
|
|
20
|
+
themeClasses.push(`np-theme-personal--${theme}`);
|
|
21
|
+
}
|
|
22
|
+
// Business light
|
|
23
|
+
else if (theme === 'business') {
|
|
24
|
+
themeClasses.push(`np-theme-business`);
|
|
25
|
+
// Business dark theme
|
|
26
|
+
if (screenMode === 'dark') {
|
|
27
|
+
themeClasses.push(`np-theme-business--${screenMode}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Business forest-green and bright-green themes
|
|
31
|
+
else if (['business--forest-green', 'business--bright-green'].includes(theme)) {
|
|
32
|
+
themeClasses.push(`np-theme-${theme}`);
|
|
33
|
+
}
|
|
34
|
+
// Platform themes
|
|
35
|
+
else if (theme.startsWith('platform')) {
|
|
36
|
+
themeClasses.push(`np-theme-${theme}`);
|
|
37
|
+
}
|
|
38
|
+
/* eslint-enable functional/immutable-data */
|
|
39
|
+
return themeClasses.join(' ');
|
|
18
40
|
};
|
|
19
41
|
|
|
20
42
|
export { getThemeClassName, isExtraTheme, isForestGreenTheme, isScreenModeDark, isThemeModern };
|
package/dist/helpers.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.mjs","sources":["../src/helpers.ts"],"sourcesContent":["import type {\n ModernTheme,\n ExtraTheme,\n ForestGreenTheme,\n ScreenMode,\n ScreenModeDark,\n Theming,\n} from './const';\nimport { extraThemes, screenModes, modernThemes } from './const';\n\nexport const isThemeModern = (theme: NonNullable<Theming['theme']>): theme is ModernTheme =>\n modernThemes.includes(theme as ModernTheme);\n\nexport const isExtraTheme = (theme: NonNullable<Theming['theme']>): theme is ExtraTheme =>\n extraThemes.includes(theme as ExtraTheme);\n\nexport const isForestGreenTheme = (\n theme: NonNullable<Theming['theme']>,\n): theme is ForestGreenTheme => theme === extraThemes[0];\n\nexport const isScreenModeDark = (\n theme: NonNullable<Theming['theme']>,\n screenMode: ScreenMode,\n): screenMode is ScreenModeDark =>\n isThemeModern(theme as ModernTheme) && screenModes[1] === screenMode;\n\nexport const getThemeClassName = (theme: NonNullable<Theming['theme']>, screenMode: ScreenMode) => {\n if (
|
|
1
|
+
{"version":3,"file":"helpers.mjs","sources":["../src/helpers.ts"],"sourcesContent":["import type {\n ModernTheme,\n ExtraTheme,\n ForestGreenTheme,\n ScreenMode,\n ScreenModeDark,\n Theming,\n} from './const';\nimport { extraThemes, screenModes, modernThemes } from './const';\n\nexport const isThemeModern = (theme: NonNullable<Theming['theme']>): theme is ModernTheme =>\n modernThemes.includes(theme as ModernTheme);\n\nexport const isExtraTheme = (theme: NonNullable<Theming['theme']>): theme is ExtraTheme =>\n extraThemes.includes(theme as ExtraTheme);\n\nexport const isForestGreenTheme = (\n theme: NonNullable<Theming['theme']>,\n): theme is ForestGreenTheme => theme === extraThemes[0];\n\nexport const isScreenModeDark = (\n theme: NonNullable<Theming['theme']>,\n screenMode: ScreenMode,\n): screenMode is ScreenModeDark =>\n isThemeModern(theme as ModernTheme) && screenModes[1] === screenMode;\n\nexport const getThemeClassName = (theme: NonNullable<Theming['theme']>, screenMode: ScreenMode) => {\n if (['light'].includes(theme)) {\n return `np-theme-${theme}`;\n }\n\n // Personal light is always there by default\n const themeClasses = ['np-theme-personal'];\n\n /* eslint-disable functional/immutable-data */\n // Personal dark theme\n if (theme === 'personal' && screenMode === 'dark') {\n themeClasses.push(`np-theme-personal--${screenMode}`);\n }\n\n // Personal forest-green and bright-green themes\n else if (['forest-green', 'bright-green'].includes(theme)) {\n themeClasses.push(`np-theme-personal--${theme}`);\n }\n\n // Business light\n else if (theme === 'business') {\n themeClasses.push(`np-theme-business`);\n // Business dark theme\n if (screenMode === 'dark') {\n themeClasses.push(`np-theme-business--${screenMode}`);\n }\n }\n\n // Business forest-green and bright-green themes\n else if (['business--forest-green', 'business--bright-green'].includes(theme)) {\n themeClasses.push(`np-theme-${theme}`);\n }\n\n // Platform themes\n else if (theme.startsWith('platform')) {\n themeClasses.push(`np-theme-${theme}`);\n }\n /* eslint-enable functional/immutable-data */\n return themeClasses.join(' ');\n};\n"],"names":["isThemeModern","theme","modernThemes","includes","isExtraTheme","extraThemes","isForestGreenTheme","isScreenModeDark","screenMode","screenModes","getThemeClassName","themeClasses","push","startsWith","join"],"mappings":";;AAUO,MAAMA,aAAa,GAAIC,KAAoC,IAChEC,YAAY,CAACC,QAAQ,CAACF,KAAoB;AAErC,MAAMG,YAAY,GAAIH,KAAoC,IAC/DI,WAAW,CAACF,QAAQ,CAACF,KAAmB;AAEnC,MAAMK,kBAAkB,GAC7BL,KAAoC,IACNA,KAAK,KAAKI,WAAW,CAAC,CAAC;MAE1CE,gBAAgB,GAAGA,CAC9BN,KAAoC,EACpCO,UAAsB,KAEtBR,aAAa,CAACC,KAAoB,CAAC,IAAIQ,WAAW,CAAC,CAAC,CAAC,KAAKD;MAE/CE,iBAAiB,GAAGA,CAACT,KAAoC,EAAEO,UAAsB,KAAI;EAChG,IAAI,CAAC,OAAO,CAAC,CAACL,QAAQ,CAACF,KAAK,CAAC,EAAE;IAC7B,OAAO,CAAA,SAAA,EAAYA,KAAK,CAAA,CAAE;AAC5B,EAAA;AAEA;AACA,EAAA,MAAMU,YAAY,GAAG,CAAC,mBAAmB,CAAC;AAE1C;AACA;AACA,EAAA,IAAIV,KAAK,KAAK,UAAU,IAAIO,UAAU,KAAK,MAAM,EAAE;AACjDG,IAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,mBAAA,EAAsBJ,UAAU,EAAE,CAAC;AACvD,EAAA;AAEA;OACK,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAACL,QAAQ,CAACF,KAAK,CAAC,EAAE;AACzDU,IAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,mBAAA,EAAsBX,KAAK,EAAE,CAAC;AAClD,EAAA;AAEA;AAAA,OACK,IAAIA,KAAK,KAAK,UAAU,EAAE;AAC7BU,IAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,iBAAA,CAAmB,CAAC;AACtC;IACA,IAAIJ,UAAU,KAAK,MAAM,EAAE;AACzBG,MAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,mBAAA,EAAsBJ,UAAU,EAAE,CAAC;AACvD,IAAA;AACF,EAAA;AAEA;OACK,IAAI,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAACL,QAAQ,CAACF,KAAK,CAAC,EAAE;AAC7EU,IAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,SAAA,EAAYX,KAAK,EAAE,CAAC;AACxC,EAAA;AAEA;AAAA,OACK,IAAIA,KAAK,CAACY,UAAU,CAAC,UAAU,CAAC,EAAE;AACrCF,IAAAA,YAAY,CAACC,IAAI,CAAC,CAAA,SAAA,EAAYX,KAAK,EAAE,CAAC;AACxC,EAAA;AACA;AACA,EAAA,OAAOU,YAAY,CAACG,IAAI,CAAC,GAAG,CAAC;AAC/B;;;;"}
|
package/package.json
CHANGED
|
@@ -40,9 +40,13 @@ describe('ThemeProvider', () => {
|
|
|
40
40
|
// eslint-disable-next-line testing-library/no-node-access
|
|
41
41
|
expect(screen.getByText('personal').parentElement).toHaveClass('np-theme-personal');
|
|
42
42
|
// eslint-disable-next-line testing-library/no-node-access
|
|
43
|
-
expect(screen.getByText('platform').parentElement).toHaveClass(
|
|
43
|
+
expect(screen.getByText('platform').parentElement).toHaveClass(
|
|
44
|
+
'np-theme-personal',
|
|
45
|
+
'np-theme-platform',
|
|
46
|
+
);
|
|
44
47
|
// eslint-disable-next-line testing-library/no-node-access
|
|
45
48
|
expect(screen.getByText('platform--forest-green').parentElement).toHaveClass(
|
|
49
|
+
'np-theme-personal',
|
|
46
50
|
'np-theme-platform--forest-green',
|
|
47
51
|
);
|
|
48
52
|
});
|
|
@@ -64,15 +68,24 @@ describe('ThemeProvider', () => {
|
|
|
64
68
|
);
|
|
65
69
|
|
|
66
70
|
// eslint-disable-next-line testing-library/no-node-access
|
|
67
|
-
expect(screen.getByText('business').parentElement).toHaveClass(
|
|
71
|
+
expect(screen.getByText('business').parentElement).toHaveClass(
|
|
72
|
+
'np-theme-personal',
|
|
73
|
+
'np-theme-business',
|
|
74
|
+
);
|
|
68
75
|
// eslint-disable-next-line testing-library/no-node-access
|
|
69
|
-
expect(screen.getByText('business-dark').parentElement).toHaveClass(
|
|
76
|
+
expect(screen.getByText('business-dark').parentElement).toHaveClass(
|
|
77
|
+
'np-theme-personal',
|
|
78
|
+
'np-theme-business',
|
|
79
|
+
'np-theme-business--dark',
|
|
80
|
+
);
|
|
70
81
|
// eslint-disable-next-line testing-library/no-node-access
|
|
71
82
|
expect(screen.getByText('business--bright-green').parentElement).toHaveClass(
|
|
83
|
+
'np-theme-personal',
|
|
72
84
|
'np-theme-business--bright-green',
|
|
73
85
|
);
|
|
74
86
|
// eslint-disable-next-line testing-library/no-node-access
|
|
75
87
|
expect(screen.getByText('business--forest-green').parentElement).toHaveClass(
|
|
88
|
+
'np-theme-personal',
|
|
76
89
|
'np-theme-business--forest-green',
|
|
77
90
|
);
|
|
78
91
|
});
|
package/src/helpers.ts
CHANGED
|
@@ -25,17 +25,42 @@ export const isScreenModeDark = (
|
|
|
25
25
|
isThemeModern(theme as ModernTheme) && screenModes[1] === screenMode;
|
|
26
26
|
|
|
27
27
|
export const getThemeClassName = (theme: NonNullable<Theming['theme']>, screenMode: ScreenMode) => {
|
|
28
|
-
if (
|
|
29
|
-
return `np-theme-${theme
|
|
28
|
+
if (['light'].includes(theme)) {
|
|
29
|
+
return `np-theme-${theme}`;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
// Personal light is always there by default
|
|
33
|
+
const themeClasses = ['np-theme-personal'];
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
/* eslint-disable functional/immutable-data */
|
|
36
|
+
// Personal dark theme
|
|
37
|
+
if (theme === 'personal' && screenMode === 'dark') {
|
|
38
|
+
themeClasses.push(`np-theme-personal--${screenMode}`);
|
|
38
39
|
}
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
// Personal forest-green and bright-green themes
|
|
42
|
+
else if (['forest-green', 'bright-green'].includes(theme)) {
|
|
43
|
+
themeClasses.push(`np-theme-personal--${theme}`);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Business light
|
|
47
|
+
else if (theme === 'business') {
|
|
48
|
+
themeClasses.push(`np-theme-business`);
|
|
49
|
+
// Business dark theme
|
|
50
|
+
if (screenMode === 'dark') {
|
|
51
|
+
themeClasses.push(`np-theme-business--${screenMode}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Business forest-green and bright-green themes
|
|
56
|
+
else if (['business--forest-green', 'business--bright-green'].includes(theme)) {
|
|
57
|
+
themeClasses.push(`np-theme-${theme}`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Platform themes
|
|
61
|
+
else if (theme.startsWith('platform')) {
|
|
62
|
+
themeClasses.push(`np-theme-${theme}`);
|
|
63
|
+
}
|
|
64
|
+
/* eslint-enable functional/immutable-data */
|
|
65
|
+
return themeClasses.join(' ');
|
|
41
66
|
};
|