@apify/ui-library 0.70.1 → 0.71.1-featcolortokens-178953.55

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 (71) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +18 -5
  3. package/dist/src/components/code/code_block/code_block_with_tabs.d.ts +1 -0
  4. package/dist/src/components/code/code_block/code_block_with_tabs.d.ts.map +1 -1
  5. package/dist/src/components/code/code_block/code_block_with_tabs.js +1 -1
  6. package/dist/src/components/code/code_block/code_block_with_tabs.js.map +1 -1
  7. package/dist/src/design_system/colors/generated/colors_theme.dark.d.ts +110 -0
  8. package/dist/src/design_system/colors/generated/colors_theme.dark.d.ts.map +1 -0
  9. package/dist/src/design_system/colors/generated/colors_theme.dark.js +110 -0
  10. package/dist/src/design_system/colors/generated/colors_theme.dark.js.map +1 -0
  11. package/dist/src/design_system/colors/generated/colors_theme.light.d.ts +110 -0
  12. package/dist/src/design_system/colors/generated/colors_theme.light.d.ts.map +1 -0
  13. package/dist/src/design_system/colors/generated/colors_theme.light.js +110 -0
  14. package/dist/src/design_system/colors/generated/colors_theme.light.js.map +1 -0
  15. package/dist/src/design_system/colors/generated/dark.d.ts +5 -0
  16. package/dist/src/design_system/colors/generated/dark.d.ts.map +1 -0
  17. package/dist/src/design_system/colors/generated/dark.js +147 -0
  18. package/dist/src/design_system/colors/generated/dark.js.map +1 -0
  19. package/dist/src/design_system/colors/generated/light.d.ts +5 -0
  20. package/dist/src/design_system/colors/generated/light.d.ts.map +1 -0
  21. package/dist/src/design_system/colors/generated/light.js +147 -0
  22. package/dist/src/design_system/colors/generated/light.js.map +1 -0
  23. package/dist/src/design_system/colors/generated/palette.dark.d.ts +5 -0
  24. package/dist/src/design_system/colors/generated/palette.dark.d.ts.map +1 -0
  25. package/dist/src/design_system/colors/generated/palette.dark.js +74 -0
  26. package/dist/src/design_system/colors/generated/palette.dark.js.map +1 -0
  27. package/dist/src/design_system/colors/generated/palette.light.d.ts +5 -0
  28. package/dist/src/design_system/colors/generated/palette.light.d.ts.map +1 -0
  29. package/dist/src/design_system/colors/generated/palette.light.js +74 -0
  30. package/dist/src/design_system/colors/generated/palette.light.js.map +1 -0
  31. package/dist/src/design_system/colors/generated/properties_theme.d.ts +179 -0
  32. package/dist/src/design_system/colors/generated/properties_theme.d.ts.map +1 -0
  33. package/dist/src/design_system/colors/generated/properties_theme.js +179 -0
  34. package/dist/src/design_system/colors/generated/properties_theme.js.map +1 -0
  35. package/dist/src/design_system/colors/index.d.ts +8 -0
  36. package/dist/src/design_system/colors/index.d.ts.map +1 -0
  37. package/dist/src/design_system/colors/index.js +8 -0
  38. package/dist/src/design_system/colors/index.js.map +1 -0
  39. package/dist/src/design_system/theme.d.ts +88 -87
  40. package/dist/src/design_system/theme.d.ts.map +1 -1
  41. package/dist/src/design_system/theme.js +1 -2
  42. package/dist/src/design_system/theme.js.map +1 -1
  43. package/dist/src/index.d.ts +1 -0
  44. package/dist/src/index.d.ts.map +1 -1
  45. package/dist/src/index.js +1 -0
  46. package/dist/src/index.js.map +1 -1
  47. package/package.json +8 -5
  48. package/src/components/code/code_block/code_block_with_tabs.tsx +2 -1
  49. package/src/design_system/colors/build_color_tokens.js +169 -0
  50. package/src/design_system/colors/figma_color_tokens.dark.json +886 -0
  51. package/src/design_system/colors/figma_color_tokens.light.json +886 -0
  52. package/src/design_system/colors/generated/colors_theme.dark.ts +110 -0
  53. package/src/design_system/colors/generated/colors_theme.light.ts +110 -0
  54. package/src/design_system/colors/generated/dark.scss +148 -0
  55. package/src/design_system/colors/generated/dark.ts +147 -0
  56. package/src/design_system/colors/generated/light.scss +148 -0
  57. package/src/design_system/colors/generated/light.ts +147 -0
  58. package/src/design_system/colors/generated/palette.dark.scss +75 -0
  59. package/src/design_system/colors/generated/palette.dark.ts +74 -0
  60. package/src/design_system/colors/generated/palette.light.scss +75 -0
  61. package/src/design_system/colors/generated/palette.light.ts +74 -0
  62. package/src/design_system/colors/generated/properties_theme.ts +179 -0
  63. package/src/design_system/colors/index.ts +7 -0
  64. package/src/design_system/theme.ts +1 -2
  65. package/src/index.ts +1 -0
  66. package/style-dictionary.config.json +29 -0
  67. package/dist/tsconfig.build.tsbuildinfo +0 -1
  68. package/src/codemods/generate_color_property_tokens.mjs +0 -98
  69. package/src/codemods/generate_color_theme_files.mjs +0 -47
  70. package/src/design_system/generate_color_definitions.js +0 -44
  71. package/src/design_system/supernova_color_tokens.json +0 -1766
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/design_system/theme.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKd,4FAA4F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM/F,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/design_system/theme.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKd,4FAA4F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM/F,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA"}
@@ -1,5 +1,4 @@
1
- import { darkTheme, lightTheme } from './colors_theme.js';
2
- import { colorProperties } from './properties_theme.js';
1
+ import { colorProperties, darkTheme, lightTheme } from './colors/index.js';
3
2
  import { devices, layouts, radiuses, shadows, spaces, transitions, } from './tokens/index.js';
