diff --git a/CHANGELOG.md b/CHANGELOG.md index fdf909939..db8ed9f43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- `@lumx/icons`: override & alias system in place. now custom icon fonts are now generated from MDI fonts we extend. +- `@lumx/icons`: override Twitter logo to use the new X logo. + ## [3.5.5][] - 2023-11-13 ### Changed diff --git a/packages/lumx-icons/README.md b/packages/lumx-icons/README.md new file mode 100644 index 000000000..d1b227728 --- /dev/null +++ b/packages/lumx-icons/README.md @@ -0,0 +1,43 @@ +# @lumx/icons + +LumApps Design System icon library based on Material Design Icons (`@mdi/js` and `@mdi/font`). + +There is two ways to use the icons: + +1. Import SVG path from JS (ex: `import { mdiHeart } from '@lumx/icons';`) which you can display with the `Icon` react + component (ex: `import { Icon } from '@lumx/react'; `) +2. Import the SCSS style (ex: `@import '@lumx/icons/font';`) and use MDI classes (ex: `.mdi .mdi-heart`) + +**Warning**: The SCSS/Font icons will get deprecated in the future as they force you to import all icons even if you only +use a few. + +## Overrides & aliases + +While we are based on MDI, we have overrides of both the JS and font icons handles in `override` dir: + +- `override/override-icons`: contains SVG icons and config to override MDI +- `override/alias-icons.js`: config contains mapping from icon name to aliases +- `override/generate/run-all.js`: script that generate the TS & Font/SCSS overrides and then TS & Font/SCSS aliases + +Aliases have been used to keep retro-compatibility when [migrating from MDI v4 to v5](./README-v4-to-v5-migration.md) +and for brand renaming (ex: twitter). Overrides helped us update or restore brand logo because MDI is deprecating them. + +### Overrides + +To add or replace an icons in MDI: + +1. Add the SVG icon in `override/override-icons` and make sure they are defined with a single svg path in a view box at + 24/24dp and follows the MDI icons guidelines (3dp margin around the edge) +2. Add the configuration of the icon in `override/override-icons/config.json`. Set the `cssCode` to know where to place + the icon in the font (at which code point) and set `replace: true` if you want the icon to replace an existing MDI + icon. (If you don't set it to true on existing icon, you'll get the error: `Error: Repeat unicode...`) +3. Run the `yarn generate-icons` script to re-generate +4. Validate the changes & commit them + +### Aliases + +To add an alias for an icon: + +1. Edit the `override/alias-icons.js` config putting the original icon name in key and the aliases in value. +2. Run the `yarn generate-icons` script to re-generate +3. Validate the changes & commit them diff --git a/packages/lumx-icons/font.scss b/packages/lumx-icons/font.scss index cba32f204..f4eb85657 100644 --- a/packages/lumx-icons/font.scss +++ b/packages/lumx-icons/font.scss @@ -1,4 +1,5 @@ -$mdi-font-path: "~@mdi/font/fonts"; - +$mdi-font-path: "~@lumx/icons/override/generated/fonts"; @import "@mdi/font/scss/materialdesignicons"; -@import "./v4-to-v5-aliases"; + +@import "./override/generated/override"; +@import "./override/generated/aliases"; diff --git a/packages/lumx-icons/index.d.ts b/packages/lumx-icons/index.d.ts deleted file mode 100644 index c67192200..000000000 --- a/packages/lumx-icons/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from '@mdi/js'; - -export * from './v4-to-v5-aliases'; diff --git a/packages/lumx-icons/index.js b/packages/lumx-icons/index.js deleted file mode 100644 index c67192200..000000000 --- a/packages/lumx-icons/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export * from '@mdi/js'; - -export * from './v4-to-v5-aliases'; diff --git a/packages/lumx-icons/index.ts b/packages/lumx-icons/index.ts new file mode 100644 index 000000000..fe48a8aa7 --- /dev/null +++ b/packages/lumx-icons/index.ts @@ -0,0 +1 @@ +export * from './override/generated'; diff --git a/packages/lumx-icons/override/alias-icons.js b/packages/lumx-icons/override/alias-icons.js new file mode 100644 index 000000000..19c780c86 --- /dev/null +++ b/packages/lumx-icons/override/alias-icons.js @@ -0,0 +1,486 @@ +module.exports = { + 'account-cowboy-hat': [ + // retro-compat v4 aliases: + 'cowboy', + ], + 'account-hard-hat': [ + // retro-compat v4 aliases: + 'worker', + ], + 'account-music': [ + // retro-compat v4 aliases: + 'artist', + ], + 'account-music-outline': [ + // retro-compat v4 aliases: + 'artist-outline', + ], + 'account-voice': [ + // retro-compat v4 aliases: + 'voice', + ], + 'apple-airplay': [ + // retro-compat v4 aliases: + 'airplay', + ], + 'badge-account': [ + // retro-compat v4 aliases: + 'account-badge', + ], + 'badge-account-alert': [ + // retro-compat v4 aliases: + 'account-badge-alert', + ], + 'badge-account-alert-outline': [ + // retro-compat v4 aliases: + 'account-badge-alert-outline', + ], + 'badge-account-horizontal': [ + // retro-compat v4 aliases: + 'account-badge-horizontal', + ], + 'badge-account-horizontal-outline': [ + // retro-compat v4 aliases: + 'account-badge-horizontal-outline', + ], + 'badge-account-outline': [ + // retro-compat v4 aliases: + 'account-badge-outline', + ], + bed: [ + // retro-compat v4 aliases: + 'hotel', + ], + 'book-alphabet': [ + // retro-compat v4 aliases: + 'dictionary', + ], + 'book-cross': [ + // retro-compat v4 aliases: + 'bible', + ], + 'book-music': [ + // retro-compat v4 aliases: + 'audiobook', + ], + 'book-remove-multiple-outline': [ + // retro-compat v4 aliases: + 'square-inc', + ], + 'calendar-sync': [ + // retro-compat v4 aliases: + 'calendar-repeat', + ], + 'calendar-sync-outline': [ + // retro-compat v4 aliases: + 'calendar-repeat-outline', + ], + 'card-account-details': [ + // retro-compat v4 aliases: + 'account-card-details', + ], + 'card-account-details-outline': [ + // retro-compat v4 aliases: + 'account-card-details-outline', + ], + 'card-account-details-star': [ + // retro-compat v4 aliases: + 'github-box', + ], + 'card-account-details-star-outline': [ + // retro-compat v4 aliases: + 'github-face', + ], + 'card-account-mail': [ + // retro-compat v4 aliases: + 'contact-mail', + ], + 'card-account-mail-outline': [ + // retro-compat v4 aliases: + 'contact-mail-outline', + ], + 'card-account-phone': [ + // retro-compat v4 aliases: + 'contact-phone', + ], + 'card-account-phone-outline': [ + // retro-compat v4 aliases: + 'contact-phone-outline', + ], + 'cellphone-cog': [ + // retro-compat v4 aliases: + 'cellphone-settings-variant', + ], + 'circle-multiple-outline': [ + // retro-compat v4 aliases: + 'coins', + ], + 'cloud-refresh': [ + // retro-compat v4 aliases: + 'tor', + ], + 'code-json': [ + // retro-compat v4 aliases: + 'json', + ], + cog: [ + // retro-compat v4 aliases: + 'settings', + ], + 'cog-box': [ + // retro-compat v4 aliases: + 'settings-box', + ], + 'cog-outline': [ + // retro-compat v4 aliases: + 'settings-outline', + ], + 'cog-transfer': [ + // retro-compat v4 aliases: + 'settings-transfer', + ], + 'cog-transfer-outline': [ + // retro-compat v4 aliases: + 'settings-transfer-outline', + ], + 'currency-usd-circle-outline': [ + // retro-compat v4 aliases: + 'coin-outline', + ], + 'file-cog': [ + // retro-compat v4 aliases: + 'file-settings-variant', + ], + 'file-cog-outline': [ + // retro-compat v4 aliases: + 'file-settings-variant-outline', + ], + 'filmstrip-box-multiple': [ + // retro-compat v4 aliases: + 'library-movie', + ], + 'folder-cog': [ + // retro-compat v4 aliases: + 'folder-settings-variant', + ], + 'folder-cog-outline': [ + // retro-compat v4 aliases: + 'folder-settings-variant-outline', + ], + 'folder-refresh-outline': [ + // retro-compat v4 aliases: + 'tumblr-reblog', + ], + 'form-textarea': [ + // retro-compat v4 aliases: + 'textarea', + ], + 'form-textbox': [ + // retro-compat v4 aliases: + 'textbox', + ], + 'form-textbox-password': [ + // retro-compat v4 aliases: + 'textbox-password', + ], + github: [ + // retro-compat v4 aliases: + 'github-circle', + ], + 'ice-cream-off': [ + // retro-compat v4 aliases: + 'nfc-off', + ], + 'image-multiple-outline': [ + // retro-compat v4 aliases: + 'image-filter', + ], + 'language-markdown': [ + // retro-compat v4 aliases: + 'markdown', + ], + 'language-markdown-outline': [ + // retro-compat v4 aliases: + 'markdown-outline', + ], + 'language-ruby': [ + // retro-compat v4 aliases: + 'ruby', + ], + 'language-xaml': [ + // retro-compat v4 aliases: + 'xaml', + ], + 'message-cog': [ + // retro-compat v4 aliases: + 'message-settings-variant', + ], + 'microsoft-azure': [ + // retro-compat v4 aliases: + 'azure', + ], + 'microsoft-azure-devops': [ + // retro-compat v4 aliases: + 'azure-devops', + ], + 'microsoft-bing': [ + // retro-compat v4 aliases: + 'bing', + ], + 'microsoft-dynamics-365': [ + // retro-compat v4 aliases: + 'microsoft-dynamics', + ], + 'microsoft-edge': [ + // retro-compat v4 aliases: + 'edge', + ], + 'microsoft-internet-explorer': [ + // retro-compat v4 aliases: + 'internet-explorer', + ], + 'microsoft-office': [ + // retro-compat v4 aliases: + 'office', + ], + 'microsoft-onedrive': [ + // retro-compat v4 aliases: + 'onedrive', + ], + 'microsoft-onenote': [ + // retro-compat v4 aliases: + 'onenote', + ], + 'microsoft-outlook': [ + // retro-compat v4 aliases: + 'outlook', + ], + 'microsoft-visual-studio': [ + // retro-compat v4 aliases: + 'visual-studio', + ], + 'microsoft-visual-studio-code': [ + // retro-compat v4 aliases: + 'visual-studio-code', + ], + 'microsoft-windows': [ + // retro-compat v4 aliases: + 'windows', + ], + 'microsoft-windows-classic': [ + // retro-compat v4 aliases: + 'windows-classic', + ], + 'microsoft-xbox': [ + // retro-compat v4 aliases: + 'xbox', + ], + 'microsoft-xbox-controller': [ + // retro-compat v4 aliases: + 'xbox-controller', + ], + 'microsoft-xbox-controller-battery-alert': [ + // retro-compat v4 aliases: + 'xbox-controller-battery-alert', + ], + 'microsoft-xbox-controller-battery-charging': [ + // retro-compat v4 aliases: + 'xbox-controller-battery-charging', + ], + 'microsoft-xbox-controller-battery-empty': [ + // retro-compat v4 aliases: + 'xbox-controller-battery-empty', + ], + 'microsoft-xbox-controller-battery-full': [ + // retro-compat v4 aliases: + 'xbox-controller-battery-full', + ], + 'microsoft-xbox-controller-battery-low': [ + // retro-compat v4 aliases: + 'xbox-controller-battery-low', + ], + 'microsoft-xbox-controller-battery-medium': [ + // retro-compat v4 aliases: + 'xbox-controller-battery-medium', + ], + 'microsoft-xbox-controller-battery-unknown': [ + // retro-compat v4 aliases: + 'xbox-controller-battery-unknown', + ], + 'microsoft-xbox-controller-menu': [ + // retro-compat v4 aliases: + 'xbox-controller-menu', + ], + 'microsoft-xbox-controller-off': [ + // retro-compat v4 aliases: + 'xbox-controller-off', + ], + 'microsoft-xbox-controller-view': [ + // retro-compat v4 aliases: + 'xbox-controller-view', + ], + 'microsoft-yammer': [ + // retro-compat v4 aliases: + 'yammer', + ], + 'molecule-co2': [ + // retro-compat v4 aliases: + 'periodic-table-co2', + ], + 'music-box-multiple': [ + // retro-compat v4 aliases: + 'library-music', + ], + 'music-box-multiple-outline': [ + // retro-compat v4 aliases: + 'library-music-outline', + ], + 'nintendo-wii': [ + // retro-compat v4 aliases: + 'wii', + ], + 'nintendo-wiiu': [ + // retro-compat v4 aliases: + 'wiiu', + ], + facebook: [ + // retro-compat v4 aliases: + 'facebook-box', + ], + 'google-plus': [ + // retro-compat v4 aliases: + 'google-plus-box', + ], + npm: [ + // retro-compat v4 aliases: + 'npm-variant', + 'npm-variant-outline', + ], + 'x-twitter': [ + 'twitter', + // retro-compat v4 aliases: + 'twitter-box', + 'twitter-circle', + ], + 'play-box-multiple': [ + // retro-compat v4 aliases: + 'library-video', + ], + 'roller-skate-off': [ + // retro-compat v4 aliases: + 'cisco-webex', + ], + 'router-network': [ + // retro-compat v4 aliases: + 'network-router', + ], + 'sail-boat': [ + // retro-compat v4 aliases: + 'sailing', + ], + 'sony-playstation': [ + // retro-compat v4 aliases: + 'playstation', + ], + 'sort-alphabetical-variant': [ + // retro-compat v4 aliases: + 'sort-alphabetical', + ], + 'sort-numeric-variant': [ + // retro-compat v4 aliases: + 'sort-numeric', + ], + linkedin: [ + // retro-compat v4 aliases: + 'linkedin-box', + ], + 'text-box': [ + // retro-compat v4 aliases: + 'file-document-box', + ], + 'text-box-check': [ + // retro-compat v4 aliases: + 'file-document-box-check', + ], + 'text-box-check-outline': [ + // retro-compat v4 aliases: + 'file-document-box-check-outline', + ], + 'text-box-minus': [ + // retro-compat v4 aliases: + 'file-document-box-minus', + ], + 'text-box-minus-outline': [ + // retro-compat v4 aliases: + 'file-document-box-minus-outline', + ], + 'text-box-multiple': [ + // retro-compat v4 aliases: + 'library-books', + 'file-document-box-multiple', + ], + 'text-box-multiple-outline': [ + // retro-compat v4 aliases: + 'file-document-box-multiple-outline', + ], + 'text-box-outline': [ + // retro-compat v4 aliases: + 'file-document-box-outline', + ], + 'text-box-plus': [ + // retro-compat v4 aliases: + 'file-document-box-plus', + ], + 'text-box-plus-outline': [ + // retro-compat v4 aliases: + 'file-document-box-plus-outline', + ], + 'text-box-remove': [ + // retro-compat v4 aliases: + 'file-document-box-remove', + ], + 'text-box-remove-outline': [ + // retro-compat v4 aliases: + 'file-document-box-remove-outline', + ], + 'text-box-search': [ + // retro-compat v4 aliases: + 'file-document-box-search', + ], + 'text-box-search-outline': [ + // retro-compat v4 aliases: + 'file-document-box-search-outline', + ], + 'tow-truck': [ + // retro-compat v4 aliases: + 'towing', + ], + 'video-box': [ + // retro-compat v4 aliases: + 'camcorder-box', + ], + 'video-box-off': [ + // retro-compat v4 aliases: + 'camcorder-box-off', + ], + 'wall-sconce-round-variant': [ + // retro-compat v4 aliases: + 'wall-sconce-variant', + ], + 'y-combinator': [ + // retro-compat v4 aliases: + 'hackernews', + ], + 'youtube-studio': [ + // retro-compat v4 aliases: + 'youtube-creator-studio', + ], + 'format-title': [ + // retro-compat v4 aliases: + 'instapaper', + ], + at: [ + // retro-compat v4 aliases: + 'mail-ru', + ], +}; diff --git a/packages/lumx-icons/override/generate/constants.cjs b/packages/lumx-icons/override/generate/constants.cjs new file mode 100644 index 000000000..c8ea5b37b --- /dev/null +++ b/packages/lumx-icons/override/generate/constants.cjs @@ -0,0 +1,26 @@ +const path = require('path'); +const { ROOT_PATH } = require('../../../../configs/path'); + +const INPUT_ICON_OVERRIDE_DIR = path.resolve(__dirname, '..', 'override-icons'); +const GENERATED_DIR = path.resolve(__dirname, '..', 'generated'); +const GENERATED_TMP_DIR = path.resolve(GENERATED_DIR, 'tmp'); +const GENERATED_FONT_DIR = path.resolve(GENERATED_DIR, 'fonts'); +const OUT_OVERRIDE_NAME = 'override'; +const OUT_ALIASES_NAME = 'aliases'; +const MDI_FONT_NAME = 'materialdesignicons-webfont'; +const MDI_FONT_PATH = path.resolve(ROOT_PATH, `node_modules/@mdi/font/fonts/${MDI_FONT_NAME}.ttf`); +const OVERRIDE_FONT_NAME = 'override'; +const OVERRIDE_FONT_PATH = path.resolve(GENERATED_TMP_DIR, `${OVERRIDE_FONT_NAME}.ttf`); + +module.exports = { + INPUT_ICON_OVERRIDE_DIR, + GENERATED_DIR, + GENERATED_TMP_DIR, + GENERATED_FONT_DIR, + OUT_OVERRIDE_NAME, + OUT_ALIASES_NAME, + MDI_FONT_NAME, + MDI_FONT_PATH, + OVERRIDE_FONT_NAME, + OVERRIDE_FONT_PATH, +}; diff --git a/packages/lumx-icons/override/generate/generate-merged-font.cjs b/packages/lumx-icons/override/generate/generate-merged-font.cjs new file mode 100644 index 000000000..c03c3f4c2 --- /dev/null +++ b/packages/lumx-icons/override/generate/generate-merged-font.cjs @@ -0,0 +1,63 @@ +const { woff2, Font } = require('fonteditor-core'); +const without = require('lodash/without'); +const path = require('path'); +const fs = require('fs/promises'); + +const overrideConfig = require('../override-icons/config'); +const { + MDI_FONT_PATH, + OVERRIDE_FONT_PATH, + GENERATED_FONT_DIR, + MDI_FONT_NAME +} = require('./constants.cjs'); +const { cssCodeToUnicode } = require('./utils.cjs'); + +/** + * Merge the MDI font with our override font. + * + * 1. Load MDI font from node_modules + * 2. Load our override font + * 3. List code points (locations in the font) where we want to override + * 4. Merge our override font into MDI font + * 5. Export all font file formats + */ +async function generateMergedFont() { + const woff2InitPromise = woff2.init(); + const mdiFontPromise = fs.readFile(MDI_FONT_PATH); + + // Load our override font + const overrideFontPromise = fs.readFile(OVERRIDE_FONT_PATH); + const overrideFont = Font.create(await overrideFontPromise, { type: 'ttf' }); + + // List code point that should be replaced in MDI + const overrideCodePoints = Object.values(overrideConfig) + .map(({ cssCode, replace }) => replace && cssCodeToUnicode(cssCode)) + .filter(Boolean); + // List all MDI code points + const allMDICodePoints = Font.create(await mdiFontPromise, { type: 'ttf' }) + .find({ filter: () => true }) + .flatMap(({ unicode }) => unicode); + // List all MDI code points without the overridden code point + const subset = without(allMDICodePoints, ...overrideCodePoints); + + // Only load MDI icons that we do not override + const mdiFont = Font.create(await mdiFontPromise, { type: 'ttf', subset }); + + // Merge the MDI font without our override font + mdiFont.merge(overrideFont); + + // Init needed to properly output woff2 + await woff2InitPromise; + + // Output font in all the formats supported by MDI + const types = ['eot', 'ttf', 'woff', 'woff2']; + await Promise.all( + types.map((type) => { + // Write font file + const filePath = path.resolve(GENERATED_FONT_DIR, `${MDI_FONT_NAME}.${type}`); + return fs.writeFile(filePath, mdiFont.write({ type })); + }), + ); +} + +module.exports = generateMergedFont; diff --git a/packages/lumx-icons/override/generate/generate-override-font.cjs b/packages/lumx-icons/override/generate/generate-override-font.cjs new file mode 100644 index 000000000..848bd2e78 --- /dev/null +++ b/packages/lumx-icons/override/generate/generate-override-font.cjs @@ -0,0 +1,49 @@ +const svgtofont = require('svgtofont'); +const path = require('path'); +const overrideConfig = require('../override-icons/config'); +const { + INPUT_ICON_OVERRIDE_DIR, + GENERATED_TMP_DIR, + OVERRIDE_FONT_NAME +} = require('./constants.cjs'); +const { cssCodeToUnicode } = require('./utils.cjs'); + +/** + * Convert input SVG icons into fonts and JSON path file. + * + * 1. Loads individual SVG icons in INPUT_ICON_OVERRIDE_DIR + * 2. Map them to a position in the font `getIconUnicode` based on the CSS character code + * 3. Output font in all major formats (ttf, woff, etc.) + */ +async function generateOverrideFont() { + return svgtofont({ + // Input dir containing SVG icons to integrate into a font + src: INPUT_ICON_OVERRIDE_DIR, + // Map icon to their location in the font (cssCode => unicode code point) + getIconUnicode(name) { + const iconConfig = overrideConfig[name]; + if (!iconConfig) throw new Error(`No config for icon ${name}`); + // Use unicode code point converted from CSS format + const { cssCode } = iconConfig; + const code = cssCodeToUnicode(cssCode); + return [String.fromCodePoint(code)]; + }, + // Output dir + dist: path.resolve(GENERATED_TMP_DIR), + // Output font name + fontName: OVERRIDE_FONT_NAME, + svgicons2svgfont: { + // upscale to 1000dp to avoid vector deformation + fontHeight: 1000, + // MDI icons are 24/24dp and the margin is 3dp + descent: (1000 * 3) / 24, + }, + // Output SVG path in a JSON + outSVGPath: true, + // Disables unwanted output files: + css: false, + outSVGReact: false, + }); +} + +module.exports = generateOverrideFont; diff --git a/packages/lumx-icons/override/generate/generate-scss-aliases.cjs b/packages/lumx-icons/override/generate/generate-scss-aliases.cjs new file mode 100644 index 000000000..9114e8b4f --- /dev/null +++ b/packages/lumx-icons/override/generate/generate-scss-aliases.cjs @@ -0,0 +1,38 @@ +const path = require('path'); +const fs = require('fs/promises'); +const aliasesConfig = require('../alias-icons'); +const { GENERATED_DIR, OUT_ALIASES_NAME } = require('./constants.cjs'); + +/** + * Generate SCSS aliases for mdi icons + * + * 1. List the aliases in our config file + * 2. Generate SCSS alias classes with @extend + * 3. Write to SCSS file + */ +async function generateSCSSAliases() { + const classDefinitions = []; + + // For each icon alias in the configuration + for (const [name, aliases] of Object.entries(aliasesConfig)) { + // SCSS alias class selectors (ex: `.mdi-bar, \n.mdi-baz`) + const selectors = aliases.map((alias) => `.mdi-${alias}`).join(',\n'); + // SCSS class definition + classDefinitions.push(`${selectors} {\n @extend .mdi-${name};\n}`); + /* + * For an icon named `foo` with aliases: `bar` & `baz`. + * We generate: + * + * .mdi-bar, + * .mdi-baz { + * @extend .mdi-foo; + * } + */ + } + + // Output SCSS file + const outSCSSFile = path.resolve(GENERATED_DIR, `${OUT_ALIASES_NAME}.scss`); + await fs.writeFile(outSCSSFile, `${classDefinitions.join('\n\n')}\n`); +} + +module.exports = generateSCSSAliases; diff --git a/packages/lumx-icons/override/generate/generate-scss-override.cjs b/packages/lumx-icons/override/generate/generate-scss-override.cjs new file mode 100644 index 000000000..7bf7d1d09 --- /dev/null +++ b/packages/lumx-icons/override/generate/generate-scss-override.cjs @@ -0,0 +1,21 @@ +const path = require('path'); +const fs = require('fs/promises'); + +const overrideConfig = require('../override-icons/config'); +const { GENERATED_DIR, OUT_OVERRIDE_NAME } = require('./constants.cjs'); + +/** + * Generate SCSS exporting the override icons. + */ +async function generateSCSSOverride() { + const classDefinitions = []; + for (const [name, { cssCode }] of Object.entries(overrideConfig)) { + // Override mdi class with the given css code character point + classDefinitions.push(`.mdi-${name}:before {\n content: '${cssCode}';\n}`); + } + + const scssOverrideFile = path.resolve(GENERATED_DIR, `${OUT_OVERRIDE_NAME}.scss`); + await fs.writeFile(scssOverrideFile, `${classDefinitions.join('\n\n')}\n`); +} + +module.exports = generateSCSSOverride; diff --git a/packages/lumx-icons/override/generate/generate-ts-aliases.cjs b/packages/lumx-icons/override/generate/generate-ts-aliases.cjs new file mode 100644 index 000000000..eb73fd419 --- /dev/null +++ b/packages/lumx-icons/override/generate/generate-ts-aliases.cjs @@ -0,0 +1,55 @@ +const camelCase = require('lodash/camelCase'); +const path = require('path'); +const fs = require('fs/promises'); +const aliasesConfig = require('../alias-icons'); +const { OUT_OVERRIDE_NAME, GENERATED_DIR, OUT_ALIASES_NAME } = require('./constants.cjs'); + +/** + * Generate TS icon aliases + * + * 1. List the aliases in our config file + * 2. Generate TS const exports for each + * 3. Write to SCSS file + */ +async function generateTSAliases() { + const iconImportNames = []; + const iconExports = []; + + for (const [name, aliases] of Object.entries(aliasesConfig)) { + const jsIconName = camelCase(`mdi-${name}`); + // Icon name to import before re-exporting as alias + iconImportNames.push(jsIconName); + + for (const alias of aliases) { + const jsIconAlias = camelCase(`mdi-${alias}`); + // Icon alias + iconExports.push(`export const ${jsIconAlias} = ${jsIconName};`); + } + + /* + * For an icon named `foo` with aliases: `bar` & `baz`. + * We generate: + * + * export const mdiBar = mdiFoo; + * + * export const mdiBaz = mdiFoo; + */ + } + + // Sort icon import names + iconImportNames.sort(); + + // Output TS file + const lines = [ + // Import icons to alias + `import {\n ${iconImportNames.join(',\n ')},\n} from './${OUT_OVERRIDE_NAME}';`, + // Re-export overridden icons (we want to alias AFTER we override icons) + `export * from './${OUT_OVERRIDE_NAME}';`, + // Export icon aliases + ...iconExports, + ]; + const outTSFile = path.resolve(GENERATED_DIR, `${OUT_ALIASES_NAME}.ts`); + await fs.writeFile(outTSFile, `${lines.join('\n\n')}\n`); +} + +module.exports = generateTSAliases; diff --git a/packages/lumx-icons/override/generate/generate-ts-override.cjs b/packages/lumx-icons/override/generate/generate-ts-override.cjs new file mode 100644 index 000000000..59ef00da6 --- /dev/null +++ b/packages/lumx-icons/override/generate/generate-ts-override.cjs @@ -0,0 +1,32 @@ +const camelCase = require('lodash/camelCase'); +const path = require('path'); +const fs = require('fs/promises'); +const { GENERATED_DIR, GENERATED_TMP_DIR, OUT_OVERRIDE_NAME, OVERRIDE_FONT_NAME } = require('./constants.cjs'); + +/** + * Generate TypeScript module exporting the icons paths. + */ +async function generateTSOverride() { + const iconsJSONFilePath = path.resolve(GENERATED_TMP_DIR, `${OVERRIDE_FONT_NAME}.json`); + const iconJSONFile = await fs.readFile(iconsJSONFilePath); + const icons = JSON.parse(iconJSONFile.toString()); + + // Generate TS const export to override MDI icons + const iconOverrideExports = []; + for (const [icon, paths] of Object.entries(icons)) { + if (paths.length !== 1) throw new Error('Only single path icon are supported'); + iconOverrideExports.push(`export const ${camelCase(`mdi-${icon}`)} =\n '${paths[0]}';`); + } + + // Output TS file + const lines = [ + // Re-export MDI icons + `export * from '@mdi/js';`, + // Override MDI icons we just re-exported + ...iconOverrideExports, + ]; + const tsOverrideFile = path.resolve(GENERATED_DIR, `${OUT_OVERRIDE_NAME}.ts`); + await fs.writeFile(tsOverrideFile, `${lines.join('\n\n')}\n`); +} + +module.exports = generateTSOverride; diff --git a/packages/lumx-icons/override/generate/run-all.cjs b/packages/lumx-icons/override/generate/run-all.cjs new file mode 100755 index 000000000..e9c77ab32 --- /dev/null +++ b/packages/lumx-icons/override/generate/run-all.cjs @@ -0,0 +1,27 @@ +#!/usr/bin/env node + +const generateMergedFont = require('./generate-merged-font.cjs'); +const generateSCSSAliases = require('./generate-scss-aliases.cjs'); +const generateTSAliases = require('./generate-ts-aliases.cjs'); +const generateSCSSOverride = require('./generate-scss-override.cjs'); +const generateTSOverride = require('./generate-ts-override.cjs'); +const generateOverrideFont = require('./generate-override-font.cjs'); +const { cleanUpTmpDir } = require('./utils.cjs'); + +// Generate override font from our override SVG icons +generateOverrideFont() + .then(() => + Promise.all([ + // Merge MDI with the override font + generateMergedFont(), + // Generate TS icon override const + generateTSOverride(), + // Generate SCSS MDI class override + generateSCSSOverride(), + // Generate TS icon alias const + generateTSAliases(), + // Generate SCSS MDI class aliases + generateSCSSAliases(), + ]), + ) + .then(cleanUpTmpDir); diff --git a/packages/lumx-icons/override/generate/utils.cjs b/packages/lumx-icons/override/generate/utils.cjs new file mode 100644 index 000000000..741ccf7bb --- /dev/null +++ b/packages/lumx-icons/override/generate/utils.cjs @@ -0,0 +1,10 @@ +const fs = require('fs/promises'); +const { GENERATED_TMP_DIR } = require('./constants.cjs'); + +/** Convert CSS character code (ex: /F0544) to integer unicode code point (ex: 984388) */ +const cssCodeToUnicode = (cssCode) => parseInt(cssCode.replace(/^\\/, ''), 16); + +/** Clean up the tmp dir */ +const cleanUpTmpDir = () => fs.rm(GENERATED_TMP_DIR, { recursive: true, force: true }); + +module.exports = { cssCodeToUnicode, cleanUpTmpDir }; diff --git a/packages/lumx-icons/v4-to-v5-aliases.scss b/packages/lumx-icons/override/generated/aliases.scss similarity index 98% rename from packages/lumx-icons/v4-to-v5-aliases.scss rename to packages/lumx-icons/override/generated/aliases.scss index d747e4f48..1b3265d94 100644 --- a/packages/lumx-icons/v4-to-v5-aliases.scss +++ b/packages/lumx-icons/override/generated/aliases.scss @@ -154,10 +154,6 @@ @extend .mdi-file-cog-outline; } -.mdi-library-books { - @extend .mdi-text-box-multiple; -} - .mdi-library-movie { @extend .mdi-filmstrip-box-multiple; } @@ -359,9 +355,10 @@ @extend .mdi-npm; } +.mdi-twitter, .mdi-twitter-box, .mdi-twitter-circle { - @extend .mdi-twitter; + @extend .mdi-x-twitter; } .mdi-library-video { @@ -416,6 +413,7 @@ @extend .mdi-text-box-minus-outline; } +.mdi-library-books, .mdi-file-document-box-multiple { @extend .mdi-text-box-multiple; } diff --git a/packages/lumx-icons/v4-to-v5-aliases.js b/packages/lumx-icons/override/generated/aliases.ts similarity index 96% rename from packages/lumx-icons/v4-to-v5-aliases.js rename to packages/lumx-icons/override/generated/aliases.ts index e92b89ee1..edf25757d 100644 --- a/packages/lumx-icons/v4-to-v5-aliases.js +++ b/packages/lumx-icons/override/generated/aliases.ts @@ -37,23 +37,26 @@ import { mdiCogTransfer, mdiCogTransferOutline, mdiCurrencyUsdCircleOutline, + mdiFacebook, mdiFileCog, mdiFileCogOutline, mdiFilmstripBoxMultiple, mdiFolderCog, mdiFolderCogOutline, mdiFolderRefreshOutline, - mdiFormatTitle, mdiFormTextarea, mdiFormTextbox, mdiFormTextboxPassword, + mdiFormatTitle, mdiGithub, + mdiGooglePlus, mdiIceCreamOff, mdiImageMultipleOutline, mdiLanguageMarkdown, mdiLanguageMarkdownOutline, mdiLanguageRuby, mdiLanguageXaml, + mdiLinkedin, mdiMessageCog, mdiMicrosoftAzure, mdiMicrosoftAzureDevops, @@ -87,10 +90,7 @@ import { mdiMusicBoxMultipleOutline, mdiNintendoWii, mdiNintendoWiiu, - mdiFacebook, - mdiGooglePlus, mdiNpm, - mdiTwitter, mdiPlayBoxMultiple, mdiRollerSkateOff, mdiRouterNetwork, @@ -98,7 +98,6 @@ import { mdiSonyPlaystation, mdiSortAlphabeticalVariant, mdiSortNumericVariant, - mdiLinkedin, mdiTextBox, mdiTextBoxCheck, mdiTextBoxCheckOutline, @@ -117,9 +116,12 @@ import { mdiVideoBox, mdiVideoBoxOff, mdiWallSconceRoundVariant, + mdiXTwitter, mdiYCombinator, mdiYoutubeStudio, -} from '@mdi/js'; +} from './override'; + +export * from './override'; export const mdiCowboy = mdiAccountCowboyHat; @@ -199,8 +201,6 @@ export const mdiFileSettingsVariant = mdiFileCog; export const mdiFileSettingsVariantOutline = mdiFileCogOutline; -export const mdiLibraryBooks = mdiTextBoxOutline; - export const mdiLibraryMovie = mdiFilmstripBoxMultiple; export const mdiFolderSettingsVariant = mdiFolderCog; @@ -303,9 +303,11 @@ export const mdiNpmVariant = mdiNpm; export const mdiNpmVariantOutline = mdiNpm; -export const mdiTwitterBox = mdiTwitter; +export const mdiTwitter = mdiXTwitter; -export const mdiTwitterCircle = mdiTwitter; +export const mdiTwitterBox = mdiXTwitter; + +export const mdiTwitterCircle = mdiXTwitter; export const mdiLibraryVideo = mdiPlayBoxMultiple; @@ -333,6 +335,8 @@ export const mdiFileDocumentBoxMinus = mdiTextBoxMinus; export const mdiFileDocumentBoxMinusOutline = mdiTextBoxMinusOutline; +export const mdiLibraryBooks = mdiTextBoxMultiple; + export const mdiFileDocumentBoxMultiple = mdiTextBoxMultiple; export const mdiFileDocumentBoxMultipleOutline = mdiTextBoxMultipleOutline; @@ -366,6 +370,3 @@ export const mdiYoutubeCreatorStudio = mdiYoutubeStudio; export const mdiInstapaper = mdiFormatTitle; export const mdiMailRu = mdiAt; - -export const mdiGooglePages = - 'M19,3H13V8L17,7L16,11H21V5C21,3.89 20.1,3 19,3M17,17L13,16V21H19A2,2 0 0,0 21,19V13H16M8,13H3V19A2,2 0 0,0 5,21H11V16L7,17M3,5V11H8L7,7L11,8V3H5C3.89,3 3,3.89 3,5Z'; diff --git a/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.eot b/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.eot new file mode 100644 index 000000000..094163b5e Binary files /dev/null and b/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.eot differ diff --git a/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.ttf b/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.ttf new file mode 100644 index 000000000..9c64cf249 Binary files /dev/null and b/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.ttf differ diff --git a/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.woff b/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.woff new file mode 100644 index 000000000..c6e91fb7a Binary files /dev/null and b/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.woff differ diff --git a/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.woff2 b/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.woff2 new file mode 100644 index 000000000..e3a9716a2 Binary files /dev/null and b/packages/lumx-icons/override/generated/fonts/materialdesignicons-webfont.woff2 differ diff --git a/packages/lumx-icons/override/generated/index.ts b/packages/lumx-icons/override/generated/index.ts new file mode 100644 index 000000000..26527c62e --- /dev/null +++ b/packages/lumx-icons/override/generated/index.ts @@ -0,0 +1 @@ +export * from './aliases'; diff --git a/packages/lumx-icons/override/generated/override.scss b/packages/lumx-icons/override/generated/override.scss new file mode 100644 index 000000000..6d7c44c28 --- /dev/null +++ b/packages/lumx-icons/override/generated/override.scss @@ -0,0 +1,7 @@ +.mdi-x-twitter:before { + content: '\F0544'; +} + +.mdi-google-pages:before { + content: '\F2BA'; +} diff --git a/packages/lumx-icons/override/generated/override.ts b/packages/lumx-icons/override/generated/override.ts new file mode 100644 index 000000000..6a1cf267e --- /dev/null +++ b/packages/lumx-icons/override/generated/override.ts @@ -0,0 +1,7 @@ +export * from '@mdi/js'; + +export const mdiGooglePages = + 'm19 3h-6v5l4-1-1 4h5v-6c0-1.1-.9-2-2-2m-2 14-4-1v5h6a2 2 0 002-2v-6h-5m-8 0h-5v6a2 2 0 002 2h6v-5l-4 1m-4-12v6h5l-1-4 4 1v-5h-6c-1.1 0-2 .9-2 2z'; + +export const mdiXTwitter = + 'm17.8 2.9h3.1L14.1 10.7 22 21.1H15.8L11 14.8 5.4 21.1h-3L9.6 12.9 2 2.9h6.3l4.3 5.9zm-1 16.4h1.7L7.4 4.8H5.7Z'; diff --git a/packages/lumx-icons/override/override-icons/config.js b/packages/lumx-icons/override/override-icons/config.js new file mode 100644 index 000000000..c203bb25e --- /dev/null +++ b/packages/lumx-icons/override/override-icons/config.js @@ -0,0 +1,10 @@ +module.exports = { + 'x-twitter': { + replace: true, + cssCode: '\\F0544', + }, + // Icon restored from MDI v4 to avoid breaking change + 'google-pages': { + cssCode: '\\F2BA', + }, +}; diff --git a/packages/lumx-icons/override/override-icons/google-pages.svg b/packages/lumx-icons/override/override-icons/google-pages.svg new file mode 100644 index 000000000..ad63ee222 --- /dev/null +++ b/packages/lumx-icons/override/override-icons/google-pages.svg @@ -0,0 +1,7 @@ + + + diff --git a/packages/lumx-icons/override/override-icons/x-twitter.svg b/packages/lumx-icons/override/override-icons/x-twitter.svg new file mode 100644 index 000000000..8fa37e9ad --- /dev/null +++ b/packages/lumx-icons/override/override-icons/x-twitter.svg @@ -0,0 +1,7 @@ + + + diff --git a/packages/lumx-icons/package.json b/packages/lumx-icons/package.json index 9a579c401..fe9f0064d 100644 --- a/packages/lumx-icons/package.json +++ b/packages/lumx-icons/package.json @@ -9,10 +9,14 @@ }, "devDependencies": { "@rollup/plugin-node-resolve": "9.0.0", + "fonteditor-core": "^2.3.2", + "lodash": "4.17.21", "rollup": "2.26.10", "rollup-plugin-babel": "^4.4.0", "rollup-plugin-cleaner": "^1.0.0", - "rollup-plugin-copy": "^3.3.0" + "rollup-plugin-copy": "^3.3.0", + "rollup-plugin-dts": "^6.1.0", + "svgtofont": "^4.0.0" }, "description": "LumX icons", "engines": { @@ -23,6 +27,7 @@ "license": "MIT", "main": "cjs/index.js", "module": "index.js", + "types": "index.d.ts", "name": "@lumx/icons", "repository": { "type": "git", @@ -32,6 +37,7 @@ "directory": "dist" }, "scripts": { + "generate-icons": "./override/generate/run-all.cjs", "build": "rollup -c" }, "sideEffects": false, diff --git a/packages/lumx-icons/rollup.config.js b/packages/lumx-icons/rollup.config.js index a9dec89fb..f85036d5a 100644 --- a/packages/lumx-icons/rollup.config.js +++ b/packages/lumx-icons/rollup.config.js @@ -4,16 +4,18 @@ import resolve from '@rollup/plugin-node-resolve'; import babel from 'rollup-plugin-babel'; import copy from 'rollup-plugin-copy'; import cleaner from 'rollup-plugin-cleaner'; +import dts from 'rollup-plugin-dts'; import pkg from './package.json'; const CONFIGS = require('../../configs'); const DIST_PATH = path.resolve(__dirname, pkg.publishConfig.directory); -export const extensions = ['.js']; +export const extensions = ['.js', '.ts']; -export default { - input: 'index.js', +// Bundle MDI icons, our override & aliases into a single ESM & CJS bundle +const bundleJS = { + input: 'index.ts', output: [ // ESM version { @@ -44,8 +46,39 @@ export default { }), /** Copy additional files to dist. */ copy({ - targets: glob.sync('*(package.json|*.js|*.d.ts|*.scss|*.md)') - .map(file => ({ src: path.join(__dirname, file), dest: DIST_PATH })), + targets: + // Add package.json, SCSS (not bundled by build) and MDs + glob.sync('*(package.json|*.scss|*.md)') + // Add generated SCSS & fonts + .concat(glob.sync('override/generated/{*.scss,fonts}')) + // Make it relative to dist dir + .map(file => ({ + src: path.join(__dirname, file), + dest: path.join(DIST_PATH, path.dirname(file)) + })), }), ], }; + +// Mirror JS bundle but with `.d.ts` declaration files +const bundleType = { + input: 'index.ts', + output: [ + // ESM version + { + format: 'esm', + dir: DIST_PATH, + }, + // CommonJS version + { + format: 'cjs', + dir: path.join(DIST_PATH, 'cjs'), + }, + ], + plugins: [ + /** Transform TS to D.TS file. */ + dts({ respectExternal: true }), + ], +}; + +export default [bundleJS, bundleType]; diff --git a/packages/lumx-icons/tsconfig.json b/packages/lumx-icons/tsconfig.json new file mode 100644 index 000000000..f3a6d35fa --- /dev/null +++ b/packages/lumx-icons/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig" +} diff --git a/packages/lumx-icons/v4-to-v5-aliases.d.ts b/packages/lumx-icons/v4-to-v5-aliases.d.ts deleted file mode 100644 index e288558fb..000000000 --- a/packages/lumx-icons/v4-to-v5-aliases.d.ts +++ /dev/null @@ -1,247 +0,0 @@ -export declare const mdiCowboy: string; - -export declare const mdiWorker: string; - -export declare const mdiArtist: string; - -export declare const mdiArtistOutline: string; - -export declare const mdiVoice: string; - -export declare const mdiAirplay: string; - -export declare const mdiAccountBadge: string; - -export declare const mdiAccountBadgeAlert: string; - -export declare const mdiAccountBadgeAlertOutline: string; - -export declare const mdiAccountBadgeHorizontal: string; - -export declare const mdiAccountBadgeHorizontalOutline: string; - -export declare const mdiAccountBadgeOutline: string; - -export declare const mdiHotel: string; - -export declare const mdiDictionary: string; - -export declare const mdiBible: string; - -export declare const mdiAudiobook: string; - -export declare const mdiSquareInc: string; - -export declare const mdiCalendarRepeat: string; - -export declare const mdiCalendarRepeatOutline: string; - -export declare const mdiAccountCardDetails: string; - -export declare const mdiAccountCardDetailsOutline: string; - -export declare const mdiGithubBox: string; - -export declare const mdiGithubFace: string; - -export declare const mdiContactMail: string; - -export declare const mdiContactMailOutline: string; - -export declare const mdiContactPhone: string; - -export declare const mdiContactPhoneOutline: string; - -export declare const mdiCellphoneSettingsVariant: string; - -export declare const mdiCoins: string; - -export declare const mdiTor: string; - -export declare const mdiJson: string; - -export declare const mdiSettings: string; - -export declare const mdiSettingsBox: string; - -export declare const mdiSettingsOutline: string; - -export declare const mdiSettingsTransfer: string; - -export declare const mdiSettingsTransferOutline: string; - -export declare const mdiCoinOutline: string; - -export declare const mdiFileSettingsVariant: string; - -export declare const mdiFileSettingsVariantOutline: string; - -export declare const mdiLibraryBooks: string; - -export declare const mdiLibraryMovie: string; - -export declare const mdiFolderSettingsVariant: string; - -export declare const mdiFolderSettingsVariantOutline: string; - -export declare const mdiTumblrReblog: string; - -export declare const mdiTextarea: string; - -export declare const mdiTextbox: string; - -export declare const mdiTextboxPassword: string; - -export declare const mdiGithubCircle: string; - -export declare const mdiNfcOff: string; - -export declare const mdiImageFilter: string; - -export declare const mdiMarkdown: string; - -export declare const mdiMarkdownOutline: string; - -export declare const mdiRuby: string; - -export declare const mdiXaml: string; - -export declare const mdiMessageSettingsVariant: string; - -export declare const mdiAzure: string; - -export declare const mdiAzureDevops: string; - -export declare const mdiBing: string; - -export declare const mdiMicrosoftDynamics: string; - -export declare const mdiEdge: string; - -export declare const mdiInternetExplorer: string; - -export declare const mdiOffice: string; - -export declare const mdiOnedrive: string; - -export declare const mdiOnenote: string; - -export declare const mdiOutlook: string; - -export declare const mdiVisualStudio: string; - -export declare const mdiVisualStudioCode: string; - -export declare const mdiWindows: string; - -export declare const mdiWindowsClassic: string; - -export declare const mdiXbox: string; - -export declare const mdiXboxController: string; - -export declare const mdiXboxControllerBatteryAlert: string; - -export declare const mdiXboxControllerBatteryCharging: string; - -export declare const mdiXboxControllerBatteryEmpty: string; - -export declare const mdiXboxControllerBatteryFull: string; - -export declare const mdiXboxControllerBatteryLow: string; - -export declare const mdiXboxControllerBatteryMedium: string; - -export declare const mdiXboxControllerBatteryUnknown: string; - -export declare const mdiXboxControllerMenu: string; - -export declare const mdiXboxControllerOff: string; - -export declare const mdiXboxControllerView: string; - -export declare const mdiYammer: string; - -export declare const mdiPeriodicTableCo2: string; - -export declare const mdiLibraryMusic: string; - -export declare const mdiLibraryMusicOutline: string; - -export declare const mdiWii: string; - -export declare const mdiWiiu: string; - -export declare const mdiFacebookBox: string; - -export declare const mdiGooglePlusBox: string; - -export declare const mdiNpmVariant: string; - -export declare const mdiNpmVariantOutline: string; - -export declare const mdiTwitterBox: string; - -export declare const mdiTwitterCircle: string; - -export declare const mdiLibraryVideo: string; - -export declare const mdiCiscoWebex: string; - -export declare const mdiNetworkRouter: string; - -export declare const mdiSailing: string; - -export declare const mdiPlaystation: string; - -export declare const mdiSortAlphabetical: string; - -export declare const mdiSortNumeric: string; - -export declare const mdiLinkedinBox: string; - -export declare const mdiFileDocumentBox: string; - -export declare const mdiFileDocumentBoxCheck: string; - -export declare const mdiFileDocumentBoxCheckOutline: string; - -export declare const mdiFileDocumentBoxMinus: string; - -export declare const mdiFileDocumentBoxMinusOutline: string; - -export declare const mdiFileDocumentBoxMultiple: string; - -export declare const mdiFileDocumentBoxMultipleOutline: string; - -export declare const mdiFileDocumentBoxOutline: string; - -export declare const mdiFileDocumentBoxPlus: string; - -export declare const mdiFileDocumentBoxPlusOutline: string; - -export declare const mdiFileDocumentBoxRemove: string; - -export declare const mdiFileDocumentBoxRemoveOutline: string; - -export declare const mdiFileDocumentBoxSearch: string; - -export declare const mdiFileDocumentBoxSearchOutline: string; - -export declare const mdiTowing: string; - -export declare const mdiCamcorderBox: string; - -export declare const mdiCamcorderBoxOff: string; - -export declare const mdiWallSconceVariant: string; - -export declare const mdiHackernews: string; - -export declare const mdiYoutubeCreatorStudio: string; - -export declare const mdiInstapaper: string; - -export declare const mdiMailRu: string; - -export declare const mdiGooglePages: string; diff --git a/packages/site-demo/content/product/components/popover-dialog/react/default.tsx b/packages/site-demo/content/product/components/popover-dialog/react/default.tsx index 8e2971348..04d37019b 100644 --- a/packages/site-demo/content/product/components/popover-dialog/react/default.tsx +++ b/packages/site-demo/content/product/components/popover-dialog/react/default.tsx @@ -1,5 +1,4 @@ -import { mdiMenu } from '@lumx/icons/index'; -import { mdiSettings } from '@lumx/icons/v4-to-v5-aliases'; +import { mdiMenu, mdiSettings } from '@lumx/icons'; import { Button, Emphasis, diff --git a/yarn.lock b/yarn.lock index a86e3d1b2..9cb651108 100644 --- a/yarn.lock +++ b/yarn.lock @@ -97,6 +97,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.22.13": + version: 7.23.4 + resolution: "@babel/code-frame@npm:7.23.4" + dependencies: + "@babel/highlight": ^7.23.4 + chalk: ^2.4.2 + checksum: 29999d08c3dbd803f3c296dae7f4f40af1f9e381d6bbc76e5a75327c4b8b023bcb2e209843d292f5d71c3b5c845df1da959d415ed862d6a68e0ad6c5c9622d37 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.10.4, @babel/compat-data@npm:^7.11.0": version: 7.11.0 resolution: "@babel/compat-data@npm:7.11.0" @@ -1054,6 +1064,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-validator-option@npm:7.18.6" @@ -1158,6 +1175,17 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/highlight@npm:7.23.4" + dependencies: + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.7.0, @babel/parser@npm:^7.7.2": version: 7.7.3 resolution: "@babel/parser@npm:7.7.3" @@ -4552,6 +4580,13 @@ __metadata: languageName: node linkType: hard +"@gar/promisify@npm:^1.1.3": + version: 1.1.3 + resolution: "@gar/promisify@npm:1.1.3" + checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 + languageName: node + linkType: hard + "@graphql-tools/delegate@npm:^6.2.4": version: 6.2.4 resolution: "@graphql-tools/delegate@npm:6.2.4" @@ -5196,7 +5231,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.13": +"@jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 @@ -6113,10 +6148,14 @@ __metadata: "@mdi/font": 5.8.55 "@mdi/js": 5.8.55 "@rollup/plugin-node-resolve": 9.0.0 + fonteditor-core: ^2.3.2 + lodash: 4.17.21 rollup: 2.26.10 rollup-plugin-babel: ^4.4.0 rollup-plugin-cleaner: ^1.0.0 rollup-plugin-copy: ^3.3.0 + rollup-plugin-dts: ^6.1.0 + svgtofont: ^4.0.0 languageName: unknown linkType: soft @@ -6382,6 +6421,16 @@ __metadata: languageName: node linkType: hard +"@npmcli/fs@npm:^2.1.0": + version: 2.1.2 + resolution: "@npmcli/fs@npm:2.1.2" + dependencies: + "@gar/promisify": ^1.1.3 + semver: ^7.3.5 + checksum: 405074965e72d4c9d728931b64d2d38e6ea12066d4fad651ac253d175e413c06fe4350970c783db0d749181da8fe49c42d3880bd1cbc12cd68e3a7964d820225 + languageName: node + linkType: hard + "@npmcli/move-file@npm:^1.0.1": version: 1.1.2 resolution: "@npmcli/move-file@npm:1.1.2" @@ -6392,6 +6441,16 @@ __metadata: languageName: node linkType: hard +"@npmcli/move-file@npm:^2.0.0": + version: 2.0.1 + resolution: "@npmcli/move-file@npm:2.0.1" + dependencies: + mkdirp: ^1.0.4 + rimraf: ^3.0.2 + checksum: 52dc02259d98da517fae4cb3a0a3850227bdae4939dda1980b788a7670636ca2b4a01b58df03dd5f65c1e3cb70c50fa8ce5762b582b3f499ec30ee5ce1fd9380 + languageName: node + linkType: hard + "@octokit/endpoint@npm:^5.5.0": version: 5.5.1 resolution: "@octokit/endpoint@npm:5.5.1" @@ -7736,6 +7795,13 @@ __metadata: languageName: node linkType: hard +"@trysound/sax@npm:0.2.0": + version: 0.2.0 + resolution: "@trysound/sax@npm:0.2.0" + checksum: 11226c39b52b391719a2a92e10183e4260d9651f86edced166da1d95f39a0a1eaa470e44d14ac685ccd6d3df7e2002433782872c0feeb260d61e80f21250e65c + languageName: node + linkType: hard + "@turist/fetch@npm:^7.1.7": version: 7.1.7 resolution: "@turist/fetch@npm:7.1.7" @@ -7858,6 +7924,15 @@ __metadata: languageName: node linkType: hard +"@types/cheerio@npm:~0.22.31": + version: 0.22.34 + resolution: "@types/cheerio@npm:0.22.34" + dependencies: + "@types/node": "*" + checksum: 8795f4ddc68f394d140513817a996dbe148872a7e30218f32cea90e7fb36802726450c7174c0b7cd27bd8bf179f20d2c0a43a9064547df3c51b8960711582a13 + languageName: node + linkType: hard + "@types/classnames@npm:^2.2.9": version: 2.2.9 resolution: "@types/classnames@npm:2.2.9" @@ -7923,6 +7998,13 @@ __metadata: languageName: node linkType: hard +"@types/ejs@npm:~3.1.0": + version: 3.1.5 + resolution: "@types/ejs@npm:3.1.5" + checksum: e142266283051f27a7f79329871b311687dede19ae20268d882e4de218c65e1311d28a300b85579ca67157a8d601b7234daa50c2f99b252b121d27b4e5b21468 + languageName: node + linkType: hard + "@types/escodegen@npm:^0.0.6": version: 0.0.6 resolution: "@types/escodegen@npm:0.0.6" @@ -7989,6 +8071,16 @@ __metadata: languageName: node linkType: hard +"@types/fs-extra@npm:^11.0.1": + version: 11.0.4 + resolution: "@types/fs-extra@npm:11.0.4" + dependencies: + "@types/jsonfile": "*" + "@types/node": "*" + checksum: 242cb84157631f057f76495c8220707541882c00a00195b603d937fb55e471afecebcb089bab50233ed3a59c69fd68bf65c1f69dd7fafe2347e139cc15b9b0e5 + languageName: node + linkType: hard + "@types/fs-extra@npm:^8.0.1": version: 8.1.1 resolution: "@types/fs-extra@npm:8.1.1" @@ -8182,6 +8274,15 @@ __metadata: languageName: node linkType: hard +"@types/jsonfile@npm:*": + version: 6.1.4 + resolution: "@types/jsonfile@npm:6.1.4" + dependencies: + "@types/node": "*" + checksum: 309fda20eb5f1cf68f2df28931afdf189c5e7e6bec64ac783ce737bb98908d57f6f58757ad5da9be37b815645a6f914e2d4f3ac66c574b8fe1ba6616284d0e97 + languageName: node + linkType: hard + "@types/keyv@npm:*, @types/keyv@npm:^3.1.1": version: 3.1.3 resolution: "@types/keyv@npm:3.1.3" @@ -8544,6 +8645,22 @@ __metadata: languageName: node linkType: hard +"@types/svg2ttf@npm:~5.0.1": + version: 5.0.3 + resolution: "@types/svg2ttf@npm:5.0.3" + checksum: 1b7a3f5edd5198c45209b4f87af585791818e49483dbf1156efb53f33981cc6754c41b17ae922a501323301500826e3a8a07b5563ba99402ccbe6e508ae775fe + languageName: node + linkType: hard + +"@types/svgicons2svgfont@npm:~10.0.1": + version: 10.0.5 + resolution: "@types/svgicons2svgfont@npm:10.0.5" + dependencies: + "@types/node": "*" + checksum: d120c6064142d4783cfd3c33ed70289c209134792a47ab4d0b20eca8589729eef6db33a3b07e64f98545652c33d38323c407c531f3b9fb46ced48274ac2ad2dd + languageName: node + linkType: hard + "@types/tapable@npm:*": version: 1.0.4 resolution: "@types/tapable@npm:1.0.4" @@ -8574,6 +8691,33 @@ __metadata: languageName: node linkType: hard +"@types/ttf2eot@npm:~2.0.0": + version: 2.0.2 + resolution: "@types/ttf2eot@npm:2.0.2" + dependencies: + "@types/node": "*" + checksum: 056f4787bb63566268812beff0cdf41145f49b757ec0d3df34e84a5dc6ef6cb889c75a04ad86dd1778e376502ba95945792ce0d8da6a28f10f8720bbf7dd0e08 + languageName: node + linkType: hard + +"@types/ttf2woff2@npm:~2.0.0": + version: 2.0.2 + resolution: "@types/ttf2woff2@npm:2.0.2" + dependencies: + "@types/node": "*" + checksum: e88b581dae98c3b94ab94d005803cd357d880c37f09253d4a92022c334c97d9b1fcf3f76352b32458de775f40fd4180f5a85bdec8de5dc531e28374547492712 + languageName: node + linkType: hard + +"@types/ttf2woff@npm:~2.0.2": + version: 2.0.4 + resolution: "@types/ttf2woff@npm:2.0.4" + dependencies: + "@types/node": "*" + checksum: 9072ee6c6ba06efbc90b0779fb43e8711839f31be6d849a383f315bb4fa66124d0880da624cc50b6ba7dee262d0d475e7b84562bd731427fd63a1e4f9a185247 + languageName: node + linkType: hard + "@types/uglify-js@npm:*": version: 3.0.4 resolution: "@types/uglify-js@npm:3.0.4" @@ -9135,6 +9279,20 @@ __metadata: languageName: node linkType: hard +"@xmldom/xmldom@npm:^0.7.2": + version: 0.7.13 + resolution: "@xmldom/xmldom@npm:0.7.13" + checksum: b4054078530e5fa8ede9677425deff0fce6d965f4c477ca73f8490d8a089e60b8498a15560425a1335f5ff99ecb851ed2c734b0a9a879299a5694302f212f37a + languageName: node + linkType: hard + +"@xmldom/xmldom@npm:^0.8.3": + version: 0.8.10 + resolution: "@xmldom/xmldom@npm:0.8.10" + checksum: 4c136aec31fb3b49aaa53b6fcbfe524d02a1dc0d8e17ee35bd3bf35e9ce1344560481cd1efd086ad1a4821541482528672306d5e37cdbd187f33d7fadd3e2cf0 + languageName: node + linkType: hard + "@xtuc/ieee754@npm:^1.2.0": version: 1.2.0 resolution: "@xtuc/ieee754@npm:1.2.0" @@ -9190,7 +9348,7 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:1": +"abbrev@npm:1, abbrev@npm:^1.0.0": version: 1.1.1 resolution: "abbrev@npm:1.1.1" checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 @@ -9236,7 +9394,7 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.3.1": +"acorn-jsx@npm:^5.3.1, acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" peerDependencies: @@ -9295,6 +9453,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.5.0, acorn@npm:^8.9.0": + version: 8.11.2 + resolution: "acorn@npm:8.11.2" + bin: + acorn: bin/acorn + checksum: 818450408684da89423e3daae24e4dc9b68692db8ab49ea4569c7c5abb7a3f23669438bf129cc81dfdada95e1c9b944ee1bfca2c57a05a4dc73834a612fbf6a7 + languageName: node + linkType: hard + "address@npm:1.0.3": version: 1.0.3 resolution: "address@npm:1.0.3" @@ -9370,6 +9537,15 @@ __metadata: languageName: node linkType: hard +"agentkeepalive@npm:^4.2.1": + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" + dependencies: + humanize-ms: ^1.2.1 + checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 + languageName: node + linkType: hard + "aggregate-error@npm:^1.0.0": version: 1.0.0 resolution: "aggregate-error@npm:1.0.0" @@ -9743,6 +9919,13 @@ __metadata: languageName: node linkType: hard +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + languageName: node + linkType: hard + "aria-query@npm:^4.2.2": version: 4.2.2 resolution: "aria-query@npm:4.2.2" @@ -10156,6 +10339,21 @@ __metadata: languageName: node linkType: hard +"auto-config-loader@npm:^1.7.4": + version: 1.7.5 + resolution: "auto-config-loader@npm:1.7.5" + dependencies: + ini: ^4.1.1 + jiti: ^1.18.2 + jsonc-eslint-parser: ^2.3.0 + lodash.merge: ^4.6.2 + sucrase: ^3.32.0 + toml-eslint-parser: ^0.7.0 + yaml-eslint-parser: ^1.2.2 + checksum: dc848133a8edd38a230eb4a4b5111bd019e3e00d39c1983da2bf28e48174043837c15c32499fc09b3d0495155e0961e4fb98d6f7051f5a7d2bccda841ecd2702 + languageName: node + linkType: hard + "autoprefixer@npm:^9.7.4": version: 9.7.4 resolution: "autoprefixer@npm:9.7.4" @@ -11326,6 +11524,15 @@ __metadata: languageName: node linkType: hard +"bufferstreams@npm:^3.0.0": + version: 3.0.0 + resolution: "bufferstreams@npm:3.0.0" + dependencies: + readable-stream: ^3.4.0 + checksum: ad479dc918b7a951d0dfa26bcc8983ed4992015084697a36df90ed4de05da763078b61e645f6fd5d8f4b8b56f7c85ff323679334c95368f51a7c471256d2689e + languageName: node + linkType: hard + "bufferutil@npm:^4.0.1": version: 4.0.1 resolution: "bufferutil@npm:4.0.1" @@ -11489,6 +11696,32 @@ __metadata: languageName: node linkType: hard +"cacache@npm:^16.1.0": + version: 16.1.3 + resolution: "cacache@npm:16.1.3" + dependencies: + "@npmcli/fs": ^2.1.0 + "@npmcli/move-file": ^2.0.0 + chownr: ^2.0.0 + fs-minipass: ^2.1.0 + glob: ^8.0.1 + infer-owner: ^1.0.4 + lru-cache: ^7.7.1 + minipass: ^3.1.6 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + mkdirp: ^1.0.4 + p-map: ^4.0.0 + promise-inflight: ^1.0.1 + rimraf: ^3.0.2 + ssri: ^9.0.0 + tar: ^6.1.11 + unique-filename: ^2.0.0 + checksum: d91409e6e57d7d9a3a25e5dcc589c84e75b178ae8ea7de05cbf6b783f77a5fae938f6e8fda6f5257ed70000be27a681e1e44829251bfffe4c10216002f8f14e6 + languageName: node + linkType: hard + "cache-base@npm:^1.0.1": version: 1.0.1 resolution: "cache-base@npm:1.0.1" @@ -11988,6 +12221,20 @@ __metadata: languageName: node linkType: hard +"cheerio-select@npm:^2.1.0": + version: 2.1.0 + resolution: "cheerio-select@npm:2.1.0" + dependencies: + boolbase: ^1.0.0 + css-select: ^5.1.0 + css-what: ^6.1.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + checksum: 843d6d479922f28a6c5342c935aff1347491156814de63c585a6eb73baf7bb4185c1b4383a1195dca0f12e3946d737c7763bcef0b9544c515d905c5c44c5308b + languageName: node + linkType: hard + "cheerio@npm:^0.22.0": version: 0.22.0 resolution: "cheerio@npm:0.22.0" @@ -12012,6 +12259,21 @@ __metadata: languageName: node linkType: hard +"cheerio@npm:~1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "cheerio@npm:1.0.0-rc.12" + dependencies: + cheerio-select: ^2.1.0 + dom-serializer: ^2.0.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + htmlparser2: ^8.0.1 + parse5: ^7.0.0 + parse5-htmlparser2-tree-adapter: ^7.0.0 + checksum: 5d4c1b7a53cf22d3a2eddc0aff70cf23cbb30d01a4c79013e703a012475c02461aa1fcd99127e8d83a02216386ed6942b2c8103845fd0812300dd199e6e7e054 + languageName: node + linkType: hard + "chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" @@ -12604,6 +12866,15 @@ __metadata: languageName: node linkType: hard +"colors-cli@npm:~1.0.28": + version: 1.0.32 + resolution: "colors-cli@npm:1.0.32" + bin: + colors: bin/colors + checksum: 5e0b51c06e9ddab1593bfb91853969549d2bac5f409989a43403e0e2fcc5ae6457032543711820514d99315e644ef7337bdb255fe919a402765879ffd16c283c + languageName: node + linkType: hard + "colors@npm:1.0.3": version: 1.0.3 resolution: "colors@npm:1.0.3" @@ -12684,6 +12955,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^4.0.0": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 + languageName: node + linkType: hard + "commander@npm:^6.2.0": version: 6.2.0 resolution: "commander@npm:6.2.0" @@ -12698,6 +12976,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^7.2.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc + languageName: node + linkType: hard + "commander@npm:^8.3.0": version: 8.3.0 resolution: "commander@npm:8.3.0" @@ -12705,6 +12990,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^9.3.0": + version: 9.5.0 + resolution: "commander@npm:9.5.0" + checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade + languageName: node + linkType: hard + "commander@npm:~2.19.0": version: 2.19.0 resolution: "commander@npm:2.19.0" @@ -13169,6 +13461,23 @@ __metadata: languageName: node linkType: hard +"copy-template-dir@npm:~1.4.0": + version: 1.4.0 + resolution: "copy-template-dir@npm:1.4.0" + dependencies: + end-of-stream: ^1.1.0 + graceful-fs: ^4.1.3 + maxstache: ^1.0.0 + maxstache-stream: ^1.0.0 + mkdirp: ^0.5.1 + noop2: ^2.0.0 + pump: ^1.0.0 + readdirp: ^2.0.0 + run-parallel: ^1.1.4 + checksum: 79f0786faefa6a8bda7698dfd82c3c95c87c185b76b4e6f5db321efb1b94c63f8c3d41affef42ac670922b521d7d3a65511d0cc41e9aa2210585e14feedaa4fb + languageName: node + linkType: hard + "copy-webpack-plugin@npm:^5.1.1": version: 5.1.1 resolution: "copy-webpack-plugin@npm:5.1.1" @@ -13616,6 +13925,19 @@ __metadata: languageName: node linkType: hard +"css-select@npm:^5.1.0": + version: 5.1.0 + resolution: "css-select@npm:5.1.0" + dependencies: + boolbase: ^1.0.0 + css-what: ^6.1.0 + domhandler: ^5.0.2 + domutils: ^3.0.1 + nth-check: ^2.0.1 + checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda + languageName: node + linkType: hard + "css-selector-parser@npm:^1.1.0": version: 1.4.1 resolution: "css-selector-parser@npm:1.4.1" @@ -13643,6 +13965,26 @@ __metadata: languageName: node linkType: hard +"css-tree@npm:^2.2.1": + version: 2.3.1 + resolution: "css-tree@npm:2.3.1" + dependencies: + mdn-data: 2.0.30 + source-map-js: ^1.0.1 + checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 + languageName: node + linkType: hard + +"css-tree@npm:~2.2.0": + version: 2.2.1 + resolution: "css-tree@npm:2.2.1" + dependencies: + mdn-data: 2.0.28 + source-map-js: ^1.0.1 + checksum: b94aa8cc2f09e6f66c91548411fcf74badcbad3e150345074715012d16333ce573596ff5dfca03c2a87edf1924716db765120f94247e919d72753628ba3aba27 + languageName: node + linkType: hard + "css-unit-converter@npm:^1.1.1": version: 1.1.1 resolution: "css-unit-converter@npm:1.1.1" @@ -13664,6 +14006,13 @@ __metadata: languageName: node linkType: hard +"css-what@npm:^6.1.0": + version: 6.1.0 + resolution: "css-what@npm:6.1.0" + checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe + languageName: node + linkType: hard + "css.escape@npm:^1.5.1": version: 1.5.1 resolution: "css.escape@npm:1.5.1" @@ -13776,6 +14125,15 @@ __metadata: languageName: node linkType: hard +"csso@npm:5.0.5": + version: 5.0.5 + resolution: "csso@npm:5.0.5" + dependencies: + css-tree: ~2.2.0 + checksum: 0ad858d36bf5012ed243e9ec69962a867509061986d2ee07cc040a4b26e4d062c00d4c07e5ba8d430706ceb02dd87edd30a52b5937fd45b1b6f2119c4993d59a + languageName: node + linkType: hard + "csso@npm:^4.0.2": version: 4.0.2 resolution: "csso@npm:4.0.2" @@ -13822,6 +14180,13 @@ __metadata: languageName: node linkType: hard +"cubic2quad@npm:^1.2.1": + version: 1.2.1 + resolution: "cubic2quad@npm:1.2.1" + checksum: e87375fe176546821c8f2fb1ead5b99154ed55d9d08b8ca71d546c1d6a2ab16e8e61785d3b6140e770195846b1c5c6448db08bd6cf59248f5b48090061b5adb1 + languageName: node + linkType: hard + "currently-unhandled@npm:^0.4.1": version: 0.4.1 resolution: "currently-unhandled@npm:0.4.1" @@ -13991,7 +14356,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.4": +"debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -14273,7 +14638,7 @@ __metadata: languageName: node linkType: hard -"del@npm:^6.0.0": +"del@npm:^6.0.0, del@npm:~6.1.0": version: 6.1.1 resolution: "del@npm:6.1.1" dependencies: @@ -14669,6 +15034,17 @@ __metadata: languageName: node linkType: hard +"dom-serializer@npm:^2.0.0": + version: 2.0.0 + resolution: "dom-serializer@npm:2.0.0" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + entities: ^4.2.0 + checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 + languageName: node + linkType: hard + "dom-serializer@npm:~0.1.0": version: 0.1.1 resolution: "dom-serializer@npm:0.1.1" @@ -14707,6 +15083,13 @@ __metadata: languageName: node linkType: hard +"domelementtype@npm:^2.3.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 + languageName: node + linkType: hard + "domexception@npm:^4.0.0": version: 4.0.0 resolution: "domexception@npm:4.0.0" @@ -14734,6 +15117,15 @@ __metadata: languageName: node linkType: hard +"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": + version: 5.0.3 + resolution: "domhandler@npm:5.0.3" + dependencies: + domelementtype: ^2.3.0 + checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c + languageName: node + linkType: hard + "domutils@npm:1.5.1": version: 1.5.1 resolution: "domutils@npm:1.5.1" @@ -14765,6 +15157,17 @@ __metadata: languageName: node linkType: hard +"domutils@npm:^3.0.1": + version: 3.1.0 + resolution: "domutils@npm:3.1.0" + dependencies: + dom-serializer: ^2.0.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 + languageName: node + linkType: hard + "dot-case@npm:^2.1.0": version: 2.1.1 resolution: "dot-case@npm:2.1.1" @@ -14902,7 +15305,7 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.8": +"ejs@npm:^3.1.8, ejs@npm:~3.1.6": version: 3.1.9 resolution: "ejs@npm:3.1.9" dependencies: @@ -15050,7 +15453,7 @@ __metadata: languageName: node linkType: hard -"encoding@npm:^0.1.12": +"encoding@npm:^0.1.12, encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" dependencies: @@ -15159,6 +15562,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^4.2.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + "entities@npm:^4.4.0": version: 4.4.0 resolution: "entities@npm:4.4.0" @@ -16006,6 +16416,13 @@ __metadata: languageName: node linkType: hard +"eslint-visitor-keys@npm:^3.4.1": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + languageName: node + linkType: hard + "eslint@npm:^6.8.0": version: 6.8.0 resolution: "eslint@npm:6.8.0" @@ -16183,6 +16600,17 @@ __metadata: languageName: node linkType: hard +"espree@npm:^9.0.0": + version: 9.6.1 + resolution: "espree@npm:9.6.1" + dependencies: + acorn: ^8.9.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^3.4.1 + checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 + languageName: node + linkType: hard + "esprima@npm:^4.0.0, esprima@npm:^4.0.1, esprima@npm:~4.0.0": version: 4.0.1 resolution: "esprima@npm:4.0.1" @@ -16591,6 +17019,13 @@ __metadata: languageName: node linkType: hard +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + "express-graphql@npm:^0.9.0": version: 0.9.0 resolution: "express-graphql@npm:0.9.0" @@ -17350,6 +17785,15 @@ __metadata: languageName: node linkType: hard +"fonteditor-core@npm:^2.3.2": + version: 2.3.2 + resolution: "fonteditor-core@npm:2.3.2" + dependencies: + "@xmldom/xmldom": ^0.8.3 + checksum: 65be59bfe2994e6c591bf84603c77ab5e7782dda6a72ea5899d04291cd7bb9c88ccd0ac34efde148de228c2120d44d05f574db95cc356c3415e85191a452a542 + languageName: node + linkType: hard + "for-each@npm:^0.3.3": version: 0.3.3 resolution: "for-each@npm:0.3.3" @@ -17505,7 +17949,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:11.1.1, fs-extra@npm:^11.1.0": +"fs-extra@npm:11.1.1, fs-extra@npm:^11.1.0, fs-extra@npm:~11.1.0": version: 11.1.1 resolution: "fs-extra@npm:11.1.1" dependencies: @@ -17568,6 +18012,15 @@ __metadata: languageName: node linkType: hard +"fs-minipass@npm:^2.1.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + "fs-write-stream-atomic@npm:^1.0.8": version: 1.0.10 resolution: "fs-write-stream-atomic@npm:1.0.10" @@ -18799,7 +19252,7 @@ fsevents@~2.1.2: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.0.3, glob@npm:^7.0.5, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": +"glob@npm:7.1.6, glob@npm:^7.0.0, glob@npm:^7.0.3, glob@npm:^7.0.5, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": version: 7.1.6 resolution: "glob@npm:7.1.6" dependencies: @@ -18827,7 +19280,7 @@ fsevents@~2.1.2: languageName: node linkType: hard -"glob@npm:^8.1.0": +"glob@npm:^8.0.1, glob@npm:^8.0.3, glob@npm:^8.1.0": version: 8.1.0 resolution: "glob@npm:8.1.0" dependencies: @@ -19227,6 +19680,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"graceful-fs@npm:^4.1.3": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + "graceful-fs@npm:^4.2.3, graceful-fs@npm:^4.2.4": version: 4.2.4 resolution: "graceful-fs@npm:4.2.4" @@ -20132,6 +20592,18 @@ fsevents@~2.1.2: languageName: node linkType: hard +"htmlparser2@npm:^8.0.1": + version: 8.0.2 + resolution: "htmlparser2@npm:8.0.2" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + entities: ^4.4.0 + checksum: 29167a0f9282f181da8a6d0311b76820c8a59bc9e3c87009e21968264c2987d2723d6fde5a964d4b7b6cba663fca96ffb373c06d8223a85f52a6089ced942700 + languageName: node + linkType: hard + "http-cache-semantics@npm:3.8.1, http-cache-semantics@npm:^3.8.1": version: 3.8.1 resolution: "http-cache-semantics@npm:3.8.1" @@ -20500,6 +20972,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"image2uri@npm:~1.0.5": + version: 1.0.5 + resolution: "image2uri@npm:1.0.5" + checksum: eb98a9ce8d2acb5b9cfdb7b649c7858b74616a89df75a0dd94ddefcdd3f28a7dc700a9e612e41a90c662277efffa9c3696d5366d83f3bd0ce4c47e8506555ef2 + languageName: node + linkType: hard + "immutable@npm:^4.0.0": version: 4.1.0 resolution: "immutable@npm:4.1.0" @@ -20691,6 +21170,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"ini@npm:^4.1.1": + version: 4.1.1 + resolution: "ini@npm:4.1.1" + checksum: 0e5909554074fbc31824fa5415b0f604de4a665514c96a897a77bf77353a7ad4743927321270e9d0610a9d510ccd1f3cd77422f7cc80d8f4542dbce75476fb6d + languageName: node + linkType: hard + "init-package-json@npm:^1.10.3": version: 1.10.3 resolution: "init-package-json@npm:1.10.3" @@ -22770,6 +23256,15 @@ fsevents@~2.1.2: languageName: node linkType: hard +"jiti@npm:^1.18.2": + version: 1.21.0 + resolution: "jiti@npm:1.21.0" + bin: + jiti: bin/jiti.js + checksum: a7bd5d63921c170eaec91eecd686388181c7828e1fa0657ab374b9372bfc1f383cf4b039e6b272383d5cb25607509880af814a39abdff967322459cca41f2961 + languageName: node + linkType: hard + "joi@npm:^17.2.1": version: 17.2.1 resolution: "joi@npm:17.2.1" @@ -23021,6 +23516,18 @@ fsevents@~2.1.2: languageName: node linkType: hard +"jsonc-eslint-parser@npm:^2.3.0": + version: 2.4.0 + resolution: "jsonc-eslint-parser@npm:2.4.0" + dependencies: + acorn: ^8.5.0 + eslint-visitor-keys: ^3.0.0 + espree: ^9.0.0 + semver: ^7.3.5 + checksum: 495d8be340b464137db0bb25f8280deda2ad773cca6b8b5605325fddb50e8e317842a07ffdfa692b0adcba2d06e25d127087f2d703a63032923d1e67ee5a9efe + languageName: node + linkType: hard + "jsonc-parser@npm:^3.0.0": version: 3.2.0 resolution: "jsonc-parser@npm:3.2.0" @@ -23990,6 +24497,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"lru-cache@npm:^7.7.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 + languageName: node + linkType: hard + "lumx-site-demo@workspace:packages/site-demo": version: 0.0.0-use.local resolution: "lumx-site-demo@workspace:packages/site-demo" @@ -24087,6 +24601,15 @@ fsevents@~2.1.2: languageName: node linkType: hard +"magic-string@npm:^0.30.4": + version: 0.30.5 + resolution: "magic-string@npm:0.30.5" + dependencies: + "@jridgewell/sourcemap-codec": ^1.4.15 + checksum: da10fecff0c0a7d3faf756913ce62bd6d5e7b0402be48c3b27bfd651b90e29677e279069a63b764bcdc1b8ecdcdb898f29a5c5ec510f2323e8d62ee057a6eb18 + languageName: node + linkType: hard + "make-dir@npm:^1.0.0": version: 1.3.0 resolution: "make-dir@npm:1.3.0" @@ -24124,6 +24647,30 @@ fsevents@~2.1.2: languageName: node linkType: hard +"make-fetch-happen@npm:^10.0.3": + version: 10.2.1 + resolution: "make-fetch-happen@npm:10.2.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^16.1.0 + http-cache-semantics: ^4.1.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^3.1.6 + minipass-collect: ^1.0.2 + minipass-fetch: ^2.0.3 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^9.0.0 + checksum: 2332eb9a8ec96f1ffeeea56ccefabcb4193693597b132cd110734d50f2928842e22b84cfa1508e921b8385cdfd06dda9ad68645fed62b50fff629a580f5fb72c + languageName: node + linkType: hard + "make-fetch-happen@npm:^5.0.0": version: 5.0.2 resolution: "make-fetch-happen@npm:5.0.2" @@ -24268,6 +24815,25 @@ fsevents@~2.1.2: languageName: node linkType: hard +"maxstache-stream@npm:^1.0.0": + version: 1.0.4 + resolution: "maxstache-stream@npm:1.0.4" + dependencies: + maxstache: ^1.0.0 + pump: ^1.0.0 + split2: ^1.0.0 + through2: ^2.0.0 + checksum: b7745d4d4cf7ae65cd3d025609c661e8263dd79c5a8cd8d5ef49cb610be1620eccb914f6063bcb7c5ffc4ddbd31530bd59d37cc230811d45dd0637d897e6c592 + languageName: node + linkType: hard + +"maxstache@npm:^1.0.0": + version: 1.0.7 + resolution: "maxstache@npm:1.0.7" + checksum: d962611c9b72373a1c1bec65b651905e412ac6d863e101cd7243f93ad384997bb13702993568d5ecc25429049f6f53f9ff74321fb5dd3e0619e945fd0c651da5 + languageName: node + linkType: hard + "md5-file@npm:^5.0.0": version: 5.0.0 resolution: "md5-file@npm:5.0.0" @@ -24423,6 +24989,20 @@ fsevents@~2.1.2: languageName: node linkType: hard +"mdn-data@npm:2.0.28": + version: 2.0.28 + resolution: "mdn-data@npm:2.0.28" + checksum: f51d587a6ebe8e426c3376c74ea6df3e19ec8241ed8e2466c9c8a3904d5d04397199ea4f15b8d34d14524b5de926d8724ae85207984be47e165817c26e49e0aa + languageName: node + linkType: hard + +"mdn-data@npm:2.0.30": + version: 2.0.30 + resolution: "mdn-data@npm:2.0.30" + checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa + languageName: node + linkType: hard + "mdn-data@npm:2.0.4": version: 2.0.4 resolution: "mdn-data@npm:2.0.4" @@ -24626,6 +25206,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"microbuffer@npm:^1.0.0": + version: 1.0.0 + resolution: "microbuffer@npm:1.0.0" + checksum: 1e4e16f48f057581c1e50b1c52c7bdc25cc85532b7de493b749ecdc1464975103d0c0b42d3a4b61ecd6d332773857fbf46c8aa70c6f6d254a05376245f095f9a + languageName: node + linkType: hard + "microevent.ts@npm:~0.1.1": version: 0.1.1 resolution: "microevent.ts@npm:0.1.1" @@ -24950,6 +25537,21 @@ fsevents@~2.1.2: languageName: node linkType: hard +"minipass-fetch@npm:^2.0.3": + version: 2.1.2 + resolution: "minipass-fetch@npm:2.1.2" + dependencies: + encoding: ^0.1.13 + minipass: ^3.1.6 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: 3f216be79164e915fc91210cea1850e488793c740534985da017a4cbc7a5ff50506956d0f73bb0cb60e4fe91be08b6b61ef35101706d3ef5da2c8709b5f08f91 + languageName: node + linkType: hard + "minipass-flush@npm:^1.0.5": version: 1.0.5 resolution: "minipass-flush@npm:1.0.5" @@ -25014,6 +25616,15 @@ fsevents@~2.1.2: languageName: node linkType: hard +"minipass@npm:^3.1.6": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + "minipass@npm:^5.0.0": version: 5.0.0 resolution: "minipass@npm:5.0.0" @@ -25030,7 +25641,7 @@ fsevents@~2.1.2: languageName: node linkType: hard -"minizlib@npm:^2.0.0, minizlib@npm:^2.1.1": +"minizlib@npm:^2.0.0, minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" dependencies: @@ -25181,6 +25792,15 @@ fsevents@~2.1.2: languageName: node linkType: hard +"move-file@npm:~2.1.0": + version: 2.1.0 + resolution: "move-file@npm:2.1.0" + dependencies: + path-exists: ^4.0.0 + checksum: 2b92bbe047a302b593fcb2c0bf1131bb090ec80b3264569fc80d782c8ff829eecc13573943fa4d804c9747dec612ef2d1e84a5cfcf29cbc64a69ffcbb7ea09b3 + languageName: node + linkType: hard + "mri@npm:^1.2.0": version: 1.2.0 resolution: "mri@npm:1.2.0" @@ -25281,7 +25901,7 @@ fsevents@~2.1.2: languageName: node linkType: hard -"mz@npm:^2.5.0": +"mz@npm:^2.5.0, mz@npm:^2.7.0": version: 2.7.0 resolution: "mz@npm:2.7.0" dependencies: @@ -25308,6 +25928,15 @@ fsevents@~2.1.2: languageName: node linkType: hard +"nan@npm:^2.14.2": + version: 2.18.0 + resolution: "nan@npm:2.18.0" + dependencies: + node-gyp: latest + checksum: 4fe42f58456504eab3105c04a5cffb72066b5f22bd45decf33523cb17e7d6abc33cca2a19829407b9000539c5cb25f410312d4dc5b30220167a3594896ea6a0a + languageName: node + linkType: hard + "nanoid@npm:^3.3.1, nanoid@npm:^3.3.6": version: 3.3.6 resolution: "nanoid@npm:3.3.6" @@ -25368,7 +25997,7 @@ fsevents@~2.1.2: languageName: node linkType: hard -"negotiator@npm:0.6.3": +"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 @@ -25549,6 +26178,27 @@ fsevents@~2.1.2: languageName: node linkType: hard +"node-gyp@npm:^9.0.0": + version: 9.4.1 + resolution: "node-gyp@npm:9.4.1" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^7.1.4 + graceful-fs: ^4.2.6 + make-fetch-happen: ^10.0.3 + nopt: ^6.0.0 + npmlog: ^6.0.0 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^2.0.2 + bin: + node-gyp: bin/node-gyp.js + checksum: 8576c439e9e925ab50679f87b7dfa7aa6739e42822e2ad4e26c36341c0ba7163fdf5a946f0a67a476d2f24662bc40d6c97bd9e79ced4321506738e6b760a1577 + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 8.4.1 resolution: "node-gyp@npm:8.4.1" @@ -25692,6 +26342,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"noop2@npm:^2.0.0": + version: 2.0.0 + resolution: "noop2@npm:2.0.0" + checksum: 03232b88fb1d6e89bf7111f9129b39c73c4c67ef68fbbeb4e7adc0a41472df55bb4e653f320a18de93aa71096a5848ff41002ecad6c874241cc332ace56843ae + languageName: node + linkType: hard + "nopt@npm:2 || 3": version: 3.0.6 resolution: "nopt@npm:3.0.6" @@ -25714,6 +26371,17 @@ fsevents@~2.1.2: languageName: node linkType: hard +"nopt@npm:^6.0.0": + version: 6.0.0 + resolution: "nopt@npm:6.0.0" + dependencies: + abbrev: ^1.0.0 + bin: + nopt: bin/nopt.js + checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + languageName: node + linkType: hard + "normalize-package-data@npm:^2.0.0, normalize-package-data@npm:^2.3.0, normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.3.4, normalize-package-data@npm:^2.3.5, normalize-package-data@npm:^2.4.0, normalize-package-data@npm:^2.5.0": version: 2.5.0 resolution: "normalize-package-data@npm:2.5.0" @@ -25964,6 +26632,15 @@ fsevents@~2.1.2: languageName: node linkType: hard +"nth-check@npm:^2.0.1": + version: 2.1.1 + resolution: "nth-check@npm:2.1.1" + dependencies: + boolbase: ^1.0.0 + checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3 + languageName: node + linkType: hard + "null-loader@npm:^3.0.0": version: 3.0.0 resolution: "null-loader@npm:3.0.0" @@ -26815,6 +27492,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"pako@npm:^1.0.0": + version: 1.0.11 + resolution: "pako@npm:1.0.11" + checksum: 1be2bfa1f807608c7538afa15d6f25baa523c30ec870a3228a89579e474a4d992f4293859524e46d5d87fd30fa17c5edf34dbef0671251d9749820b488660b16 + languageName: node + linkType: hard + "pako@npm:~0.2.0": version: 0.2.9 resolution: "pako@npm:0.2.9" @@ -27041,6 +27725,16 @@ fsevents@~2.1.2: languageName: node linkType: hard +"parse5-htmlparser2-tree-adapter@npm:^7.0.0": + version: 7.0.0 + resolution: "parse5-htmlparser2-tree-adapter@npm:7.0.0" + dependencies: + domhandler: ^5.0.2 + parse5: ^7.0.0 + checksum: fc5d01e07733142a1baf81de5c2a9c41426c04b7ab29dd218acb80cd34a63177c90aff4a4aee66cf9f1d0aeecff1389adb7452ad6f8af0a5888e3e9ad6ef733d + languageName: node + linkType: hard + "parse5@npm:^5.0.0": version: 5.1.1 resolution: "parse5@npm:5.1.1" @@ -27439,6 +28133,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"pirates@npm:^4.0.1": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 + languageName: node + linkType: hard + "pirates@npm:^4.0.4, pirates@npm:^4.0.5": version: 4.0.5 resolution: "pirates@npm:4.0.5" @@ -28589,6 +29290,16 @@ fsevents@~2.1.2: languageName: node linkType: hard +"pump@npm:^1.0.0": + version: 1.0.3 + resolution: "pump@npm:1.0.3" + dependencies: + end-of-stream: ^1.1.0 + once: ^1.3.1 + checksum: 61fe58694f9900020a5cf5bc765d74396891c201afecf06659df2f5874fd832be4e19e2f95cc72d8b9eb98ace0a4db3cebf7343f9fc893a930577be29e3ad8b5 + languageName: node + linkType: hard + "pump@npm:^2.0.0": version: 2.0.1 resolution: "pump@npm:2.0.1" @@ -28767,6 +29478,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + languageName: node + linkType: hard + "quick-lru@npm:^1.0.0": version: 1.1.0 resolution: "quick-lru@npm:1.1.0" @@ -29372,7 +30090,7 @@ fsevents@~2.1.2: languageName: node linkType: hard -"readdirp@npm:^2.2.1": +"readdirp@npm:^2.0.0, readdirp@npm:^2.2.1": version: 2.2.1 resolution: "readdirp@npm:2.2.1" dependencies: @@ -30559,6 +31277,22 @@ fsevents@~2.1.2: languageName: node linkType: hard +"rollup-plugin-dts@npm:^6.1.0": + version: 6.1.0 + resolution: "rollup-plugin-dts@npm:6.1.0" + dependencies: + "@babel/code-frame": ^7.22.13 + magic-string: ^0.30.4 + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + dependenciesMeta: + "@babel/code-frame": + optional: true + checksum: a90f8e975e4515734c84fa17e0feaf8fdd9ed9368722c3908687875903a393cba4d07d9934bae9b91a0c1b6c63ac1ef0ccd7363d3e6e4dc10eabca3540be9f11 + languageName: node + linkType: hard + "rollup-plugin-peer-deps-external@npm:^2.2.4": version: 2.2.4 resolution: "rollup-plugin-peer-deps-external@npm:2.2.4" @@ -30642,6 +31376,15 @@ fsevents@~2.1.2: languageName: node linkType: hard +"run-parallel@npm:^1.1.4": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: ^1.2.2 + checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.1.9 resolution: "run-parallel@npm:1.1.9" @@ -30820,6 +31563,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"sax@npm:^1.2.4": + version: 1.3.0 + resolution: "sax@npm:1.3.0" + checksum: 238ab3a9ba8c8f8aaf1c5ea9120386391f6ee0af52f1a6a40bbb6df78241dd05d782f2359d614ac6aae08c4c4125208b456548a6cf68625aa4fe178486e63ecd + languageName: node + linkType: hard + "sax@npm:~1.2.4": version: 1.2.4 resolution: "sax@npm:1.2.4" @@ -31525,6 +32275,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + "snake-case@npm:^2.1.0": version: 2.1.0 resolution: "snake-case@npm:2.1.0" @@ -31705,6 +32462,17 @@ fsevents@~2.1.2: languageName: node linkType: hard +"socks-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "socks-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + languageName: node + linkType: hard + "socks@npm:^2.6.1": version: 2.6.1 resolution: "socks@npm:2.6.1" @@ -31715,6 +32483,16 @@ fsevents@~2.1.2: languageName: node linkType: hard +"socks@npm:^2.6.2": + version: 2.7.1 + resolution: "socks@npm:2.7.1" + dependencies: + ip: ^2.0.0 + smart-buffer: ^4.2.0 + checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + languageName: node + linkType: hard + "socks@npm:~2.3.2": version: 2.3.3 resolution: "socks@npm:2.3.3" @@ -31767,7 +32545,7 @@ fsevents@~2.1.2: languageName: node linkType: hard -"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2": +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": version: 1.0.2 resolution: "source-map-js@npm:1.0.2" checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c @@ -31946,6 +32724,15 @@ fsevents@~2.1.2: languageName: node linkType: hard +"split2@npm:^1.0.0": + version: 1.1.1 + resolution: "split2@npm:1.1.1" + dependencies: + through2: ~2.0.0 + checksum: 9120c9033f301307ee440c14579812431f279484f384ffab988a8f9723df4650a775b5e9803169041d5c09ed3f9182b207396657b0b5aedfcffd165a4531ac36 + languageName: node + linkType: hard + "split2@npm:^2.0.0": version: 2.2.0 resolution: "split2@npm:2.2.0" @@ -32027,6 +32814,15 @@ fsevents@~2.1.2: languageName: node linkType: hard +"ssri@npm:^9.0.0": + version: 9.0.1 + resolution: "ssri@npm:9.0.1" + dependencies: + minipass: ^3.1.1 + checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb + languageName: node + linkType: hard + "st@npm:^2.0.0": version: 2.0.0 resolution: "st@npm:2.0.0" @@ -32852,6 +33648,24 @@ fsevents@~2.1.2: languageName: node linkType: hard +"sucrase@npm:^3.32.0": + version: 3.34.0 + resolution: "sucrase@npm:3.34.0" + dependencies: + "@jridgewell/gen-mapping": ^0.3.2 + commander: ^4.0.0 + glob: 7.1.6 + lines-and-columns: ^1.1.6 + mz: ^2.7.0 + pirates: ^4.0.1 + ts-interface-checker: ^0.1.9 + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 61860063bdf6103413698e13247a3074d25843e91170825a9752e4af7668ffadd331b6e99e92fc32ee5b3c484ee134936f926fa9039d5711fafff29d017a2110 + languageName: node + linkType: hard + "sudo-block@npm:^1.1.0": version: 1.2.0 resolution: "sudo-block@npm:1.2.0" @@ -32939,6 +33753,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"svg-pathdata@npm:^6.0.3": + version: 6.0.3 + resolution: "svg-pathdata@npm:6.0.3" + checksum: f0e55be50c654be5d259d70945ed7e5354bf78e51c6039b4045d9f7c49d703a0c33dda36751815aec2824d046c417c35226e7491246ffff3e9164735ea428446 + languageName: node + linkType: hard + "svg-tags@npm:^1.0.0": version: 1.0.0 resolution: "svg-tags@npm:1.0.0" @@ -32946,6 +33767,36 @@ fsevents@~2.1.2: languageName: node linkType: hard +"svg2ttf@npm:~6.0.3": + version: 6.0.3 + resolution: "svg2ttf@npm:6.0.3" + dependencies: + "@xmldom/xmldom": ^0.7.2 + argparse: ^2.0.1 + cubic2quad: ^1.2.1 + lodash: ^4.17.10 + microbuffer: ^1.0.0 + svgpath: ^2.1.5 + bin: + svg2ttf: svg2ttf.js + checksum: d6672cbd19d780817c752299115d2f31337b8bee8262a354e46c07d42572b3cdeba854ca4a50351081f5ff2788000a619ea35eba8420c01a16e579d505d35b59 + languageName: node + linkType: hard + +"svgicons2svgfont@npm:~12.0.0": + version: 12.0.0 + resolution: "svgicons2svgfont@npm:12.0.0" + dependencies: + commander: ^9.3.0 + glob: ^8.0.3 + sax: ^1.2.4 + svg-pathdata: ^6.0.3 + bin: + svgicons2svgfont: bin/svgicons2svgfont.js + checksum: 55a37f08e71785b2734e58f9a73de36c935a06109b3b99d9f3760840bd1c47a7bb9c3d8c4e46971971d6b41d421e0c7333bef442d496ae75e9032e6003aed9f4 + languageName: node + linkType: hard + "svgo@npm:^1.0.0": version: 1.3.2 resolution: "svgo@npm:1.3.2" @@ -32969,6 +33820,63 @@ fsevents@~2.1.2: languageName: node linkType: hard +"svgo@npm:~3.0.0": + version: 3.0.3 + resolution: "svgo@npm:3.0.3" + dependencies: + "@trysound/sax": 0.2.0 + commander: ^7.2.0 + css-select: ^5.1.0 + css-tree: ^2.2.1 + csso: 5.0.5 + picocolors: ^1.0.0 + bin: + svgo: ./bin/svgo + checksum: 0e34c70b9ff429e6c6773a0607063c2893fa655fffe3d0c2ea236764e54f77c6eb0cfc510a05ae11f589e343b59aef5ad210022aa49cd81eb6ad16446e2e0388 + languageName: node + linkType: hard + +"svgpath@npm:^2.1.5": + version: 2.6.0 + resolution: "svgpath@npm:2.6.0" + checksum: 57bd2512b41a03a729c2880a6c771bb8ad449a9cea47c1fc43ac5cec70bf81a607591bb916ba16c21c9d87122537bcdf2ac4082dae13559c84c964b8fe868204 + languageName: node + linkType: hard + +"svgtofont@npm:^4.0.0": + version: 4.0.0 + resolution: "svgtofont@npm:4.0.0" + dependencies: + "@types/cheerio": ~0.22.31 + "@types/ejs": ~3.1.0 + "@types/fs-extra": ^11.0.1 + "@types/svg2ttf": ~5.0.1 + "@types/svgicons2svgfont": ~10.0.1 + "@types/ttf2eot": ~2.0.0 + "@types/ttf2woff": ~2.0.2 + "@types/ttf2woff2": ~2.0.0 + auto-config-loader: ^1.7.4 + cheerio: ~1.0.0-rc.12 + colors-cli: ~1.0.28 + copy-template-dir: ~1.4.0 + del: ~6.1.0 + ejs: ~3.1.6 + fs-extra: ~11.1.0 + image2uri: ~1.0.5 + move-file: ~2.1.0 + svg2ttf: ~6.0.3 + svgicons2svgfont: ~12.0.0 + svgo: ~3.0.0 + ttf2eot: ~3.1.0 + ttf2woff: ~3.0.0 + ttf2woff2: ~5.0.0 + yargs: ~17.7.1 + bin: + svgtofont: lib/cli.js + checksum: 5b010d720fe295c5e80500a642198c35ddc551e626cc412db7edf1c06dd51da9f8522221fb51535b09ac549d8eeeb50e1aee132811c518c9cb058362b88a3fc5 + languageName: node + linkType: hard + "swap-case@npm:^1.1.0": version: 1.1.2 resolution: "swap-case@npm:1.1.2" @@ -33124,6 +34032,20 @@ fsevents@~2.1.2: languageName: node linkType: hard +"tar@npm:^6.1.11": + version: 6.2.0 + resolution: "tar@npm:6.2.0" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c + languageName: node + linkType: hard + "tar@npm:^6.1.13": version: 6.1.15 resolution: "tar@npm:6.1.15" @@ -33314,7 +34236,7 @@ fsevents@~2.1.2: languageName: node linkType: hard -"through2@npm:^2.0.0, through2@npm:^2.0.1, through2@npm:^2.0.2, through2@npm:^2.0.3": +"through2@npm:^2.0.0, through2@npm:^2.0.1, through2@npm:^2.0.2, through2@npm:^2.0.3, through2@npm:~2.0.0": version: 2.0.5 resolution: "through2@npm:2.0.5" dependencies: @@ -33520,6 +34442,15 @@ fsevents@~2.1.2: languageName: node linkType: hard +"toml-eslint-parser@npm:^0.7.0": + version: 0.7.0 + resolution: "toml-eslint-parser@npm:0.7.0" + dependencies: + eslint-visitor-keys: ^3.0.0 + checksum: eb9b5b2b814ae633cedb2abb9b68a44188cf02a3dc0b5ea774b592f4e9b49fa1a7af28d107fb5c48f385d3e408dbd9521c59678c38556725a08c1b6f4e489aee + languageName: node + linkType: hard + "tough-cookie@npm:^3.0.1": version: 3.0.1 resolution: "tough-cookie@npm:3.0.1" @@ -33648,6 +34579,13 @@ fsevents@~2.1.2: languageName: node linkType: hard +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 20c29189c2dd6067a8775e07823ddf8d59a33e2ffc47a1bd59a5cb28bb0121a2969a816d5e77eda2ed85b18171aa5d1c4005a6b88ae8499ec7cc49f78571cb5e + languageName: node + linkType: hard + "ts-pnp@npm:^1.1.6": version: 1.2.0 resolution: "ts-pnp@npm:1.2.0" @@ -33752,6 +34690,43 @@ fsevents@~2.1.2: languageName: node linkType: hard +"ttf2eot@npm:~3.1.0": + version: 3.1.0 + resolution: "ttf2eot@npm:3.1.0" + dependencies: + argparse: ^2.0.1 + bin: + ttf2eot: ttf2eot.js + checksum: d56bd039a0976bd6d3cf2b579bf36fb899c3ef0e2834373346630c2928fa91fcec75b9c8ebd73b070bdc314ed74d44fa74f78789cfe35da1709b3738c2983a50 + languageName: node + linkType: hard + +"ttf2woff2@npm:~5.0.0": + version: 5.0.0 + resolution: "ttf2woff2@npm:5.0.0" + dependencies: + bindings: ^1.5.0 + bufferstreams: ^3.0.0 + nan: ^2.14.2 + node-gyp: ^9.0.0 + bin: + ttf2woff2: bin/ttf2woff2.js + checksum: 2d410126e23864b47be146fb91abc07a3d01e0bb7e7b7065de3f6afcc775cad4b5d6f791261c2026bc5c6c61b2543a6b11e5acf4af9204025a35bb59909cbf43 + languageName: node + linkType: hard + +"ttf2woff@npm:~3.0.0": + version: 3.0.0 + resolution: "ttf2woff@npm:3.0.0" + dependencies: + argparse: ^2.0.1 + pako: ^1.0.0 + bin: + ttf2woff: ttf2woff.js + checksum: 8613005969d20ae313ad2815229c660d87f73992339eafe24813c28228dc324284452a6c0f81301f19efa03777a5686c3300e8d1dee14181518261c86cbfa289 + languageName: node + linkType: hard + "tty-browserify@npm:0.0.0": version: 0.0.0 resolution: "tty-browserify@npm:0.0.0" @@ -34232,6 +35207,15 @@ typescript@^3.9.3: languageName: node linkType: hard +"unique-filename@npm:^2.0.0": + version: 2.0.1 + resolution: "unique-filename@npm:2.0.1" + dependencies: + unique-slug: ^3.0.0 + checksum: 807acf3381aff319086b64dc7125a9a37c09c44af7620bd4f7f3247fcd5565660ac12d8b80534dcbfd067e6fe88a67e621386dd796a8af828d1337a8420a255f + languageName: node + linkType: hard + "unique-slug@npm:^2.0.0": version: 2.0.2 resolution: "unique-slug@npm:2.0.2" @@ -34241,6 +35225,15 @@ typescript@^3.9.3: languageName: node linkType: hard +"unique-slug@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-slug@npm:3.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 49f8d915ba7f0101801b922062ee46b7953256c93ceca74303bd8e6413ae10aa7e8216556b54dc5382895e8221d04f1efaf75f945c2e4a515b4139f77aa6640c + languageName: node + linkType: hard + "unique-string@npm:^1.0.0": version: 1.0.0 resolution: "unique-string@npm:1.0.0" @@ -36192,6 +37185,17 @@ typescript@^3.9.3: languageName: node linkType: hard +"yaml-eslint-parser@npm:^1.2.2": + version: 1.2.2 + resolution: "yaml-eslint-parser@npm:1.2.2" + dependencies: + eslint-visitor-keys: ^3.0.0 + lodash: ^4.17.21 + yaml: ^2.0.0 + checksum: 06e8b8e4f5624731e05618a11e42e4727f99ae75c7c9b1f9986ba020d194580d11fc660674320720e45c27e75bb0044954d95fa1a6b7d5f6f9250af1e43dbeec + languageName: node + linkType: hard + "yaml-loader@npm:^0.6.0": version: 0.6.0 resolution: "yaml-loader@npm:0.6.0" @@ -36218,6 +37222,13 @@ typescript@^3.9.3: languageName: node linkType: hard +"yaml@npm:^2.0.0": + version: 2.3.4 + resolution: "yaml@npm:2.3.4" + checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8 + languageName: node + linkType: hard + "yargs-parser@npm:^10.0.0": version: 10.1.0 resolution: "yargs-parser@npm:10.1.0" @@ -36364,6 +37375,21 @@ typescript@^3.9.3: languageName: node linkType: hard +"yargs@npm:~17.7.1": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: ^8.0.1 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.3 + y18n: ^5.0.5 + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a + languageName: node + linkType: hard + "yarn@npm:^1.19.1": version: 1.19.1 resolution: "yarn@npm:1.19.1"