From 6853b3e29c34fbfacfac29d3c4b690bdad5f01e9 Mon Sep 17 00:00:00 2001 From: Vjacheslav Trushkin Date: Wed, 11 Jan 2023 17:42:21 +0200 Subject: [PATCH] feat: plugin for Tailwind CSS --- README.md | 9 + plugins/tailwind/README.md | 98 ++ plugins/tailwind/api-extractor.json | 39 + plugins/tailwind/build.js | 98 ++ plugins/tailwind/dist/iconify.js | 422 +++++++++ plugins/tailwind/dist/plugin.d.ts | 71 ++ plugins/tailwind/dist/plugin.js | 439 +++++++++ plugins/tailwind/jest.config.js | 7 + plugins/tailwind/lib/iconify.d.ts | 5 + plugins/tailwind/lib/iconify.js | 118 +++ plugins/tailwind/lib/options.d.ts | 3 + plugins/tailwind/lib/options.js | 1 + plugins/tailwind/lib/plugin.d.ts | 13 + plugins/tailwind/lib/plugin.js | 15 + plugins/tailwind/license.txt | 21 + plugins/tailwind/package.json | 49 + plugins/tailwind/rollup.config.mjs | 44 + plugins/tailwind/src/iconify.ts | 141 +++ plugins/tailwind/src/options.ts | 5 + plugins/tailwind/src/plugin.ts | 23 + plugins/tailwind/tests/get-css-test.ts | 68 ++ plugins/tailwind/tests/tsconfig.json | 8 + plugins/tailwind/tsconfig-base.json | 16 + plugins/tailwind/tsconfig.json | 9 + plugins/tailwind/tsconfig.tsbuildinfo | 1 + pnpm-lock.yaml | 1196 ++++++++++++++++++------ pnpm-workspace.yaml | 1 + 27 files changed, 2612 insertions(+), 308 deletions(-) create mode 100644 plugins/tailwind/README.md create mode 100644 plugins/tailwind/api-extractor.json create mode 100644 plugins/tailwind/build.js create mode 100644 plugins/tailwind/dist/iconify.js create mode 100644 plugins/tailwind/dist/plugin.d.ts create mode 100644 plugins/tailwind/dist/plugin.js create mode 100644 plugins/tailwind/jest.config.js create mode 100644 plugins/tailwind/lib/iconify.d.ts create mode 100644 plugins/tailwind/lib/iconify.js create mode 100644 plugins/tailwind/lib/options.d.ts create mode 100644 plugins/tailwind/lib/options.js create mode 100644 plugins/tailwind/lib/plugin.d.ts create mode 100644 plugins/tailwind/lib/plugin.js create mode 100644 plugins/tailwind/license.txt create mode 100644 plugins/tailwind/package.json create mode 100644 plugins/tailwind/rollup.config.mjs create mode 100644 plugins/tailwind/src/iconify.ts create mode 100644 plugins/tailwind/src/options.ts create mode 100644 plugins/tailwind/src/plugin.ts create mode 100644 plugins/tailwind/tests/get-css-test.ts create mode 100644 plugins/tailwind/tests/tsconfig.json create mode 100644 plugins/tailwind/tsconfig-base.json create mode 100644 plugins/tailwind/tsconfig.json create mode 100644 plugins/tailwind/tsconfig.tsbuildinfo diff --git a/README.md b/README.md index 705f367..ee328e5 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ What is included in this repository? - Directory `packages` contains main reusable packages: types, utilities, reusable functions used by various components. - Directory `iconify-icon` contains `iconify-icon` web component that renders icons. It also contains wrappers for various frameworks that cannot handle web components. - Directory `components` contains older version of icon components that are native to various frameworks, which do not use web component. +- Directory `plugins` contains plugins for various frameworks, which generate icons. Other repositories you might want to look at: @@ -158,6 +159,14 @@ Directory `components-demo` contains demo packages that show usage of icon compo - [SvelteKit demo](./components-demo/sveltekit-demo/) - demo for SvelteKit, using Svelte component on the server and in the browser. Run `npm run dev` to start the demo. - [Ember demo](./components-demo/ember-demo/) - demo for Ember component. Run `npm run build` to build demo and `npm run start` to start it. +### Plugins + +Directory `plugins` contains plugins. + +| Package | Usage | +| ------------------------------------------ | ------------ | +| [Tailwind CSS plugin](./plugins/tailwind/) | Tailwind CSS | + ## Installation, debugging and contributing See [CONTRIBUTING.md](./CONTRIBUTING.md). diff --git a/plugins/tailwind/README.md b/plugins/tailwind/README.md new file mode 100644 index 0000000..eb96a80 --- /dev/null +++ b/plugins/tailwind/README.md @@ -0,0 +1,98 @@ +# Iconify for Tailwind CSS + +This plugin creates CSS for over 100k open source icons. + +[Browse icons at Iconify](https://icon-sets.iconify.design/) to see all icons. + +## Usage + +1. Install packages icon sets. +2. In `tailwind.config.js` import plugin and specify list of icons you want to load. + +## HTML + +To use icon in HTML, it is as easy as adding 2 class names: + +- Class name for icon set. +- Class name for icon. + +```html + +``` + +Why 2 class names? It reduces duplication and makes it easy to change all icons from one icon set. + +You can change that with options: you can change class names format, you can disable common selector. See [options for function used by plugin](https://docs.iconify.design/tools/utils/get-icons-css.html). + +### Color, size, alignment + +To change icon size or color, change font size or text color, like you would with any text. + +Icon color cannot be changed for icons with hardcoded palette, such as most emoji sets or flag icons. + +To align icon below baseline, add negative vertical alignment, like this (you can also use Tailwind class for that): + +```html + +``` + +## Installing icon sets + +Plugin does not include icon sets. You need to install icon sets separately. + +To install all 100k+ icons, install `@iconify/json` as a dev dependency. + +If you do not want to install big package, install `@iconify-json/` packages for icon sets that you use. + +See [Iconify icon sets](https://icon-sets.iconify.design/) for list of available icon sets and icons. + +See [Iconify documentation](https://docs.iconify.design/icons/json.html) for list of packages. + +## Tailwind config + +Then you need to add and configure plugin. + +Add this to `tailwind.config.js`: + +```js +const iconifyPlugin = require('@iconify/tailwind'); +``` + +Then in plugins section add `iconifyPlugin` with list of icons you want to load. + +Example: + +```js +module.exports = { + content: ['./src/*.html'], + theme: { + extend: {}, + }, + plugins: [ + // Iconify plugin with list of icons you need + iconifyPlugin(['mdi:home', 'mdi-light:account']), + ], + presets: [], +}; +``` + +### Icon names + +Unfortunately Tailwind CSS cannot dynamically find all icon names. You need to specify list of icons you want to use. + +### Options + +Plugin accepts options as a second parameter. You can use it to change selectors. + +See [documentation for function used by plugin](https://docs.iconify.design/tools/utils/get-icons-css.html) for list of options. + +## License + +This package is licensed under MIT license. + +`SPDX-License-Identifier: MIT` + +This license does not apply to icons. Icons are released under different licenses, see each icon set for details. +Icons available by default are all licensed under some kind of open-source or free license. + +© 2023 Vjacheslav Trushkin / Iconify OÜ diff --git a/plugins/tailwind/api-extractor.json b/plugins/tailwind/api-extractor.json new file mode 100644 index 0000000..3e59c31 --- /dev/null +++ b/plugins/tailwind/api-extractor.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "mainEntryPointFilePath": "lib/plugin.d.ts", + "bundledPackages": ["@iconify/utils"], + "compiler": {}, + "apiReport": { + "enabled": false + }, + "docModel": { + "enabled": false + }, + "dtsRollup": { + "enabled": true, + "untrimmedFilePath": "/dist/plugin.d.ts" + }, + "tsdocMetadata": { + "enabled": false + }, + "messages": { + "compilerMessageReporting": { + "default": { + "logLevel": "warning" + } + }, + "extractorMessageReporting": { + "default": { + "logLevel": "warning" + }, + "ae-missing-release-tag": { + "logLevel": "none" + } + }, + "tsdocMessageReporting": { + "default": { + "logLevel": "warning" + } + } + } +} diff --git a/plugins/tailwind/build.js b/plugins/tailwind/build.js new file mode 100644 index 0000000..20707e3 --- /dev/null +++ b/plugins/tailwind/build.js @@ -0,0 +1,98 @@ +/* eslint-disable */ +const fs = require('fs'); +const child_process = require('child_process'); + +// List of commands to run +const commands = []; + +// Parse command line +const compile = { + lib: true, + dist: true, + api: true, +}; +process.argv.slice(2).forEach((cmd) => { + if (cmd.slice(0, 2) !== '--') { + return; + } + const parts = cmd.slice(2).split('-'); + if (parts.length === 2) { + // Parse 2 part commands like --with-lib + const key = parts.pop(); + if (compile[key] === void 0) { + return; + } + switch (parts.shift()) { + case 'with': + // enable module + compile[key] = true; + break; + + case 'without': + // disable module + compile[key] = false; + break; + + case 'only': + // disable other modules + Object.keys(compile).forEach((key2) => { + compile[key2] = key2 === key; + }); + break; + } + } +}); + +// Check if required modules in same monorepo are available +const fileExists = (file) => { + try { + fs.statSync(file); + } catch (e) { + return false; + } + return true; +}; + +if (compile.dist && !fileExists('./lib/index.js')) { + compile.lib = true; +} + +if (compile.api && !fileExists('./lib/index.d.ts')) { + compile.lib = true; +} + +// Compile packages +Object.keys(compile).forEach((key) => { + if (compile[key]) { + commands.push({ + cmd: 'npm', + args: ['run', 'build:' + key], + }); + } +}); + +/** + * Run next command + */ +const next = () => { + const item = commands.shift(); + if (item === void 0) { + process.exit(0); + } + + if (item.cwd === void 0) { + item.cwd = __dirname; + } + + const result = child_process.spawnSync(item.cmd, item.args, { + cwd: item.cwd, + stdio: 'inherit', + }); + + if (result.status === 0) { + process.nextTick(next); + } else { + process.exit(result.status); + } +}; +next(); diff --git a/plugins/tailwind/dist/iconify.js b/plugins/tailwind/dist/iconify.js new file mode 100644 index 0000000..b17e316 --- /dev/null +++ b/plugins/tailwind/dist/iconify.js @@ -0,0 +1,422 @@ +/** +* (c) Iconify +* +* For the full copyright and license information, please view the license.txt +* files at https://github.com/iconify/iconify +* +* Licensed under MIT. +* +* @license MIT +* @version 0.0.1-dev +*/ +'use strict'; + +var fs = require('fs'); + +const defaultIconDimensions = Object.freeze( + { + left: 0, + top: 0, + width: 16, + height: 16 + } +); +const defaultIconTransformations = Object.freeze({ + rotate: 0, + vFlip: false, + hFlip: false +}); +const defaultIconProps = Object.freeze({ + ...defaultIconDimensions, + ...defaultIconTransformations +}); +const defaultExtendedIconProps = Object.freeze({ + ...defaultIconProps, + body: "", + hidden: false +}); + +function mergeIconTransformations(obj1, obj2) { + const result = {}; + if (!obj1.hFlip !== !obj2.hFlip) { + result.hFlip = true; + } + if (!obj1.vFlip !== !obj2.vFlip) { + result.vFlip = true; + } + const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4; + if (rotate) { + result.rotate = rotate; + } + return result; +} + +function mergeIconData(parent, child) { + const result = mergeIconTransformations(parent, child); + for (const key in defaultExtendedIconProps) { + if (key in defaultIconTransformations) { + if (key in parent && !(key in result)) { + result[key] = defaultIconTransformations[key]; + } + } else if (key in child) { + result[key] = child[key]; + } else if (key in parent) { + result[key] = parent[key]; + } + } + return result; +} + +function getIconsTree(data, names) { + const icons = data.icons; + const aliases = data.aliases || /* @__PURE__ */ Object.create(null); + const resolved = /* @__PURE__ */ Object.create(null); + function resolve(name) { + if (icons[name]) { + return resolved[name] = []; + } + if (!(name in resolved)) { + resolved[name] = null; + const parent = aliases[name] && aliases[name].parent; + const value = parent && resolve(parent); + if (value) { + resolved[name] = [parent].concat(value); + } + } + return resolved[name]; + } + (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve); + return resolved; +} + +function internalGetIconData(data, name, tree) { + const icons = data.icons; + const aliases = data.aliases || /* @__PURE__ */ Object.create(null); + let currentProps = {}; + function parse(name2) { + currentProps = mergeIconData( + icons[name2] || aliases[name2], + currentProps + ); + } + parse(name); + tree.forEach(parse); + return mergeIconData(data, currentProps); +} +function getIconData(data, name) { + if (data.icons[name]) { + return internalGetIconData(data, name, []); + } + const tree = getIconsTree(data, [name])[name]; + return tree ? internalGetIconData(data, name, tree) : null; +} + +function iconToHTML(body, attributes) { + let renderAttribsHTML = body.indexOf("xlink:") === -1 ? "" : ' xmlns:xlink="http://www.w3.org/1999/xlink"'; + for (const attr in attributes) { + renderAttribsHTML += " " + attr + '="' + attributes[attr] + '"'; + } + return '" + body + ""; +} + +const unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g; +const unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g; +function calculateSize(size, ratio, precision) { + if (ratio === 1) { + return size; + } + precision = precision || 100; + if (typeof size === "number") { + return Math.ceil(size * ratio * precision) / precision; + } + if (typeof size !== "string") { + return size; + } + const oldParts = size.split(unitsSplit); + if (oldParts === null || !oldParts.length) { + return size; + } + const newParts = []; + let code = oldParts.shift(); + let isNumber = unitsTest.test(code); + while (true) { + if (isNumber) { + const num = parseFloat(code); + if (isNaN(num)) { + newParts.push(code); + } else { + newParts.push(Math.ceil(num * ratio * precision) / precision); + } + } else { + newParts.push(code); + } + code = oldParts.shift(); + if (code === void 0) { + return newParts.join(""); + } + isNumber = !isNumber; + } +} + +function encodeSVGforURL(svg) { + return svg.replace(/"/g, "'").replace(/%/g, "%25").replace(/#/g, "%23").replace(//g, "%3E").replace(/\s+/g, " "); +} +function svgToURL(svg) { + return 'url("data:image/svg+xml,' + encodeSVGforURL(svg) + '")'; +} + +function getCommonCSSRules(options) { + const result = { + display: "inline-block", + width: "1em", + height: "1em" + }; + const varName = options.varName; + if (options.pseudoSelector) { + result["content"] = "''"; + } + switch (options.mode) { + case "background": + result["background"] = "no-repeat center / 100%"; + if (varName) { + result["background-image"] = "var(--" + varName + ")"; + } + break; + case "mask": + result["background-color"] = "currentColor"; + result["mask"] = result["-webkit-mask"] = "no-repeat center / 100%"; + if (varName) { + result["mask-image"] = result["-webkit-mask-image"] = "var(--" + varName + ")"; + } + break; + } + return result; +} +function generateItemCSSRules(icon, options) { + const result = {}; + const varName = options.varName; + if (!options.forceSquare && icon.width !== icon.height) { + result["width"] = calculateSize("1em", icon.width / icon.height); + } + const svg = iconToHTML( + icon.body.replace(/currentColor/g, options.color || "black"), + { + viewBox: `${icon.left} ${icon.top} ${icon.width} ${icon.height}`, + width: icon.width.toString(), + height: icon.height.toString() + } + ); + const url = svgToURL(svg); + if (varName) { + result["--" + varName] = url; + } else { + switch (options.mode) { + case "background": + result["background-image"] = url; + break; + case "mask": + result["mask-image"] = result["-webkit-mask-image"] = url; + break; + } + } + return result; +} + +const commonSelector = ".icon--{prefix}"; +const iconSelector = ".icon--{prefix}--{name}"; +const defaultSelectors = { + commonSelector, + iconSelector, + overrideSelector: commonSelector + iconSelector +}; +function getIconsCSSData(iconSet, names, options = {}) { + const css = []; + const errors = []; + const palette = options.color ? true : iconSet.info?.palette; + let mode = options.mode || typeof palette === "boolean" && (palette ? "background" : "mask"); + if (!mode) { + mode = "mask"; + errors.push( + "/* cannot detect icon mode: not set in options and icon set is missing info, rendering as " + mode + " */" + ); + } + let varName = options.varName; + if (varName === void 0 && mode === "mask") { + varName = "svg"; + } + const newOptions = { + ...options, + mode, + varName + }; + const { commonSelector: commonSelector2, iconSelector: iconSelector2, overrideSelector } = newOptions.iconSelector ? newOptions : defaultSelectors; + const iconSelectorWithPrefix = iconSelector2.replace( + /{prefix}/g, + iconSet.prefix + ); + const commonRules = getCommonCSSRules(newOptions); + const hasCommonRules = commonSelector2 && commonSelector2 !== iconSelector2; + const commonSelectors = /* @__PURE__ */ new Set(); + if (hasCommonRules) { + css.push({ + selector: commonSelector2.replace(/{prefix}/g, iconSet.prefix), + rules: commonRules + }); + } + for (let i = 0; i < names.length; i++) { + const name = names[i]; + const iconData = getIconData(iconSet, name); + if (!iconData) { + errors.push("/* Could not find icon: " + name + " */"); + continue; + } + const rules = generateItemCSSRules( + { ...defaultIconProps, ...iconData }, + newOptions + ); + let requiresOverride = false; + if (hasCommonRules && overrideSelector) { + for (const key in rules) { + if (key in commonRules) { + requiresOverride = true; + } + } + } + const selector = (requiresOverride && overrideSelector ? overrideSelector.replace(/{prefix}/g, iconSet.prefix) : iconSelectorWithPrefix).replace(/{name}/g, name); + css.push({ + selector, + rules + }); + if (!hasCommonRules) { + commonSelectors.add(selector); + } + } + const result = { + css, + errors + }; + if (!hasCommonRules && commonSelectors.size) { + const selector = Array.from(commonSelectors).join( + newOptions.format === "compressed" ? "," : ", " + ); + result.common = { + selector, + rules: commonRules + }; + } + return result; +} + +const matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/; + +const missingIconsListError = 'TailwindCSS cannot dynamically find all used icons. Need to pass list of used icons to Iconify plugin.'; +/** + * Locate icon set + */ +function locateIconSet(prefix) { + try { + return require.resolve(`@iconify-json/${prefix}/icons.json`); + } + catch { } + try { + return require.resolve(`@iconify/json/json/${prefix}.json`); + } + catch { } +} +/** + * Load icon set + */ +function loadIconSet(prefix) { + const filename = locateIconSet(prefix); + if (filename) { + try { + return JSON.parse(fs.readFileSync(filename, 'utf8')); + } + catch { } + } +} +/** + * Get icon names from list + */ +function getIconNames(icons) { + const prefixes = Object.create(null); + // Add entry + const add = (prefix, name) => { + if (typeof prefix === 'string' && + prefix.match(matchIconName) && + typeof name === 'string' && + name.match(matchIconName)) { + (prefixes[prefix] || (prefixes[prefix] = new Set())).add(name); + } + }; + // Comma or space separated string + let iconNames; + if (typeof icons === 'string') { + iconNames = icons.split(/[\s,]/); + } + else if (icons instanceof Array) { + iconNames = []; + // Split each array entry + icons.forEach((item) => { + item.split(/[\s,]/).forEach((name) => iconNames.push(name)); + }); + } + else { + throw new Error(missingIconsListError); + } + // Parse array + if (iconNames?.length) { + iconNames.forEach((icon) => { + // Attempt prefix:name split + const nameParts = icon.split(':'); + if (nameParts.length === 2) { + add(nameParts[0], nameParts[1]); + return; + } + // Attempt icon class: .icon--{prefix}--{name} + // with or without dot + const classParts = icon.split('--'); + if (classParts[0].match(/^\.?icon$/)) { + if (classParts.length === 3) { + add(classParts[1], classParts[2]); + return; + } + if (classParts.length === 2) { + // Partial match + return; + } + } + // Throw error + throw new Error(`Cannot resolve icon: "${icon}"`); + }); + } + else { + throw new Error(missingIconsListError); + } + return prefixes; +} +/** + * Get CSS rules for icon + */ +function getCSSRules(icons, options = {}) { + const rules = Object.create(null); + // Get all icons + const prefixes = getIconNames(icons); + // Parse all icon sets + for (const prefix in prefixes) { + const iconSet = loadIconSet(prefix); + const generated = getIconsCSSData(iconSet, Array.from(prefixes[prefix]), options); + const result = generated.common + ? [generated.common, ...generated.css] + : generated.css; + result.forEach((item) => { + const selector = item.selector instanceof Array + ? item.selector.join(', ') + : item.selector; + rules[selector] = item.rules; + }); + } + return rules; +} + +exports.getCSSRules = getCSSRules; diff --git a/plugins/tailwind/dist/plugin.d.ts b/plugins/tailwind/dist/plugin.d.ts new file mode 100644 index 0000000..06b8efb --- /dev/null +++ b/plugins/tailwind/dist/plugin.d.ts @@ -0,0 +1,71 @@ +import { Config } from 'tailwindcss/types/config'; +import { PluginCreator } from 'tailwindcss/types/config'; + +/** + * Formatting modes. Same as in SASS + */ +declare type CSSFormatMode = 'expanded' | 'compact' | 'compressed'; + +/** + * Formatting options + */ +declare interface IconCSSFormatOptions { + format?: CSSFormatMode; +} + +/** + * Selector for icon + */ +declare interface IconCSSIconSelectorOptions { + pseudoSelector?: boolean; + iconSelector?: string; +} + +/** + * Options for generating multiple icons + */ +declare interface IconCSSIconSetOptions extends IconCSSSharedOptions, IconCSSSelectorOptions, IconCSSModeOptions, IconCSSFormatOptions { +} + +/** + * Icon mode + */ +declare type IconCSSMode = 'mask' | 'background'; + +/** + * Mode + */ +declare interface IconCSSModeOptions { + mode?: IconCSSMode; +} + +/** + * Selector for icon when generating data from icon set + */ +declare interface IconCSSSelectorOptions extends IconCSSIconSelectorOptions { + commonSelector?: string; + overrideSelector?: string; +} + +/** + * Options common for both multiple icons and single icon + */ +declare interface IconCSSSharedOptions { + varName?: string | null; + forceSquare?: boolean; + color?: string; +} + +/** + * Iconify plugin + */ +declare function iconifyPlugin(icons: string[] | string, options?: IconifyPluginOptions): { + handler: PluginCreator; + config?: Partial; +}; +export default iconifyPlugin; + +export declare interface IconifyPluginOptions extends IconCSSIconSetOptions { +} + +export { } diff --git a/plugins/tailwind/dist/plugin.js b/plugins/tailwind/dist/plugin.js new file mode 100644 index 0000000..7a6cef9 --- /dev/null +++ b/plugins/tailwind/dist/plugin.js @@ -0,0 +1,439 @@ +/** +* (c) Iconify for Tailwind CSS +* +* For the full copyright and license information, please view the license.txt +* files at https://github.com/iconify/iconify +* +* Licensed under MIT. +* +* @license MIT +* @version 0.0.1 +*/ +'use strict'; + +var plugin = require('tailwindcss/plugin'); +var fs = require('fs'); + +const defaultIconDimensions = Object.freeze( + { + left: 0, + top: 0, + width: 16, + height: 16 + } +); +const defaultIconTransformations = Object.freeze({ + rotate: 0, + vFlip: false, + hFlip: false +}); +const defaultIconProps = Object.freeze({ + ...defaultIconDimensions, + ...defaultIconTransformations +}); +const defaultExtendedIconProps = Object.freeze({ + ...defaultIconProps, + body: "", + hidden: false +}); + +function mergeIconTransformations(obj1, obj2) { + const result = {}; + if (!obj1.hFlip !== !obj2.hFlip) { + result.hFlip = true; + } + if (!obj1.vFlip !== !obj2.vFlip) { + result.vFlip = true; + } + const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4; + if (rotate) { + result.rotate = rotate; + } + return result; +} + +function mergeIconData(parent, child) { + const result = mergeIconTransformations(parent, child); + for (const key in defaultExtendedIconProps) { + if (key in defaultIconTransformations) { + if (key in parent && !(key in result)) { + result[key] = defaultIconTransformations[key]; + } + } else if (key in child) { + result[key] = child[key]; + } else if (key in parent) { + result[key] = parent[key]; + } + } + return result; +} + +function getIconsTree(data, names) { + const icons = data.icons; + const aliases = data.aliases || /* @__PURE__ */ Object.create(null); + const resolved = /* @__PURE__ */ Object.create(null); + function resolve(name) { + if (icons[name]) { + return resolved[name] = []; + } + if (!(name in resolved)) { + resolved[name] = null; + const parent = aliases[name] && aliases[name].parent; + const value = parent && resolve(parent); + if (value) { + resolved[name] = [parent].concat(value); + } + } + return resolved[name]; + } + (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve); + return resolved; +} + +function internalGetIconData(data, name, tree) { + const icons = data.icons; + const aliases = data.aliases || /* @__PURE__ */ Object.create(null); + let currentProps = {}; + function parse(name2) { + currentProps = mergeIconData( + icons[name2] || aliases[name2], + currentProps + ); + } + parse(name); + tree.forEach(parse); + return mergeIconData(data, currentProps); +} +function getIconData(data, name) { + if (data.icons[name]) { + return internalGetIconData(data, name, []); + } + const tree = getIconsTree(data, [name])[name]; + return tree ? internalGetIconData(data, name, tree) : null; +} + +function iconToHTML(body, attributes) { + let renderAttribsHTML = body.indexOf("xlink:") === -1 ? "" : ' xmlns:xlink="http://www.w3.org/1999/xlink"'; + for (const attr in attributes) { + renderAttribsHTML += " " + attr + '="' + attributes[attr] + '"'; + } + return '" + body + ""; +} + +const unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g; +const unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g; +function calculateSize(size, ratio, precision) { + if (ratio === 1) { + return size; + } + precision = precision || 100; + if (typeof size === "number") { + return Math.ceil(size * ratio * precision) / precision; + } + if (typeof size !== "string") { + return size; + } + const oldParts = size.split(unitsSplit); + if (oldParts === null || !oldParts.length) { + return size; + } + const newParts = []; + let code = oldParts.shift(); + let isNumber = unitsTest.test(code); + while (true) { + if (isNumber) { + const num = parseFloat(code); + if (isNaN(num)) { + newParts.push(code); + } else { + newParts.push(Math.ceil(num * ratio * precision) / precision); + } + } else { + newParts.push(code); + } + code = oldParts.shift(); + if (code === void 0) { + return newParts.join(""); + } + isNumber = !isNumber; + } +} + +function encodeSVGforURL(svg) { + return svg.replace(/"/g, "'").replace(/%/g, "%25").replace(/#/g, "%23").replace(//g, "%3E").replace(/\s+/g, " "); +} +function svgToURL(svg) { + return 'url("data:image/svg+xml,' + encodeSVGforURL(svg) + '")'; +} + +function getCommonCSSRules(options) { + const result = { + display: "inline-block", + width: "1em", + height: "1em" + }; + const varName = options.varName; + if (options.pseudoSelector) { + result["content"] = "''"; + } + switch (options.mode) { + case "background": + result["background"] = "no-repeat center / 100%"; + if (varName) { + result["background-image"] = "var(--" + varName + ")"; + } + break; + case "mask": + result["background-color"] = "currentColor"; + result["mask"] = result["-webkit-mask"] = "no-repeat center / 100%"; + if (varName) { + result["mask-image"] = result["-webkit-mask-image"] = "var(--" + varName + ")"; + } + break; + } + return result; +} +function generateItemCSSRules(icon, options) { + const result = {}; + const varName = options.varName; + if (!options.forceSquare && icon.width !== icon.height) { + result["width"] = calculateSize("1em", icon.width / icon.height); + } + const svg = iconToHTML( + icon.body.replace(/currentColor/g, options.color || "black"), + { + viewBox: `${icon.left} ${icon.top} ${icon.width} ${icon.height}`, + width: icon.width.toString(), + height: icon.height.toString() + } + ); + const url = svgToURL(svg); + if (varName) { + result["--" + varName] = url; + } else { + switch (options.mode) { + case "background": + result["background-image"] = url; + break; + case "mask": + result["mask-image"] = result["-webkit-mask-image"] = url; + break; + } + } + return result; +} + +const commonSelector = ".icon--{prefix}"; +const iconSelector = ".icon--{prefix}--{name}"; +const defaultSelectors = { + commonSelector, + iconSelector, + overrideSelector: commonSelector + iconSelector +}; +function getIconsCSSData(iconSet, names, options = {}) { + const css = []; + const errors = []; + const palette = options.color ? true : iconSet.info?.palette; + let mode = options.mode || typeof palette === "boolean" && (palette ? "background" : "mask"); + if (!mode) { + mode = "mask"; + errors.push( + "/* cannot detect icon mode: not set in options and icon set is missing info, rendering as " + mode + " */" + ); + } + let varName = options.varName; + if (varName === void 0 && mode === "mask") { + varName = "svg"; + } + const newOptions = { + ...options, + mode, + varName + }; + const { commonSelector: commonSelector2, iconSelector: iconSelector2, overrideSelector } = newOptions.iconSelector ? newOptions : defaultSelectors; + const iconSelectorWithPrefix = iconSelector2.replace( + /{prefix}/g, + iconSet.prefix + ); + const commonRules = getCommonCSSRules(newOptions); + const hasCommonRules = commonSelector2 && commonSelector2 !== iconSelector2; + const commonSelectors = /* @__PURE__ */ new Set(); + if (hasCommonRules) { + css.push({ + selector: commonSelector2.replace(/{prefix}/g, iconSet.prefix), + rules: commonRules + }); + } + for (let i = 0; i < names.length; i++) { + const name = names[i]; + const iconData = getIconData(iconSet, name); + if (!iconData) { + errors.push("/* Could not find icon: " + name + " */"); + continue; + } + const rules = generateItemCSSRules( + { ...defaultIconProps, ...iconData }, + newOptions + ); + let requiresOverride = false; + if (hasCommonRules && overrideSelector) { + for (const key in rules) { + if (key in commonRules) { + requiresOverride = true; + } + } + } + const selector = (requiresOverride && overrideSelector ? overrideSelector.replace(/{prefix}/g, iconSet.prefix) : iconSelectorWithPrefix).replace(/{name}/g, name); + css.push({ + selector, + rules + }); + if (!hasCommonRules) { + commonSelectors.add(selector); + } + } + const result = { + css, + errors + }; + if (!hasCommonRules && commonSelectors.size) { + const selector = Array.from(commonSelectors).join( + newOptions.format === "compressed" ? "," : ", " + ); + result.common = { + selector, + rules: commonRules + }; + } + return result; +} + +const matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/; + +const missingIconsListError = 'TailwindCSS cannot dynamically find all used icons. Need to pass list of used icons to Iconify plugin.'; +/** + * Locate icon set + */ +function locateIconSet(prefix) { + try { + return require.resolve(`@iconify-json/${prefix}/icons.json`); + } + catch { } + try { + return require.resolve(`@iconify/json/json/${prefix}.json`); + } + catch { } +} +/** + * Load icon set + */ +function loadIconSet(prefix) { + const filename = locateIconSet(prefix); + if (filename) { + try { + return JSON.parse(fs.readFileSync(filename, 'utf8')); + } + catch { } + } +} +/** + * Get icon names from list + */ +function getIconNames(icons) { + const prefixes = Object.create(null); + // Add entry + const add = (prefix, name) => { + if (typeof prefix === 'string' && + prefix.match(matchIconName) && + typeof name === 'string' && + name.match(matchIconName)) { + (prefixes[prefix] || (prefixes[prefix] = new Set())).add(name); + } + }; + // Comma or space separated string + let iconNames; + if (typeof icons === 'string') { + iconNames = icons.split(/[\s,.]/); + } + else if (icons instanceof Array) { + iconNames = []; + // Split each array entry + icons.forEach((item) => { + item.split(/[\s,.]/).forEach((name) => iconNames.push(name)); + }); + } + else { + throw new Error(missingIconsListError); + } + // Parse array + if (iconNames?.length) { + iconNames.forEach((icon) => { + if (!icon.trim()) { + return; + } + // Attempt prefix:name split + const nameParts = icon.split(':'); + if (nameParts.length === 2) { + add(nameParts[0], nameParts[1]); + return; + } + // Attempt icon class: .icon--{prefix}--{name} + // with or without dot + const classParts = icon.split('--'); + if (classParts[0].match(/^\.?icon$/)) { + if (classParts.length === 3) { + add(classParts[1], classParts[2]); + return; + } + if (classParts.length === 2) { + // Partial match + return; + } + } + // Throw error + throw new Error(`Cannot resolve icon: "${icon}"`); + }); + } + else { + throw new Error(missingIconsListError); + } + return prefixes; +} +/** + * Get CSS rules for icon + */ +function getCSSRules(icons, options = {}) { + const rules = Object.create(null); + // Get all icons + const prefixes = getIconNames(icons); + // Parse all icon sets + for (const prefix in prefixes) { + const iconSet = loadIconSet(prefix); + if (!iconSet) { + throw new Error(`Cannot load icon set for "${prefix}"`); + } + const generated = getIconsCSSData(iconSet, Array.from(prefixes[prefix]), options); + const result = generated.common + ? [generated.common, ...generated.css] + : generated.css; + result.forEach((item) => { + const selector = item.selector instanceof Array + ? item.selector.join(', ') + : item.selector; + rules[selector] = item.rules; + }); + } + return rules; +} + +/** + * Iconify plugin + */ +function iconifyPlugin(icons, options = {}) { + return plugin(({ addUtilities }) => { + const rules = getCSSRules(icons, options); + addUtilities(rules); + }); +} + +module.exports = iconifyPlugin; diff --git a/plugins/tailwind/jest.config.js b/plugins/tailwind/jest.config.js new file mode 100644 index 0000000..422a485 --- /dev/null +++ b/plugins/tailwind/jest.config.js @@ -0,0 +1,7 @@ +/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ +module.exports = { + verbose: true, + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/tests/*-test.ts'], +}; diff --git a/plugins/tailwind/lib/iconify.d.ts b/plugins/tailwind/lib/iconify.d.ts new file mode 100644 index 0000000..de8bb59 --- /dev/null +++ b/plugins/tailwind/lib/iconify.d.ts @@ -0,0 +1,5 @@ +import type { IconifyPluginOptions } from './options'; +/** + * Get CSS rules for icon + */ +export declare function getCSSRules(icons: string[] | string, options?: IconifyPluginOptions): Record>; diff --git a/plugins/tailwind/lib/iconify.js b/plugins/tailwind/lib/iconify.js new file mode 100644 index 0000000..54f31d6 --- /dev/null +++ b/plugins/tailwind/lib/iconify.js @@ -0,0 +1,118 @@ +import { readFileSync } from 'fs'; +import { getIconsCSSData } from '@iconify/utils/lib/css/icons'; +import { matchIconName } from '@iconify/utils/lib/icon/name'; +const missingIconsListError = 'TailwindCSS cannot dynamically find all used icons. Need to pass list of used icons to Iconify plugin.'; +/** + * Locate icon set + */ +function locateIconSet(prefix) { + try { + return require.resolve(`@iconify-json/${prefix}/icons.json`); + } + catch { } + try { + return require.resolve(`@iconify/json/json/${prefix}.json`); + } + catch { } +} +/** + * Load icon set + */ +function loadIconSet(prefix) { + const filename = locateIconSet(prefix); + if (filename) { + try { + return JSON.parse(readFileSync(filename, 'utf8')); + } + catch { } + } +} +/** + * Get icon names from list + */ +function getIconNames(icons) { + const prefixes = Object.create(null); + // Add entry + const add = (prefix, name) => { + if (typeof prefix === 'string' && + prefix.match(matchIconName) && + typeof name === 'string' && + name.match(matchIconName)) { + (prefixes[prefix] || (prefixes[prefix] = new Set())).add(name); + } + }; + // Comma or space separated string + let iconNames; + if (typeof icons === 'string') { + iconNames = icons.split(/[\s,.]/); + } + else if (icons instanceof Array) { + iconNames = []; + // Split each array entry + icons.forEach((item) => { + item.split(/[\s,.]/).forEach((name) => iconNames.push(name)); + }); + } + else { + throw new Error(missingIconsListError); + } + // Parse array + if (iconNames?.length) { + iconNames.forEach((icon) => { + if (!icon.trim()) { + return; + } + // Attempt prefix:name split + const nameParts = icon.split(':'); + if (nameParts.length === 2) { + add(nameParts[0], nameParts[1]); + return; + } + // Attempt icon class: .icon--{prefix}--{name} + // with or without dot + const classParts = icon.split('--'); + if (classParts[0].match(/^\.?icon$/)) { + if (classParts.length === 3) { + add(classParts[1], classParts[2]); + return; + } + if (classParts.length === 2) { + // Partial match + return; + } + } + // Throw error + throw new Error(`Cannot resolve icon: "${icon}"`); + }); + } + else { + throw new Error(missingIconsListError); + } + return prefixes; +} +/** + * Get CSS rules for icon + */ +export function getCSSRules(icons, options = {}) { + const rules = Object.create(null); + // Get all icons + const prefixes = getIconNames(icons); + // Parse all icon sets + for (const prefix in prefixes) { + const iconSet = loadIconSet(prefix); + if (!iconSet) { + throw new Error(`Cannot load icon set for "${prefix}"`); + } + const generated = getIconsCSSData(iconSet, Array.from(prefixes[prefix]), options); + const result = generated.common + ? [generated.common, ...generated.css] + : generated.css; + result.forEach((item) => { + const selector = item.selector instanceof Array + ? item.selector.join(', ') + : item.selector; + rules[selector] = item.rules; + }); + } + return rules; +} diff --git a/plugins/tailwind/lib/options.d.ts b/plugins/tailwind/lib/options.d.ts new file mode 100644 index 0000000..458c639 --- /dev/null +++ b/plugins/tailwind/lib/options.d.ts @@ -0,0 +1,3 @@ +import type { IconCSSIconSetOptions } from '@iconify/utils/lib/css/types'; +export interface IconifyPluginOptions extends IconCSSIconSetOptions { +} diff --git a/plugins/tailwind/lib/options.js b/plugins/tailwind/lib/options.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/plugins/tailwind/lib/options.js @@ -0,0 +1 @@ +export {}; diff --git a/plugins/tailwind/lib/plugin.d.ts b/plugins/tailwind/lib/plugin.d.ts new file mode 100644 index 0000000..326a4fe --- /dev/null +++ b/plugins/tailwind/lib/plugin.d.ts @@ -0,0 +1,13 @@ +import type { IconifyPluginOptions } from './options'; +/** + * Iconify plugin + */ +declare function iconifyPlugin(icons: string[] | string, options?: IconifyPluginOptions): { + handler: import("tailwindcss/types/config").PluginCreator; + config?: Partial; +}; +/** + * Export stuff + */ +export default iconifyPlugin; +export type { IconifyPluginOptions }; diff --git a/plugins/tailwind/lib/plugin.js b/plugins/tailwind/lib/plugin.js new file mode 100644 index 0000000..843a53b --- /dev/null +++ b/plugins/tailwind/lib/plugin.js @@ -0,0 +1,15 @@ +import plugin from 'tailwindcss/plugin'; +import { getCSSRules } from './iconify'; +/** + * Iconify plugin + */ +function iconifyPlugin(icons, options = {}) { + return plugin(({ addUtilities }) => { + const rules = getCSSRules(icons, options); + addUtilities(rules); + }); +} +/** + * Export stuff + */ +export default iconifyPlugin; diff --git a/plugins/tailwind/license.txt b/plugins/tailwind/license.txt new file mode 100644 index 0000000..c125aaf --- /dev/null +++ b/plugins/tailwind/license.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Vjacheslav Trushkin / Iconify OÜ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/plugins/tailwind/package.json b/plugins/tailwind/package.json new file mode 100644 index 0000000..7257145 --- /dev/null +++ b/plugins/tailwind/package.json @@ -0,0 +1,49 @@ +{ + "name": "@iconify/tailwind", + "description": "Iconify plugin for Tailwind CSS", + "author": "Vjacheslav Trushkin (https://iconify.design)", + "version": "0.0.1", + "license": "MIT", + "main": "./dist/plugin.js", + "types": "./dist/plugin.d.ts", + "bugs": "https://github.com/iconify/iconify/issues", + "homepage": "https://iconify.design/", + "funding": "https://github.com/sponsors/cyberalien", + "repository": { + "type": "git", + "url": "https://github.com/iconify/iconify.git", + "directory": "plugins/tailwind" + }, + "scripts": { + "clean": "rimraf lib dist tsconfig.tsbuildinfo", + "lint": "eslint src/**/*.ts", + "prebuild": "pnpm run lint && pnpm run clean", + "build": "node build", + "build:api": "api-extractor run --local --verbose", + "build:lib": "tsc -b", + "build:dist": "rollup -c rollup.config.mjs", + "test": "jest --runInBand" + }, + "dependencies": { + "@iconify/types": "workspace:^" + }, + "devDependencies": { + "@iconify-json/line-md": "^1.1.22", + "@iconify-json/mdi-light": "^1.1.5", + "@iconify/utils": "workspace:^", + "@microsoft/api-extractor": "^7.33.7", + "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-replace": "^5.0.2", + "@types/jest": "^29.2.4", + "@types/jsdom": "^20.0.1", + "@types/node": "^18.11.17", + "@typescript-eslint/eslint-plugin": "^5.47.0", + "eslint": "^8.30.0", + "jest": "^29.3.1", + "rimraf": "^3.0.2", + "rollup": "^3.8.1", + "tailwindcss": "^3.2.4", + "ts-jest": "^29.0.3", + "typescript": "^4.9.4" + } +} diff --git a/plugins/tailwind/rollup.config.mjs b/plugins/tailwind/rollup.config.mjs new file mode 100644 index 0000000..883eacd --- /dev/null +++ b/plugins/tailwind/rollup.config.mjs @@ -0,0 +1,44 @@ +import { readFileSync, writeFileSync } from 'fs'; +import resolve from '@rollup/plugin-node-resolve'; +import replace from '@rollup/plugin-replace'; + +// Header +const header = `/** +* (c) Iconify for Tailwind CSS +* +* For the full copyright and license information, please view the license.txt +* files at https://github.com/iconify/iconify +* +* Licensed under MIT. +* +* @license MIT +* @version __iconify_version__ +*/`; + +// Get replacements +const replacements = { + preventAssignment: true, +}; +const packageJSON = JSON.parse(readFileSync('package.json', 'utf8')); +replacements['__iconify_version__'] = packageJSON.version; + +// Export configuration +const config = { + input: 'lib/plugin.js', + output: [ + { + file: 'dist/plugin.js', + format: 'cjs', + banner: header, + }, + ], + external: ['tailwindcss/plugin'], + plugins: [ + resolve({ + browser: true, + }), + replace(replacements), + ], +}; + +export default config; diff --git a/plugins/tailwind/src/iconify.ts b/plugins/tailwind/src/iconify.ts new file mode 100644 index 0000000..8cec9c1 --- /dev/null +++ b/plugins/tailwind/src/iconify.ts @@ -0,0 +1,141 @@ +import { readFileSync } from 'fs'; +import type { IconifyJSON } from '@iconify/types'; +import { getIconsCSSData } from '@iconify/utils/lib/css/icons'; +import { matchIconName } from '@iconify/utils/lib/icon/name'; +import type { IconifyPluginOptions } from './options'; + +const missingIconsListError = + 'TailwindCSS cannot dynamically find all used icons. Need to pass list of used icons to Iconify plugin.'; + +/** + * Locate icon set + */ +function locateIconSet(prefix: string): string | undefined { + try { + return require.resolve(`@iconify-json/${prefix}/icons.json`); + } catch {} + try { + return require.resolve(`@iconify/json/json/${prefix}.json`); + } catch {} +} + +/** + * Load icon set + */ +function loadIconSet(prefix: string): IconifyJSON | undefined { + const filename = locateIconSet(prefix); + if (filename) { + try { + return JSON.parse(readFileSync(filename, 'utf8')); + } catch {} + } +} + +/** + * Get icon names from list + */ +function getIconNames(icons: string[] | string): Record> { + const prefixes = Object.create(null) as Record>; + + // Add entry + const add = (prefix: string, name: string) => { + if ( + typeof prefix === 'string' && + prefix.match(matchIconName) && + typeof name === 'string' && + name.match(matchIconName) + ) { + (prefixes[prefix] || (prefixes[prefix] = new Set())).add(name); + } + }; + + // Comma or space separated string + let iconNames: string[] | undefined; + if (typeof icons === 'string') { + iconNames = icons.split(/[\s,.]/); + } else if (icons instanceof Array) { + iconNames = []; + // Split each array entry + icons.forEach((item) => { + item.split(/[\s,.]/).forEach((name) => iconNames.push(name)); + }); + } else { + throw new Error(missingIconsListError); + } + + // Parse array + if (iconNames?.length) { + iconNames.forEach((icon) => { + if (!icon.trim()) { + return; + } + + // Attempt prefix:name split + const nameParts = icon.split(':'); + if (nameParts.length === 2) { + add(nameParts[0], nameParts[1]); + return; + } + + // Attempt icon class: .icon--{prefix}--{name} + // with or without dot + const classParts = icon.split('--'); + if (classParts[0].match(/^\.?icon$/)) { + if (classParts.length === 3) { + add(classParts[1], classParts[2]); + return; + } + if (classParts.length === 2) { + // Partial match + return; + } + } + + // Throw error + throw new Error(`Cannot resolve icon: "${icon}"`); + }); + } else { + throw new Error(missingIconsListError); + } + + return prefixes; +} + +/** + * Get CSS rules for icon + */ +export function getCSSRules( + icons: string[] | string, + options: IconifyPluginOptions = {} +): Record> { + const rules = Object.create(null) as Record>; + + // Get all icons + const prefixes = getIconNames(icons); + + // Parse all icon sets + for (const prefix in prefixes) { + const iconSet = loadIconSet(prefix); + if (!iconSet) { + throw new Error(`Cannot load icon set for "${prefix}"`); + } + const generated = getIconsCSSData( + iconSet, + Array.from(prefixes[prefix]), + options + ); + + const result = generated.common + ? [generated.common, ...generated.css] + : generated.css; + result.forEach((item) => { + const selector = + item.selector instanceof Array + ? item.selector.join(', ') + : item.selector; + rules[selector] = item.rules; + }); + } + + return rules; +} diff --git a/plugins/tailwind/src/options.ts b/plugins/tailwind/src/options.ts new file mode 100644 index 0000000..4f431e8 --- /dev/null +++ b/plugins/tailwind/src/options.ts @@ -0,0 +1,5 @@ +import type { IconCSSIconSetOptions } from '@iconify/utils/lib/css/types'; + +export interface IconifyPluginOptions extends IconCSSIconSetOptions { + // +} diff --git a/plugins/tailwind/src/plugin.ts b/plugins/tailwind/src/plugin.ts new file mode 100644 index 0000000..1680d2c --- /dev/null +++ b/plugins/tailwind/src/plugin.ts @@ -0,0 +1,23 @@ +import plugin from 'tailwindcss/plugin'; +import { getCSSRules } from './iconify'; +import type { IconifyPluginOptions } from './options'; + +/** + * Iconify plugin + */ +function iconifyPlugin( + icons: string[] | string, + options: IconifyPluginOptions = {} +) { + return plugin(({ addUtilities }) => { + const rules = getCSSRules(icons, options); + addUtilities(rules); + }); +} + +/** + * Export stuff + */ +export default iconifyPlugin; + +export type { IconifyPluginOptions }; diff --git a/plugins/tailwind/tests/get-css-test.ts b/plugins/tailwind/tests/get-css-test.ts new file mode 100644 index 0000000..9440fed --- /dev/null +++ b/plugins/tailwind/tests/get-css-test.ts @@ -0,0 +1,68 @@ +import { getCSSRules } from '../src/iconify'; + +describe('Testing CSS rules', () => { + it('One icon', () => { + const data = getCSSRules('mdi-light:home'); + expect(Object.keys(data)).toEqual([ + '.icon--mdi-light', + '.icon--mdi-light--home', + ]); + expect(Object.keys(data['.icon--mdi-light--home'])).toEqual(['--svg']); + }); + + it('Multiple icons from same icon set', () => { + const data = getCSSRules([ + // By name + 'mdi-light:home', + // By selector + '.icon--mdi-light--arrow-left', + '.icon--mdi-light.icon--mdi-light--arrow-down', + // By class name + 'icon--mdi-light--file', + 'icon--mdi-light icon--mdi-light--format-clear', + ]); + expect(Object.keys(data)).toEqual([ + '.icon--mdi-light', + '.icon--mdi-light--home', + '.icon--mdi-light--arrow-left', + '.icon--mdi-light--arrow-down', + '.icon--mdi-light--file', + '.icon--mdi-light--format-clear', + ]); + }); + + it('Multiple icon sets', () => { + const data = getCSSRules([ + // MDI Light + 'mdi-light:home', + // Line MD + 'line-md:home', + ]); + expect(Object.keys(data)).toEqual([ + '.icon--mdi-light', + '.icon--mdi-light--home', + '.icon--line-md', + '.icon--line-md--home', + ]); + }); + + it('Bad class name', () => { + let threw = false; + try { + getCSSRules(['icon--mdi-light--home test']); + } catch { + threw = true; + } + expect(threw).toBe(true); + }); + + it('Bad icon set', () => { + let threw = false; + try { + getCSSRules('test123:home'); + } catch { + threw = true; + } + expect(threw).toBe(true); + }); +}); diff --git a/plugins/tailwind/tests/tsconfig.json b/plugins/tailwind/tests/tsconfig.json new file mode 100644 index 0000000..4689462 --- /dev/null +++ b/plugins/tailwind/tests/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig-base.json", + "compilerOptions": { + "types": ["node", "jest"], + "rootDir": ".", + "outDir": "../tests-compiled" + } +} diff --git a/plugins/tailwind/tsconfig-base.json b/plugins/tailwind/tsconfig-base.json new file mode 100644 index 0000000..6836e3c --- /dev/null +++ b/plugins/tailwind/tsconfig-base.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "declaration": true, + "declarationMap": false, + "sourceMap": false, + "composite": true, + "strict": false, + "moduleResolution": "node", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "importsNotUsedAsValues": "error", + "skipLibCheck": true + } +} diff --git a/plugins/tailwind/tsconfig.json b/plugins/tailwind/tsconfig.json new file mode 100644 index 0000000..2db517c --- /dev/null +++ b/plugins/tailwind/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig-base.json", + "include": ["src/**/*.ts", ".eslintrc.js"], + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "lib": ["ESNext", "DOM"] + } +} diff --git a/plugins/tailwind/tsconfig.tsbuildinfo b/plugins/tailwind/tsconfig.tsbuildinfo new file mode 100644 index 0000000..4b0b100 --- /dev/null +++ b/plugins/tailwind/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@4.9.4/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../packages/types/types.d.ts","../../packages/utils/lib/css/types.d.ts","../../packages/utils/lib/css/icons.d.ts","../../packages/utils/lib/icon/name.d.ts","./src/options.ts","./src/iconify.ts","../../node_modules/.pnpm/tailwindcss@3.2.4_postcss@8.4.21/node_modules/tailwindcss/types/generated/corepluginlist.d.ts","../../node_modules/.pnpm/tailwindcss@3.2.4_postcss@8.4.21/node_modules/tailwindcss/types/generated/colors.d.ts","../../node_modules/.pnpm/tailwindcss@3.2.4_postcss@8.4.21/node_modules/tailwindcss/types/config.d.ts","../../node_modules/.pnpm/tailwindcss@3.2.4_postcss@8.4.21/node_modules/tailwindcss/plugin.d.ts","./src/plugin.ts","../../node_modules/.pnpm/@jest+expect-utils@29.3.1/node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/index.d.ts","../../node_modules/.pnpm/@sinclair+typebox@0.24.38/node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/.pnpm/@jest+schemas@29.0.0/node_modules/@jest/schemas/build/index.d.ts","../../node_modules/.pnpm/pretty-format@29.3.1/node_modules/pretty-format/build/index.d.ts","../../node_modules/.pnpm/jest-diff@29.3.1/node_modules/jest-diff/build/index.d.ts","../../node_modules/.pnpm/jest-matcher-utils@29.3.1/node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/.pnpm/expect@29.3.1/node_modules/expect/build/index.d.ts","../../node_modules/.pnpm/@types+jest@29.2.4/node_modules/@types/jest/index.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/dom-events.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/globals.global.d.ts","../../node_modules/.pnpm/@types+node@18.11.17/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/common/html.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/common/token.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/common/error-codes.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/tokenizer/index.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/tree-adapters/interface.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/parser/open-element-stack.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/parser/formatting-element-list.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/parser/index.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/tree-adapters/default.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/serializer/index.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/common/foreign-content.d.ts","../../node_modules/.pnpm/parse5@7.1.1/node_modules/parse5/dist/index.d.ts","../../node_modules/.pnpm/@types+tough-cookie@4.0.2/node_modules/@types/tough-cookie/index.d.ts","../../node_modules/.pnpm/@types+jsdom@20.0.1/node_modules/@types/jsdom/base.d.ts","../../node_modules/.pnpm/@types+jsdom@20.0.1/node_modules/@types/jsdom/index.d.ts","../../node_modules/.pnpm/@types+eslint@7.29.0/node_modules/@types/eslint/helpers.d.ts","../../node_modules/.pnpm/@types+eslint@7.29.0/node_modules/@types/eslint/lib/rules/index.d.ts","../../node_modules/.pnpm/@types+json-schema@7.0.11/node_modules/@types/json-schema/index.d.ts","../../node_modules/.pnpm/@types+estree@1.0.0/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/@types+eslint@7.29.0/node_modules/@types/eslint/index.d.ts","../../node_modules/.pnpm/@types+eslint@8.4.6/node_modules/@types/eslint/helpers.d.ts","../../node_modules/.pnpm/@types+eslint@8.4.6/node_modules/@types/eslint/index.d.ts","../../node_modules/.pnpm/@types+estree@0.0.52/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/@types+eslint-scope@3.7.4/node_modules/@types/eslint-scope/index.d.ts","../../node_modules/.pnpm/@types+prettier@2.7.0/node_modules/@types/prettier/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"12baec7a4e2c3acddd09ab665e0ae262395044396e41ecde616fefdd33dc75ff","1da6fd1d809a3255e678b69cec8318f47192c10574fe0321700deb7e42c4db73","b12c477b5b343076f1aecb6f3ce6b774937818e060fdc7145ba69c49acba1107","ae998d9e4287a050b7b016830025d897dfa6fd76b88eeb8619f64db8aba02ae6",{"version":"1510fec52dda72a5a1d246d53432f343091fecbd3741d04222ba1b9da9e3643a","signature":"4ce083ff2de78c4c64d66b08f7ea4dd4b6fe3007b6dc9672ba43f9c0522c74e5"},{"version":"0473acff08775ea29011ed3d4bd4d1ea2c141456f715bd40c7a43b3c1a9a4d41","signature":"2738ca1dd1628783dc09505926221adf5754d1b71f5a7d605c29f5170dbc84da"},"10a9bad57ceace0e3401cc6fb608352089678e07e7e61776fab36d05245cedc8","434fd8f637e771a395956d586648b8470f2f506a50a2ab1aa11a32e51aa9cb5b","72ad5dd98ef990b5409022c51c1d20fa43870351d66d9f45db69c2a1ab289a7e","c3916141089b022b0b5aab813af5e5159123ec7a019d057c8a41db5c6fd57401",{"version":"606c474e88acf3b7fc262d71cd45d28f1ed8315cc4b5d01ecc2103b39800c605","signature":"a924eee25cb422ed7f04a0c0c81c751187708f8792f0cf955f39a5babd734c3d"},"a7321c0e96eecb19dcbf178493836474cef21ee3f9345384ce9d74e4be31228d","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","5fe9a6c9ea213168780b8fdceb779836f2cda27a11aab59220487b310906073e","427ce5854885cfc34387e09de05c1d5c1acf94c2143e1693f1d9ff54880573e7","bed2c4f96fab3348be4a34d88dcb12578c1b2475b07c6acd369e99e227718d81","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","9ac9b7b349a96ff204f4172183cca1672cc402e1ee7277bfcdec96c000b7d818","ac127e4c6f2b5220b293cc9d2e64ba49781225b792a51cda50f3db8eafba550c",{"version":"0c3b45b6a42c0074fadd59c5d370592ca48c89a706d903452565ca89b1b2c164","affectsGlobalScope":true},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d076fede3cb042e7b13fc29442aaa03a57806bc51e2b26a67a01fbc66a7c0c12","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"8dbe725f8d237e70310977afcfa011629804d101ebaa0266cafda6b61ad72236","ba600bf38b5c1a5dffa1b99dd7a783549082bbba3b4fe9497eaaf5e4c1764b20","172dddc700c620827370b416d4aafbd7a4abd6f929cb50d6448cf6e3baeca38c","8cfa7e547e353e06dc3b486a400f95eef3a4aa9ded83ae38f325c0ce02e6d708","95c1cf650d16b197525b5bfdf8dd7abba0a49d99ddb12a4ba66466a8a6903e49","1fe0aabe758d56ad72495d6e6c7b6ae75619faaeaaf03f0ddf1948eea4cfac84","bbc57966c8c48ee78fd58aadb893784025be056ae538ae22d1e83c502a987e68","5e5d6f6697e378b0660b567866bf67d099d0ea754f8810c0dabe737805f5cf03","016821973966c7663ee27e1d1c75fa51d5e4f942506c44e083feda52c82e0848","af8339d509c40da075088e544c28ed37b519876e5c4d36a48644ebfb3c6ae6c8","657d689b204952d36655db5c6ba626414ff5e97fcc278f41edf872a6d3cc9e92","c26af7eaedb4f710984634e419ab15e54e5bb99a0b3cae71188c2fff572276de","38b58ef018d0aeee42ef74c42978bb5805503233fdeeb82cd2aed2199fb0d013","7426c455724cc1e1e7e6de540803db0a5858563e442b0640819dd316e4bc913c","cc256fd958b33576ed32c7338c64adb0d08fc0c2c6525010202fab83f32745da","fd0589ca571ad090b531d8c095e26caa53d4825c64d3ff2b2b1ab95d72294175",{"version":"669843ecafb89ae1e944df06360e8966219e4c1c34c0d28aa2503272cdd444a7","affectsGlobalScope":true},{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"0133ebdd17a823ae56861948870cde4dac18dd8818ab641039c85bbb720429e0","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","946bd1737d9412395a8f24414c70f18660b84a75a12b0b448e6eb1a2161d06dd","874d84ca5699231d5af2868fef01fc63f948bd83be928881479db48508f92ca0",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"c84d0f714fe122193c21c0f0917e873beb3a03fa3422ceb2fbd1ebc0558790a0","ade6e6c42087188b5c56f0384651c32736b2df192dadd3c8617e9845b76fd41b","e050a0afcdbb269720a900c85076d18e0c1ab73e580202a2bf6964978181222a","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142"],"options":{"composite":true,"declaration":true,"declarationMap":false,"esModuleInterop":true,"importsNotUsedAsValues":2,"module":99,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":false,"strict":false,"target":99},"fileIdsList":[[123],[70,123],[123,153,154],[123,147,148,149,150],[123,151],[123,149,150,152],[72,75,123],[93,123,125,130,143,144,146],[123,145],[77,123],[80,123],[81,86,114,123],[82,93,94,101,111,122,123],[82,83,93,101,123],[84,123],[85,86,94,102,123],[86,111,119,123],[87,89,93,101,123],[88,123],[89,90,123],[93,123],[91,93,123],[93,94,95,111,122,123],[93,94,95,108,111,114,123],[123,127],[89,96,101,111,122,123],[93,94,96,97,101,111,119,122,123],[96,98,111,119,122,123],[77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],[93,99,123],[100,122,123],[89,93,101,111,123],[102,123],[103,123],[80,104,123],[105,121,123,127],[106,123],[107,123],[93,108,109,123],[108,110,123,125],[81,93,111,112,113,114,123],[81,111,113,123],[111,112,123],[114,123],[115,123],[93,117,118,123],[117,118,123],[86,101,111,119,123],[120,123],[101,121,123],[81,96,107,122,123],[86,123],[111,123,124],[123,125],[123,126],[81,86,93,95,104,111,122,123,125,127],[111,123,128],[68,74,123],[72,123],[69,73,123],[123,132],[123,131,132],[123,131],[123,131,132,133,135,136,139,140,141,142],[123,132,136],[123,131,132,133,135,136,137,138],[123,131,136],[123,136,140],[123,132,133,134],[123,133],[123,131,132,136],[71,123],[65,123],[63,64,123],[57,58,123],[57,59,60,61,94,123],[58,123],[61,62,66,123],[61],[58],[61,65]],"referencedMap":[[68,1],[71,2],[70,1],[155,3],[147,1],[151,4],[148,5],[152,1],[153,6],[154,1],[150,1],[76,7],[145,8],[146,9],[149,1],[77,10],[78,10],[80,11],[81,12],[82,13],[83,14],[84,15],[85,16],[86,17],[87,18],[88,19],[89,20],[90,20],[92,21],[91,22],[93,21],[94,23],[95,24],[79,25],[129,1],[96,26],[97,27],[98,28],[130,29],[99,30],[100,31],[101,32],[102,33],[103,34],[104,35],[105,36],[106,37],[107,38],[108,39],[109,39],[110,40],[111,41],[113,42],[112,43],[114,44],[115,45],[116,1],[117,46],[118,47],[119,48],[120,49],[121,50],[122,51],[123,52],[124,53],[125,54],[126,55],[127,56],[128,57],[156,1],[144,1],[69,1],[75,58],[73,59],[74,60],[133,61],[142,62],[131,1],[132,63],[143,64],[138,65],[139,66],[137,67],[141,68],[135,69],[134,70],[140,71],[136,62],[72,72],[66,73],[65,74],[64,1],[63,1],[11,1],[12,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[4,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[54,1],[55,1],[1,1],[10,1],[56,1],[57,1],[59,75],[58,1],[60,1],[62,76],[61,77],[67,78]],"exportedModulesMap":[[68,1],[71,2],[70,1],[155,3],[147,1],[151,4],[148,5],[152,1],[153,6],[154,1],[150,1],[76,7],[145,8],[146,9],[149,1],[77,10],[78,10],[80,11],[81,12],[82,13],[83,14],[84,15],[85,16],[86,17],[87,18],[88,19],[89,20],[90,20],[92,21],[91,22],[93,21],[94,23],[95,24],[79,25],[129,1],[96,26],[97,27],[98,28],[130,29],[99,30],[100,31],[101,32],[102,33],[103,34],[104,35],[105,36],[106,37],[107,38],[108,39],[109,39],[110,40],[111,41],[113,42],[112,43],[114,44],[115,45],[116,1],[117,46],[118,47],[119,48],[120,49],[121,50],[122,51],[123,52],[124,53],[125,54],[126,55],[127,56],[128,57],[156,1],[144,1],[69,1],[75,58],[73,59],[74,60],[133,61],[142,62],[131,1],[132,63],[143,64],[138,65],[139,66],[137,67],[141,68],[135,69],[134,70],[140,71],[136,62],[72,72],[66,73],[65,74],[64,1],[63,1],[11,1],[12,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[4,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[54,1],[55,1],[1,1],[10,1],[56,1],[57,1],[59,75],[58,1],[60,1],[62,79],[61,80],[67,81]],"semanticDiagnosticsPerFile":[68,71,70,155,147,151,148,152,153,154,150,76,145,146,149,77,78,80,81,82,83,84,85,86,87,88,89,90,92,91,93,94,95,79,129,96,97,98,130,99,100,101,102,103,104,105,106,107,108,109,110,111,113,112,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,156,144,69,75,73,74,133,142,131,132,143,138,139,137,141,135,134,140,136,72,66,65,64,63,11,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,54,55,1,10,56,57,59,58,60,62,61,67],"latestChangedDtsFile":"./lib/plugin.d.ts"},"version":"4.9.4"} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4809748..eb0663e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -112,7 +112,7 @@ importers: dependencies: '@iconify/vue': link:../../components/vue devDependencies: - nuxt: /nuxt3/3.0.1-rc.0-27863365.da6fa9a + nuxt: /nuxt3/3.0.1-rc.0-27889360.9de94c2 ufo: 0.8.5 components-demo/react-demo: @@ -401,7 +401,7 @@ importers: '@microsoft/api-extractor': 7.33.7 '@rollup/plugin-node-resolve': 15.0.1_rollup@3.8.1 '@rollup/plugin-typescript': 10.0.1_q6nddm75e3egjsxnhzkgx66xvi - '@sveltejs/vite-plugin-svelte': 2.0.2_svelte@3.55.0+vite@4.0.3 + '@sveltejs/vite-plugin-svelte': 2.0.2_svelte@3.55.0+vite@4.0.4 '@testing-library/jest-dom': 5.16.5 '@testing-library/svelte': 3.2.2_svelte@3.55.0 '@tsconfig/svelte': 3.0.0 @@ -484,7 +484,7 @@ importers: '@microsoft/api-extractor': 7.33.7 '@rollup/plugin-node-resolve': 15.0.1_rollup@3.8.1 '@types/jest': 29.2.4 - '@vitejs/plugin-vue': 4.0.0_vite@4.0.3+vue@3.2.45 + '@vitejs/plugin-vue': 4.0.0_vite@4.0.4+vue@3.2.45 '@vue/test-utils': 2.2.6_vue@3.2.45 jsdom: 20.0.3 rollup: 3.8.1 @@ -678,7 +678,7 @@ importers: ufo: ^0.8.4 devDependencies: iconify-icon: link:../../iconify-icon/icon - nuxt: /nuxt3/3.0.1-rc.0-27863365.da6fa9a + nuxt: /nuxt3/3.0.1-rc.0-27889360.9de94c2 ufo: 0.8.5 iconify-icon-demo/react-demo: @@ -881,7 +881,7 @@ importers: devDependencies: '@types/react': 18.0.26 '@types/react-test-renderer': 18.0.0 - '@vitejs/plugin-react': 3.0.0_vite@4.0.3 + '@vitejs/plugin-react': 3.0.0_vite@4.0.4 jest: 29.3.1 react: 18.2.0 react-test-renderer: 18.2.0_react@18.2.0 @@ -1001,6 +1001,47 @@ importers: unbuild: 1.0.2 vitest: 0.26.2 + plugins/tailwind: + specifiers: + '@iconify-json/line-md': ^1.1.22 + '@iconify-json/mdi-light': ^1.1.5 + '@iconify/types': workspace:^ + '@iconify/utils': workspace:^ + '@microsoft/api-extractor': ^7.33.7 + '@rollup/plugin-node-resolve': ^15.0.1 + '@rollup/plugin-replace': ^5.0.2 + '@types/jest': ^29.2.4 + '@types/jsdom': ^20.0.1 + '@types/node': ^18.11.17 + '@typescript-eslint/eslint-plugin': ^5.47.0 + eslint: ^8.30.0 + jest: ^29.3.1 + rimraf: ^3.0.2 + rollup: ^3.8.1 + tailwindcss: ^3.2.4 + ts-jest: ^29.0.3 + typescript: ^4.9.4 + dependencies: + '@iconify/types': link:../../packages/types + devDependencies: + '@iconify-json/line-md': 1.1.22 + '@iconify-json/mdi-light': 1.1.5 + '@iconify/utils': link:../../packages/utils + '@microsoft/api-extractor': 7.33.7 + '@rollup/plugin-node-resolve': 15.0.1_rollup@3.8.1 + '@rollup/plugin-replace': 5.0.2_rollup@3.8.1 + '@types/jest': 29.2.4 + '@types/jsdom': 20.0.1 + '@types/node': 18.11.17 + '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym + eslint: 8.30.0 + jest: 29.3.1_@types+node@18.11.17 + rimraf: 3.0.2 + rollup: 3.8.1 + tailwindcss: 3.2.4_postcss@8.4.21 + ts-jest: 29.0.3_jgcrazg63n7mkdjrxsk5jv2npy + typescript: 4.9.4 + packages: /@adobe/css-tools/4.0.1: @@ -5714,6 +5755,15 @@ packages: dev: true optional: true + /@esbuild/android-arm/0.16.16: + resolution: {integrity: sha512-BUuWMlt4WSXod1HSl7aGK8fJOsi+Tab/M0IDK1V1/GstzoOpqc/v3DqmN8MkuapPKQ9Br1WtLAN4uEgWR8x64A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64/0.16.10: resolution: {integrity: sha512-47Y+NwVKTldTlDhSgJHZ/RpvBQMUDG7eKihqaF/u6g7s0ZPz4J1vy8A3rwnnUOF2CuDn7w7Gj/QcMoWz3U3SJw==} engines: {node: '>=12'} @@ -5723,6 +5773,15 @@ packages: dev: true optional: true + /@esbuild/android-arm64/0.16.16: + resolution: {integrity: sha512-hFHVAzUKp9Tf8psGq+bDVv+6hTy1bAOoV/jJMUWwhUnIHsh6WbFMhw0ZTkqDuh7TdpffFoHOiIOIxmHc7oYRBQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-x64/0.16.10: resolution: {integrity: sha512-C4PfnrBMcuAcOurQzpF1tTtZz94IXO5JmICJJ3NFJRHbXXsQUg9RFG45KvydKqtFfBaFLCHpduUkUfXwIvGnRg==} engines: {node: '>=12'} @@ -5732,6 +5791,15 @@ packages: dev: true optional: true + /@esbuild/android-x64/0.16.16: + resolution: {integrity: sha512-9WhxJpeb6XumlfivldxqmkJepEcELekmSw3NkGrs+Edq6sS5KRxtUBQuKYDD7KqP59dDkxVbaoPIQFKWQG0KLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-arm64/0.16.10: resolution: {integrity: sha512-bH/bpFwldyOKdi9HSLCLhhKeVgRYr9KblchwXgY2NeUHBB/BzTUHtUSBgGBmpydB1/4E37m+ggXXfSrnD7/E7g==} engines: {node: '>=12'} @@ -5741,6 +5809,15 @@ packages: dev: true optional: true + /@esbuild/darwin-arm64/0.16.16: + resolution: {integrity: sha512-8Z+wld+vr/prHPi2O0X7o1zQOfMbXWGAw9hT0jEyU/l/Yrg+0Z3FO9pjPho72dVkZs4ewZk0bDOFLdZHm8jEfw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-x64/0.16.10: resolution: {integrity: sha512-OXt7ijoLuy+AjDSKQWu+KdDFMBbdeaL6wtgMKtDUXKWHiAMKHan5+R1QAG6HD4+K0nnOvEJXKHeA9QhXNAjOTQ==} engines: {node: '>=12'} @@ -5750,6 +5827,15 @@ packages: dev: true optional: true + /@esbuild/darwin-x64/0.16.16: + resolution: {integrity: sha512-CYkxVvkZzGCqFrt7EgjFxQKhlUPyDkuR9P0Y5wEcmJqVI8ncerOIY5Kej52MhZyzOBXkYrJgZeVZC9xXXoEg9A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-arm64/0.16.10: resolution: {integrity: sha512-shSQX/3GHuspE3Uxtq5kcFG/zqC+VuMnJkqV7LczO41cIe6CQaXHD3QdMLA4ziRq/m0vZo7JdterlgbmgNIAlQ==} engines: {node: '>=12'} @@ -5759,6 +5845,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-arm64/0.16.16: + resolution: {integrity: sha512-fxrw4BYqQ39z/3Ja9xj/a1gMsVq0xEjhSyI4a9MjfvDDD8fUV8IYliac96i7tzZc3+VytyXX+XNsnpEk5sw5Wg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-x64/0.16.10: resolution: {integrity: sha512-5YVc1zdeaJGASijZmTzSO4h6uKzsQGG3pkjI6fuXvolhm3hVRhZwnHJkforaZLmzvNv5Tb7a3QL2FAVmrgySIA==} engines: {node: '>=12'} @@ -5768,6 +5863,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-x64/0.16.16: + resolution: {integrity: sha512-8p3v1D+du2jiDvSoNVimHhj7leSfST9YlKsAEO7etBfuqjaBMndo0fmjNLp0JCMld+XIx9L80tooOkyUv1a1PQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm/0.16.10: resolution: {integrity: sha512-c360287ZWI2miBnvIj23bPyVctgzeMT2kQKR+x94pVqIN44h3GF8VMEs1SFPH1UgyDr3yBbx3vowDS1SVhyVhA==} engines: {node: '>=12'} @@ -5777,6 +5881,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm/0.16.16: + resolution: {integrity: sha512-bYaocE1/PTMRmkgSckZ0D0Xn2nox8v2qlk+MVVqm+VECNKDdZvghVZtH41dNtBbwADSvA6qkCHGYeWm9LrNCBw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64/0.16.10: resolution: {integrity: sha512-2aqeNVxIaRfPcIaMZIFoblLh588sWyCbmj1HHCCs9WmeNWm+EIN0SmvsmPvTa/TsNZFKnxTcvkX2eszTcCqIrA==} engines: {node: '>=12'} @@ -5786,6 +5899,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm64/0.16.16: + resolution: {integrity: sha512-N3u6BBbCVY3xeP2D8Db7QY8I+nZ+2AgOopUIqk+5yCoLnsWkcVxD2ay5E9iIdvApFi1Vg1lZiiwaVp8bOpAc4A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32/0.16.10: resolution: {integrity: sha512-sqMIEWeyrLGU7J5RB5fTkLRIFwsgsQ7ieWXlDLEmC2HblPYGb3AucD7inw2OrKFpRPKsec1l+lssiM3+NV5aOw==} engines: {node: '>=12'} @@ -5795,6 +5917,15 @@ packages: dev: true optional: true + /@esbuild/linux-ia32/0.16.16: + resolution: {integrity: sha512-dxjqLKUW8GqGemoRT9v8IgHk+T4tRm1rn1gUcArsp26W9EkK/27VSjBVUXhEG5NInHZ92JaQ3SSMdTwv/r9a2A==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64/0.15.18: resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} engines: {node: '>=12'} @@ -5822,6 +5953,15 @@ packages: dev: true optional: true + /@esbuild/linux-loong64/0.16.16: + resolution: {integrity: sha512-MdUFggHjRiCCwNE9+1AibewoNq6wf94GLB9Q9aXwl+a75UlRmbRK3h6WJyrSGA6ZstDJgaD2wiTSP7tQNUYxwA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-mips64el/0.16.10: resolution: {integrity: sha512-FN8mZOH7531iPHM0kaFhAOqqNHoAb6r/YHW2ZIxNi0a85UBi2DO4Vuyn7t1p4UN8a4LoAnLOT1PqNgHkgBJgbA==} engines: {node: '>=12'} @@ -5831,6 +5971,15 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el/0.16.16: + resolution: {integrity: sha512-CO3YmO7jYMlGqGoeFeKzdwx/bx8Vtq/SZaMAi+ZLDUnDUdfC7GmGwXzIwDJ70Sg+P9pAemjJyJ1icKJ9R3q/Fg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ppc64/0.16.10: resolution: {integrity: sha512-Dg9RiqdvHOAWnOKIOTsIx8dFX9EDlY2IbPEY7YFzchrCiTZmMkD7jWA9UdZbNUygPjdmQBVPRCrLydReFlX9yg==} engines: {node: '>=12'} @@ -5840,6 +5989,15 @@ packages: dev: true optional: true + /@esbuild/linux-ppc64/0.16.16: + resolution: {integrity: sha512-DSl5Czh5hCy/7azX0Wl9IdzPHX2H8clC6G87tBnZnzUpNgRxPFhfmArbaHoAysu4JfqCqbB/33u/GL9dUgCBAw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-riscv64/0.16.10: resolution: {integrity: sha512-XMqtpjwzbmlar0BJIxmzu/RZ7EWlfVfH68Vadrva0Wj5UKOdKvqskuev2jY2oPV3aoQUyXwnMbMrFmloO2GfAw==} engines: {node: '>=12'} @@ -5849,6 +6007,15 @@ packages: dev: true optional: true + /@esbuild/linux-riscv64/0.16.16: + resolution: {integrity: sha512-sSVVMEXsqf1fQu0j7kkhXMViroixU5XoaJXl1u/u+jbXvvhhCt9YvA/B6VM3aM/77HuRQ94neS5bcisijGnKFQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-s390x/0.16.10: resolution: {integrity: sha512-fu7XtnoeRNFMx8DjK3gPWpFBDM2u5ba+FYwg27SjMJwKvJr4bDyKz5c+FLXLUSSAkMAt/UL+cUbEbra+rYtUgw==} engines: {node: '>=12'} @@ -5858,6 +6025,15 @@ packages: dev: true optional: true + /@esbuild/linux-s390x/0.16.16: + resolution: {integrity: sha512-jRqBCre9gZGoCdCN/UWCCMwCMsOg65IpY9Pyj56mKCF5zXy9d60kkNRdDN6YXGjr3rzcC4DXnS/kQVCGcC4yPQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-x64/0.16.10: resolution: {integrity: sha512-61lcjVC/RldNNMUzQQdyCWjCxp9YLEQgIxErxU9XluX7juBdGKb0pvddS0vPNuCvotRbzijZ1pzII+26haWzbA==} engines: {node: '>=12'} @@ -5867,6 +6043,15 @@ packages: dev: true optional: true + /@esbuild/linux-x64/0.16.16: + resolution: {integrity: sha512-G1+09TopOzo59/55lk5Q0UokghYLyHTKKzD5lXsAOOlGDbieGEFJpJBr3BLDbf7cz89KX04sBeExAR/pL/26sA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-x64/0.16.10: resolution: {integrity: sha512-JeZXCX3viSA9j4HqSoygjssdqYdfHd6yCFWyfSekLbz4Ef+D2EjvsN02ZQPwYl5a5gg/ehdHgegHhlfOFP0HCA==} engines: {node: '>=12'} @@ -5876,6 +6061,15 @@ packages: dev: true optional: true + /@esbuild/netbsd-x64/0.16.16: + resolution: {integrity: sha512-xwjGJB5wwDEujLaJIrSMRqWkbigALpBNcsF9SqszoNKc+wY4kPTdKrSxiY5ik3IatojePP+WV108MvF6q6np4w==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-x64/0.16.10: resolution: {integrity: sha512-3qpxQKuEVIIg8SebpXsp82OBrqjPV/OwNWmG+TnZDr3VGyChNnGMHccC1xkbxCHDQNnnXjxhMQNyHmdFJbmbRA==} engines: {node: '>=12'} @@ -5885,6 +6079,15 @@ packages: dev: true optional: true + /@esbuild/openbsd-x64/0.16.16: + resolution: {integrity: sha512-yeERkoxG2nR2oxO5n+Ms7MsCeNk23zrby2GXCqnfCpPp7KNc0vxaaacIxb21wPMfXXRhGBrNP4YLIupUBrWdlg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/sunos-x64/0.16.10: resolution: {integrity: sha512-z+q0xZ+et/7etz7WoMyXTHZ1rB8PMSNp/FOqURLJLOPb3GWJ2aj4oCqFCjPwEbW1rsT7JPpxeH/DwGAWk/I1Bg==} engines: {node: '>=12'} @@ -5894,6 +6097,15 @@ packages: dev: true optional: true + /@esbuild/sunos-x64/0.16.16: + resolution: {integrity: sha512-nHfbEym0IObXPhtX6Va3H5GaKBty2kdhlAhKmyCj9u255ktAj0b1YACUs9j5H88NRn9cJCthD1Ik/k9wn8YKVg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-arm64/0.16.10: resolution: {integrity: sha512-+YYu5sbQ9npkNT9Dec+tn1F/kjg6SMgr6bfi/6FpXYZvCRfu2YFPZGb+3x8K30s8eRxFpoG4sGhiSUkr1xbHEw==} engines: {node: '>=12'} @@ -5903,6 +6115,15 @@ packages: dev: true optional: true + /@esbuild/win32-arm64/0.16.16: + resolution: {integrity: sha512-pdD+M1ZOFy4hE15ZyPX09fd5g4DqbbL1wXGY90YmleVS6Y5YlraW4BvHjim/X/4yuCpTsAFvsT4Nca2lbyDH/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-ia32/0.16.10: resolution: {integrity: sha512-Aw7Fupk7XNehR1ftHGYwUteyJ2q+em/aE+fVU3YMTBN2V5A7Z4aVCSV+SvCp9HIIHZavPFBpbdP3VfjQpdf6Xg==} engines: {node: '>=12'} @@ -5912,6 +6133,15 @@ packages: dev: true optional: true + /@esbuild/win32-ia32/0.16.16: + resolution: {integrity: sha512-IPEMfU9p0c3Vb8PqxaPX6BM9rYwlTZGYOf9u+kMdhoILZkVKEjq6PKZO0lB+isojWwAnAqh4ZxshD96njTXajg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-x64/0.16.10: resolution: {integrity: sha512-qddWullt3sC1EIpfHvCRBq3H4g3L86DZpD6n8k2XFjFVyp01D++uNbN1hT/JRsHxTbyyemZcpwL5aRlJwc/zFw==} engines: {node: '>=12'} @@ -5921,6 +6151,15 @@ packages: dev: true optional: true + /@esbuild/win32-x64/0.16.16: + resolution: {integrity: sha512-1YYpoJ39WV/2bnShPwgdzJklc+XS0bysN6Tpnt1cWPdeoKOG4RMEY1g7i534QxXX/rPvNx/NLJQTTCeORYzipg==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint/eslintrc/1.3.1: resolution: {integrity: sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6134,6 +6373,18 @@ packages: '@iconify/types': 1.1.0 dev: true + /@iconify-json/line-md/1.1.22: + resolution: {integrity: sha512-bvFgns1zKNh1p5wMZDgVWpVjh70jImSE5WRbMMDn7RCs6pEGAZCD+1Jpaw9foalJkZmB+QBIJhduasfD8rrGcw==} + dependencies: + '@iconify/types': 1.1.0 + dev: true + + /@iconify-json/mdi-light/1.1.5: + resolution: {integrity: sha512-Mq3TN/R1KCad2XLlcbtaDHuaStoGdtGOLQPJcjRgUSlOiimNrlhmwC/QwRsCORSPMoZjPjDDxZd71L0ndJJiLw==} + dependencies: + '@iconify/types': 1.1.0 + dev: true + /@iconify/types/1.1.0: resolution: {integrity: sha512-Jh0llaK2LRXQoYsorIH8maClebsnzTcve+7U3rQUSnC11X4jtPnFuyatqFLvMxZ8MLG8dB4zfHsbPfuvxluONw==} dev: true @@ -6514,8 +6765,8 @@ packages: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@netlify/functions/1.3.0: - resolution: {integrity: sha512-hN/Fgpz8XIOBfsBPLYUMxVKBlCopgeqGB0popayicnmkFLnvKByTTMYgF01wcF9DBtBQdV0H2h1kPFpMl34I8w==} + /@netlify/functions/1.4.0: + resolution: {integrity: sha512-gy7ULTIRroc2/jyFVGx1djCmmBMVisIwrvkqggq5B6iDcInRSy2Tpkm+V5C63hKJVkNRskKWtLQKm9ecCaQTjA==} engines: {node: '>=8.3.0'} dependencies: is-promise: 4.0.0 @@ -6667,55 +6918,55 @@ packages: resolution: {integrity: sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA==} dev: true - /@nuxt/kit-edge/3.0.1-rc.0-27863365.da6fa9a: - resolution: {integrity: sha512-ywmo3Yc+abvPJEvHt7qJhBmi0imGBubzfH5Ob/BI+2/vyIpKCL70ZmlBhH9U9jACg/xRAdXkvtSWx8K7Smaj/w==} + /@nuxt/kit-edge/3.0.1-rc.0-27889360.9de94c2: + resolution: {integrity: sha512-adSS6t/m2dSfD0yuFe1n9el2oqdBIEFv2y+6btPs5VDHajjCXrLXdmwjNKXXO3qy3glJdUAwMmf1Tac2k4tumw==} engines: {node: ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} dependencies: - '@nuxt/schema': /@nuxt/schema-edge/3.0.1-rc.0-27863365.da6fa9a + '@nuxt/schema': /@nuxt/schema-edge/3.0.1-rc.0-27889360.9de94c2 c12: 1.1.0 consola: 2.15.3 defu: 6.1.1 globby: 13.1.3 hash-sum: 2.0.0 ignore: 5.2.4 - jiti: 1.16.0 + jiti: 1.16.2 knitwork: 1.0.0 lodash.template: 4.5.0 - mlly: 1.0.0 + mlly: 1.1.0 pathe: 1.0.0 pkg-types: 1.0.1 scule: 1.0.0 semver: 7.3.8 unctx: 2.1.1 - unimport: 1.1.0 - untyped: 1.2.0 + unimport: 1.2.0 + untyped: 1.2.1 transitivePeerDependencies: - rollup - supports-color dev: true - /@nuxt/kit-edge/3.0.1-rc.0-27863365.da6fa9a_rollup@3.8.1: - resolution: {integrity: sha512-ywmo3Yc+abvPJEvHt7qJhBmi0imGBubzfH5Ob/BI+2/vyIpKCL70ZmlBhH9U9jACg/xRAdXkvtSWx8K7Smaj/w==} + /@nuxt/kit-edge/3.0.1-rc.0-27889360.9de94c2_rollup@3.9.1: + resolution: {integrity: sha512-adSS6t/m2dSfD0yuFe1n9el2oqdBIEFv2y+6btPs5VDHajjCXrLXdmwjNKXXO3qy3glJdUAwMmf1Tac2k4tumw==} engines: {node: ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} dependencies: - '@nuxt/schema': /@nuxt/schema-edge/3.0.1-rc.0-27863365.da6fa9a_rollup@3.8.1 + '@nuxt/schema': /@nuxt/schema-edge/3.0.1-rc.0-27889360.9de94c2_rollup@3.9.1 c12: 1.1.0 consola: 2.15.3 defu: 6.1.1 globby: 13.1.3 hash-sum: 2.0.0 ignore: 5.2.4 - jiti: 1.16.0 + jiti: 1.16.2 knitwork: 1.0.0 lodash.template: 4.5.0 - mlly: 1.0.0 + mlly: 1.1.0 pathe: 1.0.0 pkg-types: 1.0.1 scule: 1.0.0 semver: 7.3.8 unctx: 2.1.1 - unimport: 1.1.0_rollup@3.8.1 - untyped: 1.2.0 + unimport: 1.2.0_rollup@3.9.1 + untyped: 1.2.1 transitivePeerDependencies: - rollup - supports-color @@ -6732,61 +6983,61 @@ packages: globby: 13.1.3 hash-sum: 2.0.0 ignore: 5.2.4 - jiti: 1.16.0 + jiti: 1.16.2 knitwork: 1.0.0 lodash.template: 4.5.0 - mlly: 1.0.0 + mlly: 1.1.0 pathe: 1.0.0 pkg-types: 1.0.1 scule: 1.0.0 semver: 7.3.8 unctx: 2.1.1 - unimport: 1.1.0 - untyped: 1.2.0 + unimport: 1.2.0 + untyped: 1.2.1 transitivePeerDependencies: - rollup - supports-color dev: true - /@nuxt/schema-edge/3.0.1-rc.0-27863365.da6fa9a: - resolution: {integrity: sha512-llqQVDs8WeUs49lnzDSCp18gmQ8+mObxbuaY1zdoglm3lfm/Mjc/8B0Dr+h9w1qbEeOWwEdoDgB+P6/4itLwjA==} + /@nuxt/schema-edge/3.0.1-rc.0-27889360.9de94c2: + resolution: {integrity: sha512-JDtKoJCZTDqey3lhigfXQb5vt7R1/2Naej8tQIvBgXbXXonMHYk8lLw/tDib+cNPsjszI59Fh1XeDYmY1fA0ag==} engines: {node: ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} dependencies: c12: 1.1.0 create-require: 1.1.1 defu: 6.1.1 hookable: 5.4.2 - jiti: 1.16.0 + jiti: 1.16.2 pathe: 1.0.0 pkg-types: 1.0.1 postcss-import-resolver: 2.0.0 scule: 1.0.0 std-env: 3.3.1 ufo: 1.0.1 - unimport: 1.1.0 - untyped: 1.2.0 + unimport: 1.2.0 + untyped: 1.2.1 transitivePeerDependencies: - rollup - supports-color dev: true - /@nuxt/schema-edge/3.0.1-rc.0-27863365.da6fa9a_rollup@3.8.1: - resolution: {integrity: sha512-llqQVDs8WeUs49lnzDSCp18gmQ8+mObxbuaY1zdoglm3lfm/Mjc/8B0Dr+h9w1qbEeOWwEdoDgB+P6/4itLwjA==} + /@nuxt/schema-edge/3.0.1-rc.0-27889360.9de94c2_rollup@3.9.1: + resolution: {integrity: sha512-JDtKoJCZTDqey3lhigfXQb5vt7R1/2Naej8tQIvBgXbXXonMHYk8lLw/tDib+cNPsjszI59Fh1XeDYmY1fA0ag==} engines: {node: ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} dependencies: c12: 1.1.0 create-require: 1.1.1 defu: 6.1.1 hookable: 5.4.2 - jiti: 1.16.0 + jiti: 1.16.2 pathe: 1.0.0 pkg-types: 1.0.1 postcss-import-resolver: 2.0.0 scule: 1.0.0 std-env: 3.3.1 ufo: 1.0.1 - unimport: 1.1.0_rollup@3.8.1 - untyped: 1.2.0 + unimport: 1.2.0_rollup@3.9.1 + untyped: 1.2.1 transitivePeerDependencies: - rollup - supports-color @@ -6799,15 +7050,15 @@ packages: c12: 1.1.0 create-require: 1.1.1 defu: 6.1.1 - jiti: 1.16.0 + jiti: 1.16.2 pathe: 1.0.0 pkg-types: 1.0.1 postcss-import-resolver: 2.0.0 scule: 1.0.0 std-env: 3.3.1 ufo: 1.0.1 - unimport: 1.1.0 - untyped: 1.2.0 + unimport: 1.2.0 + untyped: 1.2.1 transitivePeerDependencies: - rollup - supports-color @@ -6842,48 +7093,48 @@ packages: - supports-color dev: true - /@nuxt/ui-templates/1.0.0: - resolution: {integrity: sha512-jfpVHxi1AHfNO3D6iD1RJE6fx/7cAzekvG90poIzVawp/L+I4DNdy8pCgqBScJW4bfWOpHeLYbtQQlL/hPmkjw==} + /@nuxt/ui-templates/1.1.0: + resolution: {integrity: sha512-KffiTNdVaZlkx0tgwopmy627WQclWO0kqFD1R646wawDbNlWkpmwj5qI5qoh2Rx13/O+KkYdc28H3JsQdQmXJw==} dev: true - /@nuxt/vite-builder-edge/3.0.1-rc.0-27863365.da6fa9a_vue@3.2.45: - resolution: {integrity: sha512-doj87x5Y7jBQLpKdYae4ch5MhXhbFShfvsULfi+/jsvQlcSbFSYL4LyM8Sajv2bG92nwv791E+qYPpX2ntAM8w==} + /@nuxt/vite-builder-edge/3.0.1-rc.0-27889360.9de94c2_vue@3.2.45: + resolution: {integrity: sha512-pmg2qhk+/y9+NMKlEMSaSuT0TiInL3RDRplKz9nP66hBSHmYfdtbnrYnnz+R2IPrgV2wSS+cBiGmz+Mub4upJw==} engines: {node: ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} peerDependencies: vue: ^3.2.45 dependencies: - '@nuxt/kit': /@nuxt/kit-edge/3.0.1-rc.0-27863365.da6fa9a_rollup@3.8.1 - '@rollup/plugin-replace': 5.0.2_rollup@3.8.1 - '@vitejs/plugin-vue': 4.0.0_vite@4.0.3+vue@3.2.45 - '@vitejs/plugin-vue-jsx': 3.0.0_vite@4.0.3+vue@3.2.45 - autoprefixer: 10.4.13_postcss@8.4.20 + '@nuxt/kit': /@nuxt/kit-edge/3.0.1-rc.0-27889360.9de94c2_rollup@3.9.1 + '@rollup/plugin-replace': 5.0.2_rollup@3.9.1 + '@vitejs/plugin-vue': 4.0.0_vite@4.0.4+vue@3.2.45 + '@vitejs/plugin-vue-jsx': 3.0.0_vite@4.0.4+vue@3.2.45 + autoprefixer: 10.4.13_postcss@8.4.21 chokidar: 3.5.3 - cssnano: 5.1.14_postcss@8.4.20 + cssnano: 5.1.14_postcss@8.4.21 defu: 6.1.1 - esbuild: 0.16.10 + esbuild: 0.16.16 escape-string-regexp: 5.0.0 - estree-walker: 3.0.1 + estree-walker: 3.0.2 externality: 1.0.0 fs-extra: 11.1.0 - get-port-please: 2.6.1 + get-port-please: 3.0.1 h3: 1.0.2 knitwork: 1.0.0 magic-string: 0.27.0 - mlly: 1.0.0 + mlly: 1.1.0 ohash: 1.0.0 pathe: 1.0.0 perfect-debounce: 0.1.3 pkg-types: 1.0.1 - postcss: 8.4.20 - postcss-import: 15.1.0_postcss@8.4.20 - postcss-url: 10.1.3_postcss@8.4.20 - rollup: 3.8.1 - rollup-plugin-visualizer: 5.8.3_rollup@3.8.1 + postcss: 8.4.21 + postcss-import: 15.1.0_postcss@8.4.21 + postcss-url: 10.1.3_postcss@8.4.21 + rollup: 3.9.1 + rollup-plugin-visualizer: 5.9.0_rollup@3.9.1 ufo: 1.0.1 unplugin: 1.0.1 - vite: 4.0.3 - vite-node: 0.26.2 - vite-plugin-checker: 0.5.3_vite@4.0.3 + vite: 4.0.4 + vite-node: 0.27.0 + vite-plugin-checker: 0.5.3_vite@4.0.4 vue: 3.2.45 vue-bundle-renderer: 1.0.0 transitivePeerDependencies: @@ -6990,6 +7241,19 @@ packages: slash: 4.0.0 dev: true + /@rollup/plugin-alias/4.0.2_rollup@3.9.1: + resolution: {integrity: sha512-1hv7dBOZZwo3SEupxn4UA2N0EDThqSSS+wI1St1TNTBtOZvUchyIClyHcnDcjjrReTPZ47Faedrhblv4n+T5UQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 3.9.1 + slash: 4.0.0 + dev: true + /@rollup/plugin-babel/5.3.1_b6woseefyuugm6lsnk4tw7iz2e: resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -7090,7 +7354,7 @@ packages: rollup: 3.8.1 dev: true - /@rollup/plugin-commonjs/24.0.0_rollup@3.8.1: + /@rollup/plugin-commonjs/24.0.0_rollup@3.9.1: resolution: {integrity: sha512-0w0wyykzdyRRPHOb0cQt14mIBLujfAv6GgP6g8nvg/iBxEm112t3YPPq+Buqe2+imvElTka+bjNlJ/gB56TD8g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -7099,16 +7363,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.8.1 + '@rollup/pluginutils': 5.0.2_rollup@3.9.1 commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.0.3 is-reference: 1.2.1 magic-string: 0.27.0 - rollup: 3.8.1 + rollup: 3.9.1 dev: true - /@rollup/plugin-inject/5.0.3_rollup@3.8.1: + /@rollup/plugin-inject/5.0.3_rollup@3.9.1: resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -7117,10 +7381,10 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.8.1 + '@rollup/pluginutils': 5.0.2_rollup@3.9.1 estree-walker: 2.0.2 magic-string: 0.27.0 - rollup: 3.8.1 + rollup: 3.9.1 dev: true /@rollup/plugin-json/5.0.2_rollup@3.8.1: @@ -7136,7 +7400,7 @@ packages: rollup: 3.8.1 dev: true - /@rollup/plugin-json/6.0.0_rollup@3.8.1: + /@rollup/plugin-json/6.0.0_rollup@3.9.1: resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -7145,8 +7409,8 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.8.1 - rollup: 3.8.1 + '@rollup/pluginutils': 5.0.2_rollup@3.9.1 + rollup: 3.9.1 dev: true /@rollup/plugin-node-resolve/11.2.1_rollup@2.79.0: @@ -7227,6 +7491,24 @@ packages: rollup: 3.8.1 dev: true + /@rollup/plugin-node-resolve/15.0.1_rollup@3.9.1: + resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2_rollup@3.9.1 + '@types/resolve': 1.20.2 + deepmerge: 4.2.2 + is-builtin-module: 3.2.0 + is-module: 1.0.0 + resolve: 1.22.1 + rollup: 3.9.1 + dev: true + /@rollup/plugin-node-resolve/7.1.3_rollup@2.79.0: resolution: {integrity: sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==} engines: {node: '>= 8.0.0'} @@ -7285,8 +7567,22 @@ packages: rollup: 3.8.1 dev: true - /@rollup/plugin-terser/0.2.1_rollup@3.8.1: - resolution: {integrity: sha512-hV52c8Oo6/cXZZxVVoRNBb4zh+EKSHS4I1sedWV5pf0O+hTLSkrf6w86/V0AZutYtwBguB6HLKwz89WDBfwGOA==} + /@rollup/plugin-replace/5.0.2_rollup@3.9.1: + resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2_rollup@3.9.1 + magic-string: 0.27.0 + rollup: 3.9.1 + dev: true + + /@rollup/plugin-terser/0.3.0_rollup@3.9.1: + resolution: {integrity: sha512-mYTkNW9KjOscS/3QWU5LfOKsR3/fAAVDaqcAe2TZ7ng6pN46f+C7FOZbITuIW/neA+PhcjoKl7yMyB3XcmA4gw==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.x || ^3.x @@ -7294,7 +7590,7 @@ packages: rollup: optional: true dependencies: - rollup: 3.8.1 + rollup: 3.9.1 serialize-javascript: 6.0.0 smob: 0.0.6 terser: 5.16.1 @@ -7336,7 +7632,7 @@ packages: typescript: 4.8.2 dev: true - /@rollup/plugin-wasm/6.1.1_rollup@3.8.1: + /@rollup/plugin-wasm/6.1.1_rollup@3.9.1: resolution: {integrity: sha512-dccyb8OvtpY21KiYjaNmibWlQJd/kBg+IVP24x9l1dsIRXBmGqLt+wsPjU296FNO8ap0SSEsTpi/7AfrlvQvBQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -7345,7 +7641,7 @@ packages: rollup: optional: true dependencies: - rollup: 3.8.1 + rollup: 3.9.1 dev: true /@rollup/pluginutils/3.1.0_rollup@2.79.0: @@ -7409,6 +7705,21 @@ packages: rollup: 3.8.1 dev: true + /@rollup/pluginutils/5.0.2_rollup@3.9.1: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.9.1 + dev: true + /@rushstack/node-core-library/3.51.1: resolution: {integrity: sha512-xLoUztvGpaT5CphDexDPt2WbBx8D68VS5tYOkwfr98p90y0f/wepgXlTA/q5MUeZGGucASiXKp5ysdD+GPYf9A==} dependencies: @@ -7579,7 +7890,7 @@ packages: - supports-color dev: true - /@sveltejs/vite-plugin-svelte/2.0.2_svelte@3.55.0+vite@4.0.3: + /@sveltejs/vite-plugin-svelte/2.0.2_svelte@3.55.0+vite@4.0.4: resolution: {integrity: sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -7592,8 +7903,8 @@ packages: magic-string: 0.27.0 svelte: 3.55.0 svelte-hmr: 0.15.1_svelte@3.55.0 - vite: 4.0.3_@types+node@18.11.17 - vitefu: 0.2.3_vite@4.0.3 + vite: 4.0.4_@types+node@18.11.17 + vitefu: 0.2.3_vite@4.0.4 transitivePeerDependencies: - supports-color dev: true @@ -8238,6 +8549,12 @@ packages: '@unhead/schema': 1.0.14 dev: true + /@unhead/dom/1.0.15: + resolution: {integrity: sha512-W3P9eGazfQPMZTG4ryb5oOA02Z4o16Jxo8DAihF/7Xmg/FVYY5Up9p9et7Nbb6AKNgt1PEz3Sp0xBaw+F6Uyjw==} + dependencies: + '@unhead/schema': 1.0.15 + dev: true + /@unhead/schema/1.0.13: resolution: {integrity: sha512-K8SiAEkM8G7GaF1QvsKlthLmRqGB8R9SvZXMCucZqb2VQ6bU4IFSs/4q6dKxmV0fXb5AHdKUL9+rX/4rQ6FsZg==} dependencies: @@ -8252,10 +8569,17 @@ packages: hookable: 5.4.2 dev: true - /@unhead/ssr/1.0.14: - resolution: {integrity: sha512-ScireDoj8AJenQPi60KjGM21d9RePBqMKOKgJbTMLQIyEC34mssoOYU1r5tOexKZJiWJXzbu5qE+NIwoY8P/yA==} + /@unhead/schema/1.0.15: + resolution: {integrity: sha512-aWgHDHcemcx20zZun2hCFvZC6Ob4h14D4puhknuQoMkMOZcxh2ffYoJHb6mS3TeQRwAXCOsSFIHAgwIbayjk0w==} dependencies: - '@unhead/schema': 1.0.14 + '@zhead/schema': 1.0.9 + hookable: 5.4.2 + dev: true + + /@unhead/ssr/1.0.15: + resolution: {integrity: sha512-WNFljr+HaWdrBVYyKcgLXIk5EldPSKEVJlFbo2ixmSVGnFlqMHMCui/ZrfMLG1QvvFw0ZkXonapkEc/S6loSCQ==} + dependencies: + '@unhead/schema': 1.0.15 dev: true /@unhead/vue/1.0.13_vue@3.2.45: @@ -8307,7 +8631,7 @@ packages: - supports-color dev: true - /@vitejs/plugin-react/3.0.0_vite@4.0.3: + /@vitejs/plugin-react/3.0.0_vite@4.0.4: resolution: {integrity: sha512-1mvyPc0xYW5G8CHQvJIJXLoMjl5Ct3q2g5Y2s6Ccfgwm45y48LBvsla7az+GkkAtYikWQ4Lxqcsq5RHLcZgtNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -8318,12 +8642,12 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.7 magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 4.0.3 + vite: 4.0.4 transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-vue-jsx/3.0.0_vite@4.0.3+vue@3.2.45: + /@vitejs/plugin-vue-jsx/3.0.0_vite@4.0.4+vue@3.2.45: resolution: {integrity: sha512-vurkuzgac5SYuxd2HUZqAFAWGTF10diKBwJNbCvnWijNZfXd+7jMtqjPFbGt7idOJUn584fP1Ar9j/GN2jQ3Ew==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -8333,7 +8657,7 @@ packages: '@babel/core': 7.20.7 '@babel/plugin-transform-typescript': 7.20.2_@babel+core@7.20.7 '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.20.7 - vite: 4.0.3 + vite: 4.0.4 vue: 3.2.45 transitivePeerDependencies: - supports-color @@ -8350,14 +8674,14 @@ packages: vue: 3.2.38 dev: true - /@vitejs/plugin-vue/4.0.0_vite@4.0.3+vue@3.2.45: + /@vitejs/plugin-vue/4.0.0_vite@4.0.4+vue@3.2.45: resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.0.3 + vite: 4.0.4 vue: 3.2.45 dev: true @@ -8837,7 +9161,7 @@ packages: dependencies: '@unhead/dom': 1.0.14 '@unhead/schema': 1.0.14 - '@unhead/ssr': 1.0.14 + '@unhead/ssr': 1.0.15 '@unhead/vue': 1.0.13_vue@3.2.45 vue: 3.2.45 dev: true @@ -9303,6 +9627,19 @@ packages: acorn: 8.8.1 dev: true + /acorn-node/1.8.2: + resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + xtend: 4.0.2 + dev: true + + /acorn-walk/7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn-walk/8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} @@ -9320,6 +9657,12 @@ packages: hasBin: true dev: true + /acorn/7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn/8.8.0: resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} engines: {node: '>=0.4.0'} @@ -9574,6 +9917,10 @@ packages: readable-stream: 3.6.0 dev: true + /arg/5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -9756,7 +10103,7 @@ packages: hasBin: true dev: true - /autoprefixer/10.4.13_postcss@8.4.20: + /autoprefixer/10.4.13_postcss@8.4.21: resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -9768,7 +10115,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true @@ -11281,8 +11628,8 @@ packages: defu: 6.1.1 dotenv: 16.0.3 giget: 1.0.0 - jiti: 1.16.0 - mlly: 1.0.0 + jiti: 1.16.2 + mlly: 1.1.0 pathe: 1.0.0 pkg-types: 1.0.1 rc9: 2.0.0 @@ -11369,6 +11716,11 @@ packages: tslib: 2.4.0 dev: true + /camelcase-css/2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -12712,13 +13064,13 @@ packages: engines: {node: '>=8'} dev: true - /css-declaration-sorter/6.3.1_postcss@8.4.20: + /css-declaration-sorter/6.3.1_postcss@8.4.21: resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 dev: true /css-loader/5.2.7_webpack@5.74.0: @@ -12781,62 +13133,62 @@ packages: hasBin: true dev: true - /cssnano-preset-default/5.2.13_postcss@8.4.20: + /cssnano-preset-default/5.2.13_postcss@8.4.21: resolution: {integrity: sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.3.1_postcss@8.4.20 - cssnano-utils: 3.1.0_postcss@8.4.20 - postcss: 8.4.20 - postcss-calc: 8.2.4_postcss@8.4.20 - postcss-colormin: 5.3.0_postcss@8.4.20 - postcss-convert-values: 5.1.3_postcss@8.4.20 - postcss-discard-comments: 5.1.2_postcss@8.4.20 - postcss-discard-duplicates: 5.1.0_postcss@8.4.20 - postcss-discard-empty: 5.1.1_postcss@8.4.20 - postcss-discard-overridden: 5.1.0_postcss@8.4.20 - postcss-merge-longhand: 5.1.7_postcss@8.4.20 - postcss-merge-rules: 5.1.3_postcss@8.4.20 - postcss-minify-font-values: 5.1.0_postcss@8.4.20 - postcss-minify-gradients: 5.1.1_postcss@8.4.20 - postcss-minify-params: 5.1.4_postcss@8.4.20 - postcss-minify-selectors: 5.2.1_postcss@8.4.20 - postcss-normalize-charset: 5.1.0_postcss@8.4.20 - postcss-normalize-display-values: 5.1.0_postcss@8.4.20 - postcss-normalize-positions: 5.1.1_postcss@8.4.20 - postcss-normalize-repeat-style: 5.1.1_postcss@8.4.20 - postcss-normalize-string: 5.1.0_postcss@8.4.20 - postcss-normalize-timing-functions: 5.1.0_postcss@8.4.20 - postcss-normalize-unicode: 5.1.1_postcss@8.4.20 - postcss-normalize-url: 5.1.0_postcss@8.4.20 - postcss-normalize-whitespace: 5.1.1_postcss@8.4.20 - postcss-ordered-values: 5.1.3_postcss@8.4.20 - postcss-reduce-initial: 5.1.1_postcss@8.4.20 - postcss-reduce-transforms: 5.1.0_postcss@8.4.20 - postcss-svgo: 5.1.0_postcss@8.4.20 - postcss-unique-selectors: 5.1.1_postcss@8.4.20 + css-declaration-sorter: 6.3.1_postcss@8.4.21 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-calc: 8.2.4_postcss@8.4.21 + postcss-colormin: 5.3.0_postcss@8.4.21 + postcss-convert-values: 5.1.3_postcss@8.4.21 + postcss-discard-comments: 5.1.2_postcss@8.4.21 + postcss-discard-duplicates: 5.1.0_postcss@8.4.21 + postcss-discard-empty: 5.1.1_postcss@8.4.21 + postcss-discard-overridden: 5.1.0_postcss@8.4.21 + postcss-merge-longhand: 5.1.7_postcss@8.4.21 + postcss-merge-rules: 5.1.3_postcss@8.4.21 + postcss-minify-font-values: 5.1.0_postcss@8.4.21 + postcss-minify-gradients: 5.1.1_postcss@8.4.21 + postcss-minify-params: 5.1.4_postcss@8.4.21 + postcss-minify-selectors: 5.2.1_postcss@8.4.21 + postcss-normalize-charset: 5.1.0_postcss@8.4.21 + postcss-normalize-display-values: 5.1.0_postcss@8.4.21 + postcss-normalize-positions: 5.1.1_postcss@8.4.21 + postcss-normalize-repeat-style: 5.1.1_postcss@8.4.21 + postcss-normalize-string: 5.1.0_postcss@8.4.21 + postcss-normalize-timing-functions: 5.1.0_postcss@8.4.21 + postcss-normalize-unicode: 5.1.1_postcss@8.4.21 + postcss-normalize-url: 5.1.0_postcss@8.4.21 + postcss-normalize-whitespace: 5.1.1_postcss@8.4.21 + postcss-ordered-values: 5.1.3_postcss@8.4.21 + postcss-reduce-initial: 5.1.1_postcss@8.4.21 + postcss-reduce-transforms: 5.1.0_postcss@8.4.21 + postcss-svgo: 5.1.0_postcss@8.4.21 + postcss-unique-selectors: 5.1.1_postcss@8.4.21 dev: true - /cssnano-utils/3.1.0_postcss@8.4.20: + /cssnano-utils/3.1.0_postcss@8.4.21: resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 dev: true - /cssnano/5.1.14_postcss@8.4.20: + /cssnano/5.1.14_postcss@8.4.21: resolution: {integrity: sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.13_postcss@8.4.20 + cssnano-preset-default: 5.2.13_postcss@8.4.21 lilconfig: 2.0.6 - postcss: 8.4.20 + postcss: 8.4.21 yaml: 1.10.2 dev: true @@ -13028,6 +13380,10 @@ packages: isobject: 3.0.1 dev: true + /defined/1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} + dev: true + /defu/6.1.1: resolution: {integrity: sha512-aA964RUCsBt0FGoNIlA3uFgo2hO+WWC0fiC6DBps/0SFzkKcYoM/3CzVLIa5xSsrFjdioMdYgAIbwo80qp2MoA==} dev: true @@ -13099,10 +13455,24 @@ packages: engines: {node: '>=8'} dev: true + /detective/5.2.1: + resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} + engines: {node: '>=0.8.0'} + hasBin: true + dependencies: + acorn-node: 1.8.2 + defined: 1.0.1 + minimist: 1.2.6 + dev: true + /devalue/4.2.0: resolution: {integrity: sha512-mbjoAaCL2qogBKgeFxFPOXAUsZchircF+B/79LD4sHH0+NHfYm8gZpQrskKDn5gENGt35+5OI1GUF7hLVnkPDw==} dev: true + /didyoumean/1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + /diff-sequences/29.3.1: resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -13128,6 +13498,10 @@ packages: path-type: 4.0.0 dev: true + /dlv/1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + /doctrine/3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -15155,6 +15529,36 @@ packages: '@esbuild/win32-x64': 0.16.10 dev: true + /esbuild/0.16.16: + resolution: {integrity: sha512-24JyKq10KXM5EBIgPotYIJ2fInNWVVqflv3gicIyQqfmUqi4HvDW1VR790cBgLJHCl96Syy7lhoz7tLFcmuRmg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.16.16 + '@esbuild/android-arm64': 0.16.16 + '@esbuild/android-x64': 0.16.16 + '@esbuild/darwin-arm64': 0.16.16 + '@esbuild/darwin-x64': 0.16.16 + '@esbuild/freebsd-arm64': 0.16.16 + '@esbuild/freebsd-x64': 0.16.16 + '@esbuild/linux-arm': 0.16.16 + '@esbuild/linux-arm64': 0.16.16 + '@esbuild/linux-ia32': 0.16.16 + '@esbuild/linux-loong64': 0.16.16 + '@esbuild/linux-mips64el': 0.16.16 + '@esbuild/linux-ppc64': 0.16.16 + '@esbuild/linux-riscv64': 0.16.16 + '@esbuild/linux-s390x': 0.16.16 + '@esbuild/linux-x64': 0.16.16 + '@esbuild/netbsd-x64': 0.16.16 + '@esbuild/openbsd-x64': 0.16.16 + '@esbuild/sunos-x64': 0.16.16 + '@esbuild/win32-arm64': 0.16.16 + '@esbuild/win32-ia32': 0.16.16 + '@esbuild/win32-x64': 0.16.16 + dev: true + /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -15527,8 +15931,8 @@ packages: /estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - /estree-walker/3.0.1: - resolution: {integrity: sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g==} + /estree-walker/3.0.2: + resolution: {integrity: sha512-C03BvXCQIH/po+PNPONx/zSM9ziPr9weX8xNhYb/IJtdJ9z+L4z9VKPTB+UTHdmhnIopA2kc419ueyVyHVktwA==} dev: true /esutils/2.0.3: @@ -15725,7 +16129,7 @@ packages: resolution: {integrity: sha512-MAU9ci3XdpqOX1aoIoyL2DMzW97P8LYeJxIUkfXhOfsrkH4KLHFaYDwKN0B2l6tqedVJWiTIJtWmxmZfa05vOQ==} dependencies: enhanced-resolve: 5.10.0 - mlly: 1.0.0 + mlly: 1.1.0 pathe: 1.0.0 ufo: 1.0.1 dev: true @@ -16427,6 +16831,10 @@ packages: fs-memo: 1.2.0 dev: true + /get-port-please/3.0.1: + resolution: {integrity: sha512-R5pcVO8Z1+pVDu8Ml3xaJCEkBiiy1VQN9za0YqH8GIi1nIqD4IzQhzY6dDzMRtdS1lyiGlucRzm8IN8wtLIXng==} + dev: true + /get-port/3.2.0: resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} engines: {node: '>=4'} @@ -18353,6 +18761,11 @@ packages: hasBin: true dev: true + /jiti/1.16.2: + resolution: {integrity: sha512-OKBOVWmU3FxDt/UH4zSwiKPuc1nihFZiOD722FuJlngvLz2glX1v2/TJIgoA4+mrpnXxHV6dSAoCvPcYQtoG5A==} + hasBin: true + dev: true + /jju/1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true @@ -19599,6 +20012,15 @@ packages: ufo: 1.0.1 dev: true + /mlly/1.1.0: + resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==} + dependencies: + acorn: 8.8.1 + pathe: 1.0.0 + pkg-types: 1.0.1 + ufo: 1.0.1 + dev: true + /morgan/1.10.0: resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} engines: {node: '>= 0.8.0'} @@ -19770,22 +20192,22 @@ packages: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true - /nitropack-edge/2.0.0-27860563.409fe2b: - resolution: {integrity: sha512-K/YSYLd4Elgrl5U1Qu240MDkEEPDByhSnhVixCYT349ZewIHoSqsgm8aMgcXD4t31XIGBvWL0XD2dBk+OLzdMA==} + /nitropack-edge/2.0.0-27890666.bece791: + resolution: {integrity: sha512-iVZd0bsH42kFXM++2MP8nNvoZbwvgAmvMGbD+ktuUl5nEvUeT8Iy8ZTWxnrIqH1kDUkmMeGtxENvLPOPflCr0Q==} engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} hasBin: true dependencies: '@cloudflare/kv-asset-handler': 0.3.0 - '@netlify/functions': 1.3.0 - '@rollup/plugin-alias': 4.0.2_rollup@3.8.1 - '@rollup/plugin-commonjs': 24.0.0_rollup@3.8.1 - '@rollup/plugin-inject': 5.0.3_rollup@3.8.1 - '@rollup/plugin-json': 6.0.0_rollup@3.8.1 - '@rollup/plugin-node-resolve': 15.0.1_rollup@3.8.1 - '@rollup/plugin-replace': 5.0.2_rollup@3.8.1 - '@rollup/plugin-terser': 0.2.1_rollup@3.8.1 - '@rollup/plugin-wasm': 6.1.1_rollup@3.8.1 - '@rollup/pluginutils': 5.0.2_rollup@3.8.1 + '@netlify/functions': 1.4.0 + '@rollup/plugin-alias': 4.0.2_rollup@3.9.1 + '@rollup/plugin-commonjs': 24.0.0_rollup@3.9.1 + '@rollup/plugin-inject': 5.0.3_rollup@3.9.1 + '@rollup/plugin-json': 6.0.0_rollup@3.9.1 + '@rollup/plugin-node-resolve': 15.0.1_rollup@3.9.1 + '@rollup/plugin-replace': 5.0.2_rollup@3.9.1 + '@rollup/plugin-terser': 0.3.0_rollup@3.9.1 + '@rollup/plugin-wasm': 6.1.1_rollup@3.9.1 + '@rollup/pluginutils': 5.0.2_rollup@3.9.1 '@vercel/nft': 0.22.6 archiver: 5.3.1 c12: 1.1.0 @@ -19796,7 +20218,7 @@ packages: defu: 6.1.1 destr: 1.2.2 dot-prop: 7.2.0 - esbuild: 0.16.10 + esbuild: 0.16.16 escape-string-regexp: 5.0.0 etag: 1.8.1 fs-extra: 11.1.0 @@ -19806,12 +20228,12 @@ packages: hookable: 5.4.2 http-proxy: 1.18.1 is-primitive: 3.0.1 - jiti: 1.16.0 + jiti: 1.16.2 klona: 2.0.5 knitwork: 1.0.0 listhen: 1.0.1 mime: 3.0.0 - mlly: 1.0.0 + mlly: 1.1.0 mri: 1.2.0 node-fetch-native: 1.0.1 ofetch: 1.0.0 @@ -19821,8 +20243,8 @@ packages: pkg-types: 1.0.1 pretty-bytes: 6.0.0 radix3: 1.0.0 - rollup: 3.8.1 - rollup-plugin-visualizer: 5.8.3_rollup@3.8.1 + rollup: 3.9.1 + rollup-plugin-visualizer: 5.9.0_rollup@3.9.1 scule: 1.0.0 semver: 7.3.8 serve-placeholder: 2.0.1 @@ -19830,8 +20252,8 @@ packages: source-map-support: 0.5.21 std-env: 3.3.1 ufo: 1.0.1 - unenv: 1.0.0 - unimport: 1.1.0_rollup@3.8.1 + unenv: 1.0.1 + unimport: 1.2.0_rollup@3.9.1 unstorage: 1.0.1 transitivePeerDependencies: - bufferutil @@ -20090,26 +20512,26 @@ packages: boolbase: 1.0.0 dev: true - /nuxi-edge/3.0.1-rc.0-27863365.da6fa9a: - resolution: {integrity: sha512-2vtoDrDw0v4+Gw5KeCJI7F5dFYeVEhg7X2O9c448Ac/6sHFPHl++XeBdujtLTbDfwcr+GZPWbfcKVcas6Sn4Xw==} + /nuxi-edge/3.0.1-rc.0-27889360.9de94c2: + resolution: {integrity: sha512-ZDDTqkvfXYsjDFcG6BRjb0indeVntlS5V5owTSDvmSkPKIAwiGwzp2jJzzODrFnalcLVykUp3vnzY5I1d3/JcQ==} engines: {node: ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} hasBin: true optionalDependencies: fsevents: 2.3.2 dev: true - /nuxt3/3.0.1-rc.0-27863365.da6fa9a: - resolution: {integrity: sha512-lg/Z09JyyjWZv5NmcTMXVwhULEj7KnaTAUBqvzPZgHDCiAakv6EV3N6R9tE8V6GKdRV7JNmA/4y4mPQcjTIhlA==} + /nuxt3/3.0.1-rc.0-27889360.9de94c2: + resolution: {integrity: sha512-ge6lM7I2EfkewLh3UO9cBJSLWcChN2u61G4Bu02RT36I1HHDJFMVEnQ5L/HvKa5DGkc/fgrZZPc1KAyMSXXezw==} engines: {node: ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} hasBin: true dependencies: '@nuxt/devalue': 2.0.0 - '@nuxt/kit': /@nuxt/kit-edge/3.0.1-rc.0-27863365.da6fa9a - '@nuxt/schema': /@nuxt/schema-edge/3.0.1-rc.0-27863365.da6fa9a + '@nuxt/kit': /@nuxt/kit-edge/3.0.1-rc.0-27889360.9de94c2 + '@nuxt/schema': /@nuxt/schema-edge/3.0.1-rc.0-27889360.9de94c2 '@nuxt/telemetry': 2.1.8 - '@nuxt/ui-templates': 1.0.0 - '@nuxt/vite-builder': /@nuxt/vite-builder-edge/3.0.1-rc.0-27863365.da6fa9a_vue@3.2.45 - '@unhead/ssr': 1.0.14 + '@nuxt/ui-templates': 1.1.0 + '@nuxt/vite-builder': /@nuxt/vite-builder-edge/3.0.1-rc.0-27889360.9de94c2_vue@3.2.45 + '@unhead/ssr': 1.0.15 '@vue/reactivity': 3.2.45 '@vue/shared': 3.2.45 '@vueuse/head': 1.0.22_vue@3.2.45 @@ -20118,7 +20540,7 @@ packages: defu: 6.1.1 destr: 1.2.2 escape-string-regexp: 5.0.0 - estree-walker: 3.0.1 + estree-walker: 3.0.2 fs-extra: 11.1.0 globby: 13.1.3 h3: 1.0.2 @@ -20126,9 +20548,9 @@ packages: hookable: 5.4.2 knitwork: 1.0.0 magic-string: 0.27.0 - mlly: 1.0.0 - nitropack: /nitropack-edge/2.0.0-27860563.409fe2b - nuxi: /nuxi-edge/3.0.1-rc.0-27863365.da6fa9a + mlly: 1.1.0 + nitropack: /nitropack-edge/2.0.0-27890666.bece791 + nuxi: /nuxi-edge/3.0.1-rc.0-27889360.9de94c2 ofetch: 1.0.0 ohash: 1.0.0 pathe: 1.0.0 @@ -20138,11 +20560,11 @@ packages: ufo: 1.0.1 ultrahtml: 1.2.0 unctx: 2.1.1 - unenv: 1.0.0 - unhead: 1.0.14 - unimport: 1.1.0 + unenv: 1.0.1 + unhead: 1.0.15 + unimport: 1.2.0 unplugin: 1.0.1 - untyped: 1.2.0 + untyped: 1.2.1 vue: 3.2.45 vue-bundle-renderer: 1.0.0 vue-devtools-stub: 0.1.0 @@ -20190,6 +20612,11 @@ packages: resolution: {integrity: sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==} engines: {node: '>= 0.10.0'} + /object-hash/3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + /object-inspect/1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} @@ -20792,17 +21219,17 @@ packages: engines: {node: '>=0.10.0'} dev: true - /postcss-calc/8.2.4_postcss@8.4.20: + /postcss-calc/8.2.4_postcss@8.4.21: resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin/5.3.0_postcss@8.4.20: + /postcss-colormin/5.3.0_postcss@8.4.21: resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -20811,55 +21238,55 @@ packages: browserslist: 4.21.4 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values/5.1.3_postcss@8.4.20: + /postcss-convert-values/5.1.3_postcss@8.4.21: resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-discard-comments/5.1.2_postcss@8.4.20: + /postcss-discard-comments/5.1.2_postcss@8.4.21: resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 dev: true - /postcss-discard-duplicates/5.1.0_postcss@8.4.20: + /postcss-discard-duplicates/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 dev: true - /postcss-discard-empty/5.1.1_postcss@8.4.20: + /postcss-discard-empty/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 dev: true - /postcss-discard-overridden/5.1.0_postcss@8.4.20: + /postcss-discard-overridden/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 dev: true /postcss-import-resolver/2.0.0: @@ -20868,18 +21295,40 @@ packages: enhanced-resolve: 4.5.0 dev: true - /postcss-import/15.1.0_postcss@8.4.20: + /postcss-import/14.1.0_postcss@8.4.21: + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.1 + dev: true + + /postcss-import/15.1.0_postcss@8.4.21: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.1 dev: true + /postcss-js/4.0.0_postcss@8.4.21: + resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.3.3 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.21 + dev: true + /postcss-load-config/3.1.4: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} @@ -20896,18 +21345,35 @@ packages: yaml: 1.10.2 dev: true - /postcss-merge-longhand/5.1.7_postcss@8.4.20: + /postcss-load-config/3.1.4_postcss@8.4.21: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.0.6 + postcss: 8.4.21 + yaml: 1.10.2 + dev: true + + /postcss-merge-longhand/5.1.7_postcss@8.4.21: resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1_postcss@8.4.20 + stylehacks: 5.1.1_postcss@8.4.21 dev: true - /postcss-merge-rules/5.1.3_postcss@8.4.20: + /postcss-merge-rules/5.1.3_postcss@8.4.21: resolution: {integrity: sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -20915,52 +21381,52 @@ packages: dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0_postcss@8.4.20 - postcss: 8.4.20 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 postcss-selector-parser: 6.0.10 dev: true - /postcss-minify-font-values/5.1.0_postcss@8.4.20: + /postcss-minify-font-values/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients/5.1.1_postcss@8.4.20: + /postcss-minify-gradients/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0_postcss@8.4.20 - postcss: 8.4.20 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params/5.1.4_postcss@8.4.20: + /postcss-minify-params/5.1.4_postcss@8.4.21: resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - cssnano-utils: 3.1.0_postcss@8.4.20 - postcss: 8.4.20 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors/5.2.1_postcss@8.4.20: + /postcss-minify-selectors/5.2.1_postcss@8.4.21: resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-selector-parser: 6.0.10 dev: true @@ -21005,109 +21471,119 @@ packages: postcss: 8.4.16 dev: true - /postcss-normalize-charset/5.1.0_postcss@8.4.20: + /postcss-nested/6.0.0_postcss@8.4.21: + resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.10 + dev: true + + /postcss-normalize-charset/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 dev: true - /postcss-normalize-display-values/5.1.0_postcss@8.4.20: + /postcss-normalize-display-values/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions/5.1.1_postcss@8.4.20: + /postcss-normalize-positions/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style/5.1.1_postcss@8.4.20: + /postcss-normalize-repeat-style/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string/5.1.0_postcss@8.4.20: + /postcss-normalize-string/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions/5.1.0_postcss@8.4.20: + /postcss-normalize-timing-functions/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode/5.1.1_postcss@8.4.20: + /postcss-normalize-unicode/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url/5.1.0_postcss@8.4.20: + /postcss-normalize-url/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace/5.1.1_postcss@8.4.20: + /postcss-normalize-whitespace/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values/5.1.3_postcss@8.4.20: + /postcss-ordered-values/5.1.3_postcss@8.4.21: resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0_postcss@8.4.20 - postcss: 8.4.20 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-initial/5.1.1_postcss@8.4.20: + /postcss-reduce-initial/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -21115,16 +21591,16 @@ packages: dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 - postcss: 8.4.20 + postcss: 8.4.21 dev: true - /postcss-reduce-transforms/5.1.0_postcss@8.4.20: + /postcss-reduce-transforms/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true @@ -21136,28 +21612,28 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-svgo/5.1.0_postcss@8.4.20: + /postcss-svgo/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: true - /postcss-unique-selectors/5.1.1_postcss@8.4.20: + /postcss-unique-selectors/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 postcss-selector-parser: 6.0.10 dev: true - /postcss-url/10.1.3_postcss@8.4.20: + /postcss-url/10.1.3_postcss@8.4.21: resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==} engines: {node: '>=10'} peerDependencies: @@ -21166,7 +21642,7 @@ packages: make-dir: 3.1.0 mime: 2.5.2 minimatch: 3.0.8 - postcss: 8.4.20 + postcss: 8.4.21 xxhashjs: 0.2.2 dev: true @@ -21208,6 +21684,15 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /postcss/8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /prelude-ls/1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} @@ -21458,6 +21943,11 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true + /quick-lru/5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true + /quick-temp/0.1.8: resolution: {integrity: sha512-YsmIFfD9j2zaFwJkzI6eMG7y0lQP7YeWzgtFgNl38pGWZBSXJooZbOWwkcRot7Vt0Fg9L23pX0tqWU3VvLDsiA==} dependencies: @@ -22127,8 +22617,8 @@ packages: terser: 5.15.0 dev: true - /rollup-plugin-visualizer/5.8.3_rollup@3.8.1: - resolution: {integrity: sha512-QGJk4Bqe4AOat5AjipOh8esZH1nck5X2KFpf4VytUdSUuuuSwvIQZjMGgjcxe/zXexltqaXp5Vx1V3LmnQH15Q==} + /rollup-plugin-visualizer/5.9.0_rollup@3.9.1: + resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} hasBin: true peerDependencies: @@ -22138,7 +22628,8 @@ packages: optional: true dependencies: open: 8.4.0 - rollup: 3.8.1 + picomatch: 2.3.1 + rollup: 3.9.1 source-map: 0.7.4 yargs: 17.5.1 dev: true @@ -22220,6 +22711,14 @@ packages: fsevents: 2.3.2 dev: true + /rollup/3.9.1: + resolution: {integrity: sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + /rsvp/3.2.1: resolution: {integrity: sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==} @@ -23222,14 +23721,14 @@ packages: resolution: {integrity: sha512-DU2KZiB6VbPkO2tGSqQ9n96ZstUPjW7X4sGO6V2m1myIQluX0p1Ol8BrA/l6/EesqhMqXOIXs3cJNOy1UuU2BA==} dev: true - /stylehacks/5.1.1_postcss@8.4.20: + /stylehacks/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - postcss: 8.4.20 + postcss: 8.4.21 postcss-selector-parser: 6.0.10 dev: true @@ -23507,6 +24006,40 @@ packages: wordwrapjs: 4.0.1 dev: true + /tailwindcss/3.2.4_postcss@8.4.21: + resolution: {integrity: sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==} + engines: {node: '>=12.13.0'} + hasBin: true + peerDependencies: + postcss: ^8.0.9 + dependencies: + arg: 5.0.2 + chokidar: 3.5.3 + color-name: 1.1.4 + detective: 5.2.1 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.2.12 + glob-parent: 6.0.2 + is-glob: 4.0.3 + lilconfig: 2.0.6 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-import: 14.1.0_postcss@8.4.21 + postcss-js: 4.0.0_postcss@8.4.21 + postcss-load-config: 3.1.4_postcss@8.4.21 + postcss-nested: 6.0.0_postcss@8.4.21 + postcss-selector-parser: 6.0.10 + postcss-value-parser: 4.2.0 + quick-lru: 5.1.1 + resolve: 1.22.1 + transitivePeerDependencies: + - ts-node + dev: true + /tap-parser/7.0.0: resolution: {integrity: sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA==} hasBin: true @@ -24293,7 +24826,7 @@ packages: resolution: {integrity: sha512-RffJlpvLOtolWsn0fxXsuSDfwiWcR6cyuykw2e0+zAggvGW1SesXt9WxIWlWpJhwVCZD/WlxxLqKLS50Q0CkWA==} dependencies: acorn: 8.8.1 - estree-walker: 3.0.1 + estree-walker: 3.0.2 magic-string: 0.26.7 unplugin: 1.0.1 dev: true @@ -24315,8 +24848,8 @@ packages: busboy: 1.6.0 dev: true - /unenv/1.0.0: - resolution: {integrity: sha512-vlyi2Rzj4CNlA1JsEXufX+ItkGr3Z5DfLzKniYEneMlBVtuxS+57f1LwTPj2eiBPSPaGHMUVzEnjSCGE7l8JQg==} + /unenv/1.0.1: + resolution: {integrity: sha512-08MoQ5+Edg9ckEP5y6vT8R6sOgCsNPxwPA1mKIOyergTtPOOuSyyJnbmF8CdnUplO2TUqSm0s1IysCkylxmndw==} dependencies: defu: 6.1.1 mime: 3.0.0 @@ -24324,11 +24857,11 @@ packages: pathe: 1.0.0 dev: true - /unhead/1.0.14: - resolution: {integrity: sha512-0i0UA6DS44ul0QN4ibP389EiykjHCe3B9gM5eg40O4O8KfDyXgFJ5osdGdfwkmzWR8uWUMLwauNE4FIEFk5NGg==} + /unhead/1.0.15: + resolution: {integrity: sha512-XNGYe/9h/gycVf15CMJXl7Mycgrjcp8yOOxe/QtcA/V5/e1KXOOKXvsXDui9tabWEh2s/GejZS0TtUj5OTfusQ==} dependencies: - '@unhead/dom': 1.0.14 - '@unhead/schema': 1.0.14 + '@unhead/dom': 1.0.15 + '@unhead/schema': 1.0.15 hookable: 5.4.2 dev: true @@ -24378,15 +24911,15 @@ packages: resolution: {integrity: sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==} engines: {node: '>=4'} - /unimport/1.1.0: - resolution: {integrity: sha512-dSufi3POQWUVAMU6DxXu39U0cWzz5m3FtQBUbgDJTkCpeRfyiYhDg+BOz6UPKfDPtEhkbshV8JoMV3I8i/mQ+A==} + /unimport/1.2.0: + resolution: {integrity: sha512-yMok/ubppurBE7Png1QH70Om96AxIoWCcfdxW3J/pziozShMc1UGpPgWpSckfo9ndAO5M74yNnRDdLAZy/gWQg==} dependencies: '@rollup/pluginutils': 5.0.2 escape-string-regexp: 5.0.0 fast-glob: 3.2.12 local-pkg: 0.4.2 magic-string: 0.27.0 - mlly: 1.0.0 + mlly: 1.1.0 pathe: 1.0.0 pkg-types: 1.0.1 scule: 1.0.0 @@ -24396,15 +24929,15 @@ packages: - rollup dev: true - /unimport/1.1.0_rollup@3.8.1: - resolution: {integrity: sha512-dSufi3POQWUVAMU6DxXu39U0cWzz5m3FtQBUbgDJTkCpeRfyiYhDg+BOz6UPKfDPtEhkbshV8JoMV3I8i/mQ+A==} + /unimport/1.2.0_rollup@3.9.1: + resolution: {integrity: sha512-yMok/ubppurBE7Png1QH70Om96AxIoWCcfdxW3J/pziozShMc1UGpPgWpSckfo9ndAO5M74yNnRDdLAZy/gWQg==} dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.8.1 + '@rollup/pluginutils': 5.0.2_rollup@3.9.1 escape-string-regexp: 5.0.0 fast-glob: 3.2.12 local-pkg: 0.4.2 magic-string: 0.27.0 - mlly: 1.0.0 + mlly: 1.1.0 pathe: 1.0.0 pkg-types: 1.0.1 scule: 1.0.0 @@ -24516,6 +25049,17 @@ packages: - supports-color dev: true + /untyped/1.2.1: + resolution: {integrity: sha512-hEtBC6MvqXLEEpx5ItPhnpgHIf3hRP310IYHj7N3D5zjdLJnmJNsGRDFbovk6DM2dekF/OBWuxDr0b6479eUkA==} + dependencies: + '@babel/core': 7.20.7 + '@babel/standalone': 7.20.11 + '@babel/types': 7.20.7 + scule: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /upath/1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -24679,27 +25223,6 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - /vite-node/0.26.2: - resolution: {integrity: sha512-4M/zlatItZAyvrQG+82zQBhgDjRZRhVJYFW4T9wcAKh7eMmSiPOVSeI5zsV9UzHXgCcIDKX0o0r3s4OxExTHqg==} - engines: {node: '>=v14.16.0'} - hasBin: true - dependencies: - debug: 4.3.4 - mlly: 1.0.0 - pathe: 0.2.0 - source-map: 0.6.1 - source-map-support: 0.5.21 - vite: 4.0.3 - transitivePeerDependencies: - - '@types/node' - - less - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /vite-node/0.26.2_@types+node@18.11.17: resolution: {integrity: sha512-4M/zlatItZAyvrQG+82zQBhgDjRZRhVJYFW4T9wcAKh7eMmSiPOVSeI5zsV9UzHXgCcIDKX0o0r3s4OxExTHqg==} engines: {node: '>=v14.16.0'} @@ -24721,7 +25244,30 @@ packages: - terser dev: true - /vite-plugin-checker/0.5.3_vite@4.0.3: + /vite-node/0.27.0: + resolution: {integrity: sha512-O1o9joT0qCGx5Om6W0VNLr7M00ttrnFlfZX2d+oxt2T9oZ9DvYSv8kDRhNJDVhAgNgUm3Tc0h/+jppNf3mVKbA==} + engines: {node: '>=v14.16.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.1.0 + pathe: 0.2.0 + picocolors: 1.0.0 + source-map: 0.6.1 + source-map-support: 0.5.21 + vite: 4.0.4 + transitivePeerDependencies: + - '@types/node' + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-plugin-checker/0.5.3_vite@4.0.4: resolution: {integrity: sha512-upPESKsQTypC2S7LPjxu9HknOymNSToAAHTYSFHb0at5GKLcN1QGMAR5Hb+7KqZclGMVniXAj7QdhZv+fTx83Q==} engines: {node: '>=14.16'} peerDependencies: @@ -24760,7 +25306,7 @@ packages: npm-run-path: 4.0.1 strip-ansi: 6.0.1 tiny-invariant: 1.2.0 - vite: 4.0.3 + vite: 4.0.4 vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.7 @@ -24930,39 +25476,6 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.0.3: - resolution: {integrity: sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.16.10 - postcss: 8.4.20 - resolve: 1.22.1 - rollup: 3.8.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /vite/4.0.3_@types+node@18.11.17: resolution: {integrity: sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -24997,6 +25510,73 @@ packages: fsevents: 2.3.2 dev: true + /vite/4.0.4: + resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.16.16 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.9.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vite/4.0.4_@types+node@18.11.17: + resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.11.17 + esbuild: 0.16.16 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.9.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /vitefu/0.2.3_vite@3.1.0: resolution: {integrity: sha512-75l7TTuU8isAhz1QFtNKjDkqjxvndfMC1AfIMjJ0ZQ59ZD0Ow9QOIsJJX16Wv9PS8f+zMzp6fHy5cCbKG/yVUQ==} peerDependencies: @@ -25008,7 +25588,7 @@ packages: vite: 3.1.0 dev: true - /vitefu/0.2.3_vite@4.0.3: + /vitefu/0.2.3_vite@4.0.4: resolution: {integrity: sha512-75l7TTuU8isAhz1QFtNKjDkqjxvndfMC1AfIMjJ0ZQ59ZD0Ow9QOIsJJX16Wv9PS8f+zMzp6fHy5cCbKG/yVUQ==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -25016,7 +25596,7 @@ packages: vite: optional: true dependencies: - vite: 4.0.3_@types+node@18.11.17 + vite: 4.0.4_@types+node@18.11.17 dev: true /vitest/0.26.2: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index bb24a94..5bd36d1 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,6 +6,7 @@ packages: - 'iconify-icon/icon' - 'iconify-icon/*' - 'components/*' + - 'plugins/*' - 'components-demo/*' - 'iconify-icon-demo/*' # - 'debug/*'