@breadstone/mosaik-themes 0.0.171 → 0.0.173
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/CHANGELOG.md +12 -0
- package/Index.d.ts +5 -0
- package/Index.d.ts.map +1 -1
- package/Index.js +4 -0
- package/Index.js.map +1 -1
- package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.d.ts +16 -0
- package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.d.ts.map +1 -0
- package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.js +50 -0
- package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.js.map +1 -0
- package/Theming/Strategies/IThemeGeneratorStrategy.d.ts +27 -0
- package/Theming/Strategies/IThemeGeneratorStrategy.d.ts.map +1 -0
- package/Theming/Strategies/IThemeGeneratorStrategy.js +3 -0
- package/Theming/Strategies/IThemeGeneratorStrategy.js.map +1 -0
- package/Theming/Strategies/JoyThemeGeneratorStrategy.d.ts +17 -0
- package/Theming/Strategies/JoyThemeGeneratorStrategy.d.ts.map +1 -0
- package/Theming/Strategies/JoyThemeGeneratorStrategy.js +27 -0
- package/Theming/Strategies/JoyThemeGeneratorStrategy.js.map +1 -0
- package/Theming/Strategies/MaterialThemeGeneratorStrategy.d.ts +15 -0
- package/Theming/Strategies/MaterialThemeGeneratorStrategy.d.ts.map +1 -0
- package/Theming/Strategies/MaterialThemeGeneratorStrategy.js +86 -0
- package/Theming/Strategies/MaterialThemeGeneratorStrategy.js.map +1 -0
- package/Theming/Strategies/MemphisThemeGeneratorStrategy.d.ts +17 -0
- package/Theming/Strategies/MemphisThemeGeneratorStrategy.d.ts.map +1 -0
- package/Theming/Strategies/MemphisThemeGeneratorStrategy.js +27 -0
- package/Theming/Strategies/MemphisThemeGeneratorStrategy.js.map +1 -0
- package/Theming/Strategies/index.d.ts +6 -0
- package/Theming/Strategies/index.d.ts.map +1 -0
- package/Theming/Strategies/index.js +7 -0
- package/Theming/Strategies/index.js.map +1 -0
- package/Theming/ThemeGenerator.d.ts +3 -8
- package/Theming/ThemeGenerator.d.ts.map +1 -1
- package/Theming/ThemeGenerator.js +29 -137
- package/Theming/ThemeGenerator.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## 0.0.171 (2025-11-21)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- add FlipToDirective for flipping components and ReactiveFormValidator for form validation ([ba607ccc49](https://github.com/RueDeRennes/mosaik/commit/ba607ccc49))
|
|
6
|
+
- **memphis:** theme choices, selects, and combos ([53f092fa83](https://github.com/RueDeRennes/mosaik/commit/53f092fa83))
|
|
7
|
+
- **avatar:** enhance chat message avatar styles with theme-specific properties ([4e85d98a64](https://github.com/RueDeRennes/mosaik/commit/4e85d98a64))
|
|
8
|
+
|
|
9
|
+
### 🩹 Fixes
|
|
10
|
+
|
|
11
|
+
- **release:** update release version to 0.0.170 ([089a682d6f](https://github.com/RueDeRennes/mosaik/commit/089a682d6f))
|
|
12
|
+
|
|
1
13
|
## 0.0.170 (2025-10-28)
|
|
2
14
|
|
|
3
15
|
### 🚀 Features
|
package/Index.d.ts
CHANGED
|
@@ -22,4 +22,9 @@ export type { IThemeTypographyFontType } from './Theming/Utils/IThemeTypographyF
|
|
|
22
22
|
export type { ThemeMode } from './Theming/ThemeObserver';
|
|
23
23
|
export { ThemeObserver, ThemeObserverServiceLocator } from './Theming/ThemeObserver';
|
|
24
24
|
export { ThemeGeneratorServiceLocator, ThemeGenerator } from './Theming/ThemeGenerator';
|
|
25
|
+
export type { IThemeGeneratorStrategy } from './Theming/Strategies/IThemeGeneratorStrategy';
|
|
26
|
+
export { MaterialThemeGeneratorStrategy } from './Theming/Strategies/MaterialThemeGeneratorStrategy';
|
|
27
|
+
export { JoyThemeGeneratorStrategy } from './Theming/Strategies/JoyThemeGeneratorStrategy';
|
|
28
|
+
export { MemphisThemeGeneratorStrategy } from './Theming/Strategies/MemphisThemeGeneratorStrategy';
|
|
29
|
+
export { CosmopolitanThemeGeneratorStrategy } from './Theming/Strategies/CosmopolitanThemeGeneratorStrategy';
|
|
25
30
|
//# sourceMappingURL=Index.d.ts.map
|
package/Index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACxF,YAAY,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,qDAAqD,CAAC;AACrG,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,kCAAkC,EAAE,MAAM,yDAAyD,CAAC"}
|
package/Index.js
CHANGED
|
@@ -13,4 +13,8 @@ export { ITheme } from './Theming/Utils/ITheme';
|
|
|
13
13
|
export { IThemePalette } from './Theming/Utils/IThemePalette';
|
|
14
14
|
export { ThemeObserver, ThemeObserverServiceLocator } from './Theming/ThemeObserver';
|
|
15
15
|
export { ThemeGeneratorServiceLocator, ThemeGenerator } from './Theming/ThemeGenerator';
|
|
16
|
+
export { MaterialThemeGeneratorStrategy } from './Theming/Strategies/MaterialThemeGeneratorStrategy';
|
|
17
|
+
export { JoyThemeGeneratorStrategy } from './Theming/Strategies/JoyThemeGeneratorStrategy';
|
|
18
|
+
export { MemphisThemeGeneratorStrategy } from './Theming/Strategies/MemphisThemeGeneratorStrategy';
|
|
19
|
+
export { CosmopolitanThemeGeneratorStrategy } from './Theming/Strategies/CosmopolitanThemeGeneratorStrategy';
|
|
16
20
|
//# sourceMappingURL=Index.js.map
|
package/Index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.js","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,wDAAwD;AACxD,4DAA4D;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAK9D,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"Index.js","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,wDAAwD;AACxD,4DAA4D;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAK9D,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EAAE,8BAA8B,EAAE,MAAM,qDAAqD,CAAC;AACrG,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,kCAAkC,EAAE,MAAM,yDAAyD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CssColor } from '../Utils/CssColor';
|
|
2
|
+
import type { IThemePalette } from '../Utils/IThemePalette';
|
|
3
|
+
import type { IThemeScheme } from '../Utils/IThemeScheme';
|
|
4
|
+
import type { IThemeGeneratorStrategy } from './IThemeGeneratorStrategy';
|
|
5
|
+
/**
|
|
6
|
+
* Cosmopolitan theme generator strategy.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export declare class CosmopolitanThemeGeneratorStrategy implements IThemeGeneratorStrategy {
|
|
11
|
+
private readonly _materialStrategy;
|
|
12
|
+
constructor();
|
|
13
|
+
generatePalette(baseColor: CssColor, mode: 'dark' | 'light'): IThemePalette;
|
|
14
|
+
generateScheme(baseColor: CssColor, mode: 'dark' | 'light'): IThemeScheme;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=CosmopolitanThemeGeneratorStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CosmopolitanThemeGeneratorStrategy.d.ts","sourceRoot":"","sources":["../../../src/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAKzE;;;;GAIG;AACH,qBAAa,kCAAmC,YAAW,uBAAuB;IAI9E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;;IAc5D,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa;IAgC3E,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY;CAMnF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
import { TinyColor } from '@ctrl/tinycolor';
|
|
3
|
+
import { MaterialThemeGeneratorStrategy } from './MaterialThemeGeneratorStrategy';
|
|
4
|
+
// #endregion
|
|
5
|
+
/**
|
|
6
|
+
* Cosmopolitan theme generator strategy.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export class CosmopolitanThemeGeneratorStrategy {
|
|
11
|
+
// #region Fields
|
|
12
|
+
_materialStrategy;
|
|
13
|
+
// #endregion
|
|
14
|
+
// #region Ctor
|
|
15
|
+
constructor() {
|
|
16
|
+
this._materialStrategy = new MaterialThemeGeneratorStrategy();
|
|
17
|
+
}
|
|
18
|
+
// #endregion
|
|
19
|
+
// #region Methods
|
|
20
|
+
generatePalette(baseColor, mode) {
|
|
21
|
+
if (mode === 'light') {
|
|
22
|
+
const baseLight = new TinyColor('#ffffff');
|
|
23
|
+
const baseDark = new TinyColor('#000000');
|
|
24
|
+
const palette = {};
|
|
25
|
+
const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
26
|
+
const amounts = [0, 12, 30, 50, 70, 85, 100, 87, 70, 54, 25];
|
|
27
|
+
steps.forEach((step, i) => {
|
|
28
|
+
const base = step <= 500 ? baseLight : baseDark;
|
|
29
|
+
palette[`${step}`] = new TinyColor(base).mix(baseColor, amounts[i])
|
|
30
|
+
.toHexString();
|
|
31
|
+
});
|
|
32
|
+
return palette;
|
|
33
|
+
}
|
|
34
|
+
const baseLight = new TinyColor('#ffffff');
|
|
35
|
+
const baseDark = new TinyColor('#000000');
|
|
36
|
+
const palette = {};
|
|
37
|
+
const steps = [0, 100, 500];
|
|
38
|
+
const amounts = [0, 30, 100];
|
|
39
|
+
steps.forEach((step, i) => {
|
|
40
|
+
const base = step <= 600 ? baseDark : baseLight;
|
|
41
|
+
palette[`${step}`] = new TinyColor(base).mix(baseColor, amounts[i])
|
|
42
|
+
.toHexString();
|
|
43
|
+
});
|
|
44
|
+
return palette;
|
|
45
|
+
}
|
|
46
|
+
generateScheme(baseColor, mode) {
|
|
47
|
+
return this._materialStrategy.generateScheme(baseColor, mode);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=CosmopolitanThemeGeneratorStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CosmopolitanThemeGeneratorStrategy.js","sourceRoot":"","sources":["../../../src/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,aAAa;AAEb;;;;GAIG;AACH,MAAM,OAAO,kCAAkC;IAE3C,iBAAiB;IAEA,iBAAiB,CAAiC;IAEnE,aAAa;IAEb,eAAe;IAEf;QACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,8BAA8B,EAAE,CAAC;IAClE,CAAC;IAED,aAAa;IAEb,kBAAkB;IAEX,eAAe,CAAC,SAAmB,EAAE,IAAsB;QAC9D,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,OAAO,GAA6B,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAE7D,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACtB,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAChD,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;qBAC9D,WAAW,EAAc,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC9D,WAAW,EAAc,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACnB,CAAC;IAEM,cAAc,CAAC,SAAmB,EAAE,IAAsB;QAC7D,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;CAIJ"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CssColor } from '../Utils/CssColor';
|
|
2
|
+
import type { IThemePalette } from '../Utils/IThemePalette';
|
|
3
|
+
import type { IThemeScheme } from '../Utils/IThemeScheme';
|
|
4
|
+
/**
|
|
5
|
+
* Strategy interface for theme-specific palette and scheme generation.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export interface IThemeGeneratorStrategy {
|
|
10
|
+
/**
|
|
11
|
+
* Generates a color palette for the theme.
|
|
12
|
+
*
|
|
13
|
+
* @param baseColor - The base color to generate the palette from
|
|
14
|
+
* @param mode - The color mode (dark or light)
|
|
15
|
+
* @returns The generated palette
|
|
16
|
+
*/
|
|
17
|
+
generatePalette(baseColor: CssColor, mode: 'dark' | 'light'): IThemePalette;
|
|
18
|
+
/**
|
|
19
|
+
* Generates a color scheme for the theme.
|
|
20
|
+
*
|
|
21
|
+
* @param baseColor - The base color to generate the scheme from
|
|
22
|
+
* @param mode - The color mode (dark or light)
|
|
23
|
+
* @returns The generated scheme
|
|
24
|
+
*/
|
|
25
|
+
generateScheme(baseColor: CssColor, mode: 'dark' | 'light'): IThemeScheme;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=IThemeGeneratorStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IThemeGeneratorStrategy.d.ts","sourceRoot":"","sources":["../../../src/Theming/Strategies/IThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IAEpC;;;;;;OAMG;IACH,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;IAE5E;;;;;;OAMG;IACH,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;CAE7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IThemeGeneratorStrategy.js","sourceRoot":"","sources":["../../../src/Theming/Strategies/IThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAAA,kBAAkB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CssColor } from '../Utils/CssColor';
|
|
2
|
+
import type { IThemePalette } from '../Utils/IThemePalette';
|
|
3
|
+
import type { IThemeScheme } from '../Utils/IThemeScheme';
|
|
4
|
+
import type { IThemeGeneratorStrategy } from './IThemeGeneratorStrategy';
|
|
5
|
+
/**
|
|
6
|
+
* Joy UI theme generator strategy.
|
|
7
|
+
* Uses the same generation logic as Material Design.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export declare class JoyThemeGeneratorStrategy implements IThemeGeneratorStrategy {
|
|
12
|
+
private readonly _materialStrategy;
|
|
13
|
+
constructor();
|
|
14
|
+
generatePalette(baseColor: CssColor, mode: 'dark' | 'light'): IThemePalette;
|
|
15
|
+
generateScheme(baseColor: CssColor, mode: 'dark' | 'light'): IThemeScheme;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=JoyThemeGeneratorStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JoyThemeGeneratorStrategy.d.ts","sourceRoot":"","sources":["../../../src/Theming/Strategies/JoyThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAKzE;;;;;GAKG;AACH,qBAAa,yBAA0B,YAAW,uBAAuB;IAIrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;;IAc5D,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa;IAI3E,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY;CAMnF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
import { MaterialThemeGeneratorStrategy } from './MaterialThemeGeneratorStrategy';
|
|
3
|
+
// #endregion
|
|
4
|
+
/**
|
|
5
|
+
* Joy UI theme generator strategy.
|
|
6
|
+
* Uses the same generation logic as Material Design.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export class JoyThemeGeneratorStrategy {
|
|
11
|
+
// #region Fields
|
|
12
|
+
_materialStrategy;
|
|
13
|
+
// #endregion
|
|
14
|
+
// #region Ctor
|
|
15
|
+
constructor() {
|
|
16
|
+
this._materialStrategy = new MaterialThemeGeneratorStrategy();
|
|
17
|
+
}
|
|
18
|
+
// #endregion
|
|
19
|
+
// #region Methods
|
|
20
|
+
generatePalette(baseColor, mode) {
|
|
21
|
+
return this._materialStrategy.generatePalette(baseColor, mode);
|
|
22
|
+
}
|
|
23
|
+
generateScheme(baseColor, mode) {
|
|
24
|
+
return this._materialStrategy.generateScheme(baseColor, mode);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=JoyThemeGeneratorStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JoyThemeGeneratorStrategy.js","sourceRoot":"","sources":["../../../src/Theming/Strategies/JoyThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAMlB,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,aAAa;AAEb;;;;;GAKG;AACH,MAAM,OAAO,yBAAyB;IAElC,iBAAiB;IAEA,iBAAiB,CAAiC;IAEnE,aAAa;IAEb,eAAe;IAEf;QACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,8BAA8B,EAAE,CAAC;IAClE,CAAC;IAED,aAAa;IAEb,kBAAkB;IAEX,eAAe,CAAC,SAAmB,EAAE,IAAsB;QAC9D,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAEM,cAAc,CAAC,SAAmB,EAAE,IAAsB;QAC7D,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;CAIJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CssColor } from '../Utils/CssColor';
|
|
2
|
+
import type { IThemePalette } from '../Utils/IThemePalette';
|
|
3
|
+
import type { IThemeScheme } from '../Utils/IThemeScheme';
|
|
4
|
+
import type { IThemeGeneratorStrategy } from './IThemeGeneratorStrategy';
|
|
5
|
+
/**
|
|
6
|
+
* Material Design theme generator strategy.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export declare class MaterialThemeGeneratorStrategy implements IThemeGeneratorStrategy {
|
|
11
|
+
constructor();
|
|
12
|
+
generatePalette(baseColor: CssColor, mode: 'dark' | 'light'): IThemePalette;
|
|
13
|
+
generateScheme(baseColor: CssColor, mode: 'dark' | 'light'): IThemeScheme;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=MaterialThemeGeneratorStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaterialThemeGeneratorStrategy.d.ts","sourceRoot":"","sources":["../../../src/Theming/Strategies/MaterialThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIzE;;;;GAIG;AACH,qBAAa,8BAA+B,YAAW,uBAAuB;;IAWnE,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa;IAgC3E,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY;CAuDnF"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
import { TinyColor } from '@ctrl/tinycolor';
|
|
3
|
+
// #endregion
|
|
4
|
+
/**
|
|
5
|
+
* Material Design theme generator strategy.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export class MaterialThemeGeneratorStrategy {
|
|
10
|
+
// #region Ctor
|
|
11
|
+
constructor() {
|
|
12
|
+
}
|
|
13
|
+
// #endregion
|
|
14
|
+
// #region Methods
|
|
15
|
+
generatePalette(baseColor, mode) {
|
|
16
|
+
if (mode === 'light') {
|
|
17
|
+
const baseLight = new TinyColor('#ffffff');
|
|
18
|
+
const baseDark = new TinyColor('#000000');
|
|
19
|
+
const palette = {};
|
|
20
|
+
const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
21
|
+
const amounts = [0, 12, 30, 50, 70, 85, 100, 87, 70, 54, 25];
|
|
22
|
+
steps.forEach((step, i) => {
|
|
23
|
+
const base = step <= 500 ? baseLight : baseDark;
|
|
24
|
+
palette[`${step}`] = new TinyColor(base).mix(baseColor, amounts[i])
|
|
25
|
+
.toHexString();
|
|
26
|
+
});
|
|
27
|
+
return palette;
|
|
28
|
+
}
|
|
29
|
+
const baseLight = new TinyColor('#ffffff');
|
|
30
|
+
const baseDark = new TinyColor('#000000');
|
|
31
|
+
const palette = {};
|
|
32
|
+
const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
33
|
+
const amounts = [0, 15, 30, 45, 60, 75, 90, 100, 70, 54, 25];
|
|
34
|
+
steps.forEach((step, i) => {
|
|
35
|
+
const base = step <= 600 ? baseDark : baseLight;
|
|
36
|
+
palette[`${step}`] = new TinyColor(base).mix(baseColor, amounts[i])
|
|
37
|
+
.toHexString();
|
|
38
|
+
});
|
|
39
|
+
return palette;
|
|
40
|
+
}
|
|
41
|
+
generateScheme(baseColor, mode) {
|
|
42
|
+
const tinyBase = new TinyColor(baseColor);
|
|
43
|
+
const luminance = tinyBase.getLuminance();
|
|
44
|
+
const isDarkBase = luminance < 0.3;
|
|
45
|
+
/**
|
|
46
|
+
* Intelligent color adjustment that prevents colors from becoming too dark.
|
|
47
|
+
* For dark input colors, colors are lightened instead of darkened.
|
|
48
|
+
*/
|
|
49
|
+
const adjustColor = (color, targetAmount) => {
|
|
50
|
+
const tc = new TinyColor(color);
|
|
51
|
+
const currentLuminance = tc.getLuminance();
|
|
52
|
+
// If the color is too dark (luminance < 0.15) and we would darken it,
|
|
53
|
+
// reverse direction and lighten instead
|
|
54
|
+
if (currentLuminance < 0.15 && targetAmount < 0) {
|
|
55
|
+
return tc.lighten(Math.abs(targetAmount / 2.55)).toHexString();
|
|
56
|
+
}
|
|
57
|
+
// Normal adjustment
|
|
58
|
+
if (targetAmount > 0) {
|
|
59
|
+
return tc.lighten(targetAmount / 2.55).toHexString();
|
|
60
|
+
}
|
|
61
|
+
const darkened = tc.darken(Math.abs(targetAmount / 2.55));
|
|
62
|
+
// Ensure we never reach black (luminance > 0.02)
|
|
63
|
+
if (darkened.getLuminance() < 0.02) {
|
|
64
|
+
return tc.lighten(Math.abs(targetAmount / 5)).toHexString();
|
|
65
|
+
}
|
|
66
|
+
return darkened.toHexString();
|
|
67
|
+
};
|
|
68
|
+
// For very dark base colors, invert the logic for certain properties
|
|
69
|
+
const middlelightAmount = isDarkBase ? 50 : -50;
|
|
70
|
+
const lowlightAmount = isDarkBase ? 80 : -80;
|
|
71
|
+
const disabledAmount = isDarkBase ? 40 : -40;
|
|
72
|
+
return {
|
|
73
|
+
background: baseColor,
|
|
74
|
+
foreground: adjustColor(baseColor, mode === 'dark' ? 190 : -190),
|
|
75
|
+
highlight: adjustColor(baseColor, mode === 'dark' ? 30 : -30),
|
|
76
|
+
middlelight: adjustColor(baseColor, middlelightAmount),
|
|
77
|
+
lowlight: adjustColor(baseColor, lowlightAmount),
|
|
78
|
+
transparent: `${baseColor}00`,
|
|
79
|
+
semiTransparent: `${baseColor}aa`,
|
|
80
|
+
disabled: adjustColor(baseColor, disabledAmount),
|
|
81
|
+
contrast: adjustColor(baseColor, mode === 'dark' ? 190 : -190),
|
|
82
|
+
selection: adjustColor(baseColor, mode === 'dark' ? 30 : -30)
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=MaterialThemeGeneratorStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaterialThemeGeneratorStrategy.js","sourceRoot":"","sources":["../../../src/Theming/Strategies/MaterialThemeGeneratorStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CssColor } from '../Utils/CssColor';
|
|
2
|
+
import type { IThemePalette } from '../Utils/IThemePalette';
|
|
3
|
+
import type { IThemeScheme } from '../Utils/IThemeScheme';
|
|
4
|
+
import type { IThemeGeneratorStrategy } from './IThemeGeneratorStrategy';
|
|
5
|
+
/**
|
|
6
|
+
* Memphis theme generator strategy.
|
|
7
|
+
* Uses the same generation logic as Material Design.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export declare class MemphisThemeGeneratorStrategy implements IThemeGeneratorStrategy {
|
|
12
|
+
private readonly _materialStrategy;
|
|
13
|
+
constructor();
|
|
14
|
+
generatePalette(baseColor: CssColor, mode: 'dark' | 'light'): IThemePalette;
|
|
15
|
+
generateScheme(baseColor: CssColor, mode: 'dark' | 'light'): IThemeScheme;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=MemphisThemeGeneratorStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemphisThemeGeneratorStrategy.d.ts","sourceRoot":"","sources":["../../../src/Theming/Strategies/MemphisThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAKzE;;;;;GAKG;AACH,qBAAa,6BAA8B,YAAW,uBAAuB;IAIzE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;;IAc5D,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa;IAI3E,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY;CAMnF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
import { MaterialThemeGeneratorStrategy } from './MaterialThemeGeneratorStrategy';
|
|
3
|
+
// #endregion
|
|
4
|
+
/**
|
|
5
|
+
* Memphis theme generator strategy.
|
|
6
|
+
* Uses the same generation logic as Material Design.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export class MemphisThemeGeneratorStrategy {
|
|
11
|
+
// #region Fields
|
|
12
|
+
_materialStrategy;
|
|
13
|
+
// #endregion
|
|
14
|
+
// #region Ctor
|
|
15
|
+
constructor() {
|
|
16
|
+
this._materialStrategy = new MaterialThemeGeneratorStrategy();
|
|
17
|
+
}
|
|
18
|
+
// #endregion
|
|
19
|
+
// #region Methods
|
|
20
|
+
generatePalette(baseColor, mode) {
|
|
21
|
+
return this._materialStrategy.generatePalette(baseColor, mode);
|
|
22
|
+
}
|
|
23
|
+
generateScheme(baseColor, mode) {
|
|
24
|
+
return this._materialStrategy.generateScheme(baseColor, mode);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=MemphisThemeGeneratorStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemphisThemeGeneratorStrategy.js","sourceRoot":"","sources":["../../../src/Theming/Strategies/MemphisThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAMlB,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,aAAa;AAEb;;;;;GAKG;AACH,MAAM,OAAO,6BAA6B;IAEtC,iBAAiB;IAEA,iBAAiB,CAAiC;IAEnE,aAAa;IAEb,eAAe;IAEf;QACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,8BAA8B,EAAE,CAAC;IAClE,CAAC;IAED,aAAa;IAEb,kBAAkB;IAEX,eAAe,CAAC,SAAmB,EAAE,IAAsB;QAC9D,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAEM,cAAc,CAAC,SAAmB,EAAE,IAAsB;QAC7D,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;CAIJ"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { IThemeGeneratorStrategy } from './IThemeGeneratorStrategy';
|
|
2
|
+
export { MaterialThemeGeneratorStrategy } from './MaterialThemeGeneratorStrategy';
|
|
3
|
+
export { JoyThemeGeneratorStrategy } from './JoyThemeGeneratorStrategy';
|
|
4
|
+
export { MemphisThemeGeneratorStrategy } from './MemphisThemeGeneratorStrategy';
|
|
5
|
+
export { CosmopolitanThemeGeneratorStrategy } from './CosmopolitanThemeGeneratorStrategy';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Theming/Strategies/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// #region Exports
|
|
2
|
+
export { MaterialThemeGeneratorStrategy } from './MaterialThemeGeneratorStrategy';
|
|
3
|
+
export { JoyThemeGeneratorStrategy } from './JoyThemeGeneratorStrategy';
|
|
4
|
+
export { MemphisThemeGeneratorStrategy } from './MemphisThemeGeneratorStrategy';
|
|
5
|
+
export { CosmopolitanThemeGeneratorStrategy } from './CosmopolitanThemeGeneratorStrategy';
|
|
6
|
+
// #endregion
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Theming/Strategies/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAGlB,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAE1F,aAAa"}
|
|
@@ -6,17 +6,12 @@ import type { IThemeScheme } from './Utils/IThemeScheme';
|
|
|
6
6
|
* @public
|
|
7
7
|
*/
|
|
8
8
|
export declare class ThemeGenerator {
|
|
9
|
+
private readonly _strategies;
|
|
9
10
|
constructor();
|
|
10
11
|
generatePalette(theme: ITheme, baseColor: CssColor, mode: 'dark' | 'light' | 'system'): IThemePalette;
|
|
11
12
|
generateScheme(theme: ITheme, baseColor: CssColor, mode: 'dark' | 'light' | 'system'): IThemeScheme;
|
|
12
|
-
private
|
|
13
|
-
private
|
|
14
|
-
private generateJoyPalette;
|
|
15
|
-
private generateJoyScheme;
|
|
16
|
-
private generateMemphisPalette;
|
|
17
|
-
private generateMemphisScheme;
|
|
18
|
-
private generateCosmopolitanPalette;
|
|
19
|
-
private generateCosmopolitanScheme;
|
|
13
|
+
private resolveMode;
|
|
14
|
+
private getStrategy;
|
|
20
15
|
}
|
|
21
16
|
/**
|
|
22
17
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeGenerator.d.ts","sourceRoot":"","sources":["../../src/Theming/ThemeGenerator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThemeGenerator.d.ts","sourceRoot":"","sources":["../../src/Theming/ThemeGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AASzD;;GAEG;AACH,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;;IAmB5D,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa;IAOrG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY;IAO1G,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,WAAW;CAYtB;AAED;;GAEG;AACH,qBAAa,4BAA4B;IAIrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IAMtD,WAAkB,OAAO,IAAI,cAAc,CAO1C;WAMa,KAAK,IAAI,OAAO;WAIhB,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;CAMnD"}
|
|
@@ -1,157 +1,49 @@
|
|
|
1
1
|
// #region Imports
|
|
2
|
-
import {
|
|
2
|
+
import { MaterialThemeGeneratorStrategy } from './Strategies/MaterialThemeGeneratorStrategy';
|
|
3
|
+
import { JoyThemeGeneratorStrategy } from './Strategies/JoyThemeGeneratorStrategy';
|
|
4
|
+
import { MemphisThemeGeneratorStrategy } from './Strategies/MemphisThemeGeneratorStrategy';
|
|
5
|
+
import { CosmopolitanThemeGeneratorStrategy } from './Strategies/CosmopolitanThemeGeneratorStrategy';
|
|
3
6
|
// #endregion
|
|
4
7
|
/**
|
|
5
8
|
* @public
|
|
6
9
|
*/
|
|
7
10
|
export class ThemeGenerator {
|
|
11
|
+
// #region Fields
|
|
12
|
+
_strategies;
|
|
13
|
+
// #endregion
|
|
8
14
|
// #region Ctor
|
|
9
15
|
constructor() {
|
|
16
|
+
this._strategies = new Map([
|
|
17
|
+
['material', new MaterialThemeGeneratorStrategy()],
|
|
18
|
+
['joy', new JoyThemeGeneratorStrategy()],
|
|
19
|
+
['memphis', new MemphisThemeGeneratorStrategy()],
|
|
20
|
+
['cosmopolitan', new CosmopolitanThemeGeneratorStrategy()]
|
|
21
|
+
]);
|
|
10
22
|
}
|
|
11
23
|
// #endregion
|
|
24
|
+
// #region Methods
|
|
12
25
|
generatePalette(theme, baseColor, mode) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
mode = 'light';
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
let palette = {};
|
|
22
|
-
switch (theme.name) {
|
|
23
|
-
case 'material':
|
|
24
|
-
palette = this.generateMaterialPalette(baseColor, mode);
|
|
25
|
-
break;
|
|
26
|
-
case 'joy':
|
|
27
|
-
palette = this.generateJoyPalette(baseColor, mode);
|
|
28
|
-
break;
|
|
29
|
-
case 'memphis':
|
|
30
|
-
palette = this.generateMemphisPalette(baseColor, mode);
|
|
31
|
-
break;
|
|
32
|
-
case 'cosmopolitan':
|
|
33
|
-
palette = this.generateCosmopolitanPalette(baseColor, mode);
|
|
34
|
-
break;
|
|
35
|
-
default:
|
|
36
|
-
throw new Error(`Theme '${theme.name}' is not supported.`);
|
|
37
|
-
}
|
|
38
|
-
return palette;
|
|
26
|
+
const resolvedMode = this.resolveMode(mode);
|
|
27
|
+
const strategy = this.getStrategy(theme.name);
|
|
28
|
+
return strategy.generatePalette(baseColor, resolvedMode);
|
|
39
29
|
}
|
|
40
30
|
generateScheme(theme, baseColor, mode) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
mode = 'light';
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
let scheme = {};
|
|
50
|
-
switch (theme.name) {
|
|
51
|
-
case 'material':
|
|
52
|
-
scheme = this.generateMaterialScheme(baseColor, mode);
|
|
53
|
-
break;
|
|
54
|
-
case 'joy':
|
|
55
|
-
scheme = this.generateJoyScheme(baseColor, mode);
|
|
56
|
-
break;
|
|
57
|
-
case 'memphis':
|
|
58
|
-
scheme = this.generateMemphisScheme(baseColor, mode);
|
|
59
|
-
break;
|
|
60
|
-
case 'cosmopolitan':
|
|
61
|
-
scheme = this.generateCosmopolitanScheme(baseColor, mode);
|
|
62
|
-
break;
|
|
63
|
-
default:
|
|
64
|
-
throw new Error(`Theme '${theme.name}' is not supported.`);
|
|
65
|
-
}
|
|
66
|
-
return scheme;
|
|
31
|
+
const resolvedMode = this.resolveMode(mode);
|
|
32
|
+
const strategy = this.getStrategy(theme.name);
|
|
33
|
+
return strategy.generateScheme(baseColor, resolvedMode);
|
|
67
34
|
}
|
|
68
|
-
|
|
69
|
-
if (mode === '
|
|
70
|
-
|
|
71
|
-
const baseDark = new TinyColor('#000000');
|
|
72
|
-
const palette = {};
|
|
73
|
-
const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
74
|
-
const amounts = [0, 12, 30, 50, 70, 85, 100, 87, 70, 54, 25];
|
|
75
|
-
steps.forEach((step, i) => {
|
|
76
|
-
const base = step <= 500 ? baseLight : baseDark;
|
|
77
|
-
palette[`${step}`] = new TinyColor(base).mix(baseColor, amounts[i])
|
|
78
|
-
.toHexString();
|
|
79
|
-
});
|
|
80
|
-
return palette;
|
|
35
|
+
resolveMode(mode) {
|
|
36
|
+
if (mode === 'system') {
|
|
37
|
+
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
81
38
|
}
|
|
82
|
-
|
|
83
|
-
const baseDark = new TinyColor('#000000');
|
|
84
|
-
const palette = {};
|
|
85
|
-
const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
86
|
-
const amounts = [0, 15, 30, 45, 60, 75, 90, 100, 70, 54, 25];
|
|
87
|
-
steps.forEach((step, i) => {
|
|
88
|
-
const base = step <= 600 ? baseDark : baseLight;
|
|
89
|
-
palette[`${step}`] = new TinyColor(base).mix(baseColor, amounts[i])
|
|
90
|
-
.toHexString();
|
|
91
|
-
});
|
|
92
|
-
return palette;
|
|
93
|
-
}
|
|
94
|
-
generateMaterialScheme(baseColor, mode) {
|
|
95
|
-
const adjustColor = (color, amount) => `#${color.replace(/^#/, '')
|
|
96
|
-
.replace(/../g, (c) => `0${Math.min(255, Math.max(0, parseInt(c, 16) + amount)).toString(16)}`.slice(-2))}`;
|
|
97
|
-
return {
|
|
98
|
-
background: baseColor,
|
|
99
|
-
foreground: adjustColor(baseColor, mode === 'dark' ? 190 : -190),
|
|
100
|
-
highlight: adjustColor(baseColor, mode === 'dark' ? 30 : -30),
|
|
101
|
-
middlelight: adjustColor(baseColor, -50),
|
|
102
|
-
lowlight: adjustColor(baseColor, -80),
|
|
103
|
-
transparent: `${baseColor}00`,
|
|
104
|
-
semiTransparent: `${baseColor}aa`,
|
|
105
|
-
disabled: adjustColor(baseColor, -40),
|
|
106
|
-
contrast: adjustColor(baseColor, mode === 'dark' ? 190 : -190),
|
|
107
|
-
selection: adjustColor(baseColor, mode === 'dark' ? 30 : -30)
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
generateJoyPalette(baseColor, mode) {
|
|
111
|
-
// YES right 'joy' uses the same palette as 'material'
|
|
112
|
-
return this.generateMaterialPalette(baseColor, mode);
|
|
39
|
+
return mode;
|
|
113
40
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
generateMemphisPalette(baseColor, mode) {
|
|
119
|
-
// YES right 'memphis' uses the same palette as 'material'
|
|
120
|
-
return this.generateMaterialPalette(baseColor, mode);
|
|
121
|
-
}
|
|
122
|
-
generateMemphisScheme(baseColor, mode) {
|
|
123
|
-
// YES right 'memphis' uses the same scheme as 'material'
|
|
124
|
-
return this.generateMaterialScheme(baseColor, mode);
|
|
125
|
-
}
|
|
126
|
-
generateCosmopolitanPalette(baseColor, mode) {
|
|
127
|
-
if (mode === 'light') {
|
|
128
|
-
const baseLight = new TinyColor('#ffffff');
|
|
129
|
-
const baseDark = new TinyColor('#000000');
|
|
130
|
-
const palette = {};
|
|
131
|
-
const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
132
|
-
const amounts = [0, 12, 30, 50, 70, 85, 100, 87, 70, 54, 25];
|
|
133
|
-
steps.forEach((step, i) => {
|
|
134
|
-
const base = step <= 500 ? baseLight : baseDark;
|
|
135
|
-
palette[`${step}`] = new TinyColor(base).mix(baseColor, amounts[i])
|
|
136
|
-
.toHexString();
|
|
137
|
-
});
|
|
138
|
-
return palette;
|
|
41
|
+
getStrategy(themeName) {
|
|
42
|
+
const strategy = this._strategies.get(themeName);
|
|
43
|
+
if (!strategy) {
|
|
44
|
+
throw new Error(`Theme '${themeName}' is not supported.`);
|
|
139
45
|
}
|
|
140
|
-
|
|
141
|
-
const baseDark = new TinyColor('#000000');
|
|
142
|
-
const palette = {};
|
|
143
|
-
const steps = [0, 100, 500];
|
|
144
|
-
const amounts = [0, 30, 100];
|
|
145
|
-
steps.forEach((step, i) => {
|
|
146
|
-
const base = step <= 600 ? baseDark : baseLight;
|
|
147
|
-
palette[`${step}`] = new TinyColor(base).mix(baseColor, amounts[i])
|
|
148
|
-
.toHexString();
|
|
149
|
-
});
|
|
150
|
-
return palette;
|
|
151
|
-
}
|
|
152
|
-
generateCosmopolitanScheme(baseColor, mode) {
|
|
153
|
-
// YES right 'cosmopolitan' uses the same scheme as 'material'
|
|
154
|
-
return this.generateMaterialScheme(baseColor, mode);
|
|
46
|
+
return strategy;
|
|
155
47
|
}
|
|
156
48
|
}
|
|
157
49
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeGenerator.js","sourceRoot":"","sources":["../../src/Theming/ThemeGenerator.ts"],"names":[],"mappings":"AAAA,kBAAkB;
|
|
1
|
+
{"version":3,"file":"ThemeGenerator.js","sourceRoot":"","sources":["../../src/Theming/ThemeGenerator.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAOlB,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,kCAAkC,EAAE,MAAM,iDAAiD,CAAC;AAErG,aAAa;AAEb;;GAEG;AACH,MAAM,OAAO,cAAc;IAEvB,iBAAiB;IAEA,WAAW,CAAuC;IAEnE,aAAa;IAEb,eAAe;IAEf;QACI,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAkC;YACxD,CAAC,UAAU,EAAE,IAAI,8BAA8B,EAAE,CAAC;YAClD,CAAC,KAAK,EAAE,IAAI,yBAAyB,EAAE,CAAC;YACxC,CAAC,SAAS,EAAE,IAAI,6BAA6B,EAAE,CAAC;YAChD,CAAC,cAAc,EAAE,IAAI,kCAAkC,EAAE,CAAC;SAC7D,CAAC,CAAC;IACP,CAAC;IAED,aAAa;IAEb,kBAAkB;IAEX,eAAe,CAAC,KAAa,EAAE,SAAmB,EAAE,IAAiC;QACxF,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAEM,cAAc,CAAC,KAAa,EAAE,SAAmB,EAAE,IAAiC;QACvF,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC;IAEO,WAAW,CAAC,IAAiC;QACjD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACxF,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,SAAiB;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,qBAAqB,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CAIJ;AAED;;GAEG;AACH,MAAM,OAAO,4BAA4B;IAErC,iBAAiB;IAET,MAAM,CAAC,QAAQ,GAA0B,IAAI,CAAC;IAEtD,aAAa;IAEb,qBAAqB;IAEd,MAAM,KAAK,OAAO;QACrB,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QAED,oEAAoE;QACpE,OAAO,4BAA4B,CAAC,QAAS,CAAC;IAClD,CAAC;IAED,aAAa;IAEb,kBAAkB;IAEX,MAAM,CAAC,KAAK;QACf,OAAO,4BAA4B,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,OAAuB;QACrC,4BAA4B,CAAC,QAAQ,GAAG,OAAO,CAAC;IACpD,CAAC;;AAML,4BAA4B,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@breadstone/mosaik-themes",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.173",
|
|
4
4
|
"description": "Mosaik elements various themes.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "andre.wehlert <awehlert@breadstone.de> (https://www.breadstone.de)",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"url": "git+ssh://git@github.com/RueDeRennes/mosaik.git"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@breadstone/mosaik-elements": "^0.0.
|
|
18
|
+
"@breadstone/mosaik-elements": "^0.0.173",
|
|
19
19
|
"@ctrl/tinycolor": "^4.2.0",
|
|
20
20
|
"tslib": "^2.8.1"
|
|
21
21
|
},
|