@breadstone/mosaik-themes 0.0.180 → 0.0.182

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 (178) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/index.cjs +2922 -0
  3. package/index.cjs.map +1 -0
  4. package/index.d.mts +540 -0
  5. package/index.d.ts +540 -0
  6. package/index.js +2903 -0
  7. package/index.js.map +1 -0
  8. package/package.json +9 -10
  9. package/tailwind/v3/index.d.ts +0 -1
  10. package/tailwind/v3/index.d.ts.map +1 -1
  11. package/tailwind/v3/index.js +0 -4
  12. package/tailwind/v3/index.js.map +1 -1
  13. package/Index.d.ts +0 -30
  14. package/Index.d.ts.map +0 -1
  15. package/Index.js +0 -20
  16. package/Index.js.map +0 -1
  17. package/Theming/BootstrapTheme.d.ts +0 -12
  18. package/Theming/BootstrapTheme.d.ts.map +0 -1
  19. package/Theming/BootstrapTheme.js +0 -138
  20. package/Theming/BootstrapTheme.js.map +0 -1
  21. package/Theming/CosmopolitanTheme.d.ts +0 -13
  22. package/Theming/CosmopolitanTheme.d.ts.map +0 -1
  23. package/Theming/CosmopolitanTheme.js +0 -127
  24. package/Theming/CosmopolitanTheme.js.map +0 -1
  25. package/Theming/FluentTheme.d.ts +0 -4
  26. package/Theming/FluentTheme.d.ts.map +0 -1
  27. package/Theming/FluentTheme.js +0 -12
  28. package/Theming/FluentTheme.js.map +0 -1
  29. package/Theming/JoyTheme.d.ts +0 -13
  30. package/Theming/JoyTheme.d.ts.map +0 -1
  31. package/Theming/JoyTheme.js +0 -437
  32. package/Theming/JoyTheme.js.map +0 -1
  33. package/Theming/MaterialTheme.d.ts +0 -4
  34. package/Theming/MaterialTheme.d.ts.map +0 -1
  35. package/Theming/MaterialTheme.js +0 -12
  36. package/Theming/MaterialTheme.js.map +0 -1
  37. package/Theming/MemphisTheme.d.ts +0 -13
  38. package/Theming/MemphisTheme.d.ts.map +0 -1
  39. package/Theming/MemphisTheme.js +0 -383
  40. package/Theming/MemphisTheme.js.map +0 -1
  41. package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.d.ts +0 -16
  42. package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.d.ts.map +0 -1
  43. package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.js +0 -48
  44. package/Theming/Strategies/CosmopolitanThemeGeneratorStrategy.js.map +0 -1
  45. package/Theming/Strategies/JoyThemeGeneratorStrategy.d.ts +0 -17
  46. package/Theming/Strategies/JoyThemeGeneratorStrategy.d.ts.map +0 -1
  47. package/Theming/Strategies/JoyThemeGeneratorStrategy.js +0 -27
  48. package/Theming/Strategies/JoyThemeGeneratorStrategy.js.map +0 -1
  49. package/Theming/Strategies/MaterialThemeGeneratorStrategy.d.ts +0 -15
  50. package/Theming/Strategies/MaterialThemeGeneratorStrategy.d.ts.map +0 -1
  51. package/Theming/Strategies/MaterialThemeGeneratorStrategy.js +0 -84
  52. package/Theming/Strategies/MaterialThemeGeneratorStrategy.js.map +0 -1
  53. package/Theming/Strategies/MemphisThemeGeneratorStrategy.d.ts +0 -17
  54. package/Theming/Strategies/MemphisThemeGeneratorStrategy.d.ts.map +0 -1
  55. package/Theming/Strategies/MemphisThemeGeneratorStrategy.js +0 -27
  56. package/Theming/Strategies/MemphisThemeGeneratorStrategy.js.map +0 -1
  57. package/Theming/Strategies/TailwindThemeGeneratorStrategy.d.ts +0 -48
  58. package/Theming/Strategies/TailwindThemeGeneratorStrategy.d.ts.map +0 -1
  59. package/Theming/Strategies/TailwindThemeGeneratorStrategy.js +0 -69
  60. package/Theming/Strategies/TailwindThemeGeneratorStrategy.js.map +0 -1
  61. package/Theming/Strategies/index.d.ts +0 -7
  62. package/Theming/Strategies/index.d.ts.map +0 -1
  63. package/Theming/Strategies/index.js +0 -8
  64. package/Theming/Strategies/index.js.map +0 -1
  65. package/Theming/Strategies/interfaces/IThemeGeneratorStrategy.d.ts +0 -27
  66. package/Theming/Strategies/interfaces/IThemeGeneratorStrategy.d.ts.map +0 -1
  67. package/Theming/Strategies/interfaces/IThemeGeneratorStrategy.js +0 -3
  68. package/Theming/Strategies/interfaces/IThemeGeneratorStrategy.js.map +0 -1
  69. package/Theming/ThemeFactory.d.ts +0 -41
  70. package/Theming/ThemeFactory.d.ts.map +0 -1
  71. package/Theming/ThemeFactory.js +0 -58
  72. package/Theming/ThemeFactory.js.map +0 -1
  73. package/Theming/ThemeGenerator.d.ts +0 -25
  74. package/Theming/ThemeGenerator.d.ts.map +0 -1
  75. package/Theming/ThemeGenerator.js +0 -74
  76. package/Theming/ThemeGenerator.js.map +0 -1
  77. package/Theming/ThemeObserver.d.ts +0 -56
  78. package/Theming/ThemeObserver.d.ts.map +0 -1
  79. package/Theming/ThemeObserver.js +0 -135
  80. package/Theming/ThemeObserver.js.map +0 -1
  81. package/Theming/Tokens/BootstrapTokens.d.ts +0 -93
  82. package/Theming/Tokens/BootstrapTokens.d.ts.map +0 -1
  83. package/Theming/Tokens/BootstrapTokens.js +0 -93
  84. package/Theming/Tokens/BootstrapTokens.js.map +0 -1
  85. package/Theming/Tokens/CosmopolitanTokens.d.ts +0 -215
  86. package/Theming/Tokens/CosmopolitanTokens.d.ts.map +0 -1
  87. package/Theming/Tokens/CosmopolitanTokens.js +0 -215
  88. package/Theming/Tokens/CosmopolitanTokens.js.map +0 -1
  89. package/Theming/Tokens/FluentTokens.d.ts +0 -32
  90. package/Theming/Tokens/FluentTokens.d.ts.map +0 -1
  91. package/Theming/Tokens/FluentTokens.js +0 -32
  92. package/Theming/Tokens/FluentTokens.js.map +0 -1
  93. package/Theming/Tokens/JoyTokens.d.ts +0 -502
  94. package/Theming/Tokens/JoyTokens.d.ts.map +0 -1
  95. package/Theming/Tokens/JoyTokens.js +0 -502
  96. package/Theming/Tokens/JoyTokens.js.map +0 -1
  97. package/Theming/Tokens/MaterialTokens.d.ts +0 -24
  98. package/Theming/Tokens/MaterialTokens.d.ts.map +0 -1
  99. package/Theming/Tokens/MaterialTokens.js +0 -24
  100. package/Theming/Tokens/MaterialTokens.js.map +0 -1
  101. package/Theming/Tokens/MemphisTokens.d.ts +0 -394
  102. package/Theming/Tokens/MemphisTokens.d.ts.map +0 -1
  103. package/Theming/Tokens/MemphisTokens.js +0 -394
  104. package/Theming/Tokens/MemphisTokens.js.map +0 -1
  105. package/Theming/Utils/CssAspectRatio.d.ts +0 -14
  106. package/Theming/Utils/CssAspectRatio.d.ts.map +0 -1
  107. package/Theming/Utils/CssAspectRatio.js +0 -31
  108. package/Theming/Utils/CssAspectRatio.js.map +0 -1
  109. package/Theming/Utils/CssColor.d.ts +0 -30
  110. package/Theming/Utils/CssColor.d.ts.map +0 -1
  111. package/Theming/Utils/CssColor.js +0 -23
  112. package/Theming/Utils/CssColor.js.map +0 -1
  113. package/Theming/Utils/CssLength.d.ts +0 -67
  114. package/Theming/Utils/CssLength.d.ts.map +0 -1
  115. package/Theming/Utils/CssLength.js +0 -149
  116. package/Theming/Utils/CssLength.js.map +0 -1
  117. package/Theming/Utils/CssShadow.d.ts +0 -27
  118. package/Theming/Utils/CssShadow.d.ts.map +0 -1
  119. package/Theming/Utils/CssShadow.js +0 -46
  120. package/Theming/Utils/CssShadow.js.map +0 -1
  121. package/Theming/Utils/CssTime.d.ts +0 -18
  122. package/Theming/Utils/CssTime.d.ts.map +0 -1
  123. package/Theming/Utils/CssTime.js +0 -24
  124. package/Theming/Utils/CssTime.js.map +0 -1
  125. package/Theming/Utils/ITheme.d.ts +0 -30
  126. package/Theming/Utils/ITheme.d.ts.map +0 -1
  127. package/Theming/Utils/ITheme.js +0 -37
  128. package/Theming/Utils/ITheme.js.map +0 -1
  129. package/Theming/Utils/IThemeElevation.d.ts +0 -10
  130. package/Theming/Utils/IThemeElevation.d.ts.map +0 -1
  131. package/Theming/Utils/IThemeElevation.js +0 -3
  132. package/Theming/Utils/IThemeElevation.js.map +0 -1
  133. package/Theming/Utils/IThemeLayout.d.ts +0 -12
  134. package/Theming/Utils/IThemeLayout.d.ts.map +0 -1
  135. package/Theming/Utils/IThemeLayout.js +0 -3
  136. package/Theming/Utils/IThemeLayout.js.map +0 -1
  137. package/Theming/Utils/IThemeMetadata.d.ts +0 -15
  138. package/Theming/Utils/IThemeMetadata.d.ts.map +0 -1
  139. package/Theming/Utils/IThemeMetadata.js +0 -3
  140. package/Theming/Utils/IThemeMetadata.js.map +0 -1
  141. package/Theming/Utils/IThemePalette.d.ts +0 -22
  142. package/Theming/Utils/IThemePalette.d.ts.map +0 -1
  143. package/Theming/Utils/IThemePalette.js +0 -18
  144. package/Theming/Utils/IThemePalette.js.map +0 -1
  145. package/Theming/Utils/IThemeScheme.d.ts +0 -10
  146. package/Theming/Utils/IThemeScheme.d.ts.map +0 -1
  147. package/Theming/Utils/IThemeScheme.js +0 -3
  148. package/Theming/Utils/IThemeScheme.js.map +0 -1
  149. package/Theming/Utils/IThemeTypography.d.ts +0 -10
  150. package/Theming/Utils/IThemeTypography.d.ts.map +0 -1
  151. package/Theming/Utils/IThemeTypography.js +0 -3
  152. package/Theming/Utils/IThemeTypography.js.map +0 -1
  153. package/Theming/Utils/IThemeTypographyFontType.d.ts +0 -16
  154. package/Theming/Utils/IThemeTypographyFontType.d.ts.map +0 -1
  155. package/Theming/Utils/IThemeTypographyFontType.js +0 -3
  156. package/Theming/Utils/IThemeTypographyFontType.js.map +0 -1
  157. package/tailwind/v3/factories/index.d.ts +0 -9
  158. package/tailwind/v3/factories/index.d.ts.map +0 -1
  159. package/tailwind/v3/factories/index.js +0 -27
  160. package/tailwind/v3/factories/index.js.map +0 -1
  161. /package/{Themes → themes}/___bootstrap-tokens.css +0 -0
  162. /package/{Themes → themes}/___cosmopolitan-tokens.css +0 -0
  163. /package/{Themes → themes}/___fluent-tokens.css +0 -0
  164. /package/{Themes → themes}/___joy-tokens.css +0 -0
  165. /package/{Themes → themes}/___material-tokens.css +0 -0
  166. /package/{Themes → themes}/___memphis-tokens.css +0 -0
  167. /package/{Themes → themes}/bootstrap-tokens.scss +0 -0
  168. /package/{Themes → themes}/bootstrap.scss +0 -0
  169. /package/{Themes → themes}/cosmopolitan-tokens.scss +0 -0
  170. /package/{Themes → themes}/cosmopolitan.scss +0 -0
  171. /package/{Themes → themes}/fluent-tokens.scss +0 -0
  172. /package/{Themes → themes}/fluent.scss +0 -0
  173. /package/{Themes → themes}/joy-tokens.scss +0 -0
  174. /package/{Themes → themes}/joy.scss +0 -0
  175. /package/{Themes → themes}/material-tokens.scss +0 -0
  176. /package/{Themes → themes}/material.scss +0 -0
  177. /package/{Themes → themes}/memphis-tokens.scss +0 -0
  178. /package/{Themes → themes}/memphis.scss +0 -0
