@fibery/ui-kit 1.40.3 → 1.40.4

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 (82) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +4 -7
  3. package/src/__snapshots__/design-system.test.ts.snap +7265 -0
  4. package/src/a11y-color.test.ts +181 -0
  5. package/src/a11y-color.ts +13 -20
  6. package/src/actions-menu/actions-menu-item.tsx +7 -7
  7. package/src/antd/ant-modal.tsx +10 -5
  8. package/src/antd/styles.ts +6 -6
  9. package/src/app-icon-with-fallback.tsx +2 -2
  10. package/src/app-icon.tsx +2 -2
  11. package/src/button/button.tsx +1 -0
  12. package/src/button/make-button-colors.ts +5 -13
  13. package/src/checkbox.tsx +2 -2
  14. package/src/color-picker/ColorPickerOrLoader.js +2 -2
  15. package/src/color-utils.test.ts +317 -0
  16. package/src/color-utils.ts +180 -0
  17. package/src/comment.tsx +3 -2
  18. package/src/context-menu/index.tsx +12 -7
  19. package/src/create-inline-theme.ts +9 -8
  20. package/src/design-system.colors.ts +760 -0
  21. package/src/design-system.test.ts +287 -7
  22. package/src/design-system.ts +146 -940
  23. package/src/dropdown-menu/index.tsx +21 -16
  24. package/src/emoji-picker/app-icon-picker.tsx +5 -5
  25. package/src/emoji-picker/emoji-picker-content-with-color.tsx +4 -4
  26. package/src/emoji-picker/icon-emoji-picker.tsx +2 -2
  27. package/src/favorites-icon.tsx +1 -1
  28. package/src/file-item/file-icon.tsx +169 -0
  29. package/src/file-item/file-menu-items.tsx +68 -0
  30. package/src/file-item/file-preview-actions.tsx +38 -0
  31. package/src/file-item/file-title.tsx +48 -0
  32. package/src/file-item/types.ts +27 -0
  33. package/src/file-item/use-register-in-image-gallery.tsx +70 -0
  34. package/src/file-item-2.tsx +35 -345
  35. package/src/file-item.tsx +6 -2
  36. package/src/hue-shift.test.ts +91 -0
  37. package/src/icons/ast/FileCounter.ts +8 -0
  38. package/src/icons/ast/FileMultiple.ts +8 -0
  39. package/src/icons/ast/ValueEdit.ts +8 -0
  40. package/src/icons/ast/index.tsx +3 -0
  41. package/src/icons/react/FileCounter.tsx +13 -0
  42. package/src/icons/react/FileMultiple.tsx +13 -0
  43. package/src/icons/react/ValueEdit.tsx +13 -0
  44. package/src/icons/react/index.tsx +3 -0
  45. package/src/icons/svg/file-counter.svg +3 -0
  46. package/src/icons/svg/file-multiple.svg +3 -0
  47. package/src/icons/svg/value-edit.svg +3 -0
  48. package/src/images-gallery/slide-buttons.tsx +4 -11
  49. package/src/lists/actions-menu-row-surface.tsx +5 -5
  50. package/src/mobile-keyboard-aware-popup.tsx +4 -3
  51. package/src/palette-generator.test.ts +566 -0
  52. package/src/palette-generator.ts +166 -0
  53. package/src/palette.ts +71 -55
  54. package/src/platform.ts +0 -3
  55. package/src/popover/index.tsx +13 -15
  56. package/src/progress.tsx +2 -2
  57. package/src/reactions/reaction-button.tsx +12 -6
  58. package/src/root-theme-provider.test.tsx +316 -0
  59. package/src/scale-generator.ts +347 -0
  60. package/src/select/components/menu-list-virtualized.tsx +7 -22
  61. package/src/select/components/menu.tsx +12 -2
  62. package/src/select/select.tsx +2 -1
  63. package/src/select/styles.ts +0 -1
  64. package/src/static-palettes.ts +146 -0
  65. package/src/thematic-color-picker.tsx +266 -0
  66. package/src/thematic-constants.tsx +27 -0
  67. package/src/thematic-controls.tsx +144 -0
  68. package/src/thematic-scales.tsx +122 -0
  69. package/src/thematic-state.ts +333 -0
  70. package/src/thematic.tsx +382 -0
  71. package/src/theme-provider.test.tsx +808 -0
  72. package/src/theme-provider.tsx +132 -69
  73. package/src/theme-settings.ts +1 -1
  74. package/src/theme-styles.ts +12 -5
  75. package/src/toast/toast-action.tsx +1 -1
  76. package/src/toggle-on-off.tsx +2 -2
  77. package/src/toggle.tsx +5 -6
  78. package/src/tooltip.tsx +13 -10
  79. package/src/type-badge.tsx +3 -3
  80. package/src/unit/styles.ts +2 -2
  81. package/src/unit/unit-with-tooltip.tsx +3 -2
  82. package/src/use-long-press.tsx +2 -2
@@ -1,26 +1,32 @@
1
1
  /* eslint-disable max-lines */
2
- import chroma from "chroma-js";
3
2
  import ColorHash from "color-hash";
4
3
  import _ from "lodash";
5
- import {a11yColor} from "./a11y-color";
6
- import {createInlineTheme as createInlineStyles, varPrefix} from "./create-inline-theme";
7
4
  import {
8
- blackA,
9
- blue,
10
- blueDark,
11
- indigo,
12
- indigoDark,
13
- red,
14
- redDark,
15
- slate,
16
- slateDark,
17
- teal,
18
- tealDark,
19
- whiteA,
20
- yellow,
21
- yellowDark,
22
- } from "./palette";
5
+ clampRgb,
6
+ darkenChroma,
7
+ desaturateChroma,
8
+ isValidColor,
9
+ produceColor,
10
+ set,
11
+ setAlpha,
12
+ setLuminanceChroma,
13
+ toCss,
14
+ } from "./color-utils";
15
+ import {createInlineTheme as createInlineStyles, varPrefix} from "./create-inline-theme";
23
16
  import {ThemeMode} from "./theme-settings";
17
+ import {defaultPaletteKey, makeDefaultPalette, ThemePalette} from "./palette-generator";
18
+ import {
19
+ brandColors,
20
+ getOpacities,
21
+ makeThemeDefs,
22
+ pickDarkColors,
23
+ pickFns,
24
+ pickLight2Colors,
25
+ pickLightColors,
26
+ ThemeDefs,
27
+ } from "./design-system.colors";
28
+
29
+ export {cardTypeColors, opacity, getOpacities} from "./design-system.colors";
24
30
 
25
31
  export const typeSizes = [30, 24, 18, 16, 14, 12, 10, 8] as const;
26
32
 
@@ -49,821 +55,82 @@ export const fontSize = {
49
55
  nano: 8,
50
56
  } as const;
51
57
 
52
- const transparent = "rgba(255, 255, 255, 0)";
53
-
54
58
  export const minPanelWidth = 490;
55
59
 
56
- export const opacity = {
57
- opacity100: 1,
58
- opacity95: 0.95,
59
- opacity90: 0.9,
60
- opacity85: 0.85,
61
- opacity80: 0.8,
62
- opacity75: 0.75,
63
- opacity70: 0.7,
64
- opacity65: 0.65,
65
- opacity60: 0.6,
66
- opacity55: 0.55,
67
- opacity50: 0.5,
68
- opacity45: 0.45,
69
- opacity40: 0.4,
70
- opacity35: 0.35,
71
- opacity30: 0.3,
72
- opacity25: 0.25,
73
- opacity20: 0.2,
74
- opacity15: 0.15,
75
- opacity10: 0.1,
76
- opacity5: 0.05,
77
- opacity0: 0,
78
- } as const;
79
-
80
- export const cardTypeColors = [
81
- "#4A4A4A",
82
- "#6A849B",
83
- "#99A2AB",
84
- "#D40915",
85
- "#E72065",
86
- "#9C2BAF",
87
- "#673DB6",
88
- "#3E53B4",
89
- "#2978FB",
90
- "#199EE3",
91
- "#1FBED3",
92
- "#159789",
93
- "#4FAF54",
94
- "#8EC351",
95
- "#FBA32F",
96
- "#FC551F",
97
- "#B04E31",
98
- ] as const;
99
-
100
- const swatches = {
101
- "gray-light": cardTypeColors[1],
102
- yellow: cardTypeColors[14],
103
- green: "#69AC5E",
104
- };
105
-
106
- // switch to chroma.valid once we start using 2.0.1
107
- const makeChromaColor = (color: string) => {
108
- try {
109
- return chroma(color);
110
- } catch (e) {
111
- return chroma(brandColors.blue);
112
- }
113
- };
114
-
115
- export const getOpacities = _.memoize((color: string) =>
116
- _.mapValues(opacity, (opacity) => {
117
- if (color === transparent) {
118
- return transparent;
119
- }
120
- return makeChromaColor(color).alpha(opacity).css();
121
- })
122
- );
123
-
124
- const shades = getOpacities("#000000");
125
- const lights = getOpacities("#FFFFFF");
126
-
127
- export const separators = {
128
- ..._.mapValues(shades, (shade) => `0.5px solid ${shade}`),
129
- } as const;
130
-
131
- export const inversedSeparators = {
132
- ..._.mapValues(lights, (light) => `0.5px solid ${light}`),
133
- } as const;
134
-
135
60
  export const fontFamily =
136
61
  '"Inter Variable", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif';
137
62
 
