@genexus/mercury 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +74 -0
- package/package.json +4 -1
- package/.editorconfig +0 -16
- package/.prettierrc.json +0 -13
- package/notes.md +0 -5
- package/src/_mixins.scss +0 -166
- package/src/assets/fonts/Inter_Black.woff2 +0 -0
- package/src/assets/fonts/Inter_Bold.woff2 +0 -0
- package/src/assets/fonts/Inter_ExtraBold.woff2 +0 -0
- package/src/assets/fonts/Inter_ExtraLight.woff2 +0 -0
- package/src/assets/fonts/Inter_Light.woff2 +0 -0
- package/src/assets/fonts/Inter_Medium.woff2 +0 -0
- package/src/assets/fonts/Inter_Regular.woff2 +0 -0
- package/src/assets/fonts/Inter_SemiBold.woff2 +0 -0
- package/src/assets/fonts/Inter_Thin.woff2 +0 -0
- package/src/assets/icons/objects/dark/api.svg +0 -1
- package/src/assets/icons/objects/dark/attribute.svg +0 -1
- package/src/assets/icons/objects/dark/bg-color.svg +0 -1
- package/src/assets/icons/objects/dark/business-process-diagram.svg +0 -1
- package/src/assets/icons/objects/dark/calendars.svg +0 -1
- package/src/assets/icons/objects/dark/category.svg +0 -1
- package/src/assets/icons/objects/dark/conversational-flows.svg +0 -1
- package/src/assets/icons/objects/dark/customization.svg +0 -1
- package/src/assets/icons/objects/dark/dashboard.svg +0 -1
- package/src/assets/icons/objects/dark/data-provider.svg +0 -1
- package/src/assets/icons/objects/dark/data-selector.svg +0 -1
- package/src/assets/icons/objects/dark/data-view.svg +0 -1
- package/src/assets/icons/objects/dark/datastore-category.svg +0 -1
- package/src/assets/icons/objects/dark/datastore.svg +0 -1
- package/src/assets/icons/objects/dark/dataview-index.svg +0 -1
- package/src/assets/icons/objects/dark/deployment-unit.svg +0 -1
- package/src/assets/icons/objects/dark/design.svg +0 -1
- package/src/assets/icons/objects/dark/diagram.svg +0 -1
- package/src/assets/icons/objects/dark/document-workflow.svg +0 -1
- package/src/assets/icons/objects/dark/document.svg +0 -1
- package/src/assets/icons/objects/dark/domain.svg +0 -1
- package/src/assets/icons/objects/dark/dso.svg +0 -1
- package/src/assets/icons/objects/dark/environment-no-select.svg +0 -1
- package/src/assets/icons/objects/dark/environment-select.svg +0 -1
- package/src/assets/icons/objects/dark/external-object.svg +0 -1
- package/src/assets/icons/objects/dark/file.svg +0 -1
- package/src/assets/icons/objects/dark/folder-open.svg +0 -1
- package/src/assets/icons/objects/dark/folder.svg +0 -1
- package/src/assets/icons/objects/dark/generator-category.svg +0 -1
- package/src/assets/icons/objects/dark/generator.svg +0 -1
- package/src/assets/icons/objects/dark/image.svg +0 -1
- package/src/assets/icons/objects/dark/knowledge-base.svg +0 -1
- package/src/assets/icons/objects/dark/lenguage.svg +0 -1
- package/src/assets/icons/objects/dark/main-object.svg +0 -1
- package/src/assets/icons/objects/dark/masterpage.svg +0 -1
- package/src/assets/icons/objects/dark/menu.svg +0 -1
- package/src/assets/icons/objects/dark/menubar.svg +0 -1
- package/src/assets/icons/objects/dark/mini-app.svg +0 -1
- package/src/assets/icons/objects/dark/module-open.svg +0 -1
- package/src/assets/icons/objects/dark/module.svg +0 -1
- package/src/assets/icons/objects/dark/notification-templates.svg +0 -1
- package/src/assets/icons/objects/dark/object.svg +0 -1
- package/src/assets/icons/objects/dark/offline-database.svg +0 -1
- package/src/assets/icons/objects/dark/orphant-document.svg +0 -1
- package/src/assets/icons/objects/dark/panel-for-sd.svg +0 -1
- package/src/assets/icons/objects/dark/patterns.svg +0 -1
- package/src/assets/icons/objects/dark/procedure.svg +0 -1
- package/src/assets/icons/objects/dark/query.svg +0 -1
- package/src/assets/icons/objects/dark/references.svg +0 -1
- package/src/assets/icons/objects/dark/report.svg +0 -1
- package/src/assets/icons/objects/dark/roles.svg +0 -1
- package/src/assets/icons/objects/dark/stencil.svg +0 -1
- package/src/assets/icons/objects/dark/structured-data-type.svg +0 -1
- package/src/assets/icons/objects/dark/subtype-group.svg +0 -1
- package/src/assets/icons/objects/dark/super-app.svg +0 -1
- package/src/assets/icons/objects/dark/table.svg +0 -1
- package/src/assets/icons/objects/dark/theme-for-sd.svg +0 -1
- package/src/assets/icons/objects/dark/theme-web.svg +0 -1
- package/src/assets/icons/objects/dark/theme.svg +0 -1
- package/src/assets/icons/objects/dark/to-be-defined.svg +0 -1
- package/src/assets/icons/objects/dark/transaction.svg +0 -1
- package/src/assets/icons/objects/dark/url-rewrite.svg +0 -1
- package/src/assets/icons/objects/dark/version.svg +0 -1
- package/src/assets/icons/objects/dark/web-component.svg +0 -1
- package/src/assets/icons/objects/dark/webpanel.svg +0 -1
- package/src/assets/icons/objects/dark/work-panel.svg +0 -1
- package/src/assets/icons/objects/dark/workflow.svg +0 -1
- package/src/assets/icons/objects/light/api.svg +0 -1
- package/src/assets/icons/objects/light/attribute.svg +0 -1
- package/src/assets/icons/objects/light/bg-color.svg +0 -1
- package/src/assets/icons/objects/light/business-process-diagram.svg +0 -1
- package/src/assets/icons/objects/light/calendars.svg +0 -1
- package/src/assets/icons/objects/light/category.svg +0 -1
- package/src/assets/icons/objects/light/conversational-flows.svg +0 -1
- package/src/assets/icons/objects/light/customization.svg +0 -1
- package/src/assets/icons/objects/light/dashboard.svg +0 -1
- package/src/assets/icons/objects/light/data-provider.svg +0 -1
- package/src/assets/icons/objects/light/data-selector.svg +0 -1
- package/src/assets/icons/objects/light/data-view.svg +0 -1
- package/src/assets/icons/objects/light/datastore-category.svg +0 -1
- package/src/assets/icons/objects/light/datastore.svg +0 -1
- package/src/assets/icons/objects/light/dataview-index.svg +0 -1
- package/src/assets/icons/objects/light/deployment-unit.svg +0 -1
- package/src/assets/icons/objects/light/design.svg +0 -1
- package/src/assets/icons/objects/light/diagram.svg +0 -1
- package/src/assets/icons/objects/light/document-workflow.svg +0 -1
- package/src/assets/icons/objects/light/document.svg +0 -1
- package/src/assets/icons/objects/light/domain.svg +0 -1
- package/src/assets/icons/objects/light/dso.svg +0 -1
- package/src/assets/icons/objects/light/environment-no-select.svg +0 -1
- package/src/assets/icons/objects/light/environment-select.svg +0 -1
- package/src/assets/icons/objects/light/external-object.svg +0 -1
- package/src/assets/icons/objects/light/file.svg +0 -1
- package/src/assets/icons/objects/light/folder-open.svg +0 -1
- package/src/assets/icons/objects/light/folder.svg +0 -1
- package/src/assets/icons/objects/light/generator-category.svg +0 -1
- package/src/assets/icons/objects/light/generator.svg +0 -1
- package/src/assets/icons/objects/light/image.svg +0 -1
- package/src/assets/icons/objects/light/knowledge-base.svg +0 -1
- package/src/assets/icons/objects/light/lenguage.svg +0 -1
- package/src/assets/icons/objects/light/main-object.svg +0 -1
- package/src/assets/icons/objects/light/masterpage.svg +0 -1
- package/src/assets/icons/objects/light/menu.svg +0 -1
- package/src/assets/icons/objects/light/menubar.svg +0 -1
- package/src/assets/icons/objects/light/mini-app.svg +0 -1
- package/src/assets/icons/objects/light/module-open.svg +0 -1
- package/src/assets/icons/objects/light/module.svg +0 -1
- package/src/assets/icons/objects/light/notification-templates.svg +0 -1
- package/src/assets/icons/objects/light/object.svg +0 -1
- package/src/assets/icons/objects/light/offline-database.svg +0 -1
- package/src/assets/icons/objects/light/orphant-document.svg +0 -1
- package/src/assets/icons/objects/light/panel-for-sd.svg +0 -1
- package/src/assets/icons/objects/light/patterns.svg +0 -1
- package/src/assets/icons/objects/light/procedure.svg +0 -1
- package/src/assets/icons/objects/light/query.svg +0 -1
- package/src/assets/icons/objects/light/references.svg +0 -1
- package/src/assets/icons/objects/light/report.svg +0 -1
- package/src/assets/icons/objects/light/roles.svg +0 -1
- package/src/assets/icons/objects/light/stencil.svg +0 -1
- package/src/assets/icons/objects/light/structured-data-type.svg +0 -1
- package/src/assets/icons/objects/light/subtype-group.svg +0 -1
- package/src/assets/icons/objects/light/super-app.svg +0 -1
- package/src/assets/icons/objects/light/table.svg +0 -1
- package/src/assets/icons/objects/light/theme-for-sd.svg +0 -1
- package/src/assets/icons/objects/light/theme-web.svg +0 -1
- package/src/assets/icons/objects/light/theme.svg +0 -1
- package/src/assets/icons/objects/light/to-be-defined.svg +0 -1
- package/src/assets/icons/objects/light/transaction.svg +0 -1
- package/src/assets/icons/objects/light/url-rewrite.svg +0 -1
- package/src/assets/icons/objects/light/version.svg +0 -1
- package/src/assets/icons/objects/light/web-component.svg +0 -1
- package/src/assets/icons/objects/light/webpanel.svg +0 -1
- package/src/assets/icons/objects/light/work-panel.svg +0 -1
- package/src/assets/icons/objects/light/workflow.svg +0 -1
- package/src/base/button/_icons.scss +0 -139
- package/src/base/button/_styles-2.scss +0 -275
- package/src/base/button/_styles.scss +0 -50
- package/src/base/button/_tokens.scss +0 -85
- package/src/base/icons/sass/icons-selectors.scss +0 -12
- package/src/base/icons/sass/multicolor/_objects.scss +0 -1948
- package/src/components/_template/_styles.scss +0 -4
- package/src/components/_template/_tokens.scss +0 -2
- package/src/components/checkbox/_styles.scss +0 -7
- package/src/components/checkbox/_tokens.scss +0 -14
- package/src/components/shortcuts/_styles.scss +0 -30
- package/src/components/shortcuts/_tokens.scss +0 -21
- package/src/components/tree-view/_styles.scss +0 -169
- package/src/components/tree-view/_tokens.scss +0 -60
- package/src/icons/_settings/monochrome.svg.template +0 -79
- package/src/icons/_settings/multicolor.svg.template +0 -126
- package/src/icons/_settings/states-monochrome.json +0 -18
- package/src/icons/objects/api.svg +0 -5
- package/src/icons/objects/attribute.svg +0 -6
- package/src/icons/objects/bg-color.svg +0 -6
- package/src/icons/objects/business-process-diagram.svg +0 -5
- package/src/icons/objects/calendars.svg +0 -5
- package/src/icons/objects/category.svg +0 -5
- package/src/icons/objects/conversational-flows.svg +0 -5
- package/src/icons/objects/customization.svg +0 -5
- package/src/icons/objects/dashboard.svg +0 -5
- package/src/icons/objects/data-provider.svg +0 -6
- package/src/icons/objects/data-selector.svg +0 -6
- package/src/icons/objects/data-view.svg +0 -6
- package/src/icons/objects/datastore-category.svg +0 -6
- package/src/icons/objects/datastore.svg +0 -6
- package/src/icons/objects/dataview-index.svg +0 -6
- package/src/icons/objects/deployment-unit.svg +0 -5
- package/src/icons/objects/design.svg +0 -6
- package/src/icons/objects/diagram.svg +0 -5
- package/src/icons/objects/document-workflow.svg +0 -5
- package/src/icons/objects/document.svg +0 -5
- package/src/icons/objects/domain.svg +0 -5
- package/src/icons/objects/dso.svg +0 -6
- package/src/icons/objects/environment-no-select.svg +0 -5
- package/src/icons/objects/environment-select.svg +0 -6
- package/src/icons/objects/external-object.svg +0 -5
- package/src/icons/objects/file.svg +0 -5
- package/src/icons/objects/folder-open.svg +0 -5
- package/src/icons/objects/folder.svg +0 -5
- package/src/icons/objects/generator-category.svg +0 -6
- package/src/icons/objects/generator.svg +0 -6
- package/src/icons/objects/image.svg +0 -5
- package/src/icons/objects/knowledge-base.svg +0 -7
- package/src/icons/objects/lenguage.svg +0 -5
- package/src/icons/objects/main-object.svg +0 -13
- package/src/icons/objects/masterpage.svg +0 -5
- package/src/icons/objects/menu.svg +0 -5
- package/src/icons/objects/menubar.svg +0 -6
- package/src/icons/objects/mini-app.svg +0 -8
- package/src/icons/objects/module-open.svg +0 -5
- package/src/icons/objects/module.svg +0 -5
- package/src/icons/objects/notification-templates.svg +0 -5
- package/src/icons/objects/object.svg +0 -5
- package/src/icons/objects/offline-database.svg +0 -6
- package/src/icons/objects/orphant-document.svg +0 -5
- package/src/icons/objects/panel-for-sd.svg +0 -6
- package/src/icons/objects/patterns.svg +0 -6
- package/src/icons/objects/procedure.svg +0 -5
- package/src/icons/objects/query.svg +0 -6
- package/src/icons/objects/references.svg +0 -5
- package/src/icons/objects/report.svg +0 -5
- package/src/icons/objects/roles.svg +0 -5
- package/src/icons/objects/stencil.svg +0 -10
- package/src/icons/objects/structured-data-type.svg +0 -7
- package/src/icons/objects/subtype-group.svg +0 -5
- package/src/icons/objects/super-app.svg +0 -8
- package/src/icons/objects/table.svg +0 -5
- package/src/icons/objects/theme-for-sd.svg +0 -6
- package/src/icons/objects/theme-web.svg +0 -9
- package/src/icons/objects/theme.svg +0 -6
- package/src/icons/objects/to-be-defined.svg +0 -5
- package/src/icons/objects/transaction.svg +0 -5
- package/src/icons/objects/url-rewrite.svg +0 -5
- package/src/icons/objects/version.svg +0 -8
- package/src/icons/objects/web-component.svg +0 -5
- package/src/icons/objects/webpanel.svg +0 -6
- package/src/icons/objects/work-panel.svg +0 -5
- package/src/icons/objects/workflow.svg +0 -5
- package/src/tokens/primitive/_border.scss +0 -13
- package/src/tokens/primitive/_color.scss +0 -109
- package/src/tokens/primitive/_elevation.scss +0 -38
- package/src/tokens/primitive/_font.scss +0 -37
- package/src/tokens/primitive/_spacing.scss +0 -12
- package/src/tokens/primitive/_timing.scss +0 -6
- package/src/tokens/semantic/_accent.scss +0 -7
- package/src/tokens/semantic/_border.scss +0 -16
- package/src/tokens/semantic/_heading.scss +0 -3
- package/src/tokens/semantic/_icon.scss +0 -18
- package/src/tokens/semantic/_item.scss +0 -21
- package/src/tokens/semantic/_other.scss +0 -46
- package/src/tokens/semantic/_text.scss +0 -16
- package/src/tokens/semantic/_tokens.scss +0 -7
- package/svg-generator/processor-sass.js +0 -301
- package/svg-generator/processor-svg.js +0 -397
- package/svg-generator/processor-ts.js +0 -0
- package/temporary-tests/test-button-icons/index.html +0 -48
- package/temporary-tests/test-icons/index.html +0 -247
- package/test/test.scss +0 -3
|
@@ -1,397 +0,0 @@
|
|
|
1
|
-
import { glob } from "glob";
|
|
2
|
-
import { readFileSync, writeFile, existsSync, mkdirSync, rmSync } from "fs";
|
|
3
|
-
//import * as path from "path";
|
|
4
|
-
import { dirname, basename, join } from "path";
|
|
5
|
-
import { optimize } from "svgo";
|
|
6
|
-
import * as cheerio from "cheerio";
|
|
7
|
-
|
|
8
|
-
const REGEX_USED_VARS = new RegExp("--i\\d\\d", "g");
|
|
9
|
-
const REGEX_REMOVE_VARS = new RegExp("--i\\d\\d:[^;]+;", "g");
|
|
10
|
-
const SRC_DIRECTORY = await process.argv[2];
|
|
11
|
-
const OUTPUT_DIRECTORY = await process.argv[3];
|
|
12
|
-
const MULTICOLOR_TEMPLATE_SVG = await process.argv[4];
|
|
13
|
-
const MONOCHROME_TEMPLATE_SVG = await process.argv[5];
|
|
14
|
-
const MONOCHROME_STATES_FILE = process.argv[6];
|
|
15
|
-
const SVG_FIGURES = [
|
|
16
|
-
"rect",
|
|
17
|
-
"circle",
|
|
18
|
-
"ellipse",
|
|
19
|
-
"line",
|
|
20
|
-
"path",
|
|
21
|
-
"polygon",
|
|
22
|
-
"polyline",
|
|
23
|
-
];
|
|
24
|
-
|
|
25
|
-
const MULTICOLOR_TEMPLATE = readAllTextFile(MULTICOLOR_TEMPLATE_SVG);
|
|
26
|
-
const MONOCHROME_TEMPLATE = readAllTextFile(MONOCHROME_TEMPLATE_SVG);
|
|
27
|
-
|
|
28
|
-
const files = await glob(`${SRC_DIRECTORY}/**/*.svg`);
|
|
29
|
-
const statesJson = getStatesJson();
|
|
30
|
-
|
|
31
|
-
//ch is for Cheerio
|
|
32
|
-
let ch;
|
|
33
|
-
|
|
34
|
-
clearOutputDir();
|
|
35
|
-
|
|
36
|
-
files.forEach((file) => {
|
|
37
|
-
processSvg(file, readAllTextFile(file), getOutputPaths(file));
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* @description It removes the OUTPUT_DIR, and it then creates the folder.
|
|
42
|
-
*/
|
|
43
|
-
function clearOutputDir() {
|
|
44
|
-
rmSync(OUTPUT_DIRECTORY, { recursive: true, force: true }, (err) => {
|
|
45
|
-
if (err) {
|
|
46
|
-
throw err;
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function getStatesJson() {
|
|
52
|
-
try {
|
|
53
|
-
const statesJson = readFileSync(`./${MONOCHROME_STATES_FILE}`, "utf8");
|
|
54
|
-
return JSON.parse(statesJson);
|
|
55
|
-
} catch (error) {
|
|
56
|
-
if (error.code === "ENOENT") {
|
|
57
|
-
console.error(
|
|
58
|
-
`states.json not found in /${SRC_DIRECTORY}. All states will be generated for every icon.`
|
|
59
|
-
);
|
|
60
|
-
} else {
|
|
61
|
-
console.error(
|
|
62
|
-
`Error reading ${SRC_DIRECTORY}/states.json:`,
|
|
63
|
-
error.message
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function readAllTextFile(file) {
|
|
70
|
-
try {
|
|
71
|
-
return readFileSync(file, "utf8");
|
|
72
|
-
} catch (err) {
|
|
73
|
-
throw err;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function getOutputPaths(file) {
|
|
78
|
-
const categoryFolder = basename(dirname(file));
|
|
79
|
-
const folder = join(OUTPUT_DIRECTORY, categoryFolder);
|
|
80
|
-
const directoryLight = join(folder, "light");
|
|
81
|
-
const directoryDark = join(folder, "dark");
|
|
82
|
-
const fileName = basename(file);
|
|
83
|
-
|
|
84
|
-
if (!existsSync(directoryLight)) {
|
|
85
|
-
mkdirSync(directoryLight, { recursive: true });
|
|
86
|
-
}
|
|
87
|
-
if (!existsSync(directoryDark)) {
|
|
88
|
-
mkdirSync(directoryDark, { recursive: true });
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return {
|
|
92
|
-
light: join(directoryLight, fileName),
|
|
93
|
-
dark: join(directoryDark, fileName),
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function processSvg(path, data, output) {
|
|
98
|
-
ch = cheerio.load(data, { xmlMode: true });
|
|
99
|
-
const chSvg = ch("svg");
|
|
100
|
-
const contents = chSvg.contents();
|
|
101
|
-
const size = chSvg.attr("viewBox");
|
|
102
|
-
const width = size.split(" ")[2];
|
|
103
|
-
const height = size.split(" ")[3];
|
|
104
|
-
const content = parseContent(contents);
|
|
105
|
-
const templateInfo = getTemplate(path);
|
|
106
|
-
const template = templateInfo["template"];
|
|
107
|
-
const states = templateInfo["states"];
|
|
108
|
-
let svg = template;
|
|
109
|
-
|
|
110
|
-
if (states !== undefined) {
|
|
111
|
-
//only for monochrome icons. states is defined only for monochrome icons.
|
|
112
|
-
svg = removeUnusedStates(svg, states);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
svg = setSize(svg, width, height);
|
|
116
|
-
svg = setContent(svg, content);
|
|
117
|
-
svg = setX(svg, width, states);
|
|
118
|
-
|
|
119
|
-
if (states === undefined) {
|
|
120
|
-
//only for multicolor icons.
|
|
121
|
-
svg = removeUnusedVars(svg, content, path);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
writeAllTextFile(output.light, compressSvg(setColorScheme(svg, "light")));
|
|
125
|
-
writeAllTextFile(output.dark, compressSvg(setColorScheme(svg, "dark")));
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* @description it removes the unused styles, views and uses from the svg. This is only for the monochrome icons. The list of states for every icon is defined on states-monochrome.json
|
|
130
|
-
*/
|
|
131
|
-
function removeUnusedStates(template, states) {
|
|
132
|
-
const templateHtml = ch.load(template, null, false);
|
|
133
|
-
|
|
134
|
-
for (const state in states) {
|
|
135
|
-
const selected = states[state];
|
|
136
|
-
|
|
137
|
-
if (!selected) {
|
|
138
|
-
templateHtml(`style[data-state="${state}"]`).remove();
|
|
139
|
-
templateHtml(`view[id="${state}"]`).remove();
|
|
140
|
-
templateHtml(`use[data-state="${state}"]`).remove();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
return templateHtml.html();
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
function getTemplate(path) {
|
|
148
|
-
if (statesJson) {
|
|
149
|
-
//states json is used for coloring monochrome icons
|
|
150
|
-
let iconPath = path.split("\\");
|
|
151
|
-
|
|
152
|
-
if (iconPath.length === 2) {
|
|
153
|
-
// no category. icon is direct children of the source folder
|
|
154
|
-
iconPath.splice(0, 1);
|
|
155
|
-
}
|
|
156
|
-
if (iconPath.length > 2) {
|
|
157
|
-
iconPath = iconPath.slice(-2);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
//remove icon file extension
|
|
161
|
-
const fileNameExtension = iconPath[iconPath.length - 1];
|
|
162
|
-
const fileName = getIconName(fileNameExtension);
|
|
163
|
-
iconPath[iconPath.length - 1] = fileName;
|
|
164
|
-
|
|
165
|
-
//find the icon "states" in states.json. If "states" is returned it means this is a monochrome colored icon, otherwise it is considered a multicolor icon.
|
|
166
|
-
const iconStates = getIconStates(statesJson, iconPath);
|
|
167
|
-
|
|
168
|
-
if (iconStates !== undefined) {
|
|
169
|
-
return {
|
|
170
|
-
template: MONOCHROME_TEMPLATE,
|
|
171
|
-
states: iconStates,
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
//if iconStates is undefined, this is likely to be a multicolor icon
|
|
175
|
-
return {
|
|
176
|
-
template: MULTICOLOR_TEMPLATE,
|
|
177
|
-
states: undefined,
|
|
178
|
-
};
|
|
179
|
-
} else {
|
|
180
|
-
//SOURCE_FOLDER/states-monochrome.json is needed to process monochrome icons.
|
|
181
|
-
return {
|
|
182
|
-
template: MULTICOLOR_TEMPLATE,
|
|
183
|
-
states: undefined,
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
function getIconName(fileNameExtension) {
|
|
189
|
-
// Find the position of the last dot (.)
|
|
190
|
-
const dotIndex = fileNameExtension.lastIndexOf(".");
|
|
191
|
-
// If dotIndex is greater than 0, return the substring before the last dot
|
|
192
|
-
if (dotIndex > 0) {
|
|
193
|
-
const fileName = fileNameExtension.slice(0, dotIndex);
|
|
194
|
-
return fileName;
|
|
195
|
-
}
|
|
196
|
-
// If no dot is found or it's the first character, return the original string
|
|
197
|
-
return fileNameExtension;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
function getIconStates(stateObj, iconPath, i = 0) {
|
|
201
|
-
// i has to be the index of the category folder in the path, or the icon name.
|
|
202
|
-
|
|
203
|
-
// Base case: if obj is not an object or is null, return undefined
|
|
204
|
-
if (typeof stateObj !== "object" || stateObj === null) {
|
|
205
|
-
return undefined;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
const key = [iconPath[i]];
|
|
209
|
-
|
|
210
|
-
// Check if the current object has the desired key
|
|
211
|
-
if (stateObj.hasOwnProperty(key)) {
|
|
212
|
-
// If the key has a "states" property, return its value
|
|
213
|
-
if (stateObj[key].hasOwnProperty("states")) {
|
|
214
|
-
return stateObj[key]["states"];
|
|
215
|
-
} else {
|
|
216
|
-
return getIconStates(stateObj[key], iconPath, i + 1);
|
|
217
|
-
}
|
|
218
|
-
} else {
|
|
219
|
-
//icon not found
|
|
220
|
-
return undefined;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
function setSize(svg, width, height) {
|
|
225
|
-
return svg.replaceAll("$width$", width).replaceAll("$height$", height);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
function setContent(svg, content) {
|
|
229
|
-
return svg.replace("$content$", content);
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
function setX(svg, width, states) {
|
|
233
|
-
const size = parseInt(width);
|
|
234
|
-
|
|
235
|
-
if (states === undefined) {
|
|
236
|
-
//if icons has no states, if because is multicolor
|
|
237
|
-
return svg
|
|
238
|
-
.replaceAll("$x-enabled$", size * 0)
|
|
239
|
-
.replaceAll("$x-hover$", size * 1)
|
|
240
|
-
.replaceAll("$x-active$", size * 2)
|
|
241
|
-
.replaceAll("$x-disabled$", size * 3);
|
|
242
|
-
} else {
|
|
243
|
-
//if icons has states, if because is monochrome
|
|
244
|
-
let counter = 0;
|
|
245
|
-
for (let state in states) {
|
|
246
|
-
if (states[state]) {
|
|
247
|
-
svg = svg.replaceAll(`$x-${state}$`, size * counter);
|
|
248
|
-
counter++;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
return svg;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* @description For every figure (path, circle, etc) it will update the fill value with a css var()
|
|
257
|
-
* that matches the class name. For example, if the class name is "--icon-04" the fill value will be
|
|
258
|
-
* updated to "var(--icon-04)".
|
|
259
|
-
* @argument content: it expects to be a cheerio virtual DOM.
|
|
260
|
-
*/
|
|
261
|
-
function parseContent(content) {
|
|
262
|
-
const svgFigures = content.find(SVG_FIGURES.join(","));
|
|
263
|
-
let updatedContent = "";
|
|
264
|
-
|
|
265
|
-
svgFigures.each((i, svgFigure) => {
|
|
266
|
-
let cssClasses = svgFigure.attribs.class;
|
|
267
|
-
let colorClass;
|
|
268
|
-
let isMultiColor = false;
|
|
269
|
-
let hasFill = svgFigure.attribs.fill;
|
|
270
|
-
const hasStroke = svgFigure.attribs.stroke;
|
|
271
|
-
|
|
272
|
-
//temporary fix
|
|
273
|
-
if (!hasFill) {
|
|
274
|
-
svgFigure.attribs.fill = "black";
|
|
275
|
-
hasFill = true;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
if (cssClasses) {
|
|
279
|
-
cssClasses = cssClasses.split(" ");
|
|
280
|
-
colorClass = cssClasses.find((cssClass) => cssClass.includes("--i"));
|
|
281
|
-
//figures that have a class '--i**' are multicolor icons. A single --i** is expected for every figure.
|
|
282
|
-
if (colorClass !== undefined) {
|
|
283
|
-
isMultiColor = true;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
//fill (is not a linear icon)
|
|
288
|
-
if (hasFill) {
|
|
289
|
-
if (isMultiColor) {
|
|
290
|
-
svgFigure.attribs.fill = `var(${colorClass})`;
|
|
291
|
-
} else {
|
|
292
|
-
svgFigure.attribs.fill = `var(--icon-color)`;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
//stroke (is a linear icon)
|
|
297
|
-
if (hasStroke) {
|
|
298
|
-
if (isMultiColor) {
|
|
299
|
-
svgFigure.attribs.stroke = `var(${colorClass})`;
|
|
300
|
-
} else {
|
|
301
|
-
svgFigure.attribs.stroke = `var(--icon-color)`;
|
|
302
|
-
}
|
|
303
|
-
const strokeWidth = svgFigure.attribs.strokeWidth;
|
|
304
|
-
svgFigure.attribs.strokeWidth = strokeWidth;
|
|
305
|
-
//prevent "automatic" fill if "Remove svg element fill" option was not activated on SVG Export figma plugin.
|
|
306
|
-
svgFigure.attribs.fill = "none";
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
//Remove class, not needed anymore
|
|
310
|
-
delete svgFigure.attribs.class;
|
|
311
|
-
//Remove style, if any;
|
|
312
|
-
delete svgFigure.attribs.style;
|
|
313
|
-
//convert object to string
|
|
314
|
-
updatedContent += ch.html(svgFigure);
|
|
315
|
-
});
|
|
316
|
-
|
|
317
|
-
return updatedContent;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
function removeUnusedVars(svg, content, path) {
|
|
321
|
-
let usedVars = content.match(REGEX_USED_VARS);
|
|
322
|
-
if (usedVars) {
|
|
323
|
-
//remove repeated vars
|
|
324
|
-
usedVars = usedVars.filter((item, index) => {
|
|
325
|
-
return usedVars.indexOf(item) === index;
|
|
326
|
-
});
|
|
327
|
-
}
|
|
328
|
-
return svg.replace(REGEX_REMOVE_VARS, (match) => {
|
|
329
|
-
if (usedVars.includes(match.slice(0, 5))) {
|
|
330
|
-
return match;
|
|
331
|
-
}
|
|
332
|
-
return "";
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
function setColorScheme(svg, colorScheme) {
|
|
337
|
-
return svg.replaceAll("$color-scheme$", colorScheme);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
function compressSvg(svg) {
|
|
341
|
-
svg = optimizeSvg(svg);
|
|
342
|
-
svg = minifyCssVars(svg);
|
|
343
|
-
return svg;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
function optimizeSvg(svg) {
|
|
347
|
-
return optimize(svg, {
|
|
348
|
-
multipass: true,
|
|
349
|
-
plugins: [
|
|
350
|
-
{
|
|
351
|
-
name: "preset-default",
|
|
352
|
-
params: {
|
|
353
|
-
overrides: {
|
|
354
|
-
cleanupIds: {
|
|
355
|
-
preserve: [
|
|
356
|
-
"enabled",
|
|
357
|
-
"hover",
|
|
358
|
-
"active",
|
|
359
|
-
"disabled",
|
|
360
|
-
"on-surface",
|
|
361
|
-
"on-primary",
|
|
362
|
-
"on-primary--active",
|
|
363
|
-
],
|
|
364
|
-
},
|
|
365
|
-
},
|
|
366
|
-
},
|
|
367
|
-
},
|
|
368
|
-
],
|
|
369
|
-
}).data;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
function minifyCssVars(svg) {
|
|
373
|
-
const map = {
|
|
374
|
-
"--i01": "--a",
|
|
375
|
-
"--i02": "--b",
|
|
376
|
-
"--i03": "--c",
|
|
377
|
-
"--i04": "--d",
|
|
378
|
-
"--i05": "--e",
|
|
379
|
-
"--i06": "--f",
|
|
380
|
-
"--i07": "--g",
|
|
381
|
-
"--i08": "--h",
|
|
382
|
-
"--i09": "--i",
|
|
383
|
-
};
|
|
384
|
-
|
|
385
|
-
return svg.replace(REGEX_USED_VARS, (match) => {
|
|
386
|
-
return map[match];
|
|
387
|
-
});
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
function writeAllTextFile(filePath, data) {
|
|
391
|
-
writeFile(filePath, data, "utf8", (err) => {
|
|
392
|
-
if (err) {
|
|
393
|
-
console.error("Error writing to output file:", err);
|
|
394
|
-
return;
|
|
395
|
-
}
|
|
396
|
-
});
|
|
397
|
-
}
|
|
File without changes
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>Test Button Icons</title>
|
|
7
|
-
<link rel="stylesheet" href="../../test/mercury.css" />
|
|
8
|
-
<style>
|
|
9
|
-
html.dark {
|
|
10
|
-
background-color: rgb(32, 31, 31);
|
|
11
|
-
color: #ebe9e9;
|
|
12
|
-
}
|
|
13
|
-
.button {
|
|
14
|
-
display: flex;
|
|
15
|
-
align-items: center;
|
|
16
|
-
gap: 8px;
|
|
17
|
-
padding: 4px 8px;
|
|
18
|
-
font-size: 20px;
|
|
19
|
-
color: inherit;
|
|
20
|
-
}
|
|
21
|
-
.button::before {
|
|
22
|
-
content: "";
|
|
23
|
-
width: 32px;
|
|
24
|
-
height: 32px;
|
|
25
|
-
background-image: var(--icon-path);
|
|
26
|
-
display: block;
|
|
27
|
-
}
|
|
28
|
-
.button,
|
|
29
|
-
.button:hover,
|
|
30
|
-
.button:active {
|
|
31
|
-
background-color: transparent;
|
|
32
|
-
}
|
|
33
|
-
</style>
|
|
34
|
-
</head>
|
|
35
|
-
<body>
|
|
36
|
-
<button id="toggle-dark-btn">toggle dark</button>
|
|
37
|
-
<br /><br /><br />
|
|
38
|
-
<button class="button icon__multicolor-path">Big Button</button>
|
|
39
|
-
|
|
40
|
-
<script>
|
|
41
|
-
const toggleDarkBtn = document.getElementById("toggle-dark-btn");
|
|
42
|
-
const htmlTag = document.querySelector("html");
|
|
43
|
-
toggleDarkBtn.addEventListener("click", () => {
|
|
44
|
-
htmlTag.classList.toggle("dark");
|
|
45
|
-
});
|
|
46
|
-
</script>
|
|
47
|
-
</body>
|
|
48
|
-
</html>
|
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>Icons</title>
|
|
7
|
-
<style>
|
|
8
|
-
.icon {
|
|
9
|
-
width: 60px;
|
|
10
|
-
height: 60px;
|
|
11
|
-
}
|
|
12
|
-
.icon--monochrome-light-path {
|
|
13
|
-
}
|
|
14
|
-
.container {
|
|
15
|
-
display: flex;
|
|
16
|
-
gap: 32px;
|
|
17
|
-
}
|
|
18
|
-
</style>
|
|
19
|
-
</head>
|
|
20
|
-
<body>
|
|
21
|
-
<!-- ============================
|
|
22
|
-
Multicolor Light
|
|
23
|
-
============================ -->
|
|
24
|
-
<h2>multicolor light</h2>
|
|
25
|
-
<div class="container">
|
|
26
|
-
<!-- path icon -->
|
|
27
|
-
<div class="col">
|
|
28
|
-
<p>path:enabled</p>
|
|
29
|
-
<img
|
|
30
|
-
class="icon"
|
|
31
|
-
src="/packages/mercury/src/assets/icons/multicolor/light/path.svg#enabled"
|
|
32
|
-
/>
|
|
33
|
-
|
|
34
|
-
<p>path:hover</p>
|
|
35
|
-
<img
|
|
36
|
-
class="icon"
|
|
37
|
-
src="/packages/mercury/src/assets/icons/multicolor/light/path.svg#hover"
|
|
38
|
-
/>
|
|
39
|
-
|
|
40
|
-
<p>path:active</p>
|
|
41
|
-
<img
|
|
42
|
-
class="icon"
|
|
43
|
-
src="/packages/mercury/src/assets/icons/multicolor/light/path.svg#active"
|
|
44
|
-
/>
|
|
45
|
-
|
|
46
|
-
<p>path:disabled</p>
|
|
47
|
-
<img
|
|
48
|
-
class="icon"
|
|
49
|
-
src="/packages/mercury/src/assets/icons/multicolor/light/path.svg#disabled"
|
|
50
|
-
/>
|
|
51
|
-
</div>
|
|
52
|
-
|
|
53
|
-
<!-- stroke icon -->
|
|
54
|
-
<div class="col">
|
|
55
|
-
<p>stroke:enabled</p>
|
|
56
|
-
<img
|
|
57
|
-
class="icon"
|
|
58
|
-
src="/packages/mercury/src/assets/icons/multicolor/light/stroke.svg#enabled"
|
|
59
|
-
/>
|
|
60
|
-
|
|
61
|
-
<p>stroke:hover</p>
|
|
62
|
-
<img
|
|
63
|
-
class="icon"
|
|
64
|
-
src="/packages/mercury/src/assets/icons/multicolor/light/stroke.svg#hover"
|
|
65
|
-
/>
|
|
66
|
-
|
|
67
|
-
<p>stroke:active</p>
|
|
68
|
-
<img
|
|
69
|
-
class="icon"
|
|
70
|
-
src="/packages/mercury/src/assets/icons/multicolor/light/stroke.svg#active"
|
|
71
|
-
/>
|
|
72
|
-
|
|
73
|
-
<p>stroke:disabled</p>
|
|
74
|
-
<img
|
|
75
|
-
class="icon"
|
|
76
|
-
src="/packages/mercury/src/assets/icons/multicolor/light/stroke.svg#disabled"
|
|
77
|
-
/>
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
|
|
81
|
-
<hr />
|
|
82
|
-
|
|
83
|
-
<!-- ============================
|
|
84
|
-
Multicolor Dark
|
|
85
|
-
============================ -->
|
|
86
|
-
|
|
87
|
-
<h2>multicolor dark</h2>
|
|
88
|
-
<div class="container">
|
|
89
|
-
<!-- path icon -->
|
|
90
|
-
<div class="col">
|
|
91
|
-
<p>path:enabled</p>
|
|
92
|
-
<img
|
|
93
|
-
class="icon"
|
|
94
|
-
src="/packages/mercury/src/assets/icons/multicolor/dark/path.svg#enabled"
|
|
95
|
-
/>
|
|
96
|
-
|
|
97
|
-
<p>path:hover</p>
|
|
98
|
-
<img
|
|
99
|
-
class="icon"
|
|
100
|
-
src="/packages/mercury/src/assets/icons/multicolor/dark/path.svg#hover"
|
|
101
|
-
/>
|
|
102
|
-
|
|
103
|
-
<p>path:active</p>
|
|
104
|
-
<img
|
|
105
|
-
class="icon"
|
|
106
|
-
src="/packages/mercury/src/assets/icons/multicolor/dark/path.svg#active"
|
|
107
|
-
/>
|
|
108
|
-
|
|
109
|
-
<p>path:disabled</p>
|
|
110
|
-
<img
|
|
111
|
-
class="icon"
|
|
112
|
-
src="/packages/mercury/src/assets/icons/multicolor/dark/path.svg#disabled"
|
|
113
|
-
/>
|
|
114
|
-
</div>
|
|
115
|
-
|
|
116
|
-
<!-- stroke icon -->
|
|
117
|
-
<div class="col">
|
|
118
|
-
<p>stroke:enabled</p>
|
|
119
|
-
<img
|
|
120
|
-
class="icon"
|
|
121
|
-
src="/packages/mercury/src/assets/icons/multicolor/dark/stroke.svg#enabled"
|
|
122
|
-
/>
|
|
123
|
-
|
|
124
|
-
<p>stroke:hover</p>
|
|
125
|
-
<img
|
|
126
|
-
class="icon"
|
|
127
|
-
src="/packages/mercury/src/assets/icons/multicolor/dark/stroke.svg#hover"
|
|
128
|
-
/>
|
|
129
|
-
|
|
130
|
-
<p>stroke:active</p>
|
|
131
|
-
<img
|
|
132
|
-
class="icon"
|
|
133
|
-
src="/packages/mercury/src/assets/icons/multicolor/dark/stroke.svg#active"
|
|
134
|
-
/>
|
|
135
|
-
|
|
136
|
-
<p>stroke:disabled</p>
|
|
137
|
-
<img
|
|
138
|
-
class="icon"
|
|
139
|
-
src="/packages/mercury/src/assets/icons/multicolor/dark/stroke.svg#disabled"
|
|
140
|
-
/>
|
|
141
|
-
</div>
|
|
142
|
-
</div>
|
|
143
|
-
|
|
144
|
-
<hr />
|
|
145
|
-
|
|
146
|
-
<!-- ============================
|
|
147
|
-
Monochrome Light
|
|
148
|
-
============================ -->
|
|
149
|
-
|
|
150
|
-
<h2>monochrome light</h2>
|
|
151
|
-
<div class="container">
|
|
152
|
-
<!-- path icon -->
|
|
153
|
-
<div class="col">
|
|
154
|
-
<p>on-surface</p>
|
|
155
|
-
<img
|
|
156
|
-
class="icon"
|
|
157
|
-
src="/packages/mercury/src/assets/icons/monochrome/light/path.svg#on-surface"
|
|
158
|
-
/>
|
|
159
|
-
|
|
160
|
-
<p>on-primary</p>
|
|
161
|
-
<img
|
|
162
|
-
class="icon"
|
|
163
|
-
src="/packages/mercury/src/assets/icons/monochrome/light/path.svg#on-primary"
|
|
164
|
-
/>
|
|
165
|
-
|
|
166
|
-
<p>on-primary--active</p>
|
|
167
|
-
<img
|
|
168
|
-
class="icon"
|
|
169
|
-
src="/packages/mercury/src/assets/icons/monochrome/light/path.svg#on-primary--active"
|
|
170
|
-
/>
|
|
171
|
-
</div>
|
|
172
|
-
|
|
173
|
-
<!-- stroke icon -->
|
|
174
|
-
<div class="col">
|
|
175
|
-
<p>on-surface</p>
|
|
176
|
-
<img
|
|
177
|
-
class="icon"
|
|
178
|
-
src="/packages/mercury/src/assets/icons/monochrome/light/stroke.svg#on-surface"
|
|
179
|
-
/>
|
|
180
|
-
|
|
181
|
-
<p>on-primary</p>
|
|
182
|
-
<img
|
|
183
|
-
class="icon"
|
|
184
|
-
src="/packages/mercury/src/assets/icons/monochrome/light/stroke.svg#on-primary"
|
|
185
|
-
/>
|
|
186
|
-
|
|
187
|
-
<p>on-primary--active</p>
|
|
188
|
-
<img
|
|
189
|
-
class="icon"
|
|
190
|
-
src="/packages/mercury/src/assets/icons/monochrome/light/stroke.svg#on-primary--active"
|
|
191
|
-
/>
|
|
192
|
-
</div>
|
|
193
|
-
</div>
|
|
194
|
-
|
|
195
|
-
<hr />
|
|
196
|
-
|
|
197
|
-
<!-- ============================
|
|
198
|
-
Monochrome Dark
|
|
199
|
-
============================ -->
|
|
200
|
-
|
|
201
|
-
<h2>monochrome dark</h2>
|
|
202
|
-
|
|
203
|
-
<div class="container">
|
|
204
|
-
<!-- path icon -->
|
|
205
|
-
<div class="col">
|
|
206
|
-
<p>on-surface</p>
|
|
207
|
-
<img
|
|
208
|
-
class="icon"
|
|
209
|
-
src="/packages/mercury/src/assets/icons/monochrome/dark/path.svg#on-surface"
|
|
210
|
-
/>
|
|
211
|
-
|
|
212
|
-
<p>on-primary</p>
|
|
213
|
-
<img
|
|
214
|
-
class="icon"
|
|
215
|
-
src="/packages/mercury/src/assets/icons/monochrome/dark/path.svg#on-primary"
|
|
216
|
-
/>
|
|
217
|
-
|
|
218
|
-
<p>on-primary--active</p>
|
|
219
|
-
<img
|
|
220
|
-
class="icon"
|
|
221
|
-
src="/packages/mercury/src/assets/icons/monochrome/dark/path.svg#on-primary--active"
|
|
222
|
-
/>
|
|
223
|
-
</div>
|
|
224
|
-
|
|
225
|
-
<!-- stroke icon -->
|
|
226
|
-
<div class="col">
|
|
227
|
-
<p>on-surface</p>
|
|
228
|
-
<img
|
|
229
|
-
class="icon"
|
|
230
|
-
src="/packages/mercury/src/assets/icons/monochrome/dark/stroke.svg#on-surface"
|
|
231
|
-
/>
|
|
232
|
-
|
|
233
|
-
<p>on-primary</p>
|
|
234
|
-
<img
|
|
235
|
-
class="icon"
|
|
236
|
-
src="/packages/mercury/src/assets/icons/monochrome/dark/stroke.svg#on-primary"
|
|
237
|
-
/>
|
|
238
|
-
|
|
239
|
-
<p>on-primary--active</p>
|
|
240
|
-
<img
|
|
241
|
-
class="icon"
|
|
242
|
-
src="/packages/mercury/src/assets/icons/monochrome/dark/stroke.svg#on-primary--active"
|
|
243
|
-
/>
|
|
244
|
-
</div>
|
|
245
|
-
</div>
|
|
246
|
-
</body>
|
|
247
|
-
</html>
|
package/test/test.scss
DELETED