@@ -1,84 +0,0 @@
1
- // #region Imports
2
- import chroma from 'chroma-js';
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 = chroma('#ffffff');
18
- const baseDark = chroma('#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}`] = chroma.mix(base, baseColor, amounts[i] / 100, 'rgb').hex();
25
- });
26
- return palette;
27
- }
28
- const baseLight = chroma('#ffffff');
29
- const baseDark = chroma('#000000');
30
- const palette = {};
31
- const steps = [0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
32
- const amounts = [0, 15, 30, 45, 60, 75, 90, 100, 70, 54, 25];
33
- steps.forEach((step, i) => {
34
- const base = step <= 600 ? baseDark : baseLight;
35
- palette[`${step}`] = chroma.mix(base, baseColor, amounts[i] / 100, 'rgb').hex();
36
- });
37
- return palette;
38
- }
39
- generateScheme(baseColor, mode) {
40
- const baseChroma = chroma(baseColor);
41
- const luminance = baseChroma.luminance();
42
- const isDarkBase = luminance < 0.3;
43
- /**
44
- * Intelligent color adjustment that prevents colors from becoming too dark.
45
- * For dark input colors, colors are lightened instead of darkened.
46
- */
47
- const adjustColor = (color, targetAmount) => {
48
- const c = chroma(color);
49
- const currentLuminance = c.luminance();
50
- // If the color is too dark (luminance < 0.15) and we would darken it,
51
- // reverse direction and lighten instead
52
- if (currentLuminance < 0.15 && targetAmount < 0) {
53
- return c.brighten(Math.abs(targetAmount / 25.5)).hex();
54
- }
55
- // Normal adjustment
56
- if (targetAmount > 0) {
57
- return c.brighten(targetAmount / 25.5).hex();
58
- }
59
- const darkened = c.darken(Math.abs(targetAmount / 25.5));
60
- // Ensure we never reach black (luminance > 0.02)
61
- if (darkened.luminance() < 0.02) {
62
- return c.brighten(Math.abs(targetAmount / 50)).hex();
63
- }
64
- return darkened.hex();
65
- };
66
- // For very dark base colors, invert the logic for certain properties
67
- const middlelightAmount = isDarkBase ? 50 : -50;
68
- const lowlightAmount = isDarkBase ? 80 : -80;
69
- const disabledAmount = isDarkBase ? 40 : -40;
70
- return {
71
- background: baseColor,
72
- foreground: adjustColor(baseColor, mode === 'dark' ? 190 : -190),
73
- highlight: adjustColor(baseColor, mode === 'dark' ? 30 : -30),
74
- middlelight: adjustColor(baseColor, middlelightAmount),
75
- lowlight: adjustColor(baseColor, lowlightAmount),
76
- transparent: `${baseColor}00`,
77
- semiTransparent: `${baseColor}aa`,
78
- disabled: adjustColor(baseColor, disabledAmount),
79
- contrast: adjustColor(baseColor, mode === 'dark' ? 190 : -190),
80
- selection: adjustColor(baseColor, mode === 'dark' ? 30 : -30)
81
- };
82
- }
83
- }
84
- //# sourceMappingURL=MaterialThemeGeneratorStrategy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MaterialThemeGeneratorStrategy.js","sourceRoot":"","sources":["../../../src/Theming/Strategies/MaterialThemeGeneratorStrategy.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
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 './interfaces/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
@@ -1 +0,0 @@
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,sCAAsC,CAAC;AAKpF;;;;;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"}
@@ -1,27 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,48 +0,0 @@
1
- import type { CssColor } from '../Utils/CssColor';
2
- import type { IThemeGeneratorStrategy } from './interfaces/IThemeGeneratorStrategy';
3
- import type { IThemePalette } from '../Utils/IThemePalette';
4
- import type { IThemeScheme } from '../Utils/IThemeScheme';
5
- /**
6
- * Tailwind-like strategy.
7
- *
8
- * Generates a color palette with the following shade steps:
9
- * 50, 100, 200, 300, 400, 500, 600, 700, 800, 900.
10
- *
11
- * Each returned color is a hex string (CssColor).
12
- */
13
- export declare class TailwindThemeGeneratorStrategy implements IThemeGeneratorStrategy {
14
- /**
15
- * Generates a palette of shades based on a base/accent color.
16
- *
17
- * @param baseColor - The base/accent color (e.g. "#3498db")
18
- * @param mode - 'light' or 'dark' mode: determines how light or dark the palette extremes are.
19
- * @returns An IThemePalette mapping each shade step to a hex color.
20
- *
21
- * Example (light mode, baseColor = blue-ish):
22
- * {
23
- * "50": "#f5faff",
24
- * "100": "#e1f3ff",
25
- * ...
26
- * "500": "#3498db",
27
- * ...
28
- * "900": "#0a2d4b"
29
- * }
30
- */
31
- generatePalette(baseColor: CssColor, mode: 'light' | 'dark'): IThemePalette;
32
- /**
33
- * Generates a semantic color scheme for UI usage, based on the generated palette.
34
- *
35
- * @param baseColor - The base/accent color
36
- * @param mode - 'light' or 'dark'
37
- * @returns An IThemeScheme with semantic color roles.
38
- *
39
- * Returned keys:
40
- * - background → shade "50"
41
- * - foreground → shade "900"
42
- * - primary → shade "500"
43
- * - accent → shade "700"
44
- * - muted → shade "300"
45
- */
46
- generateScheme(baseColor: CssColor, mode: 'light' | 'dark'): IThemeScheme;
47
- }
48
- //# sourceMappingURL=TailwindThemeGeneratorStrategy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TailwindThemeGeneratorStrategy.d.ts","sourceRoot":"","sources":["../../../src/Theming/Strategies/TailwindThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;;GAOG;AACH,qBAAa,8BAA+B,YAAW,uBAAuB;IAE1E;;;;;;;;;;;;;;;;OAgBG;IACI,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa;IAkBlF;;;;;;;;;;;;;OAaG;IACI,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,YAAY;CAYnF"}
@@ -1,69 +0,0 @@
1
- // themeStrategies.ts
2
- import chroma from 'chroma-js';
3
- /**
4
- * Tailwind-like strategy.
5
- *
6
- * Generates a color palette with the following shade steps:
7
- * 50, 100, 200, 300, 400, 500, 600, 700, 800, 900.
8
- *
9
- * Each returned color is a hex string (CssColor).
10
- */
11
- export class TailwindThemeGeneratorStrategy {
12
- /**
13
- * Generates a palette of shades based on a base/accent color.
14
- *
15
- * @param baseColor - The base/accent color (e.g. "#3498db")
16
- * @param mode - 'light' or 'dark' mode: determines how light or dark the palette extremes are.
17
- * @returns An IThemePalette mapping each shade step to a hex color.
18
- *
19
- * Example (light mode, baseColor = blue-ish):
20
- * {
21
- * "50": "#f5faff",
22
- * "100": "#e1f3ff",
23
- * ...
24
- * "500": "#3498db",
25
- * ...
26
- * "900": "#0a2d4b"
27
- * }
28
- */
29
- generatePalette(baseColor, mode) {
30
- const steps = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
31
- const base = chroma(baseColor);
32
- const [h, s] = base.hsl();
33
- const palette = {};
34
- steps.forEach((step, idx) => {
35
- const t = idx / (steps.length - 1);
36
- const lightness = mode === 'light'
37
- ? 0.95 - t * 0.6 // from ~95% light → ~35% light
38
- : 0.15 + t * 0.6; // from ~15% light → ~75% light
39
- const col = chroma.hsl(h, s, lightness);
40
- palette[step.toString()] = col.hex();
41
- });
42
- return palette;
43
- }
44
- /**
45
- * Generates a semantic color scheme for UI usage, based on the generated palette.
46
- *
47
- * @param baseColor - The base/accent color
48
- * @param mode - 'light' or 'dark'
49
- * @returns An IThemeScheme with semantic color roles.
50
- *
51
- * Returned keys:
52
- * - background → shade "50"
53
- * - foreground → shade "900"
54
- * - primary → shade "500"
55
- * - accent → shade "700"
56
- * - muted → shade "300"
57
- */
58
- generateScheme(baseColor, mode) {
59
- const p = this.generatePalette(baseColor, mode);
60
- return {
61
- background: p['50'],
62
- foreground: p['900'],
63
- primary: p['500'],
64
- accent: p['700'],
65
- muted: p['300']
66
- };
67
- }
68
- }
69
- //# sourceMappingURL=TailwindThemeGeneratorStrategy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TailwindThemeGeneratorStrategy.js","sourceRoot":"","sources":["../../../src/Theming/Strategies/TailwindThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAAA,qBAAqB;AAErB,OAAO,MAAM,MAAM,WAAW,CAAC;AAM/B;;;;;;;GAOG;AACH,MAAM,OAAO,8BAA8B;IAEvC;;;;;;;;;;;;;;;;OAgBG;IACI,eAAe,CAAC,SAAmB,EAAE,IAAsB;QAC9D,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAA6B,EAAE,CAAC;QAE7C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,IAAI,KAAK,OAAO;gBAC9B,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAG,+BAA+B;gBAClD,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAE,+BAA+B;YACtD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,EAAc,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,cAAc,CAAC,SAAmB,EAAE,IAAsB;QAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEhD,OAAO;YACH,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;YACnB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;YACjB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;SAClB,CAAC;IACN,CAAC;CAEJ"}
@@ -1,7 +0,0 @@
1
- export type { IThemeGeneratorStrategy } from './interfaces/IThemeGeneratorStrategy';
2
- export { MaterialThemeGeneratorStrategy } from './MaterialThemeGeneratorStrategy';
3
- export { JoyThemeGeneratorStrategy } from './JoyThemeGeneratorStrategy';
4
- export { MemphisThemeGeneratorStrategy } from './MemphisThemeGeneratorStrategy';
5
- export { CosmopolitanThemeGeneratorStrategy } from './CosmopolitanThemeGeneratorStrategy';
6
- export { TailwindThemeGeneratorStrategy } from './TailwindThemeGeneratorStrategy';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Theming/Strategies/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,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;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC"}
@@ -1,8 +0,0 @@
1
- // #region Exports
2
- export { MaterialThemeGeneratorStrategy } from './MaterialThemeGeneratorStrategy';
3
- export { JoyThemeGeneratorStrategy } from './JoyThemeGeneratorStrategy';
4
- export { MemphisThemeGeneratorStrategy } from './MemphisThemeGeneratorStrategy';
5
- export { CosmopolitanThemeGeneratorStrategy } from './CosmopolitanThemeGeneratorStrategy';
6
- export { TailwindThemeGeneratorStrategy } from './TailwindThemeGeneratorStrategy';
7
- // #endregion
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,aAAa"}
@@ -1,27 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"IThemeGeneratorStrategy.d.ts","sourceRoot":"","sources":["../../../../src/Theming/Strategies/interfaces/IThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D;;;;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"}
@@ -1,3 +0,0 @@
1
- // #region Imports
2
- export {};
3
- //# sourceMappingURL=IThemeGeneratorStrategy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IThemeGeneratorStrategy.js","sourceRoot":"","sources":["../../../../src/Theming/Strategies/interfaces/IThemeGeneratorStrategy.ts"],"names":[],"mappings":"AAAA,kBAAkB"}
@@ -1,41 +0,0 @@
1
- import type { IThemeElevation } from './Utils/IThemeElevation';
2
- import type { IThemeLayout } from './Utils/IThemeLayout';
3
- import type { ITheme } from './Utils/ITheme';
4
- import type { CssColor } from './Utils/CssColor';
5
- import type { IThemePalette } from './Utils/IThemePalette';
6
- import type { IThemeScheme } from './Utils/IThemeScheme';
7
- import type { IThemeTypography } from './Utils/IThemeTypography';
8
- /**
9
- * @private
10
- */
11
- export interface IThemeInit {
12
- name: string;
13
- scheme?: Record<string, IThemeScheme>;
14
- palette?: Record<string, Record<string, IThemePalette | CssColor>>;
15
- fontFamily?: string;
16
- typography?: IThemeTypography;
17
- layout?: IThemeLayout;
18
- elevation?: Record<string, IThemeElevation>;
19
- }
20
- /**
21
- * Factory for creating fully dynamic themes.
22
- *
23
- * @private
24
- */
25
- export declare class ThemeFactory {
26
- /**
27
- * Creates a new theme.
28
- *
29
- * @public
30
- * @static
31
- */
32
- static create(init: IThemeInit): ITheme;
33
- /**
34
- * Merges the given theme with the initial theme.
35
- *
36
- * @public
37
- * @static
38
- */
39
- static merge(init: IThemeInit, theme: ITheme): ITheme;
40
- }
41
- //# sourceMappingURL=ThemeFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeFactory.d.ts","sourceRoot":"","sources":["../../src/Theming/ThemeFactory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC/C;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAErB;;;;;OAKG;WACW,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAY9C;;;;;OAKG;WACW,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;CA2B/D"}
@@ -1,58 +0,0 @@
1
- // #region Imports
2
- /**
3
- * Factory for creating fully dynamic themes.
4
- *
5
- * @private
6
- */
7
- export class ThemeFactory {
8
- /**
9
- * Creates a new theme.
10
- *
11
- * @public
12
- * @static
13
- */
14
- static create(init) {
15
- return {
16
- name: init.name,
17
- scheme: init.scheme ?? {},
18
- palette: init.palette ?? {},
19
- fontFamily: init.fontFamily ?? '',
20
- typography: init.typography ?? {},
21
- layout: init.layout ?? {},
22
- elevation: init.elevation ?? {}
23
- };
24
- }
25
- /**
26
- * Merges the given theme with the initial theme.
27
- *
28
- * @public
29
- * @static
30
- */
31
- static merge(init, theme) {
32
- return {
33
- name: init.name,
34
- scheme: {
35
- ...theme.scheme,
36
- ...init.scheme
37
- },
38
- palette: {
39
- ...theme.palette,
40
- ...init.palette
41
- },
42
- fontFamily: init.fontFamily ?? theme.fontFamily,
43
- typography: {
44
- ...theme.typography,
45
- ...init.typography
46
- },
47
- layout: {
48
- ...theme.layout,
49
- ...init.layout
50
- },
51
- elevation: {
52
- ...theme.elevation,
53
- ...init.elevation
54
- }
55
- };
56
- }
57
- }
58
- //# sourceMappingURL=ThemeFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeFactory.js","sourceRoot":"","sources":["../../src/Theming/ThemeFactory.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAyBlB;;;;GAIG;AACH,MAAM,OAAO,YAAY;IAErB;;;;;OAKG;IACI,MAAM,CAAC,MAAM,CAAC,IAAgB;QACjC,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACjC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;SAClC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,IAAgB,EAAE,KAAa;QAC/C,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE;gBACJ,GAAG,KAAK,CAAC,MAAM;gBACf,GAAG,IAAI,CAAC,MAAM;aACjB;YACD,OAAO,EAAE;gBACL,GAAG,KAAK,CAAC,OAAO;gBAChB,GAAG,IAAI,CAAC,OAAO;aAClB;YACD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU;YAC/C,UAAU,EAAE;gBACR,GAAG,KAAK,CAAC,UAAU;gBACnB,GAAG,IAAI,CAAC,UAAU;aACrB;YACD,MAAM,EAAE;gBACJ,GAAG,KAAK,CAAC,MAAM;gBACf,GAAG,IAAI,CAAC,MAAM;aACjB;YACD,SAAS,EAAE;gBACP,GAAG,KAAK,CAAC,SAAS;gBAClB,GAAG,IAAI,CAAC,SAAS;aACpB;SACJ,CAAC;IACN,CAAC;CAEJ"}
@@ -1,25 +0,0 @@
1
- import type { ITheme } from './Utils/ITheme';
2
- import type { IThemePalette } from './Utils/IThemePalette';
3
- import type { CssColor } from './Utils/CssColor';
4
- import type { IThemeScheme } from './Utils/IThemeScheme';
5
- /**
6
- * @public
7
- */
8
- export declare class ThemeGenerator {
9
- private readonly _strategies;
10
- constructor();
11
- generatePalette(theme: ITheme, baseColor: CssColor, mode: 'dark' | 'light' | 'system'): IThemePalette;
12
- generateScheme(theme: ITheme, baseColor: CssColor, mode: 'dark' | 'light' | 'system'): IThemeScheme;
13
- private resolveMode;
14
- private getStrategy;
15
- }
16
- /**
17
- * @public
18
- */
19
- export declare class ThemeGeneratorServiceLocator {
20
- private static _current;
21
- static get current(): ThemeGenerator;
22
- static isSet(): boolean;
23
- static set(current: ThemeGenerator): void;
24
- }
25
- //# sourceMappingURL=ThemeGenerator.d.ts.map
@@ -1 +0,0 @@
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,74 +0,0 @@
1
- // #region Imports
2
- import { MaterialThemeGeneratorStrategy } from './Strategies/MaterialThemeGeneratorStrategy';
3
- import { JoyThemeGeneratorStrategy } from './Strategies/JoyThemeGeneratorStrategy';
4
- import { MemphisThemeGeneratorStrategy } from './Strategies/MemphisThemeGeneratorStrategy';
5
- import { CosmopolitanThemeGeneratorStrategy } from './Strategies/CosmopolitanThemeGeneratorStrategy';
6
- // #endregion
7
- /**
8
- * @public
9
- */
10
- export class ThemeGenerator {
11
- // #region Fields
12
- _strategies;
13
- // #endregion
14
- // #region Ctor
15
- constructor() {
16
- this._strategies = new Map([
17
- ['material', new MaterialThemeGeneratorStrategy()],
18
- ['joy', new JoyThemeGeneratorStrategy()],
19
- ['memphis', new MemphisThemeGeneratorStrategy()],
20
- ['cosmopolitan', new CosmopolitanThemeGeneratorStrategy()]
21
- ]);
22
- }
23
- // #endregion
24
- // #region Methods
25
- generatePalette(theme, baseColor, mode) {
26
- const resolvedMode = this.resolveMode(mode);
27
- const strategy = this.getStrategy(theme.name);
28
- return strategy.generatePalette(baseColor, resolvedMode);
29
- }
30
- generateScheme(theme, baseColor, mode) {
31
- const resolvedMode = this.resolveMode(mode);
32
- const strategy = this.getStrategy(theme.name);
33
- return strategy.generateScheme(baseColor, resolvedMode);
34
- }
35
- resolveMode(mode) {
36
- if (mode === 'system') {
37
- return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
38
- }
39
- return mode;
40
- }
41
- getStrategy(themeName) {
42
- const strategy = this._strategies.get(themeName);
43
- if (!strategy) {
44
- throw new Error(`Theme '${themeName}' is not supported.`);
45
- }
46
- return strategy;
47
- }
48
- }
49
- /**
50
- * @public
51
- */
52
- export class ThemeGeneratorServiceLocator {
53
- // #region Fields
54
- static _current = null;
55
- // #endregion
56
- // #region Properties
57
- static get current() {
58
- if (!ThemeGeneratorServiceLocator.isSet()) {
59
- throw new Error('\'ThemeGenerator\' not set.');
60
- }
61
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
62
- return ThemeGeneratorServiceLocator._current;
63
- }
64
- // #endregion
65
- // #region Methods
66
- static isSet() {
67
- return ThemeGeneratorServiceLocator._current !== null;
68
- }
69
- static set(current) {
70
- ThemeGeneratorServiceLocator._current = current;
71
- }
72
- }
73
- ThemeGeneratorServiceLocator.set(new ThemeGenerator());
74
- //# sourceMappingURL=ThemeGenerator.js.map
@@ -1 +0,0 @@
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"}
@@ -1,56 +0,0 @@
1
- import { type IEventEmitter } from '@breadstone/mosaik-elements';
2
- /**
3
- * Theme mode.
4
- *
5
- * @public
6
- */
7
- export type ThemeMode = 'system' | 'dark' | 'light';
8
- /**
9
- * Checks if the given value is a theme mode.
10
- *
11
- * @public
12
- */
13
- export declare function isThemeMode(value: unknown): value is ThemeMode;
14
- /**
15
- * Observer for applying themes.
16
- *
17
- * @public
18
- */
19
- export declare class ThemeObserver {
20
- private readonly _themeChanged;
21
- private readonly _themeModeChanged;
22
- private _currentTheme;
23
- private _currentThemeMode;
24
- /**
25
- * Constructs a new instance of the `ThemeObserver` class.
26
- *
27
- * @public
28
- */
29
- constructor();
30
- /**
31
- * Fires when the theme changes.
32
- *
33
- * @public
34
- * @readonly
35
- */
36
- get themeChanged(): IEventEmitter<string>;
37
- /**
38
- * Fires when the theme mode changes.
39
- *
40
- * @public
41
- * @readonly
42
- */
43
- get themeModeChanged(): IEventEmitter<ThemeMode>;
44
- applyTheme(theme: string, themeMode: ThemeMode): void;
45
- private observe;
46
- }
47
- /**
48
- * @public
49
- */
50
- export declare class ThemeObserverServiceLocator {
51
- private static _current;
52
- static get current(): ThemeObserver;
53
- static isSet(): boolean;
54
- static set(current: ThemeObserver): void;
55
- }
56
- //# sourceMappingURL=ThemeObserver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeObserver.d.ts","sourceRoot":"","sources":["../../src/Theming/ThemeObserver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAoB,MAAM,6BAA6B,CAAC;AAInF;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D;AAED;;;;GAIG;AACH,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8B;IAChE,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAmB;IAI5C;;;;OAIG;;IAiBH;;;;;OAKG;IACH,IAAW,YAAY,IAAI,aAAa,CAAC,MAAM,CAAC,CAE/C;IAED;;;;;OAKG;IACH,IAAW,gBAAgB,IAAI,aAAa,CAAC,SAAS,CAAC,CAEtD;IAMM,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAmB5D,OAAO,CAAC,OAAO;CA2ClB;AAED;;GAEG;AACH,qBAAa,2BAA2B;IAIpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAMrD,WAAkB,OAAO,IAAI,aAAa,CAOzC;WAMa,KAAK,IAAI,OAAO;WAIhB,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;CAMlD"}