igniteui-theming 25.1.0 → 25.2.0

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 (128) hide show
  1. package/dist/index.d.ts +75 -0
  2. package/dist/index.js +12 -0
  3. package/dist/json/components/bootstrap.json +1 -0
  4. package/dist/json/components/fluent.json +1 -0
  5. package/dist/json/components/indigo.json +1 -0
  6. package/dist/json/components/material.json +1 -0
  7. package/{json → dist/json}/components/themes.json +31 -1
  8. package/dist/mcp/generators/css.d.ts +7 -4
  9. package/dist/mcp/generators/css.js +129 -104
  10. package/dist/mcp/generators/sass.js +227 -254
  11. package/dist/mcp/index.js +259 -323
  12. package/dist/mcp/knowledge/color-usage.js +524 -502
  13. package/dist/mcp/knowledge/colors.js +61 -50
  14. package/dist/mcp/knowledge/component-metadata.js +697 -598
  15. package/dist/mcp/knowledge/component-themes.js +70 -57
  16. package/dist/mcp/knowledge/custom-palettes.js +4 -9
  17. package/dist/mcp/knowledge/docs/colors/guidance.js +4 -0
  18. package/dist/mcp/knowledge/docs/colors/usage.js +4 -0
  19. package/dist/mcp/knowledge/docs/layout/functions/border-radius.js +4 -0
  20. package/dist/mcp/knowledge/docs/layout/functions/pad.js +4 -0
  21. package/dist/mcp/knowledge/docs/layout/functions/sizable.js +4 -0
  22. package/dist/mcp/knowledge/docs/layout/mixins/sizable.js +4 -0
  23. package/dist/mcp/knowledge/docs/layout/mixins/sizing.js +4 -0
  24. package/dist/mcp/knowledge/docs/layout/mixins/spacing.js +4 -0
  25. package/dist/mcp/knowledge/docs/layout/overview.js +4 -0
  26. package/dist/mcp/knowledge/docs/setup/platform.js +4 -0
  27. package/dist/mcp/knowledge/elevations.d.ts +1 -1
  28. package/dist/mcp/knowledge/elevations.js +26 -12
  29. package/dist/mcp/knowledge/index.js +23 -87
  30. package/dist/mcp/knowledge/layout-docs.d.ts +1 -1
  31. package/dist/mcp/knowledge/multipliers.js +5 -0
  32. package/dist/mcp/knowledge/palettes.js +29 -17
  33. package/dist/mcp/knowledge/platforms/angular.js +98 -120
  34. package/dist/mcp/knowledge/platforms/blazor.js +39 -34
  35. package/dist/mcp/knowledge/platforms/common.js +83 -68
  36. package/dist/mcp/knowledge/platforms/index.js +265 -242
  37. package/dist/mcp/knowledge/platforms/react.js +43 -35
  38. package/dist/mcp/knowledge/platforms/webcomponents.js +266 -292
  39. package/dist/mcp/knowledge/sass-api.js +1 -0
  40. package/dist/mcp/knowledge/typography.js +13 -5
  41. package/dist/mcp/resources/index.js +1 -0
  42. package/dist/mcp/resources/presets.js +409 -508
  43. package/dist/mcp/theming/dist/json/colors/meta/multipliers.js +50 -0
  44. package/dist/mcp/theming/dist/json/colors/presets/palettes.js +85 -0
  45. package/dist/mcp/theming/dist/json/components/themes.js +5792 -0
  46. package/dist/mcp/theming/dist/json/elevations/indigo.js +29 -0
  47. package/dist/mcp/theming/dist/json/elevations/material.js +3 -0
  48. package/dist/mcp/theming/dist/json/typography/presets/typescales.js +621 -0
  49. package/dist/mcp/tools/descriptions.js +98 -154
  50. package/dist/mcp/tools/handlers/color.js +58 -56
  51. package/dist/mcp/tools/handlers/component-theme.js +163 -225
  52. package/dist/mcp/tools/handlers/component-tokens.js +159 -219
  53. package/dist/mcp/tools/handlers/custom-palette.js +138 -179
  54. package/dist/mcp/tools/handlers/elevations.js +27 -28
  55. package/dist/mcp/tools/handlers/index.js +11 -0
  56. package/dist/mcp/tools/handlers/layout.js +125 -176
  57. package/dist/mcp/tools/handlers/palette.js +105 -120
  58. package/dist/mcp/tools/handlers/platform.js +289 -311
  59. package/dist/mcp/tools/handlers/resource.js +22 -31
  60. package/dist/mcp/tools/handlers/theme.js +86 -103
  61. package/dist/mcp/tools/handlers/typography.js +29 -30
  62. package/dist/mcp/tools/index.js +13 -0
  63. package/dist/mcp/tools/schemas.js +239 -218
  64. package/dist/mcp/utils/color.js +277 -239
  65. package/dist/mcp/utils/preprocessing.js +57 -30
  66. package/dist/mcp/utils/result.js +43 -45
  67. package/dist/mcp/utils/sass.js +271 -191
  68. package/dist/mcp/utils/theming-resolve.d.ts +19 -0
  69. package/dist/mcp/utils/theming-resolve.js +57 -0
  70. package/dist/mcp/utils/types.js +96 -53
  71. package/dist/mcp/validators/custom-palette.js +218 -243
  72. package/dist/mcp/validators/index.js +3 -0
  73. package/dist/mcp/validators/palette.js +231 -229
  74. package/dist/tailwind/utilities/bootstrap.css +1 -0
  75. package/dist/tailwind/utilities/fluent.css +1 -0
  76. package/dist/tailwind/utilities/indigo.css +1 -0
  77. package/dist/tailwind/utilities/material.css +1 -0
  78. package/package.json +45 -64
  79. package/sass/json/README.md +12 -7
  80. package/sass/themes/_mixins.scss +1 -0
  81. package/sass/themes/components/button-group/_button-group-theme.scss +42 -0
  82. package/sass/themes/components/grid/_grid-theme.scss +1 -1
  83. package/sass/themes/schemas/components/dark/_button-group.scss +173 -50
  84. package/sass/themes/schemas/components/dark/_grid.scss +0 -16
  85. package/sass/themes/schemas/components/light/_button-group.scss +221 -99
  86. package/sass/themes/schemas/components/light/_grid.scss +14 -20
  87. package/LICENSE +0 -21
  88. package/README.md +0 -391
  89. package/dist/mcp/json/colors/presets/palettes.json.js +0 -13
  90. package/dist/mcp/json/components/themes.json.js +0 -143
  91. package/dist/mcp/json/elevations/indigo.json.js +0 -8
  92. package/dist/mcp/json/elevations/material.json.js +0 -8
  93. package/dist/mcp/json/typography/presets/typescales.json.js +0 -17
  94. package/dist/mcp/knowledge/docs/colors/guidance.md.js +0 -4
  95. package/dist/mcp/knowledge/docs/colors/usage.md.js +0 -4
  96. package/dist/mcp/knowledge/docs/layout/functions/border-radius.md.js +0 -4
  97. package/dist/mcp/knowledge/docs/layout/functions/pad.md.js +0 -4
  98. package/dist/mcp/knowledge/docs/layout/functions/sizable.md.js +0 -4
  99. package/dist/mcp/knowledge/docs/layout/mixins/sizable.md.js +0 -4
  100. package/dist/mcp/knowledge/docs/layout/mixins/sizing.md.js +0 -4
  101. package/dist/mcp/knowledge/docs/layout/mixins/spacing.md.js +0 -4
  102. package/dist/mcp/knowledge/docs/layout/overview.md.js +0 -4
  103. package/dist/mcp/knowledge/docs/setup/platform.md.js +0 -4
  104. package/dist/mcp/vite-env.d.ts +0 -18
  105. package/index.js +0 -5
  106. package/json/components/bootstrap.json +0 -1
  107. package/json/components/fluent.json +0 -1
  108. package/json/components/indigo.json +0 -1
  109. package/json/components/material.json +0 -1
  110. package/tailwind/utilities/bootstrap.css +0 -1
  111. package/tailwind/utilities/fluent.css +0 -1
  112. package/tailwind/utilities/indigo.css +0 -1
  113. package/tailwind/utilities/material.css +0 -1
  114. /package/{json → dist/json}/colors/meta/multipliers.json +0 -0
  115. /package/{json → dist/json}/colors/meta/palette.json +0 -0
  116. /package/{json → dist/json}/colors/presets/palettes.json +0 -0
  117. /package/{json → dist/json}/elevations/indigo.json +0 -0
  118. /package/{json → dist/json}/elevations/material.json +0 -0
  119. /package/{json → dist/json}/typography/presets/typescales.json +0 -0
  120. /package/{tailwind → dist/tailwind}/themes/base.css +0 -0
  121. /package/{tailwind → dist/tailwind}/themes/dark/bootstrap.css +0 -0
  122. /package/{tailwind → dist/tailwind}/themes/dark/fluent.css +0 -0
  123. /package/{tailwind → dist/tailwind}/themes/dark/indigo.css +0 -0
  124. /package/{tailwind → dist/tailwind}/themes/dark/material.css +0 -0
  125. /package/{tailwind → dist/tailwind}/themes/light/bootstrap.css +0 -0
  126. /package/{tailwind → dist/tailwind}/themes/light/fluent.css +0 -0
  127. /package/{tailwind → dist/tailwind}/themes/light/indigo.css +0 -0
  128. /package/{tailwind → dist/tailwind}/themes/light/material.css +0 -0
