reshaped 3.6.0-canary.4 → 3.6.0-canary.6

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 (160) hide show
  1. package/CHANGELOG.md +10 -1
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.js +6 -6
  4. package/dist/cjs/cli/theming/index.d.ts +3 -3
  5. package/dist/cjs/cli/theming/index.js +2 -2
  6. package/dist/cjs/cli/theming/tailwind.d.ts +2 -3
  7. package/dist/cjs/cli/theming/tailwind.js +1 -1
  8. package/dist/cjs/themes/_generator/definitions/slate.js +1 -1
  9. package/dist/cjs/themes/_generator/tokens/color/color.transforms.d.ts +2 -2
  10. package/dist/cjs/themes/_generator/tokens/color/color.transforms.js +29 -7
  11. package/dist/cjs/themes/_generator/tokens/color/color.types.d.ts +28 -3
  12. package/dist/cjs/themes/_generator/tokens/color/utilities/a11y.d.ts +20 -0
  13. package/dist/cjs/themes/_generator/tokens/color/utilities/a11y.js +64 -0
  14. package/dist/cjs/themes/_generator/tokens/color/utilities/convert.d.ts +11 -0
  15. package/dist/cjs/themes/_generator/tokens/color/utilities/convert.js +33 -0
  16. package/dist/cjs/themes/_generator/tokens/color/utilities/generateColors.d.ts +4 -0
  17. package/dist/cjs/themes/_generator/tokens/color/utilities/generateColors.js +152 -0
  18. package/dist/cjs/themes/_generator/tokens/color/utilities/generateMetaColors.d.ts +4 -0
  19. package/dist/cjs/themes/_generator/tokens/color/utilities/generateMetaColors.js +68 -0
  20. package/dist/cjs/themes/_generator/tokens/color/utilities/tests/a11y.test.js +38 -0
  21. package/dist/cjs/themes/_generator/tokens/color/utilities/tests/convert.test.d.ts +1 -0
  22. package/dist/cjs/themes/_generator/tokens/color/utilities/tests/convert.test.js +48 -0
  23. package/dist/cjs/themes/_generator/tokens/color/utilities/tests/generateColors.test.d.ts +1 -0
  24. package/dist/cjs/themes/_generator/tokens/color/utilities/tests/generateColors.test.js +21 -0
  25. package/dist/{themes/_generator/utilities → cjs/themes/_generator/tokens}/css.d.ts +1 -1
  26. package/dist/cjs/themes/_generator/tokens/duration/duration.transforms.d.ts +2 -2
  27. package/dist/cjs/themes/_generator/tokens/duration/duration.transforms.js +2 -2
  28. package/dist/cjs/themes/_generator/tokens/easing/easing.transforms.d.ts +2 -2
  29. package/dist/cjs/themes/_generator/tokens/easing/easing.transforms.js +2 -2
  30. package/dist/cjs/themes/_generator/tokens/font/font.transforms.d.ts +2 -2
  31. package/dist/cjs/themes/_generator/tokens/font/font.transforms.js +3 -3
  32. package/dist/cjs/themes/_generator/tokens/fontFamily/fontFamily.transforms.d.ts +2 -2
  33. package/dist/cjs/themes/_generator/tokens/fontFamily/fontFamily.transforms.js +2 -2
  34. package/dist/cjs/themes/_generator/tokens/fontWeight/fontWeight.transforms.d.ts +2 -2
  35. package/dist/cjs/themes/_generator/tokens/fontWeight/fontWeight.transforms.js +2 -2
  36. package/dist/cjs/themes/_generator/tokens/radius/radius.transforms.d.ts +2 -2
  37. package/dist/cjs/themes/_generator/tokens/radius/radius.transforms.js +2 -2
  38. package/dist/cjs/themes/_generator/tokens/shadow/shadow.transforms.d.ts +2 -2
  39. package/dist/cjs/themes/_generator/tokens/shadow/shadow.transforms.js +4 -4
  40. package/dist/cjs/themes/_generator/tokens/types.d.ts +19 -17
  41. package/dist/cjs/themes/_generator/tokens/unit/unit.transforms.d.ts +2 -2
  42. package/dist/cjs/themes/_generator/tokens/unit/unit.transforms.js +2 -2
  43. package/dist/cjs/themes/_generator/tokens/unit/utilities/generate.d.ts +5 -0
  44. package/dist/cjs/themes/_generator/{utilities/generateUnits.js → tokens/unit/utilities/generate.js} +5 -4
  45. package/dist/cjs/themes/_generator/tokens/viewport/viewport.transforms.d.ts +2 -2
  46. package/dist/cjs/themes/_generator/tokens/viewport/viewport.transforms.js +2 -2
  47. package/dist/cjs/themes/_generator/transform.d.ts +3 -2
  48. package/dist/cjs/themes/_generator/transform.js +45 -11
  49. package/dist/cjs/themes/_generator/types.d.ts +4 -8
  50. package/dist/cjs/themes/_generator/utilities/mergeDefinitions.d.ts +1 -3
  51. package/dist/cjs/themes/_generator/utilities/mergeDefinitions.js +6 -4
  52. package/dist/cjs/themes/figma/tailwind.css +1 -1
  53. package/dist/cjs/themes/figma/theme.css +1 -1
  54. package/dist/cjs/themes/fragments/twitter/tailwind.css +1 -1
  55. package/dist/cjs/themes/fragments/twitter/theme.css +1 -1
  56. package/dist/cjs/themes/index.d.ts +4 -11
  57. package/dist/cjs/themes/index.js +2 -5
  58. package/dist/cjs/themes/reshaped/tailwind.css +1 -1
  59. package/dist/cjs/themes/reshaped/theme.css +1 -1
  60. package/dist/cjs/themes/slate/tailwind.css +1 -1
  61. package/dist/cjs/themes/slate/theme.css +1 -1
  62. package/dist/cjs/types/config.d.ts +11 -7
  63. package/dist/cli/theming/index.d.ts +3 -3
  64. package/dist/cli/theming/index.js +2 -2
  65. package/dist/cli/theming/tailwind.d.ts +2 -3
  66. package/dist/cli/theming/tailwind.js +1 -1
  67. package/dist/components/Accordion/Accordion.types.d.ts +2 -1
  68. package/dist/components/Accordion/AccordionContent.js +3 -2
  69. package/dist/components/Accordion/AccordionControlled.js +3 -2
  70. package/dist/components/Accordion/tests/Accordion.stories.d.ts +4 -0
  71. package/dist/components/Accordion/tests/Accordion.stories.js +11 -0
  72. package/dist/components/Autocomplete/tests/Autocomplete.stories.js +3 -6
  73. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +1 -1
  74. package/dist/components/FormControl/FormControl.context.d.ts +1 -1
  75. package/dist/components/ScrollArea/ScrollArea.js +1 -1
  76. package/dist/components/TextField/TextField.js +2 -2
  77. package/dist/components/TextField/TextField.module.css +1 -1
  78. package/dist/tests/ThemesPlayground.d.ts +2 -0
  79. package/dist/tests/ThemesPlayground.js +90 -0
  80. package/dist/tests/themes.stories.d.ts +16 -0
  81. package/dist/{themes/_generator/tests → tests}/themes.stories.js +74 -15
  82. package/dist/themes/_generator/definitions/slate.js +1 -1
  83. package/dist/themes/_generator/tokens/color/color.transforms.d.ts +2 -2
  84. package/dist/themes/_generator/tokens/color/color.transforms.js +29 -7
  85. package/dist/themes/_generator/tokens/color/color.types.d.ts +28 -3
  86. package/dist/themes/_generator/tokens/color/utilities/a11y.d.ts +20 -0
  87. package/dist/themes/_generator/tokens/color/utilities/a11y.js +58 -0
  88. package/dist/themes/_generator/tokens/color/utilities/convert.d.ts +11 -0
  89. package/dist/themes/_generator/tokens/color/utilities/convert.js +27 -0
  90. package/dist/themes/_generator/tokens/color/utilities/generateColors.d.ts +4 -0
  91. package/dist/themes/_generator/tokens/color/utilities/generateColors.js +150 -0
  92. package/dist/themes/_generator/tokens/color/utilities/generateMetaColors.d.ts +4 -0
  93. package/dist/themes/_generator/tokens/color/utilities/generateMetaColors.js +66 -0
  94. package/dist/{cjs/themes/_generator/utilities → themes/_generator/tokens}/css.d.ts +1 -1
  95. package/dist/themes/_generator/tokens/duration/duration.transforms.d.ts +2 -2
  96. package/dist/themes/_generator/tokens/duration/duration.transforms.js +2 -2
  97. package/dist/themes/_generator/tokens/easing/easing.transforms.d.ts +2 -2
  98. package/dist/themes/_generator/tokens/easing/easing.transforms.js +2 -2
  99. package/dist/themes/_generator/tokens/font/font.transforms.d.ts +2 -2
  100. package/dist/themes/_generator/tokens/font/font.transforms.js +3 -3
  101. package/dist/themes/_generator/tokens/fontFamily/fontFamily.transforms.d.ts +2 -2
  102. package/dist/themes/_generator/tokens/fontFamily/fontFamily.transforms.js +2 -2
  103. package/dist/themes/_generator/tokens/fontWeight/fontWeight.transforms.d.ts +2 -2
  104. package/dist/themes/_generator/tokens/fontWeight/fontWeight.transforms.js +2 -2
  105. package/dist/themes/_generator/tokens/radius/radius.transforms.d.ts +2 -2
  106. package/dist/themes/_generator/tokens/radius/radius.transforms.js +2 -2
  107. package/dist/themes/_generator/tokens/shadow/shadow.transforms.d.ts +2 -2
  108. package/dist/themes/_generator/tokens/shadow/shadow.transforms.js +4 -4
  109. package/dist/themes/_generator/tokens/types.d.ts +19 -17
  110. package/dist/themes/_generator/tokens/unit/unit.transforms.d.ts +2 -2
  111. package/dist/themes/_generator/tokens/unit/unit.transforms.js +2 -2
  112. package/dist/themes/_generator/tokens/unit/utilities/generate.d.ts +5 -0
  113. package/dist/themes/_generator/{utilities/generateUnits.js → tokens/unit/utilities/generate.js} +4 -5
  114. package/dist/themes/_generator/tokens/viewport/viewport.transforms.d.ts +2 -2
  115. package/dist/themes/_generator/tokens/viewport/viewport.transforms.js +2 -2
  116. package/dist/themes/_generator/transform.d.ts +3 -2
  117. package/dist/themes/_generator/transform.js +45 -11
  118. package/dist/themes/_generator/types.d.ts +4 -8
  119. package/dist/themes/_generator/utilities/mergeDefinitions.d.ts +1 -3
  120. package/dist/themes/_generator/utilities/mergeDefinitions.js +6 -4
  121. package/dist/themes/figma/tailwind.css +1 -1
  122. package/dist/themes/figma/theme.css +1 -1
  123. package/dist/themes/fragments/twitter/tailwind.css +1 -1
  124. package/dist/themes/fragments/twitter/theme.css +1 -1
  125. package/dist/themes/index.d.ts +4 -11
  126. package/dist/themes/index.js +1 -4
  127. package/dist/themes/reshaped/tailwind.css +1 -1
  128. package/dist/themes/reshaped/theme.css +1 -1
  129. package/dist/themes/slate/tailwind.css +1 -1
  130. package/dist/themes/slate/theme.css +1 -1
  131. package/dist/types/config.d.ts +11 -7
  132. package/dist/types/global.d.ts +3 -0
  133. package/package.json +24 -23
  134. package/dist/cjs/themes/_generator/utilities/color.d.ts +0 -105
  135. package/dist/cjs/themes/_generator/utilities/color.js +0 -409
  136. package/dist/cjs/themes/_generator/utilities/generateBackgroundColors.d.ts +0 -4
  137. package/dist/cjs/themes/_generator/utilities/generateBackgroundColors.js +0 -59
  138. package/dist/cjs/themes/_generator/utilities/generateColors.d.ts +0 -11
  139. package/dist/cjs/themes/_generator/utilities/generateColors.js +0 -178
  140. package/dist/cjs/themes/_generator/utilities/generateUnits.d.ts +0 -4
  141. package/dist/cjs/themes/_generator/utilities/mergeDeep.d.ts +0 -5
  142. package/dist/cjs/themes/_generator/utilities/mergeDeep.js +0 -24
  143. package/dist/cjs/themes/_generator/utilities/resolveTokenReference.d.ts +0 -3
  144. package/dist/cjs/themes/_generator/utilities/resolveTokenReference.js +0 -18
  145. package/dist/cjs/themes/_generator/utilities/tests/color.test.js +0 -81
  146. package/dist/themes/_generator/tests/themes.stories.d.ts +0 -16
  147. package/dist/themes/_generator/utilities/color.d.ts +0 -105
  148. package/dist/themes/_generator/utilities/color.js +0 -377
  149. package/dist/themes/_generator/utilities/generateBackgroundColors.d.ts +0 -4
  150. package/dist/themes/_generator/utilities/generateBackgroundColors.js +0 -57
  151. package/dist/themes/_generator/utilities/generateColors.d.ts +0 -11
  152. package/dist/themes/_generator/utilities/generateColors.js +0 -176
  153. package/dist/themes/_generator/utilities/generateUnits.d.ts +0 -4
  154. package/dist/themes/_generator/utilities/mergeDeep.d.ts +0 -5
  155. package/dist/themes/_generator/utilities/mergeDeep.js +0 -22
  156. package/dist/themes/_generator/utilities/resolveTokenReference.d.ts +0 -3
  157. package/dist/themes/_generator/utilities/resolveTokenReference.js +0 -16
  158. /package/dist/cjs/themes/_generator/{utilities/tests/color.test.d.ts → tokens/color/utilities/tests/a11y.test.d.ts} +0 -0
  159. /package/dist/cjs/themes/_generator/{utilities → tokens}/css.js +0 -0
  160. /package/dist/themes/_generator/{utilities → tokens}/css.js +0 -0
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const color_1 = require("./color");
4
- const constants_1 = require("../constants");
5
- const string_1 = require("../../../utilities/string");
6
- const generateBackgroundColors = (definition, themeOptions) => {
7
- if (!definition.color)
8
- return;
9
- Object.keys(definition.color).forEach((tokenName) => {
10
- const bgToken = definition.color?.[tokenName];
11
- const generatedForegroundName = `on${(0, string_1.capitalize)(tokenName)}`;
12
- const generatedRGBName = `rgb${(0, string_1.capitalize)(tokenName)}`;
13
- const generateOnColorsFor = [
14
- ...constants_1.bgWithDynamicForeground,
15
- ...(themeOptions?.generateOnColorsFor || []),
16
- ];
17
- const needsDynamicForeground = generateOnColorsFor.includes(tokenName) && !definition.color?.[generatedForegroundName];
18
- const needsRGB = tokenName.startsWith("background") ||
19
- tokenName.endsWith("black") ||
20
- tokenName.endsWith("white");
21
- if (!bgToken)
22
- return;
23
- if (needsDynamicForeground) {
24
- const overrideKeys = themeOptions?.onColorValues && Object.keys(themeOptions?.onColorValues);
25
- const onColorKey = overrideKeys && overrideKeys.find((key) => tokenName.toLowerCase().includes(key));
26
- const onColorHexMap = {
27
- lightHexColor: (onColorKey && themeOptions?.onColorValues?.[onColorKey]?.hexLight) ||
28
- definition?.color?.white?.hex,
29
- darkHexColor: (onColorKey && themeOptions?.onColorValues?.[onColorKey]?.hexDark) ||
30
- definition?.color?.black?.hex,
31
- };
32
- const hex = (0, color_1.getOnColor)({
33
- bgHexColor: bgToken.hex,
34
- mode: "light",
35
- algorithm: themeOptions?.colorContrastAlgorithm,
36
- ...onColorHexMap,
37
- });
38
- const hexDark = (0, color_1.getOnColor)({
39
- bgHexColor: bgToken.hexDark || bgToken.hex,
40
- mode: "dark",
41
- algorithm: themeOptions?.colorContrastAlgorithm,
42
- ...onColorHexMap,
43
- });
44
- definition.color[generatedForegroundName] = {
45
- hex,
46
- hexDark: hex !== hexDark ? hexDark : undefined,
47
- };
48
- }
49
- if (needsRGB) {
50
- const rgb = (0, color_1.hexToRgb)(bgToken.hex);
51
- const rgbDark = bgToken.hexDark && (0, color_1.hexToRgb)(bgToken.hexDark);
52
- definition.color[generatedRGBName] = {
53
- hex: `${rgb.r}, ${rgb.g}, ${rgb.b}`,
54
- hexDark: rgbDark && `${rgbDark.r}, ${rgbDark.g}, ${rgbDark.b}`,
55
- };
56
- }
57
- });
58
- };
59
- exports.default = generateBackgroundColors;
@@ -1,11 +0,0 @@
1
- import type { ThemeDefinition } from "../tokens/types";
2
- import type { Color } from "../types";
3
- declare const generate: (args?: {
4
- primary?: Color;
5
- critical?: Color;
6
- warning?: Color;
7
- positive?: Color;
8
- neutral?: Color;
9
- brand?: Color;
10
- }) => ThemeDefinition["color"];
11
- export default generate;
@@ -1,178 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const fn_1 = require("culori/require");
4
- const hexToOkHsl = (hex) => {
5
- const rgb = (0, fn_1.parseHex)(hex);
6
- if (!rgb)
7
- throw new Error(`[Reshaped] Can't generate rgb from ${hex} color`);
8
- const lrgb = (0, fn_1.convertRgbToLrgb)(rgb);
9
- const oklab = (0, fn_1.convertLrgbToOklab)(lrgb);
10
- const okhsl = (0, fn_1.convertOklabToOkhsl)(oklab);
11
- return okhsl;
12
- };
13
- const okhslToHex = (okhsl) => {
14
- const oklab = (0, fn_1.convertOkhslToOklab)(okhsl);
15
- const lrgb = (0, fn_1.convertOklabToLrgb)(oklab);
16
- const rgb = (0, fn_1.convertLrgbToRgb)(lrgb);
17
- return !okhsl.alpha || okhsl.alpha === 1 ? (0, fn_1.serializeHex)(rgb) : (0, fn_1.serializeHex8)(rgb);
18
- };
19
- const getDarkModeColor = (hsl) => {
20
- const { l } = hsl;
21
- const mid = 0.5;
22
- const lDelta = 1 - (l - mid) / (1 - mid);
23
- return { ...hsl, l: l < mid ? l : 1 - l * lDelta };
24
- };
25
- const generateColorValues = (args) => {
26
- const { key, hex, hexDark } = args;
27
- const capitalizedKey = key.charAt(0).toUpperCase() + key.slice(1);
28
- const okhsl = hexToOkHsl(hex);
29
- /**
30
- * Calculate hue perceptual lighness (yellow, cyan, )
31
- */
32
- const hueStep = 120;
33
- const normalizedHue = ((okhsl.h + 150) % 360) / 360;
34
- const hueLightness = Math.cos((2 * Math.PI) / hueStep) * normalizedHue;
35
- const okhslDark = key === "neutral"
36
- ? { ...okhsl, l: 1 - okhsl.l + 0.16, s: 0.1 }
37
- : (hexDark && hexToOkHsl(hexDark)) || getDarkModeColor(okhsl);
38
- /**
39
- * Background
40
- */
41
- const bgHex = hex;
42
- const bgHexDark = okhslToHex(okhslDark);
43
- const bgFadedHsl = key === "neutral" ? { ...okhsl, l: 0.96 } : { ...okhsl, l: 0.94 + 0.045 * hueLightness };
44
- const bgFadedHslDark = key === "neutral" ? { ...okhslDark, l: 0.15 } : { ...okhslDark, l: 0.16, s: okhslDark.s / 2 };
45
- const bgFadedHex = okhslToHex(bgFadedHsl);
46
- const bgFadedHexDark = okhslToHex(bgFadedHslDark);
47
- /**
48
- * Foreground
49
- */
50
- const fgOkhsl = key === "neutral" ? { ...okhsl, l: 0.2 } : { ...okhsl, l: 0.45 };
51
- // Lighter colors need smaller lightness increase for fg colors
52
- const fgDarkLDelta = 0.16 / (1 + Math.max(0, okhslDark.l - 0.5));
53
- const fgOkhslDark = key === "neutral"
54
- ? { ...okhsl, l: 0.96 }
55
- : { ...okhslDark, l: okhslDark.l + fgDarkLDelta, s: 0.7 };
56
- const fgHex = okhslToHex(fgOkhsl);
57
- const fgHexDark = okhslToHex(fgOkhslDark);
58
- /**
59
- * Border
60
- */
61
- const bdHex = key === "neutral" ? okhslToHex({ ...fgOkhsl, l: 0, alpha: 0.12 }) : fgHex;
62
- const bdHexDark = key === "neutral" ? okhslToHex({ ...fgOkhslDark, l: 1, alpha: 0.14 }) : fgHexDark;
63
- const bdFadedHex = key === "neutral"
64
- ? okhslToHex({
65
- ...bgFadedHsl,
66
- l: 0,
67
- alpha: 0.08,
68
- })
69
- : okhslToHex({
70
- ...bgFadedHsl,
71
- s: 0.6 - 0.2 * hueLightness,
72
- l: bgFadedHsl.l - 0.07,
73
- });
74
- const bdFadedHexDark = key === "neutral"
75
- ? okhslToHex({
76
- ...bgFadedHslDark,
77
- l: 1,
78
- alpha: 0.08,
79
- })
80
- : okhslToHex({
81
- ...bgFadedHslDark,
82
- l: bgFadedHslDark.l + 0.1,
83
- });
84
- const output = {
85
- [`background${capitalizedKey}`]: {
86
- hex: bgHex,
87
- hexDark: bgHexDark,
88
- },
89
- [`background${capitalizedKey}Faded`]: {
90
- hex: bgFadedHex,
91
- hexDark: bgFadedHexDark,
92
- },
93
- [`border${capitalizedKey}`]: {
94
- hex: bdHex,
95
- hexDark: bdHexDark,
96
- },
97
- [`border${capitalizedKey}Faded`]: {
98
- hex: bdFadedHex,
99
- hexDark: bdFadedHexDark,
100
- },
101
- [`foreground${capitalizedKey}`]: {
102
- hex: fgHex,
103
- hexDark: fgHexDark,
104
- },
105
- };
106
- if (key === "neutral") {
107
- output[`foreground${capitalizedKey}Faded`] = {
108
- hex: okhslToHex({ ...fgOkhsl, l: fgOkhsl.l + 0.25 }),
109
- hexDark: okhslToHex({ ...fgOkhslDark, l: fgOkhslDark.l - 0.15 }),
110
- };
111
- output[`backgroundDisabled`] = {
112
- hex: okhslToHex({ ...okhsl, s: 0.04, l: 0.94 }),
113
- hexDark: okhslToHex({ ...okhslDark, s: 0.04, l: 0.16 }),
114
- };
115
- output[`backgroundDisabledFaded`] = {
116
- hex: okhslToHex({ ...okhsl, l: 0.97, s: 0.04 }),
117
- hexDark: okhslToHex({ ...okhslDark, l: 0.12, s: 0.04 }),
118
- };
119
- output[`borderDisabled`] = {
120
- hex: okhslToHex({ ...okhsl, l: 0.9, s: 0.04 }),
121
- hexDark: okhslToHex({ ...okhslDark, l: 0.17, s: 0.04 }),
122
- };
123
- output[`foregroundDisabled`] = {
124
- hex: okhslToHex({ ...okhsl, l: 0.82, s: 0.04 }),
125
- hexDark: okhslToHex({ ...okhslDark, l: 0.32, s: 0.04 }),
126
- };
127
- output[`backgroundElevationBase`] = {
128
- hex: "#ffffff",
129
- hexDark: okhslToHex({ ...okhslDark, s: 0.03, l: 0.1 }),
130
- };
131
- output[`backgroundElevationRaised`] = {
132
- hex: "#ffffff",
133
- hexDark: okhslToHex({ ...okhslDark, s: 0.04, l: 0.11 }),
134
- };
135
- output[`backgroundElevationOverlay`] = {
136
- hex: "#ffffff",
137
- hexDark: okhslToHex({ ...okhslDark, s: 0.04, l: 0.13 }),
138
- };
139
- output[`backgroundPage`] = {
140
- hex: "#ffffff",
141
- hexDark: okhslToHex({ ...okhslDark, l: 0.07, s: 0.02 }),
142
- };
143
- output[`backgroundPageFaded`] = {
144
- hex: okhslToHex({ ...okhsl, l: 0.985 }),
145
- hexDark: okhslToHex({ ...okhslDark, l: 0.09, s: 0.02 }),
146
- };
147
- }
148
- return output;
149
- };
150
- const validateHexColor = (color) => {
151
- const hexColorRegex = /^#([A-Fa-f0-9]{3}){2}$/;
152
- if (!hexColorRegex.test(color)) {
153
- throw new Error(`[Reshaped] Invalid hex color: ${color}`);
154
- }
155
- return color;
156
- };
157
- const generate = (args = {}) => {
158
- const { primary = "#2563eb", critical = "#e22c2c", warning = "#facc15", positive = "#118850", neutral = "#e3e4e8", brand, } = args;
159
- const generateFor = (key, color) => {
160
- return generateColorValues({
161
- key,
162
- hex: validateHexColor(typeof color === "string" ? color : color.hex),
163
- hexDark: validateHexColor(typeof color === "string" ? color : (color.hexDark ?? color.hex)),
164
- });
165
- };
166
- const brandColor = brand || primary;
167
- return {
168
- ...generateFor("primary", primary),
169
- ...generateFor("critical", critical),
170
- ...generateFor("warning", warning),
171
- ...generateFor("positive", positive),
172
- ...generateFor("neutral", neutral),
173
- brand: typeof brandColor === "string" ? { hex: brandColor } : brandColor,
174
- white: { hex: "#ffffff" },
175
- black: { hex: "#000000" },
176
- };
177
- };
178
- exports.default = generate;
@@ -1,4 +0,0 @@
1
- import type * as T from "../types";
2
- import type { FullThemeDefinition } from "../tokens/types";
3
- declare const generateUnits: (definition: T.PartialDeep<FullThemeDefinition>) => void;
4
- export default generateUnits;
@@ -1,5 +0,0 @@
1
- type Obj = {
2
- [key: string]: unknown;
3
- };
4
- declare const mergeDeep: (target: Obj, ...sources: Obj[]) => Obj;
5
- export default mergeDeep;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const isObject = (item) => {
4
- return !!item && typeof item === "object" && !Array.isArray(item);
5
- };
6
- const mergeDeep = (target, ...sources) => {
7
- if (!sources.length)
8
- return target;
9
- const source = sources.shift();
10
- if (isObject(target) && isObject(source)) {
11
- Object.keys(source).forEach((key) => {
12
- if (isObject(source[key]) && isObject(target[key])) {
13
- if (!target[key])
14
- Object.assign(target, { [key]: {} });
15
- mergeDeep(target[key], source[key]);
16
- }
17
- else {
18
- Object.assign(target, { [key]: source[key] });
19
- }
20
- });
21
- }
22
- return mergeDeep(target, ...sources);
23
- };
24
- exports.default = mergeDeep;
@@ -1,3 +0,0 @@
1
- import type * as T from "../tokens/types";
2
- declare const resolveTokenReference: <ReferencedToken>(theme: T.ThemeDefinition, tokenType: T.TokenType, ref: string) => ReferencedToken;
3
- export default resolveTokenReference;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const resolveTokenReference = (theme, tokenType, ref) => {
4
- const tokenGroup = theme[tokenType];
5
- let referencedToken = null;
6
- Object.keys(tokenGroup).forEach((tokenName) => {
7
- if (referencedToken)
8
- return;
9
- // Relaxed runtime group resolving
10
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- if (tokenName === ref)
12
- referencedToken = tokenGroup[tokenName];
13
- });
14
- if (!referencedToken)
15
- throw new Error(`[Reshaped] Referenced token not found for: ${ref}`);
16
- return referencedToken;
17
- };
18
- exports.default = resolveTokenReference;
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const color_1 = require("../color");
5
- (0, vitest_1.describe)("cli/utilities/color", () => {
6
- (0, vitest_1.describe)("wcag", () => {
7
- (0, vitest_1.test)("returns white for black background", () => {
8
- (0, vitest_1.expect)((0, color_1.getOnColor)({ bgHexColor: "#000000", mode: "light" })).toBe("#ffffff");
9
- });
10
- (0, vitest_1.test)("returns white for dark colored background", () => {
11
- (0, vitest_1.expect)((0, color_1.getOnColor)({ bgHexColor: "#aa0000", mode: "light" })).toBe("#ffffff");
12
- });
13
- (0, vitest_1.test)("returns black for white background", () => {
14
- (0, vitest_1.expect)((0, color_1.getOnColor)({ bgHexColor: "#ffffff", mode: "light" })).toBe("#000000");
15
- });
16
- (0, vitest_1.test)("returns white for light colored background", () => {
17
- (0, vitest_1.expect)((0, color_1.getOnColor)({ bgHexColor: "#dedede", mode: "light" })).toBe("#000000");
18
- });
19
- (0, vitest_1.test)("returns #999 for white background", () => {
20
- (0, vitest_1.expect)((0, color_1.getOnColor)({
21
- bgHexColor: "#ffffff",
22
- lightHexColor: "#eeeeee",
23
- darkHexColor: "#999999",
24
- mode: "dark",
25
- })).toBe("#999999");
26
- });
27
- (0, vitest_1.test)("returns #eee for black background", () => {
28
- (0, vitest_1.expect)((0, color_1.getOnColor)({
29
- bgHexColor: "#000000",
30
- lightHexColor: "#eeeeee",
31
- darkHexColor: "#999999",
32
- mode: "dark",
33
- })).toBe("#eeeeee");
34
- });
35
- (0, vitest_1.test)("returns black for muted green background", () => {
36
- (0, vitest_1.expect)((0, color_1.getOnColor)({
37
- bgHexColor: "#1abc9c",
38
- mode: "dark",
39
- })).toBe("#000000");
40
- });
41
- });
42
- (0, vitest_1.describe)("apca", () => {
43
- (0, vitest_1.test)("returns white for black background", () => {
44
- (0, vitest_1.expect)((0, color_1.getOnColor)({ bgHexColor: "#000000", mode: "light", algorithm: "apca" })).toBe("#ffffff");
45
- });
46
- (0, vitest_1.test)("returns white for dark colored background", () => {
47
- (0, vitest_1.expect)((0, color_1.getOnColor)({ bgHexColor: "#aa0000", mode: "light", algorithm: "apca" })).toBe("#ffffff");
48
- });
49
- (0, vitest_1.test)("returns black for white background", () => {
50
- (0, vitest_1.expect)((0, color_1.getOnColor)({ bgHexColor: "#ffffff", mode: "light", algorithm: "apca" })).toBe("#000000");
51
- });
52
- (0, vitest_1.test)("returns white for light colored background", () => {
53
- (0, vitest_1.expect)((0, color_1.getOnColor)({ bgHexColor: "#dedede", mode: "light", algorithm: "apca" })).toBe("#000000");
54
- });
55
- (0, vitest_1.test)("returns #999 for white background", () => {
56
- (0, vitest_1.expect)((0, color_1.getOnColor)({
57
- bgHexColor: "#ffffff",
58
- lightHexColor: "#eeeeee",
59
- darkHexColor: "#999999",
60
- mode: "dark",
61
- algorithm: "apca",
62
- })).toBe("#999999");
63
- });
64
- (0, vitest_1.test)("returns #eee for black background", () => {
65
- (0, vitest_1.expect)((0, color_1.getOnColor)({
66
- bgHexColor: "#000000",
67
- lightHexColor: "#eeeeee",
68
- darkHexColor: "#999999",
69
- mode: "dark",
70
- algorithm: "apca",
71
- })).toBe("#eeeeee");
72
- });
73
- (0, vitest_1.test)("returns white for muted green background", () => {
74
- (0, vitest_1.expect)((0, color_1.getOnColor)({
75
- bgHexColor: "#1abc9c",
76
- mode: "dark",
77
- algorithm: "apca",
78
- })).toBe("#ffffff");
79
- });
80
- });
81
- });
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- declare const _default: {
3
- title: string;
4
- parameters: {
5
- iframe: {
6
- url: string;
7
- };
8
- a11y: {
9
- disable: boolean;
10
- };
11
- };
12
- };
13
- export default _default;
14
- export declare const base: () => React.JSX.Element;
15
- export declare const generation: () => React.JSX.Element;
16
- export declare const onColors: () => React.JSX.Element;
@@ -1,105 +0,0 @@
1
- /**
2
- * Some of the color conversion utilities are taken from https://github.com/hsluv/hsluv-javascript
3
- * They have been rewritten for easier color transformations in the theme generation case
4
- */
5
- type RgbColor = {
6
- r: number;
7
- g: number;
8
- b: number;
9
- };
10
- type HslColor = {
11
- h: number;
12
- s: number;
13
- l: number;
14
- };
15
- type XyzColor = {
16
- x: number;
17
- y: number;
18
- z: number;
19
- };
20
- type LuvColor = {
21
- l: number;
22
- u: number;
23
- v: number;
24
- };
25
- type LchColor = {
26
- l: number;
27
- c: number;
28
- h: number;
29
- };
30
- type BoundingLines = {
31
- r0s: number;
32
- r0i: number;
33
- r1s: number;
34
- r1i: number;
35
- g0s: number;
36
- g0i: number;
37
- g1s: number;
38
- g1i: number;
39
- b0s: number;
40
- b0i: number;
41
- b1s: number;
42
- b1i: number;
43
- };
44
- /**
45
- * Color utilities
46
- */
47
- export declare const calculateBoundingLines: (l: number) => BoundingLines;
48
- export declare const distanceFromOriginAngle: (slope: number, intercept: number, angle: number) => number;
49
- export declare const calcMaxChromaHsluv: (h: number, boundingLines: BoundingLines) => number;
50
- export declare function hexToRgb(hex: string): RgbColor;
51
- export declare const rgbToHsl: ({ r, g, b }: RgbColor) => HslColor;
52
- export declare const hslToRgb: ({ h, s, l }: HslColor) => RgbColor;
53
- export declare const rgbToHex: ({ r, g, b }: RgbColor) => string;
54
- export declare const toLinear: (c: number) => number;
55
- export declare const fromLinear: (c: number) => number;
56
- export declare const rgbToXyz: ({ r, g, b }: RgbColor) => {
57
- x: number;
58
- y: number;
59
- z: number;
60
- };
61
- export declare const xyzToRgb: ({ x, y, z }: XyzColor) => RgbColor;
62
- export declare const yToL: (y: number) => number;
63
- export declare const lToY: (l: number) => number;
64
- export declare const xyzToLuv: ({ x, y, z }: XyzColor) => LuvColor;
65
- export declare const luvToXyz: ({ l, u, v }: LuvColor) => XyzColor;
66
- export declare const luvToLch: ({ l, u, v }: LuvColor) => LchColor;
67
- export declare const lchToLuv: ({ l, c, h }: LchColor) => LuvColor;
68
- export declare const lchToHsluv: ({ l, c, h }: LchColor) => HslColor;
69
- export declare const hsluvToLch: ({ h, s, l }: HslColor) => LchColor;
70
- export declare const hsluvToHex: (hsl: HslColor) => string;
71
- export declare const hexToHsl: (H: string) => HslColor;
72
- export declare const hexToHsluv: (hex: string) => HslColor;
73
- export declare const hslToHex: (hsl: HslColor) => string;
74
- /**
75
- * Normalizing utilities
76
- */
77
- export declare const getDarkModeColor: (hsl: HslColor) => {
78
- s: number;
79
- l: number;
80
- h: number;
81
- };
82
- export declare const getLuminanceDelta: (luminance: number) => number;
83
- export declare function getRgbLuminance({ r, g, b }: RgbColor): number;
84
- export declare const getOnColorWCAG: (args: {
85
- bgHexColor: string;
86
- lightHexColor?: string;
87
- darkHexColor?: string;
88
- }) => string;
89
- export declare const getOnColorAPCA: (args: {
90
- bgHexColor: string;
91
- mode: "light" | "dark";
92
- lightHexColor?: string;
93
- darkHexColor?: string;
94
- }) => string;
95
- /**
96
- * On color resolver
97
- */
98
- export declare const getOnColor: (args: {
99
- bgHexColor: string;
100
- lightHexColor?: string;
101
- darkHexColor?: string;
102
- mode: "light" | "dark";
103
- algorithm?: "wcag" | "apca";
104
- }) => string;
105
- export {};