138
- const stateColors = {
139
- success: "rgba(8, 189, 159, 1)",
140
- error: "rgba(234, 105, 63, 1)",
141
- progress: "rgba(74, 126, 244, 1)",
142
- canceled: "rgba(233, 163, 76, 1)",
143
- unknown: "rgba(147, 157, 168, 1)",
144
- };
145
-
146
- const brandColors = {
147
- red: "#FF5400",
148
- green: "#08BD9F",
149
- blue: "#4978D4",
150
- } as const;
63
+ export function getThemeValue<T>(theme: ThemeMode, values: {light: T; light2?: T; dark: T}): T {
64
+ if (theme in values) {
65
+ return values[theme] as T;
66
+ }
67
+ return values.light;
68
+ }
151
69
 
152
70
  export const getDarkenColor = _.memoize((color: string): string => {
153
- return makeChromaColor(color).darken(0.5).desaturate(0.8).css();
71
+ return produceColor(color, [(c) => darkenChroma(c, 0.5), clampRgb, (c) => desaturateChroma(c, 0.8)]);
154
72
  });
155
73
 
156
- export const themeColors = {
157
- mode: ["light", "dark"],
158
- brandColors: [brandColors, brandColors],
159
- stateColors: [stateColors, stateColors],
160
- colorAI: ["hsla(271, 57%, 61%, 1)", "hsla(272, 43%, 50%, 1)"],
161
- colorBgAI: ["hsla(271, 57%, 61%, 0.09)", "hsla(272, 43%, 50%, 0.2)"],
162
- colorSubtleBgAI: ["hsla(271, 57%, 61%, 0.05)", "hsla(272, 43%, 50%, 0.1)"],
163
-
164
- // Elevations
165
- surfaceElevationS: [`0 2px 4px 0 ${blackA.blackA3}`, `0 2px 4px 0 ${whiteA.whiteA3}`],
166
- surfaceElevationM: [`0 4px 8px 0 ${blackA.blackA5}`, `0 4px 8px 0 ${whiteA.whiteA5}`],
167
- surfaceElevationL: [`0 8px 12px 0 ${blackA.blackA5}`, `0 8px 12px 0 ${whiteA.whiteA5}`],
168
-
169
- // Shadows and effects / Elevation
170
- shadow50: [
171
- `0px 0px 0px 1px ${getOpacities(slate.slate12).opacity5}`,
172
- `0px 0px 0px 1px ${getOpacities(slateDark.slate12).opacity10}`,
173
- ],
174
- shadow100: [
175
- `0px 1px 4px 0px ${getOpacities(slate.slate12).opacity5}`,
176
- `0px 1px 4px 0px ${getOpacities(slate.slate12).opacity10}`,
177
- ],
178
- shadow200: [
179
- `0px 2px 6px 0px ${getOpacities(slate.slate12).opacity5}`,
180
- `0px 2px 6px 0px ${getOpacities(slate.slate12).opacity10}`,
181
- ],
182
- shadow300: [
183
- `0px 3px 6px -3px ${getOpacities(slate.slate12).opacity10}, 0px 8px 20px -4px ${
184
- getOpacities(slate.slate12).opacity15
185
- }`,
186
- `0px 3px 6px -3px ${getOpacities(slate.slate12).opacity10}, 0px 8px 20px -4px ${
187
- getOpacities(slate.slate12).opacity15
188
- }`,
189
- ],
190
- shadow400: [
191
- `0px 0px 1px 0px ${getOpacities(slate.slate12).opacity20}, 0px 16px 40px 0px ${
192
- getOpacities(slate.slate12).opacity15
193
- }`,
194
- `0px 0px 1px 0px ${getOpacities(slate.slate12).opacity20}, 0px 16px 40px 0px ${
195
- getOpacities(slate.slate12).opacity15
196
- }`,
197
- ],
198
- shadow500: [
199
- `0px 0px 1px 0px ${getOpacities(slate.slate12).opacity20}, 0px 20px 50px 0px ${
200
- getOpacities(slate.slate12).opacity15
201
- }`,
202
- `0px 0px 1px 0px ${getOpacities(slate.slate12).opacity20}, 0px 20px 50px 0px ${
203
- getOpacities(slate.slate12).opacity15
204
- }`,
205
- ],
206
- shadow600: [
207
- `0px 0px 1px 0px ${getOpacities(slate.slate12).opacity20}, 0px 26px 80px 0px ${
208
- getOpacities(slate.slate12).opacity20
209
- }`,
210
- `0px 0px 1px 0px ${getOpacities(slate.slate12).opacity20}, 0px 26px 80px 0px ${
211
- getOpacities(slate.slate12).opacity20
212
- }`,
213
- ],
214
- actionMenuShadow: [
215
- `0px 0px 2px 0px ${getOpacities(slate.slate11).opacity30}, 0px 4px 6px 0px ${
216
- getOpacities(slate.slate11).opacity5
217
- }, 0px 10px 26px 0px ${getOpacities(slate.slate11).opacity15}`,
218
- `0px 0px 0px 1px ${getOpacities(slateDark.slate6).opacity100}, 0px 4px 6px 0px ${
219
- getOpacities(slateDark.slate1).opacity5
220
- }, 0px 10px 26px 0px ${getOpacities(slateDark.slate1).opacity15}`,
221
- ],
222
- shadowPopup: [
223
- `0px 0px 2px 0px ${getOpacities(slate.slate11).opacity30}, 0px 4px 6px 0px ${
224
- getOpacities(slate.slate11).opacity5
225
- }, 0px 10px 26px 0px ${getOpacities(slate.slate11).opacity15}`,
226
- `0px 0px 0px 1px ${getOpacities(slateDark.slate6).opacity100}, 0px 4px 6px 0px ${
227
- getOpacities(slateDark.slate1).opacity5
228
- }, 0px 10px 26px 0px ${getOpacities(slateDark.slate1).opacity15}`,
229
- ],
230
- shadowSidebar: [
231
- `-3px 0px 10px 0px ${getOpacities(slate.slate10).opacity10}`,
232
- `-3px 0px 10px 0px ${getOpacities(slateDark.slate1).opacity80}`,
233
- ],
234
- effectBgActionsMenu: [
235
- `blur(12px) saturate(190%) contrast(50%) brightness(130%)`,
236
- `blur(12px) saturate(180%) contrast(60%) brightness(70%)`,
237
- ],
238
- effectBgPopup: [
239
- `blur(24px) saturate(190%) contrast(50%) brightness(130%)`,
240
- `blur(24px) saturate(180%) contrast(60%) brightness(70%)`,
241
- ],
242
-
243
- // Rubbish dump
244
- primaryBlue: [indigo.indigo9, indigoDark.indigo9],
245
- whiteColor: [whiteA.whiteA0, whiteA.whiteA0],
246
- blackColor: [blackA.blackA0, blackA.blackA0],
247
- mainBg: [slate.slate3, slateDark.slateBase],
248
- panelBg: [whiteA.whiteA0, slateDark.slate1],
249
- panelContentBg: [slate.slate2, slateDark.slate1],
250
- panelContentBgOpacity80: [getOpacities(slate.slate2).opacity80, getOpacities(slateDark.slate1).opacity80],
251
- colorBgRelationContainer: [slate.slate2, slateDark.slate1],
252
- colorBgAISidebarContent: [slate.slate1, slateDark.slate1],
253
- pageBg: [whiteA.whiteA0, slateDark.slate1],
254
- pageContentBg: [whiteA.whiteA0, slateDark.slate2],
255
- colorBgPopup: [whiteA.whiteA0, slateDark.slate4],
256
- colorBgSidebar: [whiteA.whiteA0, slateDark.slate3],
257
- menuBg: [slate.slate3, slateDark.slateBase],
258
- menuTextColor: [slateDark.slate5, slate.slate8],
259
- menuItemHoverColor: [slate.slate5, slateDark.slate6],
260
- menuSelectedTextColor: [slate.slate2, slate.slate2],
261
- menuFooterColor: [getOpacities(whiteA.whiteA0).opacity20, getOpacities(slateDark.slate3).opacity40],
262
- menuFooterHoverColor: [getOpacities(whiteA.whiteA0).opacity60, slateDark.slate4],
263
- menuIconColor: [getOpacities(slate.slate12).opacity70, getOpacities(slateDark.slate12).opacity70],
264
- menuSelectedIconColor: [getOpacities(slate.slate1).opacity90, getOpacities(slate.slate1).opacity90],
265
-
266
- // Text, links colors
267
- textColor: [slateDark.slate5, slate.slate6],
268
- textSelectionColor: [getOpacities(blue.blue10).opacity20, getOpacities(blueDark.blue10).opacity40],
269
- accentTextColor: [slate.slate10, slateDark.slate10],
270
- disabledTextColor: [slate.slate9, slateDark.slate9],
271
- inversedTextColor: [slate.slate3, slateDark.slate6],
272
- colorTextSecondary: [getOpacities(slate.slate12).opacity70, getOpacities(slateDark.slate12).opacity65],
273
- linkColor: [indigoDark.indigo10, indigoDark.indigo10],
274
- linkBorder: [
275
- `0.5px solid ${getOpacities(indigoDark.indigo10).opacity40}`,
276
- `0.5px solid ${getOpacities(indigoDark.indigo11).opacity40}`,
277
- ],
278
- linkHoverColor: [indigo.indigo10, indigoDark.indigo11],
279
- linkBorderHover: [
280
- `0.5px solid ${getOpacities(indigo.indigo10).opacity80}`,
281
- `0.5px solid ${getOpacities(indigoDark.indigo10).opacity70}`,
282
- ],
283
- codeColor: [red.red9, red.red8],
284
- codeBgColor: [slate.slate3, slateDark.slate4],
285
- codeBlockBgColor: [slate.slate3, slateDark.slate4],
286
- addedDiffTextColor: [teal.teal9, tealDark.teal11],
287
- removedDiffTextColor: [red.red11, redDark.red11],
288
-
289
- // Entity
290
- entityNodeColor: [slateDark.slate3, slate.slate8],
291
- entityNodeBorder: [
292
- `0.5px solid ${getOpacities(slateDark.slate3).opacity30}`,
293
- `0.5px solid ${getOpacities(slate.slate8).opacity40}`,
294
- ],
295
- entityNodeHoverColor: [slateDark.slate7, slate.slate7],
296
- entityNodeBorderHover: [
297
- `0.5px solid ${getOpacities(slate.slate11).opacity80}`,
298
- `0.5px solid ${getOpacities(slate.slate7).opacity80}`,
299
- ],
300
- entityNodeBgColor: [slate.slate2, slateDark.slate3],
301
- shortcutTextColor: [slate.slate9, slateDark.slate11],
302
- shortcutBorder: [
303
- `1px solid ${getOpacities(slate.slate8).opacity50}`,
304
- `1px solid ${getOpacities(slateDark.slate10).opacity20}`,
305
- ],
306
- shortcutBorderColor: [getOpacities(slate.slate8).opacity50, getOpacities(slateDark.slate10).opacity20],
307
-
308
- // Input
309
- inputBgColor: [whiteA.whiteA0, slateDark.slate2],
310
- inputDisabledBgColor: [getOpacities(slate.slate6).opacity30, getOpacities(slateDark.slate6).opacity30],
311
- inputDisabledBorderColor: [
312
- `0 0 0 1px ${getOpacities(slate.slate6).opacity20}`,
313
- `0 0 0 1px ${getOpacities(slateDark.slate8).opacity20}`,
314
- ],
315
- inputCopyBgColor: [slate.slate3, slateDark.slate4],
316
- inputBorderColor: [
317
- `0 0 0 1px ${getOpacities(slate.slate6).opacity70}`,
318
- `0 0 0 1px ${getOpacities(slateDark.slate8).opacity70}`,
319
- ],
320
- inputBorderHoverColor: [
321
- `0 0 0 1px ${getOpacities(slate.slate7).opacity100}`,
322
- `0 0 0 1px ${getOpacities(slateDark.slate8).opacity100}`,
323
- ],
324
- inputBorderFocusColor: [
325
- `0 0 0 1px ${getOpacities(slate.slate8).opacity100}`,
326
- `0 0 0 1px ${getOpacities(slateDark.slate9).opacity100}`,
327
- ],
328
- inputBorderBlendMode: ["multiply", "lighten"],
329
- inputPlaceholderTextColor: [slate.slate9, slateDark.slate9],
330
- inputErrorBorderColor: [`0 0 0 1px ${red.red11}`, `0 0 0 1px ${red.red7}`],
331
- inputErrorBorderHoverColor: [
332
- `0 0 0 1px ${getOpacities(red.red11).opacity40}`,
333
- `0 0 0 1px ${getOpacities(red.red7).opacity40}`,
334
- ],
335
- inputErrorBorderFocusColor: [
336
- `0 0 0 1px ${getOpacities(red.red11).opacity25}`,
337
- `0 0 0 1px ${getOpacities(red.red7).opacity25}`,
338
- ],
339
- inputErrorBorderFocusShadow: [
340
- `0 0 0 3px ${getOpacities(red.red11).opacity25}`,
341
- `0 0 0 3px ${getOpacities(red.red7).opacity25}`,
342
- ],
343
- buttonPrimaryColor: [indigo.indigo9, indigoDark.indigo9],
344
- buttonColor: [slate.slate10, slateDark.slate10],
345
- buttonPrimaryTextColor: [slate.slate2, slate.slate6],
346
- checkboxColor: [getOpacities(slate.slate12).opacity70, getOpacities(slateDark.slate12).opacity70],
347
- colorBorderBlockQuote: [slate.slate11, slateDark.slate11],
348
-
349
- // Actions menu
350
- colorBgActionsMenu: [whiteA.whiteA0, slateDark.slate3],
351
- colorBgActionsMenuItemHover: [getOpacities(slate.slate11).opacity10, getOpacities(slateDark.slate11).opacity10],
352
- colorBgActionsMenuItemSelected: [getOpacities(indigo.indigo4).opacity80, getOpacities(indigoDark.indigo4).opacity80],
353
- colorBgActionsMenuItemSelectedHover: [
354
- getOpacities(indigo.indigo5).opacity80,
355
- getOpacities(indigoDark.indigo6).opacity80,
356
- ],
357
- colorBgActionsMenuItemDangerHover: [getOpacities(red.red9).opacity10, getOpacities(redDark.red10).opacity10],
358
-
359
- colorBgActionsMenuItemDangerActive: [getOpacities(red.red9).opacity80, getOpacities(redDark.red10).opacity80],
360
- actionMenuBg: [whiteA.whiteA0, slateDark.slate3],
361
- actionMenuInnerBg: [whiteA.whiteA0, slateDark.slate4],
362
- actionMenuHover: [slate.slate4, slateDark.slate5],
363
- actionMenuInnerHover: [slate.slate4, getOpacities(slateDark.slate6).opacity50],
364
- actionMenuButtonColor: [whiteA.whiteA0, slateDark.slate2],
365
- actionMenuButtonHoverColor: [slate.slate1, slateDark.slate3],
366
- actionMenuButtonShadow: [
367
- `0 0 0 1px ${getOpacities(slate.slate10).opacity10}, 0 2px 4px -4px ${getOpacities(slate.slate10).opacity20}`,
368
- `0 0 0 1px ${getOpacities(slateDark.slate2).opacity10}, 0 2px 4px -4px ${getOpacities(slateDark.slate2).opacity20}`,
369
- ],
370
- actionMenuButtonShadowHover: [
371
- `0 0 0 1px ${getOpacities(slate.slate10).opacity10}, 0 6px 8px -4px ${getOpacities(slate.slate10).opacity30}`,
372
- `0 0 0 1px ${getOpacities(slateDark.slate2).opacity10}, 0 6px 8px -4px ${getOpacities(slateDark.slate2).opacity30}`,
373
- ],
374
- actionMenuSeparatorColor: [getOpacities(blackA.blackA0).opacity10, getOpacities(whiteA.whiteA0).opacity15],
375
- separatorColor: [getOpacities(blackA.blackA0).opacity10, getOpacities(whiteA.whiteA0).opacity10],
376
- separatorColorDimmed: [getOpacities(blackA.blackA0).opacity5, getOpacities(whiteA.whiteA0).opacity5],
377
- separatorBreadcrumbsColor: [slate.slate8, slateDark.slate8],
378
- iconColor: [getOpacities(slate.slate12).opacity70, getOpacities(slateDark.slate12).opacity70],
379
- appIconColor: [getOpacities(slate.slate2).opacity90, getOpacities(slate.slate2).opacity70],
380
- appIconBgColor: [getOpacities(slate.slate1).opacity90, getOpacities(slate.slate2).opacity50],
381
- mentionBgColor: [getOpacities(slate.slate7).opacity30, getOpacities(slateDark.slate7).opacity40],
382
- colorBgSelectMenu: [slate.slate1, slateDark.slate3],
383
- shadowSelectMenu: [
384
- `0px 0px 2px 0px ${getOpacities(slate.slate11).opacity30}, 0px 4px 6px 0px ${
385
- getOpacities(slate.slate11).opacity5
386
- }, 0px 10px 26px 0px ${getOpacities(slate.slate11).opacity15}`,
387
- `0px 0px 0px 1px ${getOpacities(slateDark.slate6).opacity100}, 0px 4px 6px 0px ${
388
- getOpacities(slateDark.slate1).opacity5
389
- }, 0px 10px 26px 0px ${getOpacities(slateDark.slate1).opacity15}`,
390
- ],
391
- colorBgListItemGeneral: [transparent, transparent],
392
- colorBgListItemGeneralHover: [slate.slate3, slateDark.slate4],
393
- colorBgListItemGeneralFocus: [slate.slate4, slateDark.slate6],
394
- colorBgListItemGeneralSelected: [indigo.indigo3, indigoDark.indigo4],
395
- colorBgListItemGeneralSelectedHover: [indigo.indigo4, indigoDark.indigo6],
396
- colorBgListItemGeneralSelectedFocus: [indigo.indigo4, indigoDark.indigo6],
397
- colorBgListItemGeneralDisabled: [transparent, transparent],
398
- colorTextListItemGeneralDisabled: [slate.slate9, slateDark.slate9],
399
- colorBgListItemGeneralSelectedDisabled: [indigo.indigo5, indigoDark.indigo5],
400
- opacityListItemGeneralDisabled: [`${opacity.opacity40}`, `${opacity.opacity40}`],
401
-
402
- // Search Items
403
- colorBgSearchRowHover: [slate.slate4, slateDark.slate5],
404
- colorBgSearchRowCreateHover: [indigo.indigo4, indigoDark.indigo4],
405
- opacitySearchItemDone: [`${opacity.opacity40}`, `${opacity.opacity40}`],
406
- // Entity Box Style And States
407
- // Basic Entity Box State
408
- colorBgEntityBoxDefault: [whiteA.whiteA0, slateDark.slate3],
409
- shadowStrokeEntityBoxDefault: [`0 0 0 1px ${slate.slate5}`, `0 0 0 1px ${slateDark.slate5}`],
410
- shadowEntityBoxDefault: [
411
- `0px 2px 4px 0px ${getOpacities(slate.slate12).opacity5}`,
412
- `0px 2px 4px 0px ${getOpacities(slateDark.slate1).opacity5}`,
413
- ],
414
- // :hover
415
- colorBgEntityBoxDefaultHover: [whiteA.whiteA0, slateDark.slate4],
416
- shadowEntityBoxDefaultHover: [
417
- `0px 4px 8px 0px ${getOpacities(slate.slate12).opacity10}`,
418
- `0px 4px 8px 0px ${getOpacities(slateDark.slate1).opacity10}`,
419
- ],
420
- // :focus
421
- colorBgEntityBoxDefaultFocus: [whiteA.whiteA0, slateDark.slate3],
422
- colorOverlayEntityBoxDefaultFocus: [indigo.indigo9, indigoDark.indigo9],
423
- shadowStrokeEntityBoxDefaultFocus: [
424
- `0 0 0 2px ${getOpacities(indigo.indigo9).opacity40}`,
425
- `0 0 0 2px ${getOpacities(indigoDark.indigo9).opacity40}`,
426
- ],
427
- // :focus:hover
428
- colorBgEntityBoxDefaultFocusHover: [whiteA.whiteA0, slateDark.slate4],
429
- colorOverlayEntityBoxDefaultFocusHover: [indigo.indigo9, indigoDark.indigo9],
430
- shadowStrokeEntityBoxDefaultFocusHover: [
431
- `0 0 0 2px ${getOpacities(indigo.indigo9).opacity60}`,
432
- `0 0 0 2px ${getOpacities(indigoDark.indigo9).opacity60}`,
433
- ],
434
- //::drag
435
- opacityEntityBoxDefaultDrag: [`${opacity.opacity40}`, `${opacity.opacity40}`],
436
- shadowEntityBoxDefaultDrag: [
437
- `0px 8px 12px 0px ${getOpacities(slate.slate12).opacity10}`,
438
- `0px 8px 12px 0px ${getOpacities(slateDark.slate1).opacity10}`,
439
- ],
440
- // Selected Entity Box State
441
- colorBgEntityBoxSelected: [indigo.indigo2, indigoDark.indigo3],
442
- shadowStrokeEntityBoxSelected: [
443
- `0 0 0 1px ${getOpacities(indigo.indigo9).opacity40}, 0 0 0 3px ${getOpacities(indigo.indigo9).opacity40}`,
444
- `0 0 0 1px ${indigoDark.indigo9}, 0 0 0 3px ${getOpacities(indigoDark.indigo9).opacity40}`,
445
- ],
446
- // :hover
447
- colorBgEntityBoxSelectedHover: [indigo.indigo3, indigoDark.indigo3],
448
- shadowStrokeEntityBoxSelectedHover: [
449
- `0 0 0 1px ${getOpacities(indigo.indigo9).opacity60}, 0 0 0 3px ${getOpacities(indigo.indigo9).opacity40}`,
450
- `0 0 0 1px ${indigoDark.indigo9}, 0 0 0 3px ${getOpacities(indigoDark.indigo9).opacity40}`,
451
- ],
452
- //::drag
453
- colorBgEntityBoxSelectedDrag: [indigo.indigo3, indigoDark.indigo3],
454
- shadowStrokeEntityBoxSelectedDrag: [
455
- `0 0 0 1px ${getOpacities(indigo.indigo9).opacity40}, 0 0 0 3px ${getOpacities(indigo.indigo9).opacity40}`,
456
- `0 0 0 1px ${indigoDark.indigo9}, 0 0 0 3px ${getOpacities(indigoDark.indigo9).opacity40}`,
457
- ],
458
- // Disabled Entity Box State (done)
459
- opacityEntityBoxDisabled: [`${opacity.opacity65}`, `${opacity.opacity65}`],
460
- // :hover
461
- opacityEntityBoxDisabledHover: [`${opacity.opacity75}`, `${opacity.opacity75}`],
462
- // :focus
463
- opacityEntityBoxDisabledFocus: [`${opacity.opacity75}`, `${opacity.opacity75}`],
464
- // :drag
465
- opacityEntityBoxDisabledDrag: [`${opacity.opacity40}`, `${opacity.opacity40}`],
466
- // Entity Old
467
- entityCardBgColor: [whiteA.whiteA0, slateDark.slate5],
468
- entityCardSelectedColor: [getOpacities(slate.slate2).opacity80, getOpacities(slateDark.slate6).opacity50],
469
- entityCardHoverColor: [getOpacities(slate.slate2).opacity80, getOpacities(slateDark.slate6).opacity50],
470
- entityCardDoneColor: [getOpacities(slate.slate4).opacity30, getOpacities(slateDark.slate5).opacity30],
471
- entityCardShadow: [
472
- `0 0 0 1px ${getOpacities(slate.slate10).opacity10}, 0 2px 4px -4px ${getOpacities(slate.slate10).opacity20}`,
473
- `0 0 0 1px ${getOpacities(slateDark.slate2).opacity10}, 0 2px 4px -4px ${getOpacities(slateDark.slate2).opacity20}`,
474
- ],
475
- entityCardShadowHover: [
476
- `0 0 0 1px ${getOpacities(slate.slate10).opacity10}, 0 2px 4px -4px ${getOpacities(slate.slate10).opacity20}`,
477
- `0 0 0 1px ${getOpacities(slateDark.slate2).opacity10}, 0 2px 4px -4px ${getOpacities(slateDark.slate2).opacity20}`,
478
- ],
479
- colorBgSegmentedControl: [getOpacities(slate.slate5).opacity80, getOpacities(slateDark.slate3).opacity80],
480
- colorBgMenuHeaderAvatar: [whiteA.whiteA0, slateDark.slate2],
481
- shadowMenuHeaderAvatar: [
482
- `0px 1px 4px ${getOpacities(slate.slate11).opacity10}, 0 0 0 0.5px ${getOpacities(slate.slate5).opacity50}`,
483
- `0 0 0 1px ${getOpacities(slateDark.slate9).opacity20}`,
484
- ],
485
- // Main Menu Items Styles and States
486
- // Dragged
487
- opacityMenuItemDragged: [`${opacity.opacity40}`, `${opacity.opacity40}`],
488
- colorBgMenuItemSelectedDragged: [indigo.indigo6, indigoDark.indigo6],
489
- // Default
490
- colorTextMenuItem: [slateDark.slate5, getOpacities(slateDark.slate12).opacity90],
491
- colorBgMenuItem: [transparent, transparent],
492
- // :hover
493
- colorBgMenuItemHover: [slate.slate5, slateDark.slate2],
494
- // :focus
495
- colorBgMenuItemFocus: [slate.slate6, slateDark.slate5],
496
- // Selected
497
- colorBgMenuItemSelected: [getOpacities(indigo.indigo5).opacity80, indigoDark.indigo3],
498
- // :hover
499
- colorBgMenuItemSelectedHover: [getOpacities(indigo.indigo6).opacity70, indigoDark.indigo5],
500
- // :focus, :focus:hover
501
- colorBgPinnedFieldsLabel: [slate.slate11, slateDark.slate11],
502
- colorBgObjectEditorSeparator: [slate.slate12, slateDark.slate12],
503
- colorBgMenuItemSelectedFocused: [indigo.indigo6, indigoDark.indigo5],
504
- colorBgFieldEditorContainer: [slate.slate2, slateDark.slate3],
505
- colorBgFieldEditorLinkEqualSign: [slate.slate6, slateDark.slate2],
506
- allowedDropColor: [slate.slate4, slateDark.slate4],
507
- relationViewBgColor: [slate.slate2, slateDark.slate3],
508
-
509
- mySpaceIconColor: [swatches["gray-light"], swatches["gray-light"]],
510
- mySpaceIconBg: [getOpacities(swatches["gray-light"]).opacity20, getOpacities(swatches["gray-light"]).opacity20],
511
- privateIconColor: [swatches.green, swatches.green],
512
- privateIconBg: [getOpacities(swatches.green).opacity20, getOpacities(swatches.green).opacity20],
513
- favoritesIconColor: [swatches.yellow, swatches.yellow],
514
- favoritesIconBg: [getOpacities(swatches.yellow).opacity20, getOpacities(swatches.yellow).opacity20],
515
-
516
- // Unit
517
- unitBg: [slate.slate3, slateDark.slate6],
518
- unitBgHover: [slate.slate4, slateDark.slate7],
519
-
520
- // Badges
521
- colorBgBadgeNeutral: [getOpacities(indigo.indigo5).opacity70, getOpacities(indigoDark.indigo4).opacity80],
522
- colorBgBadgeSuccess: [teal.teal5, tealDark.teal5],
523
- colorBgBadgeWarning: [yellow.yellow5, yellowDark.yellow5],
524
- colorBgBadgeError: [red.red5, redDark.red5],
525
- colorTextBadgeNeutral: [indigo.indigo11, indigoDark.indigo11],
526
- colorTextBadgeSuccess: [teal.teal11, tealDark.teal11],
527
- colorTextBadgeWarning: [yellow.yellow11, yellowDark.yellow11],
528
- colorTextBadgeError: [red.red11, redDark.red11],
529
- badgeBgColor: [getOpacities(slate.slate10).opacity20, getOpacities(slate.slate10).opacity20],
530
- panelBadgeBgColor: [getOpacities(slate.slate10).opacity20, getOpacities(slate.slate10).opacity20],
531
- tooltipBgColor: [slateDark.slate5, slateDark.slate6],
532
- todayMarkerColor: [red.red8, redDark.red6],
533
- viewBgOverlayColor: [getOpacities(slate.slate8).opacity20, getOpacities(slateDark.slate1).opacity60],
534
- floatEditorMenuBg: [slate.slate1, slateDark.slate6],
535
- floatEditorActiveColor: [indigo.indigo11, indigoDark.indigo11],
536
- planBadgeBgColor: [yellow.yellow10, yellowDark.yellow10],
537
- commentColor: [getOpacities(yellow.yellow6).opacity60, getOpacities(yellowDark.yellow9).opacity40],
538
- cellBackgroundColor: [slate.slate2, slateDark.slate2],
539
- cellBackgroundHoverColor: [getOpacities(slate.slate6).opacity30, getOpacities(slateDark.slate6).opacity30],
540
- cellBorderColor: [getOpacities(slate.slate8).opacity50, getOpacities(slateDark.slate9).opacity50],
541
- cellPinnedBorderColor: [getOpacities(slate.slate8).opacity70, getOpacities(slateDark.slate9).opacity70],
542
- tableRowWarningColor: [getOpacities(yellow.yellow6).opacity60, getOpacities(yellowDark.yellow9).opacity40],
543
- errorBgColor: [getOpacities(red.red9).opacity20, getOpacities(redDark.red9).opacity60],
544
- errorTextColor: [red.red11, red.red7],
545
- errorButtonColor: [red.red9, redDark.red10],
546
- warningBgColor: [getOpacities(yellow.yellow6).opacity60, getOpacities(yellowDark.yellow8).opacity60],
547
- warningButtonColor: [yellow.yellow11, yellowDark.yellow11],
548
- infoBox: [getOpacities(yellow.yellow4).opacity50, getOpacities(yellowDark.yellow9).opacity20],
549
- appCardBgColor: [whiteA.whiteA0, slateDark.slate2],
550
- appCardHoverColor: [getOpacities(slate.slate1).opacity95, slateDark.slate2],
551
- modalBg: [getOpacities(slate.slate11).opacity20, getOpacities(slateDark.slate2).opacity50],
552
- modalContentBg: [whiteA.whiteA0, slateDark.slate3],
553
- progressIconBg: [blackA.blackA7, whiteA.whiteA7],
554
- progressIconFill: [blackA.blackA11, whiteA.whiteA11],
555
- selectedColorBorder: [getOpacities(slate.slate6).opacity25, getOpacities(slate.slate6).opacity25],
556
- formBg: [slate.slate2, slateDark.slate2],
557
- formHeaderShadow: [
558
- `${getOpacities(slate.slate10).opacity10} 0px 0px 6px`,
559
- `${getOpacities(slateDark.slate1).opacity40} 0px 0px 6px`,
560
- ],
561
- formEditorFieldBg: [slate.slate3, slateDark.slate4],
562
- filterGroup1Bg: [slate.slate2, slateDark.slate6],
563
- filterGroup2Bg: [slate.slate3, slateDark.slate7],
564
- filterGroupBorder: [blackA.blackA3, whiteA.whiteA3],
565
- colorBgNotificationHover: [slate.slate3, slateDark.slate4],
566
- colorBgNotificationSelected: [indigo.indigo3, indigoDark.indigo4],
567
- colorBgNotificationSelectedHover: [indigo.indigo4, indigoDark.indigo6],
568
- disabledInversedTextColor: [shades.opacity25, lights.opacity25],
569
- success: [teal.teal9, tealDark.teal9],
570
- danger: [red.red9, redDark.red10],
571
- active: [red.red9, redDark.red10],
572
- warning: [yellow.yellow9, yellowDark.yellow8],
573
- cardBg: ["#FFFFFF", slateDark.slate6],
574
- cardSelected: ["#FFFB8F", slateDark.slate5],
575
- cardSelectedHover: ["rgba(240, 244, 247, 0.6)", slateDark.slate5],
576
- selectedImageBorder: [blackA.blackA8, whiteA.whiteA11],
577
- transparent: [transparent, transparent],
578
- shades: [lights, shades],
579
- lights: [shades, lights],
580
- separators: [separators, inversedSeparators],
581
- inversedSeparators: [inversedSeparators, separators],
582
- progressBg: [slate.slate4, slate.slate4],
583
- progressText: [slate.slate11, slate.slate11],
584
- progressFillBg: [slate.slate11, slate.slate11],
585
- progressFillText: [whiteA.whiteA0, whiteA.whiteA0],
586
- progressBarFillNeutral: [getOpacities(slate.slate9).opacity20, getOpacities(slateDark.slate9).opacity20],
587
- progressBarFill: [indigo.indigo9, indigoDark.indigo10],
588
- progressBarBg: [getOpacities(indigo.indigo9).opacity25, getOpacities(indigoDark.indigo10).opacity25],
589
- searchFiltersBg: [slate.slate1, slateDark.slate2],
590
- colorPickerSwatchBorder: [blackA.blackA7, blackA.blackA7],
591
- colorBorderRichTextMedia: [blackA.blackA7, blackA.blackA7],
592
- richTextTableBorder: [blackA.blackA5, whiteA.whiteA7],
593
-
594
- // Drag and drop
595
- colorBgDropLine: [indigo.indigo8, indigoDark.indigo8],
596
-
597
- // Views
598
- viewBg: [slate.slate1, slateDark.slate1],
599
- viewSecondaryBg: [slate.slate2, slateDark.slate2],
600
- viewHighlightBg: [indigo.indigo3, indigoDark.indigo3],
601
-
602
- // Board
603
- boardBg: [slate.slate1, slateDark.slate1],
604
- boardBgWithOpacity80: [getOpacities(slate.slate1).opacity80, getOpacities(slateDark.slate1).opacity80],
605
- boardAxisBgHover: [slate.slate4, slateDark.slate4],
606
-
607
- // Grid
608
- gridHeaderBgColor: [slate.slate2, slateDark.slate3],
609
- gridHeaderHoverBgColor: [slate.slate3, slateDark.slate4],
610
- gridHeaderTextColor: [slate.slate10, slateDark.slate11],
611
- gridCellBgColor: [whiteA.whiteA0, slateDark.slate2],
612
- gridCellBorderColor: [slate.slate5, slateDark.slate6],
613
- gridDisabledCellBgColor: [slate.slate2, slateDark.slate3],
614
- gridSelectedCellBgColor: [indigo.indigo3, indigoDark.indigo3],
615
- gridHighlightedCellBgColor: [indigo.indigo4, indigoDark.indigo5],
616
- gridSelectedCellBorderColor: [indigo.indigo6, indigoDark.indigo7],
617
- gridSelectedPinnedCellBorderColor: [indigo.indigo7, indigoDark.indigo7],
618
- gridDisabledSelectedCellBgColor: [indigo.indigo4, indigoDark.indigo5],
619
- gridActiveCellBorderColor: [indigo.indigo8, indigoDark.indigo9],
620
-
621
- //timeline
622
- timelineEntityHandleColor: [indigo.indigo7, indigoDark.indigo7],
623
- timelineDependencyHoverBgColor: [indigo.indigo8, indigoDark.indigo8],
624
- timelineDependencyOverlapBgColor: [red.red9, redDark.red9],
625
- timelineDependencyOverlapHoverBgColor: [red.red11, redDark.red11],
626
- timelineCellBgColor: [slate.slate1, slateDark.slate1],
627
- timelineCellWeekendBgColor: [slate.slate2, slateDark.slate2],
628
- timelineCellTodayBgColor: [indigo.indigo4, indigoDark.indigo2],
629
- timelineCreateEntityPlaceholderBgColor: [getOpacities(slate.slate11).opacity20, slateDark.slate7],
630
-
631
- // #region buttons
632
- // solid
633
- colorBgButtonSolidAccentDefault: [indigo.indigo9, indigoDark.indigo9],
634
- colorBgButtonSolidAccentHover: [indigo.indigo11, indigoDark.indigo10],
635
- colorBgButtonSolidNeutralDefault: [slate.slate12, slateDark.slate12],
636
- colorBgButtonSolidNeutralHover: [getOpacities(slate.slate12).opacity85, whiteA.whiteA0],
637
- colorBgButtonSolidDestructiveDefault: [red.red9, redDark.red9],
638
- colorBgButtonSolidDestructiveHover: [red.red11, redDark.red10],
639
- colorTextButtonSolidAccent: [whiteA.whiteA0, whiteA.whiteA0],
640
- colorTextButtonSolidAccentActive: [getOpacities(whiteA.whiteA0).opacity80, getOpacities(whiteA.whiteA0).opacity80],
641
- colorTextButtonSolidNeutral: [whiteA.whiteA0, slateDark.slate2],
642
- colorTextButtonSolidNeutralActive: [whiteA.whiteA0, getOpacities(slateDark.slate2).opacity80],
643
- colorTextButtonSolidDestructive: [whiteA.whiteA0, whiteA.whiteA0],
644
- colorTextButtonSolidDestructiveActive: [
645
- getOpacities(whiteA.whiteA0).opacity80,
646
- getOpacities(whiteA.whiteA0).opacity80,
647
- ],
648
- colorIconButtonSolidAccent: [whiteA.whiteA0, whiteA.whiteA0],
649
- colorIconButtonSolidNeutral: [whiteA.whiteA0, slateDark.slate8],
650
- colorIconButtonSolidDestructive: [whiteA.whiteA0, whiteA.whiteA0],
651
- // outline
652
- colorBorderButtonOutlineAccentDefault: [indigo.indigo8, indigoDark.indigo8],
653
- colorBorderButtonOutlineNeutralDefault: [slate.slate8, slateDark.slate7],
654
- colorBorderButtonOutlineDestructiveDefault: [red.red7, redDark.red7],
655
- colorBgButtonOutlineAccentDefault: [whiteA.whiteA0, slateDark.slate1],
656
- colorBgButtonOutlineAccentHover: [indigo.indigo3, indigoDark.indigo3],
657
- colorBgButtonOutlineNeutralDefault: [whiteA.whiteA0, slateDark.slate1],
658
- colorBgButtonOutlineNeutralHover: [slate.slate4, slateDark.slate4],
659
- colorBgButtonOutlineDestructiveDefault: [whiteA.whiteA0, slateDark.slate1],
660
- colorBgButtonOutlineDestructiveHover: [red.red4, redDark.red4],
661
- colorTextButtonOutlineAccent: [indigo.indigo11, indigoDark.indigo11],
662
- colorTextButtonOutlineAccentActive: [
663
- getOpacities(indigo.indigo11).opacity80,
664
- getOpacities(indigoDark.indigo11).opacity80,
665
- ],
666
- colorTextButtonOutlineNeutral: [slate.slate11, slateDark.slate11],
667
- colorTextButtonOutlineNeutralActive: [
668
- getOpacities(slate.slate12).opacity80,
669
- getOpacities(slateDark.slate12).opacity80,
670
- ],
671
- colorTextButtonOutlineDestructive: [red.red11, redDark.red11],
672
- colorTextButtonOutlineDestructiveActive: [getOpacities(red.red11).opacity80, getOpacities(redDark.red11).opacity80],
673
- colorIconButtonOutlineAccent: [indigo.indigo11, indigoDark.indigo11],
674
- colorIconButtonOutlineNeutral: [slate.slate11, slateDark.slate11],
675
- colorIconButtonOutlineDestructive: [red.red11, redDark.red11],
676
- // soft
677
- colorBgButtonSoftAccentDefault: [indigo.indigo3, indigoDark.indigo4],
678
- colorBgButtonSoftAccentHover: [indigo.indigo5, indigoDark.indigo6],
679
- colorBgButtonSoftNeutralDefault: [slate.slate3, slateDark.slate3],
680
- colorBgButtonSoftNeutralHover: [slate.slate7, slateDark.slate7],
681
- colorBgButtonSoftDestructiveDefault: [red.red4, redDark.red4],
682
- colorBgButtonSoftDestructiveHover: [red.red6, redDark.red6],
683
- colorTextButtonSoftAccent: [indigo.indigo11, indigoDark.indigo11],
684
- colorTextButtonSoftAccentActive: [
685
- getOpacities(indigo.indigo11).opacity80,
686
- getOpacities(indigoDark.indigo11).opacity80,
687
- ],
688
- colorTextButtonSoftNeutral: [slate.slate11, slateDark.slate11],
689
- colorTextButtonSoftNeutralActive: [getOpacities(slate.slate11).opacity80, getOpacities(slateDark.slate11).opacity80],
690
- colorTextButtonSoftDestructive: [red.red11, redDark.red11],
691
- colorTextButtonSoftDestructiveActive: [getOpacities(red.red11).opacity80, getOpacities(redDark.red11).opacity80],
692
- colorIconButtonSoftAccent: [indigo.indigo11, indigoDark.indigo11],
693
- colorIconButtonSoftNeutral: [slate.slate11, slateDark.slate11],
694
- colorIconButtonSoftDestructive: [red.red11, redDark.red11],
695
- // ghost
696
- colorBgButtonGhostAccentDefault: [transparent, transparent],
697
- colorBgButtonGhostAccentHover: [getOpacities(indigo.indigo4).opacity80, getOpacities(indigoDark.indigo4).opacity80],
698
- colorBgButtonGhostNeutralDefault: [transparent, transparent],
699
- colorBgButtonGhostNeutralHover: [getOpacities(slate.slate7).opacity50, getOpacities(slateDark.slate6).opacity80],
700
- colorBgButtonGhostDestructiveDefault: [transparent, transparent],
701
- colorBgButtonGhostDestructiveHover: [red.red4, redDark.red4],
702
- colorTextButtonGhostAccent: [indigo.indigo11, indigoDark.indigo11],
703
- colorTextButtonGhostAccentActive: [
704
- getOpacities(indigo.indigo11).opacity80,
705
- getOpacities(indigoDark.indigo11).opacity80,
706
- ],
707
- colorTextButtonGhostNeutral: [slate.slate11, slateDark.slate11],
708
- colorTextButtonGhostNeutralActive: [getOpacities(slate.slate11).opacity80, getOpacities(slateDark.slate11).opacity80],
709
- colorTextButtonGhostDestructive: [red.red11, redDark.red11],
710
- colorTextButtonGhostDestructiveActive: [getOpacities(red.red11).opacity80, getOpacities(redDark.red11).opacity80],
711
- colorIconButtonGhostAccent: [indigo.indigo11, indigoDark.indigo11],
712
- colorIconButtonGhostNeutral: [slate.slate11, slateDark.slate11],
713
- colorIconButtonGhostDestructive: [red.red11, redDark.red11],
714
- // #endregion
715
-
716
- colorBorderAccentFocusRing: [getOpacities(indigo.indigo9).opacity30, getOpacities(indigo.indigo9).opacity30],
717
- colorBorderNeutralFocusRing: [getOpacities(slate.slate9).opacity30, getOpacities(slate.slate9).opacity30],
718
- colorBorderDestructiveFocusRing: [getOpacities(red.red9).opacity30, getOpacities(red.red9).opacity30],
719
-
720
- colorBgReactionsDefault: [whiteA.whiteA0, slateDark.slate2],
721
- colorBgReactionsHover: [slate.slate3, slateDark.slate6],
722
- colorBorderReactionsHover: [slate.slate8, slateDark.slate9],
723
- colorBgReactionsSelectedDefault: [indigo.indigo3, indigoDark.indigo8],
724
- colorBorderReactionsSelectedDefault: [indigo.indigo8, indigoDark.indigo8],
725
- colorBgReactionsSelectedHover: [indigo.indigo2, indigo.indigo10],
726
- colorBorderReactionsSelectedHover: [indigo.indigo9, indigo.indigo10],
727
- colorTextReactionsSelected: [indigo.indigo10, slateDark.slate12],
728
- colorBgToastDefault: [slate.slate1, slateDark.slate1],
729
- colorBgDbTabHover: [slate.slate3, slateDark.slate4],
730
- colorBgDbTabFocus: [slate.slate6, slateDark.slate6],
731
- colorBgTabHover: [getOpacities(slate.slate11).opacity10, getOpacities(slateDark.slate11).opacity10],
732
-
733
- // Chat
734
- colorBgMessageContainer: [blackA.blackA3, slateDark.slate6],
735
- colorBgMessageContainerHover: [slate.slate2, slateDark.slate3],
736
- colorBgEntityAvatarDefault: [indigo.indigo1, indigoDark.indigo1],
737
- colorBgEntityAvatarHover: [indigo.indigo3, indigoDark.indigo3],
738
- colorTextEntityAvatarDefault: [indigo.indigo8, indigoDark.indigo8],
739
- colorTextEntityAvatarHover: [indigo.indigo9, indigoDark.indigo9],
740
-
741
- // Text editor
742
- colorBgEditorImageZoomed: [slate.slate3, slateDark.slate6],
743
- colorMermaidPrimaryColor: [slate.slate2, slateDark.slate8],
744
- colorMermaidPrimaryBorderColor: [slate.slate9, slateDark.slate9],
745
- colorMermaidLineColor: [slate.slate10, slateDark.slate9],
746
-
747
- //Whiteboard
748
- instrumentsMenuBg: [getOpacities(whiteA.whiteA0).opacity100, getOpacities(slateDark.slate4).opacity100],
749
- instrumentsMenuShadow: [
750
- `0px 0px 1px 0px ${getOpacities(slate.slate11).opacity20}, 0px 4px 6px 0px ${
751
- getOpacities(slate.slate11).opacity5
752
- }, 0px 3px 12px 0px ${getOpacities(slate.slate11).opacity10}`,
753
- `0px 0px 1px 0px ${getOpacities(slateDark.slate6).opacity100}, 0px 4px 6px 0px ${
754
- getOpacities(slateDark.slate1).opacity5
755
- }, 0px 3px 12px 0px ${getOpacities(slateDark.slate1).opacity15}`,
756
- ],
757
- commentBubbleBg: [whiteA.whiteA0, slateDark.slate6],
758
- commentsPanelShadow: [
759
- `0 0 0 1px ${getOpacities(slate.slate10).opacity10}, 0 2px 4px -4px ${getOpacities(slate.slate10).opacity20}`,
760
- `0 0 0 1px ${getOpacities(slateDark.slate2).opacity10}, 0 2px 4px -4px ${getOpacities(slateDark.slate2).opacity20}`,
761
- ],
762
-
763
- // SegmentedControl
764
- colorBgSegmentedControlDefault: [slate.slate3, slateDark.slate1],
765
- colorBgSegmentedControlActive: [slate.slate1, slateDark.slate6],
766
- colorBgSegmentedControlHover: [slate.slate5, slateDark.slate4],
767
- colorBorderSegmentedControlDefault: [slate.slate6, slateDark.slate7],
768
-
769
- // Chargebee info
770
- colorBgChargebeeInfoBox: [slate.slate3, slateDark.slate1],
771
- } as const;
772
-
773
- type ThemeDefs = typeof themeColors;
774
-
775
- type GetThemeColors<idx extends number> = {
776
- [k in keyof ThemeDefs]: ThemeDefs[k][idx];
777
- };
778
-
779
- type LightColors = GetThemeColors<0>;
780
- type DarkColors = GetThemeColors<1>;
781
-
782
- const lightColors = Object.fromEntries(
783
- Object.entries(themeColors).map(([key, value]) => {
784
- return [key, value[0]];
785
- })
786
- ) as LightColors;
787
-
788
- const light2Colors = {
789
- ...lightColors,
790
- mode: "light2",
791
- } as const;
792
-
793
- const darkColors = Object.fromEntries(
794
- Object.entries(themeColors).map(([key, value]) => {
795
- return [key, value[1]];
796
- })
797
- ) as DarkColors;
798
-
799
- export function getLightColors() {
800
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
801
- // @ts-ignore
802
- if (process.env.NODE_ENV !== "test") {
803
- throw new Error("Only for test purpose");
804
- }
805
- return lightColors;
806
- }
74
+ function getTypeColors(themeColor: string, theme: ThemeMode) {
75
+ const color = isValidColor(themeColor) ? themeColor : brandColors.green;
76
+
77
+ const makeBrightenPrimary = () => {
78
+ return produceColor(color, [
79
+ (c) => setLuminanceChroma(c, 0.92),
80
+ (c) => desaturateChroma(c, 0.1),
81
+ (c) => setAlpha(c, 0.98),
82
+ ]);
83
+ };
807
84
 
808
- export function getDarkColors() {
809
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
810
- // @ts-ignore
811
- if (process.env.NODE_ENV !== "test") {
812
- throw new Error("Only for test purpose");
813
- }
814
- return darkColors;
815
- }
85
+ const makeHeaderBg = () => {
86
+ return produceColor(color, [
87
+ (c) => setLuminanceChroma(c, 0.7),
88
+ (c) => desaturateChroma(c, 0.5),
89
+ (c) => set(c, "hsl.h", (h) => h + 2),
90
+ ]);
91
+ };
816
92
 
817
- export function getLight2Colors() {
818
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
819
- // @ts-ignore
820
- if (process.env.NODE_ENV !== "test") {
821
- throw new Error("Only for test purpose");
822
- }
823
- return light2Colors;
824
- }
93
+ const makeLightDetailsBg = () => {
94
+ return produceColor(color, [(c) => setAlpha(c, 0.5), (c) => setLuminanceChroma(c, 0.85)]);
95
+ };
825
96
 
826
- const getDefaultTheme = (): never => {
827
- throw Error("Please specify theme mode");
828
- };
97
+ const makeDarkDetailsBg = () => {
98
+ return produceColor(color, [
99
+ (c) => setAlpha(c, 0.03),
100
+ (c) => setLuminanceChroma(c, 0.8),
101
+ (c) => desaturateChroma(c, 0.8),
102
+ (c) => darkenChroma(c, 0.1),
103
+ ]);
104
+ };
829
105
 
830
- export function getThemeValue<T>(theme: ThemeMode, values: {light: T; light2?: T; dark: T}): T {
831
- if (theme in values) {
832
- return values[theme] as T;
833
- }
834
- return values.light;
835
- }
106
+ const makeFocus = () => {
107
+ return produceColor(color, (c) => setAlpha(c, 0.25));
108
+ };
836
109
 
837
- function getTypeColors(themeColor: string, theme: ThemeMode) {
838
- let color;
839
- // switch to chroma.valid once we start using 2.0.1
840
- try {
841
- chroma(themeColor);
842
- color = themeColor;
843
- } catch (e) {
844
- color = brandColors.green;
845
- }
110
+ const makeSeparator = () => {
111
+ return produceColor(color, (c) => setAlpha(c, 0.3));
112
+ };
846
113
 
847
114
  const lightTypeColors = {
848
115
  primary: color,
849
116
  opacity: getOpacities(color),
850
117
  darkenPrimary: getDarkenColor(color),
851
- brightenPrimary: chroma(color).luminance(0.92).desaturate(0.1).alpha(0.98).css(),
852
- headerBg: chroma(color).luminance(0.7).desaturate(0.5).set("hsl.h", "+2").css(),
853
- detailsBg: chroma(color).alpha(0.5).luminance(0.85).hex(),
854
- focus: chroma(color).alpha(0.25).css(),
855
- separator: chroma(color).alpha(0.3).css(),
118
+ brightenPrimary: makeBrightenPrimary(),
119
+ headerBg: makeHeaderBg(),
120
+ detailsBg: makeLightDetailsBg(),
121
+ focus: makeFocus(),
122
+ separator: makeSeparator(),
856
123
  };
857
124
 
858
125
  const darkTypeColors = {
859
126
  primary: color,
860
127
  opacity: getOpacities(color),
861
128
  darkenPrimary: getDarkenColor(color),
862
- brightenPrimary: chroma(color).luminance(0.92).desaturate(0.1).alpha(0.98).css(),
863
- headerBg: chroma(color).luminance(0.7).desaturate(0.5).set("hsl.h", "+2").css(),
864
- detailsBg: chroma(color).alpha(0.03).luminance(0.8).desaturate(0.8).darken(0.1).hex(),
865
- focus: chroma(color).alpha(0.25).css(),
866
- separator: chroma(color).alpha(0.3).css(),
129
+ brightenPrimary: makeBrightenPrimary(),
130
+ headerBg: makeHeaderBg(),
131
+ detailsBg: makeDarkDetailsBg(),
132
+ focus: makeFocus(),
133
+ separator: makeSeparator(),
867
134
  };
868
135
 
869
136
  switch (theme) {
@@ -878,102 +145,44 @@ function getTypeColors(themeColor: string, theme: ThemeMode) {
878
145
  }
879
146
  }
880
147
 
881
- type DesignColor = typeof darkColors | typeof lightColors | typeof light2Colors;
882
-
883
- export type ThemeColors = ReturnType<typeof getTypeColors> & DesignColor;
148
+ type DesignColor =
149
+ | ReturnType<typeof pickDarkColors>
150
+ | ReturnType<typeof pickLightColors>
151
+ | ReturnType<typeof pickLight2Colors>;
884
152
 
885
- const colorsByTheme: Record<string, DesignColor> = {
886
- dark: darkColors,
887
- light: lightColors,
888
- light2: light2Colors,
153
+ type ThemeFns = {
154
+ [K in keyof ThemeDefs["fns"]]: ThemeDefs["fns"][K]["light"];
889
155
  };
890
156
 
891
- export const getThemeColors: (themeColor: string, theme: ThemeMode) => ThemeColors = _.memoize(
892
- (_themeColor: string, theme: ThemeMode = getDefaultTheme()): ThemeColors => {
893
- const cl = brandColors.blue;
894
- const colors = colorsByTheme[theme];
157
+ export type ThemeColors = {key: string; fns: ThemeFns} & ReturnType<typeof getTypeColors> & DesignColor;
158
+
159
+ export type ThemeVars = Omit<ThemeColors, "key" | "fns">;
160
+
161
+ export const getThemeColors = _.memoize(
162
+ (_: string | null, mode: ThemeMode, palette: ThemePalette = makeDefaultPalette()): ThemeColors => {
163
+ const defs = makeThemeDefs(palette);
164
+ const colors =
165
+ mode === "dark" ? pickDarkColors(defs) : mode === "light2" ? pickLight2Colors(defs) : pickLightColors(defs);
166
+
895
167
  return {
896
- ...getTypeColors(cl, theme),
168
+ key: `${palette.key}-${mode}`,
169
+ fns: pickFns(defs.fns, mode) as ThemeFns,
170
+ ...getTypeColors(brandColors.blue, mode),
897
171
  ...colors,
898
172
  };
899
173
  },
900
- (_themeColor, theme) => theme
174
+ (_, mode, palette) => `${palette?.key ?? defaultPaletteKey}-${mode}`
901
175
  );
902
176
 
903
177
  export const getTextColor = _.memoize((color: string): string => {
904
- return makeChromaColor(color).hex();
178
+ return toCss(color);
905
179
  });
906
180
 
907
- export const getLinkedHighlightBackgroundColor = _.memoize(
908
- (themeColors: ThemeColors, color: string): string => {
909
- switch (themeColors.mode) {
910
- case "dark":
911
- return makeChromaColor(color).alpha(0.4).luminance(0.5).css();
912
- case "light":
913
- return makeChromaColor(color).alpha(0.3).luminance(0.6).css();
914
- default:
915
- return makeChromaColor(color).alpha(0.3).luminance(0.6).css();
916
- }
917
- },
918
- (themeMode, color) => `${themeMode}-${color}`
919
- );
920
-
921
- export const getLinkedHighlightDecorationBackgroundColor = _.memoize(
922
- (themeColors: ThemeColors, color: string): string => {
923
- switch (themeColors.mode) {
924
- case "dark":
925
- return makeChromaColor(color).alpha(0.9).luminance(0.5).darken(0.2).css();
926
- case "light":
927
- return makeChromaColor(color).alpha(0.9).luminance(0.5).css();
928
- default:
929
- return makeChromaColor(color).alpha(0.9).luminance(0.5).css();
930
- }
931
- },
932
- (themeMode, color) => `${themeMode}-${color}`
933
- );
934
-
935
- export const getEnumBackgroundColor = _.memoize(
936
- (mode: ThemeMode, color: string) => {
937
- return getThemeValue(mode, {
938
- light: a11yColor(getOpacities(color).opacity15, lightColors.whiteColor, 1),
939
- dark: a11yColor(getOpacities(color).opacity30, darkColors.menuBg, 1.3),
940
- });
941
- },
942
- (themeMode, color) => `${themeMode}-${color}`
943
- );
944
-
945
181
  export const getEnumTextColor = (color: string) => {
946
182
  return `color-mix(in srgb, ${color} 25%, ${themeVars.textColor} 75%)`;
947
183
  };
948
184
 
949
- // TODO: fix color for light2. It should same as 'dark' only on dark menu but same as 'light' on other parts of application
950
- export const getAppIconBackgroundColor = (mode: ThemeMode, color: string) =>
951
- getThemeValue(mode, {
952
- dark: a11yColor(getOpacities(color).opacity30, darkColors.menuBg, 1.3),
953
- light: a11yColor(getOpacities(color).opacity15, lightColors.whiteColor, 1),
954
- light2: a11yColor(getOpacities(color).opacity30, darkColors.menuBg, 1.3),
955
- });
956
-
957
- export const getIconColor = _.memoize(
958
- (mode: ThemeMode, color: string) =>
959
- getThemeValue(mode, {
960
- light: a11yColor(getOpacities(color).opacity95, lightColors.whiteColor, 3),
961
- dark: a11yColor(getOpacities(color).opacity95, darkColors.menuBg, 5),
962
- }),
963
- (themeMode, color) => `${themeMode}-${color}`
964
- );
965
-
966
- export const dropCursorColor = chroma(brandColors.blue).alpha(0.7).css();
967
- export const colors = {
968
- ...getTypeColors(brandColors.green, "light"),
969
- brandColors,
970
- stateColors,
971
- transparent,
972
- shades,
973
- lights,
974
- inversedTextColor: "#FFFFFF",
975
- disabledInversedTextColor: lights.opacity25,
976
- } as const;
185
+ export const dropCursorColor = produceColor(brandColors.blue, (c) => setAlpha(c, 0.7));
977
186
 
978
187
  export const space = {
979
188
  spaceAuto: "auto",
@@ -1061,6 +270,8 @@ export const layout = {
1061
270
  unitHeight: 18,
1062
271
  } as const;
1063
272
 
273
+ export const themeVars = makeThemeVars(getThemeColors(null, "light"), varPrefix);
274
+
1064
275
  export const menuItemHeightVar = `--${varPrefix}-layout-menuItemHeight`;
1065
276
  export const sidebarMenuItemHeightVar = `--${varPrefix}-layout-sidebarMenuItemHeight`;
1066
277
  export const sidebarMenuIconSizeVar = `--${varPrefix}-layout-sidebarMenuIconSize`;
@@ -1106,11 +317,10 @@ export const transition = `${duration}ms ${easing}`;
1106
317
 
1107
318
  export const iconSize = 20;
1108
319
  export const viewBoxSize = "0 0 20 20";
1109
- export const avatarSize = 24;
1110
320
 
1111
321
  export const shadows = {
1112
- border: `0 0 0 1px ${shades.opacity10}`,
1113
- inversedBorder: `0 0 0 1px ${lights.opacity10}`,
322
+ border: `0 0 0 1px ${themeVars.shades.opacity10}`,
323
+ inversedBorder: `0 0 0 1px ${themeVars.lights.opacity10}`,
1114
324
  videoPreview: "0 4px 30px 4px rgba(0, 0, 0, .15)",
1115
325
  } as const;
1116
326
 
@@ -1139,58 +349,54 @@ export const getObjectColorMemoized = _.memoize((name) => {
1139
349
  return colorHash.hex(name);
1140
350
  });
1141
351
 
1142
- export const themeVars = Object.keys(getThemeColors(brandColors.blue, "light")).reduce((vars, key) => {
1143
- if (key === "opacity") {
1144
- vars[key] = Object.fromEntries(
1145
- Object.keys(opacity).map((opacityKey) => [opacityKey, `var(--${varPrefix}-opacity-${opacityKey})`])
1146
- );
1147
- } else if (key === "stateColors") {
1148
- vars[key] = Object.fromEntries(
1149
- Object.keys(stateColors).map((stateColorKey) => [
1150
- stateColorKey,
1151
- `var(--${varPrefix}-state-colors-${stateColorKey})`,
1152
- ])
1153
- );
1154
- } else if (key === "brandColors") {
1155
- vars[key] = Object.fromEntries(
1156
- Object.keys(brandColors).map((brandColorKey) => [
1157
- brandColorKey,
1158
- `var(--${varPrefix}-brand-colors-${brandColorKey})`,
1159
- ])
1160
- );
1161
- } else if (key === "shades") {
1162
- vars[key] = Object.fromEntries(
1163
- Object.keys(shades).map((shadeKey) => [shadeKey, `var(--${varPrefix}-shades-${shadeKey})`])
1164
- );
1165
- } else if (key === "lights") {
1166
- vars[key] = Object.fromEntries(
1167
- Object.keys(lights).map((lightKey) => [lightKey, `var(--${varPrefix}-lights-${lightKey})`])
1168
- );
1169
- } else if (key === "separators") {
1170
- vars[key] = Object.fromEntries(
1171
- Object.keys(separators).map((separatorKey) => [separatorKey, `var(--${varPrefix}-separator-${separatorKey})`])
1172
- );
1173
- } else if (key === "inversedSeparators") {
1174
- vars[key] = Object.fromEntries(
1175
- Object.keys(inversedSeparators).map((separatorKey) => [
1176
- separatorKey,
1177
- `var(--${varPrefix}-inversed-separator-${separatorKey})`,
1178
- ])
1179
- );
1180
- } else {
1181
- vars[key] = `var(--${varPrefix}-color-${key})`;
352
+ function makeThemeVars(sample: ThemeColors, varPrefix: string) {
353
+ const vars = {} as Record<string, string | {[k: string]: string}>;
354
+ for (const [key, value] of Object.entries(sample)) {
355
+ if (key === "opacity") {
356
+ vars[key] = Object.fromEntries(
357
+ Object.keys(value).map((opacityKey) => [opacityKey, `var(--${varPrefix}-opacity-${opacityKey})`])
358
+ );
359
+ } else if (key === "brandColors") {
360
+ vars[key] = Object.fromEntries(
361
+ Object.keys(value).map((brandColorKey) => [brandColorKey, `var(--${varPrefix}-brand-colors-${brandColorKey})`])
362
+ );
363
+ } else if (key === "shades") {
364
+ vars[key] = Object.fromEntries(
365
+ Object.keys(value).map((shadeKey) => [shadeKey, `var(--${varPrefix}-shades-${shadeKey})`])
366
+ );
367
+ } else if (key === "lights") {
368
+ vars[key] = Object.fromEntries(
369
+ Object.keys(value).map((lightKey) => [lightKey, `var(--${varPrefix}-lights-${lightKey})`])
370
+ );
371
+ } else if (key === "separators") {
372
+ vars[key] = Object.fromEntries(
373
+ Object.keys(value).map((separatorKey) => [separatorKey, `var(--${varPrefix}-separator-${separatorKey})`])
374
+ );
375
+ } else if (key === "inversedSeparators") {
376
+ vars[key] = Object.fromEntries(
377
+ Object.keys(value).map((separatorKey) => [
378
+ separatorKey,
379
+ `var(--${varPrefix}-inversed-separator-${separatorKey})`,
380
+ ])
381
+ );
382
+ } else if (key !== "key" && key !== "fns") {
383
+ vars[key] = `var(--${varPrefix}-color-${key})`;
384
+ }
1182
385
  }
1183
- return vars;
1184
- }, {} as Record<string, string | {[k: string]: string}>) as ThemeColors;
386
+ return vars as ThemeVars;
387
+ }
388
+
389
+ /** @deprecated make this dark-vs-light theme override optimization more explicit */
390
+ export const defaultThemeKeys = Object.keys(pickLightColors(makeThemeDefs(makeDefaultPalette())));
391
+ export const rejectNoKeys: string[] = [];
1185
392
 
1186
- const DEFAULT_REJECT_KEYS = Object.keys(lightColors);
1187
393
  export const createInlineTheme = _.memoize(
1188
- (theme: ThemeColors, rejectKeys = DEFAULT_REJECT_KEYS) => {
394
+ (theme: ThemeColors, rejectKeys = defaultThemeKeys) => {
1189
395
  return createInlineStyles<ThemeColors>(theme, rejectKeys);
1190
396
  },
1191
- (theme, rejectKeys = DEFAULT_REJECT_KEYS) => {
1192
- const rejectKeysLabel = rejectKeys === DEFAULT_REJECT_KEYS ? "DEFAULT_REJECT_KEYS" : JSON.stringify(rejectKeys);
1193
- return `${theme.mode}__${theme.primary}__${rejectKeysLabel}`;
397
+ (theme, rejectKeys = defaultThemeKeys) => {
398
+ const rejectKeysLabel = rejectKeys === defaultThemeKeys ? "defaultThemeKeys" : rejectKeys.join(",");
399
+ return `${theme.key}__${rejectKeysLabel}`;
1194
400
  }
1195
401
  );
1196
402
 
@@ -1297,10 +503,10 @@ export const textStyles = {
1297
503
  transition: `border ${transition}`,
1298
504
  },
1299
505
  inversedLink: {
1300
- color: colors.inversedTextColor,
506
+ color: themeVars.inversedTextColor,
1301
507
  cursor: "pointer",
1302
508
  textDecoration: "underline",
1303
- textDecorationColor: lights.opacity25,
509
+ textDecorationColor: themeVars.lights.opacity25,
1304
510
  },
1305
511
  note: {
1306
512
  fontFamily,