@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.
Files changed (34) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/Index.d.ts +5 -0
  3. package/Index.d.ts.map +1 -1
  4. package/Index.js +4 -0
  5. package/Index.js.map +1 -1
  6. package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.d.ts +16 -0
  7. package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.d.ts.map +1 -0
  8. package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.js +50 -0
  9. package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.js.map +1 -0
  10. package/Theming/Strategies/IThemeGeneratorStrategy.d.ts +27 -0
  11. package/Theming/Strategies/IThemeGeneratorStrategy.d.ts.map +1 -0
  12. package/Theming/Strategies/IThemeGeneratorStrategy.js +3 -0
  13. package/Theming/Strategies/IThemeGeneratorStrategy.js.map +1 -0
  14. package/Theming/Strategies/JoyThemeGeneratorStrategy.d.ts +17 -0
  15. package/Theming/Strategies/JoyThemeGeneratorStrategy.d.ts.map +1 -0
  16. package/Theming/Strategies/JoyThemeGeneratorStrategy.js +27 -0
  17. package/Theming/Strategies/JoyThemeGeneratorStrategy.js.map +1 -0
  18. package/Theming/Strategies/MaterialThemeGeneratorStrategy.d.ts +15 -0
  19. package/Theming/Strategies/MaterialThemeGeneratorStrategy.d.ts.map +1 -0
  20. package/Theming/Strategies/MaterialThemeGeneratorStrategy.js +86 -0
  21. package/Theming/Strategies/MaterialThemeGeneratorStrategy.js.map +1 -0
  22. package/Theming/Strategies/MemphisThemeGeneratorStrategy.d.ts +17 -0
  23. package/Theming/Strategies/MemphisThemeGeneratorStrategy.d.ts.map +1 -0
  24. package/Theming/Strategies/MemphisThemeGeneratorStrategy.js +27 -0
  25. package/Theming/Strategies/MemphisThemeGeneratorStrategy.js.map +1 -0
  26. package/Theming/Strategies/index.d.ts +6 -0
  27. package/Theming/Strategies/index.d.ts.map +1 -0
  28. package/Theming/Strategies/index.js +7 -0
  29. package/Theming/Strategies/index.js.map +1 -0
  30. package/Theming/ThemeGenerator.d.ts +3 -8
  31. package/Theming/ThemeGenerator.d.ts.map +1 -1
  32. package/Theming/ThemeGenerator.js +29 -137
  33. package/Theming/ThemeGenerator.js.map +1 -1
  34. 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,3 @@
1
+ // #region Imports
2
+ export {};
3
+ //# sourceMappingURL=IThemeGeneratorStrategy.js.map
@@ -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 generateMaterialPalette;
13
- private generateMaterialScheme;
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":"AAGA,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;AAIzD;;GAEG;AACH,qBAAa,cAAc;;IAShB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa;IA+BrG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY;IA+B1G,OAAO,CAAC,uBAAuB;IAgC/B,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,2BAA2B;IAgCnC,OAAO,CAAC,0BAA0B;CAKrC;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
+ {"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 { TinyColor } from '@ctrl/tinycolor';
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
- if (mode === 'system') {
14
- if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
15
- mode = 'dark';
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
- if (mode === 'system') {
42
- if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
43
- mode = 'dark';
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
- generateMaterialPalette(baseColor, mode) {
69
- if (mode === 'light') {
70
- const baseLight = new TinyColor('#ffffff');
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
- const baseLight = new TinyColor('#ffffff');
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
- generateJoyScheme(baseColor, mode) {
115
- // YES right 'joy' uses the same scheme as 'material'
116
- return this.generateMaterialScheme(baseColor, mode);
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
- const baseLight = new TinyColor('#ffffff');
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":"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"}
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.171",
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.171",
18
+ "@breadstone/mosaik-elements": "^0.0.173",
19
19
  "@ctrl/tinycolor": "^4.2.0",
20
20
  "tslib": "^2.8.1"
21
21
  },