@skbkontur/colors 1.1.2-34230.0 → 1.1.2-73aed.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 (125) hide show
  1. package/dist/cjs/get-base-tokens.d.ts +7 -5
  2. package/dist/cjs/get-base-tokens.js +35 -63
  3. package/dist/cjs/get-default-tokens.d.ts +8 -0
  4. package/dist/cjs/get-default-tokens.js +19 -11
  5. package/dist/cjs/helpers/get-palette.js +58 -64
  6. package/dist/cjs/helpers/get-promo.js +21 -27
  7. package/dist/cjs/types/base-tokens.d.ts +5 -6
  8. package/dist/cjs/utils/format-variable.d.ts +2 -0
  9. package/dist/cjs/utils/format-variable.js +11 -0
  10. package/dist/esm/get-base-tokens.d.ts +7 -5
  11. package/dist/esm/get-base-tokens.js +33 -58
  12. package/dist/esm/get-default-tokens.d.ts +8 -0
  13. package/dist/esm/get-default-tokens.js +19 -11
  14. package/dist/esm/helpers/get-palette.js +58 -64
  15. package/dist/esm/helpers/get-promo.js +21 -27
  16. package/dist/esm/types/base-tokens.d.ts +5 -6
  17. package/dist/esm/utils/format-variable.d.ts +2 -0
  18. package/dist/esm/utils/format-variable.js +6 -0
  19. package/dist/tokens/base/css/brand-blue-deep_accent-gray.css +1 -1
  20. package/dist/tokens/base/css/brand-blue_accent-gray.css +1 -1
  21. package/dist/tokens/base/css/brand-green_accent-gray.css +1 -1
  22. package/dist/tokens/base/css/brand-mint_accent-gray.css +1 -1
  23. package/dist/tokens/base/css/brand-orange_accent-gray.css +1 -1
  24. package/dist/tokens/base/css/brand-purple_accent-gray.css +1 -1
  25. package/dist/tokens/base/css/brand-red_accent-gray.css +1 -1
  26. package/dist/tokens/base/css/brand-violet_accent-gray.css +1 -1
  27. package/dist/tokens/base/js/brand-blue-deep_accent-gray.js +1 -0
  28. package/dist/tokens/base/js/brand-blue_accent-gray.js +1 -0
  29. package/dist/tokens/base/js/brand-green_accent-gray.js +1 -0
  30. package/dist/tokens/base/js/brand-mint_accent-gray.js +1 -0
  31. package/dist/tokens/base/js/brand-orange_accent-gray.js +1 -0
  32. package/dist/tokens/base/js/brand-purple_accent-gray.js +1 -0
  33. package/dist/tokens/base/js/brand-red_accent-gray.js +1 -0
  34. package/dist/tokens/base/js/brand-violet_accent-gray.js +1 -0
  35. package/dist/tokens/base/js-tree/brand-blue-deep_accent-gray.tree.js +1 -0
  36. package/dist/tokens/base/js-tree/brand-blue_accent-gray.tree.js +1 -0
  37. package/dist/tokens/base/js-tree/brand-green_accent-gray.tree.js +1 -0
  38. package/dist/tokens/base/js-tree/brand-mint_accent-gray.tree.js +1 -0
  39. package/dist/tokens/base/js-tree/brand-orange_accent-gray.tree.js +1 -0
  40. package/dist/tokens/base/js-tree/brand-purple_accent-gray.tree.js +1 -0
  41. package/dist/tokens/base/js-tree/brand-red_accent-gray.tree.js +1 -0
  42. package/dist/tokens/base/js-tree/brand-violet_accent-gray.tree.js +1 -0
  43. package/dist/tokens/base/json/brand-blue-deep_accent-gray.json +1 -0
  44. package/dist/tokens/base/json/brand-blue_accent-gray.json +1 -0
  45. package/dist/tokens/base/json/brand-green_accent-gray.json +1 -0
  46. package/dist/tokens/base/json/brand-mint_accent-gray.json +1 -0
  47. package/dist/tokens/base/json/brand-orange_accent-gray.json +1 -0
  48. package/dist/tokens/base/json/brand-purple_accent-gray.json +1 -0
  49. package/dist/tokens/base/json/brand-red_accent-gray.json +1 -0
  50. package/dist/tokens/base/json/brand-violet_accent-gray.json +1 -0
  51. package/dist/tokens/base/json-tree/brand-blue-deep_accent-gray.tree.json +1 -0
  52. package/dist/tokens/base/json-tree/brand-blue_accent-gray.tree.json +1 -0
  53. package/dist/tokens/base/json-tree/brand-green_accent-gray.tree.json +1 -0
  54. package/dist/tokens/base/json-tree/brand-mint_accent-gray.tree.json +1 -0
  55. package/dist/tokens/base/json-tree/brand-orange_accent-gray.tree.json +1 -0
  56. package/dist/tokens/base/json-tree/brand-purple_accent-gray.tree.json +1 -0
  57. package/dist/tokens/base/json-tree/brand-red_accent-gray.tree.json +1 -0
  58. package/dist/tokens/base/json-tree/brand-violet_accent-gray.tree.json +1 -0
  59. package/dist/tokens/base/less/brand-blue-deep_accent-gray.less +1 -1
  60. package/dist/tokens/base/less/brand-blue_accent-gray.less +1 -1
  61. package/dist/tokens/base/less/brand-green_accent-gray.less +1 -1
  62. package/dist/tokens/base/less/brand-mint_accent-gray.less +1 -1
  63. package/dist/tokens/base/less/brand-orange_accent-gray.less +1 -1
  64. package/dist/tokens/base/less/brand-purple_accent-gray.less +1 -1
  65. package/dist/tokens/base/less/brand-red_accent-gray.less +1 -1
  66. package/dist/tokens/base/less/brand-violet_accent-gray.less +1 -1
  67. package/dist/tokens/base/scss/brand-blue-deep_accent-gray.scss +1 -1
  68. package/dist/tokens/base/scss/brand-blue_accent-gray.scss +1 -1
  69. package/dist/tokens/base/scss/brand-green_accent-gray.scss +1 -1
  70. package/dist/tokens/base/scss/brand-mint_accent-gray.scss +1 -1
  71. package/dist/tokens/base/scss/brand-orange_accent-gray.scss +1 -1
  72. package/dist/tokens/base/scss/brand-purple_accent-gray.scss +1 -1
  73. package/dist/tokens/base/scss/brand-red_accent-gray.scss +1 -1
  74. package/dist/tokens/base/scss/brand-violet_accent-gray.scss +1 -1
  75. package/dist/tokens/semantic/css/brand-blue-deep_accent-brand.css +19 -11
  76. package/dist/tokens/semantic/css/brand-blue-deep_accent-gray.css +19 -11
  77. package/dist/tokens/semantic/css/brand-blue_accent-brand.css +19 -11
  78. package/dist/tokens/semantic/css/brand-blue_accent-gray.css +19 -11
  79. package/dist/tokens/semantic/css/brand-green_accent-brand.css +19 -11
  80. package/dist/tokens/semantic/css/brand-green_accent-gray.css +19 -11
  81. package/dist/tokens/semantic/css/brand-mint_accent-brand.css +19 -11
  82. package/dist/tokens/semantic/css/brand-mint_accent-gray.css +19 -11
  83. package/dist/tokens/semantic/css/brand-orange_accent-brand.css +19 -11
  84. package/dist/tokens/semantic/css/brand-orange_accent-gray.css +19 -11
  85. package/dist/tokens/semantic/css/brand-purple_accent-brand.css +19 -11
  86. package/dist/tokens/semantic/css/brand-purple_accent-gray.css +19 -11
  87. package/dist/tokens/semantic/css/brand-red_accent-brand.css +19 -11
  88. package/dist/tokens/semantic/css/brand-red_accent-gray.css +19 -11
  89. package/dist/tokens/semantic/css/brand-violet_accent-brand.css +19 -11
  90. package/dist/tokens/semantic/css/brand-violet_accent-gray.css +19 -11
  91. package/dist/tokens/semantic/js/brand-blue-deep_accent-brand.js +19 -11
  92. package/dist/tokens/semantic/js/brand-blue-deep_accent-gray.js +19 -11
  93. package/dist/tokens/semantic/js/brand-blue_accent-brand.js +19 -11
  94. package/dist/tokens/semantic/js/brand-blue_accent-gray.js +19 -11
  95. package/dist/tokens/semantic/js/brand-green_accent-brand.js +19 -11
  96. package/dist/tokens/semantic/js/brand-green_accent-gray.js +19 -11
  97. package/dist/tokens/semantic/js/brand-mint_accent-brand.js +19 -11
  98. package/dist/tokens/semantic/js/brand-mint_accent-gray.js +19 -11
  99. package/dist/tokens/semantic/js/brand-orange_accent-brand.js +19 -11
  100. package/dist/tokens/semantic/js/brand-orange_accent-gray.js +19 -11
  101. package/dist/tokens/semantic/js/brand-purple_accent-brand.js +19 -11
  102. package/dist/tokens/semantic/js/brand-purple_accent-gray.js +19 -11
  103. package/dist/tokens/semantic/js/brand-red_accent-brand.js +19 -11
  104. package/dist/tokens/semantic/js/brand-red_accent-gray.js +19 -11
  105. package/dist/tokens/semantic/js/brand-violet_accent-brand.js +19 -11
  106. package/dist/tokens/semantic/js/brand-violet_accent-gray.js +19 -11
  107. package/dist/tokens/semantic/json/brand-blue-deep_accent-brand.json +9 -1
  108. package/dist/tokens/semantic/json/brand-blue-deep_accent-gray.json +9 -1
  109. package/dist/tokens/semantic/json/brand-blue_accent-brand.json +9 -1
  110. package/dist/tokens/semantic/json/brand-blue_accent-gray.json +9 -1
  111. package/dist/tokens/semantic/json/brand-green_accent-brand.json +9 -1
  112. package/dist/tokens/semantic/json/brand-green_accent-gray.json +9 -1
  113. package/dist/tokens/semantic/json/brand-mint_accent-brand.json +9 -1
  114. package/dist/tokens/semantic/json/brand-mint_accent-gray.json +9 -1
  115. package/dist/tokens/semantic/json/brand-orange_accent-brand.json +9 -1
  116. package/dist/tokens/semantic/json/brand-orange_accent-gray.json +9 -1
  117. package/dist/tokens/semantic/json/brand-purple_accent-brand.json +9 -1
  118. package/dist/tokens/semantic/json/brand-purple_accent-gray.json +9 -1
  119. package/dist/tokens/semantic/json/brand-red_accent-brand.json +9 -1
  120. package/dist/tokens/semantic/json/brand-red_accent-gray.json +9 -1
  121. package/dist/tokens/semantic/json/brand-violet_accent-brand.json +9 -1
  122. package/dist/tokens/semantic/json/brand-violet_accent-gray.json +9 -1
  123. package/dist/tokens/semantic/less/semantic.less +4 -0
  124. package/dist/tokens/semantic/scss/semantic.scss +4 -0
  125. package/package.json +1 -1
