@iconify/tools 4.2.0 → 5.0.0-beta.2
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/colors/attribs.d.ts +2 -4
- package/lib/colors/attribs.js +33 -0
- package/lib/colors/detect.d.ts +2 -10
- package/lib/colors/detect.js +36 -0
- package/lib/colors/parse.d.ts +12 -19
- package/lib/colors/parse.js +241 -0
- package/lib/colors/validate.d.ts +3 -13
- package/lib/colors/validate.js +31 -0
- package/lib/css/parse.d.ts +1 -2
- package/lib/css/parse.js +18 -0
- package/lib/css/parser/error.d.ts +6 -7
- package/lib/css/parser/error.js +24 -0
- package/lib/css/parser/export.d.ts +2 -4
- package/lib/css/parser/export.js +34 -0
- package/lib/css/parser/strings.d.ts +2 -4
- package/lib/css/parser/strings.js +66 -0
- package/lib/css/parser/text.d.ts +2 -4
- package/lib/css/parser/text.js +103 -0
- package/lib/css/parser/tokens.d.ts +3 -5
- package/lib/css/parser/tokens.js +169 -0
- package/lib/css/parser/tree.d.ts +2 -4
- package/lib/css/parser/tree.js +35 -0
- package/lib/css/parser/types.d.ts +21 -22
- package/lib/css/parser/types.js +1 -0
- package/lib/download/api/cache.d.ts +2 -4
- package/lib/download/api/cache.js +84 -0
- package/lib/download/api/config.d.ts +6 -8
- package/lib/download/api/config.js +10 -0
- package/lib/download/api/download.d.ts +2 -4
- package/lib/download/api/download.js +26 -0
- package/lib/download/api/fetch.d.ts +1 -2
- package/lib/download/api/fetch.js +15 -0
- package/lib/download/api/index.d.ts +2 -4
- package/lib/download/api/index.js +50 -0
- package/lib/download/api/queue.d.ts +9 -10
- package/lib/download/api/queue.js +94 -0
- package/lib/download/api/types.d.ts +6 -7
- package/lib/download/api/types.js +1 -0
- package/lib/download/git/branch.d.ts +2 -4
- package/lib/download/git/branch.js +15 -0
- package/lib/download/git/hash.d.ts +2 -4
- package/lib/download/git/hash.js +10 -0
- package/lib/download/git/index.d.ts +10 -12
- package/lib/download/git/index.js +39 -0
- package/lib/download/git/reset.d.ts +1 -2
- package/lib/download/git/reset.js +12 -0
- package/lib/download/github/hash.d.ts +2 -4
- package/lib/download/github/hash.js +20 -0
- package/lib/download/github/index.d.ts +12 -14
- package/lib/download/github/index.js +66 -0
- package/lib/download/github/types.d.ts +5 -6
- package/lib/download/github/types.js +1 -0
- package/lib/download/gitlab/hash.d.ts +2 -4
- package/lib/download/gitlab/hash.js +19 -0
- package/lib/download/gitlab/index.d.ts +12 -14
- package/lib/download/gitlab/index.js +64 -0
- package/lib/download/gitlab/types.d.ts +5 -6
- package/lib/download/gitlab/types.js +6 -0
- package/lib/download/helpers/untar.d.ts +1 -2
- package/lib/download/helpers/untar.js +13 -0
- package/lib/download/helpers/unzip.d.ts +1 -2
- package/lib/download/helpers/unzip.js +39 -0
- package/lib/download/index.d.ts +15 -20
- package/lib/download/index.js +19 -0
- package/lib/download/npm/index.d.ts +11 -13
- package/lib/download/npm/index.js +51 -0
- package/lib/download/npm/types.d.ts +3 -4
- package/lib/download/npm/types.js +1 -0
- package/lib/download/npm/version.d.ts +4 -6
- package/lib/download/npm/version.js +23 -0
- package/lib/download/types/modified.d.ts +1 -2
- package/lib/download/types/modified.js +1 -0
- package/lib/download/types/sources.d.ts +2 -3
- package/lib/download/types/sources.js +1 -0
- package/lib/export/directory.d.ts +7 -15
- package/lib/export/directory.js +37 -0
- package/lib/export/helpers/custom-files.d.ts +2 -3
- package/lib/export/helpers/custom-files.js +23 -0
- package/lib/export/helpers/prepare.d.ts +3 -4
- package/lib/export/helpers/prepare.js +31 -0
- package/lib/export/helpers/types-version.d.ts +1 -2
- package/lib/export/helpers/types-version.js +19 -0
- package/lib/export/icon-package.d.ts +8 -15
- package/lib/export/icon-package.js +55 -0
- package/lib/export/json-package.d.ts +7 -14
- package/lib/export/json-package.js +129 -0
- package/lib/icon-set/index.d.ts +144 -147
- package/lib/icon-set/index.js +595 -0
- package/lib/icon-set/match.d.ts +3 -11
- package/lib/icon-set/match.js +45 -0
- package/lib/icon-set/merge.d.ts +2 -10
- package/lib/icon-set/merge.js +68 -0
- package/lib/icon-set/modified.d.ts +2 -10
- package/lib/icon-set/modified.js +20 -0
- package/lib/icon-set/props.d.ts +2 -5
- package/lib/icon-set/props.js +19 -0
- package/lib/icon-set/tags.d.ts +7 -15
- package/lib/icon-set/tags.js +53 -0
- package/lib/icon-set/types.d.ts +16 -21
- package/lib/icon-set/types.js +1 -0
- package/lib/import/directory.d.ts +11 -20
- package/lib/import/directory.js +101 -0
- package/lib/import/figma/index.d.ts +4 -15
- package/lib/import/figma/index.js +61 -0
- package/lib/import/figma/nodes.d.ts +4 -14
- package/lib/import/figma/nodes.js +80 -0
- package/lib/import/figma/query.d.ts +9 -19
- package/lib/import/figma/query.js +183 -0
- package/lib/import/figma/types/api.d.ts +26 -27
- package/lib/import/figma/types/api.js +1 -0
- package/lib/import/figma/types/nodes.d.ts +12 -21
- package/lib/import/figma/types/nodes.js +1 -0
- package/lib/import/figma/types/options.d.ts +23 -32
- package/lib/import/figma/types/options.js +1 -0
- package/lib/import/figma/types/result.d.ts +16 -24
- package/lib/import/figma/types/result.js +1 -0
- package/lib/index.d.ts +55 -80
- package/lib/index.js +56 -0
- package/lib/misc/bump-version.d.ts +1 -2
- package/lib/misc/bump-version.js +13 -0
- package/lib/misc/compare-dirs.d.ts +4 -5
- package/lib/misc/compare-dirs.js +65 -0
- package/lib/misc/exec.d.ts +4 -6
- package/lib/misc/exec.js +23 -0
- package/lib/misc/keyword.d.ts +1 -2
- package/lib/misc/keyword.js +12 -0
- package/lib/misc/scan.d.ts +2 -4
- package/lib/misc/scan.js +87 -0
- package/lib/misc/write-json.d.ts +1 -2
- package/lib/misc/write-json.js +10 -0
- package/lib/optimise/figma.d.ts +2 -7
- package/lib/optimise/figma.js +189 -0
- package/lib/optimise/flags.d.ts +2 -7
- package/lib/optimise/flags.js +231 -0
- package/lib/optimise/global-style.d.ts +2 -7
- package/lib/optimise/global-style.js +114 -0
- package/lib/optimise/mask.d.ts +9 -14
- package/lib/optimise/mask.js +83 -0
- package/lib/optimise/origin.d.ts +2 -7
- package/lib/optimise/origin.js +22 -0
- package/lib/optimise/scale.d.ts +2 -7
- package/lib/optimise/scale.js +24 -0
- package/lib/optimise/svgo.d.ts +10 -15
- package/lib/optimise/svgo.js +90 -0
- package/lib/optimise/unwrap.d.ts +2 -7
- package/lib/optimise/unwrap.js +25 -0
- package/lib/svg/analyse/error.d.ts +2 -7
- package/lib/svg/analyse/error.js +12 -0
- package/lib/svg/analyse/types.d.ts +31 -35
- package/lib/svg/analyse/types.js +1 -0
- package/lib/svg/analyse.d.ts +3 -10
- package/lib/svg/analyse.js +256 -0
- package/lib/svg/cleanup/attribs.d.ts +2 -7
- package/lib/svg/cleanup/attribs.js +37 -0
- package/lib/svg/cleanup/bad-tags.d.ts +3 -8
- package/lib/svg/cleanup/bad-tags.js +57 -0
- package/lib/svg/cleanup/inline-style.d.ts +2 -7
- package/lib/svg/cleanup/inline-style.js +80 -0
- package/lib/svg/cleanup/root-style.d.ts +4 -9
- package/lib/svg/cleanup/root-style.js +27 -0
- package/lib/svg/cleanup/root-svg.d.ts +2 -7
- package/lib/svg/cleanup/root-svg.js +73 -0
- package/lib/svg/cleanup/svgo-style.d.ts +2 -7
- package/lib/svg/cleanup/svgo-style.js +24 -0
- package/lib/svg/cleanup.d.ts +3 -8
- package/lib/svg/cleanup.js +20 -0
- package/lib/svg/data/attributes.d.ts +1 -2
- package/lib/svg/data/attributes.js +451 -0
- package/lib/svg/data/tags.d.ts +1 -2
- package/lib/svg/data/tags.js +182 -0
- package/lib/svg/index.d.ts +38 -47
- package/lib/svg/index.js +117 -0
- package/lib/svg/parse-style.d.ts +21 -28
- package/lib/svg/parse-style.js +199 -0
- package/lib/svg/parse.d.ts +8 -16
- package/lib/svg/parse.js +32 -0
- package/package.json +116 -222
- package/lib/colors/attribs.cjs +0 -33
- package/lib/colors/attribs.d.cts +0 -27
- package/lib/colors/attribs.d.mts +0 -27
- package/lib/colors/attribs.mjs +0 -26
- package/lib/colors/detect.cjs +0 -66
- package/lib/colors/detect.d.cts +0 -16
- package/lib/colors/detect.d.mts +0 -16
- package/lib/colors/detect.mjs +0 -64
- package/lib/colors/parse.cjs +0 -300
- package/lib/colors/parse.d.cts +0 -61
- package/lib/colors/parse.d.mts +0 -61
- package/lib/colors/parse.mjs +0 -297
- package/lib/colors/validate.cjs +0 -56
- package/lib/colors/validate.d.cts +0 -21
- package/lib/colors/validate.d.mts +0 -21
- package/lib/colors/validate.mjs +0 -54
- package/lib/css/parse.cjs +0 -24
- package/lib/css/parse.d.cts +0 -6
- package/lib/css/parse.d.mts +0 -6
- package/lib/css/parse.mjs +0 -22
- package/lib/css/parser/error.cjs +0 -23
- package/lib/css/parser/error.d.cts +0 -13
- package/lib/css/parser/error.d.mts +0 -13
- package/lib/css/parser/error.mjs +0 -21
- package/lib/css/parser/export.cjs +0 -37
- package/lib/css/parser/export.d.cts +0 -8
- package/lib/css/parser/export.d.mts +0 -8
- package/lib/css/parser/export.mjs +0 -35
- package/lib/css/parser/strings.cjs +0 -83
- package/lib/css/parser/strings.d.cts +0 -16
- package/lib/css/parser/strings.d.mts +0 -16
- package/lib/css/parser/strings.mjs +0 -80
- package/lib/css/parser/text.cjs +0 -114
- package/lib/css/parser/text.d.cts +0 -20
- package/lib/css/parser/text.d.mts +0 -20
- package/lib/css/parser/text.mjs +0 -109
- package/lib/css/parser/tokens.cjs +0 -206
- package/lib/css/parser/tokens.d.cts +0 -9
- package/lib/css/parser/tokens.d.mts +0 -9
- package/lib/css/parser/tokens.mjs +0 -204
- package/lib/css/parser/tree.cjs +0 -40
- package/lib/css/parser/tree.d.cts +0 -8
- package/lib/css/parser/tree.d.mts +0 -8
- package/lib/css/parser/tree.mjs +0 -38
- package/lib/css/parser/types.cjs +0 -2
- package/lib/css/parser/types.d.cts +0 -52
- package/lib/css/parser/types.d.mts +0 -52
- package/lib/css/parser/types.mjs +0 -1
- package/lib/download/api/cache.cjs +0 -91
- package/lib/download/api/cache.d.cts +0 -20
- package/lib/download/api/cache.d.mts +0 -20
- package/lib/download/api/cache.mjs +0 -86
- package/lib/download/api/config.cjs +0 -11
- package/lib/download/api/config.d.cts +0 -18
- package/lib/download/api/config.d.mts +0 -18
- package/lib/download/api/config.mjs +0 -8
- package/lib/download/api/download.cjs +0 -26
- package/lib/download/api/download.d.cts +0 -8
- package/lib/download/api/download.d.mts +0 -8
- package/lib/download/api/download.mjs +0 -24
- package/lib/download/api/fetch.cjs +0 -12
- package/lib/download/api/fetch.d.cts +0 -10
- package/lib/download/api/fetch.d.mts +0 -10
- package/lib/download/api/fetch.mjs +0 -9
- package/lib/download/api/index.cjs +0 -57
- package/lib/download/api/index.d.cts +0 -8
- package/lib/download/api/index.d.mts +0 -8
- package/lib/download/api/index.mjs +0 -55
- package/lib/download/api/queue.cjs +0 -104
- package/lib/download/api/queue.d.cts +0 -32
- package/lib/download/api/queue.d.mts +0 -32
- package/lib/download/api/queue.mjs +0 -101
- package/lib/download/api/types.cjs +0 -2
- package/lib/download/api/types.d.cts +0 -17
- package/lib/download/api/types.d.mts +0 -17
- package/lib/download/api/types.mjs +0 -1
- package/lib/download/git/branch.cjs +0 -19
- package/lib/download/git/branch.d.cts +0 -8
- package/lib/download/git/branch.d.mts +0 -8
- package/lib/download/git/branch.mjs +0 -17
- package/lib/download/git/hash.cjs +0 -14
- package/lib/download/git/hash.d.cts +0 -8
- package/lib/download/git/hash.d.mts +0 -8
- package/lib/download/git/hash.mjs +0 -12
- package/lib/download/git/index.cjs +0 -76
- package/lib/download/git/index.d.cts +0 -29
- package/lib/download/git/index.d.mts +0 -29
- package/lib/download/git/index.mjs +0 -74
- package/lib/download/git/reset.cjs +0 -36
- package/lib/download/git/reset.d.cts +0 -6
- package/lib/download/git/reset.d.mts +0 -6
- package/lib/download/git/reset.mjs +0 -34
- package/lib/download/github/hash.cjs +0 -31
- package/lib/download/github/hash.d.cts +0 -8
- package/lib/download/github/hash.d.mts +0 -8
- package/lib/download/github/hash.mjs +0 -29
- package/lib/download/github/index.cjs +0 -105
- package/lib/download/github/index.d.cts +0 -31
- package/lib/download/github/index.d.mts +0 -31
- package/lib/download/github/index.mjs +0 -103
- package/lib/download/github/types.cjs +0 -2
- package/lib/download/github/types.d.cts +0 -11
- package/lib/download/github/types.d.mts +0 -11
- package/lib/download/github/types.mjs +0 -1
- package/lib/download/gitlab/hash.cjs +0 -33
- package/lib/download/gitlab/hash.d.cts +0 -8
- package/lib/download/gitlab/hash.d.mts +0 -8
- package/lib/download/gitlab/hash.mjs +0 -31
- package/lib/download/gitlab/index.cjs +0 -105
- package/lib/download/gitlab/index.d.cts +0 -31
- package/lib/download/gitlab/index.d.mts +0 -31
- package/lib/download/gitlab/index.mjs +0 -103
- package/lib/download/gitlab/types.cjs +0 -5
- package/lib/download/gitlab/types.d.cts +0 -15
- package/lib/download/gitlab/types.d.mts +0 -15
- package/lib/download/gitlab/types.mjs +0 -3
- package/lib/download/helpers/untar.cjs +0 -12
- package/lib/download/helpers/untar.d.cts +0 -6
- package/lib/download/helpers/untar.d.mts +0 -6
- package/lib/download/helpers/untar.mjs +0 -10
- package/lib/download/helpers/unzip.cjs +0 -17
- package/lib/download/helpers/unzip.d.cts +0 -6
- package/lib/download/helpers/unzip.d.mts +0 -6
- package/lib/download/helpers/unzip.mjs +0 -11
- package/lib/download/index.cjs +0 -64
- package/lib/download/index.d.cts +0 -48
- package/lib/download/index.d.mts +0 -48
- package/lib/download/index.mjs +0 -62
- package/lib/download/npm/index.cjs +0 -85
- package/lib/download/npm/index.d.cts +0 -30
- package/lib/download/npm/index.d.mts +0 -30
- package/lib/download/npm/index.mjs +0 -83
- package/lib/download/npm/types.cjs +0 -2
- package/lib/download/npm/types.d.cts +0 -9
- package/lib/download/npm/types.d.mts +0 -9
- package/lib/download/npm/types.mjs +0 -1
- package/lib/download/npm/version.cjs +0 -29
- package/lib/download/npm/version.d.cts +0 -16
- package/lib/download/npm/version.d.mts +0 -16
- package/lib/download/npm/version.mjs +0 -26
- package/lib/download/types/modified.cjs +0 -2
- package/lib/download/types/modified.d.cts +0 -6
- package/lib/download/types/modified.d.mts +0 -6
- package/lib/download/types/modified.mjs +0 -1
- package/lib/download/types/sources.cjs +0 -2
- package/lib/download/types/sources.d.cts +0 -12
- package/lib/download/types/sources.d.mts +0 -12
- package/lib/download/types/sources.mjs +0 -1
- package/lib/export/directory.cjs +0 -43
- package/lib/export/directory.d.cts +0 -26
- package/lib/export/directory.d.mts +0 -26
- package/lib/export/directory.mjs +0 -41
- package/lib/export/helpers/custom-files.cjs +0 -26
- package/lib/export/helpers/custom-files.d.cts +0 -12
- package/lib/export/helpers/custom-files.d.mts +0 -12
- package/lib/export/helpers/custom-files.mjs +0 -24
- package/lib/export/helpers/prepare.cjs +0 -34
- package/lib/export/helpers/prepare.d.cts +0 -19
- package/lib/export/helpers/prepare.d.mts +0 -19
- package/lib/export/helpers/prepare.mjs +0 -31
- package/lib/export/helpers/types-version.cjs +0 -12
- package/lib/export/helpers/types-version.d.cts +0 -6
- package/lib/export/helpers/types-version.d.mts +0 -6
- package/lib/export/helpers/types-version.mjs +0 -10
- package/lib/export/icon-package.cjs +0 -56
- package/lib/export/icon-package.d.cts +0 -26
- package/lib/export/icon-package.d.mts +0 -26
- package/lib/export/icon-package.mjs +0 -54
- package/lib/export/json-package.cjs +0 -144
- package/lib/export/json-package.d.cts +0 -25
- package/lib/export/json-package.d.mts +0 -25
- package/lib/export/json-package.mjs +0 -142
- package/lib/icon-set/index.cjs +0 -720
- package/lib/icon-set/index.d.cts +0 -162
- package/lib/icon-set/index.d.mts +0 -162
- package/lib/icon-set/index.mjs +0 -716
- package/lib/icon-set/match.cjs +0 -56
- package/lib/icon-set/match.d.cts +0 -15
- package/lib/icon-set/match.d.mts +0 -15
- package/lib/icon-set/match.mjs +0 -54
- package/lib/icon-set/merge.cjs +0 -87
- package/lib/icon-set/merge.d.cts +0 -14
- package/lib/icon-set/merge.d.mts +0 -14
- package/lib/icon-set/merge.mjs +0 -85
- package/lib/icon-set/modified.cjs +0 -25
- package/lib/icon-set/modified.d.cts +0 -16
- package/lib/icon-set/modified.d.mts +0 -16
- package/lib/icon-set/modified.mjs +0 -23
- package/lib/icon-set/props.cjs +0 -16
- package/lib/icon-set/props.d.cts +0 -13
- package/lib/icon-set/props.d.mts +0 -13
- package/lib/icon-set/props.mjs +0 -13
- package/lib/icon-set/tags.cjs +0 -95
- package/lib/icon-set/tags.d.cts +0 -25
- package/lib/icon-set/tags.d.mts +0 -25
- package/lib/icon-set/tags.mjs +0 -91
- package/lib/icon-set/types.cjs +0 -2
- package/lib/icon-set/types.d.cts +0 -75
- package/lib/icon-set/types.d.mts +0 -75
- package/lib/icon-set/types.mjs +0 -1
- package/lib/import/directory.cjs +0 -169
- package/lib/import/directory.d.cts +0 -52
- package/lib/import/directory.d.mts +0 -52
- package/lib/import/directory.mjs +0 -166
- package/lib/import/figma/index.cjs +0 -115
- package/lib/import/figma/index.d.cts +0 -20
- package/lib/import/figma/index.d.mts +0 -20
- package/lib/import/figma/index.mjs +0 -113
- package/lib/import/figma/nodes.cjs +0 -90
- package/lib/import/figma/nodes.d.cts +0 -18
- package/lib/import/figma/nodes.d.mts +0 -18
- package/lib/import/figma/nodes.mjs +0 -88
- package/lib/import/figma/query.cjs +0 -260
- package/lib/import/figma/query.d.cts +0 -42
- package/lib/import/figma/query.d.mts +0 -42
- package/lib/import/figma/query.mjs +0 -256
- package/lib/import/figma/types/api.cjs +0 -2
- package/lib/import/figma/types/api.d.cts +0 -53
- package/lib/import/figma/types/api.d.mts +0 -53
- package/lib/import/figma/types/api.mjs +0 -1
- package/lib/import/figma/types/nodes.cjs +0 -2
- package/lib/import/figma/types/nodes.d.cts +0 -44
- package/lib/import/figma/types/nodes.d.mts +0 -44
- package/lib/import/figma/types/nodes.mjs +0 -1
- package/lib/import/figma/types/options.cjs +0 -2
- package/lib/import/figma/types/options.d.cts +0 -59
- package/lib/import/figma/types/options.d.mts +0 -59
- package/lib/import/figma/types/options.mjs +0 -1
- package/lib/import/figma/types/result.cjs +0 -2
- package/lib/import/figma/types/result.d.cts +0 -44
- package/lib/import/figma/types/result.d.mts +0 -44
- package/lib/import/figma/types/result.mjs +0 -1
- package/lib/index.cjs +0 -157
- package/lib/index.d.cts +0 -80
- package/lib/index.d.mts +0 -80
- package/lib/index.mjs +0 -91
- package/lib/misc/bump-version.cjs +0 -15
- package/lib/misc/bump-version.d.cts +0 -6
- package/lib/misc/bump-version.d.mts +0 -6
- package/lib/misc/bump-version.mjs +0 -13
- package/lib/misc/cheerio.cjs +0 -2
- package/lib/misc/cheerio.d.cts +0 -10
- package/lib/misc/cheerio.d.mts +0 -10
- package/lib/misc/cheerio.d.ts +0 -10
- package/lib/misc/cheerio.mjs +0 -1
- package/lib/misc/compare-dirs.cjs +0 -75
- package/lib/misc/compare-dirs.d.cts +0 -11
- package/lib/misc/compare-dirs.d.mts +0 -11
- package/lib/misc/compare-dirs.mjs +0 -73
- package/lib/misc/exec.cjs +0 -27
- package/lib/misc/exec.d.cts +0 -12
- package/lib/misc/exec.d.mts +0 -12
- package/lib/misc/exec.mjs +0 -25
- package/lib/misc/keyword.cjs +0 -20
- package/lib/misc/keyword.d.cts +0 -6
- package/lib/misc/keyword.d.mts +0 -6
- package/lib/misc/keyword.mjs +0 -18
- package/lib/misc/scan.cjs +0 -114
- package/lib/misc/scan.d.cts +0 -33
- package/lib/misc/scan.d.mts +0 -33
- package/lib/misc/scan.mjs +0 -111
- package/lib/misc/write-json.cjs +0 -9
- package/lib/misc/write-json.d.cts +0 -6
- package/lib/misc/write-json.d.mts +0 -6
- package/lib/misc/write-json.mjs +0 -7
- package/lib/optimise/figma.cjs +0 -232
- package/lib/optimise/figma.d.cts +0 -14
- package/lib/optimise/figma.d.mts +0 -14
- package/lib/optimise/figma.mjs +0 -230
- package/lib/optimise/flags.cjs +0 -256
- package/lib/optimise/flags.d.cts +0 -11
- package/lib/optimise/flags.d.mts +0 -11
- package/lib/optimise/flags.mjs +0 -254
- package/lib/optimise/global-style.cjs +0 -158
- package/lib/optimise/global-style.d.cts +0 -11
- package/lib/optimise/global-style.d.mts +0 -11
- package/lib/optimise/global-style.mjs +0 -156
- package/lib/optimise/mask.cjs +0 -110
- package/lib/optimise/mask.d.cts +0 -24
- package/lib/optimise/mask.d.mts +0 -24
- package/lib/optimise/mask.mjs +0 -108
- package/lib/optimise/origin.cjs +0 -23
- package/lib/optimise/origin.d.cts +0 -11
- package/lib/optimise/origin.d.mts +0 -11
- package/lib/optimise/origin.mjs +0 -21
- package/lib/optimise/scale.cjs +0 -27
- package/lib/optimise/scale.d.cts +0 -11
- package/lib/optimise/scale.d.mts +0 -11
- package/lib/optimise/scale.mjs +0 -25
- package/lib/optimise/svgo.cjs +0 -107
- package/lib/optimise/svgo.d.cts +0 -37
- package/lib/optimise/svgo.d.mts +0 -37
- package/lib/optimise/svgo.mjs +0 -104
- package/lib/optimise/unwrap.cjs +0 -31
- package/lib/optimise/unwrap.d.cts +0 -11
- package/lib/optimise/unwrap.d.mts +0 -11
- package/lib/optimise/unwrap.mjs +0 -29
- package/lib/svg/analyse/error.cjs +0 -16
- package/lib/svg/analyse/error.d.cts +0 -11
- package/lib/svg/analyse/error.d.mts +0 -11
- package/lib/svg/analyse/error.mjs +0 -14
- package/lib/svg/analyse/types.cjs +0 -2
- package/lib/svg/analyse/types.d.cts +0 -93
- package/lib/svg/analyse/types.d.mts +0 -93
- package/lib/svg/analyse/types.mjs +0 -1
- package/lib/svg/analyse.cjs +0 -303
- package/lib/svg/analyse.d.cts +0 -16
- package/lib/svg/analyse.d.mts +0 -16
- package/lib/svg/analyse.mjs +0 -301
- package/lib/svg/cleanup/attribs.cjs +0 -39
- package/lib/svg/cleanup/attribs.d.cts +0 -11
- package/lib/svg/cleanup/attribs.d.mts +0 -11
- package/lib/svg/cleanup/attribs.mjs +0 -37
- package/lib/svg/cleanup/bad-tags.cjs +0 -69
- package/lib/svg/cleanup/bad-tags.d.cts +0 -17
- package/lib/svg/cleanup/bad-tags.d.mts +0 -17
- package/lib/svg/cleanup/bad-tags.mjs +0 -67
- package/lib/svg/cleanup/inline-style.cjs +0 -97
- package/lib/svg/cleanup/inline-style.d.cts +0 -11
- package/lib/svg/cleanup/inline-style.d.mts +0 -11
- package/lib/svg/cleanup/inline-style.mjs +0 -95
- package/lib/svg/cleanup/root-style.cjs +0 -34
- package/lib/svg/cleanup/root-style.d.cts +0 -17
- package/lib/svg/cleanup/root-style.d.mts +0 -17
- package/lib/svg/cleanup/root-style.mjs +0 -32
- package/lib/svg/cleanup/root-svg.cjs +0 -84
- package/lib/svg/cleanup/root-svg.d.cts +0 -11
- package/lib/svg/cleanup/root-svg.d.mts +0 -11
- package/lib/svg/cleanup/root-svg.mjs +0 -82
- package/lib/svg/cleanup/svgo-style.cjs +0 -43
- package/lib/svg/cleanup/svgo-style.d.cts +0 -11
- package/lib/svg/cleanup/svgo-style.d.mts +0 -11
- package/lib/svg/cleanup/svgo-style.mjs +0 -41
- package/lib/svg/cleanup.cjs +0 -33
- package/lib/svg/cleanup.d.cts +0 -16
- package/lib/svg/cleanup.d.mts +0 -16
- package/lib/svg/cleanup.mjs +0 -31
- package/lib/svg/data/attributes.cjs +0 -373
- package/lib/svg/data/attributes.d.cts +0 -77
- package/lib/svg/data/attributes.d.mts +0 -77
- package/lib/svg/data/attributes.mjs +0 -346
- package/lib/svg/data/tags.cjs +0 -141
- package/lib/svg/data/tags.d.cts +0 -95
- package/lib/svg/data/tags.d.mts +0 -95
- package/lib/svg/data/tags.mjs +0 -117
- package/lib/svg/index.cjs +0 -178
- package/lib/svg/index.d.cts +0 -52
- package/lib/svg/index.d.mts +0 -52
- package/lib/svg/index.mjs +0 -162
- package/lib/svg/parse-style.cjs +0 -243
- package/lib/svg/parse-style.d.cts +0 -59
- package/lib/svg/parse-style.d.mts +0 -59
- package/lib/svg/parse-style.mjs +0 -241
- package/lib/svg/parse.cjs +0 -46
- package/lib/svg/parse.d.cts +0 -31
- package/lib/svg/parse.d.mts +0 -31
- package/lib/svg/parse.mjs +0 -44
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { IconSet } from "./index.js";
|
|
2
|
+
import { findMatchingIcon } from "./match.js";
|
|
3
|
+
import { hasIconDataBeenModified } from "./modified.js";
|
|
4
|
+
|
|
5
|
+
function assertNever(v) {}
|
|
6
|
+
/**
|
|
7
|
+
* Merge icon sets
|
|
8
|
+
*/
|
|
9
|
+
function mergeIconSets(oldIcons, newIcons) {
|
|
10
|
+
const mergedIcons = new IconSet(newIcons.export());
|
|
11
|
+
const oldEntries = oldIcons.entries;
|
|
12
|
+
const entries = mergedIcons.entries;
|
|
13
|
+
function add(name) {
|
|
14
|
+
if (entries[name]) return true;
|
|
15
|
+
const item = oldEntries[name];
|
|
16
|
+
switch (item.type) {
|
|
17
|
+
case "icon": {
|
|
18
|
+
const fullIcon = oldIcons.resolve(name, true);
|
|
19
|
+
const parent = fullIcon ? findMatchingIcon(mergedIcons, fullIcon) : null;
|
|
20
|
+
if (parent !== null) {
|
|
21
|
+
mergedIcons.setAlias(name, parent);
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
const props = item.props;
|
|
25
|
+
mergedIcons.setItem(name, {
|
|
26
|
+
...item,
|
|
27
|
+
props: {
|
|
28
|
+
...props,
|
|
29
|
+
hidden: true
|
|
30
|
+
},
|
|
31
|
+
categories: /* @__PURE__ */ new Set()
|
|
32
|
+
});
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
case "variation":
|
|
36
|
+
case "alias": {
|
|
37
|
+
let parent = item.parent;
|
|
38
|
+
if (!add(parent)) return false;
|
|
39
|
+
const parentItem = entries[parent];
|
|
40
|
+
if (parentItem.type === "alias") parent = parentItem.parent;
|
|
41
|
+
if (item.type === "variation") {
|
|
42
|
+
const props = item.props;
|
|
43
|
+
mergedIcons.setItem(name, {
|
|
44
|
+
...item,
|
|
45
|
+
parent,
|
|
46
|
+
props: {
|
|
47
|
+
...props,
|
|
48
|
+
hidden: true
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
} else mergedIcons.setItem(name, {
|
|
52
|
+
...item,
|
|
53
|
+
parent
|
|
54
|
+
});
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
default:
|
|
58
|
+
assertNever(item);
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
for (const name in oldEntries) add(name);
|
|
63
|
+
if (oldIcons.lastModified && !hasIconDataBeenModified(oldIcons, mergedIcons)) mergedIcons.updateLastModified(oldIcons.lastModified);
|
|
64
|
+
else if (newIcons.lastModified && !hasIconDataBeenModified(newIcons, mergedIcons)) mergedIcons.updateLastModified(newIcons.lastModified);
|
|
65
|
+
return mergedIcons;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { mergeIconSets };
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
import { IconSet } from
|
|
2
|
-
import '@iconify/types';
|
|
3
|
-
import '@iconify/utils/lib/customisations/defaults';
|
|
4
|
-
import './types.js';
|
|
5
|
-
import '../svg/index.js';
|
|
6
|
-
import 'cheerio';
|
|
7
|
-
import '@iconify/utils/lib/icon-set/tree';
|
|
8
|
-
|
|
1
|
+
import { IconSet } from "./index.js";
|
|
9
2
|
/**
|
|
10
3
|
* Check if icons in an icon set were updated.
|
|
11
4
|
*
|
|
12
5
|
* This function checks only icons, not metadata. It also ignores icon visibility.
|
|
13
6
|
*/
|
|
14
7
|
declare function hasIconDataBeenModified(set1: IconSet, set2: IconSet): boolean;
|
|
15
|
-
|
|
16
|
-
export { hasIconDataBeenModified };
|
|
8
|
+
export { hasIconDataBeenModified };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if icons in an icon set were updated.
|
|
3
|
+
*
|
|
4
|
+
* This function checks only icons, not metadata. It also ignores icon visibility.
|
|
5
|
+
*/
|
|
6
|
+
function hasIconDataBeenModified(set1, set2) {
|
|
7
|
+
const entries1 = set1.entries;
|
|
8
|
+
const entries2 = set2.entries;
|
|
9
|
+
const keys1 = Object.keys(entries1);
|
|
10
|
+
const keys2 = Object.keys(entries2);
|
|
11
|
+
if (keys1.length !== keys2.length) return true;
|
|
12
|
+
for (let i = 0; i < keys1.length; i++) if (!entries2[keys1[i]]) return true;
|
|
13
|
+
for (let i = 0; i < keys1.length; i++) {
|
|
14
|
+
const name = keys1[i];
|
|
15
|
+
if (set1.toString(name) !== set2.toString(name)) return true;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { hasIconDataBeenModified };
|
package/lib/icon-set/props.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { CommonIconProps } from
|
|
2
|
-
import '@iconify/types';
|
|
3
|
-
|
|
1
|
+
import { CommonIconProps } from "./types.js";
|
|
4
2
|
/**
|
|
5
3
|
* Common properties for icon and alias
|
|
6
4
|
*/
|
|
@@ -9,5 +7,4 @@ declare const defaultCommonProps: Required<CommonIconProps>;
|
|
|
9
7
|
* Filter icon props: copies properties, removing undefined and default entries
|
|
10
8
|
*/
|
|
11
9
|
declare function filterProps(data: CommonIconProps, reference: CommonIconProps, compareDefaultValues: boolean): CommonIconProps;
|
|
12
|
-
|
|
13
|
-
export { defaultCommonProps, filterProps };
|
|
10
|
+
export { defaultCommonProps, filterProps };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defaultIconProps } from "@iconify/utils";
|
|
2
|
+
import { commonObjectProps, unmergeObjects } from "@iconify/utils/lib/misc/objects";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Common properties for icon and alias
|
|
6
|
+
*/
|
|
7
|
+
const defaultCommonProps = Object.freeze({
|
|
8
|
+
...defaultIconProps,
|
|
9
|
+
hidden: false
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* Filter icon props: copies properties, removing undefined and default entries
|
|
13
|
+
*/
|
|
14
|
+
function filterProps(data, reference, compareDefaultValues) {
|
|
15
|
+
const result = commonObjectProps(data, reference);
|
|
16
|
+
return compareDefaultValues ? unmergeObjects(result, reference) : result;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { defaultCommonProps, filterProps };
|
package/lib/icon-set/tags.d.ts
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
import { IconSet } from
|
|
2
|
-
import '@iconify/types';
|
|
3
|
-
import '@iconify/utils/lib/customisations/defaults';
|
|
4
|
-
import './types.js';
|
|
5
|
-
import '../svg/index.js';
|
|
6
|
-
import 'cheerio';
|
|
7
|
-
import '@iconify/utils/lib/icon-set/tree';
|
|
8
|
-
|
|
1
|
+
import { IconSet } from "./index.js";
|
|
9
2
|
declare const paletteTags: {
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
monotone: string;
|
|
4
|
+
palette: string;
|
|
12
5
|
};
|
|
13
6
|
declare const sizeTags: {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
square: string;
|
|
8
|
+
gridPrefix: string;
|
|
9
|
+
heightPrefix: string;
|
|
17
10
|
};
|
|
18
11
|
/**
|
|
19
12
|
* Add tags to icon set
|
|
@@ -21,5 +14,4 @@ declare const sizeTags: {
|
|
|
21
14
|
* @deprecated
|
|
22
15
|
*/
|
|
23
16
|
declare function addTagsToIconSet(iconSet: IconSet, customTags?: string[]): string[];
|
|
24
|
-
|
|
25
|
-
export { addTagsToIconSet, paletteTags, sizeTags };
|
|
17
|
+
export { addTagsToIconSet, paletteTags, sizeTags };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { detectIconSetPalette } from "../colors/detect.js";
|
|
2
|
+
import { defaultIconDimensions } from "@iconify/utils/lib/icon/defaults";
|
|
3
|
+
|
|
4
|
+
const paletteTags = {
|
|
5
|
+
monotone: "Monotone",
|
|
6
|
+
palette: "Has Colors"
|
|
7
|
+
};
|
|
8
|
+
const sizeTags = {
|
|
9
|
+
square: "Square",
|
|
10
|
+
gridPrefix: "Grid: ",
|
|
11
|
+
heightPrefix: "Height: "
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Add tags to icon set
|
|
15
|
+
*
|
|
16
|
+
* @deprecated
|
|
17
|
+
*/
|
|
18
|
+
function addTagsToIconSet(iconSet, customTags) {
|
|
19
|
+
const info = iconSet.info;
|
|
20
|
+
const tags = [];
|
|
21
|
+
const iconNames = Object.keys(iconSet.entries).filter((key) => {
|
|
22
|
+
const item = iconSet.entries[key];
|
|
23
|
+
if (item.type !== "icon") return false;
|
|
24
|
+
if (item.props.hidden) return false;
|
|
25
|
+
return true;
|
|
26
|
+
});
|
|
27
|
+
if (iconNames.length) {
|
|
28
|
+
let hasPalette = info?.palette;
|
|
29
|
+
if (hasPalette === void 0) hasPalette = detectIconSetPalette(iconSet);
|
|
30
|
+
if (hasPalette === true) tags.push(paletteTags.palette);
|
|
31
|
+
if (hasPalette === false) tags.push(paletteTags.monotone);
|
|
32
|
+
let isSquare = true;
|
|
33
|
+
let height;
|
|
34
|
+
for (let i = 0; i < iconNames.length; i++) {
|
|
35
|
+
const icon = iconSet.entries[iconNames[i]];
|
|
36
|
+
if (icon.type !== "icon") continue;
|
|
37
|
+
const iconProps = icon.props;
|
|
38
|
+
const iconWidth = iconProps.width || defaultIconDimensions.width;
|
|
39
|
+
const iconHeight = iconProps.height || defaultIconDimensions.height;
|
|
40
|
+
if (isSquare && iconWidth !== iconHeight) isSquare = false;
|
|
41
|
+
if (height === void 0) height = iconHeight;
|
|
42
|
+
else if (height && iconHeight !== height) height = null;
|
|
43
|
+
if (!height && !isSquare) break;
|
|
44
|
+
}
|
|
45
|
+
if (height && Math.round(height) === height) tags.push((isSquare ? sizeTags.gridPrefix : sizeTags.heightPrefix) + height.toString());
|
|
46
|
+
if (isSquare) tags.push(sizeTags.square);
|
|
47
|
+
}
|
|
48
|
+
const result = tags.concat(customTags || []);
|
|
49
|
+
if (info) info.tags = result;
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { addTagsToIconSet, paletteTags, sizeTags };
|
package/lib/icon-set/types.d.ts
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import { ExtendedIconifyIcon,
|
|
2
|
-
|
|
1
|
+
import { ExtendedIconifyAlias, ExtendedIconifyIcon, IconifyIcon, IconifyOptional } from "@iconify/types";
|
|
3
2
|
/**
|
|
4
3
|
* Category item
|
|
5
4
|
*/
|
|
6
5
|
interface IconCategory {
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
title: string;
|
|
7
|
+
count: number;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
10
|
* Get common properties: IconifyOptional + APIIconAttributes
|
|
12
11
|
*/
|
|
13
|
-
type CommonProps<A, B> = {
|
|
14
|
-
[K in keyof A & keyof B]?: A[K] extends B[K] ? A[K] : never;
|
|
15
|
-
};
|
|
12
|
+
type CommonProps<A, B> = { [K in keyof A & keyof B]?: A[K] extends B[K] ? A[K] : never };
|
|
16
13
|
type CommonIconProps = CommonProps<ExtendedIconifyIcon, ExtendedIconifyAlias>;
|
|
17
14
|
/**
|
|
18
15
|
* Exclude IconifyOptional from CommonIconProps
|
|
@@ -22,29 +19,29 @@ type ExtraIconProps = Omit<CommonIconProps, keyof IconifyOptional>;
|
|
|
22
19
|
* Partials
|
|
23
20
|
*/
|
|
24
21
|
interface IconWithChars {
|
|
25
|
-
|
|
22
|
+
chars: Set<string>;
|
|
26
23
|
}
|
|
27
24
|
interface IconWithPropsData extends IconWithChars {
|
|
28
|
-
|
|
25
|
+
props: CommonIconProps;
|
|
29
26
|
}
|
|
30
27
|
interface IconWithCategories {
|
|
31
|
-
|
|
28
|
+
categories: Set<IconCategory>;
|
|
32
29
|
}
|
|
33
30
|
interface IconParentData {
|
|
34
|
-
|
|
31
|
+
parent: string;
|
|
35
32
|
}
|
|
36
33
|
/**
|
|
37
34
|
* Icon types
|
|
38
35
|
*/
|
|
39
36
|
interface IconSetIcon extends IconWithPropsData, IconWithCategories {
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
type: 'icon';
|
|
38
|
+
body: string;
|
|
42
39
|
}
|
|
43
40
|
interface IconSetIconAlias extends IconWithChars, IconParentData {
|
|
44
|
-
|
|
41
|
+
type: 'alias';
|
|
45
42
|
}
|
|
46
43
|
interface IconSetIconVariation extends IconWithPropsData, IconParentData {
|
|
47
|
-
|
|
44
|
+
type: 'variation';
|
|
48
45
|
}
|
|
49
46
|
/**
|
|
50
47
|
* All icon types
|
|
@@ -54,14 +51,13 @@ type IconSetIconType = IconSetIconEntry['type'];
|
|
|
54
51
|
/**
|
|
55
52
|
* Full icon with extra stuff
|
|
56
53
|
*/
|
|
57
|
-
interface ResolvedIconifyIcon extends IconifyIcon, ExtraIconProps {
|
|
58
|
-
}
|
|
54
|
+
interface ResolvedIconifyIcon extends IconifyIcon, ExtraIconProps {}
|
|
59
55
|
/**
|
|
60
56
|
* Result for checking theme: list of names for each theme
|
|
61
57
|
*/
|
|
62
58
|
interface CheckThemeResult {
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
valid: Record<string, string[]>;
|
|
60
|
+
invalid: string[];
|
|
65
61
|
}
|
|
66
62
|
/**
|
|
67
63
|
* Callback for forEach functions
|
|
@@ -71,5 +67,4 @@ interface CheckThemeResult {
|
|
|
71
67
|
type IconSetForEachCallbackResult = void | false;
|
|
72
68
|
type IconSetAsyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => Promise<IconSetForEachCallbackResult> | IconSetForEachCallbackResult;
|
|
73
69
|
type IconSetSyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => IconSetForEachCallbackResult;
|
|
74
|
-
|
|
75
|
-
export type { CheckThemeResult, CommonIconProps, ExtraIconProps, IconCategory, IconParentData, IconSetAsyncForEachCallback, IconSetIcon, IconSetIconAlias, IconSetIconEntry, IconSetIconType, IconSetIconVariation, IconSetSyncForEachCallback, IconWithCategories, IconWithChars, IconWithPropsData, ResolvedIconifyIcon };
|
|
70
|
+
export { CheckThemeResult, CommonIconProps, ExtraIconProps, IconCategory, IconParentData, IconSetAsyncForEachCallback, IconSetIcon, IconSetIconAlias, IconSetIconEntry, IconSetIconType, IconSetIconVariation, IconSetSyncForEachCallback, IconWithCategories, IconWithChars, IconWithPropsData, ResolvedIconifyIcon };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
import { IconSet } from
|
|
2
|
-
import { CleanupSVGOptions } from
|
|
3
|
-
import '@iconify/types';
|
|
4
|
-
import '@iconify/utils/lib/customisations/defaults';
|
|
5
|
-
import '../icon-set/types.js';
|
|
6
|
-
import '../svg/index.js';
|
|
7
|
-
import 'cheerio';
|
|
8
|
-
import '@iconify/utils/lib/icon-set/tree';
|
|
9
|
-
import '../svg/cleanup/bad-tags.js';
|
|
10
|
-
|
|
1
|
+
import { IconSet } from "../icon-set/index.js";
|
|
2
|
+
import { CleanupSVGOptions } from "../svg/cleanup.js";
|
|
11
3
|
/**
|
|
12
4
|
* Entry for file
|
|
13
5
|
*/
|
|
14
6
|
interface ImportDirectoryFileEntry {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
path: string;
|
|
8
|
+
subdir: string;
|
|
9
|
+
file: string;
|
|
10
|
+
ext: string;
|
|
19
11
|
}
|
|
20
12
|
/**
|
|
21
13
|
* Callback to get keyword for icon based on file name
|
|
@@ -35,10 +27,10 @@ type ImportDirectoryKeywordSyncCallback = Callback<ImportDirectoryKeywordCallbac
|
|
|
35
27
|
* Options
|
|
36
28
|
*/
|
|
37
29
|
interface ImportDirectoryOptions<K> extends CleanupSVGOptions {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
prefix?: string;
|
|
31
|
+
includeSubDirs?: boolean;
|
|
32
|
+
keyword?: K;
|
|
33
|
+
ignoreImportErrors?: boolean | 'warn';
|
|
42
34
|
}
|
|
43
35
|
/**
|
|
44
36
|
* Import all icons from directory
|
|
@@ -48,5 +40,4 @@ declare function importDirectory(path: string, options?: ImportDirectoryOptions<
|
|
|
48
40
|
* Import all icons from directory synchronously
|
|
49
41
|
*/
|
|
50
42
|
declare function importDirectorySync(path: string, options?: ImportDirectoryOptions<ImportDirectoryKeywordSyncCallback>): IconSet;
|
|
51
|
-
|
|
52
|
-
export { type ImportDirectoryFileEntry, type ImportDirectoryKeywordCallback, type ImportDirectoryKeywordSyncCallback, importDirectory, importDirectorySync };
|
|
43
|
+
export { ImportDirectoryFileEntry, ImportDirectoryKeywordCallback, ImportDirectoryKeywordSyncCallback, importDirectory, importDirectorySync };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { SVG } from "../svg/index.js";
|
|
2
|
+
import { cleanupSVG } from "../svg/cleanup.js";
|
|
3
|
+
import { blankIconSet } from "../icon-set/index.js";
|
|
4
|
+
import { scanDirectory, scanDirectorySync } from "../misc/scan.js";
|
|
5
|
+
import { cleanupIconKeyword } from "../misc/keyword.js";
|
|
6
|
+
import { promises, readFileSync } from "fs";
|
|
7
|
+
|
|
8
|
+
function importDir(iconSet, options, getKeyword, files, readFile, done) {
|
|
9
|
+
let i = 0;
|
|
10
|
+
const next = () => {
|
|
11
|
+
if (i >= files.length) return done(iconSet);
|
|
12
|
+
const file = files[i];
|
|
13
|
+
i++;
|
|
14
|
+
getKeyword([
|
|
15
|
+
file,
|
|
16
|
+
cleanupIconKeyword(file.file),
|
|
17
|
+
iconSet
|
|
18
|
+
], (keyword) => {
|
|
19
|
+
if (typeof keyword !== "string" || !keyword.length) return next();
|
|
20
|
+
readFile(file.path + file.subdir + file.file + file.ext, (content) => {
|
|
21
|
+
try {
|
|
22
|
+
const svg = new SVG(content);
|
|
23
|
+
cleanupSVG(svg, options);
|
|
24
|
+
iconSet.fromSVG(keyword, svg);
|
|
25
|
+
} catch (err) {
|
|
26
|
+
const ignore = options.ignoreImportErrors ?? false;
|
|
27
|
+
if (ignore === false || ignore === "warn") {
|
|
28
|
+
let msg = `Failed to import "${keyword}"`;
|
|
29
|
+
if (err instanceof Error) msg += `: ${err.message}`;
|
|
30
|
+
if (ignore === false) throw new Error(msg);
|
|
31
|
+
else console.warn(msg);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
next();
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
next();
|
|
39
|
+
}
|
|
40
|
+
function isValidFile(item) {
|
|
41
|
+
return item.ext.toLowerCase() === ".svg";
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Import all icons from directory
|
|
45
|
+
*/
|
|
46
|
+
function importDirectory(path, options = {}) {
|
|
47
|
+
return new Promise((fulfill, reject) => {
|
|
48
|
+
scanDirectory(path, (ext, file, subdir, path$1) => {
|
|
49
|
+
const result = {
|
|
50
|
+
file,
|
|
51
|
+
ext,
|
|
52
|
+
subdir,
|
|
53
|
+
path: path$1
|
|
54
|
+
};
|
|
55
|
+
return isValidFile(result) ? result : false;
|
|
56
|
+
}, options.includeSubDirs !== false).then((files) => {
|
|
57
|
+
const iconSet = blankIconSet(options.prefix || "");
|
|
58
|
+
try {
|
|
59
|
+
importDir(iconSet, options, (params, done) => {
|
|
60
|
+
if (options.keyword) {
|
|
61
|
+
const result = options.keyword(...params);
|
|
62
|
+
if (result instanceof Promise) result.then(done).catch(reject);
|
|
63
|
+
else done(result);
|
|
64
|
+
} else done(params[1]);
|
|
65
|
+
}, files, (filename, done) => {
|
|
66
|
+
promises.readFile(filename, "utf8").then(done).catch(reject);
|
|
67
|
+
}, fulfill);
|
|
68
|
+
} catch (err) {
|
|
69
|
+
reject(err);
|
|
70
|
+
}
|
|
71
|
+
}).catch(reject);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Import all icons from directory synchronously
|
|
76
|
+
*/
|
|
77
|
+
function importDirectorySync(path, options = {}) {
|
|
78
|
+
const files = scanDirectorySync(path, (ext, file, subdir, path$1) => {
|
|
79
|
+
const result = {
|
|
80
|
+
file,
|
|
81
|
+
ext,
|
|
82
|
+
subdir,
|
|
83
|
+
path: path$1
|
|
84
|
+
};
|
|
85
|
+
return isValidFile(result) ? result : false;
|
|
86
|
+
}, options.includeSubDirs !== false);
|
|
87
|
+
const iconSet = blankIconSet(options.prefix || "");
|
|
88
|
+
let isSync = true;
|
|
89
|
+
importDir(iconSet, options, (params, done) => {
|
|
90
|
+
if (options.keyword) done(options.keyword(...params));
|
|
91
|
+
else done(params[1]);
|
|
92
|
+
}, files, (filename, done) => {
|
|
93
|
+
done(readFileSync(filename, "utf8"));
|
|
94
|
+
}, () => {
|
|
95
|
+
if (!isSync) throw new Error("importDirectorySync supposed to be synchronous");
|
|
96
|
+
});
|
|
97
|
+
isSync = false;
|
|
98
|
+
return iconSet;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export { importDirectory, importDirectorySync };
|
|
@@ -1,20 +1,9 @@
|
|
|
1
|
-
import { DocumentNotModified } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import '../../icon-set/index.js';
|
|
5
|
-
import '@iconify/types';
|
|
6
|
-
import '@iconify/utils/lib/customisations/defaults';
|
|
7
|
-
import '../../icon-set/types.js';
|
|
8
|
-
import '../../svg/index.js';
|
|
9
|
-
import 'cheerio';
|
|
10
|
-
import '@iconify/utils/lib/icon-set/tree';
|
|
11
|
-
import './types/nodes.js';
|
|
12
|
-
import './types/api.js';
|
|
13
|
-
|
|
1
|
+
import { DocumentNotModified } from "../../download/types/modified.js";
|
|
2
|
+
import { FigmaImportResult } from "./types/result.js";
|
|
3
|
+
import { FigmaIfModifiedSinceOption, FigmaImportOptions } from "./types/options.js";
|
|
14
4
|
/**
|
|
15
5
|
* Import icon set from Figma
|
|
16
6
|
*/
|
|
17
7
|
declare function importFromFigma<T extends FigmaIfModifiedSinceOption & FigmaImportOptions>(options: T): Promise<FigmaImportResult | DocumentNotModified>;
|
|
18
8
|
declare function importFromFigma(options: FigmaImportOptions): Promise<FigmaImportResult>;
|
|
19
|
-
|
|
20
|
-
export { importFromFigma };
|
|
9
|
+
export { importFromFigma };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { SVG } from "../../svg/index.js";
|
|
2
|
+
import { cleanupSVG } from "../../svg/cleanup.js";
|
|
3
|
+
import { blankIconSet } from "../../icon-set/index.js";
|
|
4
|
+
import { getFigmaIconNodes } from "./nodes.js";
|
|
5
|
+
import { figmaDownloadImages, figmaFilesQuery, figmaImagesQuery } from "./query.js";
|
|
6
|
+
|
|
7
|
+
async function importFromFigma(options) {
|
|
8
|
+
const cacheOptions = options.cacheDir ? {
|
|
9
|
+
ttl: options.cacheAPITTL || 3600 * 24,
|
|
10
|
+
dir: options.cacheDir
|
|
11
|
+
} : void 0;
|
|
12
|
+
const cacheSVGOptions = options.cacheDir ? {
|
|
13
|
+
ttl: options.cacheSVGTTL || 3600 * 24 * 30,
|
|
14
|
+
dir: options.cacheDir
|
|
15
|
+
} : void 0;
|
|
16
|
+
const document = await figmaFilesQuery(options, cacheOptions);
|
|
17
|
+
if (document === "not_modified") return document;
|
|
18
|
+
options.version = document.version;
|
|
19
|
+
const nodes = getFigmaIconNodes(document, options);
|
|
20
|
+
await figmaImagesQuery(options, nodes, cacheOptions);
|
|
21
|
+
await figmaDownloadImages(nodes, cacheSVGOptions);
|
|
22
|
+
const iconSet = blankIconSet(options.prefix);
|
|
23
|
+
const icons = nodes.icons;
|
|
24
|
+
const missing = [];
|
|
25
|
+
const iconIDs = Object.keys(icons);
|
|
26
|
+
for (let i = 0; i < iconIDs.length; i++) {
|
|
27
|
+
const item = icons[iconIDs[i]];
|
|
28
|
+
if (typeof item.content !== "string") {
|
|
29
|
+
missing.push(item);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (options.beforeImportingIcon) {
|
|
33
|
+
const callbackResult = options.beforeImportingIcon(item, iconSet);
|
|
34
|
+
if (callbackResult instanceof Promise) await callbackResult;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const svg = new SVG(item.content);
|
|
38
|
+
cleanupSVG(svg);
|
|
39
|
+
iconSet.fromSVG(item.keyword, svg);
|
|
40
|
+
} catch (err) {
|
|
41
|
+
missing.push(item);
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (options.afterImportingIcon) {
|
|
45
|
+
const callbackResult = options.afterImportingIcon(item, iconSet);
|
|
46
|
+
if (callbackResult instanceof Promise) await callbackResult;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
name: document.name,
|
|
51
|
+
version: document.version,
|
|
52
|
+
lastModified: document.lastModified,
|
|
53
|
+
nodesCount: nodes.nodesCount,
|
|
54
|
+
generatedIconsCount: nodes.generatedIconsCount,
|
|
55
|
+
downloadedIconsCount: nodes.downloadedIconsCount,
|
|
56
|
+
iconSet,
|
|
57
|
+
missing
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export { importFromFigma };
|
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
import { FigmaDocument } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import '../../icon-set/index.js';
|
|
5
|
-
import '@iconify/types';
|
|
6
|
-
import '@iconify/utils/lib/customisations/defaults';
|
|
7
|
-
import '../../icon-set/types.js';
|
|
8
|
-
import '../../svg/index.js';
|
|
9
|
-
import 'cheerio';
|
|
10
|
-
import '@iconify/utils/lib/icon-set/tree';
|
|
11
|
-
import './types/nodes.js';
|
|
12
|
-
|
|
1
|
+
import { FigmaDocument } from "./types/api.js";
|
|
2
|
+
import { FigmaNodesImportResult } from "./types/result.js";
|
|
3
|
+
import { FigmaGetIconNodesOptions } from "./types/options.js";
|
|
13
4
|
/**
|
|
14
5
|
* Get node ids for icons
|
|
15
6
|
*/
|
|
16
7
|
declare function getFigmaIconNodes(document: FigmaDocument, options: FigmaGetIconNodesOptions): FigmaNodesImportResult;
|
|
17
|
-
|
|
18
|
-
export { getFigmaIconNodes };
|
|
8
|
+
export { getFigmaIconNodes };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
function assertNever(v) {}
|
|
2
|
+
/**
|
|
3
|
+
* Get node ids for icons
|
|
4
|
+
*/
|
|
5
|
+
function getFigmaIconNodes(document, options) {
|
|
6
|
+
const nodes = { icons: Object.create(null) };
|
|
7
|
+
let found = 0;
|
|
8
|
+
const check = (node, parents) => {
|
|
9
|
+
const iconNodeType = node.type;
|
|
10
|
+
switch (iconNodeType) {
|
|
11
|
+
case "COMPONENT":
|
|
12
|
+
case "INSTANCE":
|
|
13
|
+
case "FRAME": {
|
|
14
|
+
const iconNode = node;
|
|
15
|
+
if (iconNode.absoluteBoundingBox) {
|
|
16
|
+
const box = iconNode.absoluteBoundingBox;
|
|
17
|
+
const item = {
|
|
18
|
+
...node,
|
|
19
|
+
type: iconNodeType,
|
|
20
|
+
width: box.width,
|
|
21
|
+
height: box.height,
|
|
22
|
+
parents
|
|
23
|
+
};
|
|
24
|
+
const keyword = options.iconNameForNode(item, nodes, document);
|
|
25
|
+
if (typeof keyword === "string") {
|
|
26
|
+
found++;
|
|
27
|
+
nodes.icons[node.id] = {
|
|
28
|
+
id: node.id,
|
|
29
|
+
name: node.name,
|
|
30
|
+
keyword
|
|
31
|
+
};
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (keyword && typeof keyword === "object" && typeof keyword.keyword === "string") {
|
|
35
|
+
found++;
|
|
36
|
+
nodes.icons[node.id] = {
|
|
37
|
+
...keyword,
|
|
38
|
+
id: node.id,
|
|
39
|
+
name: node.name
|
|
40
|
+
};
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
default: assertNever(iconNodeType);
|
|
47
|
+
}
|
|
48
|
+
if (!node.children) return;
|
|
49
|
+
const parentNodeType = node.type;
|
|
50
|
+
switch (parentNodeType) {
|
|
51
|
+
case "CANVAS":
|
|
52
|
+
case "FRAME":
|
|
53
|
+
case "GROUP":
|
|
54
|
+
case "SECTION":
|
|
55
|
+
case "COMPONENT_SET": {
|
|
56
|
+
const parentItem = {
|
|
57
|
+
...node,
|
|
58
|
+
type: parentNodeType
|
|
59
|
+
};
|
|
60
|
+
const newParents = parents.concat([parentItem]);
|
|
61
|
+
if (!parents.length && options.pages) {
|
|
62
|
+
const allowedPages = options.pages;
|
|
63
|
+
if (!allowedPages.includes(node.id) && !allowedPages.includes(node.name.trim())) return;
|
|
64
|
+
} else if (options.filterParentNode && !options.filterParentNode(newParents, document)) return;
|
|
65
|
+
node.children.forEach((childNode) => {
|
|
66
|
+
check(childNode, newParents);
|
|
67
|
+
});
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
default: assertNever(parentNodeType);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
document.document.children.forEach((node) => {
|
|
74
|
+
check(node, []);
|
|
75
|
+
});
|
|
76
|
+
nodes.nodesCount = found;
|
|
77
|
+
return nodes;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export { getFigmaIconNodes };
|