package/package.json CHANGED
@@ -1,39 +1,37 @@
1
1
  {
2
2
  "name": "igniteui-theming",
3
- "version": "25.1.0",
3
+ "version": "25.2.0",
4
4
  "description": "A set of Sass variables, mixins, and functions for generating palettes, typography, and elevations used by Ignite UI components.",
5
- "main": "index.js",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
6
7
  "type": "module",
7
8
  "bin": {
8
9
  "igniteui-theming-mcp": "./dist/mcp/index.js"
9
10
  },
10
11
  "scripts": {
11
- "clean": "npm run clean:json && npm run clean:mcp && npm run clean:docs",
12
- "clean:json": "shx rm -rf json",
13
- "clean:docs": "shx rm -rf docs",
14
- "clean:tailwind": "shx rm -rf tailwind",
15
- "clean:mcp": "shx rm -rf dist/mcp",
16
- "build": "npm run clean && npm run build:tailwind && npm run build:e2e && npm run build:mcp",
12
+ "build": "npm run clean && npm run build:tailwind && npm run build:json && npm run build:mcp && npm run build:e2e",
13
+ "build:json": "node .scripts/buildJSON.mjs && node .scripts/buildComponentDocs.mjs && node .scripts/buildBarrel.mjs",
14
+ "build:tailwind": "npm run clean:tailwind && node .scripts/buildTailwind.mjs",
15
+ "build:mcp": "npm run build --prefix ../mcp && shx cp -r ../mcp/dist ./dist/mcp",
17
16
  "build:docs": "npm run clean:docs && npm run build:docs:en:production",
18
17
  "build:docs:en:production": "set NODE_ENV=production && npx sassdoc ./sass -d docs",
19
18
  "build:docs:en:staging": "set NODE_ENV=staging && npx sassdoc ./sass -d docs",
20
- "build:e2e": "sass --quiet ./test/e2e/theme.scss ./test/e2e/theme.css",
21
- "build:json": "node scripts/buildJSON.mjs && node scripts/buildComponentDocs.mjs",
22
- "build:tailwind": "npm run clean:tailwind && node scripts/buildTailwind.mjs",
23
- "build:mcp": "npm run build:json && vite build",
24
- "serve:docs": "npx http-server ./docs",
25
- "preview:palette": "node scripts/previewPalette.mjs",
26
- "lint": "npm run lint:biome && npm run lint:styles && npm run lint:prettier && npm run lint:sassdoc",
27
- "lint:biome": "biome check",
19
+ "build:e2e": "sass --quiet ./tests/e2e/theme.scss ./tests/e2e/theme.css",
20
+ "clean": "npm run clean:json && npm run clean:tailwind && npm run clean:mcp && npm run clean:docs",
21
+ "clean:json": "shx rm -rf dist/json",
22
+ "clean:tailwind": "shx rm -rf dist/tailwind",
23
+ "clean:mcp": "shx rm -rf dist/mcp",
24
+ "clean:docs": "shx rm -rf docs",
25
+ "preview:palette": "node .scripts/previewPalette.mjs",
26
+ "serve:docs": "npx serve ./docs",
27
+ "lint": "npm run lint:styles && npm run lint:prettier && npm run lint:sassdoc",
28
28
  "lint:styles": "stylelint ./sass/**/*.scss --fix",
29
29
  "lint:prettier": "prettier \"./sass/**/*.scss\" --check --ignore-path .gitignore",
30
30
  "lint:sassdoc": "ast-grep scan --error",
31
- "fix:sassdoc": "node scripts/fixSassdoc.mjs",
32
- "format": "biome check --fix && stylelint \"./sass/**/*.{scss,css}\" --fix --allow-empty-input --ignore-path .gitignore && prettier \"./sass/**/*.{scss,css}\" --write --ignore-path .gitignore",
33
- "prepare": "husky install && node scripts/setup-grammars.mjs",
34
- "mcp:inspector": "npx @modelcontextprotocol/inspector dist/mcp/index.js",
35
- "test": "vitest run",
36
- "coverage": "vitest run --coverage"
31
+ "fix:sassdoc": "node .scripts/fixSassdoc.mjs",
32
+ "format": "stylelint \"./sass/**/*.{scss,css}\" --fix --allow-empty-input --ignore-path .gitignore && prettier \"./sass/**/*.{scss,css}\" --write --ignore-path .gitignore",
33
+ "prepare": "node .scripts/setup-grammars.mjs",
34
+ "test": "vitest run"
37
35
  },
38
36
  "lint-staged": {
39
37
  "*.{js,ts,cjs,mjs,jsx,tsx}": [
@@ -46,23 +44,26 @@
46
44
  },
47
45
  "files": [
48
46
  "sass/",
49
- "json/",
50
- "tailwind/",
51
- "dist/mcp/",
47
+ "dist/",
52
48
  "_index.scss"
53
49
  ],
54
50
  "repository": {
55
51
  "type": "git",
56
- "url": "git+https://github.com/IgniteUI/igniteui-theming.git"
52
+ "url": "git+https://github.com/IgniteUI/igniteui-theming.git",
53
+ "directory": "packages/theming"
57
54
  },
58
55
  "keywords": [
59
56
  "sass",
57
+ "scss",
60
58
  "Ignite",
61
59
  "UI",
62
60
  "theming",
63
61
  "palettes",
64
62
  "elevations",
65
- "typography"
63
+ "typography",
64
+ "design systems",
65
+ "model context protocol",
66
+ "mcp"
66
67
  ],
67
68
  "author": "Infragistics",
68
69
  "license": "MIT",
@@ -73,65 +74,45 @@
73
74
  "exports": {
74
75
  ".": {
75
76
  "sass": "./_index.scss",
76
- "tailwind": "./theme.css",
77
- "esm2020": "./index.js",
78
- "es2020": "./index.js",
79
- "es2015": "./index.js",
80
- "node": "./index.js",
81
- "default": "./index.js"
82
- },
83
- "./functions": {
84
- "sass": "./sass/_functions.scss"
77
+ "tailwind": "./dist/tailwind/theme.css",
78
+ "node": "./dist/index.js",
79
+ "default": "./dist/index.js"
85
80
  },
81
+ "./package.json": "./package.json",
86
82
  "./sass/**/*.*": "./sass/**/*.*",
87
- "./tailwind/*": "./tailwind/*",
88
- "./json/colors/meta/multipliers.json": "./json/colors/meta/multipliers.json",
89
- "./json/colors/meta/palette.json": "./json/colors/meta/palette.json",
90
- "./json/colors/presets/palettes.json": "./json/colors/presets/palettes.json",
91
- "./json/elevations/indigo.json": "./json/elevations/indigo.json",
92
- "./json/elevations/material.json": "./json/elevations/material.json",
93
- "./json/typography/presets/typescales.json": "./json/typography/presets/typescales.json",
83
+ "./tailwind/*": "./dist/tailwind/*",
84
+ "./json/colors/meta/multipliers.json": "./dist/json/colors/meta/multipliers.json",
85
+ "./json/colors/meta/palette.json": "./dist/json/colors/meta/palette.json",
86
+ "./json/colors/presets/palettes.json": "./dist/json/colors/presets/palettes.json",
87
+ "./json/components/themes.json": "./dist/json/components/themes.json",
88
+ "./json/elevations/indigo.json": "./dist/json/elevations/indigo.json",
89
+ "./json/elevations/material.json": "./dist/json/elevations/material.json",
90
+ "./json/typography/presets/typescales.json": "./dist/json/typography/presets/typescales.json",
94
91
  "./mcp": {
95
92
  "import": "./dist/mcp/index.js"
96
93
  }
97
94
  },
98
95
  "dependencies": {
99
- "@modelcontextprotocol/sdk": "^1.25.0",
96
+ "@modelcontextprotocol/sdk": "^1.28.0",
100
97
  "sass-embedded": "~1.92.1",
101
98
  "zod": "^3.25.76"
102
99
  },
103
100
  "devDependencies": {
104
- "@ast-grep/cli": "^0.41.0",
105
- "@biomejs/biome": "^2.4.2",
106
- "@types/node": "^22.0.0",
101
+ "@ast-grep/cli": "^0.42.0",
107
102
  "@types/postcss-safe-parser": "^5.0.4",
108
- "@vitest/coverage-v8": "^4.0.16",
109
- "eslint": "^8.57.0",
110
- "eslint-config-prettier": "^9.1.0",
111
- "eslint-plugin-import": "^2.29.1",
112
- "eslint-plugin-prettier": "^5.1.3",
113
- "globby": "^13.1.4",
114
- "husky": "^8.0.3",
115
103
  "igniteui-sassdoc-theme": "^1.1.6",
116
104
  "lunr": "^2.3.9",
117
105
  "postcss": "^8.4.35",
118
106
  "postcss-safe-parser": "^7.0.0",
119
- "prettier": "^3.2.5",
120
107
  "sass-true": "^9.0.0",
121
108
  "sassdoc": "^2.7.4",
122
109
  "sassdoc-plugin-localization": "^2.0.0",
123
- "shx": "^0.3.4",
124
- "stylelint": "^17.3.0",
110
+ "stylelint": "^17.5.0",
125
111
  "stylelint-config-standard-scss": "^17.0.0",
126
- "stylelint-scss": "^7.0.0",
127
- "tsx": "^4.0.0",
128
- "typescript": "^5.7.0",
129
- "vite": "^7.3.1",
130
- "vite-plugin-dts": "^4.5.4",
131
- "vitest": "^4.0.15"
112
+ "stylelint-scss": "^7.0.0"
132
113
  },
133
114
  "treeSitterGrammars": {
134
- "tree-sitter-scss": "v0.1.0",
115
+ "tree-sitter-scss": "v0.2.0",
135
116
  "tree-sitter-sassdoc": "v0.1.0"
136
117
  }
137
118
  }
@@ -1,28 +1,29 @@
1
1
  # What is this?
2
2
 
3
- This folder contains generator files that can be used by the `src/buildJSON.mjs` script to produce JSON files containing serialized information about various parts of the theming package (ex. palettes, typography, elevations, etc.);
3
+ This folder contains generator files that can be used by the `buildJSON.mjs` script to produce JSON files containing serialized information about various parts of the theming package (ex. palettes, typography, elevations, etc.);
4
4
 
5
- The `generators.scss` file contains declarations for how each of the JSON files should be generated, where each file should be placed and what its contents are.
5
+ The `generators.scss` file contains declarations for how each of the JSON files should be generated, where each file should be placed and what its contents are.
6
6
 
7
- To achieve this a small [DSL](https://en.wikipedia.org/wiki/Domain-specific_language) on top of CSS is used. A tiny [parser](../../scripts/parser.mjs) handles the transformation of this custom CSS into JSON.
7
+ To achieve this a small [DSL](https://en.wikipedia.org/wiki/Domain-specific_language) on top of CSS is used. A tiny [parser](../../.scripts/parser.mjs) handles the transformation of this custom CSS into JSON.
8
8
 
9
9
  From this point on, this document explains the syntax of the DSL.
10
10
 
11
11
  ## Base Syntax
12
12
 
13
13
  #### Example of the DSL syntax (Input)
14
+
14
15
  ```css
15
16
  /*
16
17
  * @outputDir - /custom
17
18
  */
18
19
  example {
19
- --content: "Hello, World!"
20
+ --content: 'Hello, World!';
20
21
  }
21
22
  ```
22
23
 
23
24
  The declaration above will produce the following JSON file when `$ npm run build:json` is run.
24
25
 
25
- #### Output (`igniteui-theming/json/custom/example.json`)
26
+ #### Output (`igniteui-theming/dist/json/custom/example.json`)
26
27
 
27
28
  ```json
28
29
  {
@@ -34,13 +35,13 @@ To generate a new JSON file, you need to add a new `scss` document in this folde
34
35
 
35
36
  ### Specifying output directory for the JSON file
36
37
 
37
- The output directory is specified using a comment directly above the declaration body with a string marker of `@outputDir` separated by a `-` followed by the desired location of the generated JSON file relative to the `json` directory located at the root of this project(see the example above). If no comment is specified, the last existing comment specifying an `@outputDir` will be used. If there's no other comment above the declaration specifying an `@outputDir`, the declaration is ignored and no output file is generated.
38
+ The output directory is specified using a comment directly above the declaration body with a string marker of `@outputDir` separated by a `-` followed by the desired location of the generated JSON file relative to the `dist/json` directory (see the example above). If no comment is specified, the last existing comment specifying an `@outputDir` will be used. If there's no other comment above the declaration specifying an `@outputDir`, the declaration is ignored and no output file is generated.
38
39
 
39
40
  ### JSON declaration
40
41
 
41
42
  ```css
42
43
  example {
43
- --content: "Hello, World!"
44
+ --content: 'Hello, World!';
44
45
  }
45
46
  ```
46
47
 
@@ -49,6 +50,7 @@ Given the above snippet, the first present selector, i.e. `example`, will be use
49
50
  ##### Grouping several keys together into an object:
50
51
 
51
52
  ###### Input
53
+
52
54
  ```css
53
55
  example {
54
56
  > group > x {
@@ -64,6 +66,7 @@ example {
64
66
  The declaration above produces the following JSON:
65
67
 
66
68
  ###### Output
69
+
67
70
  ```json
68
71
  {
69
72
  "group": {
@@ -84,6 +87,7 @@ The `>` operator defines nested structures within the current JSON object. If th
84
87
  You can produce arrays in the JSON file by declaring an array-like object as the value of a key.
85
88
 
86
89
  ###### Example
90
+
87
91
  ```css
88
92
  example {
89
93
  --array-like: [1, a, 2.4];
@@ -91,6 +95,7 @@ example {
91
95
  ```
92
96
 
93
97
  ###### Output
98
+
94
99
  ```json
95
100
  {
96
101
  "array-like": ["1", "a", "2.4"]
@@ -25,6 +25,7 @@ $ignored-keys: ('name', 'palette', 'variant', 'selector', 'type', 'theme', 'typo
25
25
  /// Returns true if a key-value pair from a theme map should be emitted as a CSS variable.
26
26
  /// Filters out map values (nested sub-themes) and the special 'prefix' key.
27
27
  /// @access private
28
+ ///
28
29
  /// @param {String} $key - The theme property key.
29
30
  /// @param {*} $value - The theme property value.
30
31
  /// @return {Boolean}
@@ -36,7 +36,11 @@
36
36
  /// @param {Color} $item-focused-text-color [null] - The focused text color for button group items. Auto-derived from item-focused-background.
37
37
  /// @param {Color} $item-focused-background [null] - The focused background color for button group items. Auto-derived from item-hover-background.
38
38
  /// @param {Color} $item-focused-border-color [null] - The focused border color for an item from the button group. Auto-derived from item-border-color.
39
+ /// @param {Color} $item-focused-hover-text-color [null] - The focused & hover text color for button group items. Auto-derived from item-focused-text-color.
40
+ /// @param {Color} $item-focused-hover-border-color [null] - The focused & hover border color for an item from the button group. Auto-derived from item-focused-border-color.
39
41
  /// @param {Color} $item-focused-hover-background [null] - The focused & hover background color for button group items. Auto-derived from item-focused-background.
42
+ /// @param {Color} $item-active-background [null] - The active background color for button group items. Auto-derived from item-hover-background.
43
+ /// @param {Color} $item-active-border-color [null] - The active border color for button group items. Auto-derived from item-hover-border-color.
40
44
  /// @param {Color} $idle-shadow-color [null] - The outline color of focused button group items. Auto-derived from item-background or selected-shadow-color.
41
45
  /// @param {Color} $selected-shadow-color [null] - The outline color of focused/selected button group items. Auto-derived from idle-shadow-color.
42
46
  ///
@@ -55,6 +59,8 @@
55
59
  /// @param {Color} $item-selected-hover-border-color [null] - The border color for a selected item in hover state in the button group. Auto-derived from item-border-color.
56
60
  /// @param {Color} $item-selected-focus-background [null] - The background color for a selected item in focused state in the button group. Auto-derived from item-selected-background.
57
61
  /// @param {Color} $item-selected-focus-hover-background [null] - The background color for a selected item in focused & hover state in the button group. Auto-derived from item-selected-hover-background.
62
+ /// @param {Color} $item-selected-active-background [null] - The active background color for a selected item in the button group. Auto-derived from item-selected-hover-background.
63
+ /// @param {Color} $item-selected-active-border-color [null] - The active border color for a selected item in the button group. Auto-derived from item-selected-hover-border-color.
58
64
  ///
59
65
  /// @param {Color} $disabled-selected-text-color [null] - The disabled text color for a selected item in the button group. Auto-derived from disabled-text-color.
60
66
  /// @param {Color} $disabled-selected-icon-color [null] - The disabled icon color for a selected item in the button group. Auto-derived from disabled-selected-text-color.
@@ -89,8 +95,12 @@
89
95
 
90
96
  $item-focused-text-color: null,
91
97
  $item-focused-border-color: null,
98
+ $item-focused-hover-text-color: null,
99
+ $item-focused-hover-border-color: null,
92
100
  $item-focused-background: null,
93
101
  $item-focused-hover-background: null,
102
+ $item-active-background: null,
103
+ $item-active-border-color: null,
94
104
  $idle-shadow-color: null,
95
105
  $selected-shadow-color: null,
96
106
  $border-radius: null,
@@ -110,6 +120,8 @@
110
120
  $item-selected-hover-border-color: null,
111
121
  $item-selected-focus-background: null,
112
122
  $item-selected-focus-hover-background: null,
123
+ $item-selected-active-background: null,
124
+ $item-selected-active-border-color: null,
113
125
 
114
126
  $disabled-selected-text-color: null,
115
127
  $disabled-selected-icon-color: $disabled-selected-text-color,
@@ -161,6 +173,10 @@
161
173
  $item-selected-focus-hover-background: var(--item-selected-hover-background);
162
174
  }
163
175
 
176
+ @if not($item-selected-active-background) and $item-selected-hover-background {
177
+ $item-selected-active-background: dynamic-shade(var(--item-selected-hover-background));
178
+ }
179
+
164
180
  @if not($item-focused-background) and $item-background {
165
181
  $item-focused-background: var(--item-hover-background);
166
182
  }
@@ -169,6 +185,18 @@
169
185
  $item-focused-hover-background: dynamic-shade(var(--item-focused-background));
170
186
  }
171
187
 
188
+ @if not($item-active-background) and $item-hover-background {
189
+ $item-active-background: dynamic-shade(var(--item-hover-background));
190
+ }
191
+
192
+ @if not($item-active-border-color) and $item-hover-border-color {
193
+ $item-active-border-color: var(--item-hover-border-color);
194
+ }
195
+
196
+ @if not($item-selected-active-border-color) and $item-selected-hover-border-color {
197
+ $item-selected-active-border-color: var(--item-selected-hover-border-color);
198
+ }
199
+
172
200
  @if not($disabled-background-color) and $item-background {
173
201
  $disabled-background-color: var(--item-background);
174
202
  }
@@ -190,6 +218,10 @@
190
218
  $item-focused-border-color: var(--item-border-color);
191
219
  }
192
220
 
221
+ @if not($item-focused-hover-border-color) and $item-focused-border-color {
222
+ $item-focused-hover-border-color: var(--item-focused-border-color);
223
+ }
224
+
193
225
  @if not($item-selected-border-color) and $item-border-color {
194
226
  $item-selected-border-color: var(--item-border-color);
195
227
  }
@@ -227,6 +259,10 @@
227
259
  $item-focused-text-color: adaptive-contrast(var(--item-focused-background));
228
260
  }
229
261
 
262
+ @if not($item-focused-hover-text-color) and $item-focused-text-color {
263
+ $item-focused-hover-text-color: var(--item-focused-text-color);
264
+ }
265
+
230
266
  @if not($item-selected-text-color) and $item-selected-background {
231
267
  $item-selected-text-color: adaptive-contrast(var(--item-selected-background));
232
268
  }
@@ -285,9 +321,13 @@
285
321
  item-background: $item-background,
286
322
  item-border-color: $item-border-color,
287
323
  item-focused-text-color: $item-focused-text-color,
324
+ item-focused-hover-text-color: $item-focused-hover-text-color,
288
325
  item-focused-background: $item-focused-background,
289
326
  item-focused-border-color: $item-focused-border-color,
327
+ item-focused-hover-border-color: $item-focused-hover-border-color,
290
328
  item-focused-hover-background: $item-focused-hover-background,
329
+ item-active-background: $item-active-background,
330
+ item-active-border-color: $item-active-border-color,
291
331
  border-radius: $border-radius,
292
332
  item-hover-text-color: $item-hover-text-color,
293
333
  item-hover-icon-color: $item-hover-icon-color,
@@ -306,6 +346,8 @@
306
346
  item-selected-hover-border-color: $item-selected-hover-border-color,
307
347
  item-selected-focus-background: $item-selected-focus-background,
308
348
  item-selected-focus-hover-background: $item-selected-focus-hover-background,
349
+ item-selected-active-background: $item-selected-active-background,
350
+ item-selected-active-border-color: $item-selected-active-border-color,
309
351
  disabled-selected-text-color: $disabled-selected-text-color,
310
352
  disabled-selected-icon-color: $disabled-selected-icon-color,
311
353
  disabled-selected-background: $disabled-selected-background,
@@ -445,7 +445,7 @@
445
445
  }
446
446
 
447
447
  @if not($drop-area-background) and $grouparea-background {
448
- $drop-area-background: adaptive-contrast(var(--grouparea-background));
448
+ $drop-area-background: dynamic-shade(var(--grouparea-background));
449
449
  }
450
450
 
451
451
  @if not($drop-area-on-drop-background) and $drop-area-background {