@@ -1,14 +1,3 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  import { converter, formatHex } from 'culori';
13
2
  import { calcOnBrand, getPalette } from './helpers/get-palette';
14
3
  import { getPromo } from './helpers/get-promo';
@@ -37,10 +26,9 @@ export function getBaseTokens(_a) {
37
26
  });
38
27
  var customizable = {};
39
28
  for (var colorKey in DEFAULT_SWATCH.customizable) {
40
- // @ts-expect-error
41
- customizable[colorKey] = getPalette({
42
- // @ts-expect-error
43
- color: DEFAULT_SWATCH.customizable[colorKey],
29
+ var key = colorKey;
30
+ customizable[key] = getPalette({
31
+ color: DEFAULT_SWATCH.customizable[key],
44
32
  });
45
33
  }
46
34
  return {
@@ -64,7 +52,7 @@ export function getBaseTokens(_a) {
64
52
  hover: getHover(accent === 'brand' ? brandColor : DEFAULT_SWATCH.gray[36]),
65
53
  pressed: getPressed(accent === 'brand' ? brandColor : DEFAULT_SWATCH.gray[36]),
66
54
  },
67
- palette: accentPalette || undefined,
55
+ palette: accentPalette,
68
56
  },
69
57
  warning: warningPalette,
70
58
  error: errorPalette,
@@ -74,7 +62,7 @@ export function getBaseTokens(_a) {
74
62
  blackAlpha: DEFAULT_SWATCH.blackAlpha,
75
63
  onBrand: calcOnBrand(brandColor),
76
64
  // TODO: настроить для gray
77
- onAccent: (accent === 'brand' && calcOnBrand(brandColor)) || undefined,
65
+ onAccent: (accent === 'brand' && calcOnBrand(brandColor)),
78
66
  customizable: customizable,
79
67
  };
80
68
  }
@@ -84,47 +72,45 @@ export var colorToHex = function (color) {
84
72
  }
85
73
  return color;
86
74
  };