4
3
  import { typographyTokens } from './typography_theme.js';
5
4
  export const theme = {
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/design_system/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACH,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,MAAM,EACN,WAAW,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,KAAK,EAAE,eAAe;IACtB,YAAY,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACpD,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,QAAQ;IAChB,4FAA4F;IAC5F,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,WAAW;IACvB,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,gBAAgB;CAC/B,CAAC"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/design_system/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACH,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,MAAM,EACN,WAAW,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,KAAK,EAAE,eAAe;IACtB,YAAY,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACpD,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,QAAQ;IAChB,4FAA4F;IAC5F,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,WAAW;IACvB,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,gBAAgB;CAC/B,CAAC"}
@@ -3,5 +3,6 @@ export * from './utils/index.js';
3
3
  export * from './design_system/tokens/index.js';
4
4
  export * from './design_system/theme.js';
5
5
  export * from './ui_dependency_provider.js';
6
+ export * from './design_system/colors/index.js';
6
7
  export * from './type_utils.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,iBAAiB,CAAC"}
package/dist/src/index.js CHANGED
@@ -3,5 +3,6 @@ export * from './utils/index.js';
3
3
  export * from './design_system/tokens/index.js';
4
4
  export * from './design_system/theme.js';
5
5
  export * from './ui_dependency_provider.js';
6
+ export * from './design_system/colors/index.js';
6
7
  export * from './type_utils.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apify/ui-library",
3
- "version": "0.70.1",
3
+ "version": "0.71.1-featcolortokens-178953.55+af467915b4b",
4
4
  "description": "React UI library used by apify.com",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -14,11 +14,12 @@
14
14
  "test": "echo \"Warning: no test specified\" && exit 0",
15
15
  "lint": "eslint .",
16
16
  "lint:fix": "eslint . --fix",
17
- "build": "npm run clean && npm run compile",
17
+ "build": "npm run clean && npm run compile && npm run copy-styles",
18
18
  "clean": "rimraf ./dist",
19
19
  "compile": "tsc -p tsconfig.build.json",
20
- "generate-theme": "node ./src/codemods/generate_color_theme_files.mjs && node src/codemods/generate_color_property_tokens.mjs && node src/codemods/generate_typograpy_tokens_files.mjs && npm run lint:fix",
21
- "generate-color-definition": "node ./src/design_system/generate_color_definitions.js",
20
+ "generate-theme": "node src/codemods/generate_typograpy_tokens_files.mjs && npm run lint:fix",
21
+ "build-color-tokens": "node src/design_system/colors/build_color_tokens.js",
22
+ "copy-styles": "cpx \"src/design_system/colors/generated/*.scss\" dist/styles",
22
23
  "postpublish": "npm run clean"
