@cyberalien/svg-utils 1.1.4 → 1.2.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/lib/components/export/merge.js +3 -1
- package/lib/components/helpers/content/stringify.d.ts +2 -2
- package/lib/components/helpers/content/stringify.js +4 -10
- package/lib/components/helpers/css/generate.d.ts +2 -1
- package/lib/components/helpers/css/generate.js +43 -46
- package/lib/components/helpers/filenames/css.d.ts +1 -1
- package/lib/components/helpers/filenames/css.js +2 -3
- package/lib/components/helpers/functions/custom.d.ts +14 -0
- package/lib/components/helpers/functions/custom.js +17 -0
- package/lib/components/helpers/functions/fallback.d.ts +8 -0
- package/lib/components/helpers/functions/fallback.js +53 -0
- package/lib/components/helpers/functions/innerhtml.d.ts +8 -0
- package/lib/components/helpers/functions/innerhtml.js +35 -0
- package/lib/components/helpers/functions/size.js +1 -1
- package/lib/components/helpers/imports/create.js +1 -2
- package/lib/components/helpers/imports/stringify.js +0 -2
- package/lib/components/helpers/imports/types.d.ts +0 -1
- package/lib/components/jsx.js +79 -8
- package/lib/components/prepare/iconify.d.ts +1 -1
- package/lib/components/prepare/iconify.js +6 -4
- package/lib/components/prepare/states.d.ts +8 -0
- package/lib/components/prepare/states.js +73 -0
- package/lib/components/raw.js +10 -7
- package/lib/components/svelte.js +73 -14
- package/lib/components/types/component.d.ts +2 -1
- package/lib/components/types/css.d.ts +1 -2
- package/lib/components/types/data.d.ts +0 -3
- package/lib/components/types/options.d.ts +9 -2
- package/lib/components/types/source.d.ts +21 -6
- package/lib/components/vue-func.js +71 -12
- package/lib/components/vue.js +70 -13
- package/lib/css/find/animations.d.ts +10 -0
- package/lib/css/find/animations.js +35 -0
- package/lib/css/find/classname.d.ts +5 -0
- package/lib/css/find/classname.js +14 -0
- package/lib/css/find/prop.d.ts +5 -0
- package/lib/css/find/prop.js +12 -0
- package/lib/css/minify.d.ts +2 -0
- package/lib/css/minify.js +5 -0
- package/lib/css/rules.d.ts +10 -0
- package/lib/css/rules.js +26 -0
- package/lib/css/stringify.d.ts +8 -2
- package/lib/css/stringify.js +16 -8
- package/lib/css/stylesheet.d.ts +0 -2
- package/lib/css/stylesheet.js +3 -3
- package/lib/css/types.d.ts +1 -1
- package/lib/helpers/data/compact.d.ts +20 -0
- package/lib/helpers/data/compact.js +38 -0
- package/lib/helpers/data/expand.d.ts +5 -0
- package/lib/helpers/data/expand.js +9 -0
- package/lib/helpers/reduce-motion.d.ts +2 -0
- package/lib/helpers/reduce-motion.js +3 -0
- package/lib/index.d.ts +15 -2
- package/lib/index.js +11 -2
- package/lib/svg-css/icon/css.d.ts +25 -0
- package/lib/svg-css/icon/css.js +57 -0
- package/lib/svg-css/icon/types.d.ts +45 -0
- package/lib/svg-css/icon/types.js +1 -0
- package/lib/svg-css/icon-set/add.d.ts +7 -0
- package/lib/svg-css/icon-set/add.js +52 -0
- package/lib/svg-css/icon-set/create.d.ts +6 -0
- package/lib/svg-css/icon-set/create.js +8 -0
- package/lib/svg-css/icon-set/get.d.ts +4 -0
- package/lib/svg-css/icon-set/get.js +92 -0
- package/lib/svg-css/icon-set/minify/expand.d.ts +10 -0
- package/lib/svg-css/icon-set/minify/expand.js +35 -0
- package/lib/svg-css/icon-set/minify/keys.d.ts +5 -0
- package/lib/svg-css/icon-set/minify/keys.js +9 -0
- package/lib/svg-css/icon-set/minify/minify.d.ts +19 -0
- package/lib/svg-css/icon-set/minify/minify.js +74 -0
- package/lib/svg-css/icon-set/types.d.ts +43 -0
- package/lib/svg-css/icon-set/types.js +1 -0
- package/lib/svg-css/states/cleanup-values.d.ts +6 -0
- package/lib/svg-css/states/cleanup-values.js +15 -0
- package/lib/svg-css/states/fallback/parse.d.ts +7 -0
- package/lib/svg-css/states/fallback/parse.js +46 -0
- package/lib/svg-css/states/fallback/stringify.d.ts +6 -0
- package/lib/svg-css/states/fallback/stringify.js +9 -0
- package/lib/svg-css/states/fallback/test.d.ts +9 -0
- package/lib/svg-css/states/fallback/test.js +21 -0
- package/lib/svg-css/states/fallback/types.d.ts +20 -0
- package/lib/svg-css/states/fallback/types.js +1 -0
- package/lib/svg-css/states/focus.d.ts +10 -0
- package/lib/svg-css/states/focus.js +14 -0
- package/lib/svg-css/states/generator.d.ts +19 -0
- package/lib/svg-css/states/generator.js +31 -0
- package/lib/svg-css/states/key.d.ts +6 -0
- package/lib/svg-css/states/key.js +22 -0
- package/lib/svg-css/states/object.d.ts +6 -0
- package/lib/svg-css/states/object.js +13 -0
- package/lib/svg-css/states/selector/helpers/iterate.d.ts +10 -0
- package/lib/svg-css/states/selector/helpers/iterate.js +71 -0
- package/lib/svg-css/states/selector/merge.d.ts +6 -0
- package/lib/svg-css/states/selector/merge.js +29 -0
- package/lib/svg-css/states/selector/parse.d.ts +13 -0
- package/lib/svg-css/states/selector/parse.js +74 -0
- package/lib/svg-css/states/selector/part/merge.d.ts +10 -0
- package/lib/svg-css/states/selector/part/merge.js +37 -0
- package/lib/svg-css/states/selector/part/split.d.ts +13 -0
- package/lib/svg-css/states/selector/part/split.js +60 -0
- package/lib/svg-css/states/selector/part/stringify.d.ts +9 -0
- package/lib/svg-css/states/selector/part/stringify.js +32 -0
- package/lib/svg-css/states/selector/split.d.ts +6 -0
- package/lib/svg-css/states/selector/split.js +29 -0
- package/lib/svg-css/states/selector/stringify.d.ts +8 -0
- package/lib/svg-css/states/selector/stringify.js +143 -0
- package/lib/svg-css/states/selector/sub/merge.d.ts +6 -0
- package/lib/svg-css/states/selector/sub/merge.js +36 -0
- package/lib/svg-css/states/selector/sub/split.d.ts +10 -0
- package/lib/svg-css/states/selector/sub/split.js +61 -0
- package/lib/svg-css/states/selector/sub/stringify.d.ts +6 -0
- package/lib/svg-css/states/selector/sub/stringify.js +17 -0
- package/lib/svg-css/states/selector/types.d.ts +37 -0
- package/lib/svg-css/states/selector/types.js +1 -0
- package/lib/svg-css/states/types.d.ts +9 -0
- package/lib/svg-css/states/types.js +1 -0
- package/lib/svg-css/states/validate.d.ts +6 -0
- package/lib/svg-css/states/validate.js +55 -0
- package/lib/svg-css/states/value.d.ts +10 -0
- package/lib/svg-css/states/value.js +15 -0
- package/package.json +8 -8
- package/lib/components/helpers/css/name.d.ts +0 -7
- package/lib/components/helpers/css/name.js +0 -12
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const reservedStateNames = new Set([
|
|
2
|
+
"constructor",
|
|
3
|
+
"class",
|
|
4
|
+
"in",
|
|
5
|
+
"of",
|
|
6
|
+
"if",
|
|
7
|
+
"for",
|
|
8
|
+
"while",
|
|
9
|
+
"switch",
|
|
10
|
+
"case",
|
|
11
|
+
"break",
|
|
12
|
+
"continue",
|
|
13
|
+
"default",
|
|
14
|
+
"do",
|
|
15
|
+
"else",
|
|
16
|
+
"finally",
|
|
17
|
+
"return",
|
|
18
|
+
"throw",
|
|
19
|
+
"try",
|
|
20
|
+
"catch",
|
|
21
|
+
"with",
|
|
22
|
+
"yield",
|
|
23
|
+
"async",
|
|
24
|
+
"await",
|
|
25
|
+
"static",
|
|
26
|
+
"using",
|
|
27
|
+
"function",
|
|
28
|
+
"var",
|
|
29
|
+
"let",
|
|
30
|
+
"const",
|
|
31
|
+
"this",
|
|
32
|
+
"import",
|
|
33
|
+
"export",
|
|
34
|
+
"props",
|
|
35
|
+
"classname",
|
|
36
|
+
"viewbox",
|
|
37
|
+
"fallback",
|
|
38
|
+
"states",
|
|
39
|
+
"width",
|
|
40
|
+
"height",
|
|
41
|
+
"size",
|
|
42
|
+
"square"
|
|
43
|
+
]);
|
|
44
|
+
/**
|
|
45
|
+
* Validates states list to avoid issues when generating icons
|
|
46
|
+
*/
|
|
47
|
+
function assertValidStatesList(list) {
|
|
48
|
+
for (const state of list) {
|
|
49
|
+
const stateName = typeof state === "string" ? state : state[0];
|
|
50
|
+
if (!stateName.match(/^[a-z$]+$/)) throw new Error(`Invalid state name "${stateName}".`);
|
|
51
|
+
if (reservedStateNames.has(stateName)) throw new Error(`State name "${stateName}" is reserved to avoid conflicts and cannot be used.`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { assertValidStatesList };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IconStatesAdvancedState, IconStatesState } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Get default value for advanced state
|
|
4
|
+
*/
|
|
5
|
+
declare function getAdvancedStateDefaultValue(state: IconStatesAdvancedState): string;
|
|
6
|
+
/**
|
|
7
|
+
* Get value for state
|
|
8
|
+
*/
|
|
9
|
+
declare function getStateValue(state: IconStatesState, value?: string | boolean | undefined): string | boolean;
|
|
10
|
+
export { getAdvancedStateDefaultValue, getStateValue };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get default value for advanced state
|
|
3
|
+
*/
|
|
4
|
+
function getAdvancedStateDefaultValue(state) {
|
|
5
|
+
return state.length === 3 ? state[2] : state[1][0];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Get value for state
|
|
9
|
+
*/
|
|
10
|
+
function getStateValue(state, value) {
|
|
11
|
+
if (typeof state === "string") return !!value && value !== "false" && value !== "0";
|
|
12
|
+
return typeof value !== "string" || !state[1].includes(value) ? getAdvancedStateDefaultValue(state) : value;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { getAdvancedStateDefaultValue, getStateValue };
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"type": "module",
|
|
4
4
|
"description": "Common functions for working with SVG used by various packages.",
|
|
5
5
|
"author": "Vjacheslav Trushkin",
|
|
6
|
-
"version": "1.
|
|
6
|
+
"version": "1.2.0",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"bugs": "https://github.com/cyberalien/svg-utils/issues",
|
|
9
9
|
"homepage": "https://cyberalien.dev/",
|
|
@@ -23,15 +23,15 @@
|
|
|
23
23
|
"@iconify/types": "^2.0.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@eslint/eslintrc": "^3.3.
|
|
27
|
-
"@eslint/js": "^9.39.
|
|
26
|
+
"@eslint/eslintrc": "^3.3.4",
|
|
27
|
+
"@eslint/js": "^9.39.3",
|
|
28
28
|
"@iconify-json/ri": "^1.2.10",
|
|
29
29
|
"@types/jest": "^30.0.0",
|
|
30
|
-
"@types/node": "^25.
|
|
31
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
32
|
-
"@typescript-eslint/parser": "^8.
|
|
33
|
-
"eslint": "^9.39.
|
|
34
|
-
"globals": "^17.
|
|
30
|
+
"@types/node": "^25.3.3",
|
|
31
|
+
"@typescript-eslint/eslint-plugin": "^8.56.1",
|
|
32
|
+
"@typescript-eslint/parser": "^8.56.1",
|
|
33
|
+
"eslint": "^9.39.3",
|
|
34
|
+
"globals": "^17.4.0",
|
|
35
35
|
"tsdown": "^0.20.3",
|
|
36
36
|
"typescript": "^5.9.3",
|
|
37
37
|
"vitest": "^4.0.18"
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { camelize } from "../../../helpers/misc/strings.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Generate import name for CSS module
|
|
5
|
-
*
|
|
6
|
-
* Should be cleaned up because dashes are not allowed
|
|
7
|
-
*/
|
|
8
|
-
function generateCSSDefaultImportName(className) {
|
|
9
|
-
return camelize("css-" + className);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export { generateCSSDefaultImportName };
|