87
- export var camelCaseToKebabCase = function (str) {
88
- return str.replace(/[A-Z]/g, function (match) { return "-".concat(match.toLowerCase()); });
89
- };
90
- export var kebabCaseToCamelCase = function (str) {
91
- return str.replace(/-(\w)/g, function (_, c) { return c.toUpperCase(); });
92
- };
93
75
  export function convertOklchToHex(obj) {
94
76
  if (typeof obj !== 'object' || obj === null) {
95
77
  return obj;
96
78
  }
97
79
  if (Array.isArray(obj)) {
98
- return obj.map(function (item) { return convertOklchToHex(item); });
80
+ return obj.map(function (item) {
81
+ if (typeof item === 'object' && item !== null) {
82
+ return convertOklchToHex(item);
83
+ }
84
+ return item;
85
+ });
99
86
  }
100
87
  var newObj = {};
101
88
  for (var key in obj) {
102
89
  if (Object.prototype.hasOwnProperty.call(obj, key)) {
103
90
  var value = obj[key];
104
91
  if (typeof value === 'string' && value.startsWith('oklch(') && !value.includes('/')) {
105
- try {
106
- var toHex = converter('oklch');
107
- value = formatHex(toHex(value));
108
- }
109
- catch (e) {
110
- console.error("Failed to convert OKLCH to hex: ".concat(value), e);
111
- }
92
+ var oklchColor = converter('oklch')(value);
93
+ var rgbColor = converter('rgb')(oklchColor);
94
+ value = formatHex(rgbColor);
95
+ }
96
+ if (typeof value === 'object' && value !== null) {
97
+ newObj[key] = convertOklchToHex(value);
98
+ }
99
+ else {
100
+ newObj[key] = value;
112
101
  }
113
- newObj[key] = convertOklchToHex(value);
114
102
  }
115
103
  }
116
104
  return newObj;
117
105
  }
118
106
  export var convertOklchToRgba = function (oklchString) {
107
+ var _a;
119
108
  var oklch = converter('oklch')(oklchString);
120
109
  var rgb = converter('rgb')(oklch);
121
- if (!rgb) {
122
- throw new Error("Invalid color format: ".concat(oklchString));
123
- }
124
110
  var r = Math.round(rgb.r * 255);
125
111
  var g = Math.round(rgb.g * 255);
126
112
  var b = Math.round(rgb.b * 255);
127
- var alpha = oklch.alpha;
113
+ var alpha = (_a = oklch.alpha) !== null && _a !== void 0 ? _a : 1;
128
114
  return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(alpha, ")");
129
115
  };