23
24
  },
24
25
  "//": [
@@ -57,14 +58,16 @@
57
58
  "@types/node": "^22.10.5",
58
59
  "@types/react": "^18.2.74",
59
60
  "@types/styled-components": "^5.1.34",
61
+ "cpx": "^1.5.0",
60
62
  "eslint": "^9.22.0",
61
63
  "eslint-plugin-import": "2.26.0",
62
64
  "eslint-plugin-react": "^7.32.2",
63
65
  "eslint-plugin-react-hooks": "^4.6.0",
64
66
  "eslint-plugin-sonarjs": "^1.0.3",
65
67
  "recast": "^0.23.9",
68
+ "style-dictionary": "^4.4.0",
66
69
  "typescript": "^5.1.6",
67
70
  "typescript-eslint": "^8.24.0"
68
71
  },
69
- "gitHead": "9ae74a1661aa362bf700530e566f338c797b6b0f"
72
+ "gitHead": "af467915b4b5c3c48c090c932c5f9b51ab765411"
70
73
  }
@@ -66,6 +66,7 @@ export type CodeBlockTabProps = {
66
66
  key: CodeBlockTabKey;
67
67
  bashCommandsStart?: number[];
68
68
  content: string;
69
+ languageOverride?: string;
69
70
  onClick?: (e: React.MouseEvent) => void;
70
71
  } & Partial<SharedLinkProps>;
71
72
 