130
116
  export function convertAlphaOklchToRgba(obj) {
@@ -132,38 +118,27 @@ export function convertAlphaOklchToRgba(obj) {
132
118
  return obj;
133
119
  }
134
120
  if (Array.isArray(obj)) {
135
- return obj.map(function (item) { return convertAlphaOklchToRgba(item); });
121
+ return obj.map(function (item) {
122
+ if (typeof item === 'object' && item !== null) {
123
+ return convertAlphaOklchToRgba(item);
124
+ }
125
+ return item;
126
+ });
136
127
  }
137
128
  var newObj = {};
138
129
  for (var key in obj) {
139
130
  if (Object.prototype.hasOwnProperty.call(obj, key)) {
140
131
  var value = obj[key];
141
132
  if (typeof value === 'string' && value.includes('oklch(')) {
142
- try {
143
- value = convertOklchToRgba(value);
144
- }
145
- catch (e) {
146
- console.error("Failed to convert OKLCH with alpha to rgba: ".concat(value), e);
147
- }
133
+ value = convertOklchToRgba(value);
148
134
  }
149
- newObj[key] = convertAlphaOklchToRgba(value);
150
- }
151
- }
152
- return newObj;
153
- }
154
- export function flattenObject(obj, prefix) {
155
- if (prefix === void 0) { prefix = ''; }
156
- var result = {};
157
- for (var key in obj) {
158
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
159
- var newKey = prefix ? "".concat(prefix, "-").concat(camelCaseToKebabCase(key)) : key;
160
- if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
161
- result = __assign(__assign({}, result), flattenObject(obj[key], newKey));
135
+ if (typeof value === 'object' && value !== null) {
136
+ newObj[key] = convertAlphaOklchToRgba(value);
162
137
  }
163
138
  else {
164
- result[newKey] = obj[key];
139
+ newObj[key] = value;
165
140
  }
166
141
  }
167
142
  }
168
- return result;
143
+ return newObj;
169
144
  }
@@ -92,6 +92,8 @@ export declare const getDefaultTokens: (base: BaseTokens) => {
92
92
  shapeOtherBasePressed: string;
93
93
  shapeOtherDisabled: string;
94
94
  shapeOtherField: string;
95
+ shapeOtherFieldHover: string;
96
+ shapeOtherFieldPressed: string;
95
97
  shapeOtherLow: string;
96
98
  shapeOtherLowHover: string;
97
99
  shapeOtherLowPressed: string;
@@ -250,6 +252,8 @@ export declare const getDefaultTokens: (base: BaseTokens) => {
250
252
  illustrationBlack: string;
251
253
  illustrationBrand: string;
252
254
  illustrationComplement: string;
255
+ illustrationInvertedNeutral: string;
256
+ illustrationNeutral: string;
253
257
  illustrationOnBrand: string;
254
258
  illustrationOnComplement: string;
255
259
  illustrationPromo: string;
@@ -403,6 +407,8 @@ export declare const getDefaultTokens: (base: BaseTokens) => {
403
407
  shapeOtherBasePressed: string;
404
408
  shapeOtherDisabled: string;
405
409
  shapeOtherField: string;
410
+ shapeOtherFieldHover: string;
411
+ shapeOtherFieldPressed: string;
406
412
  shapeOtherLow: string;
407
413
  shapeOtherLowHover: string;
408
414
  shapeOtherLowPressed: string;
@@ -561,6 +567,8 @@ export declare const getDefaultTokens: (base: BaseTokens) => {
561
567
  illustrationBlack: string;
562
568
  illustrationBrand: string;
563
569
  illustrationComplement: string;
570
+ illustrationInvertedNeutral: string;
571
+ illustrationNeutral: string;
564
572
  illustrationOnBrand: string;
565
573
  illustrationOnComplement: string;
566
574
  illustrationPromo: string;
@@ -86,13 +86,15 @@ export var getDefaultTokens = function (base) {
86
86
  shapeHeavySuccess: base.customizable.green.normal[36],
87
87
  shapeHeavyWarning: base.warning.vivid[36],
88
88
  shapeOtherAccentBoldDisabled: base.blackAlpha[32],
89
- shapeOtherBacklessHover: base.blackAlpha[8],
90
- shapeOtherBacklessPressed: base.blackAlpha[12],
89
+ shapeOtherBacklessHover: base.blackAlpha[6],
90
+ shapeOtherBacklessPressed: base.blackAlpha[8],
91
91
  shapeOtherBase: base.gray[100],
92
- shapeOtherBaseHover: base.whiteAlpha[64],
93
- shapeOtherBasePressed: base.whiteAlpha[32],
92
+ shapeOtherBaseHover: base.gray[96],
93
+ shapeOtherBasePressed: base.gray[92],
94
94
  shapeOtherDisabled: base.blackAlpha[6],
95
95
  shapeOtherField: base.gray[100],
96
+ shapeOtherFieldHover: base.gray[96],
97
+ shapeOtherFieldPressed: base.gray[92],
96
98
  shapeOtherLow: base.blackAlpha[6],
97
99
  shapeOtherLowHover: base.blackAlpha[8],
98
100
  shapeOtherLowPressed: base.blackAlpha[12],
@@ -141,7 +143,7 @@ export var getDefaultTokens = function (base) {
141
143
  shapeSoftWarning: base.warning.vivid[88],
142
144
  shapeSoftWarningHover: base.warning.normal[84],
143
145
  shapeSoftWarningPressed: base.warning.dim[80],
144
- shapeInvertedBacklessHover: base.whiteAlpha[8],
146
+ shapeInvertedBacklessHover: base.whiteAlpha[6],
145
147
  shapeInvertedBacklessPressed: base.whiteAlpha[4],
146
148
  shapeInvertedDisabled: base.whiteAlpha[6],
147
149
  shapeInvertedNeutralFaintAlpha: base.whiteAlpha[6],
@@ -251,6 +253,8 @@ export var getDefaultTokens = function (base) {
251
253
  illustrationBlack: base.gray[16],
252
254
  illustrationBrand: base.brand.original,
253
255
  illustrationComplement: base.brand.promo,
256
+ illustrationInvertedNeutral: base.gray[100],
257
+ illustrationNeutral: base.gray[0],
254
258
  illustrationOnBrand: base.onBrand[100],
255
259
  illustrationOnComplement: base.gray[100],
256
260
  illustrationPromo: base.brand.promo,
@@ -397,13 +401,15 @@ export var getDefaultTokens = function (base) {
397
401
  shapeHeavySuccess: base.customizable.green.normal[92],
398
402
  shapeHeavyWarning: base.warning.vivid[92],
399
403
  shapeOtherAccentBoldDisabled: base.whiteAlpha[32],
400
- shapeOtherBacklessHover: base.whiteAlpha[8],
404
+ shapeOtherBacklessHover: base.whiteAlpha[6],
401
405
  shapeOtherBacklessPressed: base.whiteAlpha[4],
402
- shapeOtherBase: base.whiteAlpha[6],
403
- shapeOtherBaseHover: base.whiteAlpha[12],
404
- shapeOtherBasePressed: base.whiteAlpha[4],
406
+ shapeOtherBase: base.gray[32],
407
+ shapeOtherBaseHover: base.gray[36],
408
+ shapeOtherBasePressed: base.gray[28],
405
409
  shapeOtherDisabled: base.whiteAlpha[6],
406
410
  shapeOtherField: base.blackAlpha[12],
411
+ shapeOtherFieldHover: base.whiteAlpha[4],
412
+ shapeOtherFieldPressed: base.blackAlpha[24],
407
413
  shapeOtherLow: base.blackAlpha[24],
408
414
  shapeOtherLowHover: base.blackAlpha[16],
409
415
  shapeOtherLowPressed: base.blackAlpha[32],
@@ -452,8 +458,8 @@ export var getDefaultTokens = function (base) {
452
458
  shapeSoftWarning: base.warning.dim[52],
453
459
  shapeSoftWarningHover: base.warning.dim[56],
454
460
  shapeSoftWarningPressed: base.warning.dim[48],
455
- shapeInvertedBacklessHover: base.blackAlpha[8],
456
- shapeInvertedBacklessPressed: base.blackAlpha[12],
461
+ shapeInvertedBacklessHover: base.blackAlpha[6],
462
+ shapeInvertedBacklessPressed: base.blackAlpha[8],
457
463
  shapeInvertedDisabled: base.blackAlpha[6],
458
464
  shapeInvertedNeutralFaintAlpha: base.blackAlpha[6],
459
465
  shapeInvertedNeutralFaintAlphaHover: base.blackAlpha[8],
@@ -562,6 +568,8 @@ export var getDefaultTokens = function (base) {
562
568
  illustrationBlack: base.gray[16],
563
569
  illustrationBrand: base.brand.original,
564
570
  illustrationComplement: base.gray[100],
571
+ illustrationInvertedNeutral: base.gray[0],
572
+ illustrationNeutral: base.gray[100],
565
573
  illustrationOnBrand: base.onBrand[100],
566
574
  illustrationOnComplement: base.brand.promo,
567
575
  illustrationPromo: base.brand.promo,
@@ -130,75 +130,69 @@ function findClosestLightnessStep(targetL, availableLightnessSteps) {
130
130
  return closestStep;
131
131
  }
132
132
  export function calculateBaseHueAndCorrectionRange(inputColorString, abneyData) {
133
- try {
134
- var toOklch = converter('oklch');
135
- var oklch = toOklch(inputColorString);
136
- if (!oklch) {
137
- console.warn("Could not parse color string: ".concat(inputColorString));
138
- return null;
139
- }
140
- var targetLightness = Math.round(oklch.l * 100);
141
- var targetHue_1 = oklch.h;
142
- if (isNaN(targetHue_1)) {
143
- console.warn("Achromatic color detected (".concat(inputColorString, "). Defaulting hue to 0."));
144
- targetHue_1 = 0;
145
- }
146
- var availableLightnessSteps = Object.keys(abneyData).map(Number);
147
- if (availableLightnessSteps.length === 0) {
148
- console.warn('Abney correction data is empty, cannot calculate base hue.');
149
- return null;
150
- }
151
- var closestLightness = findClosestLightnessStep(targetLightness, availableLightnessSteps);
152
- var lightnessCorrectionData = abneyData[closestLightness];
153
- if (!lightnessCorrectionData) {
154
- console.warn("No Abney correction data for lightness ".concat(closestLightness, "."));
155
- return null;
156
- }
157
- var correctedHueMap_1 = Object.entries(lightnessCorrectionData).map(function (_a) {
158
- var rawHueStr = _a[0], shift = _a[1];
159
- var rawHue = Number(rawHueStr);
160
- return {
161
- rawHue: rawHue,
162
- shift: shift,
163
- correctedHue: (rawHue + shift + 360) % 360,
164
- };
165
- });
166
- correctedHueMap_1.sort(function (a, b) {
167
- if (a.correctedHue !== b.correctedHue) {
168
- return a.correctedHue - b.correctedHue;
169
- }
170
- return a.rawHue - b.rawHue;
171
- });
172
- if (correctedHueMap_1.length === 0) {
173
- console.warn("No hue ranges defined for lightness ".concat(closestLightness, "."));
174
- return null;
175
- }
176
- var findCorrectRange = function () {
177
- var nextRangeIndex = correctedHueMap_1.findIndex(function (range) { return range.correctedHue > targetHue_1; });
178
- if (nextRangeIndex === 0) {
179
- return correctedHueMap_1[correctedHueMap_1.length - 1];
180
- }
181
- if (nextRangeIndex > 0) {
182
- return correctedHueMap_1[nextRangeIndex - 1];
183
- }
184
- return correctedHueMap_1[correctedHueMap_1.length - 1];
185
- };
186
- var selectedRange = findCorrectRange();
187
- if (!selectedRange) {
188
- console.error('Could not determine the correct hue range.');
189
- return null;
190
- }
191
- var baseHue = (targetHue_1 - selectedRange.shift + 360) % 360;
133
+ var toOklch = converter('oklch');
134
+ var oklch = toOklch(inputColorString);
135
+ if (!oklch) {
136
+ console.warn("Could not parse color string: ".concat(inputColorString));
137
+ return null;
138
+ }
139
+ var targetLightness = Math.round(oklch.l * 100);
140
+ var targetHue = oklch.h;
141
+ if (isNaN(targetHue)) {
142
+ console.warn("Achromatic color detected (".concat(inputColorString, "). Defaulting hue to 0."));
143
+ targetHue = 0;
144
+ }
145
+ var availableLightnessSteps = Object.keys(abneyData).map(Number);
146
+ if (availableLightnessSteps.length === 0) {
147
+ console.warn('Abney correction data is empty, cannot calculate base hue.');
148
+ return null;
149
+ }
150
+ var closestLightness = findClosestLightnessStep(targetLightness, availableLightnessSteps);
151
+ var lightnessCorrectionData = abneyData[closestLightness];
152
+ if (!lightnessCorrectionData) {
153
+ console.warn("No Abney correction data for lightness ".concat(closestLightness, "."));
154
+ return null;
155
+ }
156
+ var correctedHueMap = Object.entries(lightnessCorrectionData).map(function (_a) {
157
+ var rawHueStr = _a[0], shift = _a[1];
158
+ var rawHue = Number(rawHueStr);
192
159
  return {
193
- baseHue: baseHue,
194
- correctionLightness: closestLightness,
195
- correctionHueRange: selectedRange.rawHue,
160
+ rawHue: rawHue,
161
+ shift: shift,
162
+ correctedHue: (rawHue + shift + 360) % 360,
196
163
  };
164
+ });
165
+ correctedHueMap.sort(function (a, b) {
166
+ if (a.correctedHue !== b.correctedHue) {
167
+ return a.correctedHue - b.correctedHue;
168
+ }
169
+ return a.rawHue - b.rawHue;
170
+ });
171
+ if (correctedHueMap.length === 0) {
172
+ console.warn("No hue ranges defined for lightness ".concat(closestLightness, "."));
173
+ return null;
197
174
  }
198
- catch (error) {
199
- console.error('Error calculating base hue:', error);
175
+ var findCorrectRange = function () {
176
+ var nextRangeIndex = correctedHueMap.findIndex(function (range) { return range.correctedHue > targetHue; });
177
+ if (nextRangeIndex === 0) {
178
+ return correctedHueMap[correctedHueMap.length - 1];
179
+ }
180
+ if (nextRangeIndex > 0) {
181
+ return correctedHueMap[nextRangeIndex - 1];
182
+ }
183
+ return correctedHueMap[correctedHueMap.length - 1];
184
+ };
185
+ var selectedRange = findCorrectRange();
186
+ if (!selectedRange) {
187
+ console.error('Could not determine the correct hue range.');
200
188
  return null;
201
189
  }
190
+ var baseHue = (targetHue - selectedRange.shift + 360) % 360;
191
+ return {
192
+ baseHue: baseHue,
193
+ correctionLightness: closestLightness,
194
+ correctionHueRange: selectedRange.rawHue,
195
+ };
202
196
  }
203
197
  export function calcOnBrand(hex) {
204
198
  var whiteContrast = Number(calcAPCA('#fff', hex));
@@ -2,35 +2,29 @@ import { clampChroma, converter, formatHex } from 'culori';
2
2
  import { PROMO_HUE_SHIFTS } from '../constants/promo-hue-shift';
3
3
  export function getPromo(color, hueShifts) {
4
4
  if (hueShifts === void 0) { hueShifts = PROMO_HUE_SHIFTS; }
5
- try {
6
- var toOklch = converter('oklch');
7
- var oklchColor = toOklch(color);
8
- if (!oklchColor) {
9
- throw new Error("Invalid color string: ".concat(color));
10
- }
11
- var currentHue = oklchColor.h;
12
- var promoHueShift = getPromoHueShift(currentHue, hueShifts);
13
- var correctedHue = (currentHue + promoHueShift + 360) % 360;
14
- var promoLightness = oklchColor.l * 100;
15
- if (promoLightness >= 50) {
16
- promoLightness = promoLightness - 32;
17
- }
18
- promoLightness = Math.min(Math.max(promoLightness, 30), 34);
19
- var promoChroma = 0.1;
20
- var finalLightness = Math.round(promoLightness) / 100;
21
- var finalChroma = Math.round(promoChroma * 100) / 100;
22
- var promoOklch = {
23
- mode: 'oklch',
24
- l: finalLightness,
25
- c: finalChroma,
26
- h: correctedHue,
27
- };
28
- return formatHex(clampChroma(promoOklch, 'oklch'));
5
+ var toOklch = converter('oklch');
6
+ var oklchColor = toOklch(color);
7
+ if (!oklchColor) {
8
+ throw new Error("Invalid color string: ".concat(color));
29
9
  }
30
- catch (error) {
31
- console.error('Error generating promo palette:', error);
32
- return '';
10
+ var currentHue = oklchColor.h;
11
+ var promoHueShift = getPromoHueShift(currentHue, hueShifts);
12
+ var correctedHue = (currentHue + promoHueShift + 360) % 360;
13
+ var promoLightness = oklchColor.l * 100;
14
+ if (promoLightness >= 50) {
15
+ promoLightness = promoLightness - 32;
33
16
  }
17
+ promoLightness = Math.min(Math.max(promoLightness, 30), 34);
18
+ var promoChroma = 0.1;
19
+ var finalLightness = Math.round(promoLightness) / 100;
20
+ var finalChroma = Math.round(promoChroma * 100) / 100;
21
+ var promoOklch = {
22
+ mode: 'oklch',
23
+ l: finalLightness,
24
+ c: finalChroma,
25
+ h: correctedHue,
26
+ };
27
+ return formatHex(clampChroma(promoOklch, 'oklch'));
34
28
  }
35
29
  export function getPromoHueShift(currentHue, promoHueShifts) {
36
30
  var hueRanges = Object.keys(promoHueShifts)
@@ -42,14 +42,13 @@ export interface ColorPalette {
42
42
  normal: ColorWithScale<ChromaScale>;
43
43
  dim: ColorWithScale<ChromaScale>;
44
44
  }
45
- type ChromaScale = 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96;
46
- type AlphaScale = 4 | 6 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96 | 100;
47
- type GrayScale = 0 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96 | 98 | 100;
48
- type ColorWithScale<T extends string | number> = {
45
+ export type ChromaScale = 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96;
46
+ export type AlphaScale = 4 | 6 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96 | 100;
47
+ export type GrayScale = 0 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96 | 98 | 100;
48
+ export type ColorWithScale<T extends string | number> = {
49
49
  [K in T]: string;
50
50
  };
51
- interface ThemedValue {
51
+ export interface ThemedValue {
52
52
  light: string;
53
53
  dark: string;
54
54
  }
55
- export {};
@@ -0,0 +1,2 @@
1
+ export declare const camelCaseToKebabCase: (str: string) => string;
2
+ export declare const kebabCaseToCamelCase: (str: string) => string;
@@ -0,0 +1,6 @@
1
+ export var camelCaseToKebabCase = function (str) {
2
+ return str.replace(/[A-Z]/g, function (match) { return "-".concat(match.toLowerCase()); });
3
+ };
4
+ export var kebabCaseToCamelCase = function (str) {
5
+ return str.replace(/-(\w)/g, function (_, c) { return c.toUpperCase(); });
6
+ };
@@ -356,7 +356,7 @@
356
356
  --k-onBrand-92: rgba(255, 255, 255, 0.92);
357
357
  --k-onBrand-96: rgba(255, 255, 255, 0.96);
358
358
  --k-onBrand-100: rgba(255, 255, 255, 1);
359
- --k-onAccent: undefined;
359
+ --k-onAccent: false;
360
360
  --k-customizable-red-vivid-20: #320003;
361
361
  --k-customizable-red-vivid-24: #420005;
362
362
  --k-customizable-red-vivid-28: #540007;
@@ -356,7 +356,7 @@
356
356
  --k-onBrand-92: rgba(255, 255, 255, 0.92);
357
357
  --k-onBrand-96: rgba(255, 255, 255, 0.96);
358
358
  --k-onBrand-100: rgba(255, 255, 255, 1);
359
- --k-onAccent: undefined;
359
+ --k-onAccent: false;
360
360
  --k-customizable-red-vivid-20: #320003;
361
361
  --k-customizable-red-vivid-24: #420005;
362
362
  --k-customizable-red-vivid-28: #540007;
@@ -356,7 +356,7 @@
356
356
  --k-onBrand-92: rgba(255, 255, 255, 0.92);
357
357
  --k-onBrand-96: rgba(255, 255, 255, 0.96);
358
358
  --k-onBrand-100: rgba(255, 255, 255, 1);
359
- --k-onAccent: undefined;
359
+ --k-onAccent: false;
360
360
  --k-customizable-red-vivid-20: #320003;
361
361
  --k-customizable-red-vivid-24: #420005;
362
362
  --k-customizable-red-vivid-28: #540007;
@@ -356,7 +356,7 @@
356
356
  --k-onBrand-92: rgba(255, 255, 255, 0.92);
357
357
  --k-onBrand-96: rgba(255, 255, 255, 0.96);
358
358
  --k-onBrand-100: rgba(255, 255, 255, 1);
359
- --k-onAccent: undefined;
359
+ --k-onAccent: false;
360
360
  --k-customizable-red-vivid-20: #320003;
361
361
  --k-customizable-red-vivid-24: #420005;
362
362
  --k-customizable-red-vivid-28: #540007;
@@ -356,7 +356,7 @@
356
356
  --k-onBrand-92: rgba(255, 255, 255, 0.92);
357
357
  --k-onBrand-96: rgba(255, 255, 255, 0.96);
358
358
  --k-onBrand-100: rgba(255, 255, 255, 1);
359
- --k-onAccent: undefined;
359
+ --k-onAccent: false;
360
360
  --k-customizable-red-vivid-20: #320003;
361
361
  --k-customizable-red-vivid-24: #420005;
362
362
  --k-customizable-red-vivid-28: #540007;
@@ -356,7 +356,7 @@
356
356
  --k-onBrand-92: rgba(255, 255, 255, 0.92);
357
357
  --k-onBrand-96: rgba(255, 255, 255, 0.96);
358
358
  --k-onBrand-100: rgba(255, 255, 255, 1);
359
- --k-onAccent: undefined;
359
+ --k-onAccent: false;
360
360
  --k-customizable-red-vivid-20: #320003;
361
361
  --k-customizable-red-vivid-24: #420005;
362
362
  --k-customizable-red-vivid-28: #540007;
@@ -356,7 +356,7 @@
356
356
  --k-onBrand-92: rgba(255, 255, 255, 0.92);
357
357
  --k-onBrand-96: rgba(255, 255, 255, 0.96);
358
358
  --k-onBrand-100: rgba(255, 255, 255, 1);
359
- --k-onAccent: undefined;
359
+ --k-onAccent: false;
360
360
  --k-customizable-red-vivid-20: #320003;
361
361
  --k-customizable-red-vivid-24: #420005;
362
362
  --k-customizable-red-vivid-28: #540007;
@@ -356,7 +356,7 @@
356
356
  --k-onBrand-92: rgba(255, 255, 255, 0.92);
357
357
  --k-onBrand-96: rgba(255, 255, 255, 0.96);
358
358
  --k-onBrand-100: rgba(255, 255, 255, 1);
359
- --k-onAccent: undefined;
359
+ --k-onAccent: false;
360
360
  --k-customizable-red-vivid-20: #320003;
361
361
  --k-customizable-red-vivid-24: #420005;
362
362
  --k-customizable-red-vivid-28: #540007;
@@ -355,6 +355,7 @@ export const BASE_TOKENS = {
355
355
  onBrand92: 'rgba(255, 255, 255, 0.92)',
356
356
  onBrand96: 'rgba(255, 255, 255, 0.96)',
357
357
  onBrand100: 'rgba(255, 255, 255, 1)',
358
+ onAccent: false,
358
359
  customizableRedVivid20: '#320003',
359
360
  customizableRedVivid24: '#420005',
360
361
  customizableRedVivid28: '#540007',
@@ -355,6 +355,7 @@ export const BASE_TOKENS = {
355
355
  onBrand92: 'rgba(255, 255, 255, 0.92)',
356
356
  onBrand96: 'rgba(255, 255, 255, 0.96)',
357
357
  onBrand100: 'rgba(255, 255, 255, 1)',
358
+ onAccent: false,
358
359
  customizableRedVivid20: '#320003',
359
360
  customizableRedVivid24: '#420005',
360
361
  customizableRedVivid28: '#540007',
@@ -355,6 +355,7 @@ export const BASE_TOKENS = {
355
355
  onBrand92: 'rgba(255, 255, 255, 0.92)',
356
356
  onBrand96: 'rgba(255, 255, 255, 0.96)',
357
357
  onBrand100: 'rgba(255, 255, 255, 1)',
358
+ onAccent: false,
358
359
  customizableRedVivid20: '#320003',
359
360
  customizableRedVivid24: '#420005',
360
361
  customizableRedVivid28: '#540007',
@@ -355,6 +355,7 @@ export const BASE_TOKENS = {
355
355
  onBrand92: 'rgba(255, 255, 255, 0.92)',
356
356
  onBrand96: 'rgba(255, 255, 255, 0.96)',
357
357
  onBrand100: 'rgba(255, 255, 255, 1)',
358
+ onAccent: false,
358
359
  customizableRedVivid20: '#320003',
359
360
  customizableRedVivid24: '#420005',
360
361
  customizableRedVivid28: '#540007',
@@ -355,6 +355,7 @@ export const BASE_TOKENS = {
355
355
  onBrand92: 'rgba(255, 255, 255, 0.92)',
356
356
  onBrand96: 'rgba(255, 255, 255, 0.96)',
357
357
  onBrand100: 'rgba(255, 255, 255, 1)',
358
+ onAccent: false,
358
359
  customizableRedVivid20: '#320003',
359
360
  customizableRedVivid24: '#420005',
360
361
  customizableRedVivid28: '#540007',
@@ -355,6 +355,7 @@ export const BASE_TOKENS = {
355
355
  onBrand92: 'rgba(255, 255, 255, 0.92)',
356
356
  onBrand96: 'rgba(255, 255, 255, 0.96)',
357
357
  onBrand100: 'rgba(255, 255, 255, 1)',
358
+ onAccent: false,
358
359
  customizableRedVivid20: '#320003',
359
360
  customizableRedVivid24: '#420005',
360
361
  customizableRedVivid28: '#540007',
@@ -355,6 +355,7 @@ export const BASE_TOKENS = {
355
355
  onBrand92: 'rgba(255, 255, 255, 0.92)',
356
356
  onBrand96: 'rgba(255, 255, 255, 0.96)',
357
357
  onBrand100: 'rgba(255, 255, 255, 1)',
358
+ onAccent: false,
358
359
  customizableRedVivid20: '#320003',
359
360
  customizableRedVivid24: '#420005',
360
361
  customizableRedVivid28: '#540007',
@@ -355,6 +355,7 @@ export const BASE_TOKENS = {
355
355
  onBrand92: 'rgba(255, 255, 255, 0.92)',
356
356
  onBrand96: 'rgba(255, 255, 255, 0.96)',
357
357
  onBrand100: 'rgba(255, 255, 255, 1)',
358
+ onAccent: false,
358
359
  customizableRedVivid20: '#320003',
359
360
  customizableRedVivid24: '#420005',
360
361
  customizableRedVivid28: '#540007',