@@ -246,7 +247,7 @@ export const CodeBlockWithTabs = ({ className, codeBlockProps, currentTabKey, ta
246
247
  <CodeBlock
247
248
  bashCommandsStart={currentTab?.bashCommandsStart}
248
249
  content={currentTab?.content ?? ''}
249
- language={CODE_BLOCK_TAB_CATALOG[currentTab?.key]?.language}
250
+ language={currentTab.languageOverride ?? CODE_BLOCK_TAB_CATALOG[currentTab?.key]?.language}
250
251
  className={CODE_BLOCK_WITH_TABS_CLASSNAMES.CONTENT}
251
252
  hideBashHeader
252
253
  {...codeBlockProps}
@@ -0,0 +1,169 @@
1
+ import StyleDictionary from 'style-dictionary';
2
+
3
+ function toCamelCase(str) {
4
+ return str
5
+ .toLowerCase()
6
+ .replace(/[^a-zA-Z0-9]+(.)/g, (_, chr) => chr.toUpperCase());
7
+ }
8
+
9
+ function objectToTSLiteral(obj, indentLevel = 0) {
10
+ const indent = (level) => ' '.repeat(level); // 2-space indent
11
+
12
+ if (Array.isArray(obj)) {
13
+ if (obj.length === 0) return '[]';
14
+ return `[\n${obj
15
+ .map((item) => indent(indentLevel + 1) + objectToTSLiteral(item, indentLevel + 1))
16
+ .join(',\n')}\n${indent(indentLevel)}]`;
17
+ } if (obj && typeof obj === 'object') {
18
+ const entries = Object.entries(obj);
19
+ if (entries.length === 0) return '{}';
20
+ return `{\n${entries
21
+ .map(
22
+ ([key, value]) => `${indent(indentLevel + 1)}${key}: ${objectToTSLiteral(value, indentLevel + 1)}`,
23
+ )
24
+ .join('\n')}\n${indent(indentLevel)}}${indentLevel > 0 ? ',' : ''}`;
25
+ } if (typeof obj === 'string') {
26
+ return `'${obj}',`; // add quotes and escape
27
+ }
28
+ return String(obj);
29
+ }
30
+
31
+ async function buildTheme(theme) {
32
+ StyleDictionary.registerTransform({
33
+ name: 'name/prefix-color-name',
34
+ type: 'name',
35
+ transform: (prop) => {
36
+ // replace 'semantic' and 'decorative' with 'color' in the full token name
37
+ return prop.name
38
+ .replace(/^semantic/, 'color')
39
+ .replace(/^decorative/, 'color');
40
+ },
41
+ });
42
+
43
+ StyleDictionary.registerFormat({
44
+ name: 'typescript/css-variables-string',
45
+ format: ({ dictionary, options }) => {
46
+ const lines = dictionary.allTokens.map((token) => ` --${token.name}: ${token.$value};`);
47
+ return `/**
48
+ * Do not edit directly, this file was auto-generated.
49
+ */
50
+
51
+ export const ${options.varName ?? 'tokens'} = \`\n${lines.join('\n')}\n\`;\n`;
52
+ },
53
+ });
54
+
55
+ StyleDictionary.registerFormat({
56
+ name: 'typescript/css-properties',
57
+ format: ({ dictionary, options }) => {
58
+ const properties = {};
59
+ dictionary.allTokens.forEach((token) => {
60
+ const path = token.path.slice(1).map(toCamelCase);
61
+ let current = properties;
62
+ for (let i = 0; i < path.length - 1; i++) {
63
+ const key = path[i];
64
+ if (!(key in current)) {
65
+ current[key] = {};
66
+ }
67
+ current = current[key];
68
+ }
69
+ current[path[path.length - 1]] = `var(--${token.name})`;
70
+ });
71
+
72
+ return `/**
73
+ * Do not edit directly, this file was auto-generated.
74
+ */
75
+
76
+ export const ${options.varName ?? 'tokens'} = ${objectToTSLiteral(properties)} as const;\n`;
77
+ },
78
+ });
79
+
80
+ StyleDictionary.registerFormat({
81
+ name: 'typescript/css-colors',
82
+ format: ({ dictionary, options }) => {
83
+ const properties = {};
84
+ dictionary.allTokens.forEach((token) => {
85
+ const path = token.path.slice(1);
86
+ const name = toCamelCase(path.join(' '));
87
+ properties[name] = token.$value;
88
+ });
89
+
90
+ return `/**
91
+ * Do not edit directly, this file was auto-generated.
92
+ */
93
+
94
+ export const ${options.varName ?? 'tokens'} = ${objectToTSLiteral(properties)} as const;\n`;
95
+ },
96
+ });
97
+
98
+ StyleDictionary.registerFilter({
99
+ name: 'only-colors',
100
+ filter: (token) => ['Semantic', 'Decorative'].includes(token.path[0]),
101
+ });
102
+
103
+ StyleDictionary.registerFilter({
104
+ name: 'only-palette',
105
+ filter: (token) => ['Palette'].includes(token.path[0]),
106
+ });
107
+
108
+ StyleDictionary.registerFilter({
109
+ name: 'only-theme',
110
+ filter: (token) => ['Decorative', 'Palette'].includes(token.path[0]),
111
+ });
112
+
113
+ const sd = await (new StyleDictionary()).extend({
114
+ source: [`src/design_system/colors/figma_color_tokens.${theme}.json`],
115
+ platforms: {
116
+ main: {
117
+ transformGroup: 'scss',
118
+ transforms: ['name/prefix-color-name'],
119
+ buildPath: 'src/design_system/colors/generated/',
120
+ files: [
121
+ {
122
+ destination: `${theme}.scss`,
123
+ format: 'scss/map-flat',
124
+ mapName: 'tokens',
125
+ filter: 'only-colors',
126
+ },
127
+ {
128
+ destination: `palette.${theme}.scss`,
129
+ format: 'scss/map-flat',
130
+ mapName: 'tokens',
131
+ filter: 'only-palette',
132
+ },
133
+ {
134
+ destination: `${theme}.ts`,
135
+ format: 'typescript/css-variables-string',
136
+ filter: 'only-colors',
137
+ },
138
+ {
139
+ destination: `palette.${theme}.ts`,
140
+ format: 'typescript/css-variables-string',
141
+ filter: 'only-palette',
142
+ },
143
+ {
144
+ destination: `properties_theme.ts`,
145
+ format: 'typescript/css-properties',
146
+ filter: 'only-colors',
147
+ options: {
148
+ varName: 'colorProperties',
149
+ },
150
+ },
151
+ {
152
+ destination: `colors_theme.${theme}.ts`,
153
+ format: 'typescript/css-colors',
154
+ filter: 'only-theme',
155
+ options: {
156
+ varName: `${theme}Theme`,
157
+ },
158
+ },
159
+ ],
160
+ },
161
+ },
162
+ });
163
+ await sd.buildPlatform('main');
164
+ }
165
+
166
+ await Promise.all([
167
+ buildTheme('light'),
168
+ buildTheme('dark'),
169
+ ]);